Gem webdata til Excel - Power Automate Desktop Advanced Use Case

Intro Lav automatisk CVR-opslag online og scrap webresultaterne tilbage til Excel. Denne komplette tutorial lærer dig alle best practices af en Power Automate RPA-udvikler vedrørende web- og Excel-automatisering. Læringsmål Beskrivelse Tips Videoguide Yderligere materiale Kode

Introduktion

Lav automatisk CVR-opslag (danske momsnumre) online og skrab webresultaterne tilbage til Excel.

Denne komplette tutorial lærer dig alle best practices af en Power Automate RPA-udvikler vedrørende web- og Excel-automatisering.

Mål for læring

  • Avanceret webautomatisering
  • Avanceret Excel-arbejde
    • DataTabeller
  • Håndtering af fejl i dine flows
  • HTTP-forespørgsler/REST API og JSON-parsing

Beskrivelse

  • Download Excel-filen til lektionen
  • Åbn CVR-siden (danske momsnumre): https://datacvr.virk.dk/
  • Vi laver avanceret udtræk af webdata. Et skridt ad gangen:
    • Læs ark '2. Virksomheder 10 Data'
      • Naviger til CVR-siden
        • Klik på knappen 'English' i øverste højre hjørne
        • Gør flowet robust ved kun at klikke på 'English', hvis der ikke er klikket på det.
      • For hvert CVR, søg på CVR-siden
      • Skrab resultaterne med en Uddrag data fra webside
      • Skriv resultaterne tilbage i de rigtige kolonner
      • Luk browseren
      • Luk Excel-bogen
    • I stedet for at bruge Udtræk data fra websiden skal du oprette en DataTable og tilføje DataRows med hvert resultat til den.
      • Det giver dig mulighed for at tilpasse de udtrukne data.
    • Lav dynamisk filnavngivning for Excel-arket med resultatet (f.eks. med en DateTime)
    • Læs ark '3. Virksomheder 12 Data', og tilpas dit flow til at håndtere fejl og oprette en log.
    • Læs arket '4. Virksomheder 13 Data' og udfør avanceret UI Element-arbejde for at få dit flow til at fungere, når websidens data afviger en smule
    • Læs ark '5. Virksomheder 10 Data' og opret HTTP-anmodninger for at gøre dit flow hurtigt og pålideligt

Tips

  • Opret en variabel for stien til Excel-bogen, og brug den i Launch Excel (bedste praksis, da bogen kan flytte sig, og vi bruger stien mere end én gang).
  • Brug subflows til at strukturere din proces
  • En RowNumber heltalsvariabel er god til at holde styr på rækkenumre i Excel-arkene.
  • Brug en Hvis websiden indeholder handling til håndtering af fejl

Video-guide

https://youtu.be/7R5EjshDoQU

Ekstra materiale

Kode

CALL Initialization
CALL Process
CALL EndProcess
SET ProjectPath TO $'''C:\\Users\\Anders Jensen\\OneDrive - Anders Jensen\\Desktop\\Project'''
SET URL TO $'''https://datacvr.virk.dk/'''
SET ResultDataTable TO { ^['CVR', 'Name', 'Address', 'Postal code', 'City', 'Start date', 'Business type', 'Advertising protection', 'Status', 'Log'] }
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyyMMddHHmmss''' Result=> FormattedDateTime
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''%ProjectPath%\\Data.xlsx''' Visible: False ReadOnly: False Instance=> ExcelInstance
Excel.SetActiveWorksheet.ActivateWorksheetByName Instance: ExcelInstance Name: $'''6. Companies 10 Data'''
Excel.ReadFromExcel.ReadAllCells Instance: ExcelInstance ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
DISABLE WebAutomation.LaunchChrome.LaunchChrome Url: URL WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
LOOP FOREACH CurrentItem IN ExcelData
    Web.InvokeWebService.InvokeWebService Url: $'''https://cvrapi.dk/api?search=%CurrentItem['CVR']%&country=dk''' Method: Web.Method.Get Accept: $'''application/xml''' ContentType: $'''application/xml''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False FailOnErrorStatus: False EncodeRequestBody: True UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False ResponseHeaders=> WebServiceResponseHeaders Response=> WebServiceResponse StatusCode=> StatusCode
    Variables.ConvertJsonToCustomObject Json: WebServiceResponse CustomObject=> JsonAsCustomObject
    SET ResultDataTable TO ResultDataTable + [CurrentItem['CVR'], JsonAsCustomObject['name'], JsonAsCustomObject['address'], JsonAsCustomObject['zipcode'], JsonAsCustomObject['city'], JsonAsCustomObject['startdate'], JsonAsCustomObject['companydesc'], JsonAsCustomObject['protected'], '', 'Succesfull']
END
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: ResultDataTable Column: $'''A''' Row: 2
Excel.CloseExcel.CloseAndSaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.FromExtension DocumentPath: $'''%ProjectPath%\\%FormattedDateTime%_Data.xlsx'''
DISABLE WebAutomation.CloseWebBrowser BrowserInstance: Browser

Skriv en kommentar