Question Intégration données SQL

Plus d'informations
il y a 4 mois 1 semaine #34316 par Fabien
Réponse de Fabien sur le sujet Intégration données SQL
Au début de ton script, tu fais une boucle pour chaque fichier XML.
# Spécifier le chemin du répertoire contenant les fichiers XML
$repertoire = @(
    "E:\Conteneur\Biens_22\",
    "E:\Conteneur\Biens_29\",
    "E:\Conteneur\Biens_35\",
    "E:\Conteneur\Biens_56\"
)

# Obtenir la liste de tous les fichiers XML dans le répertoire et ses sous-répertoires
$fichiersXML = Get-ChildItem -Path $repertoire -Filter *.xml -Recurse

foreach ($fichier in $fichiersXML)

Mais à la fin de ton script, dans la partie SQL, tu appelles un fichier XML qui n'existe pas.
# Charger le fichier XML (supposons que $xmlContent contient déjà le contenu XML)
   $xmlContent = [xml](Get-Content -Path $fichier.FullName -Raw)

Soit il faut refaire la boucle pour ajouter dans chaque fichier XML, soit il faut définir un autre fichier XML.
Ensuit, il te suffit d'enregistrer le fichier XML après ton ajout de données.
# Ajouter les données dans le fichier XML
        $bienConventionNode = $xmlContent.CreateElement("bien-convention")
        $bienConventionNode.InnerText = $typeConvention
        $xmlContent.SelectSingleNode('//bien-finan-actuel').AppendChild($bienConventionNode)
        $destinationPath = Join-Path -Path "E:\Nouveau dossier" -ChildPath ($fichier.BaseName + "_modifie.xml")
  $xmlContent.Save($destinationPath)


        if ($DT_MLO -ne [System.DBNull]::Value) {
            $bienDatMesNode = $xmlContent.CreateElement("bien-datmes")
            $bienDatMesNode.InnerText = $DT_MLO
            $xmlContent.SelectSingleNode('//bien-date-premloc').AppendChild($bienDatMesNode)
$destinationPath = Join-Path -Path "E:\Nouveau dossier" -ChildPath ($fichier.BaseName + "_modifie.xml")
  $xmlContent.Save($destinationPath)
        }

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 1 semaine #34317 par Dead
Réponse de Dead sur le sujet Intégration données SQL
Merci Fabien,

Je vois, merci pour cette éclairage.
Je vais tester ce jour et vous redis.

Très bonne journée

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 5 jours - il y a 4 mois 5 jours #34331 par Dead
Réponse de Dead sur le sujet Intégration données SQL
Bonjour à tous!

Petite question:


"Soit il faut refaire la boucle pour ajouter dans chaque fichier XML, soit il faut définir un autre fichier XML.
Ensuit, il te suffit d'enregistrer le fichier XML après ton ajout de données.
# Ajouter les données dans le fichier XML
$bienConventionNode = $xmlContent.CreateElement("bien-convention")
$bienConventionNode.InnerText = $typeConvention
$xmlContent.SelectSingleNode('//bien-finan-actuel').AppendChild($bienConventionNode)
$destinationPath = Join-Path -Path "E:\Nouveau dossier" -ChildPath ($fichier.BaseName + "_modifie.xml")
$xmlContent.Save($destinationPath)


if ($DT_MLO -ne [System.DBNull]::Value) {
$bienDatMesNode = $xmlContent.CreateElement("bien-datmes")
$bienDatMesNode.InnerText = $DT_MLO
$xmlContent.SelectSingleNode('//bien-date-premloc').AppendChild($bienDatMesNode)
$destinationPath = Join-Path -Path "E:\Nouveau dossier" -ChildPath ($fichier.BaseName + "_modifie.xml")
$xmlContent.Save($destinationPath)
}"

Le fichier source est transcodé. Pour l'ajout des données de la table SQL, on ne peut pas injecter cela directement dans les fichiers transcodés, en faisant matché le code bien pour avoir le bon code Ulis en face?
Dernière édition: il y a 4 mois 5 jours par Dead.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 3 jours #34371 par Fabien
Réponse de Fabien sur le sujet Intégration données SQL
Bonjour Dead,

Si je comprends bien, tu veux ajouter le résultat de ta recherche SQL dans un fichier XML correspondant au résultat ?
Aurais tu un exemple de résultat et du fichier XML correspondant pour pouvoir t'aider davantage ?

Fabien

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 3 jours #34372 par Dead
Réponse de Dead sur le sujet Intégration données SQL
Bonjour Fabien,

Donc le transcodage etc se passe bien. Le souci qui me reste, c'est que les balises ne sont pas correctement importées dans le fichier.
Par exemple, voici un bout du fichier xml source:

<?xml version="1.0" encoding="ISO-8859-1"?>
<biens>
<entete>
<date>22/05/2024</date>
<nom-service>10938</nom-service>
<nombre-biens>579</nombre-biens>
<type-traitement>P</type-traitement>
<adr-mail-log>usermail</adr-mail-log>
</entete>
<bien>
<bien-identification>
<bien-dpt>29</bien-dpt>
<bien-organisme>B60</bien-organisme>
<bien-programme>0037</bien-programme>
<bien-code>01.00.0001</bien-code>
<bien-epls>0028165878</bien-epls>
</bien-identification>
<prog-infos>
<prg-uge-code>AG129</prg-uge-code>
<prg-lib>RELECQ-KER</prg-lib>
</prog-infos>
<bien-infos>
<bien-nature>LOG</bien-nature>
<bien-type-zone>AUT</bien-type-zone>
<bien-type>T1</bien-type>
<bien-etage>000</bien-etage>
<bien-surhab>26.05</bien-surhab>
<bien-indci>C</bien-indci>
<bien-ascenseur>0</bien-ascenseur>
<bien-handicape>0</bien-handicape>
<bien-neuf>0</bien-neuf>
<bien-adresse>
<adr-librue>adresse</adr-librue>
<adr-libcomp1></adr-libcomp1>
<adr-libcomp2></adr-libcomp2>
<adr-cp>29480</adr-cp>
<adr-ville>LE RELECQ KER</adr-ville>
<adr-code-insee>29235</adr-code-insee>
</bien-adresse>
<bien-qrt>X</bien-qrt>
<bien-finan-actuel>014</bien-finan-actuel>
<bien-eau-chaude-charge>1</bien-eau-chaude-charge>
<bien-eau-froide-charge>0</bien-eau-froide-charge>
<bien-ascenseur-charge>1</bien-ascenseur-charge>
<bien-chauffage-charge>0</bien-chauffage-charge>
<bien-chauffage-type>013</bien-chauffage-type>
<bien-date-premloc>01/09/1981</bien-date-premloc>
<bien-acquisition></bien-acquisition>
<bien-domaine>S</bien-domaine>
<bien-budget>
<bien-budget-code>10</bien-budget-code>
<bien-budget-montant>289.37</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>20</bien-budget-code>
<bien-budget-montant>289.37</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>30</bien-budget-code>
<bien-budget-montant>45.81</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>90</bien-budget-code>
<bien-budget-montant>0.00</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>100</bien-budget-code>
<bien-budget-montant>289.37</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>110</bien-budget-code>
<bien-budget-montant>289.37</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>120</bien-budget-code>
<bien-budget-montant>0.00</bien-budget-montant>
</bien-budget>
<bien-budget>
<bien-budget-code>130</bien-budget-code>
<bien-budget-montant>0.00</bien-budget-montant>
</bien-budget>
<bien-complement>
<bien-comp-code>SIG02</bien-comp-code>
<bien-comp-val>0</bien-comp-val>
</bien-complement>
<bien-complement>
<bien-comp-code>SIG03</bien-comp-code>
<bien-comp-val>0</bien-comp-val>
</bien-complement>
</bien-infos>
<bien-vacant>
<bien-disponible>NON</bien-disponible>
</bien-vacant>
</bien>


Et voici un bout d'un fichier transcodé avec ajout des balises:

<?xml version="1.0" encoding="ISO-8859-1"?>
<biens>
<entete>
<date>29/05/2024</date>
<nom-service>10938</nom-service>
<nombre-biens>579</nombre-biens>
<type-traitement>P</type-traitement>
<adr-mail-log>groupe_mail</adr-mail-log>
</entete>
<bien>
<bien-identification>
<bien-dpt>29</bien-dpt>
<bien-organisme>B60</bien-organisme>
<bien-programme>190505</bien-programme>
<bien-code>010001</bien-code>
<bien-epls>0049929386</bien-epls>
</bien-identification>
<prog-infos>
<prg-uge-code>1</prg-uge-code>
<prg-lib>PLOUGASTEL BA</prg-lib>
</prog-infos>
<bien-infos>
<bien-nature>LOG</bien-nature>
<bien-type-zone>AUT</bien-type-zone>
<bien-type>T4</bien-type>
<bien-etage>000</bien-etage>
<bien-surhab>76.00</bien-surhab>
<bien-indci>I</bien-indci>
<bien-ascenseur>0</bien-ascenseur>
<bien-handicape>0</bien-handicape>
<bien-neuf>0</bien-neuf>
<bien-adresse>
<adr-librue>17 RUE HIC</adr-librue>
<adr-libcomp1>
</adr-libcomp1>
<adr-libcomp2>
</adr-libcomp2>
<adr-cp>29470</adr-cp>
<adr-ville>DAOULAS</adr-ville>
<adr-code-insee>29189</adr-code-insee>
</bien-adresse>
<bien-qrt>X</bien-qrt>
<bien-finan-actuel>014</bien-finan-actuel>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>APL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>AL</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>
</bien-convention>
<bien-convention>

Donc, dans le fichier modifié, l'ajout des balises se fait bien. Mais elles sont ajoutées les unes à la suite des autres, et non dans les biens correspondants. Les balises sont ajoutées en fonction du bien-code et bien-programme. Si ça match, la balise bien-convention, si non nulle, et ajouté sur le code bien correspondant. Idem pour la balise bien-datemes. Il faudrait donc boucler sur chaque bien-code et bien-programme pour appliquer les bonnes balises. De plus, les balises bien-convention et bien-datemes devront être ajoutées après la balise bien-finan-origine, et s'il n'y en a pas, alors elles devront être ajoutées après la balise date-finan-actuel. Tu trouveras en pièce jointe un fichier généré après le script.

Je sèche un peu...

Merci Fabien!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 mois 3 jours #34375 par Fabien
Réponse de Fabien sur le sujet Intégration données SQL
Je n'ai pas eu de fichier joint dans la réponse précédente. 

J'ai encore une interrogation : 
Tu as plusieurs biens dans un fichier XML ou chaque bien correspond à un seul fichier XML ?
 

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.130 secondes
Propulsé par Kunena