Bonjour,
je commence à réfléchir sur un travail que je vais bientot attaquer et j'ai besoin d'aide dans mes réflexions. J'espère que quelqu'un pourra m'aider ici ;-)
Le principe de ce que je vais avoir à faire est le suivant :
-Je reçois un fichier txt ou xls qui contient les données des commandes de mes clients. Ce fichier peut avoir une forme totalement différente en fonction du client.
-Je vais devoir stocker les données du fichier dans une base de données que j'aurais préalablement construite en fonction des données de ce client.
-Afin de limiter au maximum le développement pour chaque client, je souhaiterais mettre entre le fichier client et la base de données, un masque qui fera le lien entre le champs contenu dans mon fichier et les champs de ma base de données.
Pour construire ce masque, j'ai pensé au XML car il permet de décrire chaque champs de mon fichier et de donner à chacun des attributs qui me serviront dans la base (numéric/alpha, nb de caract., nom du champs dans la base, ...)
La structure XML serait la suivante:
La ou je me retrouve coincé c'est pour définir que dans mon fichier, je peux avoir 25 ligne de produit dans un fichier et 2 dans un autre. J'ai pensé qu'il fallait mieux faire un fichier XSL pour décrire les champs et leurs attributs mais je suis toujours embêté pour définir dans mon fichier XML que la fréquence des object peut être variable...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Fichier> <HeaderCommande nbligne=1> <NumCommande pos=1 type=num nbcar=5 dbfield=ncde> <AdresseLivraison pos=2 type=alp nbcar=999 dbfield=addr> </HeaderCommande> <LigneProduit nbligne=(variable)> <Product pos=1 type=alp nbcar=10 dbfield=prod_id> <Qte pos=2 type=num nbcar=5 dbfield=prod_qte> </LigneProduit> </Fichier>
Je me ne suis pas un grand connaisseur de XML mais je pense que je me retrouve à la limite de celui-ci car le XML ne peut pas être dynamique.
Si quelqu'un d'entre vous a déja bossé sur ce genre de chose ou si un connaisseur à envie de s'y intéresser, je pourrait donner plus de détail par la suite car c'est un peu compliquer de tout écrire ici.
En tout cas si quelqu'un peut m'aider à trouver le principe de ce qu'il faut faire, ce serait vraiment top :-)
J'espère ne pas avoir été trop long et m'être exprimer le plus clairement possible, n'hésitez pas à poser des questions si vous voulez des précisions.
Merci d'avance pour ceux qui prendront le temps de lire ce post et pour vos réponses.
A+
Partager