Status

OwnerFRUTEAU-ext, Sabrina 
Stakeholders
Jira Request ID

Jira Development ID

High- Level Specification

ParameterValue
Application System

SAP S/4HANA - CUI instance

SAP S/4HANA - China instance
SAP S/4HANA - Rest of World instance
Business Process Reference10.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:

  • A WBS element within the user's company code
  • A WBS element that belongs to another company code. 

2User 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:

  • Posting WBS element ID 
  • Posting WBS element Description
  • Related Project id
  • Related project definition
  • Person Responsible 

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). 

4User 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:

  • Project Type 15 Intercompany code Recharge
  • Company code = User's company code
  • Trading partner = Posting WBS element's company code
5Assign 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

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.

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:

  1. Check the company code of the Posting WBS element selected in the table /SYQ/T_CATSIC, field /SYQ/CATSCOMPCOD

  2. Fetch the company code of the Personnel ID (PERNR). Function module HR_GET_COMPANY_CODE can be used. 

  3. If PERNR’s company code = Posting WBS element’s company code → copy the Posting WBS element ID into CATSD-RPROJ.

  4. 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

  1. 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.

Processing Logic

Search for a Booking WBS element

1. User opens the search help dialog

2. The search help displays the fields referring to /SYQ/T_CATSIC which can be used for search. 

3. User enters a value in some of the proposed fields

4. System lists the Posting WBS elements responding to the search criteria, and exclude the ones set to Inactive in /SYQ/T_CATSIC field /SYQ/CATSACINAC.

5. User selects the Posting WBS element for time entry.


Auto-populate Receiver WBS element field / Check if Booking WBS element is active

Step-by-Step Logic

  1. User selects the Posting WBS element /SYQ/CATSWBS, fetching table /SYQ/T_CATSIC.
  2. User hits the save button.
  3. System Reads the company code assigned to selected entry in table /SYQ/T_CATSIC field /SYQ/CATSCOMPCOD.
  4. Read the user's Personnel id (PERNR)’s company code
  5. If PERNR’s company code = company code assigned to Posting WBS element (table /SYQ/T_CATSIC field /SYQ/CATSCOMPCOD)
    • Copy Posting WBS element ID (/SYQ/CATSWBS)  into standard CATS field Receiver WBS element RPROJ.
  6. Else
    • check table PRPS: 
      • project type (PRART) = 15 Intercompany Recharge 
      • company code (PBUKR) = PERNR’s company code
      • Trading partner (PRPS-ZX03) = Posting WBS element company code /SYQ/CATSCOMPCOD
    • Insert WBS element fetched from PRPS into field Receiver WBS element RPROJ

7. Check if Posting WBS element /SYQ/CATSWBS selected by user is set to Inactive in /SYQ/T_CATSIC field /SYQ/CATSACINAC

    • If /SYQ/CATSACINAC = Yes, error message "Booking WBS element { XXXX } is not active for booking. Please enter a valid WBS element. Entries cannot be saved". 
    • Else Save the entries.


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


FieldTable-Field NameComments / Calculation / Field Manipulation / Input / Output / Validation rule / Value help
/SYQ/T_CATSIC/SYQ/CATSWBSPosting WBS element
PRPSRPROJ, PBUKR, OBJNRRetrieve Receiver WBS element, based on company code and status, and auto-populate Receiver WBS element.
/SYQ/T_CATSIC/SYQ/CATSWBSDESCWBS element description
/SYQ/T_CATSIC/SYQ/CATSSTATSystem / User Status
/SYQ/T_CATSIC/SYQ/CATSCOMPCODCompany code 
/SYQ/T_CATSIC/SYQ/CATSRPROJRelated Project id
/SYQ/T_CATSIC/SYQ/CATSRPROJDRelated project description
/SYQ/T_CATSIC/SYQ/CATSPRESPPerson Responsible Name
/SYQ/T_CATSIC/SYQ/CATSACINACInactive
JESTSTAT, OBJNRused to retrieve Receiver WBS element, based on status

Custom Tables

Custom table /SYQ/T_CATSIC  used is defined in FS Multi Instance Data Sync - CATS Enhancement for Intercompany Recharge.

Master data

Table Name (add more sections for different tables) 

Include an overview of the table and what it’s used for 

FieldDescriptionData Type/LengthValidation rule / Value help 




 Configuration table

Table Name (add more sections for different tables) 

Include an overview of the table and what it’s used for 

FieldDescriptionData Type/LengthValidation rule / Value help 




Tooltips

N/A

Front-End

SAP Fiori app My Timesheet can be used on Desktop, Mobile. 

Mobile Services

N/A

Authentication & Authorization

N/A

Accessibility

N/A

Volumetrics

Provide volumetrics details: Initial load volumes, Number of Records, Expected Frequency, Expected Long term Growth)

Performance Consideration

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.

Error Handling

Detail how errors will be handled: Notification, Restart/ Recovery and Re-Processing Procedures

Testing

How to Test

The test must be executed first in the CATS backend transaction (CAT2) and then My Timesheet V4 (Fiori application).

To ensure successful testing, the following conditions must be met for the tester’s user:

  1. User–Personnel Link

    • The tester’s User ID must be linked to a valid Personnel Number (PERNR) through Infotype 0105 (Communication).

  2. Personnel Master Data On the same Personnel ID:

    • Infotype 0315 (Time Sheet Defaults) must contain a valid Activity Type.

    • Infotype 0001 (Organizational Assignment) must contain an assigned Cost Center.

  3. Costing Data

    • A valid price (rate) for the combination of Cost Center / Activity Type must be maintained for the testing period.

  4. CATS Profile - User Parameter

    • User parameter CVR must be set to the Data Entry Profile that will be used for time entry.

Test Conditions and Expected Results

List all test conditions – this will then be used as a basis to execute both the technical and functional unit tests

IDConditionExpected Result
1.1Create an entry in My Timesheet and search for a Posting WBE element.The custom field appears. Pop-up to search for Posting WBS element. 
1.2Search for a Posting WBS element with Inactive flag = YesNo results returned.
1.3Search for a WBS element using each of the fields for selection criteria.Result returns active WBS element responding to criteria.
1.4Select a WBS element in the result list with company code = User's personnel id's company code.

Booking WBS element ID is assigned to time entry field. 

1.5Enter time and save entry.

Value selected in /SYQ/CATSWBS is assigned to CATS standard field Receiver WBS element. 

Entry can be saved. 

2.1Create a new entry and select a WBS element with company code <> User's personnel id's company code.

Posting WBS element ID is assigned to time entry field. 

2.2Enter time and save entry.

WBS element with project type = Intercompany Recharge and company code = User's personnel id's company code,  is assigned to the  CATS standard field Receiver WBS element. 

Entry can be saved. 

2.3Repeat the 2 above tests while creating multiple entries before saving.

Relevant WBS elements are assigned in the field Receiver WBS element. 

Entries can be saved. 

2.4Copy some entries posted on a past day, to another day. 

Relevant WBS elements are assigned in the field Receiver WBS element. 

Entries can be saved. 

3.1Create an assignments in My Timesheet and search for a Posting WBE element.The custom field appears. Pop-up to search for WBS element from the Z table shows up. 

3.2

Search for a WBS element with status = Closed / Canceled / LockedNo results returned.
3.3Search for a Booking WBS element using each criteria.Result returns relevant Posting WBS element.
3.4Select a WBS element in the result list with company code <> User's personnel id's company code. Save assignment.

WBS element ID is assigned to Posting WBS element. Assignment can be saved. 

3.5Select a WBS element in the result list with company code = User's personnel id's company code. Save assignment.

WBS element ID is assigned to Posting WBS element. Assignment can be saved. 

3.6Book time using the created assignments. Submit entries.

Relevant WBS elements are assigned in the field Receiver WBS element. 

Entries can be saved. 

Test Considerations/Dependencies

N/A

Other Information


Development Details

Package

Package NameParent Package




UI Implementation

UI Type

UI Name

Fiori Catalogue

Design Rationale Reference





API Implementation

API TypeAPI NamePurpose / High Level LogicAPI ProductDesign Rationale Reference






Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference








Appendix


See also

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.

Change log