Do following steps in main-collaboration to call sub-collaboration
1- Create a global variable of type JsubCollabMapInfo to keep track of mapping info of sub-collaboration
JSubCollabMapInfo subCollabMapInfo;
2- Within the executeBusinessRules() method, create a boolean variable that checks sub-collaboration Rule’s success
boolean subCollabSuccess;
3- Add a rule to create mapping info for sub-collaboration and assign it to the variable subCollabMapInfo
subCollabMapInfo = this.jCollabController.createSubCollabMapInfo("crOR_StarPC_ADT_to_QS",this)
where:
crOR_StarPC_AST_to_QS is a sub-collaboration
4- Set sub-collaboration's inbound event type instance
subCollabMapInfo.setInstanceMap("etOR_StarPC_ADT_in",subCollabMapInfo.getParentReferenceETD
("etOR_StarPC_ADT_in"

,getetOR_StarPC_ADT_PID_PV1_in().rawInput(),null)
where:
etOR_StarPC_ADT_in is an inbound instance name of sub-collaboration
getetOR_StarPC_ADT_PID_PV1_in() returns reference of main-collaboration's inbound instance
5- Set sub-collaboration's outbound event type instance
subCollabMapInfo.setInstanceMap("etOR_StarPC_QS_ADT_out",subCollabMapInfo.getParentReferenceETD("etOR_StarPC_QS_ADT_out"

,null,null)
where:
etOR_StarPC_QS_ADT_out is an outbound instance name of sub-collaboration
6- Invoke the sub-collaboration rule and assign a value to the subCollabSuccess
subCollabSuccess = this.jCollabController.invoke(subCollabMapInfo);
7- Copy data returned by sub-collaboration rule to GenericOutEvent
getetGeneric_out().setPayload(STCTypeConverter.toString(subCollabMapInfo.getOutputData("etOR_StarPC_QS_ADT_out"

))
hope this will help you...
meenasar.