| Status | Lead Approval |
|---|---|
| Owner | FRUTEAU-ext, Sabrina |
| Stakeholders | |
| Jira Request ID | ERP-164 - Getting issue details... STATUS |
| Jira Development ID | ERP-126 - Getting issue details... STATUS |
High- Level Specification
| Parameter | Value |
|---|---|
| Application System | SAP S/4HANA - CUI instance SAP S/4HANA - China instanceSAP S/4HANA - Rest of World instance |
| Business Process Reference | 10.02.03.04. Manage Project Time Allocation |
Functional Overview
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.
Scope and Objectives
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.
Process Flow Diagram
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. |
Assumptions
N/A
Dependencies
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.
Security, Integrity and Controls
N/A
Configuration Requirements
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.
Language Requirements
N/A
Special Requirements
N/A
Design Rationale
Functional Requirements
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
- Related Project id
- Related project definition
- Person Responsible
- Company code
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
- Trading partner = Posting WBS element company code (from /SYQ/T_CATSIC)
- If multiple WBS elements responding to the above criteria, select the WBS element with system and user status all active.
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"
Recommended UI Technology
- Field creation in CATSDB
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
- Table: CATSDB, Customer Include: CI_CATSDB
- Reference Table: /SYQ/T_CATSIC - field /SYQ/CATSWBS
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
- Trading partner = Posting WBS element company code (from /SYQ/T_CATSIC)
- If multiple WBS elements responding to the above criteria, select the WBS element with system and user status all active.
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:
- System statuses (e.g. CRTD, REL, CLSD, TECO, LKD, HOLD, DLFL, etc.)
- User statuses ( e.g. “IN_EXEC”, “ON_HOLD”, etc.)
Each row tells you whether the status is active or inactive.
Application Screen
Wireframe or Mock-Up
Standard Fiori app My Timesheet screens.
Screen Behavior
Standard behavior is not changed.
Screen Navigation
Standard navigation is not changed.
Data Integration
| 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 |
Custom Tables
Master data
| Field | Description | Data Type/Length | Validation rule / Value help |
|---|---|---|---|
Configuration table
| Field | Description | Data Type/Length | Validation rule / Value help |
|---|---|---|---|
Tooltips
Front-End
Mobile Services
Authentication & Authorization
Accessibility
Volumetrics
Performance Consideration
Error Handling
Testing
How to Test
Test Conditions and Expected Results
| ID | Condition | Expected Result |
|---|---|---|
Test Considerations/Dependencies
Other Information
Development Details
Package
| Package Name | Parent Package |
|---|---|
UI Implementation
UI Type | UI Name | Fiori Catalogue | Design Rationale Reference |
|---|---|---|---|
API Implementation
| API Type | API Name | Purpose / High Level Logic | API Product | Design Rationale Reference |
|---|---|---|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|


