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