Skip to Content
avatar image
Former Member

Extending oData and UI Fiori Services

Hi All,

Just want to know how extending Fiori works. Our situation is that we would like to create two tiles of the same app (PO Approval). One tile will be the standard FIORI PO Approval App while the other is the customized FIORI PO Approval App.

As far as I know, we can extend the UI by uploading our extended app with a new name, creating a new tile and role.

But what if we are also going to customize the oData services. Our plan is to copy the original oData service (say GBAPP_POAPPROVAL) and just customized the copied version (Z_GBAPP_POAPPROVAL). How can we link the customized oData with the UI? Does that mean that we need to edit every oData call in our customized App? Or is it better to just edit the original oData service?

Thanks in advance.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    Jan 27, 2014 at 02:02 AM

    Hi Melanie,

    Please look at the how to guide.

    If application provides BADI, BADI is easier and quicker to implement a solution.



    SAP Rapid Innovation Group - RIG

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Masayuki Sekihara

      Hi Masa,

      We have leveraged using BADI's available for SRM_PURCHASEORDER up to the last request received, where we added a new entity type to support Smart forms PDF display of Purchase Order data. We resulted in creating a brand new Odata Service to follow SCN example Display Smartform (PDF) in SAPUI5 . We successfully tested PDF rendering of PO via backend t-code /IWFND/GW_CLIENT; however when we attempted to call new service Z_SRM_PO_APP_SRV from HCP Web IDE we receive the following error:

      "error":{"code":"005056A509B11EE1B9A8FEC11C21D78E","message":{"lang":"en","value":"Resource not found for the segment 'WorkflowTasks'."},"innererror": ...........

      Backend error log states the following:

      The request URL or the metadata definition is incorrect.

      Message no. /IWFND/MED167

      Possible reasons are

      • The URL contains a segment with a wrong name. E.g. the requested entity set or function import does not exist.
      • The metadata definition is not correct. E.g. the definition of an association references to an entity set that does not exist. This is especially likely if two services have been composed via method INCLUDE_MODEL_BY_SERVICE_ID in the BEP Add-On.

      I noticed the standard definition Entity Set ' "WorkflowTasks" property is “Not Addresable". Is this the reason why we are getting error message? How can I change this property as it is currently not available for me to edit in SEGW? 

      A second approach is to create the “pdf” Entity Type in BADI IF_SRM_PURCHASEORDER_MPC~ENHANCE_GW_SERVICE_ENTITY_MPC but I am not sure I can accomplish the same results?

      Your feedback is very much appreciated.

  • avatar image
    Former Member
    Mar 05, 2014 at 11:35 PM

    Hi there,

    Masa is correct when saying you should be using a BADI, because you are just adding fields to the odata structures no harm should come to your current Fiori application as it should still only read the fields it needs, by adding fields to the service all you are doing is making the odata service more robust.

    as for actually updating the odata service.. do to the following;

    1. Extend the fields of the structure you want to add to the new application.
    2. Create the BADI (enhancement spot GBAPP_APV_PO in transaction SE18),  here you can populate and handle data based on your requirements, instructions can be found at here .
    3. before you can see your service working make sure you clean the cache on both the GW and ERP system. just use transactions /IWFND/CACHE_CLEANUP on GW and  /IWBEP/CACHE_CLEANUP on ERP, if you don't do this, don't expect to see your fields in the odata 🤪

    GL and if you want any more help, feel free to send me a msg.



    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Shaun,

      I can see the field in my oData but not in app.

      Please refer link and guide.



      Saurabha J