venerdì 11 febbraio 2022

ODI 12c - Microsoft Dynamics 365

Per poter effettuare l'estrazione di una Entità, account ecc, da Microsoft Dynamics 365 con ODI 12c occorre effettuare prima l'estrazione del Token associato ad una autenticazione OAUTH2. 

La chiamata al webservice purtroppo deve essere divisa in due parti: estrazione del token e successivamente, una volta estratto il Token si può procedere all'estrazione dell'ENTITY richiamando un web services di tipo Rest e generando un file in formato json. 

  • TOPOLOGIA










  • Logical Schema




Logicamente l'estrazione dell'Entità andrà gestita effettuando il caricamento del file estratto in una tabella.

Di seguito il flusso logico del package da costruire per effettuare quanto indicato sopra:







1.Estrazione del token utilizzando l'esecuzione di un comando di sistema operativo, nello specifico si può effettuare un CURL scrivendo quanto ottenuto in un file.
    • curl -v --user "<client_id>:<client_secret>" --data "grant_type=client_credentials" --data "scope=<https://<host>.dynamics.com/.default>" <Endpoint post request per ottenere ilToken> --output "/home/oracle/test_data.txt"

Di seguito i parametri da poter utilizzare per l’endpoint Dynamics 365 Customer Engagement:

·                 Dynamics 365 instance URL: 

·                 Web API: https://<host>.dynamics.com/api/data/v9.0/

·                 client_id = <---->

·                 client_secret = <---->

·                 scope = https://<host>.dynamics.com/.default

·                 Utente applicativo creato: # <user>

·                 Endpoint post request per ottenere il        token: 

             https://<login>.com/<number>/oauth2/v2.0/token 

2. Una volta estratto il Token insieme ad altre informazioni ed inserito in un file occorre tramite un awk script estrarre il solo Token.

[oracle@fmw12c ~]$ cat test_data.txt | awk -v  FS="access_token" '{print $2}'| awk -v FS=":" '{print $2}'| awk -v FS="\"" '{print $2}' >/home/oracle/token.txt

3. Una volta estratto il Token andrà quindi creato un mapping che legge il file e lo inserisce in una tabella.  

4. Caricato il Token in tabella possiamo interrogare quest'ultima, successivamente, con una variabile sql.  


Questa variabile deve essere inserita nella topologia relativa al web_services esposto da D365.

5. Quando si effettua l'esecuzione dell'OdiTools OdiInvokeRest, la variabile viene valorizzata col Token estratto. Il richiamo del webServices Rest effettua lo spool dell'Entità individuata all'interno di un file in formato json.

6. Una volta estratta l'entità il file json deve essere caricato in tabella. Occorrerà quindi creare un mapping per il caricamento del file dati. Logicamente occorrerà prima configurare la Topologia per l'utilizzo di un file complesso, in quanto in formato json. 

Logicamente nell'OdiTools OdiInvokeRest si può inserire un Uri per l'estrazione dell'intera Entità o inserire una qualche condizione di estrazione utilizzando la sintassi di d365.