Использование API для схем автоматизации

Клиент calculation, содержащийся в пакете @playbooks/sdk, позволяет работать со схемами автоматизации с использованием описанных ниже методов.

Для схем автоматизации доступен только SDK на TypeScript.

Методы API для работы со схемами автоматизации включают:

Подготовка клиента calculation для работы со схемами автоматизации

Чтобы начать работу со схемами автоматизации, используя пакет SDK, импортируйте его:

Синтаксис импорта в TypeScript
import * as sdk from "@playbooks/sdk"
...
export async function main() {
...
  const v = await sdk.calculation.<method_name>(<args>)
  console.log(v)
...
}

Здесь:

  • <method_name>: имя используемого метода;

  • <args>: параметры метода.

Вывод результата выполненного расчета (calculation)

Синтаксис TypeScript
calculation({
  calculationId: <calculation_id>, // string
  calculationSchemaId: <calculation_schema_id>, // string
  objectId: <object_id> // string
})

Параметры метода включают в себя:

  • <calculation_id>: идентификатор расчета;

  • <calculation_schema_id>: идентификатор схемы автоматизации;

  • <object_id>: идентификатор объекта, для которого выполнен расчет.

Примеры получения результатов расчетов

Пример скрипта с calculation в TypeScript
id: get_calculation_result_deno
name: Get calculation result deno
description: Получение результатов расчета скриптом Deno (TypeScript) с помощью метода calculation
author: Ivan Ivanov
tags: [deno, typescript, calculation]
version: 0.0.1
type: script
source: !deno |
  import * as sdk from '@playbooks/sdk';
  export async function main() {
    const command = {
      calculationId: 'test',
      calculationSchemaId: 'calculate_test',
      objectId: '551471a6-8bd2-4af7-a7ad-7af5432c9bea',
    }

    const { result } = await sdk.calculation.calculation(command);
    console.log('result', result);
    return result;
  }

Выполнение расчета (exec)

Синтаксис TypeScript
exec({
  calculationId: <calculation_id>, // string
  calculationSchemaId: <calculation_schema_id>, // string
  object: {
    domainId: <domain_id>, // string
    entityId: <entity_id>, // string
    id: <id> // string
  },
  cacheFirst: <cache_first> // boolean
})

Параметры метода включают в себя:

  • <calculation_id>: идентификатор расчета;

  • <calculation_schema_id>: идентификатор схемы автоматизации;

  • <domain_id>: идентификатор домена, для объекта которого нужно выполнить расчет;

  • <entity_id>: идентификатор сущности в домене, для объекта которой нужно выполнить расчет;

  • <id>: идентификатор объекта, для которого нужно выполнить расчет;

  • <cache_first>: логическая переменная: если установить значение true, то расчет не будет выполнен заново, если его результат будет найден в кэше; если установить значение false, то расчет будет выполнен заново в любом случае.

Примеры выполнения расчета

Пример скрипта с exec в TypeScript
id: exec_calculation_deno
name: Exec calculation deno
description: Выполнение расчета скриптом Deno (TypeScript) с помощью метода exec
author: Ivan Ivanov
tags: [deno, typescript, calculation]
version: 0.0.1
type: script
source: !deno |
  import * as sdk from '@playbooks/sdk';
  export async function main() {
    const command = {
      calculationSchemaId: "calculate_test",
      calculationId: "test",
      object: {
        domainId: "evo.entity.category.standards",
        entityId: "Requirement",
        id: "551471a6-8bd2-4af7-a7ad-7af5432c9bea"
      },
      cacheFirst: false
    }

    const result = await sdk.calculation.exec(command);
    console.log('result', result);
    return result;
    }

Выполнение обобщающего расчета (execSummary)

Синтаксис TypeScript
execSummary({
  summaryCalculationId: <summary_calculation_id>, // string
  summaryCalculationSchemaId: <summary_calculation_schema_id>, // string
  calculations: [
    {
      calculationId: <calculation_id>, // string
      calculationSchemaId: <calculation_schema_id>, // string
      object: {
        domainId: <domain_id>, // string
        entityId: <entity_id>, // string
        id: <id> // string
      },
      cacheFirst: <cache_first> // boolean
    },
  ...
  ]
})

Параметры метода включают в себя:

  • <summary_calculation_id>: идентификатор обобщающего расчета;

  • <summary_calculation_schema_id>: идентификатор схемы, в которой определен обобщающий расчет;

  • calculations: массив расчетов, входящих в обобщающий расчет:

    • <calculation_id>: идентификатор расчета;

    • <calculation_schema_id>: идентификатор схемы автоматизации;

    • <domain_id>: идентификатор домена, для объекта которого нужно выполнить расчет;

    • <entity_id>: идентификатор сущности в домене, для объекта которой нужно выполнить расчет;

    • <id>: идентификатор объекта, для которого нужно выполнить расчет;

    • <cache_first>: логическая переменная: если установить значение true, то расчет не будет выполнен заново, если его результат будет найден в кэше; если установить значение false, то расчет будет выполнен заново в любом случае.

Примеры выполнения обобщающего расчета

Пример скрипта с execSummary в TypeScript
id: exec_summary_calculation_deno
name: Exec summary calculation deno
description: Выполнение обобщающего расчета скриптом Deno (TypeScript) с помощью метода execSummary
author: Ivan Ivanov
tags: [deno, typescript, calculation]
version: 0.0.1
type: script
source: !deno |
  import * as sdk from '@playbooks/sdk';
  export async function main() {
    const command = {
      summaryCalculationSchemaId: "calculate_test",
      summaryCalculationId: "test_summary",
      calculations: [
        {
          calculationSchemaId: "calculate_test",
          calculationId: "test",
          object: {
            domainId: "evo.entity.category.standards",
            entityId: "Requirement",
            id: "551471a6-8bd2-4af7-a7ad-7af5432c9bea"
          },
          cacheFirst: false
        },
        {
          calculationSchemaId: "calculate_test",
          calculationId: "test",
          object: {
            domainId: "evo.entity.category.standards",
            entityId: "Requirement",
            id: "2395982b-0e28-4236-ab3d-3c84a29cb97c"
          },
          cacheFirst: false
        }
      ]
    }

    const result = await sdk.calculation.execSummary(command);
    console.log('result', result);
    return result;
  }

Была ли полезна эта страница?

Обратная связь