Action Rule for the Naming Rule Command

The action rule enables you to modify the name of the selected products.

This page discusses:

General Information

This action rule is invoked when you click the Naming Rule command.

Input Objects

  • Parameters corresponds to the context object.

In the attribute table, you can check the attributes type and their description.

Properties NameTypeDescription
Material nameAPPLPLM attribute.
Material gradeAPPLPLM attribute
SectionAPPLPLM attribute
ThicknessAPPLPLM attribute
Support nameAPPLThis attribute can be supported on EKL. But it can have an impact on performance.
Project IDCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
BlockCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
UnitCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
Position numberCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
Part sequenceCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
LocationCUSTThis attribute should be set as customer extension or PLM extension. The user can enter the required data for the attribute.
WeightAPPLPLM attribute

Sample

The following example shows how to get the attributes. You can use this example to make another script in the action rule.

/*
PrdOcc = ProductOccurrence
iSddPlate = SddPlate
*/

//the reference of input product occurrence
let iPrdRef(VPMReference)
//the output of string attribute
let sMaterial(String)
let sMaterialName(String)
let sMaterialGrade(String)
let sSection(String)
let sThickness(String)
let sSupportName(String)
let sProjectID(String)
let sWeight(String)
// the output of real attribute
let rThickness(Real)
let rWeight(Real)
//the length of string
let iSize(Integer)
//the index to know devide point
let idx(Integer)

//Get Reference from input product occurrence
iPrdRef=PrdOcc.Reference

//Check reference is exist
if(iPrdRef <> NULL)
{	

	///////////////////////////////////////
	//1.1.1.1 Material Name, Material Grade
	///////////////////////////////////////

	//Check reference has attribute "V_StrMaterial"
	//User can see this "V_StrMaterial" as "Material" in attribute tab
	if(iPrdRef.HasAttribute("V_StrMaterial") == TRUE)
	{
		//If "Material" attribute is exist, get attribute
		sMaterial=iPrdRef.GetAttributeString("V_StrMaterial")
	}
	//Get the length of material string
	iSize=sMaterial.Length()
	// Search material string have " " and get index of devide point
	idx=sMaterial.Search(" ")
	//If there's no " " pattern in string, idx value is -1. So, get material name and grade //in case of success
	if(idx <> -1)
	{
		//Extract starting 0 point to devide point of string
		sMaterialName=sMaterial.Extract(0,idx)
		//Extract devide point to last point of string
		sMaterialGrade=sMaterial.Extract(idx,iSize)
		//Message pops up with the result of Material Name and Material Grade
		Message("Material Name: ", sMaterialName)
		Message("Material Grade: ", sMaterialGrade)
	}
	else
	{
		//If there's no devide point, it need to handle xception handling
		//Message pops up with Material string
		Message("Material: ", sMaterial)
	}

	///////////////////////////////////////
	//1.1.1.2 Section
	///////////////////////////////////////

	//Check reference has attribute "V_StrSection"
	//User can see this "V_StrSection" as "Section" in attribute tab
	if(iPrdRef.HasAttribute("V_StrSection") == TRUE)
	{
		//If "Material" attribute is exist, get attribute
		sMaterial=iPrdRef.GetAttributeString("V_StrSection")
	}
	//Then, user can use “Section” attribute as he wants

	///////////////////////////////////////
	//1.1.1.3 Thickness
	///////////////////////////////////////

	//Check reference has attribute "V_StrThickness"
	//User can see this "V_StrThickness" as "Thickness" in attribute tab
	if(iPrdRef.HasAttribute("V_StrThickness") == TRUE)
	{
		//If "Thickness" attribute is exist, get attribute
		rThickness=iPrdRef.GetAttributeReal("V_StrThickness")
		//Convert real value rThickness to string value sThickness
		sThickness=ToString(rThickness)
	}
	//Then, user can use “Thickness” attribute as he wants

	///////////////////////////////////////
	//1.1.1.4 SupportName
	///////////////////////////////////////

	// If selected element is exist
	if(iSddPlate <> NULL)
	{	
		// Get SupportName attribute from selected SddPlate feature
		sSupportName=iSddPlate.SupportName
	}
	//Then, user can use “SupportName” attribute as he wants

	///////////////////////////////////////
	//1.1.1.5 Project ID
	///////////////////////////////////////

	//Check reference has attribute "Project ID"
	//User can see "Project ID" in attribute tab
	if(iPrdRef.HasAttribute("Project ID") == TRUE)
	{
		//If "Project ID" attribute is exist, get attribute
		sProjectID=iPrdRef.GetAttributeString("Project ID")
	}
	//Then, user can use “Project ID” attribute as he wants

	///////////////////////////////////////
	//1.1.1.6 Block, Unit, PositionNumber, PartSequence, Location
	///////////////////////////////////////

	//User can get these attribute like Project ID example. Just change “Project ID” element to customer extension

	///////////////////////////////////////
	//1.1.1.7 Weight
	///////////////////////////////////////
	// If selected element is exist
	if(iSddPlate <> NULL)
	{	
		// Get Weight attribute from selected SddPlate feature
		rWeight=iSddPlate.Weight
		//Convert real value rThickness to string value sThickness
		sWeight=ToString(rWeight)
	}

}