SAP Concur Expense · Arazzo Workflow

SAP Concur Create Report From Policy

Version 1.0.0

Resolve the user's expense policy, then create a report under it and read it back.

1 workflow 1 source API 1 provider
View Spec View on GitHub Expense ManagementFinancial ManagementReceiptsReimbursementReportingSAPTravelArazzoWorkflows

Provider

sap-concur-expense

Workflows

create-report-from-policy
Discover a policy, create a report under it, and confirm the association.
Lists group configurations to find a policy ID, creates a report applying that policy, and reads the report back.
3 steps inputs: comment, reportName, userID outputs: policyID, reportID
1
listConfigs
listExpenseGroupConfigurations
List the user's expense group configurations to discover a policy.
2
createReport
createExpenseReport
Create the report applying the discovered policy ID.
3
getReport
getExpenseReport
Read the report back to confirm the policy association.

Source API Descriptions

Arazzo Workflow Specification

sap-concur-expense-create-report-from-policy-workflow.yml Raw ↑
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