| Status | |
|---|---|
| Owner | FRUTEAU-ext, Sabrina |
| Stakeholders | The business stakeholders involved in making, reviewing, and endorsing this decision. Type @ to mention people by name |
| Jira Request ID | |
| Jira Development ID |
| Parameter | Value |
|---|---|
| Application System | SAP S/4HANA - CUI instance SAP S/4HANA - China instance SAP S/4HANA - Rest of World instance |
| Business Process Reference | 10.02.03.04. Manage Project Time Allocation |
The principle of intercompany (IC) recharge for labor costs is to ensure that when a resource charges time to a WBS element belonging to a different company code, the cost of that labor is correctly reflected in both companies’ books.
This FS focuses on adapting the CATS and My Timesheet applications to capturing the time and cost against a Posting WBS element, and when necessary, redirect it to a Receiver WBS element, which will be used for IC recharge.

CATS only allows booking against a single WBS element using the standard Receiver WBS field, which is insufficient for intercompany scenarios.
To address this, the solution must:
Capture 2 WBS : the Posting WBS element selected by the user, and the Receiver WBS element used for financial posting.
Keep the process simple for users, who will only select the Posting WBS element.
Ensure the system automatically derives and populates the Receiver WBS element according to defined rules.
The objective is to enhance CATS/My Timesheet application so that it supports intercompany service recharges seamlessly, allowing users to continue booking time easily while ensuring costs are posted correctly to the appropriate WBS element.
A custom table /SYQ/T_CATSIC is created under Jira ID ERP-165. This table stores all WBS elements generated locally (in the same system where users record their time) as well as WBS elements originating from other systems that are flagged as IC Relevant. The user will be selecting the WBS elements to book time against from this table.

Step | Description | Comment |
|---|---|---|
| 1 | User can create time entry records against:
| |
| 2 | User creates an entry in My Timesheet V4 or CATS. | User only sees one field to book time against: Posting WBS element. |
| 3 | User searches for the Posting WBS to book time against. Search help offers different criteria:
| A custom table /SYQ/T_CATSIC was created under Jira ID ERP-165. This table stores all WBS elements generated locally (in the same system where users record their time) as well as WBS elements originating from other systems that are flagged as IC Relevant. The user will be selecting the Posting WBS elements to book time against from this table. The result list will exclude the entries which are not relevant for time entry (Inactive status). |
| 4 | User selects the Posting WBS element. | The system automatically populates the standard field Receiver WBS element: If company code on Personnel id = company code assigned to Posting WBS element then Receiver WBS element receives the same WBS element selected by user. Else Receiver WBS element (standard field) receives the below WBS element:
|
| 5 | Assign time and Save the entry. | Entry can be save and is visible in CATSDB. Standard field Receiver WBS element and custom field Posting WBS element are populated in the table CATSDB. |
N/A
A custom table /SYQ/T_CATSIC is defined under Jira ID ERP-165. This table stores all WBS elements created locally (in the same system where users record their time) as well as WBS elements originating from other systems that are flagged as IC Relevant. The custom table stores all the possible entries for the user to select the Posting WBS element, which will be used to derive the Receiver WBS element while saving the time entries.
N/A
CATS configuration with Time entry and Administrator data entry profile must be created.
Once the custom field is created, the Data entry profile must be configured with the custom field in order to be used in My Timesheet.
N/A
N/A
If the enhancement interacts with third-party systems such as Icertis, describe any additional integration, security or authentication considerations that must be taken into account.
The requirement can be divided into 4 main sections:
1.Create a custom field in CATS database and in My Timesheet V4:
A new custom field Posting WBS Element must be available in CATS (SAP GUI) and My Timesheet (Fiori V4).
This field will serve as the primary input for users to record the WBS element against which their time should be booked.
2. Search help extension in My Timesheet V4 (Front-end):
Enable search Posting WBS element search help with the below attributes from table /SYQ/T_CATSIC:
Posting WBS element id | Posting WBS element description | System / User Status | Company code | Related Project id | Related project description | Person Responsible Name | Inactive |
/SYQ/CATSWBS | /SYQ/CATSWBSDESC | /SYQ/CATSSTAT | /SYQ/CATSCOMPCOD | /SYQ/CATSRPROJ | /SYQ/CATSRPROJD | /SYQ/CATSPRESP | /SYQ/CATSINAC |
To ensure accuracy and avoid confusion, search results list must exclude WBS elements with inactive statuses.
If Inactive /SYQ/CATSACINAC = Yes then exclude record from the search result.
3. Automatically populate the CATS standard field Receiver WBS element (backend):
User exit CATS0002 (Supplement recorded data):
Once the user selects a Posting WBS element via the custom field, the system must populate the standard CATS field Receiver WBS element (CATSD-RPROJ) according to the following logic:
Check the company code of the Posting WBS element selected in the table /SYQ/T_CATSIC, field /SYQ/CATSCOMPCOD
Fetch the company code of the Personnel ID (PERNR). Function module HR_GET_COMPANY_CODE can be used.
If PERNR’s company code = Posting WBS element’s company code → copy the Posting WBS element ID into CATSD-RPROJ.
If PERNR’s company code ≠ Posting WBS element’s company code → Assign CATSD-RPROJ (Receiver WBS element) to the WBS element in PRPS where:
Company code PRPS-PBUKR = PERNR’s company code, and
Project type PRPS-PRART = 15 Intercompany Recharge
4. Control at saving, check if Posting WBS element status is active (Back-end).
Before saving the entry, check if the Posting WBS element is active in the table /SYQ/T_CATSIC, field /SYQ/CATSINAC.
If active, proceed to saving.
If not active, no saving, return an error message "Posting WBS element { XXXX } is not active for booking. Please enter a valid WBS element. Entries cannot be saved"
Add the custom field directly to the CI_CATSDB structure, which extends the core CATSDB table for customer-specific data.
Refer to SAP note: https://me.sap.com/notes/3515819/E
Map custom field to Data entry profile via configuration.
The field needs to be mapped to the CATS custom field holders via configuration.
SPRO → Cross-Application Components → Time Sheet → Settings for All User Interfaces → Customer-Specific Enhancements → Customer-Specific Fields
Add the custom field to CDS views for My Timesheet V4 (Front-end)
Extend CDS views to include the custom field for:
Form entries (time recording)
Assignments
Refer to SAP note: https://me.sap.com/notes/3515819/E
2. Search Help extension in My Timesheet Fiori app (Front-end)
Refer to the SAP note:
3515362 - My Timesheet V4 Search helps - SAP for Me
3. Auto-populate the Standard field Receiver WBS element (back-end)
User exit CATS0002 (Supplement recorded data): Here you can modify the record entered by the user, and add the Receiver WBS element before saving.
4. Control at saving, check if Posting WBS element status is active (Back-end)
BAdI CATS_RECORDING → method CHECK_REC_DATA can be used.
5. Assign Receiver WBS element which is active:
If PERNR’s company code ≠ Posting WBS element’s company code, a WBS element is retrieved to be assigned to the field Receiver WBS element. Ensure that the retrieved WBS element is active:
Company code PRPS-PBUKR = PERNR’s company code, and
Project type PRPS-PRART = 15 Intercompany Recharge
the function module STATUS_READ can be used to check the status of the retrieved WBS element:
pass the object number (OBJNR) of the WBS element (from table PRPS). It returns a table of statuses (JSTAT) for that object. This includes:
Each row tells you whether the status is active or inactive.
Standard Fiori app My Timesheet screens.
Standard behavior is not changed.
Screen Navigation
Standard navigation is not changed.
| Field | Table-Field Name | Comments / Calculation / Field Manipulation / Input / Output / Validation rule / Value help |
|---|---|---|
| /SYQ/T_CATSIC | /SYQ/CATSWBS | Posting WBS element |
| PRPS | RPROJ, PBUKR, OBJNR | Retrieve Receiver WBS element, based on company code and status, and auto-populate Receiver WBS element. |
| /SYQ/T_CATSIC | /SYQ/CATSWBSDESC | WBS element description |
| /SYQ/T_CATSIC | /SYQ/CATSSTAT | System / User Status |
| /SYQ/T_CATSIC | /SYQ/CATSCOMPCOD | Company code |
| /SYQ/T_CATSIC | /SYQ/CATSRPROJ | Related Project id |
| /SYQ/T_CATSIC | /SYQ/CATSRPROJD | Related project description |
| /SYQ/T_CATSIC | /SYQ/CATSPRESP | Person Responsible Name |
| /SYQ/T_CATSIC | /SYQ/CATSACINAC | Inactive |
| JEST | STAT, OBJNR | used to retrieve Receiver WBS element, based on status |
If any custom configuration tables are required, which will be read by the enhancement logic, then specify them here.
Include an overview of the table and what it’s used for
| Field | Description | Data Type/Length | Validation rule / Value help |
|---|---|---|---|
Include an overview of the table and what it’s used for
| Field | Description | Data Type/Length | Validation rule / Value help |
|---|---|---|---|
Can tooltips or input prompts be used to help and guide the user?
Mention the environment (desktop, mobile phone, tablet) in which this User Interface will be running. This will drive the screen estate/size of the screen.
Explain mobility services will be integrated in the Interface, i.e. Intune, MS Company Portal,
Detail authentication and authorization mechanisms, i.e. SSO/SAML, SSO/SNC.
Detail if the Interface will have accessibility features, i.e. Speech Recognition, Photos, Barcode Input
Provide volumetrics details: Initial load volumes, Number of Records, Expected Frequency, Expected Long term Growth)
Specify if there are any specific performance factors that need to be taken into consideration during development i.e. interface must be able to handle 100 posting per-hour, etc.
Detail how errors will be handled: Notification, Restart/ Recovery and Re-Processing Procedures
Please provide some guidance and/or test data to help the developer unit test the user interface. This can be included here or in a separate document. If possible, testing is to be done prior by Functional team, for those transactions or business processes to be automated. Please include both positive and negative testing (to validate error situations handling)
List all test conditions – this will then be used as a basis to execute both the technical and functional unit tests
| ID | Condition | Expected Result |
|---|---|---|
List any considerations essential for application test planning (e.g., test this before ABC along with DEF separate from GHI). If the development encompasses a user interface, explain how to test it. List any insights as to how this component could be tested the most efficiently.
| Package Name | Parent Package |
|---|---|
UI Type | UI Name | Fiori Catalogue | Design Rationale Reference |
|---|---|---|---|
| API Type | API Name | Purpose / High Level Logic | API Product | Design Rationale Reference |
|---|---|---|---|---|
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.