Could you help me implementing a counter in order to generate an xml file with multiple element from a csv inside?
Here is the csv file
UCB63_DATENUM;U6618_FILENAME;UF6E8_CANAL;U65B8_IDRP
7/8/19 22:27;457E6659_ZN_LIQRLVPR_A_V_ML.pdf;ML;1367091
9/11/19 23:03;49453878_ZN_LIQRLVPR_A_V_ML.pdf;ML;106440
9/24/19 21:04;497E585B_ZN_LIQRLVPR_A_V_CS.pdf;CS;1536658
2/12/20 22:12;58453B75_ZN_LIQRLVPR_A_V_ML.pdf;ML;1406091
and the code
My return on the screen is good but as I am not calling the value, it can't be incremented. And for the moment all the things I've tried has a bad issue (only the last result appears to crash every other one)
Help me please
#vARIABLES EN DUR
$FREQUENCE_DECOMPTE = 'Nom="FREQUENCE_DECOMPTE" Valeur="MENS"'
$LIBELLE_ORGANISME = 'Nom="LIBELLE_ORGANISME" Valeur="HUMANIS CCN OG"'
$MONTANT_TOTAL = 'Nom="MONTANT_TOTAL" Valeur="0"'
$POLE = 'Nom="POLE" Valeur="1ADP"'
$CODE_ORGANISME = 'Nom="CODE_ORGANISME" Valeur="1ADP"'
# Paramètre nombre item par xml VALEUR A MODIFIER A 5000
$maxItemsPerXml = 3
# Nombre de process restants
$restant = $liste.Count
# Paramétrage compteur
#Import du csv et création des différentes collections
$liste = Import-Csv -path 'c:\temp\testH.csv' -Delimiter ';'
[System.Collections.ArrayList] $DateErrors = @()
[System.Collections.ArrayList] $FileNameErrors = @()
[System.Collections.ArrayList] $CanalErrors = @()
[System.Collections.ArrayList] $NumAssureErrors = @()
#création fichier
$xmlFile = "C:\Temp\MIG_ERELEVE_MM_$(get-date -f dd-MM-yyyy)_{0:D3}.xml" -f $xmlFileCount
#En-tête
$output = @"
<?xml version="1.0" encoding="utf-8"?>
<Documents Origine="ERELEVE_HUM">
`n
"@
foreach($item in $liste)
{
#Initiation variables booléennes
$MyDateIsCorrect = $true
$MyFileNameIsCorrect = $true
$MyCanalIsCorrect = $true
$MyNumAssureIsCorrect = $true
#Transformations données
$date = $($item.UCB63_DATENUM -split " ")[0]
$renommage = [System.IO.Path]::GetFileNameWithoutExtension($item.U6618_FILENAME)
#Génération output XML
if($MyDateIsCorrect -and $MyFileNameIsCorrect -and $MyCanalIsCorrect -and $MyNumAssureIsCorrect){
$output += @"
<Document>
<Index Nom="TITLE" Valeur="$renommage"/>
<Index Nom="NO_ASSURE" Valeur="$($item.U65B8_IDRP)"/>
<Index Nom="DEBUT_PERIODE" Valeur="$RecupDateFinTraitement"/>
<Index Nom="FIN_PERIODE" Valeur="$RecupDateFin30"/>
<Index $FREQUENCE_DECOMPTE/>
<Index $LIBELLE_ORGANISME/>
<Index $MONTANT_TOTAL/>
<Index Nom="DATE_GENERATION_DECOMPTE"$RecupDateFinTraitement/>
<Index $POLE/>
<Index $CODE_ORGANISME/>
<Index Nom="ALERTE_MAIL" Valeur="$fin"/>
<Fichier Nom="$($item.U6618_FILENAME)"/>
</Document>`r`n
"@
}
}
$output += @"
`r`n</Documents>
"@
$output | Set-Content -Path $xmlFile -Encoding UTF8
$DateErrors.ToArray() | Export-Csv -Path c:\temp\DateErrors.csv -NoTypeInformation
$FileNameErrors.ToArray() | Export-Csv -Path c:\temp\FileNameErrors.csv -NoTypeInformation
$CanalErrors.ToArray() | Export-Csv -Path c:\temp\CanalErrors.csv -NoTypeInformation
$NumAssureErrors.ToArray() | Export-Csv -Path c:\temp\NumAssureErrors.csv -NoTypeInformation
My output looks like this, but I would like to create a new file as soon a s I reach 3 elements
<?xml version="1.0" encoding="utf-8"?>
<Documents Origine="ERELEVE_HUM">
<Document>
<Index Nom="TITLE" Valeur="457E6659_ZN_LIQRLVPR_A_V_ML"/>
<Index Nom="NO_ASSURE" Valeur="1367091"/>
<Index Nom="DEBUT_PERIODE" Valeur="09-07-2020"/>
<Index Nom="FIN_PERIODE" Valeur="08/08/2020"/>
<Index Nom="FREQUENCE_DECOMPTE" Valeur="MENS"/>
<Index Nom="LIBELLE_ORGANISME" Valeur="HUMANIS CCN OG"/>
<Index Nom="MONTANT_TOTAL" Valeur="0"/>
<Index Nom="DATE_GENERATION_DECOMPTE"09-07-2020/>
<Index Nom="POLE" Valeur="1ADP"/>
<Index Nom="CODE_ORGANISME" Valeur="1ADP"/>
<Index Nom="ALERTE_MAIL" Valeur="1"/>
<Fichier Nom="457E6659_ZN_LIQRLVPR_A_V_ML.pdf"/>
</Document>
<Document>
<Index Nom="TITLE" Valeur="49453878_ZN_LIQRLVPR_A_V_ML"/>
<Index Nom="NO_ASSURE" Valeur="106440"/>
<Index Nom="DEBUT_PERIODE" Valeur="09-07-2020"/>
<Index Nom="FIN_PERIODE" Valeur="08/08/2020"/>
<Index Nom="FREQUENCE_DECOMPTE" Valeur="MENS"/>
<Index Nom="LIBELLE_ORGANISME" Valeur="HUMANIS CCN OG"/>
<Index Nom="MONTANT_TOTAL" Valeur="0"/>
<Index Nom="DATE_GENERATION_DECOMPTE"09-07-2020/>
<Index Nom="POLE" Valeur="1ADP"/>
<Index Nom="CODE_ORGANISME" Valeur="1ADP"/>
<Index Nom="ALERTE_MAIL" Valeur="1"/>
<Fichier Nom="49453878_ZN_LIQRLVPR_A_V_ML.pdf"/>
</Document>
<Document>
<Index Nom="TITLE" Valeur="497E585B_ZN_LIQRLVPR_A_V_CS"/>
<Index Nom="NO_ASSURE" Valeur="1536658"/>
<Index Nom="DEBUT_PERIODE" Valeur="09-07-2020"/>
<Index Nom="FIN_PERIODE" Valeur="08/08/2020"/>
<Index Nom="FREQUENCE_DECOMPTE" Valeur="MENS"/>
<Index Nom="LIBELLE_ORGANISME" Valeur="HUMANIS CCN OG"/>
<Index Nom="MONTANT_TOTAL" Valeur="0"/>
<Index Nom="DATE_GENERATION_DECOMPTE"09-07-2020/>
<Index Nom="POLE" Valeur="1ADP"/>
<Index Nom="CODE_ORGANISME" Valeur="1ADP"/>
<Index Nom="ALERTE_MAIL" Valeur="1"/>
<Fichier Nom="497E585B_ZN_LIQRLVPR_A_V_CS.pdf"/>
</Document>
<Document>
<Index Nom="TITLE" Valeur="58453B75_ZN_LIQRLVPR_A_V_ML"/>
<Index Nom="NO_ASSURE" Valeur="1406091"/>
<Index Nom="DEBUT_PERIODE" Valeur="09-07-2020"/>
<Index Nom="FIN_PERIODE" Valeur="08/08/2020"/>
<Index Nom="FREQUENCE_DECOMPTE" Valeur="MENS"/>
<Index Nom="LIBELLE_ORGANISME" Valeur="HUMANIS CCN OG"/>
<Index Nom="MONTANT_TOTAL" Valeur="0"/>
<Index Nom="DATE_GENERATION_DECOMPTE"09-07-2020/>
<Index Nom="POLE" Valeur="1ADP"/>
<Index Nom="CODE_ORGANISME" Valeur="1ADP"/>
<Index Nom="ALERTE_MAIL" Valeur="1"/>
<Fichier Nom="58453B75_ZN_LIQRLVPR_A_V_ML.pdf"/>
</Document>
</Documents>