This document serves as a detailed guide to writing EKL scripts using the PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID and PPRSpreadsheetListPossibleAttributeValues_ID opening IDs.
These opening IDs enable the specification and limitation of attribute values for attributes associated with particular object types in the PPR Spreadsheet.
Introduction
PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues _ID: This BL provides a list of object types and attribute IDs on which the PPRSpreadsheetListPossibleAttributeValues_ID business logic can be executed
PPRSpreadsheetListPossibleAttributeValues_ID: This BL can be used to limit the possible values of an attribute to a predefined set of values.
Note: “PLMAttributesPropagation" BL will not be triggered on the PPR Spreadsheet editor object. You need to use opening ID " PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues _ID " and “PPRSpreadsheetListPossibleAttributeValues_ID” to list possible values for an attribute belonging to an object
Both these BL needs to be implemented where one defines the type and attribute name and second has possible values for that attribute.
Version – 2024x FD04 (FP2432), 2025x FD01 (FP.CFA 2506) and 2026x GA.
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, 2025x and 2026x documentation.
| Opening ID: | PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID |
| Customization intent: | Execution |
| Execution context: | Client |
| Usage | This Opening ID is used to define the object type and attributes on which the PPRSpreadsheetListPossibleAttributeValues_ID business logic can be executed |
| Opening ID: | PPRSpreadsheetListPossibleAttributeValues_ID |
| Customization intent: | Execution |
| Execution context: | Client |
| Usage | This Opening ID is used to provide a list of possible values to edit one attribute |
Understanding the Opening IDs
Both PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID and PPRSpreadsheetListPossibleAttributeValues_ID are critical for defining the list of allowed values for an attribute in the PPR Spreadsheet.
PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID: This opening ID specifies which object types and attributes are allowed to have possible values in the PPR Spreadsheet. It ensures that only certain object types (like
DELLmiGeneralOperationReference) and their associated attributes (likeCustom_TaskType) are used.- PPRSpreadsheetListPossibleAttributeValues_ID : This opening ID controls the list of possible values that can be assigned to an attribute in the PPR Spreadsheet. The script can read external data (e.g., CSV files) to dynamically populate this list.
Example 1: Set Authorized Attribute Value
In some cases, the values for a specific attribute may not be fixed and could change or increase over time. To accommodate such changes and make the process more flexible, it's ideal to read these values from an external file or refer a file on platform database (e.g. Sheet in Resource Set) and populate the dropdown list dynamically in the PPR Spreadsheet.
The below example reads sheet file from Knowledge Resource Set which has various Task Types needed for an operation and this BL will loads them on the attribute “Custom_TaskType” in dropdown when user clicks on this attribute in PPR Spreadsheet
| No | Use Case |
| 1 | Read Knowledge Resource set and set authorized value for Custom_TaskType |
Pre-requisite:
To reference a file placed on platform database we need to:
- Create resource set under Knowledge Resources
Add new resource item and add the sheet resource type and import the file into database and click ok
- Now, save and drag and drop the Resource Table to the appropriate collaborative space. Refer this page
The values for the Custom_TaskType attribute are stored in the input file located in the knowledge resource set of data setup app. The first column of the sheet contains the list of Task Type values for Operations.
Please refer below image for input csv file.
Template CSV Format:
Logical Flow
Business Rule Sample
PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues _ID: This BL provides a list of object types and attribute
PPRSpreadsheetListPossibleAttributeValues_ID : This opening ID controls the list of possible values that can be assigned to an attribute
Detail Explanation
When the user opens a General operation in the PPR Spreadsheet and double clicks on Custom_TaskType, Business Logic (BL) script is triggered.
This BL will populate the dropdown for the Custom_TaskType attribute with authorized values from a resource set file.
Note: The authorized values in the sheet can be updated in the future. If new task types like "Painting" need to be added, the user will modify the sheet, and the dropdown will be updated to reflect these changes
Logic to List Allowed Object Type and Attribute: {PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID}
Let ListObjectTypeNameStr(List)
Let ListAttributeIdStr(List)
/* ---------------------------------------------------------- */
/* Process to provide list of possible values */
/* --------------------------------------------------------- */
ListObjectTypeNameStr->Append("DELLmiGeneralOperationReference")
ListAttributeIdStr->Append("Custom_TaskType")
/*If you wish to add possible values to another attribute then add in the above list*/
/*Example ListAttributeIdStr->Append("V_description")*/
/* --------------------------- */
/* Return Allowed type and attributes which can have Possible Values list */
/* --------------------------- */
Parameters->SetAttributeObject("listOfAllowedtype", ListObjectTypeNameStr)
Parameters->SetAttributeObject("listOfAllowedAttrID", ListAttributeIdStr)
Logic to set Authorized values: {PPRSpreadsheetListPossibleAttributeValues_ID}
if (strAttributeID=="Custom_TaskType")
{
strTaskTypeFileName = "KnowledgeResources|List_of_TaskType" //Knowledge Resource path"
AttributeValueSheet = CreateSheet(strTaskTypeFileName,"")
if (AttributeValueSheet <> NULL)
{
iRow = 1
strLineValue=NULL
for iRow while strLineValue <> ""
{
strLineValue = AttributeValueSheet.CellAsString(iRow, 1) //Get each line value from the sheet
Trace (1,"strLineValue: ",strLineValue)
if(strLineValue<>"")
{
ListAttributePossibleValuesStr->Append(strLineValue) //Append the values in the list
}
iRow = iRow + 1
}
}
}Other Supported DELMIA Types
This BL is associated with fact type ProdSystemOccurrence,
and in the PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues_ID script, the object type DELLmiGeneralOperationReference is used for the variable ListObjectTypeNameStr. This ensures the logic is called only for the General Operation type.
The same Business Logic can be applied to other DELMIA types.
Business Rule Deployment
The below page can be referred for Business Rule deployment.
For deployment using Data Setup app following Resource set ID and opening needs to be used:
Resource Set ID:
Opening:
Reference
Documentation:
List Allowed Object Types (PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues _ID)
List Possible Attribute Values (PPRSpreadsheetListPossibleAttributeValues_ID)
Author
Person of Contact: @Akansha BHASAKHETRE
