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