cancel
Showing results for 
Search instead for 
Did you mean: 

Binding Issue - Custom Fiori app - Approve Requests (Wave 2) as base

Former Member
0 Kudos

Hi,

We are developing a few different custom fiori applications with 'Approve Requests' fiori app as the base. In our custom view replacing S3.view, we have a added a table which shows the line item details of a PO. This is what we have done so far.

1. Redefine the service /IWPGW/TASKPROCESSING into our custom Odata service. Here, we have a new entity 'LineitemDetails', entityset 'LineItemDetailsCollection', defined the association to Task, defined the referential constraint(property 'InstanceID')., created the navigation.

Result: metadata shows up the new entity.

2. Redefined the methods in the _EXT data provider class generated in SEGW to populate data.

Tested using /sap/opu/odata/sap/ZVFIORI_NEW_SRV/TaskCollection('000016511693')/LineItemDetails:

Result: The correct entityset is returned with the data

3. For initial prototyping, we started with modifying S3.view directly (we will be using fiori toolkit to replace the standard view with custom views later when we move from Sandbox to Dev). I added a table in the info tab. below is the code:


<Table headerText="Line Item Details"

  items="{LineItemDetails}" >

  <columns>

  <Column>

       <header><Label text="Item Name" /></header>

  </Column>

  <Column>

       <header><Label text="Quantity" /></header>

  </Column>

  <Column>

       <header><Label text="Price" /></header>

  </Column>

  <Column>

       <header><Label text="WBS/Cost Center" /></header>

  </Column>

  </columns>

  <ColumnListItem>

       <cells>

            <ObjectIdentifier

               title="{LineText}"

               text="(LineitemNo)" />

            <ObjectNumber

               number="{LineQuantity}"

               unit="{UOM}" />

            <ObjectNumber

               number="{LineAmount}"

               unit="{LineCurrency}" />

            <ObjectIdentifier

               title="{WBSCCDescription}"

               text="{WBSCC}" />

       </cells>

  </ColumnListItem>

  </Table>

Apart from configuring the application to use the new custom service, we kept ourselves from making any other changes to standard application code base for testing this. After adding the above code in S3.view, we tested the application. However, the results were very surprising.

Now the application is launched and i can see the columns. however, data is not shown. Also, the weirder part is that when i select a different workitem from the list, the application automatically selects back the first item in the list. So no matter what i select, it re-selects the first list item(i.e., from S2.view).

immediately I checked if anything is wrong in the gateway side. I put a breakpoint in GET_ENTITYSET method which should be called with iv_entity_type= 'LineitemDetails'. Breakpoint hit as expected for 'LineitemDetails' Entity. So, that part is working as expected. I verified this with /IWFND/TRACES using the payload trace. I could see the request for  /TaskCollection(SAP__Origin='ECC_TP',InstanceID='000016511693')/LineItemDetails?$skip=0&$top=100&$inlinecount=allpages&sap-client=100.

From the UI side, adding the table to S3.view was the only 1 change we kept and we could see the table and columns. there seems to be some issue with the binding, however i am out of ideas as to what is going wrong here. What do you guys think the problem is here?

Best Regards,

Varun

Tags edited by: Michael Appleby

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Any ideas from the forum?

To me it looks like an SAPUI5 library issue which is causing the view to re-render due to the table control's direct property binding. I raised the issue with SAP.

Former Member
0 Kudos

First of all you should not be modifying std SAP code as this is not good practice. Pls look for Extension Points in S3 View and then enhance. if you go to help.sap.com/fiori it is documented there for the Approve Request app and the extension points. Please check and implement that. After that pls post what is not working clearly to help understand. Right now if you report this as a problem, from SAP standpoint is is core modification which is obviously not going to be supported but if you extend the app and say a specific extension point is not working then there is something to look at.

thanks

a

Former Member
0 Kudos

Hi Ashish,

Being an ex-SAP employee, i understand what you are saying.

However, i posted the problem in this forum by mentioning to add the table directly in S3, so that it is easier for any one to understand(can be an SAP fiori expert or any non-SAP HTML5 developer). May be i shouldn't have put my question that way. So, i will give more information keeping the modification boundaries in mind.

I also tested using the extension points CustomerExtensionForAdditionalDetails to add my table. It is the same result. Additionally, I have also used the fiori toolkit, created an extension project and used the replace view option to replace the standard S3 with our custom S3. Even that test leads me to the same result, the same issue. So, basically whatever method i follow, with modification or without modification of standard, the results are the same.

However, in the message, I am not expecting SAP developers to see this as an issue with FIORI approve request application. Because it is not. Although, I would rather expect the SAP developers to see this as an issue with the SAPUI5 core libraries. I hope there is a difference.

Thanks,

Varun