arazzo: 1.0.1 info: title: SAP Concur Create Report From Policy summary: Resolve the user's expense policy, then create a report under it and read it back. description: >- Ensures a new report is created against a valid expense policy. The workflow lists the current user's expense group configurations to discover an applicable policy ID, creates a report header that applies that policy, and reads the report back to confirm the policy association. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: sapConcurExpense url: ../openapi/sap-concur-expense-report-openapi.yml type: openapi workflows: - workflowId: create-report-from-policy summary: Discover a policy, create a report under it, and confirm the association. description: >- Lists group configurations to find a policy ID, creates a report applying that policy, and reads the report back. inputs: type: object required: - reportName properties: reportName: type: string description: Name for the new expense report. userID: type: string description: Optional login ID to scope the group configuration lookup. comment: type: string description: Optional comment for the report header. steps: - stepId: listConfigs description: List the user's expense group configurations to discover a policy. operationId: listExpenseGroupConfigurations parameters: - name: userID in: query value: $inputs.userID - name: limit in: query value: 1 successCriteria: - condition: $statusCode == 200 outputs: policyID: $response.body#/Items/0/PolicyID configID: $response.body#/Items/0/ID - stepId: createReport description: Create the report applying the discovered policy ID. operationId: createExpenseReport requestBody: contentType: application/json payload: Name: $inputs.reportName Comment: $inputs.comment PolicyID: $steps.listConfigs.outputs.policyID successCriteria: - condition: $statusCode == 200 outputs: reportID: $response.body#/ID - stepId: getReport description: Read the report back to confirm the policy association. operationId: getExpenseReport parameters: - name: id in: path value: $steps.createReport.outputs.reportID successCriteria: - condition: $statusCode == 200 outputs: policyID: $response.body#/PolicyID outputs: reportID: $steps.createReport.outputs.reportID policyID: $steps.getReport.outputs.policyID