Status

OwnerBIDALIA-ext, Kuldeep 
Stakeholders
Jira Request ID

Jira Development ID

High- Level Specification

ParameterValue
Application SystemS/4Hana ROW, S/4Hana China, S/4Hana CUI
Business Process Reference

10.02.01.01. Manage Project/WBS Changes

10.01.03.01. Manage Initiatives and Items

Functional Overview

Standard fields "Person Responsible No." and "Applicant No." are utilized in Project Definition and Work Breakdown Structure (WBS) elements of a project to track accountability and facilitate project-related notifications & workflows. Given that standard fields are maintained through manual configuration. In Syway design , it is intended to use Position numbers in this table based on the roles assigned. This means-

  • HR positions assigned to specific Security Roles will be designated as the responsible entities at the Project Definition and WBS element levels.
  • It supports organizational continuity, as responsibilities are tied to HR Position rather than individuals- reducing the need for manual updates when personnel changes occur.

Scope and Objectives

Scope- This enhancement defines a scheduled batch job that extracts HR positions based on their Security Role assignment and updates-

  1. Person Responsible No. Table: Populated with positions linked to Security Roles ‘Person Responsible - Project’, ‘Person Responsible - WBS’
  2. Applicant No. Table: Populated with positions linked to Security Role ‘Project Financial Controller’.

Objective- The key objective is to auto populate the Person Responsible and Applicant tables with relevant Positions based on relevant Security Roles.


Process Flow Diagram

N/A

Process steps are-

Step

Description

Comment

1Assign HR Position to a SAP User IDExisting active HR Position is assigned to a SAP User ID/s
2Assign Security Role to SAP User IDAssign Security Role e.g. ‘Person Responsible - Project’ OR ‘Person Responsible - WBS’ OR 'Project Financial Controller' to SAP User ID/s
3Execute Batch Job manually

Position will be derived based upon the defined Security Role assignment to the SAP User ID. Person Responsible No. or Applicant No. table will be appended as-

  1. Positions derived via Security Roles ‘Person Responsible - Project’ OR ‘Person Responsible - WBS’ is assigned then Person Responsible No. table will be updated with new record.
  2. Positions derived via Security Role ‘Project Financial Controller’ is assigned then Applicant No. table will be updated with new record.
4Check Positions available in Project Definition and WBS elements

Open a project and select project definition/ WBS element-

If Security Roles ‘Person Responsible - Project’ OR ‘Person Responsible - WBS’ is assigned to the Position via SAP User ID then search the Position in the Person Responsible No. field.

If Security Role ‘Project Financial Controller’ is assigned to the Position via SAP User ID then search the Position in the Applicant No. field.

5Check Positions available in the PPM Item

Open an PPM Item-

If Security Roles ‘Person Responsible - Project’ OR ‘Person Responsible - WBS’ is assigned to the Position via SAP User ID then search the Position in the Project Owner field.

If Security Role ‘Project Financial Controller’ is assigned to the Position via SAP User ID then search the Position in the Project Financial Controller field.

Assumptions

  • The system will have predefined Job like ‘Person Responsible – Project’, ‘Person Responsible – WBS’, and ‘Project Financial Controller’ are expected to be consistently active. These Job name can vary based on Syensqo's nomenclature standards. 
  • Job-to-Position relationships are maintained in standard HR Infotype. 
  • one Position will be assigned to a single user.

Dependencies

  • HR master data must be up to date i.e. applicable Jobs must be assigned to relevant Position.
  • Table structures for Person Responsible No. and Applicant No. must allow maintenance via Batch Job without creating Transport Request.
  • Given that HR job and position are Tier-1 master data, they will be replicated across all instances along with its associated infotypes.

Security, Integrity and Controls

  • Authorization Checks: Batch job runs under a technical user with restricted write access to Person Responsible No. and Applicant No. tables.

Configuration Requirements

N/A

Language Requirements

N/A

Special Requirements

N/A


Design Rationale

Functional Requirements

The proposed batch job must fulfill functional requirement to ensure accurate, Job based HR Positions are available for the project governance. First, the system must extract HR positions from standard infotypes by evaluating their relationship to predefined Job i.e. "Person Responsible- Project", "Person Responsible- WBS" and Project Financial Controller. 

Once extracted, the batch logic must filter positions based on their Job mapping: positions linked to "Person Responsible- Project", "Person Responsible- WBS" jobs must be inserted or updated in the Person Responsible table, while those linked to the Project Financial Controller job must populate the Applicant table. 

Additionally, the batch job must log all successful and failed updates, capturing metadata such as timestamp, record ID, and error type to support audit traceability. 

Proposed Technology to Use

N/A

Data Source Considerations

N/A

TableField NameComments/Calculation/Field Manipulation









Data Validation Considerations

N/A

  • Data Validation: Job IDs and position IDs are validated before update.
TableField NameComments/Calculation/Field Manipulation












Custom Tables

N/A

Master Data

N/A

FieldDescriptionData Type/LengthValidation rule/ Value Help








Configuration Table

N/A

FieldDescriptionData Type/LengthValidation rule/ Value Help








Selection Screen Enhancement

Field NameDescription

Select:

Option or Parameter

Check box or Radio button

Import or Export

Data Type/LengthDefault Value/ Validation rule/ Value HelpSelection Logic
WERKSPersonnel AreaParameterPERSA

System Instance specific Personnel Areas to be defined

Multiple Personnel Areas can be selected






Processing Logic

This enhancement is initiated through a daily batch job to ensure that Job based positions are consistently maintained within the TCJ04 & TCJ05 tables, sequence is-

  1. Identify Person Responsible Positions

           Pass Personnel Area defined in the selection screen and pick all active Positions i.e. pass Personnel Area in HRP1008-PERSA and pick all active HRP1008- OBJID. Get only those positions which are assigned to specified Jobs Person Responsible- Project" or "Person Responsible- WBS"- 

    1. Object Type = S (Position)
    2. Relationship type/relationship = B and Relationship object= 007
    3. Position with future end date are Active Positions, Positions with past End Dates are Inactive Positions.
    4. Infotype =1001, Subtype B007, Type of related object = C i.e. Job 
    5. Retrieve the latest position description from HRP1001 using the end date logic.
    6. If a Position is found having both the Jobs then continue with single record with job "Person Responsible- Project".

        2. Identify Applicant Positions

          Pick all active Positions based on Job "Project Financial Controller" where

    1. Object Type = S (Position)
    2. Relationship type/relationship = B and Relationship object= 007
    3. Positions with future end date are Active Positions, Positions with past End Dates are Inactive Positions.
    4. Infotype =1001, Subtype B007, Type of related object =C i.e. Job 
    5. Retrieve the latest position description from HRP1001 using the end date logic.

       3. Select action-

  • Create
    • Person Responsible table

                      For Job i.e. HRP1001-SOBID = "Person Responsible- Project" or "Person Responsible- WBS", Compare TCJ04 table entry with Step-1 data.

                      If new Positions are found in Step-1 data, then insert them as new Records in TCJ04 i.e. Position in VERNR and Position text in VERNA.

    • Applicant table

                     For Job i.e. HRP1001-SOBID = "Project Financial Controller", Compare TCJ04 table entry with Step-2 data.

                     If new Positions are found in Step-1 data, then insert them as new Records in TCJ05 i.e. Position in ASTNR and Position text in ASTNA.

  • Change-
    • Person Responsible table

                      For Job i.e. HRP1001-SOBID = "Person Responsible- Project" or "Person Responsible- WBS", Compare TCJ04 table entry with Step-1 data.

                      If same Positions are found in both the tables, then update each Position text i.e. TCJ04-VERNA.

    • Applicant table

                     For Job i.e. HRP1001-SOBID = "Project Financial Controller", Compare TCJ04 table entry with Step-2 data.

                     If same Positions are found in both the tables, then update each Position text i.e. TCJ05-ASTNA.

  • Delete- Inactive Position

                    Inactive Positions found in step-1 & 2 should be deleted from TCJ04 & TCJ05 tables if exist.

                 Note: SAP has provided Blocked option in both TCJ04 & TCJ05 tables, how to use it? SAP incident raised.

Volumetrics

N/A


Performance Considerations

N/A



Error Handling

Monitoring and tracking of batch job (success or failure) and the ability to retrigger the batch job if needed.

Failed Batch jobs must be identifiable with exact reason of failure.

  1. If one Position has multiple Jobs i.e. "Person Responsible- Project" and/or "Person Responsible- WBS" and "Project Financial Controller", show error that "Position "00000" with multiple Jobs "Job 1" and "Job 2" and "Job 3""


Testing

How to Test

Some HR Positions are required which are assigned to respective Job. 

Test Conditions and Expected Results

IDConditionExpected Result
1

Valid new Position with Job "Person Responsible- Project" or "Person Responsible- WBS"

Entry in Person Responsible table will be maintained after executing batch job manually

2

Valid new Position for "Project Financial Controller"

Entry in Applicant table will be maintained after executing batch job manually

3

Invalid Job in new Position i.e. defined Job of Person Responsible and Applicant are not assigned 

No update in OPS6 or OPS7 after executing batch job manually

4

Change existing Position Description which is already maintained in either OPS6 or OPS7

Position text will be updated after executing batch job manually

5

Position with mixed jobs i.e. "Person Responsible- Project"/ "Person Responsible- WBS" and "Project Financial Controller"

Error log will be generated via batch job

6

Position with mixed jobs i.e. "Person Responsible- Project" and "Person Responsible- WBS"

Batch job will process and TCJ04 table will be maintained.

7

Position is inactive

Position will be deleted from OPS6 or OPS7 after batch job execution.


Test Considerations/Dependencies

  • The H2R team to allocate 10 positions to support the execution of the various tests outlined above.


Other Information

N/A

Development Details

Package

Package NameParent Package




Enhancement Implementation

Enhancement TypeStandard Definition NameCustom Implementation NameDesign Rationale Reference









Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference








Appendix

Custom Authorization Group Naming Convention

This table is based on the Syensqo development standards document. It provides the naming conventions for authorization groups to associated with custom reports and tables to comply with security requirements.

ABAP

ZFIZMMZPSZCOZSDZBCZFIZCA
TABLESZFITZMMTZPSTZCOTZSDTZBCTZFITZCAT

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