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


Activate the changes and Run As XS Service.

Lets check the Metadata of service.



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).



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.


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


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

To report this post you need to login first.


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

  1. Former Member

    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.


  2. Luis Benavides

    Hi Aishwarya,

    Many thanks for your post, it’s make me helped to understand the syntax of OSDL of the navigation property (association).

    Well done 🙂

  3. Divi Srilaxmi

    Hi Aisurya,

    Thank you for the information!


    Could you please tell me how we can add conditions in the code? Ex. If I need VBTYP = ‘C’ records, In this case how can I add my condition?


Leave a Reply