List expense reports, load the first, and cross-reference accounting journals.
Lists expense reports, then branches: if any exist it loads the first report's detail and lists accounting journals for reconciliation, otherwise it ends.
arazzo: 1.0.1
info:
title: Workday Review Expense Reports
summary: List expense reports, load the first report's detail, and cross-reference accounting journals.
description: >-
A financial review flow. It lists expense reports and branches on whether
any exist: when at least one is returned it loads the first report's detail
and then lists the accounting journals so the expense can be reconciled
against the ledger, and when none are returned it ends. 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
x-realizes-capability-ids:
- BC-200
- BC-200.10
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-200
capability_name: Financial Management
spec: workday-expenses-api-openapi.yml
confidence: 0.7
- capability_id: BC-200.10
capability_name: General Ledger Management
spec: workday-accounting-api-openapi.yml
confidence: 0.9
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: accountingApi
url: ../openapi/workday-accounting-api-openapi.yml
type: openapi
- name: expensesApi
url: ../openapi/workday-expenses-api-openapi.yml
type: openapi
workflows:
- workflowId: review-expense-reports
summary: List expense reports, load the first, and cross-reference accounting journals.
description: >-
Lists expense reports, then branches: if any exist it loads the first
report's detail and lists accounting journals for reconciliation, otherwise
it ends.
inputs:
type: object
required:
- authorization
properties:
authorization:
type: string
description: OAuth2 bearer token, e.g. "Bearer eyJ...".
steps:
- stepId: listExpenseReports
description: List expense reports.
operationId: getExpenseReports
parameters:
- name: Authorization
in: header
value: $inputs.authorization
successCriteria:
- condition: $statusCode == 200
outputs:
firstReportId: $response.body#/data/0/id
onSuccess:
- name: hasReports
type: goto
stepId: getReportDetail
criteria:
- context: $response.body
condition: $.data.length > 0
type: jsonpath
- name: noReports
type: end
criteria:
- context: $response.body
condition: $.data.length == 0
type: jsonpath
- stepId: getReportDetail
description: Load the detail record for the first expense report.
operationId: getExpenseReportById
parameters:
- name: Authorization
in: header
value: $inputs.authorization
- name: ID
in: path
value: $steps.listExpenseReports.outputs.firstReportId
successCriteria:
- condition: $statusCode == 200
outputs:
reportDescriptor: $response.body#/descriptor
totalAmount: $response.body#/totalAmount
- stepId: listJournals
description: List accounting journals to reconcile the expense against the ledger.
operationId: getAccountingJournals
parameters:
- name: Authorization
in: header
value: $inputs.authorization
successCriteria:
- condition: $statusCode == 200
outputs:
journals: $response.body#/data
outputs:
firstReportId: $steps.listExpenseReports.outputs.firstReportId
totalAmount: $steps.getReportDetail.outputs.totalAmount
journals: $steps.listJournals.outputs.journals
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.