IDEMPIERE-3942 Implement JoinElement ADN Status
This commit is contained in:
parent
a726ea78ee
commit
f61ef24e77
|
@ -369,9 +369,23 @@ public class MWFProcess extends X_AD_WF_Process
|
||||||
|
|
||||||
// Start new Activity...
|
// Start new Activity...
|
||||||
MWFActivity activity = new MWFActivity (this, transitions[i].getAD_WF_Next_ID(), lastPO);
|
MWFActivity activity = new MWFActivity (this, transitions[i].getAD_WF_Next_ID(), lastPO);
|
||||||
|
/**
|
||||||
|
* IDEMPIERE-3942
|
||||||
|
* Implement JoinElement AND Status
|
||||||
|
*/
|
||||||
|
if(MWFNode.JOINELEMENT_AND.equals(activity.getNode().getJoinElement()))
|
||||||
|
{
|
||||||
|
if(!isJoinElementANDProcessed(activity))
|
||||||
|
{
|
||||||
|
activity.delete(true, get_TrxName());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
activity.set_TrxName(trxName);
|
activity.set_TrxName(trxName);
|
||||||
activity.run();
|
activity.run();
|
||||||
|
|
||||||
|
|
||||||
// only the first valid if XOR
|
// only the first valid if XOR
|
||||||
if (MWFNode.SPLITELEMENT_XOR.equals(split))
|
if (MWFNode.SPLITELEMENT_XOR.equals(split))
|
||||||
return true;
|
return true;
|
||||||
|
@ -379,6 +393,34 @@ public class MWFProcess extends X_AD_WF_Process
|
||||||
return true;
|
return true;
|
||||||
} // startNext
|
} // startNext
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IDEMPIERE-3942
|
||||||
|
* Implement JoinElement AND Status
|
||||||
|
*/
|
||||||
|
private boolean isJoinElementANDProcessed(MWFActivity activity) {
|
||||||
|
|
||||||
|
|
||||||
|
Query queryNodeNextTest = new Query(Env.getCtx(), MWFNodeNext.Table_Name, "AD_WF_Next_ID = ?", get_TrxName());
|
||||||
|
queryNodeNextTest.setParameters(activity.getAD_WF_Node_ID());
|
||||||
|
List<MWFNodeNext> NodeNexts = queryNodeNextTest.list();
|
||||||
|
for (MWFNodeNext nodeNext : NodeNexts) {
|
||||||
|
|
||||||
|
Query queryMWFActivity = new Query(Env.getCtx(), MWFActivity.Table_Name,
|
||||||
|
"AD_WF_Process_ID = ? AND AD_WF_Node_ID = ? ", get_TrxName());
|
||||||
|
|
||||||
|
Object params[] = { activity.getAD_WF_Process_ID(), nodeNext.getAD_WF_Node_ID() };
|
||||||
|
|
||||||
|
queryMWFActivity.setParameters(params);
|
||||||
|
List<MWFActivity> parentActivitys = queryMWFActivity.list();
|
||||||
|
for (MWFActivity parentActivity : parentActivitys) {
|
||||||
|
if(!parentActivity.isProcessed())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Set Workflow Responsible.
|
* Set Workflow Responsible.
|
||||||
|
|
Loading…
Reference in New Issue