CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
cancel
Showing results for 
Search instead for 
Did you mean: 
Michael_W
Product and Topic Expert
Product and Topic Expert
The 2311 release of SAP Variant Configuration and Pricing is planned to be deployed to BTP customer tenants on October 25th.

This blog covers the following planned innovations:

  • Extension Concept – Database Access for Local Extensions

  • SAP Cloud ALM Integration for System Monitoring

  • Pricing service – Bulk Update for Different Conditions Across Items

  • Pricing service – Calculate Condition Rate from Condition Value

  • Pricing service – No Unintended Group Condition Processing Through Structure Conditions like 2DUP

  • Pricing service – Return Condition Table Ids Consistently

  • Administration – Improvements to UIs for Pricing Data Replication


It also includes a call to act regarding the following potentially incompatible changes:

  • Pricing service – No Unintended Group Condition Processing Through Structure Conditions like 2DUP

  • Pricing service – Return Condition Table Ids Consistently.


 

Please check the updated roadmap and release notes after the release date to see which of those features could be delivered as planned.

 

Disclaimer

The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the permission of SAP.
Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or any related document, or to develop or release any functionality mentioned therein.

This presentation, or any related document and SAP's strategy and possible future developments, products and or platforms directions and functionality are all subject to change and may be changed by SAP at any time for any reason without notice. The information in this presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality.  This presentation is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by SAP’s intentional or gross negligence.

All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates,
and they should not be relied upon in making purchasing decisions.

 

 

Extension Concept – Database Access for Local Extensions


Since the August release, we distinguish local extensions and remote extensions:

  • Local extensions: upload custom JavaScript code for variant functions and certain pricing routines which is executed locally by configuration and pricing services.

  • Remote extensions: specify an external web service URL which is called by configuration and pricing service for each variant function or custom pricing routines. Remote extensions were also described in SAP Variant Configuration and Pricing – Extension Concept | SAP Blogs.


Local extensions were introduced in August. The concepts of local and remote extensions exist in parallel. Local extensions are now the first choice to avoid unnecessary network latencies in custom code execution and to reduce customer TCO by avoiding running extensions e.g. on Kyma.

Remote extensions must still be used in cases that cannot be covered by the local extensions.

Local extensions implementation must be compliant with the ECMAScript 2021 specification and may not have external dependencies. No HTTP- or DB calls are possible from within that code.

In the November release, we will enhance the local extensions framework in a way that replicated database tables can be read from the custom code. Additionally, we will allow replication of additional tables that are needed for the extension implementation.

We will introduce two new customer roles for the administration UI:

  • ReplicationAddTables: Allows requesting new tables for replication that shall be used for local extensions.

  • ReplicationApproveAddedTables: Allows reviewing and approving the added tables before they can be replicated and used.


In menu Tables, you will find a new section Add Custom Tables:


Disclaimer (Labs Preview)


You must go through the different steps of a workflow to add new tables. It starts with a disclaimer explaining that size restrictions apply with regards to number and size of additional tables.

Additional tables can only be replicated from SAP ERP, SAP S/4HANA on-premise and SAP S/4HANA Cloud, private edition, not from SAP S/4HANA Cloud, public edition.

In the next step, you add the list of additional tables, and you can choose if you need the tables for pricing, configuration, or both:


Add and Submit


Then, a size check must be done:


Size Check


You can also apply filters, for example, if not all table columns are relevant or if size check fails.

This is strongly recommended to reduce the amount of data transferred.

You can select the needed columns:


Filter on Columns


Similarly on rows:


Filter on Rows


After successful size check, the new tables are submitted for approval. There is not yet a mechanism to notify an approver about pending requests. The approver can then approve or reject tables:


Approval Screen


 

From the local extensions JavaScript code, a replicated database table can be accessed through interface sap.db() as described in the following example:



“sap.db().select()” returns a SelectBuilder​, that supports the following actions:

  • “top(int)”, where ‘int’ in [1…100, max/default=100 row result size]​

  • “columns(String, …)”, where the strings are column names

  • “from(String)”, where the ‘String’ is the table name

  • “where(WhereExpression)”​


”build()” returns the select statement, that must be passed to sap.db().execute() to process the select and receive the results.

Results can be processed as follows:


Local Extension - Read DB Results (Labs Preview)


More details will be published in the Administration Guide and the Extension Guide.

 

SAP Cloud ALM Integration for System Monitoring


Configuration and pricing services and their administration UI will report aspects related to system monitoring to the central monitoring and alerting tool in SAP Cloud ALM for cloud-based application lifecycle management (ALM). The focus of system monitoring is to monitor the following aspects:

  • Critical error situations (exceptions) for configuration and pricing services

  • Errors during data replication

  • Data replication status of the data provisioning agent of SAP HANA smart data integration



Messages Overview


 


Message Details


 

See also SAP Cloud ALM | SAP Help Portal.

 

Pricing service –Bulk Update for Different Conditions Across Items


New service end point POST ​/api​/v1​/pricing​/documents​/{documentId}​/itemsConditionsList will be introduced to update different pricing conditions on multiple items.

While the existing endpoint POST ​/api​/v1​/pricing​/documents​/{documentId}​/itemsConditions only allows to create or update a single condition type across items, the new endpoint can also be used to create or update different manual conditions across items.

More details will be published in the API Definition and in the Development Guide.

 

Pricing service – Calculate Condition Rate from Condition Value


In price calculations, the condition value is always calculated from condition rate and condition base: Condition value = condition rate * condition base.

When a condition value is manually added or changed for a specific price condition, the rate is not calculated from the value.

This behavior remains for back-end compatibility.

Additionally, the rate will be calculated and returned in the field rateConverted which was introduced in the August release to return condition rate in document currency.

More details will be published in the API Definition and the Development Guide.

 

Pricing service – No Unintended Group Condition Processing Through Structure Conditions like 2DUP


If condition type 2DUP (or any other condition type with setting ‘structure condition = A’) was present in a pricing procedure, an unnecessary iteration of price calculation used to be done. This issue has been corrected.

If condition type 2DUP (or any other condition type with setting ‘structure condition = A’) was present in a pricing procedure, group conditions used to be calculated even if group condition processing was disabled. This issue has been corrected.

Action: When using stateless pricing with groupCondition=false, e.g. in SAP Commerce Cloud or SAP CPQ Quote 1.0 with a pricing procedure that uses a condition type with setting structure condition = A ‘Condition to be duplicated’, please check your pricing results. If you rely on group condition processing, ensure that stateless pricing is called with groupCondition=true.

More details will be published here in the API Definition and the Development Guide.

 

Pricing service – Return Condition Table Ids Consistently


Endpoints GET /pricing/documents/{documentId}/conditions/{conditionId} and
GET /pricing/documents/{documentId}/items/{itemId}/conditions/{conditionId} used to return the table number only in response field table, like 900, while POST /statelesspricing and GET /customizing/accesssequences/{accessSequenceId} return a full table name, like A900. This issue has been corrected.

Action: Check and adapt your implementation if you are using field table returned by /conditions endpoints.

More details will be published in the API Definition and the Development Guide.

 

Administration – Improvements to UIs for pricing data replication


Bulk entry of pricing procedures

Up to 50 pricing procedures can now be entered separated by commas or line breaks.


Improved replication status of pricing procedures

The UI displaying pricing procedures has been enhanced to show the replication status of the pricing procedures in more detail. Now the status of each condition table can be seen. It is also possible to retrigger the replication of a condition table.


More details will be published in the Administration Guide.

 

With that, you have a good overview of what innovations are planned for the November release. Please check updated roadmap and release notes after the release date to see which of those features could be delivered as planned.