Author: jonesde
Date: Tue Sep 4 17:26:20 2007
New Revision: 572843
URL: http://svn.apache.org/viewvc?rev=572843&view=rev
Log:
Fixed issues with receive Confirm BOD messages, including putting SHIPREQEUST
in the db instead of SHIPREQES which was put in before to comply with the OAGIS
spec of 10 characters for that field; also issue with including userLogin in
the find OagisMessageInfo query, so cleaned up that code; also renamed
receiveConfirmBod to be like others, oagisReceiveConfirmBod
Modified:
ofbiz/trunk/specialpurpose/oagis/entitydef/entitymodel.xml
ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/controller.xml
Modified: ofbiz/trunk/specialpurpose/oagis/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/entitydef/entitymodel.xml?rev=572843&r1=572842&r2=572843&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/specialpurpose/oagis/entitydef/entitymodel.xml Tue Sep 4
17:26:20 2007
@@ -43,7 +43,7 @@
<entity entity-name="OagisMessageInfo"
package-name="org.ofbiz.specialpurpose.oagis" title="OAGIS Message Info Entity">
<field name="logicalId" type="very-short"><!-- CNTROLAREA -> SENDER ->
LOGICALID; max 10 chars --></field>
<field name="component" type="very-short"><!-- CNTROLAREA -> SENDER ->
COMPONENT; max 10 chars --></field>
- <field name="task" type="short-varchar"><!-- CNTROLAREA -> SENDER ->
TASK; max 10 chars --></field>
+ <field name="task" type="short-varchar"><!-- CNTROLAREA -> SENDER ->
TASK; max 10 chars; note that using short-varchar instead of very-short so we
can have longer fields in the DB --></field>
<field name="referenceId" type="id-long-ne">
<!-- CNTROLAREA -> SENDER -> REFERENCEID; max 40 chars in spec;
for messages sent from OFBiz this will be a
sequenced ID and be unique on its own; for messages from other
systems this may only be unique relative
Modified: ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml?rev=572843&r1=572842&r2=572843&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/oagis/servicedef/services.xml Tue Sep 4
17:26:20 2007
@@ -85,8 +85,8 @@
<attribute name="errorMapList" type="java.util.List" mode="IN"
optional="true"/>
<attribute name="origRefId" type="String" mode="IN" optional="true"/>
</service>
- <service name="receiveConfirmBod" engine="java" transaction-timeout="300"
- location="org.ofbiz.oagis.OagisServices" invoke="receiveConfirmBod"
auth="true">
+ <service name="oagisReceiveConfirmBod" engine="java"
transaction-timeout="300"
+ location="org.ofbiz.oagis.OagisServices"
invoke="oagisReceiveConfirmBod" auth="true">
<description>Process incoming ConfirmBod</description>
<implements service="oagisMessageIdOutInterface"/>
<attribute name="document" type="org.w3c.dom.Document" mode="IN"
optional="false"/>
Modified:
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java?rev=572843&r1=572842&r2=572843&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java
(original)
+++ ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java Tue
Sep 4 17:26:20 2007
@@ -236,7 +236,7 @@
return ServiceUtil.returnSuccess("Service Completed Successfully");
}
- public static Map receiveConfirmBod(DispatchContext ctx, Map context) {
+ public static Map oagisReceiveConfirmBod(DispatchContext ctx, Map context)
{
GenericDelegator delegator = ctx.getDelegator();
LocalDispatcher dispatcher = ctx.getDispatcher();
Document doc = (Document) context.get("document");
@@ -285,11 +285,10 @@
Timestamp receivedTimestamp = UtilDateTime.nowTimestamp();
+ Map omiPkMap = UtilMisc.toMap("logicalId", logicalId, "component",
component, "task", task, "referenceId", referenceId);
+
Map oagisMsgInfoCtx = FastMap.newInstance();
- oagisMsgInfoCtx.put("logicalId", logicalId);
- oagisMsgInfoCtx.put("component", component);
- oagisMsgInfoCtx.put("task", task);
- oagisMsgInfoCtx.put("referenceId", referenceId);
+ oagisMsgInfoCtx.putAll(omiPkMap);
oagisMsgInfoCtx.put("authId", authId);
oagisMsgInfoCtx.put("receivedDate", receivedTimestamp);
oagisMsgInfoCtx.put("sentDate", sentTimestamp);
@@ -321,16 +320,10 @@
}
*/
- Map originalOagisMsgCtx = FastMap.newInstance();
- originalOagisMsgCtx.put("logicalId", dataAreaLogicalId);
- originalOagisMsgCtx.put("component", dataAreaComponent);
- originalOagisMsgCtx.put("task", dataAreaTask);
- originalOagisMsgCtx.put("referenceId", dataAreaReferenceId);
- originalOagisMsgCtx.put("userLogin", userLogin);
-
- GenericValue originalOagisMsgInfo =
delegator.findByPrimaryKey("OagisMessageInfo", originalOagisMsgCtx);
-
List dataAreaConfirmMsgList =
UtilXml.childElementList(dataAreaConfirmElement, "ns:CONFIRMMSG");
+
+ Map originalOmiPkMap = UtilMisc.toMap("logicalId",
dataAreaLogicalId, "component", dataAreaComponent, "task", dataAreaTask,
"referenceId", dataAreaReferenceId);
+ GenericValue originalOagisMsgInfo =
delegator.findByPrimaryKey("OagisMessageInfo", originalOmiPkMap);
if (originalOagisMsgInfo != null) {
Iterator dataAreaConfirmMsgListItr =
dataAreaConfirmMsgList.iterator();
while (dataAreaConfirmMsgListItr.hasNext()) {
@@ -339,10 +332,12 @@
String reasonCode =
UtilXml.childElementValue(dataAreaConfirmMsgElement, "of:REASONCODE");
Map createOagisMessageErrorInfoForOriginal =
FastMap.newInstance();
-
createOagisMessageErrorInfoForOriginal.putAll(originalOagisMsgCtx);
+
createOagisMessageErrorInfoForOriginal.putAll(originalOmiPkMap);
createOagisMessageErrorInfoForOriginal.put("reasonCode",
reasonCode);
createOagisMessageErrorInfoForOriginal.put("description",
description);
+ createOagisMessageErrorInfoForOriginal.put("userLogin",
userLogin);
+ // this will run in the same transaction
Map oagisMsgErrorInfoResult =
dispatcher.runSync("createOagisMessageErrorInfo",
createOagisMessageErrorInfoForOriginal);
if (ServiceUtil.isError(oagisMsgErrorInfoResult)) {
String errMsg = "Error creating OagisMessageErrorInfo:
" + ServiceUtil.getErrorMessage(oagisMsgErrorInfoResult);
@@ -351,18 +346,12 @@
}
}
} else {
- String errMsg = "No such message with an error was found; Not
creating OagisMessageErrorInfo record(s) for original message; ID info: " +
originalOagisMsgCtx;
+ String errMsg = "No such message with an error was found; Not
creating OagisMessageErrorInfo record(s) for original message, but saving info
for this message anyway; ID info: " + omiPkMap;
Debug.logWarning(errMsg, module);
errorMapList.add(UtilMisc.toMap("description", errMsg,
"reasonCode", "OriginalOagisMessageInfoNotFoundError"));
}
// now attach all of the messages to the CBOD OagisMessageInfo
record
- Map cbodOagisMsgInfoBaseCtx = FastMap.newInstance();
- cbodOagisMsgInfoBaseCtx.put("logicalId", logicalId);
- cbodOagisMsgInfoBaseCtx.put("component", component);
- cbodOagisMsgInfoBaseCtx.put("task", task);
- cbodOagisMsgInfoBaseCtx.put("referenceId", referenceId);
- cbodOagisMsgInfoBaseCtx.put("userLogin", userLogin);
Iterator dataAreaConfirmMsgListItr =
dataAreaConfirmMsgList.iterator();
while (dataAreaConfirmMsgListItr.hasNext()) {
Element dataAreaConfirmMsgElement = (Element)
dataAreaConfirmMsgListItr.next();
@@ -370,9 +359,10 @@
String reasonCode =
UtilXml.childElementValue(dataAreaConfirmMsgElement, "of:REASONCODE");
Map createOagisMessageErrorInfoForCbod = FastMap.newInstance();
-
createOagisMessageErrorInfoForCbod.putAll(cbodOagisMsgInfoBaseCtx);
+ createOagisMessageErrorInfoForCbod.putAll(omiPkMap);
createOagisMessageErrorInfoForCbod.put("reasonCode",
reasonCode);
createOagisMessageErrorInfoForCbod.put("description",
description);
+ createOagisMessageErrorInfoForCbod.put("userLogin", userLogin);
// this one will also go in another transaction as the create
service for the base record did too
Map oagisMsgErrorInfoResult =
dispatcher.runSync("createOagisMessageErrorInfo",
createOagisMessageErrorInfoForCbod, 60, true);
@@ -555,10 +545,10 @@
if (bsrVerb.equalsIgnoreCase("CONFIRM") &&
bsrNoun.equalsIgnoreCase("BOD")) {
try {
- // subServiceResult = dispatcher.runSync("receiveConfirmBod",
messageProcessContext);
- dispatcher.runAsync("receiveConfirmBod",
messageProcessContext, true);
+ // subServiceResult =
dispatcher.runSync("oagisReceiveConfirmBod", messageProcessContext);
+ dispatcher.runAsync("oagisReceiveConfirmBod",
messageProcessContext, true);
} catch (GenericServiceException e) {
- String errMsg = "Error running service receiveConfirmBod: " +
e.toString();
+ String errMsg = "Error running service oagisReceiveConfirmBod:
" + e.toString();
errorList.add(UtilMisc.toMap("description", errMsg,
"reasonCode", "GenericServiceException"));
Debug.logError(e, errMsg, module);
}
Modified:
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java?rev=572843&r1=572842&r2=572843&view=diff
==============================================================================
---
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
(original)
+++
ofbiz/trunk/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
Tue Sep 4 17:26:20 2007
@@ -728,7 +728,7 @@
// prepare map to Create Oagis Message Info
comiCtx.put("processingStatusId", "OAGMP_TRIGGERED");
comiCtx.put("component", "INVENTORY");
- comiCtx.put("task", "SHIPREQUES"); // Actual value of task is
"SHIPREQUEST" which is more than 10 char
+ comiCtx.put("task", "SHIPREQUEST"); // Actual value of task is
"SHIPREQUEST" which is more than 10 char, need this in the db so it will match
Confirm BODs, etc
comiCtx.put("outgoingMessage", "Y");
comiCtx.put("confirmation", "1");
comiCtx.put("bsrVerb", "PROCESS");
Modified: ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/controller.xml?rev=572843&r1=572842&r2=572843&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/controller.xml
(original)
+++ ofbiz/trunk/specialpurpose/oagis/webapp/oagis/WEB-INF/controller.xml Tue
Sep 4 17:26:20 2007
@@ -187,9 +187,9 @@
<response name="success" type="none"/>
</request-map>
- <request-map uri="receiveConfirmBod">
+ <request-map uri="oagisReceiveConfirmBod">
<security https="true" auth="false"/>
- <event type="stream" invoke="receiveConfirmBod"/>
+ <event type="stream" invoke="oagisReceiveConfirmBod"/>
<response name="success" type="none"/>
</request-map>