Solution Order is a business transaction in SAP Cloud ERP, used to sell solutions which can be a combination of either physical goods, one time services, recurring services, subscriptions, or projects bundled as one integrated customer offering. With the 2508 release of SAP Cloud ERP, the OData V4 APIs for simulation of solution order is available. Simulation APIs can be used to simulate various entities of solution order without creating a solution order. Various determination logic like partner determination, price determination, billing plan etc can be simulated without creating a solution order. This can be used to provide a quote using a quoting engine outside of SAP Cloud ERP. Such external quoting solutions can benefit from the possibility of quoting a real time price calculated in SAP Cloud ERP using the Solution Order simulation APIs. In this blog, you will find more information about the API, the entities available for consumption and the operations on these entities.
The communication arrangement with the Business Solution Order Integration scenario(SAP_COM_0706) needs
to be in place to access the API. You will need to create a communication arrangement for the communication scenario
SAP_COM_0706, A communication system with an inbound user. You can as well configure OAUTH 2.0 if
needed.
The API supports Basic Authentication(username/password), OAUTH2.0, and X.509 Certificate Authentication
Metadata provides a description of the service, detailing the structure of the data, available entities, their
properties, relationships, and supported operations. It acts as a blueprint that allows both developers and tools
to understand how to interact with the service without needing prior knowledge of its design.
It can be accessed using the below URL
https://<<SERVER>>/sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/api_bussolnordsimulation/0001/$metadata
Below is a screenshot, with a part of the metadata of the Business Solution Order API.
In the above partial view of the metadata, you can see the Entity BusinessSolutionOrderItem, it has 2 key fields - BusinessSolutionOrder and BusinessSolutionOrderItem, a set of properties like Product, Quantity, BusSolnOrdItmCategory, etc. it also specifies the type, max length, precision etc of the properties. There are a set of navigational properties(or associations) for the entity. Associations are other entities related to the current entity.
| Entity | Supported Operations | Description | Associations |
| BusinessSolutionOrder | CREATE (Simulate) | Solution Order Header | _Item _Partner |
| BusinessSolutionOrderItem | CREATE (Simulate) only using deep insert on BusinessSolutionOrder | Solution Order Item | _BusinessSolutionOrder _Partner _PriceElement _BillingRequestItem |
| BusSolnOrdPartner | CREATE (Simulate) only using deep insert on BusinessSolutionOrder | Header Partner | _BusinessSolutionOrder |
| BusSolnOrdItmPartner | CREATE (Simulate) only using deep insert on BusinessSolutionOrder | Item Partner | _BusinessSolutionOrder _Item |
| BusSolnOrdItmPriceElement | CREATE (Simulate) only using deep insert on BusinessSolutionOrder | Item Price Element | _BusinessSolutionOrder _Item |
| BusSolnOrdItmBillgReqItem | CREATE (Simulate) only using deep insert on BusinessSolutionOrder | Billing Request Line of a Contract Item | _BusinessSolutionOrder _Item |
Simulate solution order with one item to get header and item entities with simulated net value
You can add any number of items to simulate.
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
X-CSRF-Token: abc
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation Demo",
"SoldToParty": "17100001",
"PayerParty": "17100001",
"PaymentTerms": "0001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
"_Item": [
{
"Product": "TG11",
"Quantity": 1,
"BusSolnOrdItmQtyUnitISOCode": "PCE"
}
]
}
You can pass an empty _Partner:[] entity in the payload to read the header partners that are determined based on the partner determination procedure assigned to the solution order transaction.
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
X-CSRF-Token: abc
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation Demo",
"SoldToParty": "17100001",
"PayerParty": "17100001",
"PaymentTerms": "0001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
//Empty Partner association in payload to return the simulated entity in response
"_Partner":[],
"_Item": [
{
"Product": "TG11",
"Quantity": 1,
"BusSolnOrdItmQtyUnitISOCode": "PCE"
}
]
}Similar to header partner, You can pass an empty _Partner:[] entity in the payload to read the item partners that are determined based on the partner determination procedure assigned to the item category.
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
X-CSRF-Token: abc
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation Demo",
"SoldToParty": "17100001",
"PayerParty": "17100001",
"PaymentTerms": "0001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
"_Item": [
{
"Product": "TG11",
"Quantity": 1,
"BusSolnOrdItmQtyUnitISOCode": "PCE",
//Empty Partner association in payload to return the simulated entity in response
"_Partner": []
}
]
}You can also override a partner determined in simulation by passing the updated partner in the payload. This can be useful to for example simulate changes in shipping cost based on the address of a new partner that is passed which is different from the determined partner.
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
X-CSRF-Token: abc
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation Demo",
"SoldToParty": "17100001",
"PayerParty": "17100001",
"PaymentTerms": "0001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
"_Item": [
{
"Product": "TG11",
"Quantity": 1,
"ShipToParty": "17100002",
"BusSolnOrdItmQtyUnitISOCode": "PCE",
"_Partner": [
{
"CustMgmtPartnerFunction": "00000055",
"CustMgmtBusinessPartner": "17100002"
}
]
}
]
}Similar to partners, You can pass an empty _PriceElement[] entity in the payload to read the item price elements that are calculated based on the pricing procedure assigned.
How ever you can also pass a new price element in simulation request like a discount to simulate the solution order with the discount condition
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
X-CSRF-Token: abc
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation Demo",
"Language": "EN",
"SoldToParty": "17100001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
"_Item": [
{
"Product": "TG12",
"Quantity": 1,
"BusSolnOrdItmQtyUnitISOCode": "EA",
//Adding a fixed discount
"_PriceElement": [
{
"ConditionType": "DRV1",
"ConditionRateValue": -10,
"ConditionCurrency": "USD"
}
]
}
]
}Billing Request Line item is relevant for a service contract item of type SOSC(Service Contract Item) and SOPA(Service Contract Item with Price Adaptation). You can simulate the billing plan by providing the billing date and settlement period in the payload and you will see the Billing Request Items accordingly. For example if you provide a settlement period as monthly for a contract running for 1 year, you will see 12 Billing Request Items in the simulation response.
POST <host> /sap/opu/odata4/sap/api_bussolnordsimulation/srvd_a2x/sap/bussolnordersimulation/0001
/BusinessSolutionOrder
{
"BusSolnOrdType": "SOLO",
"BusSolnOrdDescription": "Simulation of BRLs",
"SoldToParty": "17100001",
"SalesOrganization": "1710",
"DistributionChannel": "10",
"Division": "00",
"RespEmployeeBusinessPartnerId": "9980000549",
"_Item": [
{
"BusinessSolutionOrderItem": "10",
"Product": "SRV_CONTRACT",
"BusSolnOrdItmCategory": "SOSC",
"Quantity": 1,
"QuantityUnit": "AU",
"BusSolnOrdItmQtyUnitISOCode": "C62",
// Billing date first of the month
"SrvcMgmtBillgPlanBillgDateRule": "BILL0002",
// Settlement period - monthly billing
"SettlementPeriodRule": "BILL0001",
"ServiceContrItemStartDateTime": "2025-08-13T00:00:00Z",
"ServiceContrItemEndDateTime": "2026-08-13T00:00:00Z",
"_BillingRequestItem": [],
"_PriceElement": []
}
]
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 18 | |
| 16 | |
| 14 | |
| 13 | |
| 9 | |
| 9 | |
| 9 | |
| 9 | |
| 8 | |
| 8 |