Add list of possible values for an attribute in PPR Spreadsheet

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
UsageThis 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
UsageThis 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.

  1. 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 (like Custom_TaskType) are used.

     

  2. 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
1Read 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.

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: 

List Allowed Object Types (PPRSpreadsheetCheckObjectTypeAllowedForPossibleAttributeValues _ID)

List Possible Attribute Values (PPRSpreadsheetListPossibleAttributeValues_ID)

 

Author

Person of Contact: @Akansha BHASAKHETRE