SAP Sales and Distribution (SD) · Arazzo Workflow

SAP SD Debit Memo Intake

Version 1.0.0

Create a debit memo request, read it back, then list its items.

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

Provider

sap-sales-and-distribution-sd

Workflows

debit-memo-intake
Create a debit memo request and review its items.
Creates a debit memo request, retrieves it, and lists its items.
3 steps inputs: csrfToken, debitMemoRequestType, distributionChannel, material, organizationDivision, requestedQuantity, salesOrganization, sdDocumentReason, soldToParty outputs: debitMemoRequest, items
1
createRequest
createDebitMemoRequest
Create a debit memo request with one deep-inserted item for the sold-to party.
2
getRequest
getDebitMemoRequest
Read the created debit memo request back to confirm it persisted.
3
listItems
listDebitMemoRequestItems
List the debit memo request items to review the charged lines.

Source API Descriptions

Arazzo Workflow Specification

sap-sales-and-distribution-sd-debit-memo-intake-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP SD Debit Memo Intake
  summary: Create a debit memo request, read it back, then list its items.
  description: >-
    Records a debit memo request in SAP Sales and Distribution to bill a
    customer for an additional charge. The workflow creates a debit memo
    request with a deep-inserted item, reads it back to confirm it persisted,
    and lists its items so the charged lines can be reviewed. Each step inlines
    its OData request so the flow reads and runs without opening the underlying
    OpenAPI descriptions. The creation POST requires an X-CSRF-Token header
    supplied as a workflow input.
  version: 1.0.0
sourceDescriptions:
- name: debitMemoRequestApi
  url: ../openapi/sap-sd-debit-memo-request-openapi.yml
  type: openapi
workflows:
- workflowId: debit-memo-intake
  summary: Create a debit memo request and review its items.
  description: >-
    Creates a debit memo request, retrieves it, and lists its items.
  inputs:
    type: object
    required:
    - csrfToken
    - debitMemoRequestType
    - salesOrganization
    - soldToParty
    - material
    - requestedQuantity
    properties:
      csrfToken:
        type: string
        description: X-CSRF-Token fetched from the OData service for write operations.
      debitMemoRequestType:
        type: string
        description: Debit memo request document type (e.g. DR).
      salesOrganization:
        type: string
        description: Sales organization.
      distributionChannel:
        type: string
        description: Distribution channel.
      organizationDivision:
        type: string
        description: Division.
      soldToParty:
        type: string
        description: Sold-to party customer number to be debited.
      sdDocumentReason:
        type: string
        description: Order reason explaining the debit memo request.
      material:
        type: string
        description: Material for the debit memo request item.
      requestedQuantity:
        type: string
        description: Quantity for the debit memo request item.
  steps:
  - stepId: createRequest
    description: >-
      Create a debit memo request with one deep-inserted item for the sold-to
      party.
    operationId: createDebitMemoRequest
    parameters:
    - name: X-CSRF-Token
      in: header
      value: $inputs.csrfToken
    requestBody:
      contentType: application/json
      payload:
        DebitMemoRequestType: $inputs.debitMemoRequestType
        SalesOrganization: $inputs.salesOrganization
        DistributionChannel: $inputs.distributionChannel
        OrganizationDivision: $inputs.organizationDivision
        SoldToParty: $inputs.soldToParty
        SDDocumentReason: $inputs.sdDocumentReason
        to_Item:
          results:
          - Material: $inputs.material
            RequestedQuantity: $inputs.requestedQuantity
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      debitMemoRequest: $response.body#/d/DebitMemoRequest
  - stepId: getRequest
    description: Read the created debit memo request back to confirm it persisted.
    operationId: getDebitMemoRequest
    parameters:
    - name: DebitMemoRequest
      in: path
      value: $steps.createRequest.outputs.debitMemoRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      debitMemoRequest: $response.body#/d/DebitMemoRequest
  - stepId: listItems
    description: List the debit memo request items to review the charged lines.
    operationId: listDebitMemoRequestItems
    parameters:
    - name: DebitMemoRequest
      in: path
      value: $steps.getRequest.outputs.debitMemoRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      items: $response.body#/d/results
  outputs:
    debitMemoRequest: $steps.getRequest.outputs.debitMemoRequest
    items: $steps.listItems.outputs.items