Fiori ActivationRunbook

SYSTEM S4H · CLIENT 100 · INST 55
<host>:44300
SAP_BASIS 816 · S/4HANA 2025 · SP 0000
ALL 32 STEPS COMPLETE · 09 SEP 2026

Your sequence is right, with one split. Gateway and the workflow runtime genuinely do belong ahead of content activation — that is the documented order, not just a preference. Content activation assumes a working OData layer and writes catalogs, tiles and target mappings on top of it. Run it first and you get tiles pointing at services that were never started.

My Inbox is the exception that splits in two. Its backend — the workflow runtime, the Task Gateway service, task visualisation — can and should be proved before activation. Its tile cannot: My Inbox is itself Fiori content, so the UI check only becomes possible in Phase 5. Phase 2 proves the data is reachable over OData without a launchpad at all.

Dependency ladder — each rung consumes the one above

Six phases, strict order

0

Client & transport frame

Set change recording the way you want it, and pre-create the requests before anything asks for one mid-run.

GATE System change option modifiable · two request numbers in hand
1

Gateway & OData foundation

ICF tree, system alias, embedded Gateway, the two foundation task lists, certificate. Nothing above this rung works until it does.

GATE Catalog service returns 200 in GW_CLIENT · error logs clean
2

Workflow runtime & Inbox services

Close the remaining SWU3 reds, publish Task Gateway and the notification channel, then read your work item straight off the service.

GATE TaskCollection returns the verification work item
3

Content activation

The seven business roles, prefix Z, plus the create-and-assign-users tasks that were skipped last run.

GATE Run log shows 7 roles selected, no red rows
4

Index & cache

Content exists but does not render until the app index is rebuilt and the caches are dropped.

GATE App index run finishes with zero inconsistencies
5

Verify as a persona

Log on as a generated Z-role user — never HANADEMO. SAP_ALL proves authorisation and proves nothing about content.

GATE Inbox tile, notification badge, search and one analytical app all live

Why the order is what it is

The stack you are building

Launchpad tiles the trainee sees/sap/bc/ui2/flp
Phase 5
App index · client & global caches/UI2/APP_INDEX_CALCULATE
Phase 4
Catalogs, groups, spaces, target mappingsgenerated Z-roles from SAP_BR_* templates
Phase 3
Task Gateway & notification channel/IWPGW/TASKPROCESSING · /IWNGW/*
Phase 2
Workflow runtimeSAP_WFRT · WORKFLOW_LOCAL_100 · SAP_WORKFLOW_SYSTEM
Phase 2
OData V2 / V4 services, system alias LOCAL/sap/opu/odata · /sap/opu/odata4
Phase 1
ICF service tree & HTTPS/sap/bc/ui5_ui5 · /sap/bc/ui2 · /sap/bw/ina · STRUST
Phase 1

Read it bottom-up: every layer is only as good as the one beneath. Content activation writes the third layer from the top — which is exactly why running it first produced one activated role and an empty launchpad.

The one thing that cannot sit entirely before activation

My Inbox, split across the gate

Phase 2 — before activation

Prove the service

  • Workflow runtime green in SWU3, including the two remaining reds.
  • SAP_WORKFLOW_SYSTEM scheduled and running in client 000.
  • /IWPGW/TASKPROCESSING published against alias LOCAL.
  • SWFVISU entries present for the flexible-workflow tasks.
  • The proof: GW_CLIENT reads TaskCollection and your verification work item comes back as JSON. No launchpad required.
Phase 5 — after activation

Prove the tile

  • My Inbox tile appears on a generated Z-role user's launchpad.
  • The same work item is listed, opens, and shows its decision buttons.
  • Notification badge counts it — the bell needs the APC push node live.
  • Approve or reject completes the item and it leaves the list.

Consequence of recording changes

What transport recording costs you here

NOTE

Set the requests up before the task list runs, not during it

With Automatic recording of changes on, the activation task lists will ask for a transport request as they write catalogs, groups and role assignments — and a task list running in background has no one to answer the popup. Create one Customizing request and one Workbench request in Phase 0, keep both numbers on screen, and fill them into the task parameters wherever a request field is offered. Run the first pass in dialog so anything unexpected can still be answered.

Keep cross-client changes set to Changes to Repository and cross-client Customizing allowed. ICF node and OData service activation are cross-client operations — restrict that setting and Phase 1 fails before it starts.

Execution

P0

Client and transport frame

4 steps
Gate Do not open a task list until the system is modifiable and both request numbers exist.
  • SE06

    Open System Change Option. Global setting must be Modifiable, and the software components you will touch (SAP_BASIS, S4CORE, SAP_UI, plus namespace /UI2/, /IWFND/, /IWPGW/) must not be locked.

    Expect Global setting Modifiable; no component set to "not modifiable".
  • SCC4

    Double-click client 100. Set Changes and Transports for Client-Specific Objects to Automatic recording of changes. Set cross-client to Changes to Repository and cross-client Customizing allowed. Client role: Customizing.

    Expect Saved without a protection warning; client 100 shows role C.
  • SE10

    Create a Customizing request named FIORI ACTIVATION CLNT 100 and a Workbench request named FIORI FOUNDATION OBJECTS. Add HANADEMO as owner. Write both numbers down — Phases 1 to 3 will ask for them.

    Expect Two modifiable requests, each with one task under HANADEMO.
  • SU53

    Sanity-check authorisation once, from HANADEMO, after a first SCC4 save. SAP_ALL should cover it — you are confirming nothing was stripped in the handover build.

    Expect No authorisation failure recorded.
P1

Gateway and OData foundation

9 steps
Gate The catalog service must answer in GW_CLIENT before you touch Phase 2. This is the rung everything above stands on.
  • SICF

    Activate the service tree, node and subtree, for each of: /sap/bc/ui5_ui5, /sap/bc/ui2, /sap/bc/bsp/sap, /sap/public/bc, /sap/opu/odata, /sap/opu/odata4, /sap/bw/ina, /sap/bc/webdynpro/sap. Right-click → Activate Service → choose the option that includes subnodes.

    Expect Every node black, not grey, in the hierarchy view.
  • SICF

    Separately activate /sap/bc/apc/iwngw/notification_push_api — the WebSocket channel behind the launchpad notification bell. It is easy to miss because it sits outside the UI5 tree.

    Expect APC node active; needed again in Phase 2.
  • STRUST

    Fix the certificate mismatch that makes the browser flag <host>:44300 as Not secure. The SSL server PSE common name must match the public hostname, not the build-time internal one. Same defect class as the HTTPURLLOC issue on the 2023 box.

    Expect Certificate CN matches the public host; restart ICM from SMICM after applying.
  • SMICM

    Confirm the HTTPS service on port 44355 is active and that URL generation is not being rewritten to an internal host. Check the HTTPURLLOC table on this system too — the same vendor shipped both appliances.

    Expect Generated URLs carry s4hana2025.<host>.
  • SPRO

    SAP NetWeaver → SAP Gateway → OData Channel → Configuration → Activate or Deactivate SAP Gateway. Then define the system alias: alias LOCAL, RFC destination NONE, local Gateway flagged, client 100.

    Expect "SAP Gateway is active" message; alias LOCAL saved as default.
  • STC01

    Run task list SAP_GW_FIORI_ERP_ONE_CLNT_SETUP — the embedded single-client Gateway setup. Supply the Phase 0 request numbers in any task parameter that offers a request field.

    Expect All tasks green; no task left in status "not executed".
  • STC01

    Run task list SAP_FIORI_FOUNDATION_S4. This lays down launchpad services, the /UI2/ service set, the notification channel and the foundation roles. It is a prerequisite of content activation, not an alternative to it.

    Expect Green run; foundation roles SAP_UI2_* present in PFCG.
  • /IWFND/V4_ADMIN

    Publish the OData V4 service groups. Several 2025 maintenance and analytical apps are V4-only, so a V2-only landscape looks healthy right up until a tile returns nothing.

    Expect Service groups published against alias LOCAL.
  • /IWFND/GW_CLIENT

    The gate. Call /sap/opu/odata/IWFND/CATALOGSERVICE;v=2/ServiceCollection with GET. Then clear /IWFND/ERROR_LOG and /IWBEP/ERROR_LOG so the next phase starts from a clean log.

    Expect HTTP 200 with a service list. Anything else — stop and fix before Phase 2.
P2

Workflow runtime and Inbox services

7 steps
Gate A real work item must come back over OData. That is the Inbox proof available to you before there is a launchpad.
  • SWU3

    Clear the two remaining reds: Classify Scenario Tasks (Flexible Workflow) as General and Maintain HR control tables. Run each with the execute icon, then Recheck the whole tree. The runtime RFC destination is already correct after the WORKFLOW_REFERENCE_100 repair.

    Expect Entire SWU3 tree green. Message 5A378 on classification is cosmetic on a sandbox.
  • SM37

    Confirm SAP_WORKFLOW_SYSTEM is released and running — in client 000, not 100. Search with user *, job *, 30-day window, all statuses, or you will get BT145 again.

    Expect Recent successful runs; no cancelled entries.
  • /IWFND/MAINT_SERVICE

    Add and activate /IWPGW/TASKPROCESSING against alias LOCAL. In the same pass add the /IWNGW/ notification services listed in the catalog. Check the ICF node status turns green in the service detail.

    Expect Both service groups show ICF node active and system alias LOCAL.
  • SWFVISU

    Check task visualisation entries exist for the flexible-workflow tasks you will use — this is what tells My Inbox which UI to open for a work item. A missing entry gives a work item that lists but will not open.

    Expect Entries present for the SES approval and PM notification tasks.
  • SWI1

    Create or locate one live work item to test with. The verification item you already completed proves the runtime; generate a fresh one so there is something open for the OData call to return.

    Expect At least one work item in status READY for your user.
  • /IWFND/GW_CLIENT

    The gate. GET /sap/opu/odata/IWPGW/TASKPROCESSING;v=2/TaskCollection. The open work item should come back in the payload with its task title and decision options.

    Expect HTTP 200 and your work item in the response. Inbox is proved at the service layer.
  • SWI2_FREQ

    Glance at work item frequency and check /IWFND/ERROR_LOG is still empty after the calls. A silent 500 here becomes a mysterious empty Inbox in Phase 5.

    Expect No new gateway errors logged.
P3

Content activation

4 steps
Gate Phases 1 and 2 both green. This is the run that failed at 1 of 613 roles — the role selection screen is where it went wrong.
  • STC01

    Generate a task list run for SAP_FIORI_CONTENT_ACTIVATION. Before executing, walk every task's parameters and fill in the Phase 0 request numbers. Run in dialog, not background, for this first pass.

    Expect Run generated with no task in error before execution starts.
  • STC01

    At Select/Confirm SAP Business Roles for FLP content activation, select the seven roles below and keep prefix Z. Leave the OData, ICF and catalog activation sub-tasks ticked — that work is what SUPC mass generation would not have given you.

    Expect Counter reads 7 of 613 selected, not 1.
  • STC01

    Tick the two tasks skipped last time: Create Users with generated Business Roles (SU01) and Assign generated Business Roles to Users (SU01). Then execute and let it run — this one takes a while.

    Expect Run log green throughout; save the log before leaving the screen.
  • PFCG

    Spot-check that the generated Z* roles exist and carry generated profiles, menus and catalog assignments — not empty shells.

    Expect Seven Z-roles, each with a Fiori catalog and group in the menu.
Roles Confirm exact names in the selection list — the supervisor variant differs slightly by release.
Business role templateWhy it is on the list
SAP_BR_EMPLOYEEBase tile set and self-service apps — every trainee needs it underneath their persona role
SAP_BR_ADMINISTRATORYour own admin launchpad, including the launchpad and app-index tools
SAP_BR_MAINTENANCE_PLANNEROrder and notification planning apps — the core of the training scenario
SAP_BR_MAINTENANCE_TECHNICIANMy Job List and confirmations — the execution side of the same scenario
SAP_BR_MAINTENANCE_SUPERVISORSupervisor persona; confirm the exact name this release ships in the list
SAP_BR_ANALYTICS_SPECIALISTSatisfies the "build analytical reports" requirement in the sandbox spec
SAP_BR_BPC_EXPERTBusiness process configuration — needed later for the Lean SES workflow definition
P4

Index and cache

3 steps
Gate Skip this and the content exists in the database but nothing renders. It is the most commonly missed step of the whole sequence.
  • /UI2/APP_INDEX_CALCULATE

    Run via SE38 as a full re-index, not a delta. Review the output for inconsistencies — unresolved target mappings surface here rather than in the browser.

    Expect Completed with zero inconsistent apps reported.
  • /UI2/INVALIDATE_GLOBAL_CACHES

    Run the global cache invalidation, then /UI2/INVALIDATE_CLIENT_CACHES for client 100. Order matters less than doing both.

    Expect Both reports complete without dumps.
  • SE38

    Run the launchpad health check report — search /UI2/FLP_HEALTH* in SE38, as the exact name shifts slightly between support packages. Work through anything it flags before logging on as a trainee.

    Expect No red findings on services, roles or caches.
P5

Verify as a persona

5 steps
Gate Every check below is done as a generated Z-role user. HANADEMO holds SAP_ALL, which will make a broken launchpad look fine.
  • Browser

    Open https://<host>:44300/sap/bc/ui2/flp and log on as one of the users the task list created. Certificate should now be clean after Phase 1.

    Expect Launchpad renders with populated groups or spaces — not an empty home page.
  • My Inbox

    Open the My Inbox tile. The work item from Phase 2 should be listed, open cleanly, and show its decision buttons. This is the UI half of the Inbox check.

    Expect Item opens via its SWFVISU-mapped UI and can be actioned.
  • Bell icon

    Check the notification badge counts the open item. If the bell is silent but the Inbox works, the APC push node from Phase 1 is the suspect.

    Expect Badge count matches the number of open items.
  • Search

    Use the launchpad search bar for a known equipment number and a functional location. The EAM connectors are already active — this confirms the InA nodes and the search UI are wired to them.

    Expect Equipment 10002984 and FL TEST both return.
  • Analytics

    Open one analytical app from the analytics specialist role. If the tiles are present but data is empty, the BW client setup task list is the next thing to run — not a content problem.

    Expect At least one analytical app renders a chart with data.

Standing constraints for this system

Do not do these

STOP

No SFW5 activation for Lean Services

No business function exists for Lean Services, several neighbouring ones are irreversible, and the real gate is Enhanced Procurement Mode in SPRO — which is not retroactive. That is why it has to be switched on before you create any service order you intend to keep, and why it sits in a later phase of its own rather than here.

Equally: do not verify anything on this system as HANADEMO once Phase 3 is done, and do not take a baseline snapshot until Phase 5 passes — a snapshot of a half-activated launchpad is worse than none.

Session log — 08 September 2026

Phases 0–2 complete

All six phases closed

What was proved

  • Phase 0 — system Modifiable; client 100 already on automatic recording with cross-client changes allowed. Requests S4HK903329 (customizing) and S4HK903331 (workbench).
  • Phase 1 — ICF tree open, Gateway active, alias LOCAL correct, both task lists green, V4 groups published, foundation roles generated. Gate: catalog service returned 200 with a full list.
  • Phase 2 — SWU3 clean but for AIF; SAP_WORKFLOW_SYSTEM cycling every minute in client 100; ZTASKPROCESSING v1 and v2 both correct (not duplicates). Gate: TaskCollection returned the verification work items over OData, 12 KB payload.
  • Phase 3 — content activation run for 14 business roles, prefix Z, package $TMP. Z_BR_AA_ACCOUNTANT spot-checked: Menu, Authorizations and User tabs all green, users assigned including <user> and <basis-user>.
  • Phase 4 — /UI5/APP_INDEX_CALCULATE indexed 3,096 repositories; global and client caches invalidated.
  • Phase 5 — launchpad renders, Maintenance Request opens, value help returns the 38-object compressor hierarchy. Notification 10000741 created on equipment 217100001, order 4001560 generated and approved through the phase model.
Next session

Open items

  • Repeat the create test as <user> or <basis-user>. Everything in Phase 5 was done as HANADEMO. That proves content, not authorisation — and authorisation gaps only appear on a user without SAP_ALL.
  • Define a flexible workflow for maintenance order approval. Order 4001560 auto-approved because no scenario exists, so the approval phase is currently decorative. Use Manage Workflows for Maintenance Orders (ships with SAP_BR_BPC_EXPERT). Same machinery as the Lean SES approval, so build this simpler case first.
  • Decide the org structure. This box is the delivered SAP structure — plant 1710, planner group 920, work centre RES-0100. Your prior sandbox and handover notes use company code 1030 and plants 102A/103A. Train on delivered, or build Teck-named objects.
  • Still unverified: My Inbox tile, notification bell count, Enterprise Search from the launchpad bar, one analytical app.

Corrections and gotchas worth keeping

What this system taught us

App index lives in /UI5/, not /UI2//UI5/APP_INDEX_CALCULATE · caches stay /UI2/INVALIDATE_*_CACHES
naming
SM37 defaults to your own user IDset user to * or you get BT145 and conclude the job is dead
twice now
SM37 groups by status, not datethe Finished block sorts ascending — sort by start date before drawing conclusions
cost an hour
Green in SWU3 means the object existsnot that it runs — proof is a Finished job with today's date
judgement
ZTASKPROCESSING _0001 / _0002 are versionsv1 and v2 of one service, not duplicate registrations
false alarm
FORMDESIGNER and FORMRUNTIME rejected on indexduplicate sap.app id in delivered content; PM shop-paper printing is unaffected
note only
Server clock runs UTC−5:3005:44 UTC displayed as 00:14 local — affects every log timestamp
confirm in STZAC

Evidence for the vendor — one pattern, six objects

Instance-01 build residue

SSL server certificateCN=vhcals4hci.dummy.nodomain, issuer CN=cal.dummy.nodomain
blocks nothing, looks bad
Orphaned PSEs4hana2025_S4H_01
cosmetic
RFC destination FIORI_FLP_HTTPS<app-server>:44301 → corrected to <host>:44300
fixed 08 Sep
FIORI_CLASSICUI_HTTPS (alias FIORI_MENU):44301 → corrected
fixed 08 Sep
RFC destination S4HCLNT100blank target host, instance 00 → set to s4hana2025 / 55
broke My Inbox
Batch capacity6 BTC processes; workflow job delayed 43–51s every run, up to 1758s on 06 Sep
open

Five of the six carry instance-01 values. The appliance was built as instance 01 and re-homed to 55 without a cleanup pass — which justifies asking the vendor to sweep for the rest rather than fixing them one at a time as they surface. S4HCLNT100 is the one that mattered: it made the Task Gateway service fail with a CPIC error, which would have presented in training as an empty My Inbox with no obvious cause.

09 September — solved, and reusable

Apps assigned but invisible

The diagnosis, in order

Five checks that split the problem

  • PFCG → role → Applications. Apps present and Active? Then content activation worked and it is not a role problem.
  • App Finder. Apps findable and launchable? Then catalogs, authorisation, OData and the app index are all fine. What remains is placement.
  • Content Manager → catalog → Display Usages in Pages. "Not used in any page" is the smoking gun.
  • Roles tab → Show Spaces on the failing role and on a working one. 0 versus 1 proves whether it is systemic or a single gap.
  • Fiori apps reference library. Technical Catalog, Business Catalog, Business Group, Business Role — and no Space or Page. SAP's own documentation confirming the omission.
The fix

Build what SAP didn't ship

  • SICF → activate /sap/bc/ui5_ui5/sap/sui_space_man; /IWFND/MAINT_SERVICE → add /UI2/FDM_SPACE_REPOSITORY_CUST_SRV. Same pattern for the Pages app.
  • Manage Launchpad Pages → Z_RSH_MAINT_PLANNER, sections holding the RSH tiles. Merge ID blank for a standalone tab.
  • Manage Launchpad Spaces → Z_RSH_SCHEDULING → assign the page → assign the space to Z_BR_MAINTENANCE_PLANNER_RSH and Z_BR_MAINT_SUPERVISOR.
  • /UI2/INVALIDATE_CLIENT_CACHES, then log out and in.
WHY

Groups are invisible on a spaces-enabled client

SAP ships Resource Scheduling as catalog plus business group, with no page and no space. Groups are the legacy rendering model; with SPACES = true the launchpad ignores them entirely. The apps were assigned, authorised, indexed and launchable the whole time — nothing placed them on a page, so nothing rendered.

Resolved the same day. The tiles first showing Out of role context — Manage Maintenance Planning Buckets, Schedule Output for Maintenance Job Packs, Manage Teams and Responsibilities — came from SAP_TC_EAM_COMMON, which neither role held. Assigning that content to both roles cleared them. The Maintenance Schedulling tab now renders all three sections in full.

Two tidies left, cosmetic: the section heading has a double L, and Manage Maintenance Planning Buckets (Old Version) is still on the page beside the new one — worth removing before trainees see both and ask which to use. Also worth a ten-minute sweep of the remaining twelve Z roles with Show Spaces; anything reading 0 has the same gap this section describes.

Deferred — before training, not today

Pre-training actions

TODO

Five items carried forward

1 · Certificate. Vendor must supply one issued for s4hana2025.<host> by a public CA. Every trainee currently meets a full-page security warning, and a managed Teck laptop may not let them click through.

2 · Batch capacity. Cut the workflow job in clients 200 and 400 to roughly every 30 minutes — two unused clients are each consuming a work process every minute. Separately, ask the vendor for more BTC processes.

3 · Residue sweep. SM59 for any destination carrying <app-server> or :44301, and the /UI2/ alias tables.

4 · AIF monitoring. Left red deliberately — no interfaces in scope. Recorded as a decision so a later reader doesn't treat it as an oversight.

5 · System time zone. Confirm the offset in STZAC. Server time runs UTC−5:30, which affects how every log timestamp reads and matters when scheduling anything around a training session.

6 · Phase model and approval. Maintenance orders enter an approval phase and currently auto-approve. Either define the workflow scenario so trainees see a real approval step, or confirm the auto-approve behaviour is what you want in class — but decide deliberately rather than discovering it during a session.

S4H · CLIENT 100 · INSTANCE 55 · TECK TRAINING SANDBOXPHASES 0–5 · 32 STEPS · PROGRESS SAVED IN THIS BROWSER ONLY
en_USEnglish (United States)