cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Reading Deep Structure using RAP(Unmanaged )

Jaman
Participant
0 Likes
4,728

Hello Experts,

We have an existing Odata Service(API) created through SEGW.

Data from Freestyle UI5 application comes as an deep structure to S4H system using this API and we use /IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_DEEP_ENTITY to read it and further post the data using BAPI.

Now we are migrating from SEGW to RAP OData services and using an unmanaged scenario to post the data.

So how do we read the data from deep structure using RAP?

My payload looks like as shown below,

{

"Field1": "Value1",

"Field2": "Value2",

"Field3": "Value3",

"Field4": "Value4",

"Field5": "Value5",

"Item" : [ {

"Field1": "Value1",

"Field6": "Value6",

"Field7": "Value7",

"Field8": "Value8",

"Field9": "Value9",

"Field10": "Value10",

}],

"Note" : [{

"Field1": "Value1",

"Field11": "Value11",

"Field12": "Value12"

},

{

"Field1": "Value1",

"Field11": "Value111",

"Field12": "Value112"

} ],

"Attach" : [ {

"Field1": "Value1",

"Field13": "Value13",

"Field14": "Value14",

"Field15": "Value15"

} ]

}

I have created CDS entity for the above structure and in the behavior implementation, the methods looks like below.

METHODS cba_Item FOR MODIFY

METHODS cba_Note FOR MODIFY

METHODS cba_Item FOR MODIFY

When these methods are triggered from Fiori Elements Application, it does not contain the complete payload but only either (Header + Item) or (Header + Note) or (Header + Attach).

So is it possible get the Complete payload as in the above structure using RAP?

Thanks,

Ahamed

View Entire Topic
j_pavan_kumar
Product and Topic Expert
Product and Topic Expert
0 Likes

Hi makjaman,

You cannot get the entire payload in RAP just like create deep of old SEGW approach. Since you are planning to go for unmanaged scenario, during the interaction phase i.e. create or create by association on the entities keep the payload data in your own buffer tables by using CID and CID_REF of the framework provided identifiers then during your early or late save phase process these buffered tables and call your legacy logic to post data.

Thanks,

Pavan

Jaman
Participant
0 Likes

Hi Pavan,

Thanks for your reply.

May I know what exactly do you mean by buffer tables here? like a database table?

Regards,

Jaman

j_pavan_kumar
Product and Topic Expert
Product and Topic Expert

Hi Ahamed,

Try to create a singleton class and set the member tables (i.e. basically a static internal table) for each of the entities payload you receive in the interaction phase and there by you can access these table in the save sequence.

Thanks,

Pavan

Jaman
Participant
0 Likes

Hi Pavan,

Thanks for the Suggestion. Sure, I will try this out.

Do you think "Draft" functionality would be relevant here?

Thanks,

Jaman