Skip to main content

Actions

The ballerinax/sap.s4hana.api_sales_inquiry_srv package exposes the following clients:

ClientPurpose
ClientProvides typed access to all entities exposed by the SAP S/4HANA API_SALES_INQUIRY_SRV OData service: inquiry headers, line items, business partners, and pricing elements.

Client

Provides typed access to all entities exposed by the SAP S/4HANA API_SALES_INQUIRY_SRV OData service: inquiry headers, line items, business partners, and pricing elements.

Configuration

FieldTypeDefaultDescription
authhttp:CredentialsConfigRequiredSAP username and password ({username: "...", password: "..."}}).
httpVersionhttp:HttpVersionHTTP_2_0HTTP protocol version to use for requests.
timeoutdecimal60Request timeout in seconds.
forwardedstring"disable"Controls forwarding of the X-Forwarded-For header.
retryConfighttp:RetryConfig()Automatic retry configuration for transient failures.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration, including custom trust stores for SAP certificates.
proxyhttp:ProxyConfig()HTTP proxy configuration.
validationbooleantrueEnable or disable response payload validation against generated types.

Initializing the client

import ballerinax/sap.s4hana.api_sales_inquiry_srv as salesinquiry;

configurable string hostname = ?;
configurable string username = ?;
configurable string password = ?;

salesinquiry:Client salesinquiryClient = check new (
config = {
auth: {
username: username,
password: password
}
},
hostname = hostname
);

Operations

Sales inquiries

listA_SalesInquiries

Retrieves a collection of sales inquiry header records. Supports OData query options to filter, sort, and project fields.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP request headers (e.g., SAP-Client header).
queriesListA_SalesInquiriesQueriesNoOData query options: $top, $skip, $filter, $orderby, $select, $expand, $inlinecount.

Returns: CollectionOfA_SalesInquiryWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryWrapper result =
check salesinquiryClient->listA_SalesInquiries(
{},
{
"\$top": 5,
"\$filter": "SalesOrganization eq '1010'",
"\$select": "SalesInquiry,SalesInquiryType,TotalNetAmount,TransactionCurrency"
}
);

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"SalesInquiryType": "IR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"SoldToParty": "CUST001",
"TotalNetAmount": "5000.00",
"TransactionCurrency": "USD",
"OverallSDProcessStatus": "A",
"CreationDate": "/Date(1704067200000)/"
}
],
"__count": "1"
}
}
getA_SalesInquiry

Retrieves a single sales inquiry header by its document number. Use $expand to include related items, partners, or pricing elements in the same response.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number (e.g., "10000001").
headersmap<string|string[]>NoOptional HTTP request headers.
queriesGetA_SalesInquiryQueriesNoOData query options: $select, $expand.

Returns: A_SalesInquiryWrapper|error

Sample code:

salesinquiry:A_SalesInquiryWrapper result =
check salesinquiryClient->getA_SalesInquiry(
"10000001",
{},
{"\$expand": "to_Item,to_Partner"}
);

Sample response:

{
"d": {
"SalesInquiry": "10000001",
"SalesInquiryType": "IR",
"SalesOrganization": "1010",
"DistributionChannel": "10",
"Division": "00",
"SoldToParty": "CUST001",
"PurchaseOrderByCustomer": "PO-2024-001",
"TotalNetAmount": "5000.00",
"TransactionCurrency": "USD",
"BindingPeriodValidityStartDate": "/Date(1704067200000)/",
"BindingPeriodValidityEndDate": "/Date(1706745600000)/",
"OverallSDProcessStatus": "A",
"CreationDate": "/Date(1704067200000)/"
}
}

Sales inquiry items

listItemsOfA_SalesInquiry

Lists all line items belonging to a specific sales inquiry document. Each item represents a requested product or service with quantity and pricing information.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListItemsOfA_SalesInquiryQueriesNoOData query options: $top, $skip, $filter, $orderby, $select, $expand.

Returns: CollectionOfA_SalesInquiryItemWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryItemWrapper items =
check salesinquiryClient->listItemsOfA_SalesInquiry(
"10000001",
{},
{"\$select": "SalesInquiryItem,Material,RequestedQuantity,NetAmount"}
);

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"SalesInquiryItem": "000010",
"Material": "PROD-001",
"MaterialName": "Industrial Pump",
"RequestedQuantity": "10",
"RequestedQuantityUnit": "EA",
"NetAmount": "1000.00",
"TransactionCurrency": "USD",
"SDProcessStatus": "A"
}
]
}
}
getA_SalesInquiryItem

Retrieves a single sales inquiry line item identified by document number and item number.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
SalesInquiryItemstringYesThe line item number (e.g., "000010").
headersmap<string|string[]>NoOptional HTTP request headers.
queriesGetA_SalesInquiryItemQueriesNoOData query options: $select, $expand.

Returns: A_SalesInquiryItemWrapper|error

Sample code:

salesinquiry:A_SalesInquiryItemWrapper item =
check salesinquiryClient->getA_SalesInquiryItem(
"10000001",
"000010",
{},
{"\$expand": "to_Partner,to_PricingElement"}
);

Sample response:

{
"d": {
"SalesInquiry": "10000001",
"SalesInquiryItem": "000010",
"Material": "PROD-001",
"MaterialName": "Industrial Pump",
"RequestedQuantity": "10",
"RequestedQuantityUnit": "EA",
"ItemNetWeight": "50.000",
"ItemWeightUnit": "KG",
"NetAmount": "1000.00",
"TransactionCurrency": "USD",
"IncotermsClassification": "CIF",
"SDProcessStatus": "A"
}
}
listA_SalesInquiryItems

Lists all sales inquiry line items across all inquiries. Useful for bulk reporting or cross-inquiry analysis with OData filters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListA_SalesInquiryItemsQueriesNoOData query options: $top, $skip, $filter, $orderby, $select, $expand, $inlinecount.

Returns: CollectionOfA_SalesInquiryItemWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryItemWrapper items =
check salesinquiryClient->listA_SalesInquiryItems(
{},
{
"\$filter": "Material eq 'PROD-001'",
"\$top": 20,
"\$inlinecount": "allpages"
}
);

Sample response:

{
"d": {
"__count": "3",
"results": [
{
"SalesInquiry": "10000001",
"SalesInquiryItem": "000010",
"Material": "PROD-001",
"RequestedQuantity": "10",
"RequestedQuantityUnit": "EA",
"NetAmount": "1000.00",
"TransactionCurrency": "USD"
}
]
}
}

Partners

listPartnersOfA_SalesInquiry

Lists all business partner assignments on a sales inquiry header, such as sold-to party, ship-to party, bill-to party, and payer.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListPartnersOfA_SalesInquiryQueriesNoOData query options: $top, $skip, $filter, $select.

Returns: CollectionOfA_SalesInquiryPartnerWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryPartnerWrapper partners =
check salesinquiryClient->listPartnersOfA_SalesInquiry("10000001", {}, {});

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"PartnerFunction": "AG",
"Customer": "CUST001",
"Supplier": "",
"Personnel": "",
"ContactPerson": ""
},
{
"SalesInquiry": "10000001",
"PartnerFunction": "WE",
"Customer": "CUST002",
"Supplier": "",
"Personnel": "",
"ContactPerson": ""
}
]
}
}
getA_SalesInquiryPartner

Retrieves a specific business partner assignment on a sales inquiry header by partner function code.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
PartnerFunctionstringYesThe partner function code (e.g., "AG" for sold-to, "WE" for ship-to).
headersmap<string|string[]>NoOptional HTTP request headers.
queriesGetA_SalesInquiryPartnerQueriesNoOData query options: $select.

Returns: A_SalesInquiryPartnerWrapper|error

Sample code:

salesinquiry:A_SalesInquiryPartnerWrapper partner =
check salesinquiryClient->getA_SalesInquiryPartner("10000001", "AG", {}, {});

Sample response:

{
"d": {
"SalesInquiry": "10000001",
"PartnerFunction": "AG",
"Customer": "CUST001",
"Supplier": "",
"Personnel": "",
"ContactPerson": "EMP-007"
}
}
listPartnersOfA_SalesInquiryItem

Lists all partner assignments at the line-item level for a given sales inquiry item.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
SalesInquiryItemstringYesThe line item number.
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListPartnersOfA_SalesInquiryItemQueriesNoOData query options: $top, $skip, $filter, $select.

Returns: CollectionOfA_SalesInquiryItemPartnerWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryItemPartnerWrapper itemPartners =
check salesinquiryClient->listPartnersOfA_SalesInquiryItem(
"10000001", "000010", {}, {}
);

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"SalesInquiryItem": "000010",
"PartnerFunction": "AG",
"Customer": "CUST001",
"ContactPerson": ""
}
]
}
}

Pricing elements

listPricingElementsOfA_SalesInquiry

Lists all header-level pricing condition records for a sales inquiry, such as base prices, discounts, freight, and taxes.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListPricingElementsOfA_SalesInquiryQueriesNoOData query options: $top, $skip, $filter, $select.

Returns: CollectionOfA_SalesInquiryPrcgElmntWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryPrcgElmntWrapper pricing =
check salesinquiryClient->listPricingElementsOfA_SalesInquiry(
"10000001", {}, {}
);

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"PricingProcedureStep": "10",
"PricingProcedureCounter": "0",
"ConditionType": "PR00",
"ConditionAmount": "500.00",
"ConditionQuantity": "1",
"TransactionCurrency": "USD",
"ConditionIsManuallyChanged": false
},
{
"SalesInquiry": "10000001",
"PricingProcedureStep": "20",
"PricingProcedureCounter": "0",
"ConditionType": "K007",
"ConditionAmount": "-50.00",
"TransactionCurrency": "USD",
"ConditionIsManuallyChanged": false
}
]
}
}
getA_SalesInquiryPrcgElmnt

Retrieves a single header-level pricing condition record identified by inquiry document number, procedure step, and counter.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
PricingProcedureStepstringYesThe pricing procedure step number (e.g., "10").
PricingProcedureCounterstringYesThe condition counter within the step (e.g., "0").
headersmap<string|string[]>NoOptional HTTP request headers.
queriesGetA_SalesInquiryPrcgElmntQueriesNoOData query options: $select.

Returns: A_SalesInquiryPrcgElmntWrapper|error

Sample code:

salesinquiry:A_SalesInquiryPrcgElmntWrapper pricingElement =
check salesinquiryClient->getA_SalesInquiryPrcgElmnt(
"10000001", "10", "0", {}, {}
);

Sample response:

{
"d": {
"SalesInquiry": "10000001",
"PricingProcedureStep": "10",
"PricingProcedureCounter": "0",
"ConditionType": "PR00",
"ConditionAmount": "500.00",
"ConditionQuantity": "1",
"ConditionQuantityUnit": "EA",
"ConditionCalculationType": "C",
"TransactionCurrency": "USD",
"ConditionIsManuallyChanged": false
}
}
listPricingElementsOfA_SalesInquiryItem

Lists all item-level pricing condition records for a specific sales inquiry line item.

Parameters:

NameTypeRequiredDescription
SalesInquirystringYesThe sales inquiry document number.
SalesInquiryItemstringYesThe line item number.
headersmap<string|string[]>NoOptional HTTP request headers.
queriesListPricingElementsOfA_SalesInquiryItemQueriesNoOData query options: $top, $skip, $filter, $select.

Returns: CollectionOfA_SalesInquiryItemPrcgElmntWrapper|error

Sample code:

salesinquiry:CollectionOfA_SalesInquiryItemPrcgElmntWrapper itemPricing =
check salesinquiryClient->listPricingElementsOfA_SalesInquiryItem(
"10000001", "000010", {}, {}
);

Sample response:

{
"d": {
"results": [
{
"SalesInquiry": "10000001",
"SalesInquiryItem": "000010",
"PricingProcedureStep": "10",
"PricingProcedureCounter": "0",
"ConditionType": "PR00",
"ConditionAmount": "100.00",
"ConditionQuantity": "1",
"TransactionCurrency": "USD"
}
]
}
}

Batch operations

performBatchOperation

Executes multiple OData read requests as a single HTTP batch call, reducing round-trips when you need to fetch several inquiry entities at once.

Parameters:

NameTypeRequiredDescription
requesthttp:RequestYesAn http:Request with Content-Type: multipart/mixed; boundary=<boundary> and individual GET requests in the multipart body following OData batch format.
headersmap<string|string[]>NoOptional HTTP request headers.

Returns: http:Response|error

Sample code:

http:Request batchRequest = new;
string boundary = "batch_a1b2c3";
batchRequest.setHeader("Content-Type", "multipart/mixed; boundary=" + boundary);
string batchBody = string `--${boundary}\r\n` +
"Content-Type: application/http\r\n" +
"Content-Transfer-Encoding: binary\r\n\r\n" +
"GET A_SalesInquiry('10000001') HTTP/1.1\r\n\r\n" +
"--" + boundary + "--";
batchRequest.setTextPayload(batchBody);
http:Response batchResponse = check salesinquiryClient->performBatchOperation(batchRequest, {});

Sample response:

HTTP/1.1 200 OK
Content-Type: multipart/mixed; boundary=response_boundary

--response_boundary
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
Content-Type: application/json

{"d":{"SalesInquiry":"10000001","SalesInquiryType":"IR","TotalNetAmount":"5000.00"}}
--response_boundary--