Maak een eenvoudige OData SAP Gateway Service | Cadena Blog
maak uw eerste zeer eenvoudige OData SAP Gateway Service
er is op dit moment zo veel informatie en schijnbaar nieuwe technologieën beschikbaar over het ontwikkelen van mobiele en responsieve applicaties binnen SAP dat het erg moeilijk maakt om te weten waar te beginnen. Dus Fiori is de toekomst samen met SAPUI5, hoe zit het met de SAP Gateway en OData, of zelfs HANA,Ariba(of hoe het ook heet) en de eindeloze andere namen en technologieën rond….. Hoe passen deze allemaal in het grote plaatje voor een SAP Ontwikkelaar?
laten we beginnen op het grondniveau, d.w.z. de Netweaver Gateway waar traditionele SAP ABAP-vaardigheden vereist zijn als onderdeel van het bouwen van een Fiori-app.De SAP Gateway is eigenlijk al vele jaren, maar met de verhuizing naar Fiori/Mobile/Responsive apps het wordt steeds meer gebruikt en is nu een belangrijk onderdeel van uw SAP landschap.Met de Gateway kunnen gegevens binnen uw SAP-systeem(s) worden benaderd door de buitenwereld via OData-diensten.
…in deze nieuwe Fiori-wereld wordt de front-end gemaakt met SAPUI5 met behulp van de Web-IDE,
…dit roept een OData-service aan die op uw SAP-systeem is aangemaakt via de SAP-Gateway
…de OData-service gebruikt ABAP om SAP-gegevens op te halen en retourneert deze via de OData-service
het voorbeeld hieronder laat u zien hoe u snel uw eerste OData-Gatewayservice kunt maken met behulp van basisabap-code om gegevens uit een standaardtabel te selecteren.
Stap 1-SAP Netweaver Gateway Service Builder
ga eerst naar transaction SEGW waar u uw service kunt bouwen
Stap 2 – Create project
vervolgens moet u een project maken om al uw gegevensmodellen, implementaties, entiteitstypen, entiteitssets enz.op te slaan. Maak je niet te veel zorgen over de terminologie in dit stadium, alles zal duidelijk worden.
Stap 3 – Voer projectdetails in
voer een naam, beschrijving en pakket in. Laat al het andere als standaard, tenzij je weet dat je iets specifieks nodig hebt.
Stap 4-Import ddic structuur
we gaan dit voorbeeld baseren op een subset van de standaard SAP tabel EKKO. Binnen het nieuw aangemaakte project,klik met de rechtermuisknop op het" Data Model " knooppunt en selecteer Import – >Ddic structuur
Stap 5 – voer structuurdetails
voer EKKO in binnen het ABAP structuurveld en voer een object een naam in, d.w.z. koopvolgorde
Stap 6 – Bekijk eigenschappen
vouw het nieuw aangemaakte knooppunt uit "Entity Type->koopvolgorde" en dubbelklik op het knooppunt eigenschappen
we gaan gewoon de bovenste paar velden gebruiken dus Selecteer alle velden hieronder Statu en verwijder ze
totdat het er zo uitziet
Opmerking: De reden dat ik niet het gebruik van alle velden is omdat sommige niet compatibel zijn met een gateway service zonder het gegevenstype te wijzigen.Ik zal je laten zien waar je de fout verder naar beneden zou krijgen als je alle velden had gebruikt. Deze informatie kan alleen maar helpen u de errorquicker begrijpen wanneer u het creëren van een voor echt in de toekomst.
Stap 7 – Entity Set
Sla uw proces tot nu toe op en klik met de rechtermuisknop op het entity Set knooppunt en selecteer Create
Stap 8 – alternatieve manier om Entity Set
aan te maken of dubbelklik op het entity Set knooppunt en klik vervolgens op de rij knop Toevoegen
stap 9-Entity set details
Geef de entity set naam (meestal een meervoud van het Entity Type))
selecteer vervolgens het entiteitstype uit selectie-invoerhulp
eenmaal geselecteerd druk op ok (groen vinkje))
Entiteitset is nu aangemaakt
stap 10-genereren gateway-service
dubbelklik eerst op het projectknooppunt en genereer het hele project met de knop "Runtime-objecten genereren"
u zult nu merken dat er Service-Implementatieobjecten zijn gemaakt.Create, Delete, GetEntity(Read), GetEntitySet (Query) and Update
stap 11-Active and maintain service
nu moet je naar transactie "/ IWFND / MAINT_SERVICE " ik vind altijd dat ik dit alleen aan de slag kan krijgen als iadd /n aan het begin i. e. /n /IWFND/MAINT_SERVICE
stap 12 – service toevoegen
binnen/N / IWFND / MAINT_SERVICE klik op de knop service toevoegen
voer vervolgens de informatie in van de service die u wilt toevoegen (let op dat u op dit punt jokertekens kunt gebruiken om uw service te vinden)
druk op enter om uw dienst of diensten te vinden die aan uw zoekcriteria voldoen. Zodra het klikt op degene die u wilt toevoegen
het volgende scherm toont u de geselecteerde service details, voer pakket details (dwz lokaal Object)en laat alles als standaard. Druk vervolgens op de ok-knop (groen vinkje))
u moet nu ontvangen een bericht popup dat uw service "is gemaakt en het is metadata succesvol is geladen"
stap 13-Zoek uw toegevoegde service
u zult nu worden geretourneerd naar de service catalogus, afhankelijk van het aantal services dat u in uw systeem hebt ingesteld, moet u de filterfunctionaliteit gebruiken om uw nieuw toegevoegde service te vinden.
u ziet nu de service setup details en een groen verkeerslicht naast het OData ICF knooppunt in de linkerbenedenhoek.
stap 14-SAP Netweaver Gateway Client
we moeten het nu testen met behulp van de SAP Netweaver Gateway Client, die toegankelijk is via de" Gateway Client "knop net boven het OData knooppunt in de linkerbenedenhoek
, waardoor de aanvraag URI als standaard" / sap/OPU / odata / sap / ztest_project_srv/?$format = xml "klik gewoon op de" Execute "knop
u krijgt dan een HTTP respose vergelijkbaar met deze met een groene status_code
stap 15 – verdere tests via SAP Netweaver Gateway Client
nu kunt u de URL zo wijzigen dat het eindigt met" $metadata?sap-ds-debug = true " en druk vervolgens opnieuw op uitvoeren, zodat we metadata-eigenschappen van de inkooporder entiteit kunnen retourneren
"/sap / opu / odata / sap / ZTEST_PROJECT_SRV/$metadata?sap-ds-debug = true"
wijzig nu de URI om "/inkooporders te hebben?sap-ds-debug = true " aan het einde, zodat we de gegevens van de entity set inkooporders kunnen richten
"/sap / opu / odata / sap / ZTEST_PROJECT3_SRV / inkooporders?sap-ds-debug = true"
wanneer u op uitvoeren drukt, moet u de volgende fout krijgen, omdat we de methode die deze gegevens nog niet heeft geïmplementeerd
stap 16-implementeer GetEntitySet methode
keer nu terug naar de SEGW-transactie en vind de service implementatiemethoden die eerder zijn gemaakt. Zoek de ene calledGetEntitySet (Query) en klik er met de rechtermuisknop op. Selecteer vervolgens "Ga naar ABAP Workbench"
het volgende bericht verschijnt dat de bewerking nog niet is uitgevoerd. Klik gewoon op ok
u wordt nu naar tcode SE80 gebracht. In de objectlijst aan de linkerkant vindt u de INKOOPORDERS_GET_ENTITYSET methode met methoden – >overgenomen methoden.
zodra u dit hebt gevonden, klik er met de rechtermuisknop op en selecteer herdefiniëren
binnen de methode code die verschijnt voeg gewoon de volgende ABAP select statement
tot 10 rijen
uit ekko
in overeenkomstige velden van TABLE et_entityset.
stap 17-de dienst opnieuw testen
de URI opnieuw wijzigen in "/sap/OPU/odata/sap/ztest_project_srv/inkooporders?sap-ds-debug = true"
deze keer krijg je een aantal gegevens terug
stap 18-verdere info
onthoud dat ik zei dat niet alle velden uit de Ekko tabel gebruikt werden, omdat sommige niet te verwerken zijn.Als u ze allemaal had opgenomen bij het uitvoeren van de URI " /sap / OPU / odata / sap / ZTEST_PROJECT_SRV / inkooporders?sap-ds-debug = true " u zou de volgende http-foutmelding hebben ontvangen:
Stap 19 – Verdere ontwikkeling
De volgende stap is om toegang te krijgen tot deze gateway-service van uw SAP Fiori App
Stap voor stap instructies over hoe u uw eerste web transactie is gebaseerd op een standaard ABAP-dialoog-programma met behulp van SE80