diff options
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle')
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java | 1 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/instance/Activity.java | 41 |
2 files changed, 23 insertions, 19 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java index 7d88ea9..176f22e 100644 --- a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java +++ b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java @@ -16,7 +16,6 @@ public class WfCastorHashMap extends CastorHashMap put(StateMachine.SKIPPABLE, new Boolean(true));
put(StateMachine.REPEATABLE, new Boolean(true));
put(StateMachine.IGNORABLE, new Boolean(false));
- put("AlwaysUseOutcome", new Boolean(false));
put("Viewpoint", "");
put("Show time", new Boolean(true));
put("Description", "");
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index 8d92522..8dc6b9d 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -543,26 +543,28 @@ public class Activity extends WfVertex } /**
* Stores the request data as an outcome of the Item It does a great deal of storing outcomes in different configuration
*/ //requestdata is xmlstring
- private String storeOutcome(int eventID, String requestData)
+ private String storeOutcome(int eventID, String requestData, boolean isError) throws InvalidDataException
{
EntityPath entityPath = getItemEntityPath();
if (entityPath != null)
{
- String schemaType = (String) getProperties().get("SchemaType");
- if (schemaType == null || schemaType.length() == 0) // no
- // outcome
- // required
- return null;
- int schemaVersion = 0;
- String versionString = (String) getProperties().get("SchemaVersion");
- try
- {
- schemaVersion = Integer.parseInt(versionString);
+ String schemaType; int schemaVersion;
+ if (isError) {
+ schemaType="Errors";
+ schemaVersion=0;
}
- catch (Exception e)
- {
- Logger.error("Activity.storeOutcome() - invalid schemaVersion " + versionString);
+ else {
+ schemaType = (String) getProperties().get("SchemaType");
+ if (schemaType == null || schemaType.length() == 0) return null;
+ String versionString = (String) getProperties().get("SchemaVersion");
+ try
+ {
+ schemaVersion = Integer.parseInt(versionString);
+ } catch (Exception e) {
+ throw new InvalidDataException("Activity.storeOutcome() - invalid schemaVersion " + versionString, "");
+ }
}
+
Logger.msg(5, "Activity::storeOutcome() - type:" + schemaType + " version:" + schemaVersion);
try
{
@@ -588,16 +590,19 @@ public class Activity extends WfVertex }
else
return null;
- } /** the method to be called by the requestAction() method */
- public void sendEventStoreOutcome(int transitionID, String requestData, AgentPath agent)
+ }
+
+ /** the method to be called by the requestAction() method
+ * @throws InvalidDataException */
+ public void sendEventStoreOutcome(int transitionID, String requestData, AgentPath agent) throws InvalidDataException
{
int eventID = -1;
Event event = null;
event = auditEvent(transitionID, agent);
if (event != null)
eventID = event.getID();
- if (transitionID == Transitions.DONE || transitionID == Transitions.COMPLETE)
- storeOutcome(eventID, requestData);
+ if ((transitionID == Transitions.DONE || transitionID == Transitions.COMPLETE || transitionID == Transitions.SUSPEND) && requestData != null && requestData.length() > 0)
+ storeOutcome(eventID, requestData, transitionID == Transitions.SUSPEND);
EntityPath entityPath = getItemEntityPath();
TransactionManager storage = Gateway.getStorage();
if (entityPath != null)
|
