SAP BI Tools · Arazzo Workflow

SAP BI Tools Story and Resource Cross-Reference

Version 1.0.0

Find a SAC story, fetch its detail, then list MODEL resources from the file repository to cross-reference its data sources.

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

Provider

sap-bi-tools

Workflows

story-resource-crossref
Inspect a story and cross-reference its models against repository resources.
Picks the first story, reads its model references, and lists MODEL resources from the file repository for cross-referencing.
3 steps inputs: top outputs: firstModelId, firstResourceId, firstStoryId, storyName
1
listStories
listStories
List stories with their models and capture the first story id.
2
getStory
getStory
Retrieve the first story's detail including the models it references.
3
listModelResources
listResources
List MODEL resources from the file repository to cross-reference against the story's models.

Source API Descriptions

Arazzo Workflow Specification

sap-bi-tools-story-resource-crossref-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP BI Tools Story and Resource Cross-Reference
  summary: Find a SAC story, fetch its detail, then list MODEL resources from the file repository to cross-reference its data sources.
  description: >-
    Connects a SAP Analytics Cloud story to the model resources in the tenant
    file repository. The workflow lists stories to pick a starting point,
    retrieves that story's detail with its model references, and then lists the
    MODEL resources from the repository so the story's models can be matched
    against the catalog of available models. SAP Analytics Cloud 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: analyticsCloudApi
  url: ../openapi/sap-analytics-cloud-api-openapi.yml
  type: openapi
workflows:
- workflowId: story-resource-crossref
  summary: Inspect a story and cross-reference its models against repository resources.
  description: >-
    Picks the first story, reads its model references, and lists MODEL
    resources from the file repository for cross-referencing.
  inputs:
    type: object
    properties:
      top:
        type: integer
        description: Maximum number of resources to return.
        default: 100
  steps:
  - stepId: listStories
    description: List stories with their models and capture the first story id.
    operationId: listStories
    parameters:
    - name: include
      in: query
      value: models
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstStoryId: $response.body#/0/id
    onSuccess:
    - name: hasStories
      type: goto
      stepId: getStory
      criteria:
      - context: $response.body
        condition: $.length > 0
        type: jsonpath
    - name: noStories
      type: end
      criteria:
      - context: $response.body
        condition: $.length == 0
        type: jsonpath
  - stepId: getStory
    description: Retrieve the first story's detail including the models it references.
    operationId: getStory
    parameters:
    - name: storyId
      in: path
      value: $steps.listStories.outputs.firstStoryId
    - name: include
      in: query
      value: models
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      storyName: $response.body#/name
      firstModelId: $response.body#/models/0/id
      firstModelName: $response.body#/models/0/name
  - stepId: listModelResources
    description: >-
      List MODEL resources from the file repository to cross-reference against
      the story's models.
    operationId: listResources
    parameters:
    - name: resourceType
      in: query
      value: MODEL
    - name: $top
      in: query
      value: $inputs.top
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstResourceId: $response.body#/0/id
      firstResourceName: $response.body#/0/name
  outputs:
    firstStoryId: $steps.listStories.outputs.firstStoryId
    storyName: $steps.getStory.outputs.storyName
    firstModelId: $steps.getStory.outputs.firstModelId
    firstResourceId: $steps.listModelResources.outputs.firstResourceId