Skip to Content

A sample example for XSOdata  with Navigation Property


Scenario of Purchase Order(PO) Header and Item: In a single service we can navigate to Item level from Header to Item with Association .

Lets start with very basic example of VBAK (PO Header), VBAP(PO Item).


Example Code in a .XSOdata file


service namespace "workshop.aisurya.XSOdata" {
"<YourSchema>"."VBAK" as "POHeader" with ("MANDT","VBELN","ERDAT") navigates ("ToPoItemAssctn" as "ItemRef");
"<YourSchema>"."VBAP" as "POItems" with ("MANDT","VBELN","POSNR","MATNR","ARKTX");
association "ToPoItemAssctn" principal "POHeader"("VBELN")
multiplicity "1" dependent "POItems"("VBELN") multiplicity "*";
}

Below Image for reference

/wp-content/uploads/2016/02/1_895801.png

Activate the changes and Run As XS Service.

Lets check the Metadata of service.

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/$metadata

/wp-content/uploads/2016/02/2_895817.png

As highlighted in the image(ItemRef) is a navigation property from Header to Item level.

Lets test the service only for 2 records by providing query option as (top=2).

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/POHeader?$top=2&$format=json



/wp-content/uploads/2016/02/3_895819.png

Here ItemRef is the navigation property of corresponding PO Items with URI. We can explicitly open in new tab and get the result also .

Now lets check Expand option for Showing Header and Corresponding Items.

$Expand Feature to fetch Corresponding Item along with Header.

https://<Host:Port>/workshop/aisurya/XSOdata/po.xsodata/POHeader?$top=2&$format=json&$expand=ItemRef

POHeader (MANDT=’800′, VBELN=’0000004970′)


/wp-content/uploads/2016/02/4_895828.png



Now this service can be consumed in different UI ‘s  depending upon the requirement.


To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Bharadwaj Ogirala

    can you please explain how to consume this URI into the UI elements like tables ? for eg : i have a deader table and when i click i want another table to fill with item details.

     

    (0) 

Leave a Reply