Cerca nel blog

giovedì 7 settembre 2023

Creazione Servizio Odata mediante BAPI

Creazione Servizio Odata mediante BAPI


Richiamare la transazione SEGW, creare un nuovo Progetto, premendo il pulsante NEW:

Sulla cartella Data model, tasto dx, selezionare Import ->RFC/BOR Interface

Inserire il nome della Entity, se il gateway è presente sulla stessa macchina, selezionare LOCAL, altrimenti Remote.

Selezionare il type “Remote Funcion Call”, ed inserire il nome della BAPI da usare


Come Entity selezionerei solo la tabella di output SALES_ORDERS, quindi premendo il pulsante NEXT, seleziono SALES_ORDERS con tutti i campi (e possible anche selezionare solo alucni campi di questa tabella)

Indico la Key “Doc number” e premo il pulsante Finish.

Premo il pulsante “Generate Runtime Objects”. In questo modo vengono generate le classi associate al nostro Odata.

Nella cartella Entity Types -> SalesOrder -> Properties, settiamo il flag NULL, per tutte quelle properties che ha il tipo Edm.DateTime e Edm.Time


Nella Cartella Service Implementation -> SalesOrderSet -> GetEntitySet (Query) tasto dx, seleziono “Map to Data Source



Nella schemata successiva far il mapping dei campi della Entity con i campi della Bapi, premendo il pulsante “Propose Mapping”.


Cancello i campi doppi che non sono mappati con la struttura SALES_ORDES, tipo il materiale  e materialLong

Inserisco i campi di input obbligatori della BAPI: SoldTo e SalesOrg


Premo il pulsante “Generate Runtime Objects”.

Se andiamo a vedere il  metodo SALESORDERSSET_GET_ENTITYSET della classe ZCL_ZBAPI_SALES_ORD_01_DPC_EXT, vediamo che è stato scritto tutto il codice con il richiamo alla bapi

Registriamo il servizio richiamando il servizio /n/IWFND/MAINT_SERVICE

Premiamo il pulsante Aggiungere servizio

Inserire l’Alias e il nome del nostro servizio, battere invio, selezionarlo e premere “Aggiungere servizio selezionati”


Ritornare nella lista dei servizi e vedere se vediamo il servizio creato


A questo punto eseguiamo la transazione /n/IWFND/GW_CLIENT per usufruire del servizio creato

/sap/opu/odata/sap/ZBAPI_SALES_ORDER_PRJ_SRV_02/SalesOrdersSet?$filter=SalesOrg eq 'Z233' and SoldTo eq '23100001'&$format=json

Estrae i dati

Chiamata con TOP e SKIP

Top3 = significa che ci estrae I primi 3 record

/sap/opu/odata/sap/ZBAPI_SALES_ORDER_PRJ_SRV_02/SalesOrdersSet?$filter=SalesOrg eq '2310' and SoldTo eq '23100001'&$top=3&$format=json

Skip1 = significa non estrae il primo record

/sap/opu/odata/sap/ZBAPI_SALES_ORDER_PRJ_SRV_02/SalesOrdersSet?$filter=SalesOrg eq '2310' and SoldTo eq '23100001'&$skip=1&$format=json

Possiamo usare insieme sia Skip che Top ad esempio

/sap/opu/odata/sap/ZBAPI_SALES_ORDER_PRJ_SRV_02/SalesOrdersSet?$filter=SalesOrg eq '2310' and SoldTo eq '23100001'&$top=3&$skip=1&$format=json

 In questo caso estriamo non consideriamo il primo record ed estraiamo I successivi 3 record



Nessun commento:

Posta un commento