SAP Sales and Distribution (SD) · Arazzo Workflow

SAP SD Material Onboarding

Version 1.0.0

Create a product, read it back, list its plants, and read its sales/delivery view.

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

Provider

sap-sales-and-distribution-sd

Workflows

material-onboarding
Create a product and verify its sales and plant master data.
Creates a product, retrieves it, lists its plant assignments, and reads its sales/delivery view for the given sales organization and distribution channel.
4 steps inputs: baseUnit, csrfToken, product, productDistributionChnl, productGroup, productSalesOrg, productType outputs: plants, product
1
createProduct
createProduct
Create a new product master record.
2
getProduct
getProduct
Read the created product back to confirm it persisted.
3
listPlants
listProductPlants
List the plants the product has been extended to.
4
getSalesDelivery
getProductSalesDelivery
Read the product's sales and delivery view for the sales organization and distribution channel to confirm it can be sold.

Source API Descriptions

Arazzo Workflow Specification

sap-sales-and-distribution-sd-material-onboarding-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP SD Material Onboarding
  summary: Create a product, read it back, list its plants, and read its sales/delivery view.
  description: >-
    Onboards a new material into SAP Sales and Distribution and verifies its
    sales-relevant master data. The workflow creates a product, reads the
    product back, lists the plants it is extended to, and reads the product's
    sales and delivery view for a sales organization and distribution channel.
    Each step inlines its OData request so the flow reads and runs without
    opening the underlying OpenAPI descriptions. The product creation POST
    requires an X-CSRF-Token header supplied as a workflow input.
  version: 1.0.0
sourceDescriptions:
- name: materialMasterApi
  url: ../openapi/sap-sd-material-master-openapi.yml
  type: openapi
workflows:
- workflowId: material-onboarding
  summary: Create a product and verify its sales and plant master data.
  description: >-
    Creates a product, retrieves it, lists its plant assignments, and reads its
    sales/delivery view for the given sales organization and distribution
    channel.
  inputs:
    type: object
    required:
    - csrfToken
    - product
    - productType
    - productSalesOrg
    - productDistributionChnl
    properties:
      csrfToken:
        type: string
        description: X-CSRF-Token fetched from the OData service for write operations.
      product:
        type: string
        description: Product (material) number to create.
      productType:
        type: string
        description: Product type (e.g. FERT for finished goods).
      productGroup:
        type: string
        description: Product group classification.
      baseUnit:
        type: string
        description: Base unit of measure.
      productSalesOrg:
        type: string
        description: Sales organization for the sales/delivery view.
      productDistributionChnl:
        type: string
        description: Distribution channel for the sales/delivery view.
  steps:
  - stepId: createProduct
    description: Create a new product master record.
    operationId: createProduct
    parameters:
    - name: X-CSRF-Token
      in: header
      value: $inputs.csrfToken
    requestBody:
      contentType: application/json
      payload:
        Product: $inputs.product
        ProductType: $inputs.productType
        ProductGroup: $inputs.productGroup
        BaseUnit: $inputs.baseUnit
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      product: $response.body#/d/Product
  - stepId: getProduct
    description: Read the created product back to confirm it persisted.
    operationId: getProduct
    parameters:
    - name: Product
      in: path
      value: $steps.createProduct.outputs.product
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      product: $response.body#/d/Product
  - stepId: listPlants
    description: List the plants the product has been extended to.
    operationId: listProductPlants
    parameters:
    - name: Product
      in: path
      value: $steps.getProduct.outputs.product
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      plants: $response.body#/d/results
  - stepId: getSalesDelivery
    description: >-
      Read the product's sales and delivery view for the sales organization and
      distribution channel to confirm it can be sold.
    operationId: getProductSalesDelivery
    parameters:
    - name: Product
      in: path
      value: $steps.getProduct.outputs.product
    - name: ProductSalesOrg
      in: path
      value: $inputs.productSalesOrg
    - name: ProductDistributionChnl
      in: path
      value: $inputs.productDistributionChnl
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      product: $response.body#/d/Product
  outputs:
    product: $steps.getProduct.outputs.product
    plants: $steps.listPlants.outputs.plants