Allow Operations To Behave as System (Item to Workplan/System Case)

This document is intended to provide a detailed guide and examples on how to customize a Business Rule for opening id DELMSDAllowOperationAsSystem_ID.

Introduction

When a manufacturing engineer is creating process structure, after creating a scope between the system/workplan and Mfg. Item Structure, he may drag and drop Mfg. Items on various process objects/operations to either create new operations or assign the Mfg. Item to operations.

By default,

  1. After creating a scope link between Mfg. Item Structure and Process structure, when an Mfg. Item is dragged and dropped on a System/Workplan, a loading operation is created under that system/workplan and the Mfg. Item is assigned to that loading operation.
  2. However, if an Mfg. Item is dragged and dropped on any operation, then an implement link is created between the operation and the Mfg. Item.

This behavior can be customized for the operations. The behavior of assigning the Mfg. Item to operation after dragging and dropping can be changed and instead of assigning the Mfg. Item to the operation, child loading operation can be created under the targeted operation and assign the Mfg. Item to that newly created loading operation.

In this document, we will create a custom Business Logic which will change this behavior for the "Header Operations".

After deploying this BL, the behaviors will change as given below:

  1. The behavior for system/workplan will remain as it is.
  2. If the Mfg. Item is dragged and dropped on a Header Operation, a new child operation will be created under the header operation and the corresponding Mfg. Item will be assigned to that new child operation. The type of the child operation created depends on the type of Mfg. Item dragged and dropped. The details are given below:
Sr. NoType of the Mfg. Item Dragged on an OperationThe type of child Operation created as a result
1Provided Part, Manufactured Material, Manufactured Part, Manufacturing AssemblyLoading Operation
2Transform, Manufacturing KitGeneral Operation
3FastenPoint Fastening Operation
4Pre Drill, Drill, No Drill, Cut, Grind, BevelRemove Material Operation
  1. In the example BL, by default, for operations other than Header Operation the behavior will remain as it is. An Mfg. Item will be assigned (Implement Link will be created) to the operation after it is dragged and dropped on the operation.

However, if needed, one can customize the BL to change the behavior for any other type of operation as well. Details are explained in the "How to customize the BL?" section.

Version – 2022x FD06 (FP2250), 2023x FD04 (FP2333), 2024x FD04 (FP2332), 2025x GA & 2026 GA

Pre-requisites:

Licenses –

  • PPL (Process Engineer): required to create Mfg. Assembly and Process objects.

Disclaimer: Licenses mentioned above are as per 2022x, 2023x, 2024x, 2025x and 2026x documentation.

PLM Opening IDDELMSDAllowOperationAsSystem_ID
Customization IntentExecution
Execution ContextClient
UsageSet the operations to behave as a system in the drag and drop of Mfg. Item scenario. This will allow to create children operation under the target operation.

Example: Allow “Header Operation” to perform as System after Dragging and Dropping an Mfg. Item on it.

Here, a custom business rule “DELMSDAllowOperationAsSystem_ID.CATRule” is created to change the behaviors of "Header Operation" and set it to work like a system when an Mfg. Item is dragged and dropped on it.

Logical Flow:

Example Business Rules:

DELMSDAllowOperationAsSystem_ID.CATRule

​​​​​​​

DELMSDAllowOperationAsSystem_ID.CATRuleExit

 

DELMSDAllowOperationAsSystem_ID.zip

Detailed Explanation of the Scenario

Let us consider a PPR Structure as given below.

Here, the “Workplan A” is scoped to the “Mfg_Asm A” with “Scope link”.


Now, we will test the scenario before and after deploying the BL.

OOTB behavior (Before deploying the BL)

By default, after dragging and dropping and Mfg. Item on it, System and operations shows different behaviors. Here, we will see the OOTB/default behavior for Systems/Workplans and the Operation one by one.

Note: In order to make the drag and drop functionality work for the Systems/Operation, one need to switch to the Process Planning application.

  •  Testing the default behavior for System/Workplan:

First, we will drag and drop the “3D Part 1 A” Provided Part on the “Workplan A”.

After we drag and drop the “3D Part 1 A” Provided Part on the “Workplan A”, then an loading operation will be created under the “Workplan A”.
 

If we check using assignment manager, we can observe that the “3D Part 1 A” is assigned to the Loading Operation as given below.
 

  • Testing the scenario for an Operation

Now, we will drag and drop the “3D Part 2 A” on the “HDR1” header operation.

After dragging and dropping, no loading operation will be created under the targeted operation and a message will be displayed as given below:
 

If checked using assignment manager, one can observe that the Mfg. Item is assigned directly to the header operation.

Behavior for Header Operation after deploying the BL. 

After deploying the custom BL, the behavior will remain as it is for the Systems/Workplan and operations of type other than “Header Operation”. For the Header Operation, drag and drop of Mfg. Item will result in a new child operation under it and the Mfg. Item will be assigned to the new child operation. The type of child operation created depends on the Mfg. Item of Item dragged and dropped on the operation.


We will take the same fresh data set.

But this time, we will drag and drop the “3D Part 1 A” Mfg. Item on the “HDR1” header operation.

This time, a message will be displayed as given below:
 

An loading operation will be created under the Header operation and also, the “3D Part 1 A” Mfg. Item will be assigned to that loading operation.

Important: The type of the child operation created depends on the type of Mfg. Item dragged and droped. Please refer the table available in the "Introduction" Section for the mapping.

 

For the operations other than Header operation, dragging and dropping of an Mfg. Item will result in creation of implement link and no child operation will be created.

Important: This BL can be customized to make any operation type to behave as a system and allow creation of child operation under it after drag and drop of an Mfg. Item on it. The details are explained in the “How to Customize” section.

Working of the Business Logic

Whenever an Mfg. Item is dragged and dropped on a Process Object (System/Workplan/Operations), the opening id “DELMSDAllowOperationAsSystem_ID” gets invoked.

This opening id has three Context Object Parameters.

Parameter NameTypeIs it to Read/Write?Purpose
InputTargetOccProdSystemOccurrenceReadThis parameter gives the occurrence of the operation on which the Mfg. Item is dragged and dropped.
OperationAsSystemAllowedBooleanWrite

If this parameter is set to “True” then the target operation will behave similar to the systems.

if set to “False”, the implement link will get created between the Operation and the Mfg. Item

OutputMessageStringWriteMessage string to show when the opening id is invoked.

Logic Used:

In this custom BL, logic is written to check if the operation on which the Mfg. Item is dragged and dropped i.e. “InputTargetOcc “ is of type “Header Operation” or not. If the operation is of type “Header Operation”, then the parameter “OperationAsSystemAllowed” is set to “True” otherwise set to "False". 


The script in the BL is well commented and easy to understand.

Logic to decide whether to allow the operation to behave as a system or not:

if ( true == Parameters.HasAttribute("InputTargetOcc") )  //CHECK IF THE PARAMETER HAS THE "InputTargetOcc"  ATTRIBUTE

{
               set TargetToCheck = Parameters.GetAttributeObject("InputTargetOcc") //RETRIEVE THE OCCURRENCE OBJECT OF THE TARGETED OPERATION
               set ProdSystemOpeRef = TargetToCheck.Reference  //RETRIEVE THE REFERENCE OBJECT OF THE TARGETED OPERATION           
               /* ---- MAIN LOGIC ---- */
               if (ProdSystemOpeRef.IsASortOf("DELLmiHeaderOperationReference")) //CONDITION TO CHECK IF THE TYPE OF THE TARGET OPERATION IS "HEADER OPERATION". 
               {
                              // IF THE TYPE OF OPERATION IS AS PER THE CONDITION GIVEN ABOVE, SET THE OPERATION TO BEHAVE AS SYSTEM.

                              OperationAsSystemAllowed = true //SET THE BOOLEAN TO TRUE       
        StatusMessage="Operation allowed as System"  // UPDATE THE STATUS MESSAGE ACCORDINGLY
               }
               else{
                              // IF THE TYPE OF OPERATION IS NOT AS PER THE CONDITION GIVEN ABOVE, DON'T ALLOW THE OPERATION TO BEHAVE AS SYSTEM.
                              OperationAsSystemAllowed = false //SET THE BOOLEAN TO FALSE
                              StatusMessage="Operation not allowed as System"  //UPDATE THE STATUS MESSAGE ACCORDINGLY
               }
               /* ---- END OF MAIN LOGIC  ---- */
}

How to customize the BL?

Customize the BL to support other operation types as system

By default, the BL is customized to allow only “Header Operations” as a system. But, if needed, one can customize the condition set in the BL to support additional types of operations to behave as a system.


The below “if” statement is to check if the operation is of type “Header Operation”.

if (ProdSystemOpeRef.IsASortOf("DELLmiHeaderOperationReference")) //CONDITION TO CHECK IF THE TYPE OF THE TARGET OPERATION IS "HEADER OPERATION". 
{    // IF THE TYPE OF OPERATION IS AS PER THE CONDITION GIVEN ABOVE, SET THE OPERATION TO BEHAVE AS SYSTEM.
     OperationAsSystemAllowed = true //SET THE BOOLEAN TO TRUE    
     StatusMessage="Operation allowed as System"  // UPDATE THE STATUS MESSAGE ACCORDINGLY
}
else{
     // IF THE TYPE OF OPERATION IS NOT AS PER THE CONDITION GIVEN ABOVE, DON'T ALLOW THE OPERATION TO BEHAVE AS SYSTEM.
     OperationAsSystemAllowed = false //SET THE BOOLEAN TO FALSE
     StatusMessage="Operation not allowed as System"  //UPDATE THE STATUS MESSAGE ACCORDINGLY
}
  • One can add any other type of operation in the condition of the “if” statement using “or”.

For example, to make both “Header Operation” and “General Operation” behave as system, the condition will be as given below:

if (ProdSystemOpeRef.IsASortOf("DELLmiHeaderOperationReference") or ProdSystemOpeRef.IsASortOf("DELLmiGeneralOperationReference")) //CONDITION TO CHECK IF THE TYPE OF THE TARGET OPERATION IS "HEADER OPERATION" OR “GENERAL OPERATION. 
  • One can replace the “Header Operation” from the condition with any other operation type, if only single type of operation needs to be set to behave as a system.

For example, to make only "General operationS" to behave as system, the condition will be:

if (ProdSystemOpeRef.IsASortOf("DELLmiGeneralOperationReference")) //CONDITION TO CHECK IF THE TYPE OF THE TARGET OPERATION IS “GENERAL OPERATION". 

Business Rule Deployment

You may refer the below page for Business Rule deployment.

How to Deploy Business Rule​​​​​​​

For deployment using Data Setup app following Resource set ID and opening needs to be used:

Resource Set ID:

Opening ID:

References

Authors

Author: @KA ​​​​​​​