Fiori app fails to display external project data integrated via OData in SAP PLM portfolio management

We’ve integrated external project data into SAP PLM using OData services, but our Fiori portfolio management app isn’t displaying any of the imported records. The integration runs successfully without errors, and I can see the data in backend tables through SE16. However, the Fiori app shows an empty list where external projects should appear.

The OData service returns data when tested directly, but something breaks in the UI5 model binding. I’ve checked the entity mapping in the service definition and it looks correct. The UI5 model configuration might be missing proper filters or the data binding isn’t handling external entities correctly.

Has anyone dealt with Fiori data binding issues for external project entities? Need guidance on proper OData entity mapping for portfolio apps.

The entity mapping issue usually stems from incorrect navigation property configuration. Your external projects need proper associations defined in the OData model. Check if ProjectSet has the right associations to related entities like tasks, resources, etc. Missing nav properties cause the UI5 binding to fail during data load.

Look at the OData service implementation. The entity set for projects might have a filter in the GET_ENTITYSET method that excludes external sources. I had exactly this - the ABAP implementation had a hardcoded WHERE clause filtering only internal projects. Also check authorization objects - external projects might require different auth checks.

Thanks everyone. I found the root cause and wanted to share the complete solution since this addresses all three key areas.

Fiori Data Binding Fix: The UI5 controller had a hardcoded filter excluding external projects. I modified the binding in Component.js:

this.getView().byId("projectList").bindItems({
  path: "/ProjectSet",
  filters: [new Filter("ProjectSource", "NE", "EXTERNAL")]
});

Changed the NE (not equal) to include all sources or add explicit external filter.

OData Entity Mapping: The service definition was missing proper entity type mapping for external projects. In SEGW, I had to:

  1. Add ExternalProject as entity type with correct property mappings
  2. Ensure ProjectSource field was exposed in the entity set
  3. Implement proper GET_ENTITYSET method to include external records

UI5 Model Configuration: Updated manifest.json to properly configure the OData model with metadata preload:

"models": {
  "": {
    "dataSource": "mainService",
    "preload": true,
    "settings": {
      "defaultBindingMode": "TwoWay",
      "useBatch": false
    }
  }
}

The critical issue was the combination of UI5 filter logic and incomplete OData entity mapping. External projects need explicit inclusion in both the service layer and UI binding. After these changes, all external project data displays correctly in the portfolio app. The key lesson: always verify filter logic in both frontend bindings and backend service implementations when integrating external entities.

Two common culprits: First, entity mapping in your OData service might not properly expose the external flag or project source field. The Fiori app filters could be excluding these unknowingly. Second, check if your external projects have the required mandatory fields that the UI5 model expects - missing fields cause silent binding failures. Run the app with URL parameter sap-ui-debug=true to see detailed model binding logs.

I’ve seen this before. The issue is usually in the UI5 model filters. When you bind external data, the default filters in portfolio apps often exclude non-standard project types. Open your controller and check the binding parameters - you probably need to adjust the filter criteria to include external entities. Also, verify that your OData entity has the required navigation properties that the Fiori app expects. The binding might fail silently if mandatory associations are missing. Check browser console for binding errors.