Advertisement
BlackGuard26

Eindopdracht Progressbar

Dec 15th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Zet Verbose aan
  2. $VerbosePreference = "continue"
  3.  
  4. #Maak folders als deze niet bestaan
  5. $FolderDate = Get-Date -format MMMM-yyyy
  6. $LogDir = "C:\Backup\Log\"+ $FolderDate
  7. $FileDir = "C:\BackUp\File\"+ $FolderDate
  8.  
  9. if(!(Test-Path -Path $LogDir ))
  10. {
  11.     New-Item -ItemType Directory -Path $LogDir
  12. }
  13.  
  14. if(!(Test-Path -Path $FileDir))
  15. {
  16.     New-Item -ItemType Directory -Path $FileDir
  17. }
  18.  
  19. #Start logfile
  20. Start-Transcript -Path ("C:\BackUp\Log\"+ $FolderDate +"\"+ $CurrentDate +"_log.txt")
  21.  
  22. #Import functies
  23. Import-Module "C:\Powershell Files\functies.psm1" -DisableNameChecking -Force
  24.  
  25. #Import XML
  26. $data = [Xml](Get-Content("C:\Powershell Files\14 CSWINPS XML Wijzigingen v1.0.xml"))
  27.  
  28. #Vars
  29. $TempData = $null
  30. $CurrentDate = Get-Date -format HHmm_yyyyMMdd
  31.  
  32. #Kijk hoeveel handelingen er gedaan moeten worden
  33. [int]$TotaalDoen = 1
  34.  
  35. foreach($item in $data.klantadministratie.wijzigen.klant)
  36. {
  37.     foreach($i in $item.ChildNodes){ $TotaalDoen++ }
  38. }
  39. foreach($item in $data.klantadministratie.verwijderen.klant){ $TotaalDoen++ }
  40. foreach($item in $data.klantadministratie.toevoegen.klant)
  41. {
  42.     $TotaalDoen++
  43.     foreach($i in $item.ChildNodes){ $TotaalDoen++ }
  44. }
  45. $TeDoen = $TotaalDoen
  46.  
  47. #Comprimeer mappen indien nodig
  48. Check-Comprimeren -LogDir "C:\BackUp\Log"
  49. $TeDoen--
  50.  
  51. #Werk Progressbar bij
  52. $percentage = (($TotaalDoen - $TeDoen) / $TotaalDoen)*100
  53. Write-Progress -Activity "Uitvoeren XML bestand" -PercentComplete $percentage    
  54.  
  55. #Controleer of XML is ingeladen
  56. if(!$data)
  57. {
  58.     Write-Warning "XML bestand is niet beschikbaar!"
  59. }
  60.  
  61. #Meldt verbose dingen
  62. Write-Verbose "Imported functies"
  63. Write-Verbose "Imported XML"
  64.  
  65. try
  66. {
  67.     #Voer handelingen uit voor alle klanten in XML wijzigen
  68.     foreach($item in $data.klantadministratie.wijzigen.klant)
  69.     {
  70.         $nummer = $item.nummer
  71.         #Voer handeling uit voor alle onderdelen van een klant
  72.         foreach($i in $item.ChildNodes)
  73.         {
  74.             #Geef tempData mee als deze al een waarde heeft
  75.             if(!$TempData)
  76.             {
  77.                 $TempData = Wijzig-KolomVoorKlantnummers -Kolom $i.Name -Inhoud $i.'#text' -Klantnummer $item.nummer
  78.             }
  79.             else
  80.             {
  81.                 $TempData = Wijzig-KolomVoorKlantnummers -Kolom $i.Name -Inhoud $i.'#text' -Klantnummer $item.nummer -KlantAdm $TempData
  82.             }
  83.             $TeDoen--
  84.             $percentage = (($TotaalDoen - $TeDoen) / $TotaalDoen)*100
  85.             Write-Progress -Activity "Uitvoeren XML bestand" -PercentComplete $percentage    
  86.  
  87.         }
  88.         Write-Verbose "Wijzigingen doorgevoerd voor klantnummer $nummer"
  89.     }
  90.  
  91.     #Voer handelingen uit voor alle klanten in XML verwijderen
  92.     foreach($item in $data.klantadministratie.verwijderen.klant)
  93.     {
  94.         $nummer = $item.nummer
  95.         #Geef tempData mee als deze al een waarde heeft
  96.         if(!$TempData)
  97.         {
  98.             $TempData = Verwijder-Klanten -Klantnummer $item.nummer
  99.         }
  100.         else
  101.         {
  102.             $TempData = Verwijder-Klanten -KlantAdm $TempData -Klantnummer $item.nummer
  103.         }
  104.         Write-Verbose "Klant met klantnummer $nummer is verwijderd"
  105.        
  106.         $TeDoen--
  107.         $percentage = (($TotaalDoen - $TeDoen) / $TotaalDoen)*100
  108.         Write-Progress -Activity "Uitvoeren XML bestand" -PercentComplete $percentage    
  109.  
  110.     }
  111.  
  112.     #Voer handelingen uit voor alle klanten in XML toevoegen
  113.     foreach($item in $data.klantadministratie.toevoegen.klant)
  114.     {
  115.         $nummer = $item.nummer
  116.         #Geef tempData mee als deze al een waarde heeft
  117.         #Voer eerst het klantnummer in
  118.         if(!$TempData)
  119.         {
  120.             $TempData = Toevoegen-Klant -Klantnummer $item.nummer -Kolom "Klantnummer" -Inhoud $item.nummer
  121.         }
  122.         else
  123.         {
  124.             $TempData = Toevoegen-Klant -KlantAdm $TempData -Klantnummer $item.nummer -Kolom "Klantnummer" -Inhoud $item.nummer
  125.         }
  126.  
  127.         $TeDoen--
  128.         $percentage = (($TotaalDoen - $TeDoen) / $TotaalDoen)*100
  129.         Write-Progress -Activity "Uitvoeren XML bestand" -PercentComplete $percentage    
  130.  
  131.  
  132.         #Voer alle andere onderdelelen van een specifieke klant in
  133.         foreach($i in $item.ChildNodes)
  134.         {
  135.             $TempData = Toevoegen-Klant -KlantAdm $TempData -Klantnummer $item.nummer -Kolom $i.Name -Inhoud $i.'#text'
  136.            
  137.             $TeDoen--
  138.             $percentage = (($TotaalDoen - $TeDoen) / $TotaalDoen)*100
  139.             Write-Progress -Activity "Uitvoeren XML bestand" -PercentComplete $percentage    
  140.  
  141.         }
  142.         Write-Verbose "Klant met klantnummer $nummer is toegevoegd"
  143.     }
  144.  
  145.     #Exporteer de var met alle gewijzigde waarde
  146.     $TempData | Export-Csv -Path ("C:\BackUp\File\"+ $FolderDate +"\"+ $CurrentDate +"_Data.csv") -Delimiter ";" -NoTypeInformation
  147.     Write-Verbose "Data is geĆ«xporteerd"
  148. }
  149. Catch
  150. {
  151.     Write-Error $_.Exception.Message
  152.     Write-Verbose "Vervang gewijzigde data voor backup data"
  153.  
  154.     #Plaats backup van CSV terug
  155.     Import-Csv "C:\Powershell Files\13 CSWINPS ZorgverzekerdenData_v1.0.csv" -Delimiter ";" | Export-Csv -Path ("C:\BackUp\File\"+ $FolderDate +"\"+ $CurrentDate +"_Data.csv") -Delimiter ";" -NoTypeInformation
  156.     Write-Verbose "Backup data is geĆ«xporteerd"
  157. }
  158. finally
  159. {
  160.     Stop-Transcript
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement