SAP BI Tools · Arazzo Workflow

SAP BI Tools Export Model Fact Data

Version 1.0.0

Discover a SAC export model, read its OData metadata, and pull a filtered, paged page of fact data.

1 workflow 1 source API 1 provider
View Spec View on GitHub AnalyticsBusiness IntelligenceData VisualizationReportingSAPArazzoWorkflows

Provider

sap-bi-tools

Workflows

export-model-fact-data
Pick an export model, read its metadata, and pull a page of fact data.
Lists providers in the sac namespace, reads the first model's OData metadata, and retrieves a filtered, paged page of its fact data.
3 steps inputs: filter, namespaceId, top outputs: factContext, firstModelId, firstModelName
1
listProviders
listProviders
List the providers (models) available in the namespace and capture the id of the first model.
2
getMetadata
getModelMetadata
Read the OData metadata document for the first model to understand its structure.
3
getFactData
getFactData
Pull a filtered, top-limited page of fact data from the first model.

Source API Descriptions

Arazzo Workflow Specification

sap-bi-tools-export-model-fact-data-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP BI Tools Export Model Fact Data
  summary: Discover a SAC export model, read its OData metadata, and pull a filtered, paged page of fact data.
  description: >-
    A data-extraction pattern for the SAP Analytics Cloud Data Export API. The
    workflow lists the providers (models) available in the sac namespace,
    reads the OData metadata document of the first model to understand its
    structure, and then pulls a filtered, top-limited page of fact data from
    that model. The Data Export API uses OAuth 2.0 bearer authentication, so no
    logon token is threaded between steps. 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: dataExportApi
  url: ../openapi/sap-analytics-cloud-data-export-api-openapi.yml
  type: openapi
workflows:
- workflowId: export-model-fact-data
  summary: Pick an export model, read its metadata, and pull a page of fact data.
  description: >-
    Lists providers in the sac namespace, reads the first model's OData
    metadata, and retrieves a filtered, paged page of its fact data.
  inputs:
    type: object
    properties:
      namespaceId:
        type: string
        description: The namespace identifier to list providers from.
        default: sac
      filter:
        type: string
        description: An OData filter expression to apply to the fact data.
      top:
        type: integer
        description: Maximum number of fact data records to return.
        default: 100
  steps:
  - stepId: listProviders
    description: >-
      List the providers (models) available in the namespace and capture the
      id of the first model.
    operationId: listProviders
    parameters:
    - name: namespaceId
      in: path
      value: $inputs.namespaceId
    - name: $format
      in: query
      value: JSON
    - name: $top
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstModelId: $response.body#/value/0/ProviderID
      firstModelName: $response.body#/value/0/ProviderName
    onSuccess:
    - name: providersFound
      type: goto
      stepId: getMetadata
      criteria:
      - context: $response.body
        condition: $.value.length > 0
        type: jsonpath
    - name: noProviders
      type: end
      criteria:
      - context: $response.body
        condition: $.value.length == 0
        type: jsonpath
  - stepId: getMetadata
    description: >-
      Read the OData metadata document for the first model to understand its
      structure.
    operationId: getModelMetadata
    parameters:
    - name: modelId
      in: path
      value: $steps.listProviders.outputs.firstModelId
    - name: $format
      in: query
      value: JSON
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      metadataStatus: $statusCode
  - stepId: getFactData
    description: >-
      Pull a filtered, top-limited page of fact data from the first model.
    operationId: getFactData
    parameters:
    - name: modelId
      in: path
      value: $steps.listProviders.outputs.firstModelId
    - name: $format
      in: query
      value: JSON
    - name: $filter
      in: query
      value: $inputs.filter
    - name: $top
      in: query
      value: $inputs.top
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      factContext: $response.body#/@odata.context
      firstFactRow: $response.body#/value/0
  outputs:
    firstModelId: $steps.listProviders.outputs.firstModelId
    firstModelName: $steps.listProviders.outputs.firstModelName
    factContext: $steps.getFactData.outputs.factContext