IBM Content Manager, Version 8.5      Supports:  Oracle, DB2, C++, Java

Defining a new collection point

A collection point is a work node that enforces document availability as the completion criteria (specifically applicable to routing folders). In a collection point, you can specify the requirements to meet before the process can resume or advance past a place in the system.

Alternatively, you can call continueProcess to force a work package to move out of the collection point without satisfying the document availability requirements.

Example: Java™

// Create a new Work Node Object. This will be 
//the collection point
DKWorkNodeICM collectionPoint = new DKWorkNodeICM();

// Choose a Name with 15 characters or less.
collectionPoint.setName("S_gatherAll");

// Choose a Description for more information than the name.
collectionPoint.setDescription("Gather Claim,Police 
Report,Policy,& Photos"); 

// Sets the value of the maximum time that an
// item can spend at this work node (in minutes).
 collectionPoint.setTimeLimit(100);
// Specify the threshold that activates overload user 
// exit routine when the number of work packages at this node 
// is greater than the threshold.
// Note that the number of workpackages at this worknode 
// is not limited to the threshold.
collectionPoint.setOverloadLimit(200);
collectionPoint.setOverloadUserDll
("C:\\USEREXIT\\exitOverload.dll");
collectionPoint.setOverloadUserFunction("callOverload");
// Set the type of node to be a collection point.
collectionPoint.setType(1); 
// Create the "Resume" List, which is the list of document types 
//that the process must  wait for before moving on to the next node.
//A list will be created to  hold "resume entries" 
//which are descriptions
//of requirements that must be met before the process can move on.
// Create a List/Collection to hold all Resume Entries.
dkCollection resumeList = new DKSequentialCollection();
// Create as many requirements, or "Resume List Entries", which
//specify what Item Types it must wait for.  The process cannot 
//pass this collection point unless the specified number of Item 
//(DDO) of the specified Item Type reaches this collection point.                
DKCollectionResumeListEntryICM resumeRequirement = new
     DKCollectionResumeListEntryICM();  
// Set the Item Type Name Folder Item that is being routed.
resumeRequirement.setFolderItemTypeName("S_simple");
// Make the collection wait for an Item of 
//the specified Item Type
//to be added to the folder before proceeding.
resumeRequirement.setRequiredItemTypeName("S_autoClaim");
// Specify the number of Items of the specified  
//Item Type that it must wait for.
resumeRequirement.setQuantityNeeded(1); 
// Add the requirement (Entry) to the List of 
//Requirements (Resume List).
resumeList.addElement(resumeRequirement); 
resumeRequirement = new DKCollectionResumeListEntryICM();
resumeRequirement.setFolderItemTypeName("S_simple");
resumeRequirement.setRequiredItemTypeName("S_policeReport");
resumeRequirement.setQuantityNeeded(1);
// When all requirements (resume list entries) 
//have been added to the
//list of requirements (resume list),set the resume  
//list in the collection point.
collectionPoint.setCollectionResumeList(resumeList);    
// Add the new collection point definition to
// the document routing
// managment object
routingMgmt.add(collectionPoint);

Example: C++

// Create a new Work Node Object. This will be the collection point
DKWorkNodeICM* collectionPoint = new DKWorkNodeICM();   
// Choose a Name with 15 characters or less.
collectionPoint->setName("GatherOrderDetails");
// Choose a Description for more information than the name.
collectionPoint->setDescription("Gather all the information 
related to the order, shipping mechanism and shipping address");
// Sets the value of the maximum time that an item  
//can spend at this work node (in minutes).
 collectionPoint->setTimeLimit(100);

// Specify the threshold that activates overload user 
// exit routine when the number of work packages at this node 
// is greater than the threshold.
// Note that the number of workpackages at this worknode 
// is not limited to the threshold.
collectionPoint->setOverloadLimit(200);
collectionPoint->setOverloadUserDll
("C:\\USEREXIT\\exitOverload.dll");
collectionPoint->setOverloadUserFunction("callOverload");

// Set the type of node to be a collection point.
collectionPoint->setType(1);
// Create the "Resume" List, which is the list of document types
//that the process must  wait for before moving on to the next node.
//A list will be created to  hold "resume entries" which are descriptions
//of requirements that must be met before the process might move on.
// Create a List / Collection to hold all Resume Entries.
dkCollection* resumeList = new DKSequentialCollection();  
// Create as many requirements, or "Resume List Entries", which specify 
//what Item Types it must wait for. The process cannot pass this
//collectionpoint unless the specified number of Item (DDO) of the
//specified Item Type reaches this collection point.  
 DKCollectionResumeListEntryICM* resumeRequirement = new
    DKCollectionResumeListEntryICM();  
// Set the Item Type Name Folder Item that is being routed.
resumeRequirement->setFolderItemTypeName("book"); 
 
// Make the collection wait for an Item of the specified Item Type to
//be added to the folder before proceeding.
resumeRequirement->setRequiredItemTypeName("AnItemType");

//Specify the number of Items of the specified Item Type that 
//it must wait for.
resumeRequirement->setQuantityNeeded(1);
 
// Add the requirement (Entry) to List of Requirements (Resume List).
resumeList->addElement(resumeRequirement); 
resumeRequirement = new DKCollectionResumeListEntryICM();
resumeRequirement->setFolderItemTypeName("book");
resumeRequirement->setRequiredItemTypeName("AnotherItemType");
resumeRequirement->setQuantityNeeded(1);
resumeList->addElement(resumeRequirement);

// continued...
  
// When all requirements (resume list entries) have been added to 
//the list of requirements (resume list), set the resume list in the 
//collection point.
collectionPoint->setCollectionResumeList(resumeList);
// Add the new collection point definition to the document routing 
// managment object
routingMgmt->add(collectionPoint);

//Free the memory associated with this collection point
/ Note that the resumeRequirement collection becomes
// a part of the collectionPoint object once the 
// affinity between those two objects 
// are established. Deleting the collectionPoint object cleans up 
// memory allocated for resumeRequirement object.
delete(collectionPoint);

For more information about defining collection points, refer to the SDocRoutingDefinitionCreationICM sample.



Feedback

Last updated: December 2013
dcmar002.htm

© Copyright IBM Corporation 2013.