Versions Compared

Key

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


Info

Summary

Exam eligibility information, sometimes called "Authorization to Test", can be automatically sent to Prolydian by a Workflow Behavior

LearningBuilder supports "Test-First" registration via Prolydian . In this model, candidates take their test before they establish an account in LearningBuilder. During the application process, these candidates can "claim" their exam results.


Overview

LearningBuilder can integrate seamlessly with Prolydian to:

  • Establish eligibility for a candidate to sit for an exam

  • Obtain exam results from Prolydian 

  • Dynamically update the candidate's application based on those results

The integration is enabled via a Workflow Behavior. It supports these Workflow types:

  • Create Activity

Data Flow

  1. When the Behavior is configured, administrator selects a Queue Template that controls the eligibility API payload sent to Prolydian, and an xAPI Event Handler /wiki/spaces/DOCS/pages/639991859 which specifies what happens when results are received.

    Image RemovedImage RemovedImage AddedImage Added



  2. When a Workflow Action triggers the Behavior, the Message Queue is used to call the Atlas eligibility API. Prolydian is notified of:

    1. The Candidate Id, a unqiue identifier for the candidate themselves, and

    2. The Eligibility Id, a unique identifier which represents the authorization to sit for a specific exam administration. The Eligibility Id is determined by the Activity Instance. 

  3. At some point in the future, after the candidate has actually taken the exam, Prolydian calls the xAPI API endpoint and provides an xAPI document representing the exam results. The configured handler is executed which parses the document, extracts the document, and maps its values to the Activity Instance as configured. (Note: technically, Prolydian calls an endpoint in the Integration Hub, which then forwards the request to LearningBuilder. This prevents exam results from being dropped if LearningBuilder is down for maintenance. The integration hub plugin is NOT client-specific)

    1. Workflow Attributes are updated with relevant pieces of the result data, per the Behavior configuration

    2. The appropriate Workflow Action is executed depending on the exam grade. (This typically moves the Workflow forward into the next step)


How to set up Prolydian integration for a new customer

Please complete for each customer. This will become a template so we can create one for each project with minimal hand-off between Implementation and Integration Support.

We need the following (Christopher made up this stuff, so someone needs to make it real (like Steve Ross, Scott Reed, or Mallory Bucell)

Data

Value

Customer contact


Prolydian contact


Prolydian-provided key


Exam name


Client name


Form code


Configuration

Configure the Prolydian integration as follows ( Steve Ross needs to provide details):

  1. Create If the client has used Prolydian in the past, and you need to maintain the PTI ID, create a short text PTI ID on the Member Role, Learning Plan Instance, and the Exam Activity Instance .

  2. If the issue where the Feature does not handle new vs existing candidates is not yet addressed, also add a picklist Yes/No attribute called PTI Existing to the Member Role, Learning Plan Instance and the Exam Activity.

  3. Create a and also create a Template field call PTI - Computed on the Member Role with logic similar to

    Code Block
    @( Model.MemberRole.GetText("PTI ID").IsNotNullOrEmpty()
    ? Model.MemberRole.GetText("PTI ID")
    : "PTINIGPCPP8" + ("000000000" + Model.MemberRole.GetText("Unique Identifier")).Right(9)
    )

The prefix “PTINIGPCCP8” will be changed to whatever the PTI tells us it needs to be for the client. In this example the template also support PTI IDs assigned prior to launching in LearningBuilder and thus will not overwrite an existing value.

3. Include an Update Workflow Instace Instance Attribute behavior on the Role Grant Workflow or an Update Member Role for Learning Plan behavior on the LPI workflow to set the PTI ID prior to exam eligibility.

4. Include a series of behaviors on the LPI prior to scheduling similar to below:

Info

The last two behaviors are only needed if the issue where the Feature does not handle new vs existing candidates is not yet addressed.

5. Prior to these behaviors being executed, the Exam Activity must already be added to the learning plan.

  • Option 1: Pre-add the exam activity on the Learning Plan DefintionDefinition

  • Option 2: Have an administrator manually add it prior to approving the eligibltiyeligibility

  • Option 3: Create a custom SPROC to add it as part of the process

  • Option 4: Use the new Add Activity to Learning Plan behavior to do it, (not tested)

  • Option 5: Have the pracititoner practitioner do it themselves (see NIGP). In this case, the must be an action on the Activity Instance the that is executed prior to sending the eliglbity eligibility that Executes an Action on the Parent Learning Plan that does the above behaviors. If there is a payment required on the exam exactivity, the Save action on Payment is a good candidate for this (see NIGP). If not, there need to be at least two practitioner steps on the Exam Workflow as the the above behaviors must be executed on an entirely seprarate separate action from the one that sends the elgilbity eligibility to Prolydian.

6. Create a Rabbit MQ template called Prolydian Exam Eligibility with the message to send the eligibility. Below is an example.

  • Update the Client prefix and Authorization prefix for the client.

  • Ensure the Activity Dates are mapped correctly

  • Update the Test Group

  • Ensure the Code is mapped correctly, or if only one, hard code it here. If no, include it as an extrinsic attribute on the Exam Activity DefintionDefinition.

Code Block
@using Heuristics.Library.Extensions
@{
    var ptiId =  Model.GetAttributeValue("PTI ID");
    var clientCandidateId = ptiId.Replace("PTINIGPCPP", "");
    var clientAuthorizationId = "PTINIGPLB" + ("00000000000" + Model.Instance.WriteToItemId.ToString()).Right(11);
	var examCode = Model.GetAttributeValue("Exam Code");
	var activityStartDate = Model.GetAttributeValue("Activity Start Date");
	var activityEndDate = Model.GetAttributeValue("Activity End Date");
	var address = Model.Member.DefaultMemberAddress;
	var phone = Model.Member.DefaultPhone;
    var country = address.Country.ToUpper();
    country = 
      country == "UNITED STATES" ? "USA" :
      country == "CANADA" ? "CAN" : 
      country.IsNull() ? "" : (country+"XXX").Substring(0,3);
  	var zip = address.MailCode;
    zip = zip.IsNull() ? "" : (zip+"00000").Substring(0,5);


}
{
	"TestAdministrationId": "@examCode",
	"PearsonCandidate":   
	{
		"ClientCandidateId": "@clientCandidateId",
		"TestGroup": "NIGP"           
    },
	"PearsonAuthorization":   {
		"TestAdministrationId": "@examCode",
		"StartDate": "@activityStartDate",
		"EndDate": "@activityEndDate",
		"ClientAuthorizationId": "@clientAuthorizationId",
		"AuthorizationCount":  1         
    },
	"FamilyName": "@Model.Member.LastName",
	"GivenName": "@Model.Member.FirstName",
	"Address":   
	{
		"AddressLine1": "@address.Street1",
		"AddressLine2": "@address.Street2",
		"AddressLine3": "@address.Street3",
		"City":   "@address.City",
		"State":   "@address.State",
		"Zip":   "@zip",
		"ZipExtension":  null,
		"Country":   "@country"              
    },
	"Phone":   
	{
		"Number":   "@phone",
		"CountryCode":   "1"      
    },
	"Email":   
	{
		"Address":   "@Model.Member.Email",
		"EmailType":   "Work"       
    },
    "object": 
	{
        "identifier": "@clientAuthorizationId",
        "objectType": "LearningBuilderXApiMessage",
        "xApiHandler": "Prolydian",
        "activityInstanceId": "@Model.Instance.WriteToItemId",
        "ownerId": "@Model.Instance.OwnerId"
    } 
}

Info

If the issue where the Feature does not handle new vs existing candidates is not yet addressed.

8. Include these behaviors on the action on the Exam Workflow that is trigger when the eligklbity should be sent:

Info

The last two behaviors and the conditional rules are only needed if the issue where the Feature does not handle new vs existing candidates is not yet addressed.

See 

Jira Legacy
serverSystem JIRA
serverId80a5de98-58ff-3b59-a4bd-e013083b8a1d
keyLB-2712

Requirements

  • LearningBuilder 11.0.3 or later

Capabilities

  • Makes an API call to Prolydian using a configurable template, which allows for customization of the data that are passed

  • When exam results are reported back to LearningBuilder, a custom xAPI Event Handler /wiki/spaces/DOCS/pages/639991859 allows values in the payload to be mapped back into Workflow Attributes

  • Candidates may take their test before they have an account in LearningBuilder. Exam results are stored in a pending state until they are "claimed" during the application process.



Filter by label (Content by label)
cqllabel = "pearson-vue"


Page Properties
hiddentrue


Related issues