Application Studio - DataTree-Bindings-Set Widget

Has anyone used the DataTree-Bindings-Set event widget? Any idea what it does or how it could be useful?

I would like to customize the text on navigation tree nodes (specifically in Engineering Workbench and the Job Tree), and I’m wondering if this widget would have anything to do with it.

Side note… apart from everyone’s favorite resident expert here on these forums, where can we find more information about the various event widgets and components? The ‘Help’ is not complete, it doesn’t even list all the available widgets. Is there any form of Epicor support that can help with questions about how certain widgets work?

2 Likes

So–it would seem you can.

It looks like it builds the tree based off a Rest call: GetTreeStructure.

I went into the RestHelp and ran that call which gave me this:

{
	"returnObj": [
		{
			"id": "ecoRev",
			"epBinding": "ECORev",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"ProcessMfgID",
				"ProcessMfgDescription"
			],
			"columnCaptions": [
				"Recipe: ",
				"Description: "
			],
			"sort": "ProcessMfgID",
			"entityType": "ecoRev",
			"iconId": "Method-Tree_Assembly",
			"isDraggable": false,
			"isTopLevel": true,
			"selectOnLoad": true,
			"expandFirstLevel": true,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "engineering",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "stage",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [
				{
					"entityType": "part",
					"canDropOnTitle": true
				},
				{
					"entityType": "PartMtl",
					"canDropOnTitle": true
				},
				{
					"entityType": "JobAsmbl",
					"canDropOnTitle": true
				},
				{
					"entityType": "JobMtl",
					"canDropOnTitle": true
				},
				{
					"entityType": "QuoteAsm",
					"canDropOnTitle": true
				},
				{
					"entityType": "QuoteMtl",
					"canDropOnTitle": true
				}
			],
			"iconRules": []
		},
		{
			"id": "engineering",
			"titleNodeText": "Engineering",
			"skipTitleFirstTime": false,
			"displayColumns": [],
			"columnCaptions": [],
			"entityType": "engineering",
			"iconId": "Method-Tree_Wrench-Folder",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "stage",
			"epBinding": "ECOStage",
			"titleNodeText": "Stages",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"StageNumber",
				"StageSeq"
			],
			"columnCaptions": [
				"Stage: ",
				"Seq: "
			],
			"sort": "StageSeq",
			"entityType": "stage",
			"iconId": "Method-Tree_Operation",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "operation",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and StageNumber = \\u0027?{StageNumber}\\u0027",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "material",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and RelatedStage = \\u0027?{StageNumber}\\u0027",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "operation",
			"epBinding": "ECOOpr",
			"titleNodeText": "WEINERS",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"OprSeq",
				"OpCode"
			],
			"columnCaptions": [
				"Opr: ",
				"OP: "
			],
			"sort": "OprSeq",
			"entityType": "operation",
			"iconId": "Method-Tree_Operation",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "resource",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq}",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "relatedMaterial",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and RelatedECOOprOprSeq = ?{OprSeq}",
					"firstRowFilter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and (RelatedECOOprOprSeq = ?{OprSeq} or RelatedECOOprOprSeq = 0)",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "oprInspection",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq}",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "oprRestriction",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq}",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "oprAction",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq}",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [
				{
					"entityType": "material",
					"canDropOnTitle": false
				},
				{
					"entityType": "part",
					"canDropOnTitle": false
				},
				{
					"entityType": "opMaster",
					"canDropOnTitle": true
				},
				{
					"entityType": "capability",
					"canDropOnTitle": true
				},
				{
					"entityType": "resourceGroup",
					"canDropOnTitle": true
				},
				{
					"entityType": "resource",
					"canDropOnTitle": true
				},
				{
					"entityType": "PartOpr",
					"canDropOnTitle": true
				},
				{
					"entityType": "PartMtl",
					"canDropOnTitle": false
				},
				{
					"entityType": "JobAsmbl",
					"canDropOnTitle": false
				},
				{
					"entityType": "JobOper",
					"canDropOnTitle": true
				},
				{
					"entityType": "JobMtl",
					"canDropOnTitle": false
				},
				{
					"entityType": "QuoteAsm",
					"canDropOnTitle": false
				},
				{
					"entityType": "QuoteOpr",
					"canDropOnTitle": true
				},
				{
					"entityType": "QuoteMtl",
					"canDropOnTitle": false
				}
			],
			"iconRules": [
				{
					"iconId": "Method-Tree_Sub-Contract of Operation",
					"rule": "SubContract = true"
				}
			]
		},
		{
			"id": "material",
			"epBinding": "ECOMtl",
			"titleNodeText": "Ingredients",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"MtlSeq",
				"MtlPartNum"
			],
			"columnCaptions": [
				"Ing: ",
				""
			],
			"sort": "MtlSeq",
			"entityType": "material",
			"iconId": "Method-Tree_Material",
			"isDraggable": true,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "mtlInspection",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and MtlSeq = ?{MtlSeq}",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "mtlRestriction",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and MtlSeq = ?{MtlSeq}",
					"isRecursiveHeader": false
				},
				{
					"childBindingId": "ecoRev",
					"filter": "PartNum = \\u0027?{MtlPartNum}\\u0027 and RevisionNum = \\u0027?{MtlRevisionNum}\\u0027",
					"parentRule": "ExpandTree = true",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [
				{
					"entityType": "part",
					"canDropOnTitle": true
				},
				{
					"entityType": "PartMtl",
					"canDropOnTitle": true
				},
				{
					"entityType": "JobAsmbl",
					"canDropOnTitle": true
				},
				{
					"entityType": "JobMtl",
					"canDropOnTitle": true
				},
				{
					"entityType": "QuoteAsm",
					"canDropOnTitle": true
				},
				{
					"entityType": "QuoteMtl",
					"canDropOnTitle": true
				}
			],
			"iconRules": [
				{
					"iconId": "Method-Tree_Material-Zero",
					"rule": "QtyPer = 0"
				}
			]
		},
		{
			"id": "resource",
			"epBinding": "ECOOpDtl",
			"titleNodeText": "Equipment",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"OpDtlSeq",
				"OpDtlDesc"
			],
			"columnCaptions": [
				"OpDtl: ",
				""
			],
			"sort": "OpDtlSeq",
			"entityType": "opDtl",
			"iconId": "Method-Tree_Operation-Detail",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [
				{
					"entityType": "capability",
					"canDropOnTitle": true
				},
				{
					"entityType": "resourceGroup",
					"canDropOnTitle": true
				},
				{
					"entityType": "resource",
					"canDropOnTitle": true
				}
			],
			"iconRules": []
		},
		{
			"id": "oprRestriction",
			"epBinding": "ECOOprRestriction",
			"titleNodeText": "Restrictions",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"RestrictionTypeID"
			],
			"columnCaptions": [
				""
			],
			"sort": "RestrictionTypeID",
			"entityType": "oprRestriction",
			"iconId": "Method-Tree_Operation",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "oprSubstance",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq} and RestrictionTypeID = ?{RestrictionTypeID}",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "oprSubstance",
			"epBinding": "ECOOprRestrictSubstance",
			"titleNodeText": "Substances",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"SubstanceID"
			],
			"columnCaptions": [
				""
			],
			"sort": "SubstanceID",
			"entityType": "oprSubstance",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "oprInspection",
			"epBinding": "ECOOprInsp",
			"titleNodeText": "Inspections",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"InspPlanPartNum"
			],
			"columnCaptions": [
				""
			],
			"sort": "PlanSeq",
			"entityType": "oprInspection",
			"iconId": "Method-Tree_Inspection",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "specAttr",
					"filter": "SpecID = \\u0027?{SpecID}\\u0027",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "specAttr",
			"epBinding": "SpecAttr",
			"titleNodeText": "Attributes",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"AttributeID"
			],
			"columnCaptions": [
				"Attribute: "
			],
			"sort": "",
			"entityType": "oprInspection",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "oprAction",
			"epBinding": "ECOOprAction",
			"titleNodeText": "Actions",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"ActionSeq",
				"ActionDesc"
			],
			"columnCaptions": [
				""
			],
			"sort": "ActionSeq",
			"entityType": "oprAction",
			"iconId": "Method - Tree_Action",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "oprParam",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and OprSeq = ?{OprSeq} and ActionSeq = ?{ActionSeq}",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "oprParam",
			"epBinding": "ECOOprActionParam",
			"titleNodeText": "Parameters",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"ActionParamSeq",
				"ActionParamValueCharacter"
			],
			"columnCaptions": [
				""
			],
			"sort": "ActionParamSeq",
			"entityType": "oprAction",
			"iconId": "Method-Tree_ParamAction",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "relatedMaterial",
			"epBinding": "ECOMtl",
			"titleNodeText": "Ingredients",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"MtlSeq",
				"MtlPartNum"
			],
			"columnCaptions": [
				"Ing: ",
				""
			],
			"sort": "MtlSeq",
			"entityType": "material",
			"iconId": "Method-Tree_Material",
			"isDraggable": true,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [
				{
					"entityType": "part",
					"canDropOnTitle": true
				}
			],
			"iconRules": [
				{
					"iconId": "Method-Tree_Material-Zero",
					"rule": "QtyPer = 0"
				}
			]
		},
		{
			"id": "mtlInspection",
			"epBinding": "ECOMtlInsp",
			"titleNodeText": "Inspections",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"InspPlanPartNum"
			],
			"columnCaptions": [
				""
			],
			"sort": "PlanSeq",
			"entityType": "mtlInspection",
			"iconId": "Method-Tree_Inspection",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "mtlRestriction",
			"epBinding": "ECOMtlRestriction",
			"titleNodeText": "Restrictions",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"RestrictionTypeID"
			],
			"columnCaptions": [
				""
			],
			"sort": "RestrictionTypeID",
			"entityType": "mtlRestriction",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [
				{
					"childBindingId": "mtlSubstance",
					"filter": "PartNum = \\u0027?{PartNum}\\u0027 and RevisionNum = \\u0027?{RevisionNum}\\u0027 and AltMethod = \\u0027?{AltMethod}\\u0027 and MtlSeq = ?{MtlSeq} and RestrictionTypeID = ?{RestrictionTypeID}",
					"isRecursiveHeader": false
				}
			],
			"droppableEntities": [],
			"iconRules": []
		},
		{
			"id": "mtlSubstance",
			"epBinding": "ECOMtlRestrictSubstance",
			"titleNodeText": "Substances",
			"skipTitleFirstTime": false,
			"displayColumns": [
				"SubstanceID"
			],
			"columnCaptions": [
				""
			],
			"sort": "SubstanceID",
			"entityType": "mtlSubstance",
			"isDraggable": false,
			"isTopLevel": false,
			"selectOnLoad": false,
			"expandFirstLevel": false,
			"preventExpandAll": false,
			"preventChildExpandAll": false,
			"childBindings": [],
			"droppableEntities": [],
			"iconRules": []
		}
	]
}

After digging throug the JSON files on the server, it looks like the model ID for this is “jobTree”.
Knowing that, I made a button that called the datatree-bindings-set and a text-area control bound to TransView.NewTree.

image

Then, I pasted the JSON from the Rest call (sans the returnObject) into the textarea, changed a few titles, hit the button, and voila.

undefined

It jumps around after clicking which, I’m sure, is a function of the rest of the JSON which I didn’t really dig into too much. You’ll have to do a lot more digging and trial-and-error on your own, but this should at least get you started.

In the wise words of my ancestors before me… #SuperGoodEnough

6 Likes

Its Beautiful Reaction GIF

More like.

sun GIF

1 Like