SAP BI Tools · Arazzo Workflow

SAP BI Tools Query and Schedule a Document

Version 1.0.0

Log on, find documents with a CMS query, schedule the first match for immediate execution, and confirm the instance.

1 workflow 4 source APIs 1 provider
View Spec View on GitHub AnalyticsBusiness IntelligenceData VisualizationReportingSAPArazzoWorkflows

Provider

sap-bi-tools

Workflows

query-and-schedule-document
Find a document via CMS query and schedule it for immediate execution.
Locates documents with a CMS query, schedules the first match to run now, and reads the resulting scheduled instance object back from the InfoStore.
4 steps inputs: auth, format, password, query, userName outputs: documentId, instanceId, instanceName, scheduleStatus
1
logon
Authenticate and capture the logon token.
2
findDocuments
Run the CMS query to find candidate documents and capture the id of the first match.
3
scheduleNow
Schedule the first matched document for immediate execution in the requested output format.
4
confirmInstance
Read the newly created scheduled instance object back from the InfoStore to confirm it exists.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: SAP BI Tools Query and Schedule a Document
  summary: Log on, find documents with a CMS query, schedule the first match for immediate execution, and confirm the instance.
  description: >-
    A core reporting automation pattern for the BI Platform. The workflow
    authenticates to obtain a logon token, runs a CMS query to locate documents
    of a given kind, schedules the first matching document for immediate
    execution with the requested output format, and then reads the scheduled
    instance back from the InfoStore to confirm it was created. The logon token
    captured at logon is supplied on every subsequent call via the
    X-SAP-LogonToken header. 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: authenticationApi
  url: ../openapi/sap-bi-tools-authentication-api-openapi.yml
  type: openapi
- name: cmsQueryApi
  url: ../openapi/sap-bi-tools-cms-query-api-openapi.yml
  type: openapi
- name: infostoreApi
  url: ../openapi/sap-bi-tools-infostore-api-openapi.yml
  type: openapi
- name: schedulingApi
  url: ../openapi/sap-bi-tools-scheduling-api-openapi.yml
  type: openapi
workflows:
- workflowId: query-and-schedule-document
  summary: Find a document via CMS query and schedule it for immediate execution.
  description: >-
    Locates documents with a CMS query, schedules the first match to run now,
    and reads the resulting scheduled instance object back from the InfoStore.
  inputs:
    type: object
    required:
    - userName
    - password
    - query
    properties:
      userName:
        type: string
        description: The BI Platform username to authenticate with.
      password:
        type: string
        description: The password for the supplied user.
      auth:
        type: string
        description: The authentication type (secEnterprise, secLDAP, secWinAD).
        default: secEnterprise
      query:
        type: string
        description: >-
          The CMS query selecting documents to schedule (e.g. SELECT SI_ID,
          SI_NAME FROM CI_INFOOBJECTS WHERE SI_KIND='Webi').
      format:
        type: string
        description: The output format for the scheduled instance (e.g. pdf, xlsx).
        default: pdf
  steps:
  - stepId: logon
    description: Authenticate and capture the logon token.
    operationId: logon
    requestBody:
      contentType: application/json
      payload:
        userName: $inputs.userName
        password: $inputs.password
        auth: $inputs.auth
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      logonToken: $response.body#/logonToken
  - stepId: findDocuments
    description: >-
      Run the CMS query to find candidate documents and capture the id of the
      first match.
    operationId: executeCmsQueryGet
    parameters:
    - name: X-SAP-LogonToken
      in: header
      value: $steps.logon.outputs.logonToken
    - name: query
      in: query
      value: $inputs.query
    - name: page
      in: query
      value: 1
    - name: pageSize
      in: query
      value: 50
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      matchCount: $response.body#/__count
      documentId: $response.body#/entries/0/SI_ID
    onSuccess:
    - name: documentsFound
      type: goto
      stepId: scheduleNow
      criteria:
      - context: $response.body
        condition: $.entries.length > 0
        type: jsonpath
    - name: noDocuments
      type: end
      criteria:
      - context: $response.body
        condition: $.entries.length == 0
        type: jsonpath
  - stepId: scheduleNow
    description: >-
      Schedule the first matched document for immediate execution in the
      requested output format.
    operationId: scheduleDocumentNow
    parameters:
    - name: X-SAP-LogonToken
      in: header
      value: $steps.logon.outputs.logonToken
    - name: documentId
      in: path
      value: $steps.findDocuments.outputs.documentId
    requestBody:
      contentType: application/json
      payload:
        format: $inputs.format
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      instanceId: $response.body#/SI_ID
      scheduleStatus: $response.body#/status
  - stepId: confirmInstance
    description: >-
      Read the newly created scheduled instance object back from the InfoStore
      to confirm it exists.
    operationId: getInfoStoreObject
    parameters:
    - name: X-SAP-LogonToken
      in: header
      value: $steps.logon.outputs.logonToken
    - name: objectId
      in: path
      value: $steps.scheduleNow.outputs.instanceId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      instanceName: $response.body#/SI_NAME
      instanceKind: $response.body#/SI_KIND
  outputs:
    documentId: $steps.findDocuments.outputs.documentId
    instanceId: $steps.scheduleNow.outputs.instanceId
    scheduleStatus: $steps.scheduleNow.outputs.scheduleStatus
    instanceName: $steps.confirmInstance.outputs.instanceName

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/sap-bi-tools-query-and-schedule-document-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

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.

A second provider on the same verified email joins the account you already have.