SAP Sales and Distribution (SD) · Arazzo Workflow

SAP SD Pricing Setup

Version 1.0.0

Create a pricing condition record, read it back, then list its validity periods.

1 workflow 1 source API 1 provider
View Spec View on GitHub DistributionERPODataS/4HANASalesSAPArazzoWorkflows

Provider

sap-sales-and-distribution-sd

Workflows

pricing-setup
Create a pricing condition record and review its validity periods.
Creates a pricing condition record, retrieves it, and lists its validity periods filtered to the new condition record.
3 steps inputs: conditionRateValue, conditionType, csrfToken, customer, distributionChannel, material, salesOrganization outputs: conditionRecord, validities
1
createCondition
createPricingConditionRecord
Create a new sales pricing condition record.
2
getCondition
getPricingConditionRecord
Read the created condition record back to confirm it persisted.
3
listValidities
listConditionRecordValidities
List the validity periods for the new condition record to review its effective date ranges.

Source API Descriptions

Arazzo Workflow Specification

sap-sales-and-distribution-sd-pricing-setup-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP SD Pricing Setup
  summary: Create a pricing condition record, read it back, then list its validity periods.
  description: >-
    Sets up a sales pricing condition in SAP Sales and Distribution. The
    workflow creates a pricing condition record, reads it back to confirm it
    persisted, and lists condition record validity periods filtered to the new
    record so its effective date ranges can be reviewed. Each step inlines its
    OData request so the flow reads and runs without opening the underlying
    OpenAPI descriptions. The condition record creation POST requires an
    X-CSRF-Token header supplied as a workflow input.
  version: 1.0.0
sourceDescriptions:
- name: pricingApi
  url: ../openapi/sap-sd-pricing-openapi.yml
  type: openapi
workflows:
- workflowId: pricing-setup
  summary: Create a pricing condition record and review its validity periods.
  description: >-
    Creates a pricing condition record, retrieves it, and lists its validity
    periods filtered to the new condition record.
  inputs:
    type: object
    required:
    - csrfToken
    - conditionType
    properties:
      csrfToken:
        type: string
        description: X-CSRF-Token fetched from the OData service for write operations.
      conditionType:
        type: string
        description: Condition type (e.g. PR00 for a base price).
      salesOrganization:
        type: string
        description: Sales organization the condition applies to.
      distributionChannel:
        type: string
        description: Distribution channel the condition applies to.
      material:
        type: string
        description: Material the condition applies to.
      customer:
        type: string
        description: Customer the condition applies to.
      conditionRateValue:
        type: string
        description: Condition rate value (the price/amount).
  steps:
  - stepId: createCondition
    description: Create a new sales pricing condition record.
    operationId: createPricingConditionRecord
    parameters:
    - name: X-CSRF-Token
      in: header
      value: $inputs.csrfToken
    requestBody:
      contentType: application/json
      payload:
        ConditionType: $inputs.conditionType
        SalesOrganization: $inputs.salesOrganization
        DistributionChannel: $inputs.distributionChannel
        Material: $inputs.material
        Customer: $inputs.customer
        ConditionRateValue: $inputs.conditionRateValue
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      conditionRecord: $response.body#/d/ConditionRecord
  - stepId: getCondition
    description: Read the created condition record back to confirm it persisted.
    operationId: getPricingConditionRecord
    parameters:
    - name: ConditionRecord
      in: path
      value: $steps.createCondition.outputs.conditionRecord
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      conditionRecord: $response.body#/d/ConditionRecord
  - stepId: listValidities
    description: >-
      List the validity periods for the new condition record to review its
      effective date ranges.
    operationId: listConditionRecordValidities
    parameters:
    - name: $filter
      in: query
      value: "ConditionRecord eq '$steps.getCondition.outputs.conditionRecord'"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      validities: $response.body#/d/results
  outputs:
    conditionRecord: $steps.getCondition.outputs.conditionRecord
    validities: $steps.listValidities.outputs.validities