Converting project working hrs to person day with embedded steampunk extensibility

In This Blog, I would like to discuss about how we could leverage the Developer extensibility in SAP S/4 HANA  Cloud to convert project working hrs to person days with embedded steampunk/ Developer extensibility.

Use Case: In project business, clients often ask the service provider to bill service in ‘person days’ instead of hours. Converting those project working hours to person day on the simple conversion rule of 1 person day = 8 hours is very straightforward and can be achieved by enhancing invoice output.

Here we discuss a bit more complex requirement, where conversion rules are agreed upon during the project start and could have specific rounding rules. For example, one is depicted here in the table below.

Project Working hours Printed on Invoice  
1 h 0.5 days Anything between 1-4 h is ½ day
2 h 0.5 days
4 h 0.5 days
5 h 1 day Anything between 5-8 h is 1 day
6 h 1 day
7 h 1 day
8 h 1 day
9 h 1 day Hours >8 cut off

Implementation Details:

To achieve such complex conversions, we shall make several enhancements as follows

  • We will define a custom table to store the conversion rules
  • We will have a custom field on the app – Plan Customer Projects so that one can select those conversion rules during project creation
  • Finally, we will convert the recorded time on the projects to person day

In this approach, we Shall not override the time recorded by a consultant within the Manage My Timesheet Application. So, we shall define the Work Package as a Service-based work package – which allows us to plan and record time in hours and provides flexibility to bill in another unit. For example, person day.

Step1: Define the Contract Types in the Customer Project

Create a work package in the Plan Customer project -> Change the work package type Service Based Unit instead of Resource-based unit

Select the Person Days Service and maintain the Quantity in Person Days

Create a custom field (F4 Help which has different conversion types) in the Customer Project -> In the work Package  created above using the Key User Field Extensibility

Maintain the Different contract Types in the Custom Field Created as per the need

Step 3: Employee records time in hours

Step4: time to code

Create a custom table to store the last record that is read from the CATSD. Let’s say LRTR (previous read Time record)

Create a custom Program to perform the below activates

https://api.sap.com/api/OP_ALLOCATIONPOSTINGCREATEREQUEST_IN

This Entire custom program can be Scheduled so that it runs on the desired frequency

That’s how you shall be able to bill in Person Days instead of Hours in projects by using developer extensibility in S/4 HANA Cloud, please try and let me know your thoughts in comments