Het was voor ons al langer een wens om data uit AFAS Profit eenvoudig in Power BI te kunnen gebruiken, en alhoewel het nog steeds geen helemaal directe link is kunnen we nu wel middels een klein stukje Powershell en de Power BI gateway gebruik maken van automatisch bijgewerkte Profit data in Power BI.
De voorbereidingen beginnen in Profit:
Zorg er voor dat je eerst in AFAS Profit een app connector aanmaakt, koppel hier vervolgens een gebruiker aan en zorg er voor dat je het autorisatie token genereert.
De volgende stap is het toevoegen van de “Getconnectoren” die je automatisch wil exporteren. Het Powershell script zal alle getconnectoren voor deze gebruiker exporteren, dus het is zaak om te zorgen dat je alleen de data die je naar PowerBI wil sturen beschikbaar stelt voor deze connector. In dit geval betreft het drie connectoren:
Tot slot hebben we voor het exporteren van de data een klein stukje Powershell nodig:
$token = ‘<token><version>1</version><data>***</data></token>’
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = “AfasToken $encodedToken”
$Headers = @{
Authorization = $authValue
}$url = ‘https://**/Profitrestservices//metainfo’
$file = ‘C:\PBIData\todo.json’
Invoke-WebRequest -Uri $url -OutFile $file -Headers $Headers$todo = Get-Content -Raw -Path $file | ConvertFrom-Json
foreach ($conn in $todo.getConnectors.id){
$url = ‘https://**/profitrestservices/connectors/’+$conn+’?skip=-1&take=-1′
$file = ‘C:\PBIData\’+$conn+’.json’
Invoke-WebRequest -Uri $url -OutFile $file -Headers $Headers
}
Het bovenstaande script haalt de beschikbare getconnectoren op en zal deze vervolgens zonder filtering volledig ophalen en als JSON op de gespecificeerde locatie neerzetten. Overigens kan dit natuurlijk ook mooi opgelost worden met een stukje storage en een function app in Azure, maar dat is iets voor later :).
We hebben de data nu klaar staan voor de integratie met PowerBI, hoe dat in zijn werk gaat wordt in de volgende post uitgewerkt.
Hallo Herman,
Heel duidelijk en precies wat ik zoek maar ik mis volgens mij een cruciale stap:
“Tot slot hebben we voor het exporteren van de data een klein stukje Powershell nodig:” prima maar wat dien we met dat stukje Powershell, waar moet dat staan en ik neem aan dat er een aantal zaken aangepast moeten worden afhankelijk van de gebruiker etc.
Hopelijk kom ik, met behulp van jouw info, uiteindelijk zover de Afas data in PowerBI te krijgen.
Mvg Jaap
Ik krijg een foutmelding bij $todo = Get-Content -Raw -Path $file | ConvertFrom-Json
ConvertFrom-Json : Invalid JSON primitive: .
mijn url is de nieuwe afas URL al ( rest.afas.online/profitrestservices. Werkt bovenstaande PowerShell script nog met de nieuwe AFAS url?
Alvast bedankt!
Groeten, Hilbert
Ik zal hier even een keer mee moeten testen. Ik heb een vergelijkbare fout ook wel eens gehad volgens mij. Normaal gezien zou AFAS Online ook gewoon moeten werken.