Skip to end of banner
Go to start of banner

API/WorkflowInstance/SetAttributeValues

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 17 Next »

Directly sets Attribute values, bypassing the Workflow Engine. Introduced in 11.0.30.

To perform Actions and Behaviors as well, API/WorkflowInstance/PerformStep

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.

This API only supports Extrinsic Attribute data types that store a single, simple value in the ITEM_ATTRIBUTE_VALUE table. See below for the exact list.

Intrinsic Attributes are not currently supported.

Overview

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

Bypassing the Workflow Engine includes some trade-offs:

Pros

Cons

(plus) Highly performant

(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 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.

Supported Attribute data types

  • Short Text

  • Long Text

  • Date

  • Pick List

  • Member

  • Boolean

  • Vimeo Source

  • PD In Focus Source

  • Multiselect List

  • Tag List

  • Entity Image

  • Rating

  • Competency Classification

  • Date Time

  • Activity Lookup

  • Rich Text

  • Member Role

  • Address

Using the API

Calling this API requires an API Key with the SetAttributeValues permission.

The key should be passed using the “apikey” authorization scheme.

Authorization: apikey xxxxxxxxxxxxxxxxx

HTTP Request

Payload is a JSON document submitted via HTTP Post.

This payload can contain multiple Attribute values to update.

[
  {
    "entityTypeAbbr": "AI",
    "wfiId": 42,
    "values": [
      { "attrDefId": 123, "val": "some new value" },
      { "attrDefId": 456, "val": "another value" },
    ]
  },
  {
    "entityTypeAbbr": "MR",
    "wfiId": 48,
    "values": [
      { "attrDefId": 555, "val": "some new value" },
      { "attrDefId": 543, "val": "another value" },
    ]
  }
]

The maximum number of records that can be updated at one time is controlled by /wiki/spaces/DOCS/pages/3699179521

Field

Description

entityTypeAbbr

One of these values:

  • “AD” for Activity

  • “AI” for ActivityInstance

  • “LPI” for LearningPlanInstance

  • “MR” for MemberRole

wfiId

The ID of the Workflow instance.

  • ActivityInstance - must point to an Incomplete Complete Activity WFI

  • LearningPlanInstance - must point to an Incomplete Complete LP WFI

  • MemberRole - can point to any Grant Role or Edit Role WFI, regardless of status

values

An array of attribute values to set.

values[i].attrDefId

Attribute Definition Id of the attribute to set. Must be a valid Attribute defined for the specified entity type.

values[i].val

Value to set.

No validation or processing is performed on this value.

Take care when using this with data types that handle structured data, as you are responsible for correctly formatting the value in the API call.

HTTP Response

The HTTP response is a JSON document indicating the results.

{
  "successCount": 4,
  "errorCount": 5,
  "errors": [
    { "entityTypeAbbr": "AI", 
      "wfiId": 123, 
      "error": "entityTypeAbbr or wfi level error message",
        "values": [
          { "attrDefId": 555, "val": "some new value", "error": "attr level error message"},
          { "attrDefId": 543, "val": "another value" }
        ]   
    }
  ]
}

Error messages

Error

Reason / How to fix

Workflow Instance #{id} was not found for entity “{entityType}”

The Workflow Instance with ID matching #wfiId was either not found, or was for a different entity type than specified. Check for typos in the payload.

Workflow Instance #{id} is in a terminal state and cannot be updated

Activity, ActivityInstance, LearningPlanInstance, and ActivityOffering Attributes can only be updated if wfiId points to a Workflow Instance with “Incomplete” status. Recall the Workflow to an editable step and try again.

Attribute Definition #{id} does not exist for entity “{entityType}”

The Attribute Definition Id is not defined for the specified entity type. Check for typos in the payload.

Attribute Definition #{id} is an Intrinsic Attribute and is not supported

This API currently only supports Extrinsic Attributes.

Attribute Definition #{id} is a {type} and is not importable by this API

This API can only populate Attributes that are supported by the Workflow Import Queue, which are marked as [Importable]

An unexpected error occurred while updating the record.

An unspecified error occurred. Try again to check for a temporary or transient issue, but if it continues to fail reach out to support for assistance.

  • No labels