Exemple Kettle per connectar-nos a Sap (amb el plugin ProERPConn)

En una entrada anterior del bloc vam veure que amb talendo ens podíem connectar a Sap sense necessitat de comprar cap plugin o complement addicional en la versió Open Studio. Només havia de disposar del connector Java sapjco.jar, que Sap ofereix lliurement els seus clients, i utilitzar els components de talendo tSapInput i tSapOutput. La comunicació amb Sap era en ambdues direccions, permetent tant la lectura com l'escriptura en el través dels mòduls de funció (les anomenades RFC). A més, en les versions de pagament de talendo, hi hafuncions addicionals que inclouen assistents, la lectura directa del metadata d'Sap (diccionari de dades, mòduls de funció i bapis, recuperació de la documentació de les RFC i el seu test en línia) i per tant, una major facilitat d'ús, ja que en la versió Open és molt difícil de configurar el component i la documentació al respecte brilla per la seva absència.


Navegació pels mòduls de funció RFC d'Sap des talendo

Si ens anem a Pentaho Data Integration (Kettle), no hi ha un connector disponible en la versió lliure.Però si tenim una opció de pagament a través del plugin ProERPConn , de l'empresa Proratio, amb un cost de 2.900 euros per lloc. Tenen un versió d'avaluació de 30 dies, que és la que he utilitzat per l'elaboració d'aquest exemple. Anem a explicar la forma de configurar-i un exemple del seu ús.

Configuració del Plugin (Windows).

Una vegada ens registrem a la web del fabricant, rebrem un correu amb la documentació i un fitxer comprimit amb els fitxers per afegir el nou "step" o component a la nostra configuració de Kettle.Els passos a seguir són els següents:

  • Descomprimir el fitxer rebut al directori [Kettle-Directory] \ plugins \ steps. Aquest serà el lloc del qual llegirà l'aplicació per tenir disponible el plugin i poder utilitzar-lo com un step o pas més dins de les transformacions.
  • Instal lar el connector sapjco d'Sap: per a això deixarem caure el fitxer sapjco.jar en el mateix directori d'abans. A més, el fitxer sapjcorfc.dll el copiarem al directori [Kettle-Directory] \ libswt \ win32. Finalment, si tenim una versió anterior de la dll librfc32.dll al directori [Windows] \ System32, la substituirem amb què ens hem descarregat de Sap (us record que per poder descarregar l'sapjco hem de ser clients d'Sap o tindre usuari del seu portal).Les versions de JCO que podem utilitzar són la 2.1.6 o 2.1.8.

En aquest moment, ja podem arrencar Kettle i en crear una nova transformació, ens apareix en el grup Input el pas ProERPconn - PRORATIO SAP Connector. En posar-lo a la finestra de disseny, quan fem doble clic sobre l'ens demanarà la clau d'activació ( que ens enviarà el fabricant al enviar el corresponent Product Key).


Nou pas disponible a la secció Input per al nou connector

Un cop activat, està disponible el component per començar a fer lectura de taules des Sap, tot d'una forma integrada amb el diccionari de dades.Per entendre millor com funciona el plugin, hem de saber que per darrera aquesta utilitzant la Remote Function Call de Sap anomenada RFC_READ_TABLE, que ens permet realitzar tant la lectura del diccionari de dades d'aquestes taules, així com del seu contingut. L'eina, en el cas que la comprem, ofereix una RFC customitzada addicional a la estàndard que ofereix millores de rendiment, controls de seguretat d'accés, permet l'ús de camps de coma flotant i soluciona alguns problemes que existeixen amb la versió 4.7 de Sap.En el nostre cas, a l'estar amb la demo, no disposem d'aquesta RFC millorada, i com estem en la versió 4.7, hem detectat alguns problemes de funcionament incorrecte del connector en realitzar les lectures des Sap.

Anem a veure un exemple complet de lectura de dades. Anem a extreure el mestre de materials de Sap fent un lookup contra taules addicionals.

Ús del Plugin per recuperar dades del mestre de materials.

En primer lloc, definirem la connexió a base de dades que ens permetrà connectar-nos a Sap. En crear una nova, després de la instal lació del Plugin, ens apareix un nou tipus anomenat Sap R / 3 System. En la definició de la connexió indicarem el host on està instal lat el nostre Sap (Host Name), el nombre de sistema (System Number.Normalment el 00, a menys que tinguem diversos servidors), el mandant (Sap Client), el llenguatge (Language. Important, ja que determina l'idioma en què es recuperen posteriorment les definicions del diccionari de dades) i finalment l'usuari i la contrasenya que s'utilitzaran (s'utilitzaran els permisos que tingui aquest usuari. És important que l'usuari tingui les autoritzacions per executar el mòdul de funció RFC_READ_TABLE i els permisos per a llegir en les diferents taules).


Plugin Sap - Definició Connexió

Una definida la connexió, ja podem utilitzar el pas per fer la lectura de dades.En el nostre exemple, anem a llegir els registres del mestre de materials (taula MARA). Amb les dades llegits, farem un lookup per completar la descripció del material (taula MAKT) i del Grup de Material (Família).


Plugin Sap - Configuració Step

A la imatge podem veure els diferents elements que es poden configurar en el pas.Anem a veure una mica més en detall cada un d'ells:

  • Sap Connection: és la connexió a Sap que prèviament haurem definit en les connexions de base de dades.
  • Tablename: nom de la taula on volem llegir les dades. Amb el botó Find Table disposem d'un assistent per a buscar les taules en el diccionari de dades de Sap. La cerca la podem fer pel nom de la taula, per la seva descripció, pels camps inclosos en ella, per les claus principals o foranes.En la recerca podem indicar l'idioma amb el qual es recuperen les descripcions dels objectes.

Plugin Sap - Selecció Taules

  • Selected Fields: un cop indicada la taula, seleccionarem els noms dels camps que volem recuperar. Disposem d'un assistent que ens recupera els camps existents en la taula amb la seva descripció.

Plugin Sap - Selecció Camps

  • Where Clause: restriccions a la recuperació de la informació.En afegir els camps amb l'assistent en aquesta secció, es autollena una condició de referència tenint en compte el tipus de dades del camp. Aquí podem indicar les condicions perquè es restringeixi la recuperació d'informació.

Aquests són els paràmetres bàsics del Step. A més, podrem indicar altres valors, com el nombre de registres a recuperar o ignorar, la conversió del tipus date a char, etc.Tenint en compte això, anem a realitzar el nostre exemple. El gràfic complet quedaria una cosa així:


Plugin Sap - Exemple Transformació

Hem realitzat 3 lectures de taules des Sap. Al step SAP - Materials, llegim de la taula MARA tots els registres que compleixen unes determinades condicions. A continuació, en el pas BUSCA_DESCRIP (del tipus Stream Lookup), realitzem la recerca de la descripció del material en els registres llegits en el pas SAP - Descripció Material (que llegeix de la taula de descripcions matK). A continuació, el ​​flux de dades es passa al pas SAP - Descripció Família, on fem un lookup, però d'una manera directa per a cada un dels valors del flux. Podeu veure a la imatge següent com hem afegit en les condicions del Where per recuperar els valors de la taula T023T (descripció de la família del material), el camp del flux, usant la notació [camp].

"Plugin Sap - Lookup" alt = "" src = "/ files/uploads/32image/Respinosamilla_bi/plugin-sap-lookup.jpg" />

Plugin Sap - Lookup amb camp del flux en condició

Finalment canviar el nom dels noms dels camps (en el pas RENOMBRA_CAMPOS del tipus Select / Rename Values) i passem els resultats a un full Excel (haguéssim poguts fer més transformacions sobre les dades o guardar-los en una taula destinació de BD).

Conclusions.

El plugin de Proratio només permet la lectura de taules, i sempre en sentit de sortida (extracció), encara que com a punt fort podem destacar que aquesta completament integrat amb el diccionari de dades de Sap i és molt fàcil bussejar per les taules i camps. Si ho comparem amb talendo i el seu component Sap, aquest ens permet tant la comunicació d'entrada i de sortida. A més, permet treballar amb qualsevol RFC (no només la RFC_READ_TABLE com Proratio), el que ens dóna moltíssimes possibilitats d'una integració real de Sap amb l'exterior i de reutilització de components estàndard dissenyats per a operacions específiques (creació de comandes de venda, realització de moviments de material o processos de comptabilització). Fins i tot podríem crear les nostres pròpies RFC en Abap per a tasques específiques i cridar des talendo, amb totes les possibilitats que això ofereix. La versió més bàsica de pagament, laom / products-data-integration / matrix.php "> talendo Integration Suite, té un cost per lloc de 4000 $, però inclou suport tècnic, l'accés als assistents (com el de Sap) i funcionalitats avançades (com el dipòsit compartit per a treball en grup).