This error occurs when you try to use the Publish Locally button in ABAP Development Tools (ADT/Eclipse) for an OData V4 service binding inside a client configured for customizing or testing.
ADT local publishing is restricted in these clients; instead, you must publish the service manually using SAP GUI transaction /IWFND/V4_ADMIN.
How to Fix the Error
Activate in ADT: Open your Service Binding in ADT (Eclipse) and make sure it is activated, but do not click "Publish Locally".
Open Gateway Administration: Log in to your SAP system and run transaction [/IWFND/V4_ADMIN](https://help.sap.com/docs/SAP_FIORI_OVERVIEW/9b4ee51ce91e4a9cadd5e6d43c2992ba/10ac7f6e59fa43508d486aa8997384c1.html).
Publish Service Group:
Click the Publish Service Groups button.
Select your system alias (e.g., LOCAL) and click Get Service Groups.
Find and select your Service Group ID from the list, then click Publish Service Groups again.
Assign Request: Provide a customizing or transport request if prompted by the client settings.
Refresh ADT: Go back to Eclipse, select your Service Binding, and press F5 to refresh
One correction before the steps: Eclipse is not the right tool for Fiori/UI5 frontend development — SAP deprecated the old SAPUI5 Eclipse tools years ago. [Certain] For Fiori you'd use SAP Business Application Studio or VS Code with the UI5 tooling/Fiori tools extensions. What Eclipse does give you is the ABAP side of Fiori work: RAP, CDS views, behavior definitions, service bindings, metadata extensions — everything backing a Fiori Elements app. If that's what you meant, the steps below cover it.
1. Install Java (usually skippable)
The latest Eclipse packages are bundled with Eclipse Temurin (OpenJDK), and ADT is validated against Java 21 — so no separate JDK install is needed. Ondemand
2. Download Eclipse
Get Eclipse 2026-06, e.g. the "Eclipse IDE for Java Developers" package from eclipse.org/downloads. Extract the zip and run eclipse.exe — no installer needed if you take the zip package. Ondemand
3. Install ADT
In Eclipse: Help > Install New Software..., enter the URL https://tools.hana.ondemand.com/latest and press Enter Ondemand
Select "ABAP Development Tools", choose Next, confirm the license agreements, and Finish Ondemand
Trust the certificates when prompted, then Restart Now Sapvista
4. Open the ABAP perspective
Window > Perspective > Open Perspective > Other > ABAP. SAP
5. Create your system connection
File > New > ABAP Project. Eclipse will offer the systems from your SAP Logon (saplogon.ini) — pick your server and log in with your credentials. [Likely] You'll want SAP GUI for Windows installed first for on-prem systems, since ADT reuses those connection entries and launches GUI for classic transactions (SE11 embedded views, debugging of dynpro screens, etc.). For BTP ABAP Environment / S/4HANA Cloud, use "ABAP Cloud Project" instead with the service key or browser login — no GUI needed. Sapvista
6. Backend prerequisite (on-prem only)
[Certain] The backend must have the ADT services activated (SICF nodes under /sap/bc/adt) — on any reasonably current S/4HANA system this is already done, but if you get HTTP 403/404 errors on connect, that's where Basis needs to look.
Recommended extras from the same update-site dialog or marketplace: ABAP Cleaner, abapGit plugin for Eclipse.
For the Fiori frontend side, install VS Code + the "SAP Fiori tools" extension pack and Node.js — that's the current toolchain, not Eclipse.
These three types represent a layered architecture (also called the VDM – Virtual Data Model) used in SAP S/4HANA to structure CDS views by responsibility and reuse.
1. Basic View (@VDM.viewType: #BASIC)
Purpose: Sits directly on top of database tables or database views. It maps raw persistence layer data into a semantically meaningful structure.
Characteristics:
Accesses only one or very few base tables (minimal joins)
Contains no aggregations
Defines primary key, associations, and field-level annotations (e.g., @Semantics)
Acts as the single source of truth for a business entity
Example use: A basic view on EKKO (Purchase Order Header) that exposes PO fields cleanly.
2. Composite View (@VDM.viewType: #COMPOSITE)
Purpose: Combines and joins multiple Basic Views (or other Composite Views) to build a richer, more complete business object or business context.
Characteristics:
No direct access to database tables — always consumes Basic or other Composite views
Can include joins, unions, and calculated fields
Still mostly transactional/reporting-neutral — focuses on combining entities
Reusable across multiple consumption scenarios
Example use: A composite view joining PO Header and PO Item basic views to form a complete purchase order view.
3. Consumption View (@VDM.viewType: #CONSUMPTION)
Purpose: Tailored for a specific consumer — an app, report, API, or UI. It is the outermost layer exposed to the end user or application.
Characteristics:
Consumes Basic or Composite views (never touches tables directly)
Contains use-case-specific projections, filters, and annotations
Heavily annotated for the target consumer: @UI, @OData, @Analytics, @Search, etc.
May include aggregations (for analytical consumption)
Often not reused by other CDS views — it's purpose-built
Example use: A Fiori Elements list report view for Purchase Orders, with @UI.lineItem annotations.
Summary Table
Aspect
Basic View
Composite View
Consumption View
Accesses DB Tables
✅ Yes
❌ No
❌ No
Joins other CDS views
Minimal
✅ Yes
✅ Yes
Reusability
High
High
Low (purpose-built)
UI/OData Annotations
Rare
Rare
✅ Heavy
Aggregations
❌ No
Rarely
✅ Yes (analytics)
VDM Annotation
#BASIC
#COMPOSITE
#CONSUMPTION
Key Design Principle
Changes cascade upward, not downward.
If a table structure changes, you only fix the Basic View — Composite and Consumption views remain stable. This layering promotes stability, reuse, and separation of concerns, which is central to SAP's clean core philosophy in S/4HANA.
If you are using a CDS view, ensure that you annotate the fields appropriately for editing using annotations like @UI.fieldGroup for forms and @UI.lineItem for table display.
Step 4: Deploy to SAP Fiori Launchpad
Deploy the Fiori App to the ABAP Repository:
In SAP Web IDE or BAS, right-click on the project and select Deploy > Deploy to ABAP Repository.
Provide your SAP system details and select the package and transport request.
Configure the Fiori Launchpad:
Access the Fiori Launchpad Designer using the T-code /UI2/FLPD_CUST.
Create a new Catalog and Group.
Define a new Tile for the app in the catalog.
Set up Target Mapping to link the tile to your deployed Fiori app by entering the Semantic Object and Action.
Assign the Tile to a Role:
Use PFCG to create a new role or update an existing role.
Assign the catalog or tile to the user roles that will have access to the app.
Step 5: Assign Roles and Access in Fiori Launchpad
Assign Roles to Users:
In PFCG, add the catalog or group to the role and assign the role to the relevant users.
Users assigned with the role will see the app tile in the Fiori Launchpad.
Step 6: Test and Use the App
Test CRUD Operations:
Access the Fiori Launchpad as the user.
Click on the app tile and test the CRUD operations (Create, Update, Delete) for the SAP table.
Verify that you can maintain the SAP table's data directly from the Fiori UI.
By following these detailed steps, you will be able to create a Fiori app that allows users to maintain (Create, Update, Delete) data in an existing SAP table through the SAP Fiori Launchpad without using SE11 or SE80 directly.