Authorize Drag and Drop of PPR Object Type in Planning Applications

This document is intended to provide a detailed guide and examples about how to write an EKL Script with opening id 'DELMIA_DragDrop_Authorization_ID'

Introduction

This opening ID is triggered when a PPR object is dropped onto another PPR object. It allows customization of the desired behavior for drag and drop actions within the application, specifically determining whether the drop should be allowed.

Version – 2024x FD04 (FP2432),2025x FD01 (FP.CFA 2506)

Pre-requisites:

Licenses

  • PPL (Process Engineer): Required to create Mfg. Item Structure, Process objects and Work Instructions

Disclaimer: Licenses mentioned above are as per 2024x documentation.

Opening ID:DELMIA_DragDrop_Authorization_ID
Customization intent:Execution
Execution context:Client
UsageTo customize the behavior when dropping a PPR object on another PPR object: 

Example:

Below use cases define specific rules for drag and drop behavior within the application, ensuring that only the appropriate items are dropped in the respective operations. To achieve this, we need to customize the BL opening Id “DELMIA_DragDrop_Authorization_ID”

No Use Case
1Only "RemoveMaterial" items can be dropped on Remove Material operation.
2Only "Fasten" items can be drag and dropped to Fastening operations
3Neither "RemoveMaterial" nor "Transform" items can be dropped to the Loading operation

Logical Flow:

Business Rule Sample:

Detail Explanation:

  • Inputs:

    • iLstSourceOccurrences: A list of source occurrences that are being dragged.

    • iTargetOccurrence: The target occurrence where the drag and drop action is being attempted.

    • iWorkbenchName: The name of the workbench [This is not used directly in the example but can be used to restrict drag and drop in particular application]

  • Outputs:

    • oIsAuthorized: A Boolean that determines whether the drag and drop action is allowed.

    • oMessage: A message providing information if the action is not authorized.

      If any rule for drag and drop is violated, oIsAuthorized is set to false and a corresponding message is set for the user.

Sample MBOM and Workplan DataSet:

 

Note: Remove Material Item type consist of Pre-Drill, Drill, No-Drill, Cut, Bevel, Grind Item Type.

 

Scenario1:

Drag Drill Item Type to RemoveMaterial Operation

  • Result: Assignment will be successful.

Drag Fasten Item to RemoveMaterial Operation

  • Result: Error message and assignment will fail. It triggers the error message:

 

In the Relations tab, you can see only Drill Item assigned to Remove Material Operation

 

Logic to authorize Drag and Drop of Remove Material Item Type to Remove Material Operation:

if ((CurrentSourceRef.IsSupporting("RemoveMaterial") == false) and (TargetReference.IsSupporting("DELLmiRemoveMaterialOperationReference")) )
       {
            oIsAuthorized = false
            oMessage="Type not supported for Drag and Drop on Remove Material operation"
            break
       }

 

Scenario2: 

Drag Fasten Item to Point Fastening Operation

  • Result: Assignment will be successful.  The script allows "Fasten" items to be assigned to Point Fastening operation.

Drag “Valve” Provide Item type to Point Fastening Operation

  • Result: Error message and assignment will fail. An error message will be triggered 

 

In the Relations tab, you can see only Fasten Item assigned to  Operation

 

Logic to authorize Drag and Drop of Fasten Item Type to Fastening Operation:

if ((CurrentSourceRef.IsSupporting("Fasten") == false) and (TargetReference.IsSupporting("DELLmiCurveOperationReference")  OR TargetReference.IsSupporting("DELLmiPunctualOperationReference") ) )
     {
          oIsAuthorized = false
          oMessage="Type not supported for Drag and Drop on Fastening operation"
          break
     }

 

Scenario3:

Drag Transform Item to Loading Operation

  • Result: Error message and assignment will fail. Since the item is of type "Transform," the drop will fail, and the error message will be:

 

Drag Provide Item to Loading Operation

  • Result: Assignment will be successful.

In the Relations tab, you can see only Provide Item assigned to Operation

 

Logic to restrict Drag and Drop of Transform/Remove Material Item Type to Loading Operation:

if ((CurrentSourceRef.IsSupporting("RemoveMaterial") OR CurrentSourceRef.IsSupporting("Transform")) and (TargetReference.IsSupporting("DELLmiLoadingOperationReference")))
               {
                   oIsAuthorized = false
                   oMessage="Type not supported for Drag and Drop on Loading operation "
                   break
               }

 

Other Supported DELMIA Types

When we associate this BL with type ‘DELLmiLoadingOperationReference’ the BL gets invoked on Loading Operation. 

The same Business Logic can be applied to other DELMIA types

Similarly, one can use below type in script for customization

  • ‘DELFmiFunctionReference’ for Mfg Items types and their subtypes

  • ‘DELLmiGeneralSystemReference’ for General system 

  • ‘DELWkiInstructionReference’ for Work Instruction

  • ‘VPMReference’ for different Resource types and Engineering items (Products/ parts)

In the example, we have used

FactTypeTo Invoke On 
DELLmiLoadingOperationReferenceLoading operation
DELLmiCurveOperationReferenceCurve Fastening operation
DELLmiPunctualOperationReferencePoint Fastening operation
DELLmiRemoveMaterialOperationReferenceRemove Material operation

Business Rule Deployment:

The below page can be referred 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:

Reference:

Documentation: Authorize Drag and Drop In Planning Applications (DELMIA_DragDrop_Authorization_ID)

Author:

Person Of Contact: @Akansha BHASAKHETRE