Workday · Arazzo Workflow

Workday Review Supplier Spend

Version 1.0.0

List suppliers, load the first supplier's detail, then review purchase orders and customer invoices.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud ComputingEnterprise SoftwareFinancial ManagementHCMSaaSArazzoWorkflows

Provider

workday

Workflows

review-supplier-spend
List suppliers, load the first, then review purchase orders and invoices.
Lists suppliers, then branches: if any exist it loads the first supplier's detail, lists purchase orders, and lists customer invoices, otherwise it ends.
4 steps inputs: authorization outputs: firstSupplierId, invoices, purchaseOrders, supplierDescriptor
1
listSuppliers
getSuppliers
List suppliers.
2
getSupplierDetail
getSupplierById
Load the detail record for the first supplier.
3
listPurchaseOrders
getPurchaseOrders
List purchase orders to assess committed spend.
4
listInvoices
getCustomerInvoices
List customer invoices to round out the spend picture.

Source API Descriptions

Arazzo Workflow Specification

workday-review-supplier-spend-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workday Review Supplier Spend
  summary: List suppliers, load the first supplier's detail, then review purchase orders and customer invoices.
  description: >-
    A procurement review flow. It lists suppliers and branches on whether any
    exist: when at least one is returned it loads the first supplier's detail,
    lists purchase orders, and lists customer invoices to build a spend picture,
    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
sourceDescriptions:
- name: financialManagementApi
  url: ../openapi/financialManagement.yml
  type: openapi
workflows:
- workflowId: review-supplier-spend
  summary: List suppliers, load the first, then review purchase orders and invoices.
  description: >-
    Lists suppliers, then branches: if any exist it loads the first supplier's
    detail, lists purchase orders, and lists customer invoices, otherwise it
    ends.
  inputs:
    type: object
    required:
    - authorization
    properties:
      authorization:
        type: string
        description: OAuth2 bearer token, e.g. "Bearer eyJ...".
  steps:
  - stepId: listSuppliers
    description: List suppliers.
    operationId: getSuppliers
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstSupplierId: $response.body#/data/0/id
    onSuccess:
    - name: hasSuppliers
      type: goto
      stepId: getSupplierDetail
      criteria:
      - context: $response.body
        condition: $.data.length > 0
        type: jsonpath
    - name: noSuppliers
      type: end
      criteria:
      - context: $response.body
        condition: $.data.length == 0
        type: jsonpath
  - stepId: getSupplierDetail
    description: Load the detail record for the first supplier.
    operationId: getSupplierById
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: ID
      in: path
      value: $steps.listSuppliers.outputs.firstSupplierId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      supplierDescriptor: $response.body#/descriptor
  - stepId: listPurchaseOrders
    description: List purchase orders to assess committed spend.
    operationId: getPurchaseOrders
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      purchaseOrders: $response.body#/data
  - stepId: listInvoices
    description: List customer invoices to round out the spend picture.
    operationId: getCustomerInvoices
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      invoices: $response.body#/data
  outputs:
    firstSupplierId: $steps.listSuppliers.outputs.firstSupplierId
    supplierDescriptor: $steps.getSupplierDetail.outputs.supplierDescriptor
    purchaseOrders: $steps.listPurchaseOrders.outputs.purchaseOrders
    invoices: $steps.listInvoices.outputs.invoices