Replace by Proposal (DELPPRReplaceByProposal_ID)

An opening ID is an entry point used to customize business logic. Replace by Proposal specifies the opening ID run to obtain the list of replacements to be displayed in the Proposal panel on launching the Replace by Proposal command.

Note: For more information about customization by business rules, see Installation and Setup: Customize: Behavior: Data Setup: Customization by Business Rules.

This page discusses:

General Information

The table below provides you with information related to the definition of the opening ID.

PLM Opening ID DELPPRReplaceByProposal_ID
Customization intent Execution
Execution context Client

Input Objects

Input objects must be of the following types:

  • ThisObject: Item, or system, or operation occurrence.
  • Parameters: corresponds to the context object.

Context Object Parameters

Parameter Name Type Read/Write Comments
OutputListObjectRef List Write List of object references to be displayed in the Proposal panel.

Sample

In this sample, the alternate processes are displayed in the Proposal panel after launching the Replace by Proposal command on an Item. The selected Item should already have the alternate process defined.

/* -- BL returns the list of alternate process reference for a selected Process Occurrence -- */
Let MyMBOMOcc(MfgProcessOccurrence)
let MyInputMBOMRef(DELFmiFunctionReference)
let FROMProcessRef(DELFmiFunctionReference)
let TOProcessRef(DELFmiFunctionReference)
let ListOfAlternateRelShip(list)
let NbRelship(integer)
let NbMBOM(integer)
let CurAlternateRel(MfgProcessAlternate)
let ii(integer)
let ListOfChildren(list)
let OutputList(list)
set MyMBOMOcc = ThisObject
set MyInputMBOMRef=MyMBOMOcc.Reference
if (MyInputMBOMRef <> NULL)
{    
    ListOfAlternateRelShip = MyInputMBOMRef.GetRelatedProcessesFromAlternate()
	NbRelship = ListOfAlternateRelShip.Size()    
	ii = 1
	for ii while ii <=  NbRelship
	{
		set CurAlternateRel=ListOfAlternateRelShip.GetItem(ii)
		set FROMProcessRef = CurAlternateRel.Owner        
		OutputList.Append(FROMProcessRef)        
	}    
	ListOfAlternateRelShip = MyInputMBOMRef.ListAlternateProcesses()
	NbRelship = ListOfAlternateRelShip.Size()
	ii = 1
	for ii while ii <=  NbRelship
	{
		set CurAlternateRel=ListOfAlternateRelShip.GetItem(ii)
		set ListOfChildren = CurAlternateRel.Children        
		set NbMBOM = ListOfChildren.Size()        
		if (NbMBOM == 1)
		{
			set TOProcessRef = ListOfChildren.GetItem(1)            
			OutputList.Append(TOProcessRef)            
		}
	}
}
OutputList.RemoveDuplicates()
 
/* Output*/
Parameters.SetAttributeObject("OutputListObjectRef" , OutputList)