Launchpad & Content

Semantic Object

A semantic object in SAP Fiori is the name of a business entity, such as PurchaseOrder or SalesOrder, that forms the first half of a navigation intent. Combined with an action, as in PurchaseOrder-display, the semantic object lets the launchpad find a matching target mapping without the calling app knowing which application will open.

Quick facts

Type
Navigation metadata (business-entity identifier)
Layer
Content, navigation & access
Defined in
/UI2/SEMOBJ_SAP (SAP-delivered) and /UI2/SEMOBJ (custom) on ABAP; app descriptor inbounds on SAP BTP
Used by
Tiles, target mappings, app descriptor inbounds and outbounds, smart links
Example
PurchaseOrder with actions display, manage and displayFactSheet
Who works with it
Launchpad administrators, SAP Fiori developers
Applies to
SAP S/4HANA (all deployment options), SAP BTP
Layer: Content, navigation & accessWhere it sits ▾
Where it sits: L2 · Content, navigation & accessLayer: Content, navigation & access.L1L2L3L4L5L6BTP

Layer: Content, navigation & access

Open the architecture map →
What happens when a user clicks a tile
Step 1 of 4: The user opens the launchpadHighlighted: L1 · Entry point & experience, L2 · Content, navigation & accessL1L2L3L4L5L6BTP
  1. The user opens the SAP Fiori Launchpad. The launchpad loads the spaces, pages and tiles granted by the user's business roles. No application code runs yet.

    Related:SAP Fiori Launchpad · Business Role · Spaces and Pages

  2. The tile does not contain an app. It fires an intent — a semantic object plus an action, such as PurchaseOrder-display — with optional parameters.

    Related:Tile · Semantic Object · Intent-Based Navigation

  3. The launchpad searches the target mappings in the catalogs of the user's roles and filters them by device type and parameters. If nothing matches, the user sees a navigation error.

    Related:Target Mapping · Catalogs (Technical and Business) · /UI2/FLIA

  4. The matching target mapping starts the target: a SAPUI5 or SAP Fiori elements app, an SAP GUI for HTML transaction, a Web Dynpro ABAP application or a URL.

    Related:Target Mapping · SAP Fiori Elements · SAP GUI for HTML (Web GUI)

Step 1 of 7See the full trace on the architecture map →

How does a semantic object work?

A semantic object is the noun of SAP Fiori navigation; the action is the verb. Together they form an intent, written in the launchpad URL as #SemanticObject-action, optionally followed by parameters.

  1. A tile, a link or an app requests an intent, for example #PurchaseOrder-display?PurchaseOrder=4500000123.
  2. The launchpad looks for target mappings with the same semantic object and action among the catalogs in the user's roles.
  3. The matching target mapping decides which app opens.

One semantic object usually carries many actions. In the SAP Fiori Apps Reference Library, PurchaseOrder-display resolves to the classic transaction ME23N through SAP GUI for HTML, PurchaseOrder-manage to the Manage Purchase Orders app and PurchaseOrder-displayFactSheet to a purchase order fact sheet. The calling app only names the business object and the intended operation. A semantic object is therefore a stable name for a business entity, independent of the UI technology that eventually handles it.

Where are semantic objects defined?

  • ABAP-based launchpad (on-premise, Private Edition): SAP ships semantic objects with the UI components; transaction /UI2/SEMOBJ_SAP displays them. Custom semantic objects are created with /UI2/SEMOBJ or the Customizing activity for custom semantic objects in SPRO (UI Technologies, SAP Fiori, launchpad content). A custom entry with the same key as an SAP-delivered one overrides its attributes.
  • SAP BTP and SAP Build Work Zone: each app declares the semantic objects and actions it accepts as inbounds in its app descriptor (sap.app → crossNavigation → inbounds), where semantic object and action are mandatory. The semantic objects come from these descriptors rather than from an ABAP maintenance transaction.
  • SAP S/4HANA Cloud Public Edition: SAP-delivered semantic objects are used as shipped. For a custom app, the developer defines the tile, including its intent, as part of the application before deploying it.

The semantic object is defined once per landscape and then referenced everywhere navigation needs it.

Semantic objects drive more than tiles. In SAP Fiori elements, a field annotated with a semantic object (Common.SemanticObject in OData or CAP, @Consumption.semanticObject in ABAP CDS) is rendered as a link when the semantic object is valid in the launchpad. Clicking it lists every action the user can reach for that object; when only one target exists, the app navigates directly.

Freestyle SAPUI5 apps use the shell navigation service (sap.ushell.services.Navigation) to ask which links exist for a semantic object and to navigate. In both cases, the list of links is computed per user from the target mappings in that user's roles, so two users clicking the same supplier field can see different options.

A semantic object on a field is a request for navigation options, and the user's roles decide which options appear.

When should you create a custom semantic object?

Use this decision criterion: does the entity already exist as an SAP business object?

  • Reuse the SAP semantic object when a custom app works on the same entity, for example a custom purchase order approval app at Alder Manufacturing. Reusing PurchaseOrder lets the custom app appear in the same link lists as standard apps and receive navigation from them. Add a distinct action rather than a new semantic object.
  • Create a custom semantic object when the entity has no SAP equivalent, such as a custom tooling request that only exists in Alder Manufacturing's extension. Follow the naming conventions agreed for the landscape.
  • Do not create one per app. A semantic object named after an app instead of an entity fragments navigation and hides the custom app from standard links.

A custom semantic object is justified by a new business entity, not by a new application.

What are common mistakes with semantic objects?

  1. Spelling and case mismatches. SAP describes target mappings as case-sensitive, so a tile that sends PurchaseOrder can fail to resolve against a target mapping defined for Purchaseorder. Copy semantic objects from the definition instead of typing them.
  2. Expecting a semantic object to grant access. A semantic object carries no authorization. Access comes from the catalogs in the user's roles, which contain the target mappings for that semantic object.
  3. Assuming a link means an app. Smart links only appear for targets the user can reach. A link that appears for a key user may not appear for a clerk, by design.
  4. Overriding SAP-delivered semantic objects casually. A custom entry with the same key changes attributes for every app that uses the object.

When navigation for a semantic object behaves unexpectedly, run /UI2/FLIA for the affected user and intent before changing any definition. Most semantic object problems are naming or role problems rather than definition problems.

Semantic object vs. target mapping: what is the difference?

Semantic objectTarget mapping
What it isName of a business entity used in an intentRule that resolves an intent to an app
Where it is defined/UI2/SEMOBJ_SAP and /UI2/SEMOBJ on ABAP; app descriptor on SAP BTPTechnical catalogs on ABAP; app descriptor inbounds on SAP BTP
Grants access?NoIndirectly, through the catalogs in the user's roles
How many per entityOne semantic object, many actionsOne or more per semantic object and action
Typical failureMisspelled or undefined, so no intent matchesMissing from the user's catalogs or rules do not match

The semantic object names what the user wants to work on; the target mapping decides which app does the work.

FAQ

Is a semantic object the same as a business object in the backend?

No. A semantic object is a navigation name used by the SAP Fiori Launchpad. It often matches a backend business object such as a purchase order, but it carries no data, logic or authorization. It only identifies the entity in an intent.

Can one semantic object open different apps?

Yes. Each action on the semantic object can resolve to a different app, and the same semantic object and action can resolve to different apps per role or device type, depending on which target mappings the user's catalogs contain.

How do I find which semantic objects an SAP Fiori app uses?

The SAP Fiori Apps Reference Library lists the intents of each app, for example PurchaseOrder-display for transaction ME23N. In an ABAP system, /UI2/FLIA shows the intents available to a given user, together with their catalogs and target mappings.

Do I need a custom semantic object for a custom SAPUI5 app?

Only when the app works on an entity that SAP does not model. If the app handles a standard entity such as a purchase order, reuse the SAP semantic object with its own action, so the custom app takes part in standard navigation.

Does a semantic object control who can open an app?

No. A semantic object is only a name. Who can open an app depends on the business catalogs in the user's roles, which contain the target mappings for that semantic object, and on the authorizations the app checks at runtime.

Sources

Applies to
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Last reviewed

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP and other SAP products and services mentioned are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. This guide is independent and is not affiliated with, sponsored or endorsed by SAP SE.