Question

Je cherche la meilleure solution pour permettre à nos utilisateurs de télécharger une feuille de calcul XLS afin qu'ils puissent être utilisés pour remplir les tables dans notre entrepôt de données (DW).

Nos utilisateurs sont lourds utilisateurs de Business Objects (BO) et BO vous permet d'exporter vers XLS. Quand ils ont des données dans une feuille de calcul qui doit être chargé à la DW, ils ont besoin d'un processus pour transférer les données dans le XLS au db du DW. En conséquence, nous nous retrouvons avec beaucoup de ces « interfaces » quand je pense que ce que nous avons vraiment besoin est un aliment de programmation automatisée. En utilisant Excel comme source de données pour inter-systèmes d'entrée, dans mes tripes, tout semble être une mauvaise idée pour moi.

Question n ° 1:. Je voudrais savoir si vous êtes d'accord et pourquoi ou pourquoi pas

OK, il n'y a pas nager contre cette marée, alors je prends maintenant comme étant donné que le téléchargement de XLS sont là pour rester pour nous. Maintenant, je dois trouver la meilleure solution. Tout d'abord, je vais vous expliquer ce que nous faisons maintenant et ce que je ne l'aime pas à ce sujet:

Via des pages web, nous fournissons des fichiers XLS vides (pas de lignes) avec un ensemble défini de colonnes. Chaque fichier est destiné à être utilisé pour mettre à jour une table dest cible différente. Dans chaque feuille de calcul est un bouton « télécharger ». Pousser le bouton Télécharger résultats dans la macro dans la feuille de calcul sérialisation le contenu du fichier au format CSV et FTPing les données dans le dossier du serveur. Régulièrement, un feu de planificateur hors un travail ETL Informatica qui utilise le fichier CSV en entrée et charge les données dans une table de mise en scène spécifique XLS personnalisée puis, si les enregistrements passent des modifications, dans la table cible appropriée. Toute erreur rencontrée sont enregistrées dans une table d'erreur. Pour chaque fichier téléchargé XLS, les données se termine dans une mise en scène séparée et une table d'erreur qui est spécifique pour le fichier.

Certaines des choses que je ne comprennent aime pas sur notre processus sont:

1) Le code de macro dans le XLS est trop exposé, comprend des mots de passe par exemple, peuvent être falsifiées et il y a des problèmes assurant que les utilisateurs utilisent les derniers modèles XLS. 2) les modifications de règles métier sont placées dans le programme ETL, où ils devraient probablement, mais parce que nous voulons attraper les erreurs dès que possible, i.e., dans la feuille de calcul, les modifications sont également ajoutées au code de macro. Il en résulte la duplication des modifications d'affaires. Je veux que ces règles dans un seul endroit et central. À mon humble avis, je pense mettre un code macro dans le XLS présente un problème de maintenance, même les appels à des procédures stockées (dont certains que nous avons) ou les appels vers les services Web (nous n'avons pas encore essayé d'appeler .NET Services Web à partir de macros XLS. ) 3) Chaque fichier XLS modèle de téléchargement a son propre processus avec ensemble distinct de tables de mise en scène et d'erreur et un écran personnalisé pour signaler les erreurs rencontrées. Il semble que nous avons besoin d'une solution réutilisable plus généralisée.

En plus souvent obtenir des données exportées vers XLS de BO, les utilisateurs comme aussi Excel, car il est plus facile de modifier un grand nombre d'enregistrements et moins clunkier que d'éditer des enregistrements individuels via une interface web.

Ceci est la direction générale que je pense:

Tout d'abord, je veux que les utilisateurs ont la facilité d'édition d'Excel avec l'édition, mais sans inclure des macros incorporées dans la feuille de calcul. J'ai expérimenté avec la grille de Farpoint compatibilité Excel ...

http://www.fpoint.com/netproducts/spreadweb/tour /excel.aspx

... et je l'ai trouvé qu'il était assez facile de permettre à un utilisateur la possibilité d'ouvrir un fichier XLS qui se trouve sur leur PC et le ouvrir dans un navigateur et pouvoir accéder facilement aux données lues à partir du serveur -side code Web .NET. Excel ne fonctionne pas localement dans leur navigateur, mais la fonctionnalité d'Excel est reproduit, probablement par un grand nombre de client de script côté que je pense serait une vraie douleur pour me reproduire. Vous pouvez même couper et coller à partir d'une feuille de calcul locale dans la feuille de calcul du Web. Cela sonne bien, par le plus grand problème est le coût. Notre société est proche de la mort et n'allow nous d'acheter un nouveau logiciel.

Ensuite, je veux identifier les composants communs dans l'ensemble du traitement de téléchargement de tableur et venir avec le code de traitement générique. Par exemple, j'imagine une table qui définit chacune de nos feuilles de calcul et le format de chacun comprenant les noms de colonnes et des définitions de type de données, peut-être en termes de colonnes de destination au lieu de coder en dur. Sur la base de cette définition de modèle de table, je peux générer des modèles XLS pour le téléchargement à partir de cette définition de la table. Je peux également effectuer des modifications génériques simples pour vous assurer que les données saisies correspond à la définition de la table. Et une seule page Web commune peut être utilisée pour présenter les données et permettre à des erreurs de non-concordance de type de données du rapport et permettre à l'utilisateur de les corriger. Je voudrais également définir une table commune pour stocker les données dans une table « mise en scène », à l'aide d'une table avec deux colonnes, la soumission #, ligne num, le nom et la valeur, peut-être. Pas plus « tout personnalisé » est le but.

Ensuite je dois décider où mettre les règles commerciales. Mon département de la MGT croit fermement que tout le chargement des données doit être effectuée par Informatica processus de traitement par lots ETL et donc les règles / modifications appartiennent « à Informatica ». J'ai aucune expérience avec des outils Informatica, je suis plus un gars .NET. Je suis donc incertain quant à la façon dont ces règles sont mises en œuvre, mais je pense qu'ils ne sont pas réutilisables dans le sens où ils peuvent être utilisés par une page Web .NET pour valider un enregistrement particulier contre. Vous voyez, dans certains cas, lorsque l'utilisateur ne fonctionne pas un transfert groupé, ils ont la possibilité d'éditer un enregistrement spécifique et je voudrais les mêmes modifications qui ont été appliquées par le processus d'insertion en bloc ETL à appliquer à une mise à jour individuelle tenter d'un seul enregistrement via une page web. Si la solution à écrire un service Web unique ou une procédure stockée qui peut être appelée depuis la page Web faisant une mise à jour d'un seul enregistrement ou appelé des milliers de fois pour chaque enregistrement dans un transfert groupé? Ce dernier semble inefficace.

Vos pensées sur quoi que ce soit ci-dessus seraient très bien accueillis.

Était-ce utile?

La solution

Du point de vue des coûts, les efforts que vous aurez besoin de passer pour recréer la fonctionnalité de feuille de calcul sur le web dépassera le coût de Farpoint ou d'autres contrôles. Même si vous avez fait 20 $ l'heure, pensez-vous que vous pouvez remplir un produit de travail en moins de 2 semaines? Je pense que vous avez les faits de votre côté lorsque vous avez discuté des problèmes de maintenance si vous permettre une fonctionnalité ETL d'exister dans Excel - vous avez deux fois plus de travail pour maintenir les règles de transformation. Je pense que vous devez convaincre la direction que pour créer une solution maintenable, robuste vous avez besoin d'utilitaires flexibles.

Farpoint est un bon choix. Il y a aussi SpreadsheetGear qui est un moteur .Net qui interprète les macros Excel et peut fonctionner sur un serveur web. Il a un contrôle Win32 qui vous permet de créer une solution WinForms avec très fonctionnalité d'interface Excel. La dernière fois que j'ai vérifié qu'il n'y avait pas de contrôle web pour le produit. Il fait un excellent travail de fournir une capacité Excel pour le traitement de grandes quantités de données.

Bonne chance. Je pense que vous trouverez une bonne solution puisque vous semblez avoir une bonne connaissance de toutes les différentes solutions possibles les avantages et les inconvénients.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top