Hello Gurus.
I am trying to retrieve the global Process variables of a Change Notice from a Change Activity.
Running the code below I get the following error:
CA is 07138
CN is 06489
Reference is wt.change2.WTChangeOrder2>671258721
Object is wt.change2.WTChangeOrder2:671258722
qrWfProc wt.fc.QueryResult@5039f4d3
WARNING: The ManagerService is not initialized! This can be caused by:
1) Attempting to invoke a server only method from a remote client
2) Attempting to invoke a method on a service from the constructor or static initializer of another service
Exception in thread "main" java.lang.ExceptionInInitializerError
at wt.workflow.engine.WfProcess.getName(WfProcess.java:1425)
at wt.workflow.engine.WfExecutionObject.toString(WfExecutionObject.java:710)
at wt.workflow.engine.WfProcess.toString(WfProcess.java:296)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at ext.ChangeNotice2.main(ChangeNotice2.java:47)
Caused by: java.lang.NullPointerException
at wt.access.AccessControlServerHelper.<clinit>(AccessControlServerHelper.java:77)
... 6 more
The code that I used is:
package ext;
import wt.change2.ChangeHelper2;
import wt.change2.WTChangeActivity2;
import wt.change2.WTChangeOrder2;
import wt.fc.ObjectIdentifier;
import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.fc.ReferenceFactory;
import wt.fc.WTReference;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.util.WTException;
import wt.workflow.engine.WfProcess;
import wt.workflow.engine.WfVariable;
public class ChangeNotice2 implements RemoteAccess {
public static void main(String[] args) throws WTException {
// TODO Auto-generated method stub
RemoteMethodServer rms = RemoteMethodServer.getDefault();
rms.setUserName("wcadmin");
rms.setPassword("wcadmin");
ObjectIdentifier oid = ObjectIdentifier.newObjectIdentifier("wt.change2.WTChangeActivity2:671258847");
WTChangeActivity2 ecaOID = (WTChangeActivity2) PersistenceHelper.manager.refresh(oid);
System.out.println("CA is " + ecaOID.getNumber());
QueryResult qr = ChangeHelper2.service.getChangeOrder(ecaOID);
while (qr.hasMoreElements()) {
Object obj = qr.nextElement();
if (obj instanceof WTChangeOrder2) {
WTChangeOrder2 ecn = (WTChangeOrder2) obj;
System.out.println("CN is " + ecn.getNumber());
ReferenceFactory rf = new ReferenceFactory();
WTReference ref = (WTReference) rf.getReference(ecn);
System.out.println("Reference is " + ref);
System.out.println("Object is " + ref.getObject());
WTChangeOrder2 wtChangeOrder = (WTChangeOrder2) ref.getObject();
QueryResult qrWfProc = wt.workflow.engine.WfEngineHelper.service.getAssociatedProcesses(wtChangeOrder, null, wtChangeOrder.getContainerReference());
System.out.println("qrWfProc " + qrWfProc);
while (qrWfProc.hasMoreElements()) {
WfProcess process = (WfProcess) qrWfProc.nextElement();
System.out.println("Process is " + process);
WfVariable vars[] = process.getContext().getVariableList();
for (WfVariable var : vars) {
System.out.println("Printing Variable " + var.getName() + "---value---" + var.getValue());
}
}
}
}
}
}
Any help will be appreciated
Thanks
Antonio