Expand Objects using JPO for ENOVIA Objects

You can use a JPO to control the expansion of a structure browser.

Pass the JPO name with the function name to the structure browser component as the URL parameter expandProgram. Assign the parameter value as the JPO name and the JPO method name, separated by a colon, as <JPO Name>:<JPO method Name>.

If you plan to use more than one expansion JPO with the List Filter interface, pass the URL parameter expandProgramMenu with a value of the administrative menu name.

To enable the List Filter, pass the URL parameter expandProgramMenu with a value of administrative menu name. The menu should contain more than one command, with each command setting program and function assigned to the JPO name and the method name. Assign each command to a label, that is displayed as the label in the List Filter pick list. For internationalization, the label can be a string resource key. It must be associated with the Registered Suite setting. The commands connected to the menu honor all the access settings supported by the configurable component (such as Access Mask, Access Expression, and Access Program).

If only one command is connected, the system uses the command setting to get the expansion JPO, and it does not display the List Filter.

You can assign the expandProgramMenu parameter to an administrative command. If it is a command name, the system uses the command settings program and function to get the JPO and method name and the List Filter is not shown in the header.

The system provides the JPO with all the necessary input parameters including the objectId. The input and the output from this JPO will be similar to the approach used in standard configurable table to get the object list. The output is a MapList object with a list of HashMaps. Each HashMap object has the keys id and id[connection] with the values of the child object's id and the connecting relationship's id.

You can also pass the URL parameter direction with the value assigned from or to, to filter the objects based on the direction. However, you must be sure to filter the list with the expandProgram approach. Follow one of these strategies:


  • Write the JPO to return the MapList with HashMap objects. Each HashMap must contain an additional key direction assigned to from or to or both.
  • Write the JPO to filter the objects based on the request parameter direction passed in. Return the filtered object list.

For example, for a single root node:

${COMMON_DIR}/
emxIndentedTable.jsp?objectId=14153.763.7771.42626&table=PartsR
eview,PartsReleased&tableLabel=Review,Released&expandProgram=em
xPart:getEBOMs&direction=from&type=type_Part,type_CADDrawing&he
ader=emxEngineeringCentral.part.eBOM&toolbar=EBOMToolbar
${COMMON_DIR}/
emxIndentedTable.jsp?objectId=14153.763.7771.42626&table=PartsR
eview,PartsReleased&tableLabel=Review,Released&expandProgramMen
u=ENCBOMList&direction=from&type=type_Part,type_CADDrawing&head
er=emxEngineeringCentral.part.eBOM&toolbar=EBOMToolbar

For multiple root nodes:

${COMMON_DIR}/
emxIndentedTable.jsp?table=PartsReview&program=ECPart:getMyPart
List&expandProgram=ECPart.getEBOMs&header=emxEngineeringCentral
.part.eBOM&toolbar=EBOMToolbar