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