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
Indholdsfortegnelse
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
- Naviger til CVR-siden
- 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
- API-dokumentation: https://cvrapi.dk
- Læs ark '2. Virksomheder 10 Data'
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
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