Skip to end of banner
Go to start of banner

"Next Generation" Learning Plan

Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 44 Next »

Summary

In LearningBuilder 10, the View Learning Plan page received a cosmetic and performance overhaul.

Overview

The overall design of LearningBuilder's application interface remain largely unchanged since its inception through LearningBuilder 9.x. In version 10.0, a new design was introduced to convey a more modern feel, better help users understand what is required of them to complete the application, and to function better on mobile devices. In addition, significant performance improvements were made.

This new "engine" is called the Next Generation Learning Plan.

IE11 is not supported

The Next Generation interface uses modern web development technologies that are not fully supported by Internet Explorer 11. Users attempting to use IE11 will be redirected to the legacy interface instead.

If your configuration uses features that behave differently in the two interfaces, consider not using the Next Generation interface or preventing IE11 users from accessing the site altogether.

Unsupported Features

LearningBuilder is a complex application and supports a vast array of configuration options. Most of the common configurations are fully supported in the new interface, but not all.

Some features are unsupported because they are deprecated and superseded by newer, better ways of achieving the same outcome. In these cases, converting a legacy application to the Next Generation interface will result in functional differences unless configuration changes are made.

Other features are functionally supported, but using them will defeat the performance optimizations; in these cases the system will function as it had using the legacy engine, but the performance will remain unchanged. No configuration changes are necessary in these cases.

Lastly, some features remain completely unsupported in LearningBuilder 10.0. Converting a legacy application to the Next Generation interface will result in functional differences with no available workaround.


FeatureSupport LevelAcademyNotes
"To Be Completed When" rule on the Complete Learning Plan workflow step(star) Fall back to "Slow Lane"(tick)
Using Template attributes on the Activity Card (star) Fall back to "Slow Lane"(tick)See NGLP - Configure To Display Template on Activity Card for how to configure around this limitation.
"To Be Completed When" rule on any Complete Activity workflow step, for any Activity on the Learning Plan(star) Fall back to "Slow Lane"(tick)
Task Groups that are conditionally hidden or locked depending on another Group's status(green star) Implemented in 10.0.3(tick)
"Minimum Units" and "Maximum Units" specified at the Learning Plan Definition itself (aka "legacy requirements model")(red star) Deprecated; may be functional, but not supported and likely to be removed in future release(tick)Use the Requirements Model feature to implement these rules
Custom "progress widget" on the Learning Plan(red star) Not supported; future support undetermined(tick)Existing customizations need to be reviewed and considered for innovation
/wiki/spaces/LBDEV/pages/662995227(red star) Not supported; future support undetermined(tick)Existing customizations need to be reviewed and considered for innovation
Learning Plan Payment tasks(red star) Deprecated; not supported in LB10 mode(tick)Use the Payment Attribute on a Workflow instead
Activity Container tasks(red star) Deprecated; not supported in LB10 mode(tick)Use the Activity Container workflow attribute instead
Requirements targeting competency area(red star) Not implemented yet(tick)No timeline yet decided.
Competency Rollup task(red star) Not implemented yet(tick)

Depends on client demand; currently in-scope for a future release, but not scheduled yet

NAB used this on the Legacy LP and would like it on NGLP.  SR

/wiki/spaces/DOCS/pages/654835794(green star) Implemented in 10.9(tick)
"Edit Mode" inline editing of instructions(green star) Implemented in 10.0.3

"Hide From Practitioner When" setting on the Learning Plan Definition(red star) Not implemented yet(tick)
Workflow Action completion badges(red star) Not implemented yet
Depends on client demand; currently in-scope for a future release, but not scheduled yet
PDF Completion Certifications from ENTITY_TEMPLATE table(red star) Deprecated; not supported in LB10 mode
See NGLP - Configure To Display PDF Completion Certificate to migration to a PDF Quick Action
Template Attributes for non-standard functionality, like generating links or rendering PDFs(blue star) Supported with syntax change.
When using NGLP, template attribute data-types using WriteToEntity and ReferenceEntity syntax need to be updated to more current syntax. This is done as part of the 10.1.0 and higher upgrade process. However, in the case of templates referencing data that is NOT on the entity interface (such as those in URL creation), templates need to be manually updated. See LB-1280 and /wiki/spaces/LISI/pages/721453295

Performance Tips

To maximize performance:

  • Avoid setting a "To Be Completed When" rule on Complete Learning Plan or Complete Activity workflow steps

  • Avoid Comparison Rules that evaluate a Template attribute;

  • Avoid displaying, or making Comparison Rules that evaluate, attribute types that do not support bulk loading / evaluation

Releases

10.0.0 = internal release candidate, not deployed anywhere

10.0.1 = internal release for a demo, not deployed to any clients

10.0.2 = release candidate for UAT by a select list of clients

10.0.3 = general availability release; date TBD, but likely before end of year

Testing NGLP mode before making the config switch

It is possible to manually invoke the Next Generation mode without actually changing the Learning Plan configuration. This is useful for doing side-by-side testing.

To manually invoke the Next Generation mode, modify the URL and replace "View" with "Vue".

Change 
/Learner/LearningPlan/View/458
/Admin/PractitionerLearningPlan/View/458

to 
/Learner/LearningPlan/Vue/458
/Admin/PractitionerLearningPlan/Vue/458

Notes:

  • The UI will revert to the legacy view when it reloads after adding an Activity
  • System navigation and notifications will continue to point to the legacy interface


When manually viewing a Learning Plan using NGLP mode, but without having explicitly changed the configuration, the page will revert to the legacy UI whenever it reloads in response to a user action (such as adding an Activity or performing a Workflow Action).

Comparing to legacy mode after making the config switch

If you need to refer back to the legacy implementation after making the config switch, you can manually invoke it by using the "/LegacyLP" URL.

Change 
/Learner/LearningPlan/View/458
/Admin/PractitionerLearningPlan/View/458

to 
/Learner/LearningPlan/LegacyLP/458
/Admin/PractitionerLearningPlan/LegacyLP/458

Notes:

  • The UI will revert to the NGLP mode when it reloads after adding an Activity
  • System navigation and notifications will continue to point to the new interface



Converting an existing Learning Plan

Converting an existing Learning Plan to use the Next Generation interface requires planning, forethought, and testing. After testing in UAT, most of the checklist items below can be done on the live site PRIOR to turning on NGLP with no ill effects.

  1. Enable the explicit "Owner Complete" setting for the Complete Activity workflow steps. 
    (warning) If you do not do this, then Task Group Requirements and Requirements Model requirements will not correctly calculate.  You can include the following code in the Client Specific Upgrade script:

    SQL to Make Owner Complete Explicit
    SET NOCOUNT ON;
    PRINT '------------------------------------------------------------';
    PRINT FORMATMESSAGE ('%s - Started Make Owner Complete Explicit',FORMAT(GETDATE(),'MM/dd/yyyy hh:mm:ss tt'));
    
    UPDATE ws SET
    	IS_OWNER_COMPLETE = CASE WHEN isnull( 
    		(	
    			SELECT max(ws.EXECUTE_ORDER)
    			FROM WORKFLOW_STEP ws 
    			WHERE ws.WORKFLOW_ID = w.WORKFLOW_ID 
    			AND (ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3)
    		),0) >= ws.EXECUTE_ORDER THEN 0 ELSE 1 END
    FROM 
    	WORKFLOW w
    	JOIN WORKFLOW_STEP ws on ws.WORKFLOW_ID = w.WORKFLOW_ID
    WHERE 
    	w.WORKFLOW_TYPE_ID = 1
    	and w.USE_LEGACY_OWNER_COMPLETE = 1
    
    PRINT FORMATMESSAGE (' - Updated %d Workflow Steps',@@ROWCOUNT);
    
    UPDATE w SET
    	USE_LEGACY_OWNER_COMPLETE = 0
    FROM 
    	WORKFLOW w
    WHERE 
    	w.WORKFLOW_TYPE_ID = 1
    	AND w.USE_LEGACY_OWNER_COMPLETE = 1
    
    PRINT FORMATMESSAGE (' - Updated %d Workflows',@@ROWCOUNT);
    
    SELECT 
    	w.NAME as WORKFLOW, 
    	W_ID = w.WORKFLOW_ID, 
    	LEGACY = w.USE_LEGACY_OWNER_COMPLETE,
    	ws.TITLE as STEP, 
    	WS_ID = ws.WORKFLOW_STEP_ID,
    	EO = ws.EXECUTE_ORDER,
    	IOC_CURR = ws.IS_OWNER_COMPLETE,
    	IOC_NEW = CASE WHEN isnull( 
    		(	
    			SELECT max(ws.EXECUTE_ORDER)
    			FROM WORKFLOW_STEP ws 
    			WHERE ws.WORKFLOW_ID = w.WORKFLOW_ID 
    			AND (ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3)
    		),0) >= ws.EXECUTE_ORDER THEN 0 ELSE 1 END,
    	TBC = ws.TO_BE_COMPLETED_BY,
    	TBC_ID = ws.TO_BE_COMPLETED_BY_ID,
    	MAX_INCOMP = isnull((	
    		SELECT max(ws.EXECUTE_ORDER)
    		FROM WORKFLOW_STEP ws 
    		WHERE ws.WORKFLOW_ID = w.WORKFLOW_ID 
    		AND (ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3)
    	),0),
    	MIN_COMP = (
    		SELECT min(ws.EXECUTE_ORDER)
    		FROM WORKFLOW_STEP ws 
    		WHERE ws.WORKFLOW_ID = w.WORKFLOW_ID 
    		AND ws.IS_OWNER_COMPLETE = 1
    	)
    FROM 
    	WORKFLOW w
    	JOIN WORKFLOW_STEP ws on ws.WORKFLOW_ID = w.WORKFLOW_ID
    WHERE 
    	w.WORKFLOW_TYPE_ID = 1
    ORDER BY 
    	ws.WORKFLOW_ID, 
    	ws.EXECUTE_ORDER
    
    PRINT FORMATMESSAGE ('%s - Completed  Make Owner Complete Explicit',FORMAT(GETDATE(),'MM/dd/yyyy hh:mm:ss tt'));
    PRINT '------------------------------------------------------------';	
    
    
  2. Check the "To Be Completed When" rule on the Complete Learning Plan workflow steps, and on the Complete Activity workflows steps for Activities that can be added to it. This rule is functionally supported, but it if is enabled the NGLP will fall back to the "slow lane" data loading path which will nullify the performance improvements.

  3. Review the Workflow Step instructions for the Complete Learning Plan workflow. LearningBuilder 10.0 adds new settings that allow for Step-specific instructions to be displayed on the Learning Plan, independent from the instructions that are displayed in the Workflow Popup itself.

  4. If you DO want the Task Group Overview icon to be displayed, edit the Task Group Definition and re-enable the setting that enables it. This is a new setting in NGLP and defaults to FALSE.  Include the code below in the Client Specific Upgrade script to change all task group back to show the icon.

    SQL to Turn Back on Task Group Icon
    UPDATE lpg SET
    	lpg.DISPLAY_OVERVIEW_ICON = 1
    FROM ITEM_DEF_LEARNING_PLAN_GROUP lpg
    WHERE lpg.DISPLAY_OVERVIEW_ICON = 0
    
    PRINT FORMATMESSAGE ('UPDATEd [%d] TGs to Display Overview Icon',@@ROWCOUNT);
    
    
  5. Check the "Applies When" and "Applies To" Comparison Rules on any Requirement Model rules. If these are referencing attributes that do not support /wiki/spaces/DOCS/pages/663421021, then the system will fall back to the slow lane to calculate the Requirements Model.

  6. Review the Workflow Step Quick Actions for the Complete Learning Plan workflow steps. The Learning Plan's workflow button displays Quick Actions in Next Generation mode, but not in legacy mode, so be sure there are no Actions configured that should not be displayed to users.  Include the following in the Client Specific Upgrade script to change all "recall" type Quick Actions that would otherwise become visible to the practitioner so they are Admin only. 

    SQL To Make LP Quick Actions Admin Only
    SET NOCOUNT ON;
    PRINT '------------------------------------------------------------';
    PRINT FORMATMESSAGE ('%s - Started Make LP Quick Actions Admin Only',FORMAT(GETDATE(),'MM/dd/yyyy hh:mm:ss tt'));
     
    UPDATE sa SET VISIBLE_TO_ROLE_IDS = '2'
    from WORKFLOW w
    join WORKFLOW_STEP ws on ws.WORKFLOW_ID = w.WORKFLOW_ID
    left outer join ROLE r on r.ROLE_ID = ws.TO_BE_COMPLETED_BY_ID
    join WORKFLOW_STEP_ACTION sa on sa.WORKFLOW_STEP_ID = ws.WORKFLOW_STEP_ID
    	AND sa.SHOW_ON_QUICK_ACTION_MENU = 1
    join WORKFLOW_STEP_ACTION_TYPE at on at.WORKFLOW_STEP_ACTION_TYPE_ID = sa.WORKFLOW_STEP_ACTION_TYPE_ID
    left outer join WORKFLOW_STEP ws2 on ws2.WORKFLOW_ID = ws.WORKFLOW_ID
    	AND (ws2.EXECUTE_ORDER = case 
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID in (1,2,6,7,8,9) then ws.EXECUTE_ORDER -- Make Incomplete
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID = 3 then ws.EXECUTE_ORDER + 1 -- Move Next
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID = 4 then ws.EXECUTE_ORDER - 1 -- Move Previous
    	end OR (ws2.WORKFLOW_STEP_ID = sa.GOTO_STEP_ID AND sa.WORKFLOW_STEP_ACTION_TYPE_ID = 5) )
    WHERE w.WORKFLOW_TYPE_ID = 3
    	AND sa.VISIBLE_TO_ROLE_IDS = ''
    	AND sa.VISIBILITY = 'CONDITIONALLY'
    	AND (
    			(
    			(ws2.TO_BE_COMPLETED_BY = 1 OR ws2.TO_BE_COMPLETED_BY_ID = 3 ) 
    			AND sa.VISIBLE_ON_STEP_ACCESS_TARGET = 1 
    			)
    		OR 
    			(
    			(ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3 )
    			AND sa.VISIBLE_ON_STEP_ACCESS_CURRENT = 1 
    			)
    		)
    
    PRINT FORMATMESSAGE (' - Updated %d Workflow Step Quick Actions to Admin Only',@@ROWCOUNT);
     
     
    SELECT w.NAME as WORKFLOW, w.WORKFLOW_ID as W_ID,
    	ws.TITLE as STEP, ws.WORKFLOW_STEP_ID as WS_ID, ws.EXECUTE_ORDER as EO,
    	CURRENT_BY = case WHEN ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3 then 'OWNER' else r.DISPLAY_NAME END,
    	ACTION_NAME = sa.NAME, 
    	--sa.BUTTON_TEXT, 
    	TYPE = at.NAME, 
    	TARET_BY = case WHEN ws2.TO_BE_COMPLETED_BY = 1 OR ws2.TO_BE_COMPLETED_BY_ID = 3 then 'OWNER' else r.DISPLAY_NAME END,
    	sa.WORKFLOW_STEP_ACTION_ID as SA_ID, 
    	sa.VISIBILITY,
    	V_ROLES = sa.VISIBLE_TO_ROLE_IDS, 
    	sa.VISIBLE_ON_STEP_ACCESS_CURRENT as V_CURRENT, sa.VISIBLE_ON_STEP_ACCESS_TARGET as V_TARGET,
    	V_1S = sa.VISIBLE_WHEN_WORKFLOW_COMPLETE_SUCCESSFUL, 
    	V_2U = sa.VISIBLE_WHEN_WORKFLOW_COMPLETE_UNSUCCESSFUL, 
    	V_0I = sa.VISIBLE_WHEN_WORKFLOW_INCOMPLETE
    from WORKFLOW w
    join WORKFLOW_STEP ws on ws.WORKFLOW_ID = w.WORKFLOW_ID
    left outer join ROLE r on r.ROLE_ID = ws.TO_BE_COMPLETED_BY_ID
    join WORKFLOW_STEP_ACTION sa on sa.WORKFLOW_STEP_ID = ws.WORKFLOW_STEP_ID
    	AND sa.SHOW_ON_QUICK_ACTION_MENU = 1
    join WORKFLOW_STEP_ACTION_TYPE at on at.WORKFLOW_STEP_ACTION_TYPE_ID = sa.WORKFLOW_STEP_ACTION_TYPE_ID
    left outer join WORKFLOW_STEP ws2 on ws2.WORKFLOW_ID = ws.WORKFLOW_ID
    	AND (ws2.EXECUTE_ORDER = case 
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID in (1,2,6,7,8,9) then ws.EXECUTE_ORDER -- Make Incomplete
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID = 3 then ws.EXECUTE_ORDER + 1 -- Move Next
    		WHEN sa.WORKFLOW_STEP_ACTION_TYPE_ID = 4 then ws.EXECUTE_ORDER - 1 -- Move Previous
    	end OR (ws2.WORKFLOW_STEP_ID = sa.GOTO_STEP_ID AND sa.WORKFLOW_STEP_ACTION_TYPE_ID = 5) )
    WHERE w.WORKFLOW_TYPE_ID = 3
    	AND (
    			(
    			(ws2.TO_BE_COMPLETED_BY = 1 OR ws2.TO_BE_COMPLETED_BY_ID = 3 ) 
    			AND sa.VISIBLE_ON_STEP_ACCESS_TARGET = 1 
    			)
    		OR 
    			(
    			(ws.TO_BE_COMPLETED_BY = 1 OR ws.TO_BE_COMPLETED_BY_ID = 3 )
    			AND sa.VISIBLE_ON_STEP_ACCESS_CURRENT = 1 
    			)
    		)
    ORDER BY 
    	ws.WORKFLOW_ID, 
    	ws.EXECUTE_ORDER
     
    PRINT FORMATMESSAGE ('%s - Completed Make LP Quick Actions Admin Only',FORMAT(GETDATE(),'MM/dd/yyyy hh:mm:ss tt'));
    PRINT '------------------------------------------------------------'; 
    
    
    
  7. Review the Passive Text for the Complete Learning Plan workflow steps. In legacy mode, when the Learning Plan was in "Requirements Not Met" state, the Learning Plan workflow button was disabled (gray) but displayed the Active button text. In NGLP, this button now displays the Passive button text, to follow the convention that Active text should only show up on active buttons. 

  8. Run the following SQL to determine if there are any Template attributes being displayed on Learning Plan Activity cards.  If there are any, see NGLP - Configure To Display Template on Activity Card for how to configure around this limitation.  

    SQL to Find Templates use on LP Activity Cards
    SELECT WORKFLOW = w.NAME, 
    	d.WORKFLOW_ID,
    	DISPLAY_COLUMN = c.NAME, 
    	ATTRIBUTE = ia.NAME, 
    	ia.DEFINITION_DATA
    FROM LEARNING_PLAN_ACTIVITY_DISPLAY d
    JOIN WORKFLOW w on w.WORKFLOW_ID = d.WORKFLOW_ID
    JOIN LEARNING_PLAN_ACTIVITY_DISPLAY_COLUMN c 
    	ON c.LEARNING_PLAN_ACTIVITY_DISPLAY_COLUMN_ID = d.LEARNING_PLAN_ACTIVITY_DISPLAY_COLUMN_ID
    JOIN ITEM_ATTRIBUTE ia ON ia.ITEM_ATTRIBUTE_ID = d.item_attribute_id
    	AND ia.ITEM_ATTRIBUTE_TYPE_ID = 22 -- Template
    
  9. Run the following SQL to determine if there are any PDF Completion Certificates being displayed on Learning Plan Activities.  If there are any, see NGLP - Configure To Display PDF Completion Certificate for a script to configure around this limitation.  One row is returned for each Activity Completion workflow that has a PDF Completion Certificate.

    SQL to Find PDF Completion Certificates
    select t.TEMPLATE_NAME, 
    	w.WORKFLOW_ID, 
    	WORKFLOW = w.NAME, 
    	WORKFLOW_STEPS = count(distinct ws.WORKFLOW_STEP_ID), 
    	AREAS = count(distinct et.AREA_ENUM),
    	PRACTITIONER = case sum(case et.AREA_ENUM when 3 then 1 else 0 end) when 0 then 'Hidden' else 'Visible' end
    	from ENTITY_TEMPLATE et
    	join PDF_TEMPLATE t on t.PDF_TEMPLATE_ID = et.PDF_TEMPLATE_ID
    	join ENTITY e on e.ENTITY_ID = et.ENTITY_ID and e.ENTITY_TYPE_ID = 2
    	join WORKFLOW w on w.ENTITY_ID = et.ENTITY_ID
    	join WORKFLOW_STEP ws on ws.WORKFLOW_ID = w.WORKFLOW_ID
    	group by t.TEMPLATE_NAME, w.WORKFLOW_ID, w.NAME
    
    
  10. If the existing Learning Plan uses customized client-specific partial views, they will need to be analyzed. The Next Generation interface does not support partial views, so any custom display logic or business rules will need to be implemented in new ways (or submitted for innovation analysis). (See the /wiki/spaces/LBDEV/pages/662995227)

If you do not confirm the settings as explained here, the Learning Plan may not continue to function as expected when in Next-Generation mode.

  • No labels