AFAS Profit – Microsoft Power BI (Deel 1)

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.

2 comments

Leave a Reply

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.