Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note

This page is protected from public access. This API is intended for internal use only at this time. There are too many limitations and risk factors for this to be used by external callers without our guidance.

Note

This API currently only supports Extrinsic Attributes. Support for Intrinsic Attributes might be added at a later time.

Table of Contents

Overview

This is a utility API for updating Workflow Attribute values without going through the Workflow Engine. It was designed so that to allow integrations can to update data in LearningBuilder over an HTTP call.

This approach has Bypassing the Workflow Engine includes some trade-offs:

Pros

Cons

(plus) Highly performant (simple database update)

(minus) Does not perform Actions or Behaviors

(plus) Supports bulk updates in a single API call

(minus) Does not enforce Validation Rules; caller is responsible for ensuring data is valid

(plus) Updates a Workflow Instance regardless of which Step it is on

(minus) Can

...

create issues if Attributes are updated in a way that the Workflow would not allow, and therefore does not account for

(minus) Only supports data types that store a simple value in the ITEM_ATTRIBUTE_VALUE table

(minus)

...

Currently supports Extrinsic Attributes

...

(warning) Can update a Workflow Instance regardless of which Step it is on. (This can be a double-edged sword)

Business rules

...

only

Supported Entities / Workflow types

The API currently supports Activity Instance, Learning Plan Instance, Member Role, and Activity Offering Instance Attributes.

Workflow Type

Rules

Create Activity

The Workflow Instance must be Incomplete.

Complete Activity

Complete Learning Plan

Complete Offering

Grant Role / Edit Role

The status of the Workflow Instance does not matter. Member Role Attributes can always be updated by this API.

...

HTTP Response

The HTTP response is… (TODO)is a JSON document indicating the results.

Code Block
languagejson
{
  "modifiedRecords": 4,
  "validationErrors": [
    
  ]
}