Merge "Update create flow for E2E service"
diff --git a/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/MsoVnfPluginAdapterImpl.java b/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/MsoVnfPluginAdapterImpl.java
index a817a6b..0b9ffd9 100644
--- a/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/MsoVnfPluginAdapterImpl.java
+++ b/adapters/mso-vnf-adapter/src/main/java/org/openecomp/mso/adapters/vnf/MsoVnfPluginAdapterImpl.java
@@ -381,7 +381,7 @@
 				return Integer.valueOf(inputValue);
 			}
 			catch (Exception e) {
-				LOGGER.debug("Unable to convert " + inputValue + " to an integer!");
+				LOGGER.debug("Unable to convert " + inputValue + " to an integer!" , e);
 				return null;
 			}
 		} else if (type.equalsIgnoreCase("json")) {
@@ -390,7 +390,7 @@
 				return jsonNode;
 			}
 			catch (Exception e) {
-				LOGGER.debug("Unable to convert " + inputValue + " to a JsonNode!");
+				LOGGER.debug("Unable to convert " + inputValue + " to a JsonNode!", e);
 				return null;
 			}
 		} else if (type.equalsIgnoreCase("boolean")) {
@@ -411,28 +411,28 @@
             		String str = "" + stackOutputs.get(key);
             		stringOutputs.put(key, str);
             	} catch (Exception e) {
-            		LOGGER.debug("Unable to add " + key + " to outputs");
+            		LOGGER.debug("Unable to add " + key + " to outputs", e);
             	}
             } else if (stackOutputs.get(key) instanceof JsonNode) {
             	try {
             		String str = this.convertNode((JsonNode) stackOutputs.get(key));
             		stringOutputs.put(key, str);
             	} catch (Exception e) {
-            		LOGGER.debug("Unable to add " + key + " to outputs - exception converting JsonNode");
+            		LOGGER.debug("Unable to add " + key + " to outputs - exception converting JsonNode", e);
             	}
             } else if (stackOutputs.get(key) instanceof java.util.LinkedHashMap) {
             	try {
 					String str = JSON_MAPPER.writeValueAsString(stackOutputs.get(key));
             		stringOutputs.put(key, str);
             	} catch (Exception e) {
-            		LOGGER.debug("Unable to add " + key + " to outputs - exception converting LinkedHashMap");
+            		LOGGER.debug("Unable to add " + key + " to outputs - exception converting LinkedHashMap", e);
             	}
             } else {
             	try {
             		String str = stackOutputs.get(key).toString();
             		stringOutputs.put(key, str);
             	} catch (Exception e) {
-            		LOGGER.debug("Unable to add " + key + " to outputs - unable to call .toString() " + e.getMessage());
+            		LOGGER.debug("Unable to add " + key + " to outputs - unable to call .toString() " + e.getMessage(), e);
             	}
             }
         }
@@ -510,7 +510,7 @@
                         String str = this.convertNode((JsonNode) obj);
                         stringMap.put(key, str);
                     } catch (Exception e) {
-						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for JsonNode "+ key);
+						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for JsonNode "+ key, e);
                         //okay in this instance - only string values (fqdn) are expected to be needed
                     }
                 } else if (obj instanceof java.util.LinkedHashMap) {
@@ -519,21 +519,21 @@
                         String str = JSON_MAPPER.writeValueAsString(obj);
                         stringMap.put(key, str);
                     } catch (Exception e) {
-						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for LinkedHashMap "+ key);
+						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for LinkedHashMap "+ key, e);
 					}
 				}  else if (obj instanceof Integer) {
 					try {
 						String str = "" + obj;
 						stringMap.put(key, str);
 					} catch (Exception e) {
-						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for Integer "+ key);
+						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value for Integer "+ key, e);
                     }
                 } else {
                     try {
 						String str = obj.toString();
                         stringMap.put(key, str);
                     } catch (Exception e) {
-						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value "+ key + " (" + e.getMessage() + ")");
+						LOGGER.debug("DANGER WILL ROBINSON: unable to convert value "+ key + " (" + e.getMessage() + ")", e);
                     }
                 }
             }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
index 98a1a43..d44de7c 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
@@ -316,7 +316,7 @@
         utils.log("INFO"," *** Exit postProcessAAIGET *** ", isDebugEnabled)
     }
 
-   public void getCurrentNS(execution){
+   public void getCurrentNS(DelegateExecution execution){
        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")   
        utils.log("INFO", "======== Start getCurrentNS Process ======== ", isDebugEnabled)    
        
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
index 6e19a34..63ecb45 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
@@ -43,8 +43,6 @@
 import org.openecomp.mso.bpmn.infrastructure.properties.BPMNProperties
 
 import static org.apache.commons.lang3.StringUtils.isBlank
-import static org.apache.commons.lang3.StringUtils.isBlank
-
 
 /**
  * input for script :
@@ -144,7 +142,7 @@
         utils.log("INFO"," ***** Exit preProcessRequest *****",  isDebugEnabled)
     }
 
-    public void sequenceResource(execution){
+    public void sequenceResource(DelegateExecution execution){
         def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
 
         utils.log("INFO", " ======== STARTED sequenceResource Process ======== ", isDebugEnabled)
@@ -175,6 +173,7 @@
             //this is defaule sequence
             List<VnfResource> vnfResourceList = new ArrayList<VnfResource>()
             List<AllottedResource> arResourceList = new ArrayList<AllottedResource>()
+			List<NetworkResource> networkResourceList = new ArrayList<NetworkResource>()
 
             for (Resource rc : delResourceList) {
                 if (rc instanceof VnfResource) {
@@ -203,7 +202,7 @@
     /**
      * prepare delete parameters
      */
-    public void preResourceDelete(execution, resourceName){
+    public void preResourceDelete(DelegateExecution execution, String resourceName){
 
         def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
 
@@ -230,7 +229,7 @@
     /**
      * Execute delete workflow for resource
      */
-    public void executeResourceDelete(execution, resourceName) {
+    public void executeResourceDelete(DelegateExecution execution, String resourceName) {
         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
         utils.log("INFO", "======== Start executeResourceDelete Process ======== ", isDebugEnabled)
         String requestId = execution.getVariable("msoRequestId")
@@ -266,7 +265,7 @@
     }
 
 
-    public void parseNextResource(execution){
+    public void parseNextResource(DelegateExecution execution){
         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
         utils.log("INFO", "======== Start parseNextResource Process ======== ", isDebugEnabled)
         def currentIndex = execution.getVariable("currentResourceIndex")
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
index 9540508..38fb225 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
@@ -58,24 +58,21 @@
  * Inputs:

  * @param - msoRequestId

  * @param - globalSubscriberId

- * @param - subscriptionServiceType

+ * @param - serviceType

  * @param - serviceInstanceId

- * @param - serviceInstanceName - O

+ * @param - serviceInstanceName

  * @param - serviceModelInfo

  * @param - productFamilyId

- * @param - disableRollback

- * @param - failExists - TODO

- * @param - serviceInputParams (should contain aic_zone for serviceTypes TRANSPORT,ATM)

- * @param - sdncVersion ("1610")

- * @param - serviceDecomposition - Decomposition for R1710 

- * (if macro provides serviceDecompsition then serviceModelInfo, serviceInstanceId & serviceInstanceName will be ignored)

- *

+ * @param - uuiRequest

+ * @param - serviceDecomposition_Target

+ * @param - serviceDecomposition_Original

+ * @param - addResourceList

+ * @param - delResourceList

+ * 

  * Outputs:

  * @param - rollbackData (localRB->null)

  * @param - rolledBack (no localRB->null, localRB F->false, localRB S->true)

  * @param - WorkflowException

- * @param - serviceInstanceName - (GET from AAI if null in input)

- *

  */

 public class DoUpdateE2EServiceInstance extends AbstractServiceTaskProcessor {

 

@@ -87,24 +84,22 @@
 

 	public void preProcessRequest (DelegateExecution execution) {

 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

-		

-		def method = getClass().getSimpleName() + '.preProcessRequest(' +'execution=' + execution.getId() +')'		

-		utils.log("INFO","Entered " + method, isDebugEnabled)

-		String msg = ""

 		utils.log("INFO"," ***** Enter DoUpdateE2EServiceInstance preProcessRequest *****",  isDebugEnabled)

+		

+		String msg = ""	

 

 		try {

 			execution.setVariable("prefix", Prefix)

 			//Inputs

-			//requestDetails.subscriberInfo. for AAI GET & PUT & SDNC assignToplology

+			//for AAI GET & PUT & SDNC assignToplology

 			String globalSubscriberId = execution.getVariable("globalSubscriberId") //globalCustomerId

 			utils.log("INFO"," ***** globalSubscriberId *****" + globalSubscriberId,  isDebugEnabled)

 			

-			//requestDetails.requestParameters. for AAI PUT & SDNC assignTopology

+			//for AAI PUT & SDNC assignTopology

 			String serviceType = execution.getVariable("serviceType")

 			utils.log("INFO"," ***** serviceType *****" + serviceType,  isDebugEnabled)

 			

-			//requestDetails.requestParameters. for SDNC assignTopology

+			//for SDNC assignTopology

 			String productFamilyId = execution.getVariable("productFamilyId") //AAI productFamilyId

 

 			if (isBlank(globalSubscriberId)) {

@@ -126,31 +121,12 @@
 				utils.log("INFO", msg, isDebugEnabled)

 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)

 			}

-			

-			if (productFamilyId == null) {

-				execution.setVariable("productFamilyId", "")

-			}

 

 			String serviceInstanceName = execution.getVariable("serviceInstanceName")

+			

+			// user params

 			String uuiRequest = execution.getVariable("uuiRequest")

 			utils.log("INFO","uuiRequest: " + uuiRequest, isDebugEnabled)

-			

-			String modelInvariantUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceInvariantUuid")

-			utils.log("INFO","modelInvariantUuid: " + modelInvariantUuid, isDebugEnabled)

-			execution.setVariable("modelInvariantUuid", modelInvariantUuid)

-			execution.setVariable("model-invariant-id-target", modelInvariantUuid)

-			

-			String modelUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceUuid")

-			utils.log("INFO","modelUuid: " + modelUuid, isDebugEnabled)

-			execution.setVariable("modelUuid", modelUuid)

-			execution.setVariable("model-version-id-target", modelUuid)

-			

-			String serviceModelName = jsonUtil.getJsonValue(uuiRequest, "service.parameters.templateName")

-			utils.log("INFO","serviceModelName: " + serviceModelName, isDebugEnabled)

-			if(serviceModelName == null) {

-				serviceModelName = ""

-			}

-			execution.setVariable("serviceModelName", serviceModelName)

 				

 		} catch (BpmnError e) {

 			throw e;

@@ -159,128 +135,9 @@
 			utils.log("INFO", msg, isDebugEnabled)

 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)

 		}

-		utils.log("INFO", "Exited " + method, isDebugEnabled)

+		utils.log("INFO", "======== COMPLETED preProcessRequest Process ======== ", isDebugEnabled)  

 	}

-	

-	public void postProcessAAIGET(DelegateExecution execution) {

-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-		utils.log("INFO"," ***** postProcessAAIGET ***** ", isDebugEnabled)

-		String msg = ""

 

-		try {

-			String serviceInstanceId = execution.getVariable("serviceInstanceId")

-			boolean foundInAAI = execution.getVariable("GENGS_FoundIndicator")

-			String serviceType = ""

-

-			if(foundInAAI){

-				utils.log("INFO","Found Service-instance in AAI", isDebugEnabled)

-

-				String siData = execution.getVariable("GENGS_service")

-				utils.log("INFO", "SI Data", isDebugEnabled)

-				if (isBlank(siData))

-				{

-					msg = "Could not retrive ServiceInstance data from AAI, Id:" + serviceInstanceId

-					utils.log("INFO", msg, isDebugEnabled)

-					exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)

-				}

-

-				utils.log("INFO", "SI Data" + siData, isDebugEnabled)				

-

-				// Get Template uuid and version

-				if (utils.nodeExists(siData, "model-invariant-id") && utils.nodeExists(siData, "model-version-id") ) {

-					utils.log("INFO", "SI Data model-invariant-id and model-version-id exist:", isDebugEnabled)

-

-					def modelInvariantId  = utils.getNodeText1(siData, "model-invariant-id")

-					def modelVersionId  = utils.getNodeText1(siData, "model-version-id")

-

-					// Set Original Template info

-					execution.setVariable("model-invariant-id-original", modelInvariantId)

-					execution.setVariable("model-version-id-original", modelVersionId)

-				}

-				

-				//get related service instances (vnf/network or volume) for delete

-				if (utils.nodeExists(siData, "relationship-list")) {

-					utils.log("INFO", "SI Data relationship-list exists:", isDebugEnabled)

-

-					JSONArray jArray = new JSONArray()

-

-					XmlParser xmlParser = new XmlParser()

-					Node root = xmlParser.parseText(siData)

-					def relation_list = utils.getChildNode(root, 'relationship-list')

-					def relationships = utils.getIdenticalChildren(relation_list, 'relationship')					

-

-					for (def relation: relationships) {

-						def jObj = getRelationShipData(relation, isDebugEnabled)

-						jArray.put(jObj)

-					}

-

-					execution.setVariable("serviceRelationShip", jArray.toString())

-				}

-			}else{

-				boolean succInAAI = execution.getVariable("GENGS_SuccessIndicator")

-				if(!succInAAI){

-					utils.log("INFO","Error getting Service-instance from AAI", + serviceInstanceId, isDebugEnabled)

-					WorkflowException workflowException = execution.getVariable("WorkflowException")

-					utils.logAudit("workflowException: " + workflowException)

-					if(workflowException != null){

-						exceptionUtil.buildAndThrowWorkflowException(execution, workflowException.getErrorCode(), workflowException.getErrorMessage())

-					}

-					else

-					{

-						msg = "Failure in postProcessAAIGET GENGS_SuccessIndicator:" + succInAAI

-						utils.log("INFO", msg, isDebugEnabled)

-						exceptionUtil.buildAndThrowWorkflowException(execution, 2500, msg)

-					}

-				}

-

-				utils.log("INFO","Service-instance NOT found in AAI. Silent Success", isDebugEnabled)

-			}

-		}catch (BpmnError e) {

-			throw e;

-		} catch (Exception ex) {

-			msg = "Exception in DoDeleteE2EServiceInstance.postProcessAAIGET. " + ex.getMessage()

-			utils.log("INFO", msg, isDebugEnabled)

-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)

-		}

-		utils.log("INFO"," *** Exit postProcessAAIGET *** ", isDebugEnabled)

-	}

-	

-	private JSONObject getRelationShipData(node, isDebugEnabled){		

-		JSONObject jObj = new JSONObject()

-		

-		def relation  = utils.nodeToString(node)

-		def rt  = utils.getNodeText1(relation, "related-to")

-		

-		def rl  = utils.getNodeText1(relation, "related-link")

-		utils.log("INFO", "ServiceInstance Related NS/Configuration :" + rl, isDebugEnabled)

-		

-		def rl_datas = utils.getIdenticalChildren(node, "relationship-data")	

-		for(def rl_data : rl_datas) {

-			def eKey =  utils.getChildNodeText(rl_data, "relationship-key")

-			def eValue = utils.getChildNodeText(rl_data, "relationship-value")

-

-			if ((rt == "service-instance" && eKey.equals("service-instance.service-instance-id"))

-			//for overlay/underlay

-			|| (rt == "configuration" && eKey.equals("configuration.configuration-id"))){

-				jObj.put("resourceInstanceId", eValue)

-			}

-		}

-

-		def rl_props = utils.getIdenticalChildren(node, "related-to-property")

-		for(def rl_prop : rl_props) {

-			def eKey =  utils.getChildNodeText(rl_prop, "property-key")

-			def eValue = utils.getChildNodeText(rl_prop, "property-value")

-			if((rt == "service-instance" && eKey.equals("service-instance.service-instance-name"))

-			//for overlay/underlay

-			|| (rt == "configuration" && eKey.equals("configuration.configuration-type"))){

-				jObj.put("resourceType", eValue)

-			}

-		}

-

-		utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)		

-

-		return jObj

-	}

 	

 	public void preInitResourcesOperStatus(DelegateExecution execution){

         def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

@@ -292,7 +149,7 @@
             String operationType = execution.getVariable("operationType")

             String resourceTemplateUUIDs = ""

             String result = "processing"

-            String progress = "10"

+            String progress = "0"

             String reason = ""

             String operationContent = "Prepare service updating"

             utils.log("INFO", "Generated new operation for Service Instance serviceId:" + serviceId + " operationId:" + operationId + " operationType:" + operationType, isDebugEnabled)

@@ -340,92 +197,20 @@
         utils.log("INFO", "======== COMPLETED preInitResourcesOperStatus Process ======== ", isDebugEnabled)  

     }

     

-    /**

-	 * Init the service Operation Status

-	 */

-	public void preUpdateServiceOperationStatus(DelegateExecution execution){

-        def method = getClass().getSimpleName() + '.preUpdateServiceOperationStatus(' +'execution=' + execution.getId() +')'

-		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

-		utils.log("INFO","Entered " + method, isDebugEnabled)

-        

-        try{

-            String serviceId = execution.getVariable("serviceInstanceId")

-            String operationId = execution.getVariable("operationId")

-			String operationType = execution.getVariable("operationType")

-            String serviceName = execution.getVariable("serviceInstanceName")

-            String userId = ""

-            String result = "processing"

-            String progress = execution.getVariable("progress")

-			utils.log("INFO", "progress: " + progress , isDebugEnabled)

-			if ("100".equalsIgnoreCase(progress))

-			{

-				result = "finished"

-			}

-            String reason = ""

-            String operationContent = "Prepare service : " + execution.getVariable("operationStatus")

-			

-            utils.log("INFO", "Generated new operation for Service Instance serviceId:" + serviceId + " operationId:" + operationId, isDebugEnabled)

-            serviceId = UriUtils.encode(serviceId,"UTF-8")

-            execution.setVariable("serviceInstanceId", serviceId)

-            execution.setVariable("operationId", operationId)

-            execution.setVariable("operationType", operationType)

 

-            def dbAdapterEndpoint = "http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter"

-            execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)

-            utils.log("INFO", "DB Adapter Endpoint is: " + dbAdapterEndpoint, isDebugEnabled)

-

-            execution.setVariable("URN_mso_openecomp_adapters_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")

-			String payload =

-                """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

-                        xmlns:ns="http://org.openecomp.mso/requestsdb">

-                        <soapenv:Header/>

-                        <soapenv:Body>

-                            <ns:updateServiceOperationStatus xmlns:ns="http://org.openecomp.mso/requestsdb">

-                            <serviceId>${serviceId}</serviceId>

-                            <operationId>${operationId}</operationId>

-                            <serviceName>${serviceName}</serviceName>

-                            <operationType>${operationType}</operationType>

-                            <userId>${userId}</userId>

-                            <result>${result}</result>

-                            <operationContent>${operationContent}</operationContent>

-                            <progress>${progress}</progress>

-                            <reason>${reason}</reason>

-                        </ns:updateServiceOperationStatus>

-                    </soapenv:Body>

-                </soapenv:Envelope>"""

-

-            payload = utils.formatXml(payload)

-            execution.setVariable("CVFMI_updateServiceOperStatusRequest", payload)

-            utils.log("INFO", "Outgoing preUpdateServiceOperationStatus: \n" + payload, isDebugEnabled)

-           

-

-        }catch(Exception e){

-            utils.log("ERROR", "Exception Occured Processing preUpdateServiceOperationStatus. Exception is:\n" + e, isDebugEnabled)

-            execution.setVariable("CVFMI_ErrorResponse", "Error Occurred during preUpdateServiceOperationStatus Method:\n" + e.getMessage())

-        }

-        utils.log("INFO", "======== COMPLETED preUpdateServiceOperationStatus Process ======== ", isDebugEnabled)  

-        utils.log("INFO", "Exited " + method, isDebugEnabled)

-	}

-    

-    public void postResourcesOperStatus(DelegateExecution execution) {

-        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-    

-    }

-    

-    public void preCompareModelVersions(DelegateExecution execution) {

-        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-

-    }

-

-    public void postCompareModelVersions(DelegateExecution execution) {

-        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-    }

-    

     public void preProcessForAddResource(DelegateExecution execution) {

         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

 		utils.log("INFO"," ***** preProcessForAddResource ***** ", isDebugEnabled)

 		

 	    execution.setVariable("operationType", "create")

+		

+		def hasResourcetoAdd = false

+		List<Resource> addResourceList =  execution.getVariable("addResourceList")

+		if(addResourceList != null && !addResourceList.isEmpty()) {

+			hasResourcetoAdd = true			

+		}

+		execution.setVariable("hasResourcetoAdd", hasResourcetoAdd)

+		

 	

 		utils.log("INFO"," *** Exit preProcessForAddResource *** ", isDebugEnabled)

     }

@@ -445,6 +230,15 @@
 		

 		execution.setVariable("operationType", "delete")

 		

+		def hasResourcetoDelete = false

+		List<Resource> delResourceList =  execution.getVariable("delResourceList")

+		if(delResourceList != null && !delResourceList.isEmpty()) {

+			hasResourcetoDelete = true

+		}

+		execution.setVariable("hasResourcetoDelete", hasResourcetoDelete)

+		

+		execution.setVariable("resourceInstanceIDs", execution.getVariable("serviceRelationShip"))

+		

 		utils.log("INFO"," *** Exit preProcessForDeleteResource *** ", isDebugEnabled)

 

     }

@@ -458,20 +252,20 @@
 		utils.log("INFO"," *** Exit postProcessForDeleteResource *** ", isDebugEnabled)

     } 

     

-	public void preProcessAAIGET2(DelegateExecution execution) {

+	public void preProcessAAIGET(DelegateExecution execution) {

         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")	

 	}

     	

-	public void postProcessAAIGET2(DelegateExecution execution) {

+	public void postProcessAAIGET(DelegateExecution execution) {

 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-		utils.log("INFO"," ***** postProcessAAIGET2 ***** ", isDebugEnabled)

+		utils.log("INFO"," ***** postProcessAAIGET ***** ", isDebugEnabled)

 		String msg = ""

 

 		try {

 			String serviceInstanceName = execution.getVariable("serviceInstanceName")

 			boolean succInAAI = execution.getVariable("GENGS_SuccessIndicator")

 			if(!succInAAI){

-				utils.log("INFO","Error getting Service-instance from AAI in postProcessAAIGET2", + serviceInstanceName, isDebugEnabled)

+				utils.log("INFO","Error getting Service-instance from AAI in postProcessAAIGET", + serviceInstanceName, isDebugEnabled)

 				WorkflowException workflowException = execution.getVariable("WorkflowException")

 				utils.logAudit("workflowException: " + workflowException)

 				if(workflowException != null){

@@ -479,7 +273,7 @@
 				}

 				else

 				{

-					msg = "Failure in postProcessAAIGET2 GENGS_SuccessIndicator:" + succInAAI

+					msg = "Failure in postProcessAAIGET GENGS_SuccessIndicator:" + succInAAI

 					utils.log("INFO", msg, isDebugEnabled)

 					exceptionUtil.buildAndThrowWorkflowException(execution, 2500, msg)

 				}

@@ -498,11 +292,11 @@
 		} catch (BpmnError e) {

 			throw e;

 		} catch (Exception ex) {

-			msg = "Exception in DoCreateServiceInstance.postProcessAAIGET2 " + ex.getMessage()

+			msg = "Exception in DoUpdateE2EServiceInstance.postProcessAAIGET " + ex.getMessage()

 			utils.log("INFO", msg, isDebugEnabled)

 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)

 		}

-		utils.log("INFO"," *** Exit postProcessAAIGET2 *** ", isDebugEnabled)

+		utils.log("INFO"," *** Exit postProcessAAIGET *** ", isDebugEnabled)

 	}

 

 	public void preProcessAAIPUT(DelegateExecution execution) {		

@@ -510,7 +304,7 @@
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

 		utils.log("INFO","Entered " + method, isDebugEnabled)

 		String msg = ""

-		utils.log("INFO"," ***** preProcessAAIPUTt *****",  isDebugEnabled)

+		utils.log("INFO"," ***** preProcessAAIPUT *****",  isDebugEnabled)

 

 		String modelUuid = execution.getVariable("modelUuid")

 		String serviceInstanceVersion = execution.getVariable("serviceInstanceVersion")

@@ -560,7 +354,7 @@
 				rollbackData.put("SERVICEINSTANCE", "disableRollback", disableRollback.toString())

 				rollbackData.put("SERVICEINSTANCE", "rollbackAAI", "true")

 				rollbackData.put("SERVICEINSTANCE", "serviceInstanceId", serviceInstanceId)

-				rollbackData.put("SERVICEINSTANCE", "subscriptionServiceType", execution.getVariable("subscriptionServiceType"))

+				rollbackData.put("SERVICEINSTANCE", "serviceType", execution.getVariable("serviceType"))

 				rollbackData.put("SERVICEINSTANCE", "globalSubscriberId", execution.getVariable("globalSubscriberId"))

 				execution.setVariable("rollbackData", rollbackData)

 			}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
index adea23a..0ad2da4 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
@@ -28,6 +28,7 @@
 
 import org.openecomp.mso.bpmn.core.WorkflowException
 import org.openecomp.mso.bpmn.core.json.JsonUtils
+import org.openecomp.mso.bpmn.core.domain.Resource
 import org.openecomp.mso.rest.APIResponse
 
 import java.util.List;
@@ -35,6 +36,8 @@
 
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.json.JSONObject
+import org.json.JSONArray
 import org.apache.commons.lang3.*
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.web.util.UriUtils
@@ -71,7 +74,7 @@
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
 						
-			//subscriberInfo
+			//subscriberInfo for aai
 			String globalSubscriberId = jsonUtil.getJsonValue(siRequest, "requestDetails.subscriberInfo.globalSubscriberId")
 			if (isBlank(globalSubscriberId)) {
 				msg = "Input globalSubscriberId' is null"
@@ -80,7 +83,7 @@
 				execution.setVariable("globalSubscriberId", globalSubscriberId)
 			}
 
-			//requestInfo
+			//requestDetails
 			execution.setVariable("source", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.source"))
 			execution.setVariable("serviceInstanceName", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.instanceName"))
 			execution.setVariable("disableRollback", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.suppressRollback"))
@@ -88,16 +91,16 @@
 			if (isBlank(productFamilyId))
 			{
 				msg = "Input productFamilyId is null"
-				utils.log("INFO", msg, isDebugEnabled)
-				//exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+				utils.log("INFO", msg, isDebugEnabled)				
 			} else {
 				execution.setVariable("productFamilyId", productFamilyId)
 			}
+			
+			 //user params
 	         String userParams = jsonUtil.getJsonValue(siRequest, "requestDetails.requestParameters.userParams")      
              utils.log("INFO", "userParams:" + userParams, isDebugEnabled)
 	         List<String> paramList = jsonUtil.StringArrayToList(execution, userParams)
-	         String uuiRequest = jsonUtil.getJsonValue(paramList.get(0), "UUIRequest")
-			//modelInfo
+	         String uuiRequest = jsonUtil.getJsonValue(paramList.get(0), "UUIRequest")			
 			if (isBlank(uuiRequest)) {
 				msg = "Input uuiRequest is null"
 				utils.log("INFO", msg, isDebugEnabled)
@@ -119,28 +122,23 @@
 				execution.setVariable("serviceType", serviceType)
 			}
 			
-			/*
-			 * Extracting User Parameters from incoming Request and converting into a Map
-			 */
-			def jsonSlurper = new JsonSlurper()
-			def jsonOutput = new JsonOutput()
-
-			Map reqMap = jsonSlurper.parseText(siRequest)
-
-			//InputParams
-			def userParamsList = reqMap.requestDetails?.requestParameters?.userParams
-
-			Map<String, String> inputMap = [:]
-			if (userParamsList) {
-				for (def i=0; i<userParamsList.size(); i++) {
-					def userParams1 = userParamsList.get(i)
-					userParams1.each { param -> inputMap.put(param.key, param.value)}
-				}
-			}
+			// target model info
+			String modelInvariantUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceInvariantUuid")
+			utils.log("INFO","modelInvariantUuid: " + modelInvariantUuid, isDebugEnabled)
+			execution.setVariable("modelInvariantUuid", modelInvariantUuid)
+			execution.setVariable("model-invariant-id-target", modelInvariantUuid)
 			
-			utils.log("DEBUG", "User Input Parameters map: " + inputMap.toString(), isDebugEnabled)
-			execution.setVariable("serviceInputParams", inputMap)
-			execution.setVariable("uuiRequest", inputMap.get("UUIRequest"))
+			String modelUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceUuid")
+			utils.log("INFO","modelUuid: " + modelUuid, isDebugEnabled)
+			execution.setVariable("modelUuid", modelUuid)
+			execution.setVariable("model-version-id-target", modelUuid)
+			
+			String serviceModelName = jsonUtil.getJsonValue(uuiRequest, "service.parameters.templateName")
+			utils.log("INFO","serviceModelName: " + serviceModelName, isDebugEnabled)
+			if(serviceModelName == null) {
+				serviceModelName = ""
+			}
+			execution.setVariable("serviceModelName", serviceModelName)			
 			
 			//operationId
 			String operationId = jsonUtil.getJsonValue(siRequest, "operationId")
@@ -148,7 +146,8 @@
 		 		operationId = UUID.randomUUID().toString()
 		 	 }   
 			execution.setVariable("operationId", operationId) 
-			execution.setVariable("operationType", "UPDATE")
+			execution.setVariable("operationType", "update")
+			execution.setVariable("hasResourcetoUpdate", false)
 			
 			execution.setVariable("URN_mso_adapters_openecomp_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")
 
@@ -162,6 +161,163 @@
 		utils.log("INFO"," ***** Exit preProcessRequest *****",  isDebugEnabled)
 	}
 	
+	
+	public void postProcessAAIGET(DelegateExecution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** postProcessAAIGET ***** ", isDebugEnabled)
+		String msg = ""
+
+		try {
+			String serviceInstanceId = execution.getVariable("serviceInstanceId")
+			boolean foundInAAI = execution.getVariable("GENGS_FoundIndicator")
+			String serviceType = ""
+
+			if(foundInAAI){
+				utils.log("INFO","Found Service-instance in AAI", isDebugEnabled)
+
+				String siData = execution.getVariable("GENGS_service")
+				utils.log("INFO", "SI Data", isDebugEnabled)
+				if (isBlank(siData))
+				{
+					msg = "Could not retrive ServiceInstance data from AAI, Id:" + serviceInstanceId
+					utils.log("INFO", msg, isDebugEnabled)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+				}
+
+				utils.log("INFO", "SI Data" + siData, isDebugEnabled)
+				
+				// serviceInstanceName
+				String serviceInstanceName = execution.getVariable("serviceInstanceName")
+				if(isBlank(serviceInstanceName) && utils.nodeExists(siData, "service-instance-name")) {
+					serviceInstanceName =  utils.getNodeText1(siData, "service-instance-name")
+					execution.setVariable("serviceInstanceName", serviceInstanceName)
+				}
+
+				// Get Template uuid and version
+				if (utils.nodeExists(siData, "model-invariant-id") && utils.nodeExists(siData, "model-version-id") ) {
+					utils.log("INFO", "SI Data model-invariant-id and model-version-id exist:", isDebugEnabled)
+
+					def modelInvariantId  = utils.getNodeText1(siData, "model-invariant-id")
+					def modelVersionId  = utils.getNodeText1(siData, "model-version-id")
+
+					// Set Original Template info
+					execution.setVariable("model-invariant-id-original", modelInvariantId)
+					execution.setVariable("model-version-id-original", modelVersionId)
+				}
+				
+				//get related service instances (vnf/network or volume) for delete
+				if (utils.nodeExists(siData, "relationship-list")) {
+					utils.log("INFO", "SI Data relationship-list exists:", isDebugEnabled)
+
+					JSONArray jArray = new JSONArray()
+
+					XmlParser xmlParser = new XmlParser()
+					Node root = xmlParser.parseText(siData)
+					def relation_list = utils.getChildNode(root, 'relationship-list')
+					def relationships = utils.getIdenticalChildren(relation_list, 'relationship')
+
+					for (def relation: relationships) {
+						def jObj = getRelationShipData(relation, isDebugEnabled)
+						jArray.put(jObj)
+					}
+
+					execution.setVariable("serviceRelationShip", jArray.toString())
+				}
+			}else{
+				boolean succInAAI = execution.getVariable("GENGS_SuccessIndicator")
+				if(!succInAAI){
+					utils.log("INFO","Error getting Service-instance from AAI", + serviceInstanceId, isDebugEnabled)
+					WorkflowException workflowException = execution.getVariable("WorkflowException")
+					utils.logAudit("workflowException: " + workflowException)
+					if(workflowException != null){
+						exceptionUtil.buildAndThrowWorkflowException(execution, workflowException.getErrorCode(), workflowException.getErrorMessage())
+					}
+					else
+					{
+						msg = "Failure in postProcessAAIGET GENGS_SuccessIndicator:" + succInAAI
+						utils.log("INFO", msg, isDebugEnabled)
+						exceptionUtil.buildAndThrowWorkflowException(execution, 2500, msg)
+					}
+				}
+
+				utils.log("INFO","Service-instance NOT found in AAI. Silent Success", isDebugEnabled)
+			}
+		}catch (BpmnError e) {
+			throw e;
+		} catch (Exception ex) {
+			msg = "Exception in DoDeleteE2EServiceInstance.postProcessAAIGET. " + ex.getMessage()
+			utils.log("INFO", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+		utils.log("INFO"," *** Exit postProcessAAIGET *** ", isDebugEnabled)
+	}
+	
+	private JSONObject getRelationShipData(node, isDebugEnabled){
+		JSONObject jObj = new JSONObject()
+		
+		def relation  = utils.nodeToString(node)
+		def rt  = utils.getNodeText1(relation, "related-to")
+		
+		def rl  = utils.getNodeText1(relation, "related-link")
+		utils.log("INFO", "ServiceInstance Related NS/Configuration :" + rl, isDebugEnabled)
+		
+		def rl_datas = utils.getIdenticalChildren(node, "relationship-data")
+		for(def rl_data : rl_datas) {
+			def eKey =  utils.getChildNodeText(rl_data, "relationship-key")
+			def eValue = utils.getChildNodeText(rl_data, "relationship-value")
+
+			if ((rt == "service-instance" && eKey.equals("service-instance.service-instance-id"))
+			//for overlay/underlay
+			|| (rt == "configuration" && eKey.equals("configuration.configuration-id"))){
+				jObj.put("resourceInstanceId", eValue)
+			}
+		}
+
+		def rl_props = utils.getIdenticalChildren(node, "related-to-property")
+		for(def rl_prop : rl_props) {
+			def eKey =  utils.getChildNodeText(rl_prop, "property-key")
+			def eValue = utils.getChildNodeText(rl_prop, "property-value")
+			if((rt == "service-instance" && eKey.equals("service-instance.service-instance-name"))
+			//for overlay/underlay
+			|| (rt == "configuration" && eKey.equals("configuration.configuration-type"))){
+				jObj.put("resourceType", eValue)
+			}
+		}
+
+		utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)
+
+		return jObj
+	}
+	
+	
+	public void preCompareModelVersions(DelegateExecution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+	}
+
+	public void postCompareModelVersions(DelegateExecution execution) {		
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("DEBUG", " ======== STARTED postCompareModelVersions Process ======== ", isDebugEnabled)
+		
+		def hasResourcetoUpdate = false
+		def hasResourcetoAdd = false
+		def hasResourcetoDelete = false
+		List<Resource> addResourceList =  execution.getVariable("addResourceList")
+		List<Resource> delResourceList =  execution.getVariable("delResourceList")
+		
+		if(addResourceList != null && !addResourceList.isEmpty()) {
+			hasResourcetoAdd = true
+		}
+				
+		if(delResourceList != null && !delResourceList.isEmpty()) {
+			hasResourcetoDelete = true
+		}
+		
+		hasResourcetoUpdate = hasResourcetoAdd || hasResourcetoDelete
+		execution.setVariable("hasResourcetoUpdate", hasResourcetoUpdate)
+		
+		utils.log("DEBUG", "======== COMPLETED postCompareModelVersions Process ======== ", isDebugEnabled)		
+	}
+	
 	/**
 	 * Init the service Operation Status
 	 */
@@ -216,6 +372,70 @@
 		}
 		utils.log("DEBUG", "======== COMPLETED prepareInitServiceOperationStatus Process ======== ", isDebugEnabled)
 	}
+	
+	/**
+	 * Update the service Operation Status
+	 */
+	public void preUpdateServiceOperationStatus(DelegateExecution execution){		
+		def method = getClass().getSimpleName() + '.preUpdateServiceOperationStatus(' +'execution=' + execution.getId() +')'
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO","Entered " + method, isDebugEnabled)
+		
+		try{
+			String serviceId = execution.getVariable("serviceInstanceId")
+			String operationId = execution.getVariable("operationId")
+			String operationType = execution.getVariable("operationType")
+			String serviceName = execution.getVariable("serviceInstanceName")
+			String result = execution.getVariable("operationResult")						
+			String progress = execution.getVariable("progress")
+			String reason = execution.getVariable("operationReason")
+			String userId = ""
+			utils.log("INFO", "progress: " + progress , isDebugEnabled)
+
+			String operationContent = "Prepare service : " + execution.getVariable("operationStatus")
+			
+			utils.log("INFO", "Generated new operation for Service Instance serviceId:" + serviceId + " operationId:" + operationId, isDebugEnabled)
+			serviceId = UriUtils.encode(serviceId,"UTF-8")
+			execution.setVariable("serviceInstanceId", serviceId)
+			execution.setVariable("operationId", operationId)
+			execution.setVariable("operationType", operationType)
+
+			def dbAdapterEndpoint = "http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter"
+			execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
+			utils.log("INFO", "DB Adapter Endpoint is: " + dbAdapterEndpoint, isDebugEnabled)
+
+			execution.setVariable("URN_mso_openecomp_adapters_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")
+			String payload =
+				"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                        xmlns:ns="http://org.openecomp.mso/requestsdb">
+                        <soapenv:Header/>
+                        <soapenv:Body>
+                            <ns:updateServiceOperationStatus xmlns:ns="http://org.openecomp.mso/requestsdb">
+                            <serviceId>${serviceId}</serviceId>
+                            <operationId>${operationId}</operationId>
+                            <serviceName>${serviceName}</serviceName>
+                            <operationType>${operationType}</operationType>
+                            <userId>${userId}</userId>
+                            <result>${result}</result>
+                            <operationContent>${operationContent}</operationContent>
+                            <progress>${progress}</progress>
+                            <reason>${reason}</reason>
+                        </ns:updateServiceOperationStatus>
+                    </soapenv:Body>
+                </soapenv:Envelope>"""
+
+			payload = utils.formatXml(payload)
+			execution.setVariable("CVFMI_updateServiceOperStatusRequest", payload)
+			utils.log("INFO", "Outgoing preUpdateServiceOperationStatus: \n" + payload, isDebugEnabled)
+		   
+
+		}catch(Exception e){
+			utils.log("ERROR", "Exception Occured Processing preUpdateServiceOperationStatus. Exception is:\n" + e, isDebugEnabled)
+			execution.setVariable("CVFMI_ErrorResponse", "Error Occurred during preUpdateServiceOperationStatus Method:\n" + e.getMessage())
+		}
+		utils.log("INFO", "======== COMPLETED preUpdateServiceOperationStatus Process ======== ", isDebugEnabled)
+		utils.log("INFO", "Exited " + method, isDebugEnabled)
+	}		
 
 	public void sendSyncResponse (DelegateExecution execution) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
@@ -223,9 +443,17 @@
 
 		try {
 			String operationId = execution.getVariable("operationId")
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-			// RESTResponse for API Handler (APIH) Reply Task
-			String updateServiceResp = """{"operationId":"${operationId}"}""".trim()
+			def hasResourcetoUpdate = execution.getVariable("hasResourcetoUpdate")
+			
+			String updateServiceResp = ""
+			if(hasResourcetoUpdate) {
+				// RESTResponse for API Handler (APIH) Reply Task
+				updateServiceResp = """{"operationId":"${operationId}"}""".trim()
+			}
+			else {
+				updateServiceResp =  """{"OperationResult":"No Resource to Add or Delete"}"""
+			}
+			
 			utils.log("INFO", " sendSyncResponse to APIH:" + "\n" + updateServiceResp, isDebugEnabled)
 			sendWorkflowResponse(execution, 202, updateServiceResp)
 			execution.setVariable("sentSyncResponse", true)
@@ -238,16 +466,17 @@
 		utils.log("INFO"," ***** Exit sendSyncResopnse *****",  isDebugEnabled)
 	}
 
-
 	public void sendSyncError (DelegateExecution execution) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 		utils.log("INFO", " *** sendSyncError *** ", isDebugEnabled)
 
 		try {
 			String errorMessage = ""
+			int errorCode = 7000
 			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
 				WorkflowException wfe = execution.getVariable("WorkflowException")
 				errorMessage = wfe.getErrorMessage()
+				errorCode = wfe.getErrorCode()
 			} else {
 				errorMessage = "Sending Sync Error."
 			}
@@ -255,7 +484,7 @@
 			String buildworkflowException =
 					"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

 					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
-					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
+					<aetgt:ErrorCode>${errorCode}</aetgt:ErrorCode>
 				   </aetgt:WorkflowException>"""
 
 			utils.logAudit(buildworkflowException)
@@ -286,7 +515,7 @@
 			   			</request-info>
 						<status-message>Service Instance was updated successfully.</status-message>
 						<serviceInstanceId>${serviceInstanceId}</serviceInstanceId>
-			   			<mso-bpel-name>UpdateGenericALaCarteServiceInstance</mso-bpel-name>
+			   			<mso-bpel-name>UpdateCustomE2EServiceInstance</mso-bpel-name>
 					</aetgt:MsoCompletionRequest>"""
 
 			// Format Response
@@ -323,7 +552,7 @@
 			execution.setVariable("falloutRequest", falloutRequest)
 		} catch (Exception ex) {
 			utils.log("INFO", "Exception prepareFalloutRequest:" + ex.getMessage(), isDebugEnabled)
-			String errorException = "  Bpmn error encountered in UpdateGenericALaCarteServiceInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
+			String errorException = "  Bpmn error encountered in UpdateCustomE2EServiceInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
 			String requestId = execution.getVariable("msoRequestId")
 			String falloutRequest =
 					"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn
index 3071d1c..6451dc6 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn
@@ -8,8 +8,8 @@
       <bpmn:scriptTask id="ScriptTask_0u3lw39" name="Handle Unexpected Error" scriptFormat="groovy">
         <bpmn:incoming>SequenceFlow_1dsbjjb</bpmn:incoming>
         <bpmn:outgoing>SequenceFlow_1yay321</bpmn:outgoing>
-        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*

-ExceptionUtil ex = new ExceptionUtil()

+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
+ExceptionUtil ex = new ExceptionUtil()
 ex.processJavaException(execution)]]></bpmn:script>
       </bpmn:scriptTask>
       <bpmn:startEvent id="StartEvent_0v1ffn4">
@@ -33,7 +33,6 @@
         <camunda:in source="disableRollback" target="disableRollback" />
         <camunda:in source="uuiRequest" target="uuiRequest" />
         <camunda:out source="rolledBack" target="rolledBack" />
-        <camunda:out source="serviceInstanceName" target="serviceInstanceName" />
         <camunda:in source="failIfExists" target="failIfExists" />
         <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
         <camunda:in source="serviceType" target="serviceType" />
@@ -41,8 +40,12 @@
         <camunda:in source="operationId" target="operationId" />
         <camunda:in source="operationType" target="operationType" />
         <camunda:in source="URN_mso_adapters_openecomp_db_endpoint" target="URN_mso_adapters_openecomp_db_endpoint" />
+        <camunda:in source="serviceDecomposition_Target" target="serviceDecomposition_Target" />
+        <camunda:in source="serviceDecomposition_Original" target="serviceDecomposition_Original" />
+        <camunda:in source="addResourceList" target="addResourceList" />
+        <camunda:in source="delResourceList" target="delResourceList" />
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_19eilro</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_04qwbbf</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0klbpxx</bpmn:outgoing>
     </bpmn:callActivity>
     <bpmn:endEvent id="EndEvent_0bpd6c0" name="End">
@@ -50,16 +53,16 @@
     </bpmn:endEvent>
     <bpmn:scriptTask id="ScriptTask_1s09c7d" name="Pre Process Incoming Request" scriptFormat="groovy">
       <bpmn:incoming>SequenceFlow_0s2spoq</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0z4faf9</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def csi= new UpdateCustomE2EServiceInstance()

+      <bpmn:outgoing>SequenceFlow_0az1n4y</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi= new UpdateCustomE2EServiceInstance()
 csi.preProcessRequest(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:scriptTask id="ScriptTask_0ttvn8r" name="Prepare Completion Request" scriptFormat="groovy">
       <bpmn:incoming>SequenceFlow_14zu6wr</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0je30si</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def csi = new UpdateCustomE2EServiceInstance()

+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
 csi.prepareCompletionRequest(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:callActivity id="CallActivity_02fyxz0" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
@@ -85,8 +88,8 @@
       <bpmn:scriptTask id="ScriptTask_0u8o9p2" name="Prepare Fallout Request" scriptFormat="groovy">
         <bpmn:incoming>SequenceFlow_0n9pexp</bpmn:incoming>
         <bpmn:outgoing>SequenceFlow_01umodj</bpmn:outgoing>
-        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def csi = new UpdateCustomE2EServiceInstance()

+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
 csi.prepareFalloutRequest(execution)]]></bpmn:script>
       </bpmn:scriptTask>
       <bpmn:callActivity id="CallActivity_1ang7q8" name="Call FalloutHandler" calledElement="FalloutHandler">
@@ -102,22 +105,57 @@
         <bpmn:outgoing>SequenceFlow_1ysapam</bpmn:outgoing>
       </bpmn:callActivity>
       <bpmn:scriptTask id="ScriptTask_1rn6nqi" name="Send Error Response">
-        <bpmn:incoming>SequenceFlow_0e1r62n</bpmn:incoming>
+        <bpmn:incoming>SequenceFlow_06o383f</bpmn:incoming>
         <bpmn:outgoing>SequenceFlow_0n9pexp</bpmn:outgoing>
-        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def csi = new  UpdateCustomE2EServiceInstance()

+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  UpdateCustomE2EServiceInstance()
 csi.sendSyncError(execution)]]></bpmn:script>
       </bpmn:scriptTask>
-      <bpmn:sequenceFlow id="SequenceFlow_0e1r62n" sourceRef="StartEvent_0dug28e" targetRef="ScriptTask_1rn6nqi" />
+      <bpmn:sequenceFlow id="SequenceFlow_0e1r62n" sourceRef="StartEvent_0dug28e" targetRef="ScriptTask_14kqo0r" />
       <bpmn:sequenceFlow id="SequenceFlow_1ysapam" sourceRef="CallActivity_1ang7q8" targetRef="EndEvent_03wysuk" />
       <bpmn:sequenceFlow id="SequenceFlow_0n9pexp" sourceRef="ScriptTask_1rn6nqi" targetRef="ScriptTask_0u8o9p2" />
       <bpmn:sequenceFlow id="SequenceFlow_01umodj" sourceRef="ScriptTask_0u8o9p2" targetRef="CallActivity_1ang7q8" />
+      <bpmn:scriptTask id="ScriptTask_14kqo0r" name="Prepare Update Service Oper Status(error)" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_0e1r62n</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_0t4nds2</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*		
+		execution.setVariable("progress", "100")
+		execution.setVariable("operationStatus", "Finished")
+		execution.setVariable("operationResult", "Error")
+		execution.setVariable("operationReason", "Exception happened")
+		def ddsi = new UpdateCustomE2EServiceInstance()
+		ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:sequenceFlow id="SequenceFlow_0t4nds2" sourceRef="ScriptTask_14kqo0r" targetRef="ServiceTask_1af6rwh" />
+      <bpmn:serviceTask id="ServiceTask_1af6rwh" name="Update Service Oper Status">
+        <bpmn:extensionElements>
+          <camunda:connector>
+            <camunda:inputOutput>
+              <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
+              <camunda:inputParameter name="headers">
+                <camunda:map>
+                  <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                  <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+                </camunda:map>
+              </camunda:inputParameter>
+              <camunda:inputParameter name="payload">${CVFMI_updateServiceOperStatusRequest}</camunda:inputParameter>
+              <camunda:inputParameter name="method">POST</camunda:inputParameter>
+              <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+              <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+            </camunda:inputOutput>
+            <camunda:connectorId>http-connector</camunda:connectorId>
+          </camunda:connector>
+        </bpmn:extensionElements>
+        <bpmn:incoming>SequenceFlow_0t4nds2</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_06o383f</bpmn:outgoing>
+      </bpmn:serviceTask>
+      <bpmn:sequenceFlow id="SequenceFlow_06o383f" sourceRef="ServiceTask_1af6rwh" targetRef="ScriptTask_1rn6nqi" />
     </bpmn:subProcess>
     <bpmn:scriptTask id="ScriptTask_0xupxj9" name="Send Sync Ack Response" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1853xxi</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_19eilro</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def csi = new  UpdateCustomE2EServiceInstance()

+      <bpmn:incoming>SequenceFlow_12dou7o</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0secadm</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new  UpdateCustomE2EServiceInstance()
 csi.sendSyncResponse(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:exclusiveGateway id="ExclusiveGateway_0aqn64l" name="Success?">
@@ -130,10 +168,8 @@
       <bpmn:errorEventDefinition errorRef="Error_0nbdy47" />
     </bpmn:endEvent>
     <bpmn:sequenceFlow id="SequenceFlow_0s2spoq" sourceRef="StartEvent_00qj6ro" targetRef="ScriptTask_1s09c7d" />
-    <bpmn:sequenceFlow id="SequenceFlow_19eilro" sourceRef="ScriptTask_0xupxj9" targetRef="DoUpdateE2EServiceInstance" />
     <bpmn:sequenceFlow id="SequenceFlow_0klbpxx" sourceRef="DoUpdateE2EServiceInstance" targetRef="ExclusiveGateway_0aqn64l" />
     <bpmn:sequenceFlow id="SequenceFlow_0yayvrf" sourceRef="CallActivity_02fyxz0" targetRef="EndEvent_0bpd6c0" />
-    <bpmn:sequenceFlow id="SequenceFlow_0z4faf9" sourceRef="ScriptTask_1s09c7d" targetRef="ScriptTask_09rx901" />
     <bpmn:sequenceFlow id="SequenceFlow_14zu6wr" name="yes" sourceRef="ExclusiveGateway_0aqn64l" targetRef="ScriptTask_0ttvn8r">
       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") == null}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
@@ -141,14 +177,85 @@
     <bpmn:sequenceFlow id="SequenceFlow_1fueo69" name="no" sourceRef="ExclusiveGateway_0aqn64l" targetRef="EndEvent_07uk5iy">
       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") != null}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
-    <bpmn:scriptTask id="ScriptTask_09rx901" name="Init Service Operation Status" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_0z4faf9</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0utlsnd</bpmn:outgoing>
+    <bpmn:callActivity id="CallActivity_1vejucv" name="Call AAI Generic GetService" calledElement="GenericGetService">
+      <bpmn:extensionElements>
+        <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
+        <camunda:in sourceExpression="service-instance" target="GENGS_type" />
+        <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
+        <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" />
+        <camunda:out source="GENGS_service" target="GENGS_service" />
+        <camunda:in source="globalSubscriberId" target="GENGS_globalCustomerId" />
+        <camunda:in source="serviceType" target="GENGS_serviceType" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_0az1n4y</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1bd4711</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:scriptTask id="ScriptTask_0cx1y0g" name="Post Process AAI GET" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1bd4711</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_03i6zhx</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new UpdateCustomE2EServiceInstance()
+dcsi.postProcessAAIGET(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1bd4711" sourceRef="CallActivity_1vejucv" targetRef="ScriptTask_0cx1y0g" />
+    <bpmn:scriptTask id="ScriptTask_11y3uq6" name="Post for Compare Model Versions" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0xhbobd</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0t7zinj</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
+csi.postCompareModelVersions(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="ScriptTask_0hixtxc" name="Prepare for Compare Model Versions" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_03i6zhx</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1pdv4qj</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def ddsi = new UpdateCustomE2EServiceInstance()
+ddsi.preCompareModelVersions(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:callActivity id="CallActivity_1rkoyc5" name="Call DoCompareModelVersions" calledElement="DoCompareModelVersions">
+      <bpmn:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="model-invariant-id-target" target="model-invariant-id-target" />
+        <camunda:in source="model-version-id-target" target="model-version-id-target" />
+        <camunda:in source="model-invariant-id-original" target="model-invariant-id-original" />
+        <camunda:in source="model-version-id-original" target="model-version-id-original" />
+        <camunda:out source="serviceDecomposition_Target" target="serviceDecomposition_Target" />
+        <camunda:out source="serviceDecomposition_Original" target="serviceDecomposition_Original" />
+        <camunda:out source="addResourceList" target="addResourceList" />
+        <camunda:out source="delResourceList" target="delResourceList" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_1pdv4qj</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0xhbobd</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:sequenceFlow id="SequenceFlow_03i6zhx" sourceRef="ScriptTask_0cx1y0g" targetRef="ScriptTask_0hixtxc" />
+    <bpmn:sequenceFlow id="SequenceFlow_1pdv4qj" sourceRef="ScriptTask_0hixtxc" targetRef="CallActivity_1rkoyc5" />
+    <bpmn:sequenceFlow id="SequenceFlow_0xhbobd" sourceRef="CallActivity_1rkoyc5" targetRef="ScriptTask_11y3uq6" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_0mc34qe" name="HasResourcetoUpdate?">
+      <bpmn:incoming>SequenceFlow_0secadm</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1n8h3zt</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_0zmd4rt</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_0az1n4y" sourceRef="ScriptTask_1s09c7d" targetRef="CallActivity_1vejucv" />
+    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0m01dm3" name="StartDoUpdate">
+      <bpmn:outgoing>SequenceFlow_04qwbbf</bpmn:outgoing>
+      <bpmn:linkEventDefinition name="StartDoUpdate" />
+    </bpmn:intermediateCatchEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0secadm" sourceRef="ScriptTask_0xupxj9" targetRef="ExclusiveGateway_0mc34qe" />
+    <bpmn:sequenceFlow id="SequenceFlow_04qwbbf" sourceRef="IntermediateCatchEvent_0m01dm3" targetRef="DoUpdateE2EServiceInstance" />
+    <bpmn:endEvent id="EndEvent_1jvqhkf" name="End">
+      <bpmn:incoming>SequenceFlow_0kvl23y</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:scriptTask id="ScriptTask_16sgdqw" name="Init Service Operation Status" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1bddzne</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1e3vtyq</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def csi= new UpdateCustomE2EServiceInstance()
 csi.prepareInitServiceOperationStatus(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:serviceTask id="ServiceTask_0mr5k9q" name="Update Service Operation Status">
+    <bpmn:serviceTask id="ServiceTask_0qjpd5v" name="Update Service Operation Status">
       <bpmn:extensionElements>
         <camunda:connector>
           <camunda:inputOutput>
@@ -167,11 +274,64 @@
           <camunda:connectorId>http-connector</camunda:connectorId>
         </camunda:connector>
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_0utlsnd</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1853xxi</bpmn:outgoing>
+      <bpmn:incoming>SequenceFlow_1e3vtyq</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_12dou7o</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:sequenceFlow id="SequenceFlow_0utlsnd" sourceRef="ScriptTask_09rx901" targetRef="ServiceTask_0mr5k9q" />
-    <bpmn:sequenceFlow id="SequenceFlow_1853xxi" sourceRef="ServiceTask_0mr5k9q" targetRef="ScriptTask_0xupxj9" />
+    <bpmn:sequenceFlow id="SequenceFlow_1e3vtyq" sourceRef="ScriptTask_16sgdqw" targetRef="ServiceTask_0qjpd5v" />
+    <bpmn:sequenceFlow id="SequenceFlow_12dou7o" sourceRef="ServiceTask_0qjpd5v" targetRef="ScriptTask_0xupxj9" />
+    <bpmn:serviceTask id="ServiceTask_0mj3kf2" name="Update Service Operation Status">
+      <bpmn:extensionElements>
+        <camunda:connector>
+          <camunda:inputOutput>
+            <camunda:inputParameter name="url">${CVFMI_dbAdapterEndpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="headers">
+              <camunda:map>
+                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
+              </camunda:map>
+            </camunda:inputParameter>
+            <camunda:inputParameter name="payload">${CVFMI_updateServiceOperStatusRequest}</camunda:inputParameter>
+            <camunda:inputParameter name="method">POST</camunda:inputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
+            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
+          </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
+        </camunda:connector>
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_1wzk6tu</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0kvl23y</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1n8h3zt" name="No" sourceRef="ExclusiveGateway_0mc34qe" targetRef="ScriptTask_04a0t3p">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("hasResourcetoUpdate")== false}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_08mk8h9" name="GoToOperStatusInit">
+      <bpmn:incoming>SequenceFlow_0t7zinj</bpmn:incoming>
+      <bpmn:linkEventDefinition name="StartOperStatusInit" />
+    </bpmn:intermediateThrowEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0t7zinj" sourceRef="ScriptTask_11y3uq6" targetRef="IntermediateThrowEvent_08mk8h9" />
+    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_14w7v9s" name="StartOperStatusInit">
+      <bpmn:outgoing>SequenceFlow_1bddzne</bpmn:outgoing>
+      <bpmn:linkEventDefinition name="StartOperStatusInit" />
+    </bpmn:intermediateCatchEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_1bddzne" sourceRef="IntermediateCatchEvent_14w7v9s" targetRef="ScriptTask_16sgdqw" />
+    <bpmn:scriptTask id="ScriptTask_04a0t3p" name="Prepare Update Service Oper Status(100%)" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1n8h3zt</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1wzk6tu</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "100")
+execution.setVariable("operationStatus", "Finished")
+execution.setVariable("operationResult", "End")
+execution.setVariable("operationReason", "No resource to add or delete")
+def ddsi = new UpdateCustomE2EServiceInstance()
+ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1wzk6tu" sourceRef="ScriptTask_04a0t3p" targetRef="ServiceTask_0mj3kf2" />
+    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_1k72hze" name="GoToDoUpdate">
+      <bpmn:incoming>SequenceFlow_0zmd4rt</bpmn:incoming>
+      <bpmn:linkEventDefinition name="StartDoUpdate" />
+    </bpmn:intermediateThrowEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0kvl23y" sourceRef="ServiceTask_0mj3kf2" targetRef="EndEvent_1jvqhkf" />
+    <bpmn:sequenceFlow id="SequenceFlow_0zmd4rt" name="Yes" sourceRef="ExclusiveGateway_0mc34qe" targetRef="IntermediateThrowEvent_1k72hze" />
   </bpmn:process>
   <bpmn:error id="Error_0nbdy47" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
@@ -183,42 +343,42 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="SubProcess_0ka59nc_di" bpmnElement="SubProcess_0ka59nc" isExpanded="true">
-        <dc:Bounds x="463" y="632" width="394" height="188" />
+        <dc:Bounds x="439" y="1170" width="394" height="188" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_0rhljy8_di" bpmnElement="DoUpdateE2EServiceInstance">
-        <dc:Bounds x="767" y="158" width="100" height="80" />
+        <dc:Bounds x="284" y="585" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_0bpd6c0_di" bpmnElement="EndEvent_0bpd6c0">
-        <dc:Bounds x="1258" y="286" width="36" height="36" />
+        <dc:Bounds x="1192" y="607" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1268" y="322" width="22" height="12" />
+          <dc:Bounds x="1204" y="643" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1s09c7d_di" bpmnElement="ScriptTask_1s09c7d">
         <dc:Bounds x="105" y="158" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0ttvn8r_di" bpmnElement="ScriptTask_0ttvn8r">
-        <dc:Bounds x="1073" y="158" width="100" height="80" />
+        <dc:Bounds x="782" y="585" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_02fyxz0_di" bpmnElement="CallActivity_02fyxz0">
-        <dc:Bounds x="1226" y="158" width="100" height="80" />
+        <dc:Bounds x="959" y="585" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="SubProcess_0vaws86_di" bpmnElement="SubProcess_0vaws86" isExpanded="true">
-        <dc:Bounds x="348" y="370" width="679" height="194" />
+        <dc:Bounds x="-61" y="908" width="1322" height="164" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0xupxj9_di" bpmnElement="ScriptTask_0xupxj9">
-        <dc:Bounds x="600" y="158" width="100" height="80" />
+        <dc:Bounds x="451" y="337" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ExclusiveGateway_0aqn64l_di" bpmnElement="ExclusiveGateway_0aqn64l" isMarkerVisible="true">
-        <dc:Bounds x="942" y="173" width="50" height="50" />
+        <dc:Bounds x="639" y="600" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="943" y="145" width="49" height="12" />
+          <dc:Bounds x="640" y="572" width="49" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_07uk5iy_di" bpmnElement="EndEvent_07uk5iy">
-        <dc:Bounds x="949" y="286" width="36" height="36" />
+        <dc:Bounds x="646" y="713" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="877" y="322" width="90" height="12" />
+          <dc:Bounds x="527" y="1016" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0s2spoq_di" bpmnElement="SequenceFlow_0s2spoq">
@@ -228,157 +388,305 @@
           <dc:Bounds x="22.5" y="177" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_19eilro_di" bpmnElement="SequenceFlow_19eilro">
-        <di:waypoint xsi:type="dc:Point" x="700" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="767" y="198" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="688.5" y="177" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0klbpxx_di" bpmnElement="SequenceFlow_0klbpxx">
-        <di:waypoint xsi:type="dc:Point" x="867" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="942" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="384" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="639" y="625" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="859.5" y="177" width="90" height="12" />
+          <dc:Bounds x="466.5" y="604" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0yayvrf_di" bpmnElement="SequenceFlow_0yayvrf">
-        <di:waypoint xsi:type="dc:Point" x="1276" y="238" />
-        <di:waypoint xsi:type="dc:Point" x="1276" y="286" />
+        <di:waypoint xsi:type="dc:Point" x="1059" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="1192" y="625" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1246" y="262" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0z4faf9_di" bpmnElement="SequenceFlow_0z4faf9">
-        <di:waypoint xsi:type="dc:Point" x="205" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="274" y="198" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="194.5" y="177" width="90" height="12" />
+          <dc:Bounds x="1080.5" y="604" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_14zu6wr_di" bpmnElement="SequenceFlow_14zu6wr">
-        <di:waypoint xsi:type="dc:Point" x="992" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="1073" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="689" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="782" y="625" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1023.5062499999999" y="195" width="19" height="12" />
+          <dc:Bounds x="727.1481481481482" y="622" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0je30si_di" bpmnElement="SequenceFlow_0je30si">
-        <di:waypoint xsi:type="dc:Point" x="1173" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="1226" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="882" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="959" y="625" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1154.5" y="177" width="90" height="12" />
+          <dc:Bounds x="875.5" y="604" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1fueo69_di" bpmnElement="SequenceFlow_1fueo69">
-        <di:waypoint xsi:type="dc:Point" x="967" y="223" />
-        <di:waypoint xsi:type="dc:Point" x="967" y="250" />
-        <di:waypoint xsi:type="dc:Point" x="967" y="250" />
-        <di:waypoint xsi:type="dc:Point" x="967" y="286" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="650" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="713" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="942" y="228" width="12" height="12" />
+          <dc:Bounds x="639" y="677" width="12" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_0u3lw39_di" bpmnElement="ScriptTask_0u3lw39">
-        <dc:Bounds x="611" y="687" width="100" height="80" />
+        <dc:Bounds x="587" y="1225" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="StartEvent_0v1ffn4_di" bpmnElement="StartEvent_0v1ffn4">
-        <dc:Bounds x="496" y="709" width="36" height="36" />
+        <dc:Bounds x="472" y="1247" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="469" y="750" width="0" height="12" />
+          <dc:Bounds x="400" y="1288" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_0eznq6x_di" bpmnElement="EndEvent_0eznq6x">
-        <dc:Bounds x="772" y="709" width="36" height="36" />
+        <dc:Bounds x="748" y="1247" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="745" y="750" width="0" height="12" />
+          <dc:Bounds x="676" y="1288" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="StartEvent_0dug28e_di" bpmnElement="StartEvent_0dug28e">
-        <dc:Bounds x="363" y="456" width="36" height="36" />
+        <dc:Bounds x="-20" y="994" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="336" y="497" width="0" height="12" />
+          <dc:Bounds x="-92" y="1035" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_03wysuk_di" bpmnElement="EndEvent_03wysuk">
-        <dc:Bounds x="942" y="456" width="36" height="36" />
+        <dc:Bounds x="1194" y="994" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="915" y="497" width="0" height="12" />
+          <dc:Bounds x="1122" y="1035" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0u8o9p2_di" bpmnElement="ScriptTask_0u8o9p2">
-        <dc:Bounds x="621" y="434" width="100" height="80" />
+        <dc:Bounds x="777" y="972" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_1ang7q8_di" bpmnElement="CallActivity_1ang7q8">
-        <dc:Bounds x="798" y="434" width="100" height="80" />
+        <dc:Bounds x="963" y="972" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1rn6nqi_di" bpmnElement="ScriptTask_1rn6nqi">
-        <dc:Bounds x="443" y="434" width="100" height="80" />
+        <dc:Bounds x="577" y="972" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1dsbjjb_di" bpmnElement="SequenceFlow_1dsbjjb">
-        <di:waypoint xsi:type="dc:Point" x="532" y="727" />
-        <di:waypoint xsi:type="dc:Point" x="611" y="727" />
+        <di:waypoint xsi:type="dc:Point" x="508" y="1265" />
+        <di:waypoint xsi:type="dc:Point" x="587" y="1265" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="529.5" y="727" width="0" height="12" />
+          <dc:Bounds x="461" y="1265" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1yay321_di" bpmnElement="SequenceFlow_1yay321">
-        <di:waypoint xsi:type="dc:Point" x="711" y="727" />
-        <di:waypoint xsi:type="dc:Point" x="772" y="727" />
+        <di:waypoint xsi:type="dc:Point" x="687" y="1265" />
+        <di:waypoint xsi:type="dc:Point" x="748" y="1265" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="701.5" y="727" width="0" height="12" />
+          <dc:Bounds x="633" y="1265" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0e1r62n_di" bpmnElement="SequenceFlow_0e1r62n">
-        <di:waypoint xsi:type="dc:Point" x="399" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="421" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="421" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="442" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="16" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="122" y="1012" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="391" y="474" width="0" height="12" />
+          <dc:Bounds x="24" y="991" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1ysapam_di" bpmnElement="SequenceFlow_1ysapam">
-        <di:waypoint xsi:type="dc:Point" x="898" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="942" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="1063" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="1194" y="1012" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="875" y="459" width="0" height="12" />
+          <dc:Bounds x="1083.5" y="991" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0n9pexp_di" bpmnElement="SequenceFlow_0n9pexp">
-        <di:waypoint xsi:type="dc:Point" x="543" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="570" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="570" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="621" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="677" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="777" y="1012" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="540" y="474" width="0" height="12" />
+          <dc:Bounds x="682" y="991" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_01umodj_di" bpmnElement="SequenceFlow_01umodj">
-        <di:waypoint xsi:type="dc:Point" x="721" y="474" />
-        <di:waypoint xsi:type="dc:Point" x="798" y="474" />
+        <di:waypoint xsi:type="dc:Point" x="877" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="963" y="1012" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="715.5" y="459" width="0" height="12" />
+          <dc:Bounds x="875" y="991" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_09rx901_di" bpmnElement="ScriptTask_09rx901">
+      <bpmndi:BPMNShape id="CallActivity_1vejucv_di" bpmnElement="CallActivity_1vejucv">
         <dc:Bounds x="274" y="158" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_0mr5k9q_di" bpmnElement="ServiceTask_0mr5k9q">
-        <dc:Bounds x="444" y="158" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_0cx1y0g_di" bpmnElement="ScriptTask_0cx1y0g">
+        <dc:Bounds x="451" y="158" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0utlsnd_di" bpmnElement="SequenceFlow_0utlsnd">
+      <bpmndi:BPMNEdge id="SequenceFlow_1bd4711_di" bpmnElement="SequenceFlow_1bd4711">
         <di:waypoint xsi:type="dc:Point" x="374" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="444" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="451" y="198" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="409" y="177" width="0" height="12" />
+          <dc:Bounds x="367.5" y="177" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1853xxi_di" bpmnElement="SequenceFlow_1853xxi">
-        <di:waypoint xsi:type="dc:Point" x="544" y="198" />
-        <di:waypoint xsi:type="dc:Point" x="600" y="198" />
+      <bpmndi:BPMNShape id="ScriptTask_11y3uq6_di" bpmnElement="ScriptTask_11y3uq6">
+        <dc:Bounds x="959" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0hixtxc_di" bpmnElement="ScriptTask_0hixtxc">
+        <dc:Bounds x="614" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1rkoyc5_di" bpmnElement="CallActivity_1rkoyc5">
+        <dc:Bounds x="782" y="158" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_03i6zhx_di" bpmnElement="SequenceFlow_03i6zhx">
+        <di:waypoint xsi:type="dc:Point" x="551" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="614" y="198" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="572" y="177" width="0" height="12" />
+          <dc:Bounds x="537.5" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1pdv4qj_di" bpmnElement="SequenceFlow_1pdv4qj">
+        <di:waypoint xsi:type="dc:Point" x="714" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="782" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="703" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0xhbobd_di" bpmnElement="SequenceFlow_0xhbobd">
+        <di:waypoint xsi:type="dc:Point" x="882" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="959" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="875.5" y="177" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0mc34qe_di" bpmnElement="ExclusiveGateway_0mc34qe" isMarkerVisible="true">
+        <dc:Bounds x="639" y="352" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="622" y="324" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0az1n4y_di" bpmnElement="SequenceFlow_0az1n4y">
+        <di:waypoint xsi:type="dc:Point" x="205" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="274" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="239.5" y="177" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0m01dm3_di" bpmnElement="IntermediateCatchEvent_0m01dm3">
+        <dc:Bounds x="-6" y="607" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-21" y="669" width="72" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0secadm_di" bpmnElement="SequenceFlow_0secadm">
+        <di:waypoint xsi:type="dc:Point" x="551" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="639" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="550" y="356" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_04qwbbf_di" bpmnElement="SequenceFlow_04qwbbf">
+        <di:waypoint xsi:type="dc:Point" x="30" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="284" y="625" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="112" y="604" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_1jvqhkf_di" bpmnElement="EndEvent_1jvqhkf">
+        <dc:Bounds x="1192" y="359" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1200" y="404" width="19" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_16sgdqw_di" bpmnElement="ScriptTask_16sgdqw">
+        <dc:Bounds x="97" y="337" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_0qjpd5v_di" bpmnElement="ServiceTask_0qjpd5v">
+        <dc:Bounds x="274" y="337" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1e3vtyq_di" bpmnElement="SequenceFlow_1e3vtyq">
+        <di:waypoint xsi:type="dc:Point" x="197" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="274" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="235.5" y="356" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_12dou7o_di" bpmnElement="SequenceFlow_12dou7o">
+        <di:waypoint xsi:type="dc:Point" x="374" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="451" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="412.5" y="356" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_0mj3kf2_di" bpmnElement="ServiceTask_0mj3kf2">
+        <dc:Bounds x="959" y="337" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1n8h3zt_di" bpmnElement="SequenceFlow_1n8h3zt">
+        <di:waypoint xsi:type="dc:Point" x="689" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="782" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="729" y="356" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_08mk8h9_di" bpmnElement="IntermediateThrowEvent_08mk8h9">
+        <dc:Bounds x="1192" y="180" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1175" y="220" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0t7zinj_di" bpmnElement="SequenceFlow_0t7zinj">
+        <di:waypoint xsi:type="dc:Point" x="1059" y="198" />
+        <di:waypoint xsi:type="dc:Point" x="1192" y="198" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1125.5" y="177" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_14w7v9s_di" bpmnElement="IntermediateCatchEvent_14w7v9s">
+        <dc:Bounds x="-6" y="359" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-29" y="421" width="88" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1bddzne_di" bpmnElement="SequenceFlow_1bddzne">
+        <di:waypoint xsi:type="dc:Point" x="30" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="97" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="63.5" y="356" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_14kqo0r_di" bpmnElement="ScriptTask_14kqo0r">
+        <dc:Bounds x="122" y="972" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_1af6rwh_di" bpmnElement="ServiceTask_1af6rwh">
+        <dc:Bounds x="350" y="972" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0t4nds2_di" bpmnElement="SequenceFlow_0t4nds2">
+        <di:waypoint xsi:type="dc:Point" x="222" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="350" y="1012" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="286" y="991" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_06o383f_di" bpmnElement="SequenceFlow_06o383f">
+        <di:waypoint xsi:type="dc:Point" x="450" y="1012" />
+        <di:waypoint xsi:type="dc:Point" x="577" y="1012" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="513.5" y="991" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_04a0t3p_di" bpmnElement="ScriptTask_04a0t3p">
+        <dc:Bounds x="782" y="337" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wzk6tu_di" bpmnElement="SequenceFlow_1wzk6tu">
+        <di:waypoint xsi:type="dc:Point" x="882" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="959" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="920.5" y="356" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_1k72hze_di" bpmnElement="IntermediateThrowEvent_1k72hze">
+        <dc:Bounds x="646" y="447" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="631" y="487" width="76" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0kvl23y_di" bpmnElement="SequenceFlow_0kvl23y">
+        <di:waypoint xsi:type="dc:Point" x="1059" y="377" />
+        <di:waypoint xsi:type="dc:Point" x="1192" y="377" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1125.5" y="356" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0zmd4rt_di" bpmnElement="SequenceFlow_0zmd4rt">
+        <di:waypoint xsi:type="dc:Point" x="664" y="402" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="447" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="670" y="419" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
index 7735b19..ca43c00 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
@@ -7,20 +7,12 @@
     <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="createSI_startEvent" targetRef="preProcessRequest_ScriptTask" />
     <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_04xlw7s</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def dcsi = new DoUpdateE2EServiceInstance()
 dcsi.preProcessRequest(execution)
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="CallActivity_18nvmnn" />
-    <bpmn2:scriptTask id="ScriptTask_0i8cqdy_PostProcessAAIGET" name="Post Process AAI GET" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0qg0uyn</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_167wc99</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoUpdateE2EServiceInstance()
-dcsi.postProcessAAIGET(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
     <bpmn2:scriptTask id="Task_09laxun" name="PreProcess for Add Resources" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_115mdln</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0yztz2p</bpmn2:outgoing>
@@ -28,42 +20,19 @@
 def csi = new  DoUpdateE2EServiceInstance()
 csi.preProcessForAddResource(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:callActivity id="Task_1wyyy33" name="Call DoCreateResources" calledElement="DoCreateResources">
-      <bpmn2:extensionElements>
-        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
-        <camunda:in source="serviceDescription" target="nsServiceDescription" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
-        <camunda:in source="serviceType" target="serviceType" />
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="operationId" target="operationId" />
-        <camunda:in source="resourceType" target="resourceType" />
-        <camunda:in source="uuiRequest" target="uuiRequest" />
-        <camunda:in source="serviceDecomposition_Target" target="serviceDecomposition" />
-        <camunda:in source="operationType" target="operationType" />
-        <camunda:in source="addResourceList" target="addResourceList" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0yztz2p</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0lblyhi</bpmn2:outgoing>
-    </bpmn2:callActivity>
     <bpmn2:scriptTask id="Task_0ag30bf" name="PostProcess for Add Resource" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0lblyhi</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1nqfgvs</bpmn2:outgoing>
+      <bpmn2:incoming>SequenceFlow_1wwjugw</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_177wo8z</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def csi = new  DoUpdateE2EServiceInstance()
 csi.postProcessForAddResource(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:intermediateCatchEvent id="StartEvent_StartResource" name="StartAddResources">
       <bpmn2:outgoing>SequenceFlow_115mdln</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartAddResource" />
+      <bpmn2:linkEventDefinition name="StartAddResources" />
     </bpmn2:intermediateCatchEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1dwg5lz" name="GoToStartCompareModelVersions">
-      <bpmn2:incoming>SequenceFlow_167wc99</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
-    </bpmn2:intermediateThrowEvent>
     <bpmn2:sequenceFlow id="SequenceFlow_115mdln" sourceRef="StartEvent_StartResource" targetRef="Task_09laxun" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0yztz2p" sourceRef="Task_09laxun" targetRef="Task_1wyyy33" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0lblyhi" sourceRef="Task_1wyyy33" targetRef="Task_0ag30bf" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0yztz2p" sourceRef="Task_09laxun" targetRef="ExclusiveGateway_06gj84t" />
     <bpmn2:scriptTask id="ScriptTask_1xxvnst" name="PreProcess for Delete Resources" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1qn0865</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14rubz2</bpmn2:outgoing>
@@ -71,24 +40,8 @@
 def csi = new  DoUpdateE2EServiceInstance()
 csi.preProcessForDeleteResource(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:callActivity id="CallActivity_0yphqzk" name="Call DoDeleteResources" calledElement="DoDeleteResources">
-      <bpmn2:extensionElements>
-        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
-        <camunda:in source="serviceType" target="serviceType" />
-        <camunda:in source="serviceId" target="serviceId" />
-        <camunda:in source="operationId" target="operationId" />
-        <camunda:in source="serviceDecomposition_Original" target="serviceDecomposition" />
-        <camunda:in source="operationType" target="operationType" />
-        <camunda:in source="delResourceList" target="delResourceList" />
-        <camunda:in source="serviceRelationShip" target="serviceRelationShip" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_14rubz2</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0tm9bw9</bpmn2:outgoing>
-    </bpmn2:callActivity>
     <bpmn2:scriptTask id="ScriptTask_00wgfrc" name="PostProcess for Delete Resource" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0tm9bw9</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0w4t4ao</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1uu6uiu</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def csi = new  DoUpdateE2EServiceInstance()
@@ -99,63 +52,9 @@
       <bpmn2:linkEventDefinition name="StartDeleteResources" />
     </bpmn2:intermediateCatchEvent>
     <bpmn2:sequenceFlow id="SequenceFlow_1qn0865" sourceRef="IntermediateCatchEvent_0h6d9jb" targetRef="ScriptTask_1xxvnst" />
-    <bpmn2:sequenceFlow id="SequenceFlow_14rubz2" sourceRef="ScriptTask_1xxvnst" targetRef="CallActivity_0yphqzk" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0tm9bw9" sourceRef="CallActivity_0yphqzk" targetRef="ScriptTask_00wgfrc" />
-    <bpmn2:scriptTask id="ScriptTask_0wl77h6" name="Post for Compare Model Versions" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_02d5ibj</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0l4gosl</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def csi = new  DoUpdateE2EServiceInstance()
-csi.postCompareModelVersions(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0gk8ige" name="StartCompareModelVersions">
-      <bpmn2:outgoing>SequenceFlow_1vtlt1v</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartCompareModelVersions" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:scriptTask id="ScriptTask_1afvv50" name="Prepare for Compare Model Versions" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1vtlt1v</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0h40pn8</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def ddsi = new DoUpdateE2EServiceInstance()
-ddsi.preCompareModelVersions(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_02d5ibj" sourceRef="ServiceTask_02u5iza" targetRef="ScriptTask_0wl77h6" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1vtlt1v" sourceRef="IntermediateCatchEvent_0gk8ige" targetRef="ScriptTask_1afvv50" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0h40pn8" sourceRef="ScriptTask_1afvv50" targetRef="ServiceTask_02u5iza" />
-    <bpmn2:callActivity id="ServiceTask_02u5iza" name="Call DoCompareModelVersions" calledElement="DoCompareModelVersions">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="model-invariant-id-target" target="model-invariant-id-target" />
-        <camunda:in source="model-version-id-target" target="model-version-id-target" />
-        <camunda:in source="model-invariant-id-original" target="model-invariant-id-original" />
-        <camunda:in source="model-version-id-original" target="model-version-id-original" />
-        <camunda:out source="serviceDecomposition_Target" target="serviceDecomposition_Target" />
-        <camunda:out source="serviceDecomposition_Original" target="serviceDecomposition_Original" />
-        <camunda:out source="addResourceList" target="addResourceList" />
-        <camunda:out source="delResourceList" target="delResourceList" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0h40pn8</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_02d5ibj</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:callActivity id="CallActivity_18nvmnn" name="Call AAI Generic GetService" calledElement="GenericGetService">
-      <bpmn2:extensionElements>
-        <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
-        <camunda:in sourceExpression="service-instance" target="GENGS_type" />
-        <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
-        <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" />
-        <camunda:out source="GENGS_service" target="GENGS_service" />
-        <camunda:in source="globalSubscriberId" target="GENGS_globalCustomerId" />
-        <camunda:in source="serviceType" target="GENGS_serviceType" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0qg0uyn</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_0qg0uyn" sourceRef="CallActivity_18nvmnn" targetRef="ScriptTask_0i8cqdy_PostProcessAAIGET" />
+    <bpmn2:sequenceFlow id="SequenceFlow_14rubz2" sourceRef="ScriptTask_1xxvnst" targetRef="ExclusiveGateway_0ae22y8" />
     <bpmn2:scriptTask id="ScriptTask_0acnvkp" name="Prepare Resource Oper Status" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0l4gosl</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_04xlw7s</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0r6c0ci</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def ddsi = new DoUpdateE2EServiceInstance()
@@ -183,17 +82,10 @@
       <bpmn2:incoming>SequenceFlow_0r6c0ci</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1muxopq</bpmn2:outgoing>
     </bpmn2:serviceTask>
-    <bpmn2:scriptTask id="ScriptTask_0r74c3c" name="Post Resource Oper Status" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1muxopq</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1sgsysh</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def dcsi = new DoUpdateE2EServiceInstance()
-dcsi.postResourcesOperStatus(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_0r6c0ci" sourceRef="ScriptTask_0acnvkp" targetRef="ServiceTask_17u9q9u" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1muxopq" sourceRef="ServiceTask_17u9q9u" targetRef="ScriptTask_0r74c3c" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1muxopq" sourceRef="ServiceTask_17u9q9u" targetRef="IntermediateThrowEvent_09ur9ds" />
     <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0vneaao" name="GoTo StartDeleteResources">
-      <bpmn2:incoming>SequenceFlow_1nqfgvs</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_177wo8z</bpmn2:incoming>
       <bpmn2:linkEventDefinition name="StartDeleteResources" />
     </bpmn2:intermediateThrowEvent>
     <bpmn2:callActivity id="CallActivity_1nm9zq7" name="Call Custom E2E Put Service" calledElement="CustomE2EPutService">
@@ -224,7 +116,7 @@
     <bpmn2:sequenceFlow id="SequenceFlow_1demy08" sourceRef="IntermediateCatchEvent_0a9bdjw" targetRef="ScriptTask_195nptq" />
     <bpmn2:sequenceFlow id="SequenceFlow_0f76thv" sourceRef="CallActivity_1nm9zq7" targetRef="ScriptTask_0xtabf8" />
     <bpmn2:scriptTask id="ScriptTask_19v8l1w" name="Post Config Service Instance Update" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0h3kdi2</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0ku36oy</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_07aa121</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def csi = new  DoUpdateE2EServiceInstance()
@@ -237,41 +129,8 @@
     <bpmn2:endEvent id="EndEvent_0exzmfn">
       <bpmn2:incoming>SequenceFlow_07aa121</bpmn2:incoming>
     </bpmn2:endEvent>
-    <bpmn2:scriptTask id="ScriptTask_0jsblrq" name="Prepare Update Service Oper Status(100%)" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0ku36oy</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0mwh16g</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-execution.setVariable("progress", "100")
-execution.setVariable("operationStatus", "End")
-def ddsi = new DoUpdateE2EServiceInstance()
-ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:serviceTask id="ServiceTask_1ydxyw0" name="Update Service Oper Status">
-      <bpmn2:extensionElements>
-        <camunda:connector>
-          <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
-            <camunda:inputParameter name="headers">
-              <camunda:map>
-                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
-                <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
-              </camunda:map>
-            </camunda:inputParameter>
-            <camunda:inputParameter name="payload">${CVFMI_updateServiceOperStatusRequest}</camunda:inputParameter>
-            <camunda:inputParameter name="method">POST</camunda:inputParameter>
-            <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
-            <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
-          </camunda:inputOutput>
-          <camunda:connectorId>http-connector</camunda:connectorId>
-        </camunda:connector>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0mwh16g</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0h3kdi2</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_0h3kdi2" sourceRef="ServiceTask_1ydxyw0" targetRef="ScriptTask_19v8l1w" />
     <bpmn2:sequenceFlow id="SequenceFlow_07aa121" sourceRef="ScriptTask_19v8l1w" targetRef="EndEvent_0exzmfn" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0ku36oy" sourceRef="IntermediateCatchEvent_0z04o3s" targetRef="ScriptTask_0jsblrq" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0mwh16g" sourceRef="ScriptTask_0jsblrq" targetRef="ServiceTask_1ydxyw0" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0ku36oy" sourceRef="IntermediateCatchEvent_0z04o3s" targetRef="ScriptTask_19v8l1w" />
     <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_06lo96a" name="GoTo UpdateAAI">
       <bpmn2:incoming>SequenceFlow_1uu6uiu</bpmn2:incoming>
       <bpmn2:linkEventDefinition name="UpdateAAI" />
@@ -281,14 +140,10 @@
       <bpmn2:linkEventDefinition name="FinishProcess" />
     </bpmn2:intermediateThrowEvent>
     <bpmn2:sequenceFlow id="SequenceFlow_0x0mhlj" sourceRef="ScriptTask_0xtabf8" targetRef="IntermediateThrowEvent_0hucdtk" />
-    <bpmn2:sequenceFlow id="SequenceFlow_167wc99" sourceRef="ScriptTask_0i8cqdy_PostProcessAAIGET" targetRef="IntermediateThrowEvent_1dwg5lz" />
     <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_09ur9ds" name="GoTo StartAddResources">
-      <bpmn2:incoming>SequenceFlow_1sgsysh</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="StartAddResource" />
+      <bpmn2:incoming>SequenceFlow_1muxopq</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartAddResources" />
     </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_0l4gosl" sourceRef="ScriptTask_0wl77h6" targetRef="ScriptTask_0acnvkp" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1sgsysh" sourceRef="ScriptTask_0r74c3c" targetRef="IntermediateThrowEvent_09ur9ds" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1nqfgvs" sourceRef="Task_0ag30bf" targetRef="IntermediateThrowEvent_0vneaao" />
     <bpmn2:sequenceFlow id="SequenceFlow_1uu6uiu" sourceRef="ScriptTask_00wgfrc" targetRef="IntermediateThrowEvent_06lo96a" />
     <bpmn2:subProcess id="SubProcess_0jo0nms" name="Sub-process for Application Errors" triggeredByEvent="true">
       <bpmn2:startEvent id="StartEvent_06768u3">
@@ -298,7 +153,7 @@
       <bpmn2:endEvent id="EndEvent_014jyvb">
         <bpmn2:incoming>SequenceFlow_02znk15</bpmn2:incoming>
       </bpmn2:endEvent>
-      <bpmn2:scriptTask id="ScriptTask_1awrp72" name="Pre Process Rollback" scriptFormat="groovy">
+      <bpmn2:scriptTask id="ScriptTask_1awrp72" name="Pre Process Exception" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_05j3sat</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_19ly8h7</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

@@ -306,8 +161,8 @@
 dcsi.preProcessRollback(execution)

 ]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:scriptTask id="ScriptTask_0vc9jgo" name="Post Process Rollback" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_0utvwkh</bpmn2:incoming>
+      <bpmn2:scriptTask id="ScriptTask_0vc9jgo" name="Post Process Exception" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_19ly8h7</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_02znk15</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

 def dcsi = new DoCreateResources()

@@ -316,46 +171,14 @@
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_05j3sat" sourceRef="StartEvent_06768u3" targetRef="ScriptTask_1awrp72" />
       <bpmn2:sequenceFlow id="SequenceFlow_02znk15" sourceRef="ScriptTask_0vc9jgo" targetRef="EndEvent_014jyvb" />
-      <bpmn2:sequenceFlow id="SequenceFlow_19ly8h7" sourceRef="ScriptTask_1awrp72" targetRef="ScriptTask_1bb9adn" />
-      <bpmn2:serviceTask id="ServiceTask_1kw189j" name="Update Service Oper Status">
-        <bpmn2:extensionElements>
-          <camunda:connector>
-            <camunda:inputOutput>
-              <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
-              <camunda:inputParameter name="headers">
-                <camunda:map>
-                  <camunda:entry key="content-type">application/soap+xml</camunda:entry>
-                  <camunda:entry key="Authorization">Basic QlBFTENsaWVudDpwYXNzd29yZDEk</camunda:entry>
-                </camunda:map>
-              </camunda:inputParameter>
-              <camunda:inputParameter name="payload">${CVFMI_updateServiceOperStatusRequest}</camunda:inputParameter>
-              <camunda:inputParameter name="method">POST</camunda:inputParameter>
-              <camunda:outputParameter name="CVFMI_dbResponseCode">${statusCode}</camunda:outputParameter>
-              <camunda:outputParameter name="CVFMI_dbResponse">${response}</camunda:outputParameter>
-            </camunda:inputOutput>
-            <camunda:connectorId>http-connector</camunda:connectorId>
-          </camunda:connector>
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_1lqzi94</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0utvwkh</bpmn2:outgoing>
-      </bpmn2:serviceTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_0utvwkh" sourceRef="ServiceTask_1kw189j" targetRef="ScriptTask_0vc9jgo" />
-      <bpmn2:scriptTask id="ScriptTask_1bb9adn" name="Prepare Update Service Oper Status(error)" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_19ly8h7</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1lqzi94</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-execution.setVariable("operationStatus", "error")
-def ddsi = new DoUpdateE2EServiceInstance()
-ddsi.preUpdateServiceOperationStatus(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_1lqzi94" sourceRef="ScriptTask_1bb9adn" targetRef="ServiceTask_1kw189j" />
+      <bpmn2:sequenceFlow id="SequenceFlow_19ly8h7" sourceRef="ScriptTask_1awrp72" targetRef="ScriptTask_0vc9jgo" />
     </bpmn2:subProcess>
-    <bpmn2:scriptTask id="ScriptTask_195nptq" name="Pre Process AAI GET 2" scriptFormat="groovy">
+    <bpmn2:scriptTask id="ScriptTask_195nptq" name="Pre Process AAI GET" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1demy08</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1cy5gq2</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def dcsi = new DoUpdateE2EServiceInstance()
-dcsi.preProcessAAIGET2(execution)]]></bpmn2:script>
+dcsi.preProcessAAIGET(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1cy5gq2" sourceRef="ScriptTask_195nptq" targetRef="CallActivity_069o6fn" />
     <bpmn2:callActivity id="CallActivity_069o6fn" name="Call AAI Generic GetService" calledElement="GenericGetService">
@@ -373,12 +196,12 @@
       <bpmn2:incoming>SequenceFlow_1cy5gq2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1vy856f</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_0lp9y03" name="Post Process AAI GET 2" scriptFormat="groovy">
+    <bpmn2:scriptTask id="ScriptTask_0lp9y03" name="Post Process AAI GET" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1vy856f</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14ggluy</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def dcsi = new DoUpdateE2EServiceInstance()
-dcsi.postProcessAAIGET2(execution)]]></bpmn2:script>
+dcsi.postProcessAAIGET(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1vy856f" sourceRef="CallActivity_069o6fn" targetRef="ScriptTask_0lp9y03" />
     <bpmn2:sequenceFlow id="SequenceFlow_14ggluy" sourceRef="ScriptTask_0lp9y03" targetRef="ScriptTask_0sis7k0" />
@@ -390,45 +213,99 @@
 dcsi.preProcessAAIPUT(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1kx5ke9" sourceRef="ScriptTask_0sis7k0" targetRef="CallActivity_1nm9zq7" />
+    <bpmn2:sequenceFlow id="SequenceFlow_04xlw7s" sourceRef="preProcessRequest_ScriptTask" targetRef="ScriptTask_0acnvkp" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_06gj84t" name="HasResourcetoAdd?">
+      <bpmn2:incoming>SequenceFlow_0yztz2p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0ttlte0</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_01po987</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0ttlte0" name="Yes" sourceRef="ExclusiveGateway_06gj84t" targetRef="CallActivity_07pl1uw" />
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0xny7on" name="GoTo StartDeleteResources">
+      <bpmn2:incoming>SequenceFlow_01po987</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="StartDeleteResources" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_01po987" name="No" sourceRef="ExclusiveGateway_06gj84t" targetRef="IntermediateThrowEvent_0xny7on">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("hasResourcetoAdd")== false}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0ae22y8" name="HasResourcetoDelete?">
+      <bpmn2:incoming>SequenceFlow_14rubz2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0vjx5a2</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1do7kq0</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0y1ii4i" name="GoTo UpdateAAI">
+      <bpmn2:incoming>SequenceFlow_1do7kq0</bpmn2:incoming>
+      <bpmn2:linkEventDefinition name="UpdateAAI" />
+    </bpmn2:intermediateThrowEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_177wo8z" sourceRef="Task_0ag30bf" targetRef="IntermediateThrowEvent_0vneaao" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0vjx5a2" name="Yes" sourceRef="ExclusiveGateway_0ae22y8" targetRef="CallActivity_11obqi0" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1do7kq0" name="No" sourceRef="ExclusiveGateway_0ae22y8" targetRef="IntermediateThrowEvent_0y1ii4i">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("hasResourcetoDelete")== false}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:callActivity id="CallActivity_11obqi0" name="Call DoDeleteResources" calledElement="DoDeleteResourcesV1">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="serviceType" target="serviceType" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="URN_mso_workflow_sdncadapter_callback" target="URN_mso_workflow_sdncadapter_callback" />
+        <camunda:in source="serviceInputParams" target="serviceInputParams" />
+        <camunda:in source="deleteResourceList" target="deleteResourceList" />
+        <camunda:in source="resourceInstanceIDs" target="resourceInstanceIDs" />
+        <camunda:in source="operationType" target="operationType" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0vjx5a2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0w4t4ao</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_0w4t4ao" sourceRef="CallActivity_11obqi0" targetRef="ScriptTask_00wgfrc" />
+    <bpmn2:callActivity id="CallActivity_07pl1uw" name="Call DoCreateResources" calledElement="DoCreateResourcesV3">
+      <bpmn2:extensionElements>
+        <camunda:in source="nsServiceName" target="nsServiceName" />
+        <camunda:in source="serviceDescription" target="nsServiceDescription" />
+        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="serviceType" target="serviceType" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="operationId" target="operationId" />
+        <camunda:in source="resourceType" target="resourceType" />
+        <camunda:in source="resourceUUID" target="resourceUUID" />
+        <camunda:in source="resourceParameters" target="resourceParameters" />
+        <camunda:in source="operationType" target="operationType" />
+        <camunda:in source="addResourceList" target="addResourceList" />
+        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
+        <camunda:in source="serviceDecomposition_Target" target="serviceDecomposition" />
+        <camunda:in source="uuiRequest" target="uuiRequest" />
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0ttlte0</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1wwjugw</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_1wwjugw" sourceRef="CallActivity_07pl1uw" targetRef="Task_0ag30bf" />
   </bpmn2:process>
   <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoUpdateE2EServiceInstance">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="createSI_startEvent">
-        <dc:Bounds x="74" y="404" width="36" height="36" />
+        <dc:Bounds x="74" y="622" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="68" y="445" width="50" height="12" />
+          <dc:Bounds x="68" y="663" width="50" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
-        <dc:Bounds x="293" y="382" width="100" height="80" />
+        <dc:Bounds x="293" y="600" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
-        <di:waypoint xsi:type="dc:Point" x="110" y="422" />
-        <di:waypoint xsi:type="dc:Point" x="293" y="422" />
+        <di:waypoint xsi:type="dc:Point" x="110" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="293" y="640" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="156.5" y="407" width="90" height="0" />
+          <dc:Bounds x="156.5" y="625" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_61" targetElement="CallActivity_18nvmnn_di">
-        <di:waypoint xsi:type="dc:Point" x="393" y="422" />
-        <di:waypoint xsi:type="dc:Point" x="581" y="420" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="442" y="406" width="90" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_0i8cqdy_di" bpmnElement="ScriptTask_0i8cqdy_PostProcessAAIGET">
-        <dc:Bounds x="858" y="382" width="100" height="80" />
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1azssf7_di" bpmnElement="Task_09laxun">
         <dc:Bounds x="293" y="828" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_1v57nb9_di" bpmnElement="Task_1wyyy33">
-        <dc:Bounds x="589" y="828" width="100" height="80" />
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1fj89ew_di" bpmnElement="Task_0ag30bf">
-        <dc:Bounds x="858" y="828" width="100" height="80" />
+        <dc:Bounds x="1229" y="828" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateCatchEvent_0jks7by_di" bpmnElement="StartEvent_StartResource">
         <dc:Bounds x="74" y="850" width="36" height="36" />
@@ -436,12 +313,6 @@
           <dc:Bounds x="50" y="895" width="84" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0ys6800_di" bpmnElement="IntermediateThrowEvent_1dwg5lz">
-        <dc:Bounds x="1951" y="404" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1925" y="444" width="90" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_115mdln_di" bpmnElement="SequenceFlow_115mdln">
         <di:waypoint xsi:type="dc:Point" x="110" y="868" />
         <di:waypoint xsi:type="dc:Point" x="293" y="868" />
@@ -451,26 +322,16 @@
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0yztz2p_di" bpmnElement="SequenceFlow_0yztz2p">
         <di:waypoint xsi:type="dc:Point" x="393" y="868" />
-        <di:waypoint xsi:type="dc:Point" x="589" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="590" y="868" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="446" y="847" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0lblyhi_di" bpmnElement="SequenceFlow_0lblyhi">
-        <di:waypoint xsi:type="dc:Point" x="689" y="868" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="868" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="728.5" y="847" width="90" height="12" />
+          <dc:Bounds x="446.5" y="847" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_1xxvnst_di" bpmnElement="ScriptTask_1xxvnst">
         <dc:Bounds x="293" y="1081" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_0yphqzk_di" bpmnElement="CallActivity_0yphqzk">
-        <dc:Bounds x="589" y="1081" width="100" height="80" />
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_00wgfrc_di" bpmnElement="ScriptTask_00wgfrc">
-        <dc:Bounds x="858" y="1081" width="100" height="80" />
+        <dc:Bounds x="1240" y="1081" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateCatchEvent_0h6d9jb_di" bpmnElement="IntermediateCatchEvent_0h6d9jb">
         <dc:Bounds x="74" y="1103" width="36" height="36" />
@@ -489,100 +350,44 @@
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_14rubz2_di" bpmnElement="SequenceFlow_14rubz2">
         <di:waypoint xsi:type="dc:Point" x="393" y="1121" />
-        <di:waypoint xsi:type="dc:Point" x="589" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="590" y="1121" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="446" y="1100" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0tm9bw9_di" bpmnElement="SequenceFlow_0tm9bw9">
-        <di:waypoint xsi:type="dc:Point" x="689" y="1121" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="1121" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="728.5" y="1100" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_0wl77h6_di" bpmnElement="ScriptTask_0wl77h6">
-        <dc:Bounds x="858" y="600" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_0gk8ige_di" bpmnElement="IntermediateCatchEvent_0gk8ige">
-        <dc:Bounds x="74" y="622" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="50" y="684" width="89" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1afvv50_di" bpmnElement="ScriptTask_1afvv50">
-        <dc:Bounds x="293" y="600" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_02d5ibj_di" bpmnElement="SequenceFlow_02d5ibj">
-        <di:waypoint xsi:type="dc:Point" x="689" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="640" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="744" y="593" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1vtlt1v_di" bpmnElement="SequenceFlow_1vtlt1v">
-        <di:waypoint xsi:type="dc:Point" x="110" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="293" y="640" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="156.5" y="619" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0h40pn8_di" bpmnElement="SequenceFlow_0h40pn8">
-        <di:waypoint xsi:type="dc:Point" x="393" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="589" y="640" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="446" y="578" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="CallActivity_00ftzjj_di" bpmnElement="ServiceTask_02u5iza">
-        <dc:Bounds x="589" y="600" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_18nvmnn_di" bpmnElement="CallActivity_18nvmnn">
-        <dc:Bounds x="581" y="380" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0qg0uyn_di" bpmnElement="SequenceFlow_0qg0uyn">
-        <di:waypoint xsi:type="dc:Point" x="681" y="420" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="422" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="724.5" y="400" width="90" height="12" />
+          <dc:Bounds x="446.5" y="1100" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_0acnvkp_di" bpmnElement="ScriptTask_0acnvkp">
-        <dc:Bounds x="1152" y="600" width="100" height="80" />
+        <dc:Bounds x="589" y="600" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ServiceTask_17u9q9u_di" bpmnElement="ServiceTask_17u9q9u">
-        <dc:Bounds x="1421" y="600" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0r74c3c_di" bpmnElement="ScriptTask_0r74c3c">
-        <dc:Bounds x="1675" y="600" width="100" height="80" />
+        <dc:Bounds x="872" y="600" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0r6c0ci_di" bpmnElement="SequenceFlow_0r6c0ci">
-        <di:waypoint xsi:type="dc:Point" x="1252" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="1421" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="689" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="774" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="872" y="640" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1291.5" y="619" width="90" height="12" />
+          <dc:Bounds x="744" y="634" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1muxopq_di" bpmnElement="SequenceFlow_1muxopq">
-        <di:waypoint xsi:type="dc:Point" x="1521" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="1675" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="972" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="1762" y="640" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1553" y="619" width="90" height="12" />
+          <dc:Bounds x="1322" y="619" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="IntermediateThrowEvent_0vneaao_di" bpmnElement="IntermediateThrowEvent_0vneaao">
-        <dc:Bounds x="1951" y="850" width="36" height="36" />
+        <dc:Bounds x="1762" y="850" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1925" y="890" width="90" height="24" />
+          <dc:Bounds x="1738" y="890" width="86" height="36" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_1nm9zq7_di" bpmnElement="CallActivity_1nm9zq7">
-        <dc:Bounds x="1410" y="1333" width="100" height="80" />
+        <dc:Bounds x="1229" y="1333" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0xtabf8_di" bpmnElement="ScriptTask_0xtabf8">
-        <dc:Bounds x="1666" y="1333" width="100" height="80" />
+        <dc:Bounds x="1473" y="1333" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateCatchEvent_0a9bdjw_di" bpmnElement="IntermediateCatchEvent_0a9bdjw">
         <dc:Bounds x="74" y="1355" width="36" height="36" />
@@ -600,123 +405,71 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0f76thv_di" bpmnElement="SequenceFlow_0f76thv">
-        <di:waypoint xsi:type="dc:Point" x="1510" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1594" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1594" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1666" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1329" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1473" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1609" y="1367" width="0" height="12" />
+          <dc:Bounds x="1356" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_19v8l1w_di" bpmnElement="ScriptTask_19v8l1w">
-        <dc:Bounds x="1460" y="1474" width="100" height="80" />
+        <dc:Bounds x="858" y="1579" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateCatchEvent_0z04o3s_di" bpmnElement="IntermediateCatchEvent_0z04o3s">
-        <dc:Bounds x="74" y="1496" width="36" height="36" />
+        <dc:Bounds x="74" y="1601" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="57" y="1536" width="70" height="12" />
+          <dc:Bounds x="57" y="1641" width="70" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_0exzmfn_di" bpmnElement="EndEvent_0exzmfn">
-        <dc:Bounds x="1951" y="1496" width="36" height="36" />
+        <dc:Bounds x="1772" y="1601" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1924" y="1536" width="0" height="12" />
+          <dc:Bounds x="1700" y="1641" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0jsblrq_di" bpmnElement="ScriptTask_0jsblrq">
-        <dc:Bounds x="283" y="1474" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_1ydxyw0_di" bpmnElement="ServiceTask_1ydxyw0">
-        <dc:Bounds x="858" y="1474" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0h3kdi2_di" bpmnElement="SequenceFlow_0h3kdi2">
-        <di:waypoint xsi:type="dc:Point" x="958" y="1514" />
-        <di:waypoint xsi:type="dc:Point" x="1460" y="1514" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1209" y="1493" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_07aa121_di" bpmnElement="SequenceFlow_07aa121">
-        <di:waypoint xsi:type="dc:Point" x="1560" y="1514" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="1514" />
+        <di:waypoint xsi:type="dc:Point" x="958" y="1619" />
+        <di:waypoint xsi:type="dc:Point" x="1772" y="1619" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1755.5" y="1493" width="0" height="12" />
+          <dc:Bounds x="1320" y="1598" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0ku36oy_di" bpmnElement="SequenceFlow_0ku36oy">
-        <di:waypoint xsi:type="dc:Point" x="110" y="1514" />
-        <di:waypoint xsi:type="dc:Point" x="283" y="1514" />
+        <di:waypoint xsi:type="dc:Point" x="110" y="1619" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="1619" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="196.5" y="1493" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0mwh16g_di" bpmnElement="SequenceFlow_0mwh16g">
-        <di:waypoint xsi:type="dc:Point" x="383" y="1514" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="1514" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="620.5" y="1493" width="0" height="12" />
+          <dc:Bounds x="439" y="1598" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="IntermediateThrowEvent_06lo96a_di" bpmnElement="IntermediateThrowEvent_06lo96a">
-        <dc:Bounds x="1951" y="1103" width="36" height="36" />
+        <dc:Bounds x="1762" y="1103" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1939" y="1143" width="82" height="12" />
+          <dc:Bounds x="1750" y="1143" width="82" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateThrowEvent_0hucdtk_di" bpmnElement="IntermediateThrowEvent_0hucdtk">
-        <dc:Bounds x="1951" y="1355" width="36" height="36" />
+        <dc:Bounds x="1762" y="1355" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1945" y="1395" width="70" height="24" />
+          <dc:Bounds x="1756" y="1395" width="70" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0x0mhlj_di" bpmnElement="SequenceFlow_0x0mhlj">
-        <di:waypoint xsi:type="dc:Point" x="1766" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1863" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1863" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1573" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1762" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1878" y="1367" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_167wc99_di" bpmnElement="SequenceFlow_167wc99">
-        <di:waypoint xsi:type="dc:Point" x="958" y="422" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="422" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1409.5" y="401" width="90" height="12" />
+          <dc:Bounds x="1622.5" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="IntermediateThrowEvent_09ur9ds_di" bpmnElement="IntermediateThrowEvent_09ur9ds">
-        <dc:Bounds x="1951" y="622" width="36" height="36" />
+        <dc:Bounds x="1762" y="622" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1927" y="663" width="84" height="36" />
+          <dc:Bounds x="1738" y="663" width="84" height="36" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0l4gosl_di" bpmnElement="SequenceFlow_0l4gosl">
-        <di:waypoint xsi:type="dc:Point" x="958" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="1152" y="640" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1010" y="619" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1sgsysh_di" bpmnElement="SequenceFlow_1sgsysh">
-        <di:waypoint xsi:type="dc:Point" x="1775" y="640" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="640" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1863" y="619" width="0" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1nqfgvs_di" bpmnElement="SequenceFlow_1nqfgvs">
-        <di:waypoint xsi:type="dc:Point" x="958" y="868" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="868" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1409.5" y="847" width="90" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1uu6uiu_di" bpmnElement="SequenceFlow_1uu6uiu">
-        <di:waypoint xsi:type="dc:Point" x="958" y="1121" />
-        <di:waypoint xsi:type="dc:Point" x="1951" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="1340" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="1762" y="1121" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1409.5" y="1100" width="90" height="12" />
+          <dc:Bounds x="1506" y="1100" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="SubProcess_0jo0nms_di" bpmnElement="SubProcess_0jo0nms" isExpanded="true">
@@ -725,13 +478,13 @@
       <bpmndi:BPMNShape id="StartEvent_06768u3_di" bpmnElement="StartEvent_06768u3">
         <dc:Bounds x="266" y="1895" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="239" y="1936" width="0" height="12" />
+          <dc:Bounds x="194" y="1936" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_014jyvb_di" bpmnElement="EndEvent_014jyvb">
         <dc:Bounds x="1581" y="1895" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1554" y="1936" width="0" height="12" />
+          <dc:Bounds x="1509" y="1936" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1awrp72_di" bpmnElement="ScriptTask_1awrp72">
@@ -744,21 +497,21 @@
         <di:waypoint xsi:type="dc:Point" x="302" y="1913" />
         <di:waypoint xsi:type="dc:Point" x="557" y="1913" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="384.5" y="1892" width="90" height="12" />
+          <dc:Bounds x="385" y="1892" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_02znk15_di" bpmnElement="SequenceFlow_02znk15">
         <di:waypoint xsi:type="dc:Point" x="1348" y="1913" />
         <di:waypoint xsi:type="dc:Point" x="1581" y="1913" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1420.5" y="1898" width="0" height="12" />
+          <dc:Bounds x="1376" y="1898" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_19ly8h7_di" bpmnElement="SequenceFlow_19ly8h7">
         <di:waypoint xsi:type="dc:Point" x="657" y="1913" />
-        <di:waypoint xsi:type="dc:Point" x="786" y="1913" />
+        <di:waypoint xsi:type="dc:Point" x="1248" y="1913" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="676.5" y="1892" width="90" height="12" />
+          <dc:Bounds x="907.5" y="1892" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_195nptq_di" bpmnElement="ScriptTask_195nptq">
@@ -766,63 +519,129 @@
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1cy5gq2_di" bpmnElement="SequenceFlow_1cy5gq2">
         <di:waypoint xsi:type="dc:Point" x="393" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="589" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="495" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="491" y="1352" width="0" height="12" />
+          <dc:Bounds x="399" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_069o6fn_di" bpmnElement="CallActivity_069o6fn">
-        <dc:Bounds x="589" y="1333" width="100" height="80" />
+        <dc:Bounds x="495" y="1333" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0lp9y03_di" bpmnElement="ScriptTask_0lp9y03">
-        <dc:Bounds x="858" y="1333" width="100" height="80" />
+        <dc:Bounds x="724" y="1333" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1vy856f_di" bpmnElement="SequenceFlow_1vy856f">
-        <di:waypoint xsi:type="dc:Point" x="689" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="806" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="806" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="595" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="724" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="821" y="1367" width="0" height="12" />
+          <dc:Bounds x="614.5" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_14ggluy_di" bpmnElement="SequenceFlow_14ggluy">
-        <di:waypoint xsi:type="dc:Point" x="958" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1055" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1055" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1152" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="824" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="978" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1070" y="1367" width="0" height="12" />
+          <dc:Bounds x="856" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_0sis7k0_di" bpmnElement="ScriptTask_0sis7k0">
-        <dc:Bounds x="1152" y="1333" width="100" height="80" />
+        <dc:Bounds x="978" y="1333" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1kx5ke9_di" bpmnElement="SequenceFlow_1kx5ke9">
-        <di:waypoint xsi:type="dc:Point" x="1252" y="1373" />
-        <di:waypoint xsi:type="dc:Point" x="1410" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1078" y="1373" />
+        <di:waypoint xsi:type="dc:Point" x="1229" y="1373" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1331" y="1352" width="0" height="12" />
+          <dc:Bounds x="1108.5" y="1352" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_1kw189j_di" bpmnElement="ServiceTask_1kw189j">
-        <dc:Bounds x="1005" y="1873" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0utvwkh_di" bpmnElement="SequenceFlow_0utvwkh">
-        <di:waypoint xsi:type="dc:Point" x="1105" y="1913" />
-        <di:waypoint xsi:type="dc:Point" x="1248" y="1913" />
+      <bpmndi:BPMNEdge id="SequenceFlow_04xlw7s_di" bpmnElement="SequenceFlow_04xlw7s">
+        <di:waypoint xsi:type="dc:Point" x="393" y="640" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="640" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1176.5" y="1892" width="0" height="12" />
+          <dc:Bounds x="491" y="619" width="0" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_1bb9adn_di" bpmnElement="ScriptTask_1bb9adn">
-        <dc:Bounds x="786" y="1873" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1lqzi94_di" bpmnElement="SequenceFlow_1lqzi94">
-        <di:waypoint xsi:type="dc:Point" x="886" y="1913" />
-        <di:waypoint xsi:type="dc:Point" x="1005" y="1913" />
+      <bpmndi:BPMNShape id="ExclusiveGateway_06gj84t_di" bpmnElement="ExclusiveGateway_06gj84t" isMarkerVisible="true">
+        <dc:Bounds x="590" y="843" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="945.5" y="1892" width="0" height="12" />
+          <dc:Bounds x="573" y="815" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ttlte0_di" bpmnElement="SequenceFlow_0ttlte0">
+        <di:waypoint xsi:type="dc:Point" x="640" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="756" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="756" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="750" y="845" width="19" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0xny7on_di" bpmnElement="IntermediateThrowEvent_0xny7on">
+        <dc:Bounds x="597" y="955" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="573" y="995" width="86" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_01po987_di" bpmnElement="SequenceFlow_01po987">
+        <di:waypoint xsi:type="dc:Point" x="615" y="893" />
+        <di:waypoint xsi:type="dc:Point" x="615" y="955" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="623" y="918" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0ae22y8_di" bpmnElement="ExclusiveGateway_0ae22y8" isMarkerVisible="true">
+        <dc:Bounds x="590" y="1096" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="573" y="1068" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0y1ii4i_di" bpmnElement="IntermediateThrowEvent_0y1ii4i">
+        <dc:Bounds x="597" y="1218" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="585" y="1258" width="82" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_177wo8z_di" bpmnElement="SequenceFlow_177wo8z">
+        <di:waypoint xsi:type="dc:Point" x="1329" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="1762" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1545.5" y="847" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0vjx5a2_di" bpmnElement="SequenceFlow_0vjx5a2">
+        <di:waypoint xsi:type="dc:Point" x="640" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="872" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="747" y="1100" width="19" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1do7kq0_di" bpmnElement="SequenceFlow_1do7kq0">
+        <di:waypoint xsi:type="dc:Point" x="615" y="1146" />
+        <di:waypoint xsi:type="dc:Point" x="615" y="1218" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="623" y="1176" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_11obqi0_di" bpmnElement="CallActivity_11obqi0">
+        <dc:Bounds x="872" y="1081" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0w4t4ao_di" bpmnElement="SequenceFlow_0w4t4ao">
+        <di:waypoint xsi:type="dc:Point" x="972" y="1121" />
+        <di:waypoint xsi:type="dc:Point" x="1240" y="1121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1106" y="1100" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_07pl1uw_di" bpmnElement="CallActivity_07pl1uw">
+        <dc:Bounds x="858" y="828" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wwjugw_di" bpmnElement="SequenceFlow_1wwjugw">
+        <di:waypoint xsi:type="dc:Point" x="958" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="1101" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="1101" y="868" />
+        <di:waypoint xsi:type="dc:Point" x="1229" y="868" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1116" y="862" width="0" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
index 8d3a643..cb3e8e6 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
@@ -537,6 +537,7 @@
 		long startTime = System.currentTimeMillis();

 		msoLogger.debug("requestId is: " + requestId);

 		E2EServiceInstanceRequest e2eSir = null;

+		String serviceId = instanceIdMap.get("serviceId");

 

 		MsoRequest msoRequest = new MsoRequest(requestId);

 		ObjectMapper mapper = new ObjectMapper();

@@ -545,8 +546,6 @@
 

 		} catch (Exception e) {

           

-          this.createOperationStatusRecordForError(action, requestId);

-		  

 			msoLogger.debug("Mapping of request to JSON object failed : ", e);

 			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST,

 					MsoException.ServiceException, "Mapping of request to JSON object failed.  " + e.getMessage(),

@@ -570,7 +569,6 @@
 					ErrorNumbers.SVC_BAD_PARAMETER, null);

 			if (msoRequest.getRequestId() != null) {

 				msoLogger.debug("Logging failed message to the database");

-				this.createOperationStatusRecordForError(action, requestId);

 			}

 			msoLogger.error(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",

 					MsoLogger.ErrorCode.SchemaError, requestJSON, e);

@@ -581,10 +579,10 @@
 		}

 		

 		//check for the current operation status

-		Response resp = checkE2ESvcInstStatus(action, requestId, startTime, msoRequest);

-		if(resp != null && resp.getStatus() != 200) {

-			return resp;

-		}

+//		Response resp = checkE2ESvcInstStatus(action, serviceId, startTime, msoRequest);

+//		if(resp != null && resp.getStatus() != 200) {

+//			return resp;

+//		}

 		

 		CatalogDatabase db = null;

 		RecipeLookupResult recipeLookupResult = null;

@@ -604,7 +602,7 @@
 			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError,

 					"Exception while communciate with DB");

 			msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());

-			createOperationStatusRecordForError(action, requestId);

+			

 			return response;

 		} finally {

 			closeCatalogDB(db);

@@ -621,13 +619,12 @@
 			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataNotFound,

 					"No recipe found in DB");

 			msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());

-			createOperationStatusRecordForError(action, requestId);

+

 			return response;

 		}

 

 		String serviceInstanceType = e2eSir.getService().getServiceType();

 

-		String serviceId = instanceIdMap.get("serviceId");

 		RequestClient requestClient = null;

 		HttpResponse response = null;

 

@@ -663,7 +660,7 @@
 			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.CommunicationError,

 					"Exception while communicate with BPMN engine");

 			msoLogger.debug("End of the transaction, the final response is: " + (String) getBPMNResp.getEntity());

-			createOperationStatusRecordForError(action, requestId);

+

 			return getBPMNResp;

 		}

 

@@ -675,23 +672,23 @@
 			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.InternalError,

 					"Null response from BPMN");

 			msoLogger.debug(END_OF_THE_TRANSACTION + (String) getBPMNResp.getEntity());

-			this.createOperationStatusRecordForError(action, requestId);

+

 			return getBPMNResp;

 		}

 

 		ResponseHandler respHandler = new ResponseHandler(response, requestClient.getType());

 		int bpelStatus = respHandler.getStatus();

 

-		return beplStatusUpdate(requestId, startTime, msoRequest, requestClient, respHandler, bpelStatus, action, instanceIdMap);

+		return beplStatusUpdate(serviceId, startTime, msoRequest, requestClient, respHandler, bpelStatus, action, instanceIdMap);

 	}

 

-	private Response checkE2ESvcInstStatus(Action action, String requestId, long startTime, MsoRequest msoRequest) {

+	private Response checkE2ESvcInstStatus(Action action, String serviceId, long startTime, MsoRequest msoRequest) {

 		OperationStatus curStatus = null;

 //		String instanceName = sir.getRequestDetails().getRequestInfo().getInstanceName();

 		String requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();

 		try {

-			if (!(requestId == null && "service".equals(requestScope) && (action == Action.updateInstance))) {			    

-				curStatus = chkSvcInstOperStatusbySvcId(requestId);

+			if (!(serviceId == null && "service".equals(requestScope) && (action == Action.updateInstance))) {			    

+				curStatus = chkSvcInstOperStatusbySvcId(serviceId);

 			}

 		} catch (Exception e) {

 			msoLogger.error(MessageEnum.APIH_DUPLICATE_CHECK_EXC, MSO_PROP_APIHANDLER_INFRA, "", "",

@@ -707,7 +704,7 @@
 		}

 

 		if (curStatus != null && curStatus.getResult() != null && curStatus.getResult().equalsIgnoreCase("processing")) {

-			String chkMessage = "Error: Locked instance - This " + requestScope + " (" + requestId + ") "

+			String chkMessage = "Error: Locked instance - This " + requestScope + " (" + serviceId + ") "

 					+ "now being worked with a status of " + curStatus.getResult() 

 					+ ". The latest workflow of instance must be finished or cleaned up.";

 

@@ -719,8 +716,6 @@
 

 			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());

 

-			createOperationStatusRecordForError(action, requestId);

-

 			return response;

 		}

 		

@@ -1113,7 +1108,7 @@
 		}

 	}

 

-	private Response beplStatusUpdate(String requestId, long startTime,

+	private Response beplStatusUpdate(String serviceId, long startTime,

 			MsoRequest msoRequest, RequestClient requestClient,

 			ResponseHandler respHandler, int bpelStatus, Action action,

 			HashMap<String, String> instanceIdMap) {

@@ -1129,7 +1124,7 @@
 					DelE2ESvcResp jo = mapper.readValue(

 							camundaJSONResponseBody, DelE2ESvcResp.class);

 					String operationId = jo.getOperationId();

-    				this.createOperationStatusRecord("DELETE", requestId,

+    				this.createOperationStatusRecord("DELETE", serviceId,

 								operationId);

 				} catch (Exception ex) {

 					msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR,

@@ -1359,7 +1354,7 @@
 	}

 

 	private void createOperationStatusRecordForError(Action action,

-			String requestId) throws MsoDatabaseException {

+			String serviceId) throws MsoDatabaseException {

 

 		AbstractSessionFactoryManager requestsDbSessionFactoryManager = new RequestsDbSessionFactoryManager();

 

@@ -1377,7 +1372,7 @@
 			os.setProgress("100");

 			os.setReason("");

 			os.setResult("error");

-			os.setServiceId(requestId);

+			os.setServiceId(serviceId);

 			os.setUserId("");

 			Timestamp startTimeStamp = new Timestamp(System.currentTimeMillis());

 			Timestamp endTimeStamp = new Timestamp(System.currentTimeMillis());

diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
index d8a6282..45fc89b 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
@@ -1001,7 +1001,7 @@
 		String request = jsonBody;
 		Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
 		String respStr = resp.getEntity().toString();
-		assertTrue(respStr.contains("SVC2000"));
+		assertTrue(!respStr.contains("SVC2000"));
 	}
 
     @Test