Kiss Lajos Máté
SAP Business ByDesign integráció II.
A két részes blogbejegyzés első részében az SAP Business ByDesign rendszer bővítési lehetőségeivel foglalkoztam. Ebben a második részben megmutatom, hogy az SAP Cloud Platform Integration Suite hogyan alkalmazható az SAP Business ByDesign rendszer kiegészítésére, segítségével hogyan integrálhatjuk meglévő vállalati környezetünkbe az SAP Business ByDesign rendszert.
SAP Cloud Platform Integration Suite
Az SAP Cloud Platform Integration Suite megoldása egy olyan felhő alapú szolgáltatás, egy olyan felület, mely szinte bármilyen integrációs feladat megoldására alkalmas. Használhatjuk az előre beépített integrációkat, az SAP által fejlesztett folyamatokat, vagy készíthetünk sajátot. Segítségével könnyebben menedzselhetjük az összekapcsolt rendszereinket és automatizálhatjuk üzleti folyamatainkat.
Két rendszer összekötésekor meg kell oldanunk, hogy a küldő rendszerből érkező adatokat a fogadó oldal megfelelően értelmezni tudja. Ennek megvalósításához általában különböző konverziós feladatokat kell végeznünk. Ha például a forrás oldal JSON formátumú adatállományt tud előállítani, de a fogadó oldal XML állományt vár bemenetként, akkor - a két rendszer fejlesztése nélkül - a Cloud Platform Integration Suite-tal (továbbiakban CPI) oldhatjuk meg a feladatot. Létrehozhatunk olyan integrációs folyamatot, mely a megfelelő adat konverziókat, kódolásokat, esetleges hibaellenőrzéseket, vagy egy-egy feltételhez kötött lépést hajt végre. Mindehhez nem szükséges programkódot írni, a beépített szerkesztő eszközeivel megvalósíthatjuk a legtöbb feladatot.
Aktuális árfolyam lekérdezése
A következő gyakorlati példában megmutatom, hogy hogyan lehet olyan folyamatot építeni, mely a Magyar Nemzeti Bank (továbbiakban MNB) nyilvános szolgáltatásáról lekéri az éppen aktuális euró-forint árfolyamot, melyet az SAP Business ByDesign rendszerében rögzít.
Integrációs folyamat létrehozása
A CPI oldalon készítsünk saját integrációs folyamatot, azaz hozzunk létre package-t és artifact-ot, melyben a megoldásunkat el fogjuk készíteni.
HTTPS adapter
A folyamatunkat a Postman nevű alkalmazással fogjuk kipróbálni, mely alkalmazás itt érhető el. Az első folyamatlépést HTTPS adapterrel definiáljuk, ami azt jelenti, hogy a Sender és a Start pont közé húzott nyíl kiválasztásánál a HTTPS adaptert választjuk ki. A paramétereknél megadjuk / kezdettel a most fejlesztett megoldás elérhetőségét. Ez a hivatkozás lesz az, melyet a Postman alkalmazásban is megadunk, amikor ki akarjuk próbálni a megoldást.
Lekérdezési paraméterek beállítása
Az euró-forint árfolyam lekérdezéséhez meg kell adnunk, az aktuális dátumot és hogy mely deviza érdekel bennünket. Ehhez a CPI Message Mapping eszközét használjuk.
Ha kiválasztottuk a Message Mapping pontot, akkor egyszerűen csak helyezzük a vonalra a Start pont után. Így létrejön a következő folyamatlépés. A Create segítségével hozzunk létre egy új Message Mapping-t.
Célszerű átnevezni a Message Mapping dobozt, hogy később pontosan tudjuk, melyik feladatlépés mit takar.
Ahhoz, hogy a paramétereket beállíthassuk a Message Mapping dobozban, szükségünk van az MNB Webservice WSDL fájljára, melyet ezen az oldalon letölthetünk. A böngészőben megjelenő fájlt mentsük le a mentés másként segítségével, és ügyeljünk rá, hogy a fájl kiterjesztése wsdl legyen. Ezt a fájlt a CPI-ban, a Message Mapping szerkesztő felületén töltsük fel – az Add source/target message pont segítségével, mindkét oldalon. Válasszuk a GetExchangeRates funkciót. Ezek után kizárólag a jobb oldalon, beállítjuk a paramétereket.
Adjuk hozzá a paramétereket az egyes mezőkhöz az Assign Constans segítségével, hogy megjelenjen a mapping menü. A startDate, endDate esetén helyettesítsük a Constans mezőt a currentDate függvénnyel. Ügyeljünk, hogy az év hónap nap kötőjelekkel legyen elválasztva. A currencyNames mező fog egyedül konstans értéket tartalmazni az EUR szöveggel.
Más beállítást már nem kell végeznünk, OK gomb segítségével visszaléphetünk a folyamat szerkesztőbe.
MNB lekérdezése
Az MNB webservice lekérdezéséhez a Request and Reply eszközt használjuk, melyet elhelyezünk a folyamat következő lépéseként. Készítsünk connectort úgy, hogy a Receiver-re húzzuk a megjelölt elemet és válasszuk a SOAP adaptert.
Állítsuk be a megfelelő adatokat a lekérdezéshez a kép alapján:
Válasszuk ki a már feltöltött WSDL fájlt az URL to WSDL mezőben, majd ismét a GetExchangeRates szolgáltatást jelöljük meg.
El is készült az árfolyam lekérdező folyamatunk, melyet a Postman alkalmazás segítségével ki is próbálhatunk.
Ügyeljünk a megfelelő autentikációs adatok megadására, melyre itt a blogban nem térünk ki külön. Hozzáférés beállításához kliens azonosítót és kulcsot kell generálni, melynek lépéseiről itt lehet tájékozódni. A lekérdezés eredménye a napi aktuális árfolyam:
Kommunikációs kapcsolat felépítése
Ahhoz, hogy a kapott árfolyamot SAP Business ByDesign rendszerben rögzíteni tudjuk, létre kell hoznunk a kialakított CPI folyamatunk és a ByDesign közötti kapcsolatot. Ennek megvalósításához a blog első részében bemutatott módon fel kell vennünk a kommunikációhoz szükséges objektumokat a ByDesign rendszerben.
Az árfolyam rögzítéséhez a Manage Exchange Rate In standard API-t használjuk majd, melynek dokumentációja itt érhető el. Ezt az API-t kell tehát a Communication Scenario-ban megadni.
MNB válasz XML formázása
Az MNB oldaláról kapott XML-ben a < és > karaktereket konvertálni szükséges < > jelekre, hogy a kapott XML formátum teljes mértékben használható legyen. Ehhez egy nagyon egyszerű Groovy scriptet használunk, mely könnyen kezelhetővé teszi a kapott XML választ.
A CPI felületen egy Groovy Script dobozt helyezünk el, melyben egy új script-et hozunk létre a create menüpont segítségével. Az új folyamat lépést XML converter-nek neveztem el.
A script tartalma:
Az így kapott MNB válasz XML konvertálás után már a következő formátumú lesz:
ByDesign API üzenet előállítása
Az árfolyam ByDesign rendszerbe írásához szükségünk van egy megfelelő formátumú üzenetre, melyet a fogadó rendszer értelmezni tud. Ennek előállítására a már ismertetett Message Mapping-et használjuk.
Mielőtt azonban összeállítanánk az üzenetet szükségünk lesz egy időbélyegre is, melyet a ByDesign rendszerben, a megadott árfolyamérték érvényességi idejének állítunk majd be. Ennek az időbélyegnek az előállítására egy Content Modifier típusú elemet használunk, amiben létrehozunk egy üzenet tulajdonságot (property-t) a következő módon:
A kifejezés, ami a megfelelő értéket állítja elő a következő: ${date:now:yyyy-MM-dd'T'HH:mm:ss'.000Z'}.
Hozzuk létre a Message Mapping lépésünket a folyamatban. A hozzárendelés bal oldalán az MNB-től kapott és megformázott XML üzenet definíciós fájljára van szükségünk, melyet elő kell állítanunk. Magunk is megírhatjuk ezt a fájlt, vagy használhatunk online konvertert, melyek közül egy itt érhető el. Nincs más dolgunk, mint az előző pontban ismertetett eredmény XML fájlt bemásoljuk a konverter oldalára és az alapértelmezett beállításokkal előállítjuk a kívánt XSD kiterjesztésű állományt.
A Message Mapping-ben jobb oldalra feltöltjük a ByDesign rendszerből kinyert standard API WSDL fájlját, melyet az előző blogbejegyzésben bemutatott módon az Application and User Management pont Service Explorer alpontjában tudunk letölteni. A felugró ablakban az ExchangeRateBundleMaintainRequest_sync szolgáltatást válasszuk ki.
A jobb oldalon rendeljünk constans értékeket az egyes elemekhez, üres értékkel, kivéve a MidRate értéket, ahová a bal oldalról húzzuk át az árfolyamértéket:
Az árfolyam értékben a tizedesvesszőt alakítsuk tizedesponttá a replaceString segítségével:
A korábbi pontban előállított timeStampZ értéket adjuk hozzá az üzenethez:
A getProperty függvény egy egyedileg hozzáadott függvény, melyre külön nem térünk ki, elérhetőségéről, használatáról itt lehet bővebben olvasni.
A következő lépésben a már használt Request and Reply eszköz új példányát helyezzük a folyamatba, melyet beállítunk úgy, hogy az a már definiált ByDesign API hívására alkalmas legyen:
A működéshez fel kell vennük az itt beállított byd_user felhasználót a CPI Monitor \ Manage Security \ Security Material pont alatt. Ez a felhasználó és jelszó páros a ByDesign rendszerben definiált kommunikációs csatornához tartozó felhasználói név és jelszó.
Ugyanígy a CPI Monitor \ Manage Keystore pontban fel kell vennünk az MNB webservice SSL tanúsítványát és annak kiállítóinak tanúsítványát. Ezeket a tanúsítványokat egy böngésző (pl. Firefox) segítségével le kell töltenünk, ki kell exportálnunk, hogy utána a CPI oldalra fel tudjuk tölteni.
A teljes megoldás tehát így néz ki:
Ezt a folyamatot egy Postman alkalmazás hívással indíthatjuk el. Természetesen a megoldáson lehet fejleszteni. Beépíthetünk egy ütemezőt, mely mindig csak a hétköznaponként, 12 óra után indítja a folyamatot, amikor nagy valószínűséggel az MNB már elérhetővé tette az aznapi árfolyam értékeket. Ugyanígy megvalósítható az is, hogy a ByDesign rendszert lekérdezzük, hogy rendelkezik-e már a mai napra érvényes árfolyammal, és attól függően dönthetünk az érték frissítéséről, hogy milyen választ kapunk.
Eredmény
A ByDesign rendszerben így jelenik meg a feltöltött árfolyam érték:
Felhasznált forrás
SAP Business ByDesign integráció
Az SAP Business ByDesign rendszer az SAP kis- és középvállalkozások számára fejlesztett, integrált, felhő alapú vállalatirányítási rendszere, mely alkalmas arra, hogy egy vállalat teljes üzleti tevékenységét működtesse.
Tovább olvasom