---
title: Customer Detail Screens
aliases: [customer overview, customer review, Customer_ReviewCapture, Customer_CallCustomerReview]
sources: [2026-04-28-customer-detail-visit-tab-design.md]
last_updated: 2026-04-28
status: draft
---

# Customer Detail Screens

There are **two parallel customer-detail screens** in the BusinessPartner module, with near-identical tab layouts but different entry points. Editing the wrong one is a silent mistake: the build passes, but the user sees no change because they're launching the other one.

## The two screens

| Screen                                                                    | Process                               | UI XML                                                                                             | Invoked from                                                                                                                                                                                |
| ------------------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Customer Review Capture** (opened from the home screen / customer list) | `Customer::ReviewCaptureProcess`      | `src/BusinessPartner/PR/Customer_ReviewCapture/Customer_ReviewCapture.userinterface.xml`           | `Application_CockpitProcess` (home cockpit → open customer), `Application_DashboardProcess`, `Application_DSDDashboardProcess`, `Call_VisitGuide`, `Tour_TourCockpit`, `Tour_DriverCockpit` |
| **Customer Call Review** (opened from inside an active Call)              | `Customer::CallCustomerReviewProcess` | `src/BusinessPartner/PR/Customer_CallCustomerReview/Customer_CallCustomerReview.userinterface.xml` | `Call_Navigation`, `Call_StoreCockpitTab`, `TourVisit_DeliveryCockpit`                                                                                                                      |

Both screens consume the same underlying `BoCustomer` BO — so child `<ListObject>` wiring and BL methods added to `BoCustomer` are shared. Only the **UI tabs and process `TabDecision` cases** diverge.

## Tab-set differences (as of 2026-04-28)

| Tab                   | ReviewCapture        | CallCustomerReview |
| --------------------- | -------------------- | ------------------ |
| Main                  | ✓                    | ✓                  |
| Map                   | ✓                    | ✓                  |
| OpenHours             | ✓                    | ✓                  |
| Contact               | ✓                    | ✓                  |
| Revenue (Sales)       | ✓                    | ✓                  |
| POS                   | ✓                    | ✓                  |
| Call                  | ✓                    | ✓                  |
| Roles                 | ✓                    | ✓                  |
| Relations             | ✓                    | ✓                  |
| Attachments           | ✓                    | ✓                  |
| ListingClassification | ✗                    | ✓ (sf-only)        |
| **Visits**            | ✓ (added 2026-04-28) | ✗                  |

## How to tell them apart from a screenshot

The bottom-row tab chips are the fastest signal:

-   **ReviewCapture** shows: MAIN · MAP · OPEN HOURS · CONTACT · SALES · POS · **VISIT** · CALL · ROLES · RELATIONS · (Attachments scrolls)
-   **CallCustomerReview** additionally has: **LISTING CLASSIFICATION**

If the bottom row is missing the Listing Classification chip, the user is on ReviewCapture — that's the home-entry path.

## The trap (read this before editing)

> **Before editing any customer-detail UI file, grep for the calling process with `grep -rn "Customer::<ProcessName>" src --include=*.processflow.xml`.** A build pass does NOT prove the user's screen was touched — the other screen stays valid even if you only edited one. Verify against the entry-point chain the user actually uses.

If a feature must appear on "the customer detail screen" with no further qualification, it almost always means the **ReviewCapture** flow — that's the home-screen entry. Add to `CallCustomerReview` only when you have explicit reason to surface it from inside a call.

## Shared BO wiring

Everything attached to `BoCustomer` is automatically available to both screens:

-   `<ListObject>` declarations in `BoCustomer.businessobject.xml`
-   `<Method>` declarations + `.bl.js` implementations under `BoCustomer/Mv1/`
-   Validations

So the **only duplication burden** when you want a new tab visible on both screens is the UI `<Tab>` + `<Area>` block and the process `TabDecision` `<Case>` + `<Action>` block — four edits per screen.

## Cross-references

-   [[business-objects]] — how `BoCustomer` is wired
-   [[processes]] — `TabDecision` / LOGIC-action pattern
-   [[user-interface]] — `TabSelector` / `MultiArea` pattern
