Relevant for S4HANA Cloud, Public Edition
Currently the Customer Project Billing based on project (Scope item 4E9) or Intercompany Billing (Scope item 4AN), both these billing processes as a standard cater to many of the scenarios used in a company. However, some may have scenarios where the billing needs to be influenced by the external parameters/attributes for multitude of different purposes.
Therefore, with the release of S4HANA Cloud, Public Edition version 2408.2, we are introducing process extensibility business scenarios. These scenarios enable the use of custom fields to influence the billing process and the structure of the invoice.
A process extensibility business scenario integrates a series of business contexts (in such a manner that any value set for a custom field, enabled for the scenario, will propagate through the process, and can impact the business process.
There are two supported variants of process extensibility from Journal entry to Billing Document to influence the billing process flow.
The function of each business context involved in this process extensibility is as follows:
Business context to accommodate the custom value coming from financial cost posting applications:
There are two business contexts depending on the financial application or API from where the journal entry is created and from where the custom field is expected.
Most cost posting applications and their corresponding APIs like Supplier Invoice, Activity allocation, Reassign costs and revenues etc. are natively integrated with coding block. In such cases, adding a custom field within the “Accounting: Coding Block” business context ensures direct availability of the custom field in the application and/or API.
Post general Journal Entry application and its API is natively integrated with business context “Accounting: Journal Entry Item”. Therefore, this context is more appropriate in such cases.
Depending on the source application or API from where the custom field value is expected to arrive, one of the above process extensibility variants should be chosen.
In case, custom field needs to be derived based on special logic, either of the business contexts—and thus the respective extensibility variant—can be enabled. Use the cloud BAdI FIN_CODING_BLOCK_SUBSTITUTION for the “Accounting: Coding Block” context and FIN_ACDOC_ITEM_SUBSTITUTION for the “Accounting: Journal Entry Item” context to implement the required logic.
Business context to influence Project Billing and Intercompany billing:
Activating any of the variants will mandatorily activate two business contexts.
The "Entries for Project Billing Element" business context ensures that the custom field is seamlessly integrated into the background processes of Project Billing and Intercompany Billing.
The "Items for Project Billing Request Item" business context can be utilized to control the visibility of the custom field across various Project Billing applications, APIs, and OData services.
Business context to influence Sales Billing
a. Activating any of the variants will automatically activate the "Sales: Billing Document Item" business context. This context enables the custom field to flow through the Billing Document Request and the Billing Document, providing options to manage the visibility and availability of this field across various user interfaces, APIs, and OData services.
Additionally, the extensive capabilities beyond this business scenario allow for further enhancing the impact of custom fields on the process. For example:
Deriving custom field values through Substitution and Validation
Determining alternative Sales rate
Applying additional discounts or surcharges
Influencing the split of the Invoice
Determining alternative Tax
In summary, the entire process can be tailored by combining various start and end options, with or without intermediate steps, to create a seamless process flow that meets the specific requirements of the company as reflected below.
The process extensibility on enablement, is available for both Project Billing and New Intercompany Billing. It means any field enabled for any one of the variants will be available in both, as they share common background business contexts.
Additional enhancements to core process extensibility can be optionally configured and customized differently for Customer Project Billing and New Intercompany Billing.
Pre-requisite to use the process extensibility for new Intercompany billing are
New Intercompany billing must be active.
Associated Material determination configuration must be setup.
For more details refer to Process Navigator for Scope Item 4AN
In this blog post, we will explore the setup of three example scenarios illustrating some of the combination options.
Scenario 2: Split Intercompany Billing Invoices based on work performed location
Scenario 3: Separate Project Billing Invoices per employee
In this scenario, the Project Billing Specialist needs to bill time recordings at different sales prices based on whether the work was performed onsite or offsite. Therefore, the timesheet application must be enabled to allow employees to capture information indicating whether the work was performed onsite or offsite during time recording.
Upon enabling process extensibility and enhancing the pricing procedure setup to influence sales price based on a custom field, the process is orchestrated as follows:
Below are the detailed steps to enable the scenario.
Using the "Custom Fields" application, create a new custom field named "Onsite" for the Business Context "Accounting: Coding Block.”.
In the Business scenario tab, enable the business scenario “Coding Block to Billing Document for Billing”
This will also introduce the field for the following business contexts as illustrated below.
To enable the custom field to influence pricing, navigate into the business context “Sales:Billing Document Item” and activate the business scenario “Billing Document to Pricing Communication on Item Level”. Save and publish the changes. This will add the custom field to the business context "Sales: Pricing Communication Item”.
To manage the visibility of the custom field in various applications, the corresponding CDS views or OData services must be enabled in the relevant business contexts under the "User Interfaces" tab, and then saved and published again.
1. Enable CDS view in "Entries for Project Billing Element" business context to allow data flow to the Invoice Preview
2. Enable following services and views in “Items for Project Billing Request” to ensure visibility of custom field in Manage Project Billing application
3. Enable the following services and views in "Sales: Billing Document Item" to ensure the visibility of the custom field in the Billing Document and Billing Document Request applications. This same business context can optionally be used to handle the visibility of the Preliminary Billing Document Request.
4. Enable following Form template(s) in “Sales: Billing Document item” to ensure visibility of custom field in the Invoice preview (XML format)
5. Enable following services, views and APIs in “Sales: Pricing Communication Item” to ensure visibility of custom field in Manage Prices – Services and further influence pricing condition records.
Timesheet application is not natively integrated with coding block. Hence to ensure the custom value from timesheet application to coding block, additional business scenario “Project based services: transfer from Time recording to Invoice printout” needs to be activated. The additional business scenario will ensure the propagation of the custom field value from Timesheet to coding block. From there on the business context from Journal entry to Billing Document will take care to propagate the field value further on.
This custom field is additionally added into business context “HCM:Timesheet Fields”. To facilitate data flow from the custom field in the Timesheet application to the coding block (and subsequently to further processes), the following services and views should be activated. Optionally, you may choose to activate the services for workflow as well.
In “Manage Your solution” application, open the set of configuration options under the Application Area : Sales, Sub Application Area: Pricing Management and Item Name: Pricing. Follow each of the highlighted configuration options under this Item in a step-by-step manner.
1. Add the custom field to the Field Catalog list using SSCUI 103118. Upon clicking "New Entries" and selecting the value help, the newly added custom field will be displayed
Select the same and click on save.
2. Create new condition table with custom field via SSCUI 103119. Provide a 3- digit alphanumeric code between 501 to 999 for condition table of your choice. Select the custom field and any additional fields according to your business needs, then click "Generate.".
Note: The condition table will later facilitate the specification of sales price for the combinations of fields defined within it. Multiple condition tables can be created based on the various permutations and combinations of sales price definitions required by your business needs.
3. Set Access Sequence of the condition tables via SSCUI 103121
Start with creation of new entry with code and description of your choice.
Select the entry and click on “Accesses”. Add new entry with the recently created condition table. If there are multiple condition tables, add all of them, ensuring they are in the correct sequence by numbering them accordingly in the "No." column. This defines the sequence of execution during pricing determination.
Select the entry and click on “Fields” and check the field-level mapping and save the changes.
4. Setup the condition types using SSCUI 101120
“Create” a new entry or “Copy as” from an existing entry. Specify a new code and description for Condition Type and add the Access Sequence created in previous step.
In this example, the condition type has been set up to work with the calculation type, quantity, and the sales price, which can be defined as a percentage or amount.
5. Create Custom Pricing Procedure via SSCUI 101117
Create a new entry with new code and description. Alternatively, you can copy an existing pricing procedure along with its control data.
In this example, the custom pricing procedure is copied from the standard pricing procedure. The newly created condition type is added in the required sequence to maintain similar pricing determination as the standard procedure, but with added influence of the new custom field value.
6. Setup the Custom Pricing Procedure code/identifier via SSCUI 101202
Add a new code with desired value. This is later used as a parameter to determine the relevant pricing procedure.
7. Setup the Pricing Procedure Determination via SSCUI 101118
Copy the entry for standard pricing procedure for the specific combination of sales organization, distribution channel, division, and document pricing procedure. Add the customer pricing procedure and custom pricing procedure created in previous 2 steps and save.
With this the pricing procedure setup is complete.
To ensure that the custom pricing procedure defined is triggered for your customer project during Project Billing, the first step is to setup the customer Pricing Procedure attribute in the Customer’s business partner profile.
In the Maintain Business Partner application, select the customer and set the Customer Pricing Procedure attribute to the code created during the pricing procedure setup step.
Next, create the customer project using the Plan Customer Project application with the previously selected customer.
Access the Manage Prices – Services application directly or through the Billing tab of the Customer Project. Within this application, filter for the new condition type and customer project. Create a new entry, selecting the newly created condition table. Specify the values for the attributes and custom fields that are part of the condition table. In this example, since the condition type is set up as a specific sales price or a percentage, input the values and save to create a condition record.
Assign the employee to the customer project for which the custom sales rate is set up.
Add the custom field in the timesheet application via UI adapt option and activate the version
Upon activation, the application can be used for time recording with different values for custom field.
Once the time is recorded, open the Manage Project Billing application to see the reflected service postings. Here, you can also observe that each entry has a different sales rate determined according to the custom field value for on-site or off-site services.
Click "Submit" to generate the billing document request. Then, use the Create Billing Documents application to generate the billing document. The custom field value can also be viewed in the billing document item.
In the Invoice preview, the two billing document items are visible, each reflecting a different sales price.
In the XML version of the Invoice preview, you can see that the custom fields are included as attributes of the two billing document items, based on their different custom field values. The individual line-item details also reflect these attributes.
In this scenario, we have a need to capture the physical location where the work was performed by intercompany employees assigned to a project in another company code. Furthermore, it is needed to split the Intercompany invoice based on the different locations where the work was performed.
Upon enabling process extensibility and implementing the billing data transfer BAdI, the process is orchestrated as follows
Below are the detailed steps to enable the scenario.
In the Custom Fields application, create a new custom field “WorkLocation” with Business Context “Accounting: Coding Block” Specify the field type as text and required length.
In the Business scenario tab, enable the business scenario “Coding Block to Billing Document for Billing”
This will also introduce the field for the following business contexts
Enable the custom field, “WorkLocation” to be visible in the Activity Allocation and Reassign Costs and Revenues applications via the business context “Accounting: Coding Block” as shown below.
Enable the custom field, “WorkLocation” to be visible in the Billing Document Request and Billing Document applications via business context “Sales: Billing Document Item” as shown below.
The custom field “WorkLocation” is now available throughout the process.
In the Custom Logic application, create a new implementation for the BAdI “Custom Data Transfer for Billing Documents” with filter parameter that serves as the enhancement identifier.
Once the implementation is saved, click on the code editor. The “WorkLocation” Custom field is available as importing parameters. Add the below sample code to configure the “WorkLocation” for invoice split. Save and publish your changes.
Next, we need to configure when the code split should occur. To do this, open the "Manage Your Solution" application with Application Area= Sales, Sub Application Area = Sales Billing and Item Name = Copying Control for Billing Documents.
In the Configuration Steps, select “Define Custom Routines for Data Transfer to Billing Documents” (SSCUI: 102865). Create a new entry, Specifying a Routine number of choice and Routine description
Select the entry and navigate to the “Assign Enhancement IDs to a Routine Number”. Create a new entry with Process Enhancement Option Task as SD_BIL_DATA_TRANSFER and the Enhancement Identifier as the filter specified in the BAdI Implementation. In this example, it is “WorkLocation” and click on Save. Copy the Routine Number.
Now, open the SSCUI “Define Copying Control for Billing Document to Billing Document” (102764). Select the Target and Source billing type. For Intercompany billing, Target is CI02 and Source is RICR. Select the entry and click on “Item” to see a list of item categories.
As intercompany billing only uses one item category (PS03), select this category and enter the copied Routine Number from the previous step.
This completes the setup and configuration for the custom field in process extensibility and Invoice split condition in Intercompany Billing.
In the “Manage Activity Allocation” application, click on Create. On the details page, use the personalize option to add the custom field “WorkLocation” in the allocation items section.
Create entries with different values for the “WorkLocation” field. In this example, two entries are created with “WorkLocation” values set to "Washington" and "Chicago," while keeping the rest of the attributes the same. This will demonstrate the impact of the custom field with the current setup.
With the cost allocations completed, Generate Intercompany Billing Request can be triggered to initiate the Intercompany Billing process. Optional parameters can be specified. Upon successful completion of the process, a Billing Document Request is generated.
When viewing the details of the generated Billing Document Request, you will see different line items, each with a unique combination of standard field values and custom field values. In our example, since we created entries with identical standard attribute values different the custom field “WorkLocation” values. Hence two items are generated in the Billing Document Request with different “WorkLocation” values.
This can be observed in the Billing Document Request factsheet by adding the custom field value via the personalization option on the items table.
For the final step, trigger the “Create Billing Document” application with the generated Billing Document Request. Due to differential values of “WorkLocation”, 2 Billing Documents are generated. The Split Analysis reflects the split criteria as per the setup.
In this scenario, the end customer requires a separate invoice for each employee who provided services in a customer project. To ensure that a separate invoice is automatically generated for each employee, we will use a custom field to derive and copy the standard "Personnel Number" field. This approach guarantees the personnel number appears in the invoice items, facilitating the split of the Customer Project Billing Invoice by employee.
Below are the detailed steps to enable the scenario
In the Custom Fields application, create a new custom field “PersonnelNumber” with Business Context “Accounting: Coding Block” Specify the field type as text and required length.
In the Business scenario tab, enable the business scenario “Coding Block to Billing Document for Billing”
This will also introduce the field for the following business contexts – Project Billing Element, Project Billing Request, Billing Document Request, Billing Document.
To handle visibility of the custom field in various applications, the respective CDS views or oData must be enabled in corresponding business contexts and published again
1. Enable visibility in Manage Project Billing application via business context “Items for Project Billing Request”
2. Enable visibility in Billing Document Request and Billing Document applications via business context “Sales: Billing Document Item”
After ensuring visibility of the “PersonnelNumber” Custom field in various applications, implement the cloud BAdI FIN_CODING_BLOCK_SUBSTITUTION via the Custom Logic application. The implementation can be set up per company code as shown below.
Once the implementation is saved, open the code editor. The “PersonnelNumber” custom field will be available as an importing parameter. Add the following sample code to configure the “PersonnelNumber” to be derived from the activity allocation item, based on the standard Personnel Number entered. After adding the code, save and publish.
In the Custom Logic application, create a new implementation for the BAdI “Custom Data Transfer for Billing Documents” with filter parameter that serves as the enhancement identifier
Once the implementation is saved, click on code editor. The “PersonnelNumber” Custom field is available as importing parameters. Add the below sample code to configure the “PersonnelNumber” for invoice split. Save and publish your changes.
Next, we need to configure when the code split should occur. To do this, open the "Manage Your Solution" application with Application Area= Sales, Sub Application Area = Sales Billing and Item Name = Copying Control for Billing Documents.
In the Configuration Steps, select “Define Custom Routines for Data Transfer to Billing Documents” (SSCUI: 102865). Create a new entry, Specifying a Routine number of choice and Routine description
Select the entry and navigate to the “Assign Enhancement IDs to a Routine Number”. Create a new entry with Process Enhancement Option Task as SD_BIL_DATA_TRANSFER and the Enhancement Identifier as the filter specified in the BAdI Implementation. In this example, it is “PersonnelNumber” and click on Save. Copy the Routine Number.
Now, open the SSCUI “Define Copying Control for Billing Document to Billing Document” (102764). Select the Target and Source billing type. For Project billing, Target is CI0I and Source is PBDR. Select the entry and click on “Item” to see a list of item categories.
Project Billing supports various billing types, such as Time & Expenses (T&E), Fixed Price, and Periodic Services etc. Please select the relevant Item Category corresponding to the billing type for which the split routine should be triggered. In our example, the split routine is set up specifically for Time and Expenses billing. Therefore, select the PS23 item category and proceed to the details section. Configure the split by adding the copied Routine Number from the previous step in the Custom Data Transfer field.
This completes the setup and configuration for the custom field in process extensibility and Invoice split condition for Project Billing.
Setup the Customer Project with sales order and work package(s). Ensure the customer project is set to "In Execution" status. Activity Allocation can now be triggered for the work package of this project.
Note: The Personnel Number field is an optional standard field in the "Manage Direct Activity Allocation" application. Upon creating an entry, the custom field value will be derived in the background from this field and stored accordingly.
Use the "Manage Project Billing" application to trigger billing by clicking the "Prepare Billing" button. The service created via Activity Allocation , along with the derived ““PersonnelNumber”” custom field (which can be added via the personalization option), will be displayed here.
Submit the Project Billing Request to generate the Billing Document Request. Due to different values of “PersonnelNumber”, two different Billing Document Request items are created.
The custom field "Personnel Number" is displayed in the Custom Fields section on the Billing Document Item details page, depending on the visibility settings defined in the business context when configuring the custom field.
For the final step, trigger the “Create Billing Document” application with the generated Billing Document Request. Due to differential values of “Personnel Number”, two Billing Documents are generated. The Split Analysis reflects the split criteria as per the setup.
As demonstrated in the examples above, the new process extensibility, combined with additional features for influencing resource-related billing processes, showcase the diverse process variations that can be achieved. This provides considerable flexibility, allowing for the accommodation of various customer requirements. As a result, resource-related billing processes can be tailored and optimized to meet the unique needs of each customer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
9 | |
7 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 |