cancel
Showing results for 
Search instead for 
Did you mean: 

Extending Standard Fiori app oData service

Former Member
0 Kudos

Hello,

We are in process of extending standard Fiori app, Track Purchase order.

For which, we have got the standard service in the Gateway builder(SEGW).

In the service Data model is getting displayed fine, but in service implementation all the entity sets mappings are empty.

Are there any steps for the same.

Please guide.

Regards,

Ajay

Accepted Solutions (1)

Accepted Solutions (1)

kammaje_cis
Active Contributor
0 Kudos

Ajay,

This is by design.

Service implementation will be empty in the new service, but it will inherit from the parent. If you define a new mapping in the new service, then the parent's implementation will be redefined.

Former Member
0 Kudos

Hi Krishna,

Yes, that is fine for newly created service.

But, when I am trying to use/display the standard service, these mappings are empty too.

So, how do I get the standard mappings defined in standard odata service.

Please guide.

Regards,

Ajay

Pavan_Golesar
Active Participant
0 Kudos

Hi Krishna Kishor Kammaje,

                    are you saying this case for 'propose mapping'? where we click to do auto field mapping of data models properties with those of bapi's fields...


Krishna Kishor Kammaje wrote:

Ajay,

This is by design.

Service implementation will be empty in the new service, but it will inherit from the parent. If you define a new mapping in the new service, then the parent's implementation will be redefined.

thanks for clearing small aspects of gateway..


Best Regards,

Pavan Golesar

kammaje_cis
Active Contributor
0 Kudos

That just means that BOP/RFC mapping was not used for implementing the service. The service was developed using code approach.

Anyway I would suggest you to be away from BOM/RFC approach of developing/implementing. I have not found them to be really useful other than for demo purposes. I have not seen any Fiori app, that uses an OData service developed using BOP/RFC mapping.

Former Member
0 Kudos

Hi Krishna,

That is ok if mappings are not crated using BOP/RFC.

But, when I see application running in Launchpad, that means these mappings should be defined in service so as to provide data in Front end.

So, although mappings are defined using code approach, we would be able see those in service implementation.

Please guide, if I misunderstood something.

Regards,

Ajay

Pavan_Golesar
Active Participant
0 Kudos

Hello Krishna,

          well, you mean to suggest that even though we have standard bapi's available eg.for sales order listing, we shud'nt go for rfc approach of implementing..??? instead use the code approach to get the job done.. right???


Krishna Kishor Kammaje wrote:

That just means that BOP/RFC mapping was not used for implementing the service. The service was developed using code approach.

Anyway I would suggest you to be away from BOM/RFC approach of developing/implementing. I have not found them to be really useful other than for demo purposes. I have not seen any Fiori app, that uses an OData service developed using BOP/RFC mapping.

kammaje_cis
Active Contributor
0 Kudos
when I see application running in Launchpad, that means these mappings should be defined in service so as to provide data in Front end.

Mappings in SEGW have nothing to do with data binding in FIori/UI5 app. Data binding in Fiori is done at UI5 programing.

kammaje_cis
Active Contributor
0 Kudos

Thats right. Gateway services should be designed outside-In design approach and code based development is the way to go in that direction. Outside-In means services have to be designed as per the requirements of the UI5 app. (not based on what is available, BAPI/RFC). BAPI/RFCs are designed for traditional screens (GUI) and are not suitable for the new way of things.( You may call these BAPIs ultimately in the code.)

If these wizards are really useful, then we should have found them used in many FIori OData services. But I cannot find even one such OData service.

Former Member
0 Kudos

What I am asking is, if some application is consuming some odata service, then query/read mappings should be defined in the service implementation part, is it so?

In UI5 programming, we might call those entity properties defined in odata service.

e.g. { "POLists" }

Please guide.

Regards,

Ajay

Pavan_Golesar
Active Participant
0 Kudos

yes, Its helpful krishna...

Thanks alot.

kammaje_cis
Active Contributor
0 Kudos

As I said your UI has nothing to do with SEGW mappings.

Here "POLists" is just an Entityset name. It is not talking about mapping. UI5 does not care if this Entityset is implemented by code approach or by mapping.

Former Member
0 Kudos

Thanks Krishna for the explanation.

Things are much clear now.

Regards,

Ajay

Answers (1)

Answers (1)

former_member185875
Contributor
0 Kudos

Hi Ajay,

Could you please help me the screen shots, for this you need to create a new project in SEGW and Right Click on "Data Model" node select "Redefine" --> "OData Service (GW)"and provide standard service and follow the wizard and do the customization need.

Thanks,

Lakshman Balanagu.

Former Member
0 Kudos

Hi Lakshman,

Thanks for the reply.

I did follow the steps you mentioned.

Please find below screens for the same:

Now, I am able to get the Entity type details in Data Model.

But, in the service implementation, entity set mappings are all empty.

Please guide.

Regards,

Ajay

former_member185875
Contributor
0 Kudos

Hi Ajay,

In this case, SAP implemented the service by provide ABAP code in respective (GetEntity, GetEntitySet, CreatEntity, UdateEntity,DeleteEntity.) methods.

If RFC/BOR mapping done, while developing the service then only you can see under service implementation.

in "Run-time Artifacts" right click on ZSRA020_*****_DPC_EXT class and "Go To ABAP Workbench" and you can see all the methods inherited from standard class.

You can right click on required method and redefine and implement your custom logic.

Thanks,

Lakshman Balanagu.



Pavan_Golesar
Active Participant
0 Kudos

Hello Ajay,

     It seems you are yet to do the mapping within the service that you have create.

I suggest, goto 'Runtime Artifacts' ->> now you'll see all classes created (If you have clicked on generate button u'll see this) if you have done till this then Right click on the class named CL_ZSRA020_PO_TRACKING_DEMO_DPC_EXT. and 'goto abap workbench'. now redefine the class and add your custome code in get entity and get entityset of respective method.


Hope this resolves the issue.

Thanks,

Pavan Golesar.


Ajay Kulkarni wrote:

Hi Lakshman,

Thanks for the reply.

I did follow the steps you mentioned.

Please find below screens for the same:

Now, I am able to get the Entity type details in Data Model.

But, in the service implementation, entity set mappings are all empty.

Please guide.

Regards,

Ajay