diff --git a/pom.xml b/pom.xml index cd94ae8..587ae67 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.joget.marketplace enhanced-soap-tool bundle - 7.0.3 + 7.0.4 enhanced-soap-tool http://www.joget.org diff --git a/src/main/java/org/joget/marketplace/EnhancedSoapTool.java b/src/main/java/org/joget/marketplace/EnhancedSoapTool.java index 257ae17..a4352a4 100644 --- a/src/main/java/org/joget/marketplace/EnhancedSoapTool.java +++ b/src/main/java/org/joget/marketplace/EnhancedSoapTool.java @@ -199,13 +199,29 @@ private String prepareRequest(Map properties) { private void save(String request, String response, String formDefId, String requestFieldId, String responseFieldId) { AppDefinition appDef = AppUtil.getCurrentAppDefinition(); AppService appService = (AppService) FormUtil.getApplicationContext().getBean("appService"); - FormRowSet rows = new FormRowSet(); + + //Get record Id from process + WorkflowAssignment wfAssignment = (WorkflowAssignment) getProperties().get("workflowAssignment"); + String id = appService.getOriginProcessId(wfAssignment.getProcessId()); + + //Load the original Form Data record FormRow row = new FormRow(); + FormRowSet rowSet = appService.loadFormData(appDef.getAppId(), appDef.getVersion().toString(), formDefId, id); + if (!rowSet.isEmpty()) { + row = rowSet.get(0); + } + row.put(requestFieldId, request); row.put(responseFieldId, response); - rows.add(row); + + if (!rowSet.isEmpty()) { + rowSet.set(0, row); + } else { + rowSet.add(0, row); + } + String tableName = appService.getFormTableName(appDef, formDefId); - appService.storeFormData(formDefId, tableName, rows, null); + appService.storeFormData(formDefId, tableName, rowSet, id); } protected String xmlCall(String wsdlURL, String username, String password, String operationName, Object[] customNamespaces, String xml, String soapAction, boolean debug, boolean useWSS) throws Exception { @@ -343,7 +359,7 @@ public String getDescription() { @Override public String getVersion() { - return "7.0.3"; + return "7.0.4"; } @Override