Microsoft Dynamics NAV · Arazzo Workflow

Business Central Create a Journal and Read Its Lines

Version 1.0.0

Create a general journal in a company and read back its line collection.

1 workflow 1 source API 1 provider
View Spec View on GitHub Business ManagementDynamics NAVERPFinanceInventoryMicrosoftNavisionArazzoWorkflows

Provider

navision

Workflows

create-journal-and-read-lines
Create a journal in a Business Central company and read its lines.
Confirms the company, creates a journal with the supplied code and display name, and lists the journal's lines using the generated journal id.
3 steps inputs: code, companyId, displayName, templateDisplayName outputs: journalCode, journalId, lines
1
confirmCompany
listCompanies
Confirm the supplied company id exists in the tenant before creating a journal in it.
2
createJournal
createJournal
Create a new journal batch in the resolved company using the supplied code and display name.
3
readJournalLines
listJournalLines
Read the line collection of the newly created journal so entries can be posted into it.

Source API Descriptions

Arazzo Workflow Specification

navision-create-journal-and-read-lines-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Business Central Create a Journal and Read Its Lines
  summary: Create a general journal in a company and read back its line collection.
  description: >-
    A general-ledger setup flow for Business Central. The workflow confirms the
    target company, creates a new journal batch, and then reads back the
    journal's line collection so the caller can begin posting entries into it.
    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: businessCentralApi
  url: ../openapi/business-central-api-v2.yml
  type: openapi
workflows:
- workflowId: create-journal-and-read-lines
  summary: Create a journal in a Business Central company and read its lines.
  description: >-
    Confirms the company, creates a journal with the supplied code and display
    name, and lists the journal's lines using the generated journal id.
  inputs:
    type: object
    required:
    - companyId
    - code
    - displayName
    properties:
      companyId:
        type: string
        description: The UUID of the Business Central company.
      code:
        type: string
        description: The journal code to assign.
      displayName:
        type: string
        description: The journal display name.
      templateDisplayName:
        type: string
        description: The journal template display name.
  steps:
  - stepId: confirmCompany
    description: >-
      Confirm the supplied company id exists in the tenant before creating a
      journal in it.
    operationId: listCompanies
    parameters:
    - name: $filter
      in: query
      value: "id eq $inputs.companyId"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      companyName: $response.body#/value/0/name
  - stepId: createJournal
    description: >-
      Create a new journal batch in the resolved company using the supplied code
      and display name.
    operationId: createJournal
    parameters:
    - name: company_id
      in: path
      value: $inputs.companyId
    requestBody:
      contentType: application/json
      payload:
        code: $inputs.code
        displayName: $inputs.displayName
        templateDisplayName: $inputs.templateDisplayName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      journalId: $response.body#/id
      journalCode: $response.body#/code
  - stepId: readJournalLines
    description: >-
      Read the line collection of the newly created journal so entries can be
      posted into it.
    operationId: listJournalLines
    parameters:
    - name: company_id
      in: path
      value: $inputs.companyId
    - name: journal_id
      in: path
      value: $steps.createJournal.outputs.journalId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      lines: $response.body#/value
  outputs:
    journalId: $steps.createJournal.outputs.journalId
    journalCode: $steps.createJournal.outputs.journalCode
    lines: $steps.readJournalLines.outputs.lines