Skip to main content


class EnsPortal.BPLEditor extends EnsPortal.Template.devPage, EnsPortal.Util.CodeEditorBase

Ensemble Business Process Designer.
This class should be considered as INTERNAL.

Property Inventory

Method Inventory


parameter DEFAULTVIEWMODE = bpl;
If this page has multiple views, this is its initial display mode.
parameter DEFAULTZOOM = 75;
parameter DESIGNERURL = EnsPortal.BPLEditor.zen;
URL for BP Designer.
parameter EDITRESOURCE = %Ens_BPL:WRITE,%Ens_Code:WRITE;
User needs WRITE permissions on either the %Ens_Code or the %Ens_BPL resource to make changes on this page.
parameter PAGENAME = Business Process Designer;
Displayed name of this page.
parameter RESOURCE = %Ens_BPL:READ,%Ens_Code:READ;
User needs READ permissions on either the %Ens_Code or the %Ens_BPL resource to view this page.


property %bpl as Ens.BPL.UI.Diagram;
Local copy of BPL diagram object.
Property methods: %bplGet(), %bplGetSwizzled(), %bplIsValid(), %bplNewObject(), %bplSet()
property activityDesc as array of %String;
Array of brief descriptions on each activity.
Property methods: activityDescBuildValueArray(), activityDescCollectionToDisplay(), activityDescCollectionToOdbc(), activityDescDisplayToCollection(), activityDescDisplayToLogical(), activityDescGet(), activityDescGetObject(), activityDescGetObjectId(), activityDescGetSwizzled(), activityDescIsValid(), activityDescLogicalToDisplay(), activityDescLogicalToOdbc(), activityDescNormalize(), activityDescOdbcToCollection(), activityDescSet(), activityDescSetObject(), activityDescSetObjectId()
property bpAsName as %String;
Target SaveAs name of Business Process used by EnsPortal.Dialog.BusinessProcessSave.
Property methods: bpAsNameDisplayToLogical(), bpAsNameGet(), bpAsNameIsValid(), bpAsNameLogicalToDisplay(), bpAsNameLogicalToOdbc(), bpAsNameNormalize(), bpAsNameSet()
property bpId as %String (MAXLEN = 250, ZENURL = "BP");
ID (full classname) of Business Process to display.
Property methods: bpIdDisplayToLogical(), bpIdGet(), bpIdIsValid(), bpIdLogicalToDisplay(), bpIdLogicalToOdbc(), bpIdNormalize(), bpIdSet()
property codeValidation as %Boolean [ InitialExpression = 1 ];
Flag to control whether code elements are checked for leading whitespace.
Property methods: codeValidationDisplayToLogical(), codeValidationGet(), codeValidationIsValid(), codeValidationLogicalToDisplay(), codeValidationLogicalToXSD(), codeValidationNormalize(), codeValidationSet(), codeValidationXSDToLogical()
property currItem as %Integer;
ID (index number, 1-based) of current selected item.
Property methods: currItemDisplayToLogical(), currItemGet(), currItemIsValid(), currItemLogicalToDisplay(), currItemNormalize(), currItemSet(), currItemXSDToLogical()
property designerURL as %ZEN.Datatype.string [ InitialExpression = ..#DESIGNERURL ];
URL for designer.
Property methods: designerURLDisplayToLogical(), designerURLGet(), designerURLIsValid(), designerURLLogicalToDisplay(), designerURLLogicalToOdbc(), designerURLNormalize(), designerURLSet()
property diagramLoaded as %Boolean [ InitialExpression = 0 ];
Flag to indicate that the SVG diagram has been loaded.
Property methods: diagramLoadedDisplayToLogical(), diagramLoadedGet(), diagramLoadedIsValid(), diagramLoadedLogicalToDisplay(), diagramLoadedLogicalToXSD(), diagramLoadedNormalize(), diagramLoadedSet(), diagramLoadedXSDToLogical()
property msgDocReadOnly as %ZEN.Datatype.caption [ InitialExpression = $$$TextJS("This business process is read only") ];
Property methods: msgDocReadOnlyDisplayToLogical(), msgDocReadOnlyGet(), msgDocReadOnlyIsValid(), msgDocReadOnlyLogicalToDisplay(), msgDocReadOnlyLogicalToOdbc(), msgDocReadOnlyNormalize(), msgDocReadOnlySet()
property tipCompile as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Compile this Business Process into executable code") ];
Property methods: tipCompileDisplayToLogical(), tipCompileGet(), tipCompileIsValid(), tipCompileLogicalToDisplay(), tipCompileLogicalToOdbc(), tipCompileNormalize(), tipCompileSet()
property tipNew as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Create a new Business Process") ];
Property methods: tipNewDisplayToLogical(), tipNewGet(), tipNewIsValid(), tipNewLogicalToDisplay(), tipNewLogicalToOdbc(), tipNewNormalize(), tipNewSet()
property tipOpen as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Load an existing Business Process") ];
Property methods: tipOpenDisplayToLogical(), tipOpenGet(), tipOpenIsValid(), tipOpenLogicalToDisplay(), tipOpenLogicalToOdbc(), tipOpenNormalize(), tipOpenSet()
property tipSave as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Save this Business Process") ];
Property methods: tipSaveDisplayToLogical(), tipSaveGet(), tipSaveIsValid(), tipSaveLogicalToDisplay(), tipSaveLogicalToOdbc(), tipSaveNormalize(), tipSaveSet()
property tipSaveAs as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Save this Business Process with a new name") ];
Property methods: tipSaveAsDisplayToLogical(), tipSaveAsGet(), tipSaveAsIsValid(), tipSaveAsLogicalToDisplay(), tipSaveAsLogicalToOdbc(), tipSaveAsNormalize(), tipSaveAsSet()


classmethod %ActivitytoJSON(pActivity As Ens.BPL.Activity) as %Status
Output an activity (for a request/response) in JSON format.
classmethod %BPLtoJSON(pBPLName As %String, pDiagram As Ens.BPL.UI.Diagram) as %Status
Output the contents of the given diagram to JSON.
classmethod %ConnectortoJSON(pShape As Ens.BPL.UI.Connector) as %Status
Output a connector in JSON format.
classmethod %CreateDiagramFromProxy(pObject As %ZEN.proxyObject, Output pDiagram As Ens.BPL.UI.Diagram, ByRef pShapeIndex As Ens.BPL.UI.Shape) as %Status
Convert data in the given proxy object into a Diagram.
classmethod %CreateReqRespFromProxy(pIsRequest As %Boolean, pObject As %ZEN.proxyObject, Output pOutput As Ens.BPL.Message) as %Status
Convert a proxy object into a request or response.
classmethod %CreateShapeListFromProxy(ByRef pShapeIndex As Ens.BPL.UI.Shape, pObjectList As %ListOfObjects, Output pParentIndex As Ens.BPL.UI.Shape) as %Status
Convert an array of proxy objects into a local array of shapes (pShapeIndex) and an index by parent (pParentIndex).
method %OnAfterCreatePage() as %Status
This class method callback is called just before the server-side page object is created.
method %OnDrawHTMLHead() as %Status
Add the Studio API methods.
method %OnGetPageName() as %String
Inherited description: Get the (localized) name of the page. This should be implemented in a subclass.
method %OnGetTitle() as %String
Get the (localized) title string for the page. This should be implemented in a subclass.
classmethod %PropertyListtoJSON(pList As Ens.BPL.PropertyList) as %Status
Output the contents of the given property list to JSON.
classmethod %ShapetoJSON(pShape As Ens.BPL.UI.Shape) as %Status
Output a shape in JSON format.
method DrawLoadingMsg(pSeed As %String) as %Status
Get the (localized) title string for the page. This should be implemented in a subclass.
method GetBPLDefinition(ByRef pParms) as %Status
Get BPL definition for JSON provider and write out JSON version of it.
classmethod GetCodeValidation(pBPL As %String = "") as %Boolean [ ZenMethod ]
method GetInternalName() as %String
Return the internal name of the current BPL document.
classmethod IsCodeValid(pCode As %String = "") as %Boolean [ ZenMethod ]
Test if a code fragment contains valid ObjectScript code.
method LoadBPLDiagram() as %Status
Helper method to load BPL diagram from disk.
method OnDrawRibbon() as %Status
Add content to ribbon bar.
method OnGetRibbonInfo(Output pDisplay As %Library.Boolean, Output pViewIcons As %Library.List, Output pSortOptions As %Library.List, Output pSearchBox As %Library.Boolean, Output pRibbonTitle As %Library.String, Output pCommands As %Library.List) as %Status
Get information to display in the ribbon bar.
classmethod SetCodeValidation(pBPL As %String = "", pNewValue As %Boolean = 1) as %Boolean [ ZenMethod ]
classmethod SetPreference(pPref As %String, pValue As %String) as %Boolean [ ZenMethod ]
Set a value in the preference global.
method SubmitBPL(pCommand As %String, pProvider As %ZEN.Auxiliary.jsonProvider, pSubmitObject As %RegisteredObject, ByRef pResponseObject As %RegisteredObject) as %Status
Object submit handler JSON provider. This is called when the client saves the Business Process.
clientmethod activityChange(isText As %Boolean = 0) [ Language = javascript ]
User has changed an activity value.
clientmethod addCallActivity(prop, reset, action, annotation, key, property, value) [ Language = javascript ]
Helper method to allow Call Builder to create valid Activity list in current window context.
clientmethod addNewGroup(groupType) [ Language = javascript ]
clientmethod addNewShape(shapeType) [ Language = javascript ]
User has selected a new shape to add.
clientmethod adjustSizes() [ Language = javascript ]
Adjust sizes of components on the page.
clientmethod arrange() [ Language = javascript ]
clientmethod autoConnect(startShape, endShape) [ Language = javascript ]
clientmethod bpSave() [ Language = javascript ]
clientmethod buildActivityMap() [ Language = javascript ]
Build a map of the properties expected in various shapes and the controls to fetch the values from.
clientmethod canUndo() [ Language = javascript ]
Return true if it is possible to undo an action
clientmethod changeCodeValidation(newValue) [ Language = javascript ]
Modify the codeValidation flag and trigger validation using the new value.
clientmethod changePreference(pref, value) [ Language = javascript ]
Change value of a BPL editor preference.
clientmethod chooseSCMenu(menuName, commandName, saveFlags) [ Language = javascript ]
Handle a source control menu selection.
clientmethod clearUndoBuffer() [ Language = javascript ]
Clear the current undo buffer.
clientmethod cloneObject(obj, clone, noSVG) [ Language = javascript ]
Create a clone of an object supplied in obj. If noSVG is specified, any properties with an _ other than _type, _class and _className will not be cloned.
clientmethod compile() [ Language = javascript ]
Launch the compile dialog.
clientmethod connectorChange() [ Language = javascript ]
User has changed a connector value
clientmethod copyShape(isCut, warnings) [ Language = javascript ]
Copy selected shape(s). Note that we copy parents *BEFORE* children so that we can translate ParentShape references during paste.
clientmethod copyShapeChild(shape) [ Language = javascript ]
clientmethod createConnectorModel(fromShape, toShape, name, connType, condition) [ Language = javascript ]
clientmethod createShapeModel(type, name, parentIndex, xPos, yPos, annotation, allAuto) [ Language = javascript ]
clientmethod cutShape() [ Language = javascript ]
Cut selected item(s).
clientmethod deleteAction(which, idx) [ Language = javascript ]
Delete an action in a req/resp list.
clientmethod deleteContextProperty(idx) [ Language = javascript ]
Delete a context property.
clientmethod deleteShape(isCut) [ Language = javascript ]
Delete selected item(s).
clientmethod deleteShapeModel(bplModel, shape, warnings) [ Language = javascript ]
Helper method to recurse through children of selected items.
clientmethod deleteXSLTParm(idx) [ Language = javascript ]
Delete an XSLT parameter.
clientmethod diagramChange(field) [ Language = javascript ]
User has changed a diagram value.
clientmethod drillDown() [ Language = javascript ]
clientmethod drillUp() [ Language = javascript ]
clientmethod editAction(which, idx) [ Language = javascript ]
Launch the action property dialog.
clientmethod editContextProperty(idx) [ Language = javascript ]
Launch the context property dialog.
clientmethod editPropertyValue(name, type) [ Language = javascript ]
Launch the property editor dialog.
clientmethod editXSLTParm(idx) [ Language = javascript ]
Launch the XSLT parameter dialog.
clientmethod endUndoAction() [ Language = javascript ]
Close off an undo block. If the undoLevel is back to 0, update icons and mark the page as modified.
clientmethod findRule(prop) [ Language = javascript ]
Launch rule finder.
clientmethod findTransform(prop) [ Language = javascript ]
Launch the data transform finder dialog.
clientmethod getAction(which, actionIndex) [ Language = javascript ]
clientmethod getActionListHTML(which, array) [ Language = javascript ]
Return HTML for an action table.
clientmethod getBPLObject() [ Language = javascript ]
Return the BPL definition object.
clientmethod getClientModel() [ Language = javascript ]
Inherited description: Get the jsonProvider object on the client. Subclasses MUST override this method to return the jsonProvider.
clientmethod getContextProperties(asCommaList) [ Language = javascript ]
Helper method to list the names of context properties.
clientmethod getCurrShape(which) [ Language = javascript ]
Called from request/response builder to get action list for current shape.
clientmethod getCurrentName() [ Language = javascript ]
Return the current name of the class/object being modified
clientmethod getMapProperty(shapeModel, map, field) [ Language = javascript ]
Helper method to invoke the correct get code in the activity map
clientmethod getSVGWindow() [ Language = javascript ]
Get the SVG window object for the diagram. This provides a way to access scripts in the SVG diagram.
clientmethod getSelectedItem() [ Language = javascript ]
Return the selected item in the editor.
clientmethod initializeSVG() [ Language = javascript ]
clientmethod invokeAfterUserAction(input, userContext) [ Language = javascript ]
Client-side coordinator of calls to the AfterUserAction callback in the core source control class.
clientmethod loadBP() [ Language = javascript ]
Launch the finder dialog.
clientmethod newBP() [ Language = javascript ]
Create a new Business Process.
clientmethod notify(type) [ Language = javascript ]
Event raised on canvas.
clientmethod onDocumentSaveComplete(contentUpdated) [ Language = javascript ]
Ensure we redraw the diagram if the model was updated.
clientmethod onPopupAction(popupName, action, value) [ Language = javascript ]
This client event is fired when the a popup page launched from this page fires an action.
clientmethod onSVGLoad() [ Language = javascript ]
Notification from SVG frame that its contents are loaded.
clientmethod onlayoutHandler(load) [ Language = javascript ]
Adjust sizes of components on the page. No HyperEvents should be executed before initializeSVG()() is executed, as that method calls checkStudioHyperEvents()() to ensure that we maintain consistent session behaviour under Studio.
clientmethod onshowTab() [ Language = javascript ]
Ensure tab content is correctly sized when the tab is shown.
clientmethod paste() [ Language = javascript ]
Paste items from the clipboard. The logic is predicated on parents being copied before children.
clientmethod removeConnectorFromModel(connectorModel) [ Language = javascript ]
Remove a connector definition from the model.
clientmethod renderActionList(which, shapeModel) [ Language = javascript ]
Update the contents of the Call Request or Response Action table.
clientmethod renderContextTable() [ Language = javascript ]
Update the contents of the Context Properties table.
clientmethod renderXSLTList(shapeModel) [ Language = javascript ]
Update the contents of the XSLT parameters table.
clientmethod replaceBPLObject(bpl) [ Language = javascript ]
Replace the current BPL object with the supplied BPL object. This is used by the undo framework.
clientmethod saveBP(showDialog, force) [ Language = javascript ]
Launch the save dialog.
clientmethod selectContextClass() [ Language = javascript ]
Launch the select context super dialog.
clientmethod selectMessageClass(which, prop, isDiagramProperty) [ Language = javascript ]
Launch the finder for request or response messages. which should be 'Request' or 'Response'.
clientmethod setActionItem(which, idx, actionType, prop, value, key, annotation) [ Language = javascript ]
Set the values for an action item.
clientmethod setCanvasSize(width, height) [ Language = javascript ]
Called from diagram to set size of svg canvas.
clientmethod setContextProperty(idx, propName, propType, propDefault, propDesc, propCollection, propInstantiate) [ Language = javascript ]
Set the values for a context property.
clientmethod setDescription(desc) [ Language = javascript ]
Update the description (annotation) of this BP.
clientmethod setOption(option, value) [ Language = javascript ]
clientmethod setReadOnly(readOnly) [ Language = javascript ]
Inherited description: Set readOnly to the value of readOnly. Subclasses MUST implement this method to update the controls on the page so that the page's behaviour actually matches the value of the readOnly flag.
clientmethod setXSLTParm(idx, parm, value) [ Language = javascript ]
Set the values for an XSLT parameter.
clientmethod setZoom(zoom, updateSelect) [ Language = javascript ]
User has selected a new zoom level.
clientmethod showActivityDoc(type) [ Language = javascript ]
Show documentation for given activity.
clientmethod showBuilder(which) [ Language = javascript ]
Request/Response (DTL) builder.
clientmethod showDTLEditor() [ Language = javascript ]
Open DTL editor in a new window.
clientmethod showRuleEditor() [ Language = javascript ]
Open Rule editor in a new window.
clientmethod startUndoAction(tabNum) [ Language = javascript ]
Start an undo block. If the undo level is 0, save a copy of the current BPL model including which items are selected.
clientmethod studioSave() [ Language = javascript ]
Method to produce and save the XML expected by Studio.
clientmethod toggleSettings() [ Language = javascript ]
Toggle display of settings box.
clientmethod undo() [ Language = javascript ]
Undo change.
clientmethod updateActivitySettings(shape, isUpdate, noTabSelect) [ Language = javascript ]
Update the Activities tab on the settings panel.
clientmethod updateIcons() [ Language = javascript ]
Update the state of icons in the toolbar.
clientmethod updateSettings(noTabSelect) [ Language = javascript ]
Update the settings panel.
clientmethod validateCode(code, currWindow, showConfirm) [ Language = javascript ]
Method to ensure code elements contain leading whitespace. This validation can be disabled from the UI for BPs which do contain routine tags.
clientmethod validateExpression(expr) [ Language = javascript ]
Validate a code expression.
clientmethod validateShape(shape) [ Language = javascript ]
Test if current shape is valid. Show error message if not.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab