Webszolgáltatások V. Rész: Webszolgáltatások kliens oldani felhasználása
1. WS meghívása és felhasználása ABAP környezetben

1. ábra: Új kliens proxy létrehozása
A Proxy osztály létrehozásának a lépései:
Az SE80-as tranzakcióban az Edit Objectre kattintva kiválaszthatjuk a létrehozni kívánt objektum típusát.
Az Enterprise Services fülre kattintva válasszuk ki a Client Proxy menüpontot, majd az alsó menüsorban az Új létrehozás gombra kattintva megkapjuk a következõ dialógusablakot:

2. ábra: WSDL kiválasztása
Itt lehet meghatározni a webszolgáltatást leíró WSDL file helyét. Ha a leíró file egy UDDI Registry-ben, illetve a XI repository-ban van, akkor további ablakokon keresztül navigálhatunk az osztály készítéséhez. Lehetõségünk van a lokális gépen elmentett leíró file használatára, illetve az interneten közzétett nyilvános WSDL-t is választhatjuk.
Jelen esetben maradjunk meg az URL/HTTP lehetõségnél.

3. ábra: WSDL kiválasztása URL-rõl
http://student.ohecampus.com/projects/group95/stud17/assignment7/validateEmail.asmx?WSDL (2006.12.10)
A kiválasztott példa egy olyan webszolgáltatás, ahol egy tetszõlegesen beírt e-mail címrõl a szolgáltatás visszaküld egy hitelesítést, hogy az létezik-e vagy sem.
Ha itt a program egy HTTP error (return code 400, message "ICM_HTTP_CONNECTION_FAILED") hibaüzenettel tér vissza, akkor azt jelenti, hogy a hálózatban nem sikerült a kapcsolatot megteremteni. Ennek a kezelését a fejezet végén mutatom be.

4. ábra: A package és a prefix meghatározása
A következõ ablak a fejlesztési csomagot kéri tõlünk, melyet akkor kell megadni, hogy ha egy projektben dolgozunk, melynek külön Package van. Mivel most csak a kapcsolatot szeretnénk prezentálni, ezért $TMP–be mentem el, hogy ne kerüljön bele semmilyen transzportba. A prefix-nél, érdemes Z betûvel kezdõdõ kulcsszavat beírni, mert az SAP a Z-vel kezdõdõ névtereket ajánlja a vevõk felé. Az összes többi SAP-pal kezdõdõ prefix a hagyományos fejlesztésekhez tartozik.

5. ábra: A generált proxy osztály beállításai
A program létrehozott egy ZWSCO_VALIDATE_EMAIL_SERVICE_S nevû osztályt, mely a CL_PROXY_BASIS –bõl származik.
A Class Builder tranzakcióban láthatjuk az elkészült objektum paramétereit, az elsõ tab-fülön az osztályra vonatkozó általános beállítások láthatóak, mint például az osztály neve, szülõobjektuma, leírása, láthatósága illetve egyéb adatok a készítõjérõl.

6. ábra: A generált proxy osztály metódusai
A Methods fülre kattintva láthatjuk az osztályhoz tartozó metódusokat. Jelen esetben a konstruktoron és az email hitelesítõ eljáráson kívül más nem található.

7. ábra: A generált proxy osztály kimenõ paramétereinek beállításai
A program a WSDL információkat felhasználva automatikusan létrehoz egy bemenõ és egy kimenõ adattípust, melyek az import és export paramétereket írják le.
Ha a baloldali menüsorban kiválasszuk a Local Objectet és azon belül a TMP objektumokat, akkor az Enterprise Services között megtalálhatjuk a ZWSVALIDATE_EMAIL_SOAP_IN és ZWSVALIDATE_EMAIL_SOAP_OUT típusokat. A tab-fülek között böngészve megtekinthetjük az összes generált Proxy osztályt, illetve a hozzájuk tartozó ki- és bemenõ paraméterek struktúráját.

8. ábra: A generált proxy bejövõ paraméterének a struktúrája
2. Logikai port létrehozása
A létrehozott proxy osztályt sok esetben több rendszer (teszt rendszer, fejlesztõi rendszer stb.. ) kapcsolódik. A fölösleges példányosítások elkerülése végett az SAP egy bizonyos logikai portot készített, mely konfigurálása esetén az azonos osztályt, más-más porton tudjuk elérni, így multifelhasználhatóvá tesszük azt.
Így adjunk meg egy nevet a logikai portnak, majd állítsuk be alapértelmezettnek a legalsó checkbox kijelölésével.
A logikai portot a LPCONFIG tranzakcióban lehet szerkeszteni.

9. ábra: Logikai port adminisztrációja
Ezzel elkészítettük a Poxy osztályt, melyet tesztelhetünk akár az F8 billentyû lenyomása után. A program kéri a bemenõ paramétereket, majd a futtatás gomb után elküldi az adatokat, a kiválasztott webszolgáltatásnak, és a mûvelet végén visszatér az eredménnyel.
A következõ cél, hogy a webrõl nyert adatokat, egy ABAP belsõ táblába, vagy változóba tudjuk elhelyezni, hogy a késõbbiekben tudjunk vele dolgozni. Ezért a programunkban a következõ 3 legfontosabb lépést kell implementálni:
1. referenciaváltozók beállítása az elkészült Proxy osztályra.
2. az osztály példányosítása
3. a szükséges metódusok meghívása
3. Proxy beállítása
A (return code 400, message "ICM_HTTP_CONNECTION_FAILED") hibakód akkor lép fel, ha a hálózat tûzfal mögött van, és a programnak nem sikerül kapcsolódni a megadott WSDL file-hoz. Ebben az esetben az SICF tranzakciót kell segítségül hívni, melyben a következõ képernyõ lefuttatása után a rendszerben éppen futó szolgáltatások listáját kaphatjuk meg.

10. ábra: SIFC tranzakció

11. ábra: A proxy beállítása 1
A Client->Proxy Setting menüpont alatt találhatóak az éppen aktuális Proxy beállítások.

12. ábra: A proxy beállítása 2
A következõ globális beállításokra van szükség: A képen látható elsõ két checkbox-ot aktiválni kell. Illetve a középsõ részben megadhatjuk azokat a webcímeket, amelyekre szeretnénk hogy a proxy beállítások meg legyenek szûrve.

13. ábra: A proxy beállítása 3
A következõ tab-fülön a proxy-nak a host-nevét és portját kell megadni, alapesetben ez megegyezik a böngészõnkben beállított értékekkel, de a leggyakrabban használt port az a 80-as, így én a 8080-as portot adtam meg. Ha a proxy-hogy csak bejelentkezéssel lehet hozzáférni, akkor a középsõ szekcióban megadhatjuk a felhasználónevet és a jelszót is.
Ha bármilyen más hibát tapasztalunk, vagy még mindig fennáll az elõzõ jelenség, akkor az SMICM tranzakció segítségével megtekinthetjük az ICM monitorban a keletkezett hiba log-jait. A kezdõképernyõn a 4. ikonra kattintva kilistázhatjuk az összes log-ot, mely lista legvégén található az utoljára történt kivétel.
Remélem, hogy az itt leírt információk, hasznos segítséget nyújtanak a webszolgáltatások felhasználásához.
Nincs hozzászólása.
A téma megvitatása a fórumon. (0 hozzászólás)


