Delete SPPaterner resource process

Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa70000003
Issue-ID: SO-683
Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
index a2f4e35..fb21574 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Create3rdONAPE2EServiceInstance.groovy
@@ -4,7 +4,7 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * 
@@ -18,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.bpmn.infrastructure.scripts;
+package org.onap.so.bpmn.infrastructure.scripts
 
 import org.json.JSONObject
-import org.json.XML;
+import org.json.XML
 
-import static org.apache.commons.lang3.StringUtils.*;
+import static org.apache.commons.lang3.StringUtils.*
 import groovy.xml.XmlUtil
 import groovy.json.*
 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
@@ -31,7 +31,7 @@
 import org.onap.so.bpmn.common.scripts.ExternalAPIUtil
 import org.onap.so.bpmn.common.scripts.AaiUtil
 import org.onap.so.bpmn.common.scripts.MsoUtils
-import org.onap.so.bpmn.common.recipe.ResourceInput;
+import org.onap.so.bpmn.common.recipe.ResourceInput
 import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
 import org.onap.so.bpmn.core.WorkflowException
 import org.onap.so.bpmn.core.json.JsonUtils
@@ -39,13 +39,14 @@
 import org.onap.so.rest.APIResponse
 import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
 import org.onap.so.bpmn.infrastructure.workflow.service.ServicePluginFactory
-import java.util.UUID;
+import java.util.UUID
+import org.onap.so.logger.MsoLogger
 
 import org.camunda.bpm.engine.runtime.Execution
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.delegate.DelegateExecution
 import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.binary.Base64
 import org.springframework.web.util.UriUtils
 import org.onap.so.rest.RESTClient
 import org.onap.so.rest.RESTConfig
@@ -56,24 +57,25 @@
  */
 public class Create3rdONAPE2EServiceInstance extends AbstractServiceTaskProcessor {
 
-	String Prefix="CRE3rdONAPESI_"
+	String Prefix = "CRE3rdONAPESI_"
 
 	ExceptionUtil exceptionUtil = new ExceptionUtil()
 
 	JsonUtils jsonUtil = new JsonUtils()
+	
+	private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, Create3rdONAPE2EServiceInstance.class)
 
 	public void checkSPPartnerInfo (DelegateExecution execution) {
-		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started checkSPPartnerInfo *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started checkSPPartnerInfo *****")
 		try {
 			//get bpmn inputs from resource request.
 			String requestId = execution.getVariable("mso-request-id")
 			String requestAction = execution.getVariable("requestAction")
-			utils.log("INFO","The requestAction is: " + requestAction,  isDebugEnabled)
+			msoLogger.info("The requestAction is: " + requestAction)
 			String recipeParamsFromRequest = execution.getVariable("recipeParams")
-			utils.log("INFO","The recipeParams is: " + recipeParamsFromRequest,  isDebugEnabled)
+			msoLogger.info("The recipeParams is: " + recipeParamsFromRequest)
 			String resourceInput = execution.getVariable("resourceInput")
-			utils.log("INFO","The resourceInput is: " + resourceInput,  isDebugEnabled)
+			msoLogger.info("The resourceInput is: " + resourceInput)
 			//Get ResourceInput Object
 			ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)			
 			String resourceInputPrameters = resourceInputObj.getResourceParameters()
@@ -81,7 +83,7 @@
 			JSONObject inputParameters = new JSONObject(customizeResourceParam(inputParametersJson))
 			
 			// set local resourceInput
-			execution.setVariable(Prefix + "resourceInput", resourceInputObj)
+			execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
 			
 			boolean is3rdONAPExist = false
 
@@ -93,163 +95,161 @@
 			{
 				String sppartnerUrl = inputParameters.get("url")
 				if(!isBlank(sppartnerUrl)) {
-					execution.setVariable(Prefix + "sppartnerUrl", sppartnerUrl)
+					execution.setVariable(Prefix + "SppartnerUrl", sppartnerUrl)
 					is3rdONAPExist = true
 				}
 				else {
 					is3rdONAPExist = false
 					String msg = "sppartner Url is blank."
-					utils.log("DEBUG", msg, isDebugEnabled)
+					msoLogger.debug(msg)
 				}
 			}
 			if(inputParameters.has("providingServiceInvarianteUuid"))
 			{
 				String sppartnerInvarianteUUID = inputParameters.get("providingServiceInvarianteUuid")
-				execution.setVariable(Prefix + "sppartnerInvarianteUUID", sppartnerInvarianteUUID)
+				execution.setVariable(Prefix + "SppartnerInvarianteUUID", sppartnerInvarianteUUID)
 				is3rdONAPExist = true
 			}
 			else {
 				is3rdONAPExist = false
 				String msg = "sppartner providingServiceInvarianteUuid is blank."
-				utils.log("DEBUG", msg, isDebugEnabled)
+				msoLogger.debug(msg)
 			}
 			if(inputParameters.has("providingServiceUuid"))
 			{
 				String sppartnerUUID = inputParameters.get("providingServiceUuid")
-				execution.setVariable(Prefix + "sppartnerUUID", sppartnerUUID)
+				execution.setVariable(Prefix + "SppartnerUUID", sppartnerUUID)
 				is3rdONAPExist = true
 			}
 			else {
 				is3rdONAPExist = false
 				String msg = "sppartner providingServiceUuid is blank."
-				utils.log("DEBUG", msg, isDebugEnabled)
+				msoLogger.debug(msg)
 			}
 			
 			if(inputParameters.has("handoverMode"))
 			{
 				String handoverMode = inputParameters.get("handoverMode")
-				execution.setVariable(Prefix + "handoverMode", handoverMode)
+				execution.setVariable(Prefix + "HandoverMode", handoverMode)
 			    is3rdONAPExist = true
 			}
 			else {
 				is3rdONAPExist = false
 				String msg = "sppartner handoverMode is blank."
-				utils.log("DEBUG", msg, isDebugEnabled)
+				msoLogger.debug(msg)
 			}
 			
 			execution.setVariable("Is3rdONAPExist", is3rdONAPExist)
-			execution.setVariable(Prefix + "serviceInstanceId", resourceInputObj.getServiceInstanceId())
+			execution.setVariable(Prefix + "ServiceInstanceId", resourceInputObj.getServiceInstanceId())
 			execution.setVariable("mso-request-id", requestId)
 			execution.setVariable("mso-service-instance-id", resourceInputObj.getServiceInstanceId())
 
 		} catch (BpmnError e) {
-			throw e;
+			throw e
 		} catch (Exception ex){
 			String msg = "Exception in checkSPPartnerInfo " + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
+			msoLogger.debug(msg)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 		}
 	}
 
 	public void checkLocallCall (DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started checkLocallCall *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started checkLocallCall *****")
 		try {
 					
 			//Get ResourceInput Object
-			ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")			
+			ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")			
 
 			//uuiRequest
 			String incomingRequest = resourceInputObj.getRequestsInputs()
 			String serviceParameters = jsonUtil.getJsonValue(incomingRequest, "service.parameters")
 			JSONObject inputParameters = new JSONObject(customizeResourceParam(serviceParameters))
-			execution.setVariable(Prefix + "serviceParameters", inputParameters)
+			execution.setVariable(Prefix + "ServiceParameters", inputParameters)
 			
-			// CallSource is added only when ONAP SO calling 3rdONAP SO(Remote call)
+			// CallSource is added only when ONAP SO calling 3rdONAP(External API) SO(Remote call)
 			boolean isLocalCall = true
+			String callSource = "UUI"
 			if(inputParameters.has("CallSource"))
 			{
-				String callSource = inputParameters.get("CallSource")
-				if("3rdONAP".equalsIgnoreCase(callSource)) {
+				callSource = inputParameters.get("CallSource")
+				if("ExternalAPI".equalsIgnoreCase(callSource)) {
 					isLocalCall = false
-				}
-				execution.setVariable(Prefix + "CallSource", callSource)
-				utils.log("DEBUG", "callSource is: " + callSource , isDebugEnabled)
-				isLocalCall = true
+				}							
 			}
+			execution.setVariable(Prefix + "CallSource", callSource)
+			msoLogger.debug("callSource is: " + callSource )
 			
 			execution.setVariable("IsLocalCall", isLocalCall)
 
-		} catch (BpmnError e) {
-			throw e;
 		} catch (Exception ex){
 			String msg = "Exception in checkLocallCall " + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
+			msoLogger.debug(msg)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 		}
 	}
 
 	public void preProcessRequest(DelegateExecution execution){
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started preProcessRequest *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started preProcessRequest *****")
 		try {
-			ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+			ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
 			String msg = ""
 
 			String globalSubscriberId = resourceInputObj.getGlobalSubscriberId()
 			if (isBlank(globalSubscriberId)) {
 				msg = "Input globalSubscriberId is null"
-				utils.log("INFO", msg, isDebugEnabled)
+				msoLogger.info(msg)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
 			//set local variable
-			execution.setVariable("globalSubscriberId", globalSubscriberId);
-			utils.log("INFO", "globalSubscriberId:" + globalSubscriberId, isDebugEnabled)
+			execution.setVariable("globalSubscriberId", globalSubscriberId)
+			msoLogger.info("globalSubscriberId:" + globalSubscriberId)
 
 			String serviceType = resourceInputObj.getServiceType()
 			if (isBlank(serviceType)) {
 				msg = "Input serviceType is null"
-				utils.log("INFO", msg, isDebugEnabled)
+				msoLogger.info(msg)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
 			execution.setVariable("serviceType", serviceType)
-			utils.log("INFO", "serviceType:" + serviceType, isDebugEnabled)
+			msoLogger.info("serviceType:" + serviceType)
 			
-			String resourceName = resourceInputObj.getResourceInstanceName();
+			String resourceName = resourceInputObj.getResourceInstanceName()
 			if (isBlank(resourceName)) {
 				msg = "Input resourceName is null"
-				utils.log("INFO", msg, isDebugEnabled)
+				msoLogger.info(msg)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
 			execution.setVariable("resourceName", resourceName)
-			utils.log("INFO", "resourceName:" + resourceName, isDebugEnabled)
+			msoLogger.info("resourceName:" + resourceName)
 			
 			int beginIndex = resourceName.indexOf("_") + 1
 			String serviceInstanceName = resourceName.substring(beginIndex)
 			execution.setVariable("serviceInstanceName", serviceInstanceName)
 			
-			String serviceInstanceId = resourceInputObj.getServiceInstanceId();
+			String serviceInstanceId = resourceInputObj.getServiceInstanceId()
 			if (isBlank(serviceInstanceId)) {
 				msg = "Input serviceInstanceId is null"
-				utils.log("INFO", msg, isDebugEnabled)
+				msoLogger.info(msg)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
 			execution.setVariable("serviceInstanceId", serviceInstanceId)
-			utils.log("INFO", "serviceInstanceId:" + serviceInstanceId, isDebugEnabled)
+			msoLogger.info("serviceInstanceId:" + serviceInstanceId)
 
 		} catch (BpmnError e) {
-			throw e;
+			throw e
 		} catch (Exception ex){
 			String msg = "Exception in preProcessRequest " + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
+			msoLogger.debug(msg)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 		}
 	}
 
 	public void prepareUpdateProgress(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started prepareUpdateProgress *****",  isDebugEnabled)
-		ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+		msoLogger.info(" ***** Started prepareUpdateProgress *****")
+		ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
 		String operType = resourceInputObj.getOperationType()
 		String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
 		String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
@@ -274,18 +274,18 @@
                                <statusDescription>${statusDescription}</statusDescription>
                     </ns:updateResourceOperationStatus>
                 </soapenv:Body>
-                </soapenv:Envelope>""";
+                </soapenv:Envelope>"""
 
 		setProgressUpdateVariables(execution, body)
-		utils.log("INFO"," ***** End prepareUpdateProgress *****",  isDebugEnabled)
+		msoLogger.info(" ***** Exit prepareUpdateProgress *****")
 	}
 
 	public void allocateCrossONAPResource(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started allocateCrossONAPResource *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started allocateCrossONAPResource *****")
 		
 		//get TP links from AAI for SOTN handoverMode only
-		String handoverMode = execution.getVariable(Prefix + "handoverMode")
+		String handoverMode = execution.getVariable(Prefix + "HandoverMode")
 		if("SOTN".equalsIgnoreCase(handoverMode)) {
 			//to do get tp link in AAI
 			
@@ -296,29 +296,29 @@
 			String accessTopologyId = ""
 			String accessNodeId = ""
 			String accessLtpId = ""
-			JSONObject inputParameters = execution.getVariable(Prefix + "serviceParameters")			
+			JSONObject inputParameters = execution.getVariable(Prefix + "ServiceParameters")			
 			inputParameters.put("access-provider-id", accessProviderId)
 			inputParameters.put("access-client-id", accessClientId)
 			inputParameters.put("access-topology-id", accessTopologyId)
 			inputParameters.put("access-node-id", accessNodeId)
 			inputParameters.put("access-ltp-id", accessLtpId)
-			execution.setVariable(Prefix + "serviceParameters", inputParameters)
+			execution.setVariable(Prefix + "ServiceParameters", inputParameters)
 		}
 		
-		utils.log("INFO", "Exited " + allocateCrossONAPResource, isDebugEnabled)
+		msoLogger.info("Exit " + allocateCrossONAPResource)
 	}
 
 	public void prepare3rdONAPRequest(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started prepare3rdONAPRequest *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started prepare3rdONAPRequest *****")
 		
-		String sppartnerUrl = execution.getVariable(Prefix + "sppartnerUrl")
+		String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
 		String extAPIPath = sppartnerUrl + 'serviceOrder'
 		execution.setVariable("ExternalAPIURL", extAPIPath)
 		
 		// ExternalAPI message format
 		String externalId = execution.getVariable("resourceName")
-		String category = "Network Service"
+		String category = "E2E Service"
 		String description = "Service Order from SPPartner"
 		String requestedStartDate = utils.generateCurrentTimeInUtc()
 		String requestedCompletionDate = utils.generateCurrentTimeInUtc()
@@ -352,17 +352,17 @@
 		
 		ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
 		
-		// insert CallSource='3rdONAP' to uuiRequest		
+		// insert CallSource='ExternalAPI' to uuiRequest		
 		Map<String, String> callSourceMap = new HashMap<>()
 		callSourceMap.put("inputName", "CallSource")
-		callSourceMap.put("inputValue", "3rdONAP")
+		callSourceMap.put("inputValue", "ExternalAPI")
 		String _requestInputs_ = externalAPIUtil.setTemplate(ExternalAPIUtil.RequestInputsTemplate, callSourceMap)
 		
 		// Transfer all uuiRequest incomeParameters to ExternalAPI format
-		JSONObject inputParameters = execution.getVariable(Prefix + "serviceParameters")
+		JSONObject inputParameters = execution.getVariable(Prefix + "ServiceParameters")
 		for(String key : inputParameters.keySet()) {			
-			String inputName = key;
-			String inputValue = inputParameters.opt(key);
+			String inputName = key
+			String inputValue = inputParameters.opt(key)
 			Map<String, String> requestInputsMap = new HashMap<>()
 			requestInputsMap.put("inputName", '"' + inputName+ '"')
 			requestInputsMap.put("inputValue", '"' + inputValue + '"')
@@ -371,49 +371,49 @@
 		valueMap.put("_requestInputs_",  _requestInputs_)
 		
 		String payload = externalAPIUtil.setTemplate(ExternalAPIUtil.PostServiceOrderRequestsTemplate, valueMap)
-		execution.setVariable(Prefix + "payload", payload)
-		utils.log("INFO", "Exited " + prepare3rdONAPRequest, isDebugEnabled)
+		execution.setVariable(Prefix + "Payload", payload)
+		msoLogger.info("Exit " + prepare3rdONAPRequest)
 	}
 
 	public void doCreateE2ESIin3rdONAP(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started doCreateE2ESIin3rdONAP *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started doCreateE2ESIin3rdONAP *****")
 		
 		String extAPIPath = execution.getVariable("ExternalAPIURL")
-		String payload = execution.getVariable(Prefix + "payload")
+		String payload = execution.getVariable(Prefix + "Payload")
 		
 		ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
 
 		APIResponse response = externalAPIUtil.executeExternalAPIPostCall(execution, extAPIPath, payload)
 
 		int responseCode = response.getStatusCode()
-		execution.setVariable(Prefix + "postServiceOrderResponseCode", responseCode)
-		utils.log("DEBUG", "Post ServiceOrder response code is: " + responseCode, isDebugEnabled)
+		execution.setVariable(Prefix + "PostServiceOrderResponseCode", responseCode)
+		msoLogger.debug("Post ServiceOrder response code is: " + responseCode)
 
 		String extApiResponse = response.getResponseBodyAsString()
 		JSONObject responseObj = new JSONObject(extApiResponse)
-		execution.setVariable(Prefix + "postServiceOrderResponse", extApiResponse)
+		execution.setVariable(Prefix + "PostServiceOrderResponse", extApiResponse)
 		//Process Response
 		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
 			//200 OK 201 CREATED 202 ACCEPTED
 		{
-			utils.log("DEBUG", "Post ServiceOrder Received a Good Response", isDebugEnabled)
+			msoLogger.debug("Post ServiceOrder Received a Good Response")
 			String serviceOrderId = responseObj.get("ServiceOrderId")
 			execution.setVariable(Prefix + "SuccessIndicator", true)
 			execution.setVariable("serviceOrderId", serviceOrderId)
 		}
 		else{
-			utils.log("DEBUG", "Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			msoLogger.debug("Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
 		}
 		
-		utils.log("INFO", "Exited " + doCreateE2ESIin3rdONAP, isDebugEnabled)
+		msoLogger.info("Exit " + doCreateE2ESIin3rdONAP)
 	}
 	
 
 	public void getE2ESIProgressin3rdONAP(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started getE2ESIProgressin3rdONAP *****",  isDebugEnabled)
+		msoLogger.info(" ***** Started getE2ESIProgressin3rdONAP *****")
 		
 		String extAPIPath = execution.getVariable("ExternalAPIURL")
 		extAPIPath += "/" + execution.getVariable("ServiceOrderId")
@@ -423,17 +423,17 @@
 		APIResponse response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
 
 		int responseCode = response.getStatusCode()
-		execution.setVariable(Prefix + "getServiceOrderResponseCode", responseCode)
-		utils.log("DEBUG", "Get ServiceOrder response code is: " + responseCode, isDebugEnabled)
+		execution.setVariable(Prefix + "GetServiceOrderResponseCode", responseCode)
+		msoLogger.debug("Get ServiceOrder response code is: " + responseCode)
 
 		String extApiResponse = response.getResponseBodyAsString()
 		JSONObject responseObj = new JSONObject(extApiResponse)
-		execution.setVariable(Prefix + "getServiceOrderResponse", extApiResponse)
+		execution.setVariable(Prefix + "GetServiceOrderResponse", extApiResponse)
 		
 		//Process Response //200 OK 201 CREATED 202 ACCEPTED
 		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )			
 		{
-			utils.log("DEBUG", "Get ServiceOrder Received a Good Response", isDebugEnabled)
+			msoLogger.debug("Get ServiceOrder Received a Good Response")
 			String serviceOrderState = responseObj.get("State")
 			execution.setVariable(Prefix + "SuccessIndicator", true)
 			execution.setVariable("serviceOrderState", serviceOrderState)			
@@ -463,14 +463,14 @@
 			execution.setVariable("statusDescription", "Create Service Order Status is " + serviceOrderState)
 		}
 		else{			
-			utils.log("DEBUG", "Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			msoLogger.debug("Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode)
 			execution.setVariable("progress", 100)
 			execution.setVariable("status", "error")
 			execution.setVariable("statusDescription", "Get ServiceOrder Received a bad response")
 			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get ServiceOrder Received a bad response from 3rdONAP External API")
 		}		
 		
-		utils.log("INFO", "Exited " + getE2ESIProgressin3rdONAP, isDebugEnabled)
+		msoLogger.info("Exit " + getE2ESIProgressin3rdONAP)
 	}
 	
 	/**
@@ -479,18 +479,19 @@
 	public void timeDelay(DelegateExecution execution) {
 		def isDebugEnabled= execution.getVariable("isDebugLogEnabled")
 		try {
-			Thread.sleep(5000);
+			Thread.sleep(5000)
 		} catch(InterruptedException e) {
-			utils.log("ERROR", "Time Delay exception" + e , isDebugEnabled)
+			utils.log("ERROR", "Time Delay exception" + e )
 		}
 	}
 
 	public void saveSPPartnerInAAI(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started postCreateE2ESIin3rdONAP *****",  isDebugEnabled)	
+		msoLogger.info(" ***** Started postCreateE2ESIin3rdONAP *****")	
 		
 		String sppartnerId = UUID.randomUUID().toString()
-		String sppartnerUrl = execution.getVariable(Prefix + "sppartnerUrl")
+		String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
+		String callSource = execution.getVariable(Prefix + "CallSource")
 		String serviceInstanceId = execution.getVariable("serviceInstanceId")
 		
 		AaiUtil aaiUriUtil = new AaiUtil(this)
@@ -501,6 +502,7 @@
 				"""<sp-partner xmlns=\"${namespace}\">
 			        <id>${sppartnerId}</id>
 			        <url>${sppartnerUrl}</url>
+			        <callSource>${callSource}</callSource>
 					<service-instance>					
 					    <service-instance-id>${serviceInstanceId}</service-instance-id>				    
 				    </service-instance>
@@ -512,28 +514,28 @@
 		
 		APIResponse response = aaiUriUtil.executeAAIPutCall(execution, serviceAaiPath, payload)
 		int responseCode = response.getStatusCode()
-		execution.setVariable(Prefix + "putSppartnerResponseCode", responseCode)
-		utils.log("DEBUG", "  Put sppartner response code is: " + responseCode, isDebugEnabled)
+		execution.setVariable(Prefix + "PutSppartnerResponseCode", responseCode)
+		msoLogger.debug("  Put sppartner response code is: " + responseCode)
 
 		String aaiResponse = response.getResponseBodyAsString()
 		aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
-		execution.setVariable(Prefix + "putSppartnerResponse", aaiResponse)
+		execution.setVariable(Prefix + "PutSppartnerResponse", aaiResponse)
 
 		//Process Response
 		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
 			//200 OK 201 CREATED 202 ACCEPTED
 		{
-			utils.log("DEBUG", "PUT sppartner Received a Good Response", isDebugEnabled)
+			msoLogger.debug("PUT sppartner Received a Good Response")
 			execution.setVariable(Prefix + "SuccessIndicator", true)
 		}
 		else
 		{
-			utils.log("DEBUG", "Put sppartner Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			msoLogger.debug("Put sppartner Received a Bad Response Code. Response Code is: " + responseCode)
 			exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
 			throw new BpmnError("MSOWorkflowException")
 		}
 		
-		utils.log("INFO", "Exited " + saveSPPartnerInAAI, isDebugEnabled)
+		msoLogger.info("Exit " + saveSPPartnerInAAI)
 	}
 
 	private void setProgressUpdateVariables(DelegateExecution execution, String body) {
@@ -544,48 +546,48 @@
 
 	public void postProcess(DelegateExecution execution){
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-		utils.log("INFO"," ***** Started postProcess *****",  isDebugEnabled)
-		String responseCode = execution.getVariable(Prefix + "putSppartnerResponseCode")
-		String responseObj = execution.getVariable(Prefix + "putSppartnerResponse")
+		msoLogger.info(" ***** Started postProcess *****")
+		String responseCode = execution.getVariable(Prefix + "PutSppartnerResponseCode")
+		String responseObj = execution.getVariable(Prefix + "PutSppartnerResponse")
 
-		utils.log("INFO","response from AAI for put sppartner, response code :" + responseCode + "  response object :" + responseObj,  isDebugEnabled)
-		utils.log("INFO"," ***** Exit postProcess *****",  isDebugEnabled)
+		msoLogger.info("response from AAI for put sppartner, response code :" + responseCode + "  response object :" + responseObj)
+		msoLogger.info(" ***** Exit postProcess *****")
 	}
 
 	public void sendSyncResponse (DelegateExecution execution) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG", " *** sendSyncResponse *** ", isDebugEnabled)
+		msoLogger.debug(" *** sendSyncResponse *** ")
 
 		try {
 			String operationStatus = "finished"
 			// RESTResponse for main flow
 			String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
-			utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + resourceOperationResp, isDebugEnabled)
+			msoLogger.debug(" sendSyncResponse to APIH:" + "\n" + resourceOperationResp)
 			sendWorkflowResponse(execution, 202, resourceOperationResp)
 			execution.setVariable("sentSyncResponse", true)
 
 		} catch (Exception ex) {
 			String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
+			msoLogger.debug(msg)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
 		}
-		utils.log("DEBUG"," ***** Exit sendSyncResopnse *****",  isDebugEnabled)
+		msoLogger.debug(" ***** Exit sendSyncResopnse *****")
 	}
 	
 	String customizeResourceParam(String inputParametersJson) {
-		List<Map<String, Object>> paramList = new ArrayList();
-		JSONObject jsonObject = new JSONObject(inputParametersJson);
-		Iterator iterator = jsonObject.keys();
+		List<Map<String, Object>> paramList = new ArrayList()
+		JSONObject jsonObject = new JSONObject(inputParametersJson)
+		Iterator iterator = jsonObject.keys()
 		while (iterator.hasNext()) {
-			String key = iterator.next();
-			HashMap<String, String> hashMap = new HashMap();
-			hashMap.put("name", key);
+			String key = iterator.next()
+			HashMap<String, String> hashMap = new HashMap()
+			hashMap.put("name", key)
 			hashMap.put("value", jsonObject.get(key))
 			paramList.add(hashMap)
 		}
-		Map<String, List<Map<String, Object>>> paramMap = new HashMap();
-		paramMap.put("param", paramList);
+		Map<String, List<Map<String, Object>>> paramMap = new HashMap()
+		paramMap.put("param", paramList)
 
-		return  new JSONObject(paramMap).toString();
+		return  new JSONObject(paramMap).toString()
 	}
 }
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
new file mode 100644
index 0000000..122fd50
--- /dev/null
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/Delete3rdONAPE2EServiceInstance.groovy
@@ -0,0 +1,517 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.infrastructure.scripts
+
+import org.json.JSONObject
+import org.json.XML
+
+import static org.apache.commons.lang3.StringUtils.*
+import groovy.xml.XmlUtil
+import groovy.json.*
+import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
+import org.onap.so.bpmn.common.scripts.ExceptionUtil
+import org.onap.so.bpmn.common.scripts.ExternalAPIUtil
+import org.onap.so.bpmn.common.scripts.AaiUtil
+import org.onap.so.bpmn.common.scripts.MsoUtils
+import org.onap.so.bpmn.common.recipe.ResourceInput
+import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
+import org.onap.so.bpmn.core.WorkflowException
+import org.onap.so.bpmn.core.json.JsonUtils
+import org.onap.so.bpmn.infrastructure.workflow.serviceTask.client.builder.AbstractBuilder
+import org.onap.so.rest.APIResponse
+import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
+import org.onap.so.bpmn.infrastructure.workflow.service.ServicePluginFactory
+import java.util.UUID
+
+import org.camunda.bpm.engine.runtime.Execution
+import org.camunda.bpm.engine.delegate.BpmnError
+import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.apache.commons.lang3.*
+import org.apache.commons.codec.binary.Base64
+import org.springframework.web.util.UriUtils
+import org.onap.so.rest.RESTClient
+import org.onap.so.rest.RESTConfig
+
+/**
+ * This groovy class supports the <class>Delete3rdONAPE2EServiceInstance.bpmn</class> process.
+ * flow for Delete E2EServiceInstance in 3rdONAP 
+ */
+public class Delete3rdONAPE2EServiceInstance extends AbstractServiceTaskProcessor {
+
+	String Prefix="CRE3rdONAPESI_"
+
+	ExceptionUtil exceptionUtil = new ExceptionUtil()
+
+	JsonUtils jsonUtil = new JsonUtils()
+
+	public void checkSPPartnerInfoFromAAI (DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started checkSPPartnerInfo *****",  isDebugEnabled)
+		try {
+			//get bpmn inputs from resource request.
+			String requestId = execution.getVariable("mso-request-id")
+			String requestAction = execution.getVariable("requestAction")
+			utils.log("INFO","The requestAction is: " + requestAction,  isDebugEnabled)
+			String recipeParamsFromRequest = execution.getVariable("recipeParams")
+			utils.log("INFO","The recipeParams is: " + recipeParamsFromRequest,  isDebugEnabled)
+			String resourceInput = execution.getVariable("resourceInput")
+			utils.log("INFO","The resourceInput is: " + resourceInput,  isDebugEnabled)
+			//Get ResourceInput Object
+			ResourceInput resourceInputObj = ResourceRequestBuilder.getJsonObject(resourceInput, ResourceInput.class)					
+			// set local resourceInput
+			execution.setVariable(Prefix + "ResourceInput", resourceInputObj)
+			
+			String resourceInstanceId = resourceInputObj.getResourceInstancenUuid()
+			String sppartnerId = resourceInstanceId
+			execution.setVariable(Prefix + "SppartnerId", sppartnerId)
+			utils.log("INFO", "sppartnerId:" + sppartnerId, isDebugEnabled)
+			
+			// Get Sppartner from AAI
+			AaiUtil aaiUriUtil = new AaiUtil(this)
+			String aai_uri = aaiUriUtil.getBusinessSPPartnerUri(execution)
+			String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)			
+			String aai_endpoint = execution.getVariable("URN_aai_endpoint")
+			String serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(sppartnerId,"UTF-8")
+			execution.setVariable(Prefix + "serviceAaiPath", serviceAaiPath)
+			
+			getSPPartnerInAAI(execution)
+			
+			String callSource = "UUI"
+			String sppartnerUrl = ""
+			String sppartnerVersion = ""
+			if(execution.getVariable(Prefix + "SuccessIndicator")) {
+				callSource = execution.getVariable(Prefix + "CallSource")
+				sppartnerId = execution.getVariable(Prefix + "SppartnerId")
+				sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
+				sppartnerVersion = execution.getVariable(Prefix + "SppartnerVersion")				
+			}
+			
+			boolean is3rdONAPExist = false	
+			if(!isBlank(sppartnerUrl)) {				
+				is3rdONAPExist = true
+			}
+			
+			execution.setVariable("Is3rdONAPExist", is3rdONAPExist)
+			execution.setVariable(Prefix + "ServiceInstanceId", resourceInputObj.getServiceInstanceId())
+			execution.setVariable("mso-request-id", requestId)
+			execution.setVariable("mso-service-instance-id", resourceInputObj.getServiceInstanceId())
+
+		} catch (BpmnError e) {
+			throw e
+		} catch (Exception ex){
+			String msg = "Exception in checkSPPartnerInfoFromAAI " + ex.getMessage()
+			utils.log("DEBUG", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+	}
+
+	public void checkLocallCall (DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started checkLocallCall *****",  isDebugEnabled)
+		
+		boolean isLocalCall = true
+		String callSource = execution.getVariable(Prefix + "CallSource")
+		if("ExternalAPI".equalsIgnoreCase(callSource)) {
+			isLocalCall = false
+		}
+		execution.setVariable("IsLocalCall", isLocalCall)
+	}
+
+	public void preProcessRequest(DelegateExecution execution){
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started preProcessRequest *****",  isDebugEnabled)
+		try {
+			ResourceInput resourceInputObj = execution.getVariable(Prefix + "resourceInput")
+			String msg = ""			
+
+			String globalSubscriberId = resourceInputObj.getGlobalSubscriberId()
+			if (isBlank(globalSubscriberId)) {
+				msg = "Input globalSubscriberId is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+			//set local variable
+			execution.setVariable("globalSubscriberId", globalSubscriberId)
+			utils.log("INFO", "globalSubscriberId:" + globalSubscriberId, isDebugEnabled)
+
+			String serviceType = resourceInputObj.getServiceType()
+			if (isBlank(serviceType)) {
+				msg = "Input serviceType is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+			execution.setVariable("serviceType", serviceType)
+			utils.log("INFO", "serviceType:" + serviceType, isDebugEnabled)
+			
+			String operationId = resourceInputObj.getOperationId()			
+			if (isBlank(operationId)) {
+				msg = "Input operationId is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+			execution.setVariable("operationId", operationId)
+			utils.log("INFO", "operationId:" + operationId, isDebugEnabled)
+			
+			String resourceName = resourceInputObj.getResourceInstanceName()			
+			if (isBlank(resourceName)) {
+				msg = "Input resourceName is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+			execution.setVariable("resourceName", resourceName)
+			utils.log("INFO", "resourceInstanceId:" + resourceName, isDebugEnabled)
+			
+			String resourceTemplateId = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+			if (isBlank(resourceTemplateId)) {
+				msg = "Input resourceTemplateId is null"
+				utils.log("INFO", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
+			execution.setVariable("resourceTemplateId", resourceTemplateId)
+			utils.log("INFO", "resourceTemplateId:" + resourceTemplateId, isDebugEnabled)
+
+		} catch (BpmnError e) {
+			throw e
+		} catch (Exception ex){
+			String msg = "Exception in preProcessRequest " + ex.getMessage()
+			utils.log("DEBUG", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+	}
+
+	public void prepareUpdateProgress(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started prepareUpdateProgress *****",  isDebugEnabled)
+		ResourceInput resourceInputObj = execution.getVariable(Prefix + "ResourceInput")
+		String operType = resourceInputObj.getOperationType()
+		String resourceCustomizationUuid = resourceInputObj.getResourceModelInfo().getModelCustomizationUuid()
+		String ServiceInstanceId = resourceInputObj.getServiceInstanceId()
+		String modelName = resourceInputObj.getResourceModelInfo().getModelName()
+		String operationId = resourceInputObj.getOperationId()
+		String progress = execution.getVariable("progress")
+		String status = execution.getVariable("status")
+		String statusDescription = execution.getVariable("statusDescription")
+
+		String body = """
+                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                        xmlns:ns="http://org.openecomp.mso/requestsdb">
+                        <soapenv:Header/>
+                <soapenv:Body>
+                    <ns:updateResourceOperationStatus>
+                               <operType>${operType}</operType>
+                               <operationId>${operationId}</operationId>
+                               <progress>${progress}</progress>
+                               <resourceTemplateUUID>${resourceCustomizationUuid}</resourceTemplateUUID>
+                               <serviceId>${ServiceInstanceId}</serviceId>
+                               <status>${status}</status>
+                               <statusDescription>${statusDescription}</statusDescription>
+                    </ns:updateResourceOperationStatus>
+                </soapenv:Body>
+                </soapenv:Envelope>"""
+
+		setProgressUpdateVariables(execution, body)
+		utils.log("INFO"," ***** End prepareUpdateProgress *****",  isDebugEnabled)
+	}
+
+	public void prepare3rdONAPRequest(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started prepare3rdONAPRequest *****",  isDebugEnabled)
+		
+		String sppartnerUrl = execution.getVariable(Prefix + "SppartnerUrl")
+		String extAPIPath = sppartnerUrl + 'serviceOrder'
+		execution.setVariable("ExternalAPIURL", extAPIPath)
+		
+		// ExternalAPI message format
+		String externalId = execution.getVariable("resourceName")
+		String category = "E2E Service"
+		String description = "Service Order from SPPartner"
+		String requestedStartDate = utils.generateCurrentTimeInUtc()
+		String requestedCompletionDate = utils.generateCurrentTimeInUtc()
+		String priority = "1" // 0-4 0:highest
+		String subscriberId = execution.getVariable("globalSubscriberId")
+		String customerRole = ""
+		String subscriberName = ""
+		String referredType = execution.getVariable("serviceType")
+		String orderItemId = "1"
+		String action = "delete" //for delete
+		String serviceState = "active"
+		String serviceName = ""
+		String serviceId = execution.getVariable(Prefix + "ServiceInstanceId")
+		
+		Map<String, String> valueMap = new HashMap<>()
+		valueMap.put("externalId", '"' + externalId + '"')
+		valueMap.put("category", '"' + category + '"')
+		valueMap.put("description", '"' + description + '"')
+		valueMap.put("requestedStartDate", '"' + requestedStartDate + '"')
+		valueMap.put("requestedCompletionDate", '"' + requestedCompletionDate + '"')
+		valueMap.put("priority", '"'+ priority + '"')
+		valueMap.put("subscriberId", '"' + subscriberId + '"')
+		valueMap.put("customerRole", '"' + customerRole + '"')
+		valueMap.put("subscriberName", '"' + subscriberName + '"')
+		valueMap.put("referredType", '"' + referredType + '"')
+		valueMap.put("orderItemId", '"' + orderItemId + '"')
+		valueMap.put("action", '"' + action + '"')
+		valueMap.put("serviceState", '"' + serviceState + '"')
+		valueMap.put("serviceName", '"' + serviceName + '"')
+		valueMap.put("serviceId", '"' + serviceId + '"')
+		
+		ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)		
+	 
+		valueMap.put("_requestInputs_",  "")
+		
+		String payload = externalAPIUtil.setTemplate(ExternalAPIUtil.PostServiceOrderRequestsTemplate, valueMap)
+		execution.setVariable(Prefix + "Payload", payload)
+		utils.log("INFO", "Exit " + prepare3rdONAPRequest, isDebugEnabled)
+	}
+
+	public void doDeleteE2ESIin3rdONAP(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started doDeleteE2ESIin3rdONAP *****",  isDebugEnabled)
+		
+		String extAPIPath = execution.getVariable("ExternalAPIURL")
+		String payload = execution.getVariable(Prefix + "Payload")
+		
+		ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+
+		APIResponse response = externalAPIUtil.executeExternalAPIPostCall(execution, extAPIPath, payload)
+
+		int responseCode = response.getStatusCode()
+		execution.setVariable(Prefix + "postServiceOrderResponseCode", responseCode)
+		utils.log("DEBUG", "Post ServiceOrder response code is: " + responseCode, isDebugEnabled)
+
+		String extApiResponse = response.getResponseBodyAsString()
+		JSONObject responseObj = new JSONObject(extApiResponse)
+		execution.setVariable(Prefix + "postServiceOrderResponse", extApiResponse)
+		//Process Response
+		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+			//200 OK 201 CREATED 202 ACCEPTED
+		{
+			utils.log("DEBUG", "Post ServiceOrder Received a Good Response", isDebugEnabled)
+			String serviceOrderId = responseObj.get("ServiceOrderId")
+			execution.setVariable(Prefix + "SuccessIndicator", true)
+			execution.setVariable("serviceOrderId", serviceOrderId)
+		}
+		else{
+			utils.log("DEBUG", "Post ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Post ServiceOrder Received a bad response from 3rdONAP External API")
+		}
+		
+		utils.log("INFO", "Exit " + doDeleteE2ESIin3rdONAP, isDebugEnabled)
+	}
+	
+
+	public void getE2ESIProgressin3rdONAP(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started getE2ESIProgressin3rdONAP *****",  isDebugEnabled)
+		
+		String extAPIPath = execution.getVariable("ExternalAPIURL")
+		extAPIPath += "/" + execution.getVariable("ServiceOrderId")
+		
+		ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(this)
+
+		APIResponse response = externalAPIUtil.executeExternalAPIGetCall(execution, extAPIPath)
+
+		int responseCode = response.getStatusCode()
+		execution.setVariable(Prefix + "getServiceOrderResponseCode", responseCode)
+		utils.log("DEBUG", "Get ServiceOrder response code is: " + responseCode, isDebugEnabled)
+
+		String extApiResponse = response.getResponseBodyAsString()
+		JSONObject responseObj = new JSONObject(extApiResponse)
+		execution.setVariable(Prefix + "getServiceOrderResponse", extApiResponse)
+		
+		//Process Response //200 OK 201 CREATED 202 ACCEPTED
+		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )			
+		{
+			utils.log("DEBUG", "Get ServiceOrder Received a Good Response", isDebugEnabled)
+			String serviceOrderState = responseObj.get("State")
+			execution.setVariable(Prefix + "SuccessIndicator", true)
+			execution.setVariable("serviceOrderState", serviceOrderState)			
+			
+			// Get serviceOrder State and process progress
+			if("ACKNOWLEDGED".equalsIgnoreCase(serviceOrderState)) {
+				execution.setVariable("progress", 15)
+				execution.setVariable("status", "processing")				
+			}
+			if("INPROGRESS".equalsIgnoreCase(serviceOrderState)) {
+				execution.setVariable("progress", 40)
+				execution.setVariable("status", "processing")
+			}
+			if("COMPLETED".equalsIgnoreCase(serviceOrderState)) {
+				execution.setVariable("progress", 100)
+				execution.setVariable("status", "finished")
+			}
+			if("FAILED".equalsIgnoreCase(serviceOrderState)) {
+				execution.setVariable("progress", 100)
+				execution.setVariable("status", "error")
+			}
+			else {
+				execution.setVariable("progress", 100)
+				execution.setVariable("status", "error")
+				execution.setVariable("statusDescription", "Delete Service Order Status is unknown")
+			}
+			execution.setVariable("statusDescription", "Delete Service Order Status is " + serviceOrderState)
+		}
+		else{			
+			utils.log("DEBUG", "Get ServiceOrder Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			execution.setVariable("progress", 100)
+			execution.setVariable("status", "error")
+			execution.setVariable("statusDescription", "Get ServiceOrder Received a bad response")
+			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Get ServiceOrder Received a bad response from 3rdONAP External API")
+		}		
+		
+		utils.log("INFO", "Exit " + getE2ESIProgressin3rdONAP, isDebugEnabled)
+	}
+	
+	/**
+	 * delay 5 sec
+	 */
+	public void timeDelay(DelegateExecution execution) {
+		def isDebugEnabled= execution.getVariable("isDebugLogEnabled")
+		try {
+			Thread.sleep(5000)
+		} catch(InterruptedException e) {
+			utils.log("ERROR", "Time Delay exception" + e , isDebugEnabled)
+		}
+	}
+
+	private void getSPPartnerInAAI(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started postDeleteE2ESIin3rdONAP *****",  isDebugEnabled)	
+		
+		AaiUtil aaiUriUtil = new AaiUtil(this)
+		String serviceAaiPath = execution.getVariable(Prefix + "serviceAaiPath")		
+		APIResponse response = aaiUriUtil.executeAAIGetCall(execution, serviceAaiPath)
+		int responseCode = response.getStatusCode()
+		execution.setVariable(Prefix + "GetSppartnerResponseCode", responseCode)
+		utils.log("DEBUG", "  Get sppartner response code is: " + responseCode, isDebugEnabled)
+
+		String aaiResponse = response.getResponseBodyAsString()
+		aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
+		aaiResponse = aaiResponse.replaceAll("&", "&amp;")
+		execution.setVariable(Prefix + "GetSppartnerResponse", aaiResponse)
+
+		//Process Response
+		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+			//200 OK 201 CREATED 202 ACCEPTED
+		{
+			utils.log("DEBUG", "GET sppartner Received a Good Response", isDebugEnabled)
+			execution.setVariable(Prefix + "SuccessIndicator", true)
+			execution.setVariable(Prefix + "FoundIndicator", true)
+			
+			String sppartnerId = utils.getNodeText1(aaiResponse, "sppartner-id")
+			execution.setVariable(Prefix + "SppartnerId", sppartnerId)
+			utils.log("DEBUG", " SppartnerId is: " + sppartnerId, isDebugEnabled)
+			String sppartnerUrl = utils.getNodeText1(aaiResponse, "sppartner-url")
+			execution.setVariable(Prefix + "SppartnerUrl", sppartnerUrl)
+			utils.log("DEBUG", " SppartnerUrl is: " + sppartnerUrl, isDebugEnabled)
+			String callSource = utils.getNodeText1(aaiResponse, "sppartner-callsource")
+			execution.setVariable(Prefix + "CallSource", callSource)
+			utils.log("DEBUG", " CallSource is: " + callSource, isDebugEnabled)
+			String sppartnerVersion = utils.getNodeText1(aaiResponse, "resource-version")
+			execution.setVariable(Prefix + "SppartnerVersion", sppartnerVersion)
+			utils.log("DEBUG", " Resource Version is: " + sppartnerVersion, isDebugEnabled)
+		}
+		else
+		{
+			utils.log("DEBUG", "Get sppartner Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
+			throw new BpmnError("MSOWorkflowException")
+		}
+		
+		utils.log("INFO", "Exit " + deleteSPPartnerInAAI, isDebugEnabled)
+	}
+	
+	public void deleteSPPartnerInAAI(DelegateExecution execution) {
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started postDeleteE2ESIin3rdONAP *****",  isDebugEnabled)
+		
+		String sppartnerId = execution.getVariable(Prefix + "SppartnerId")
+		String sppartnerUrl = execution.getVariable(Prefix + "sppartnerUrl")
+		String sppartnerVersion = execution.getVariable(Prefix + "sppartnerVersion")
+		
+		AaiUtil aaiUriUtil = new AaiUtil(this)
+		String serviceAaiPath = execution.getVariable(Prefix + "serviceAaiPath") + "/${sppartnerVersion}"
+		APIResponse response = aaiUriUtil.executeAAIDeleteCall(execution, serviceAaiPath)
+		int responseCode = response.getStatusCode()
+		execution.setVariable(Prefix + "DeleteSppartnerResponseCode", responseCode)
+		utils.log("DEBUG", "  Get sppartner response code is: " + responseCode, isDebugEnabled)
+
+		String aaiResponse = response.getResponseBodyAsString()
+		aaiResponse = StringEscapeUtils.unescapeXml(aaiResponse)
+		execution.setVariable(Prefix + "DeleteSppartnerResponse", aaiResponse)
+
+		//Process Response
+		if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
+			//200 OK 201 CREATED 202 ACCEPTED
+		{
+			utils.log("DEBUG", "Delete sppartner Received a Good Response", isDebugEnabled)
+			execution.setVariable(Prefix + "SuccessIndicator", true)
+		}
+		else if(responseCode == 404){
+			utils.log("DEBUG", " Delete sppartner Received a Not Found (404) Response", isDebugEnabled)
+			execution.setVariable(Prefix + "FoundIndicator", false)
+		}
+		else
+		{
+			utils.log("DEBUG", "Delete sppartner Received a Bad Response Code. Response Code is: " + responseCode, isDebugEnabled)
+			exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
+			throw new BpmnError("MSOWorkflowException")
+		}
+		
+		utils.log("INFO", "Exit " + deleteSPPartnerInAAI, isDebugEnabled)
+	}
+	
+	private void setProgressUpdateVariables(DelegateExecution execution, String body) {
+		def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_openecomp_db_endpoint")
+		execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
+		execution.setVariable("CVFMI_updateResOperStatusRequest", body)
+	}	
+
+	public void postProcess(DelegateExecution execution){
+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+		utils.log("INFO"," ***** Started postProcess *****",  isDebugEnabled)
+		String responseCode = execution.getVariable(Prefix + "putSppartnerResponseCode")
+		String responseObj = execution.getVariable(Prefix + "putSppartnerResponse")
+
+		utils.log("INFO","response from AAI for put sppartner, response code :" + responseCode + "  response object :" + responseObj,  isDebugEnabled)
+		utils.log("INFO"," ***** Exit postProcess *****",  isDebugEnabled)
+	}
+
+	public void sendSyncResponse (DelegateExecution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		utils.log("DEBUG", " *** sendSyncResponse *** ", isDebugEnabled)
+
+		try {
+			String operationStatus = "finished"
+			// RESTResponse for main flow
+			String resourceOperationResp = """{"operationStatus":"${operationStatus}"}""".trim()
+			utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + resourceOperationResp, isDebugEnabled)
+			sendWorkflowResponse(execution, 202, resourceOperationResp)
+			execution.setVariable("sentSyncResponse", true)
+
+		} catch (Exception ex) {
+			String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
+			utils.log("DEBUG", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
+		utils.log("DEBUG"," ***** Exit sendSyncResopnse *****",  isDebugEnabled)
+	}
+}
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
index 9da8a90..9591898 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy
@@ -226,6 +226,7 @@
 		 resourceInput.setResourceModelInfo(currentResource.getModelInfo());
 		 ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
 		 resourceInput.setServiceModelInfo(serviceDecomposition.getModelInfo());
+		 def String resourceCustomizationUuid = currentResource.getModelInfo().getModelCustomizationUuid();
 		 
 		 String incomingRequest = execution.getVariable("uuiRequest")
 		 //set the requestInputs from tempalte  To Be Done
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
index 54dfae3..6d23ae7 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
@@ -192,76 +192,93 @@
                     //Confirm there are no related service instances (vnf/network or volume)
                     if (utils.nodeExists(siData, "relationship-list")) {
                         utils.log("INFO", "SI Data relationship-list exists:", isDebugEnabled)
-                        //test(siData)
-                        NodeList nodeList = serviceXml.getElementsByTagName("relationship")
                         JSONArray jArray = new JSONArray()
-                        for (int x = 0; x < nodeList.getLength(); x++) {
-                            Node node = nodeList.item(x)
-                            if (node.getNodeType() == Node.ELEMENT_NODE) {
-                                Element eElement = (Element) node
-                                def e = eElement.getElementsByTagName("related-to").item(0).getTextContent()    								//for ns
-                                if(e.equals("service-instance")){
-                                    def relatedObject = eElement.getElementsByTagName("related-link").item(0).getTextContent()
-                                    utils.log("INFO", "ServiceInstance Related NS :" + relatedObject, isDebugEnabled)
-                                    NodeList dataList = node.getChildNodes()
-                                    if(null != dataList) {
-                                        JSONObject jObj = new JSONObject()
-                                        for (int i = 0; i < dataList.getLength(); i++) {
-                                            Node dNode = dataList.item(i)
-                                            if(dNode.getNodeName() == "relationship-data") {
-                                                Element rDataEle = (Element)dNode
-                                                def eKey =  rDataEle.getElementsByTagName("relationship-key").item(0).getTextContent()
-                                                def eValue = rDataEle.getElementsByTagName("relationship-value").item(0).getTextContent()
-                                                if(eKey.equals("service-instance.service-instance-id")){
-                                                    jObj.put("resourceInstanceId", eValue)
-                                                }
 
-                                            }
-                                            else if(dNode.getNodeName() == "related-to-property"){
-                                                Element rDataEle = (Element)dNode
-                                                def eKey =  rDataEle.getElementsByTagName("property-key").item(0).getTextContent()
-                                                def eValue = rDataEle.getElementsByTagName("property-value").item(0).getTextContent()
-                                                if(eKey.equals("service-instance.service-instance-name")){
-                                                    jObj.put("resourceType", eValue)
-                                                }
-                                            }
-                                        }
-                                        utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)
-                                        jArray.put(jObj)
-                                    }
-                                    //for overlay/underlay
-                                }else if (e.equals("configuration")){
-                                    def relatedObject = eElement.getElementsByTagName("related-link").item(0).getTextContent()
-                                    utils.log("INFO", "ServiceInstance Related Configuration :" + relatedObject, isDebugEnabled)
-                                    NodeList dataList = node.getChildNodes()
-                                    if(null != dataList) {
-                                        JSONObject jObj = new JSONObject()
-                                        for (int i = 0; i < dataList.getLength(); i++) {
-                                            Node dNode = dataList.item(i)
-                                            if(dNode.getNodeName() == "relationship-data") {
-                                                Element rDataEle = (Element)dNode
-                                                def eKey =  rDataEle.getElementsByTagName("relationship-key").item(0).getTextContent()
-                                                def eValue = rDataEle.getElementsByTagName("relationship-value").item(0).getTextContent()
-                                                if(eKey.equals("configuration.configuration-id")){
-                                                    jObj.put("resourceInstanceId", eValue)
-                                                }
-                                            }
-                                            else if(dNode.getNodeName() == "related-to-property"){
-                                                Element rDataEle = (Element)dNode
-                                                def eKey =  rDataEle.getElementsByTagName("property-key").item(0).getTextContent()
-                                                def eValue = rDataEle.getElementsByTagName("property-value").item(0).getTextContent()
-                                                if(eKey.equals("configuration.configuration-type")){
-                                                    jObj.put("resourceType", eValue)
-                                                }
-                                            }
-                                        }
-                                        utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)
-                                        jArray.put(jObj)
-                                    }
-                                }
-                            }
+                        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())
+						
+//                        //test(siData)
+//                        NodeList nodeList = serviceXml.getElementsByTagName("relationship")
+//                        JSONArray jArray = new JSONArray()
+//                        for (int x = 0; x < nodeList.getLength(); x++) {
+//                            Node node = nodeList.item(x)
+//                            if (node.getNodeType() == Node.ELEMENT_NODE) {
+//                                Element eElement = (Element) node
+//                                def e = eElement.getElementsByTagName("related-to").item(0).getTextContent()    								//for ns
+//                                if(e.equals("service-instance")){
+//                                    def relatedObject = eElement.getElementsByTagName("related-link").item(0).getTextContent()
+//                                    utils.log("INFO", "ServiceInstance Related NS :" + relatedObject, isDebugEnabled)
+//                                    NodeList dataList = node.getChildNodes()
+//                                    if(null != dataList) {
+//                                        JSONObject jObj = new JSONObject()
+//                                        for (int i = 0; i < dataList.getLength(); i++) {
+//                                            Node dNode = dataList.item(i)
+//                                            if(dNode.getNodeName() == "relationship-data") {
+//                                                Element rDataEle = (Element)dNode
+//                                                def eKey =  rDataEle.getElementsByTagName("relationship-key").item(0).getTextContent()
+//                                                def eValue = rDataEle.getElementsByTagName("relationship-value").item(0).getTextContent()
+//                                                if(eKey.equals("service-instance.service-instance-id")){
+//                                                    jObj.put("resourceInstanceId", eValue)
+//                                                }
+//
+//                                            }
+//                                            else if(dNode.getNodeName() == "related-to-property"){
+//                                                Element rDataEle = (Element)dNode
+//                                                def eKey =  rDataEle.getElementsByTagName("property-key").item(0).getTextContent()
+//                                                def eValue = rDataEle.getElementsByTagName("property-value").item(0).getTextContent()
+//                                                if(eKey.equals("service-instance.service-instance-name")){
+//                                                    jObj.put("resourceType", eValue)
+//                                                }
+//                                            }
+//                                        }
+//                                        utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)
+//                                        jArray.put(jObj)
+//                                    }
+//                                    //for overlay/underlay
+//                                }else if (e.equals("configuration")){
+//                                    def relatedObject = eElement.getElementsByTagName("related-link").item(0).getTextContent()
+//                                    utils.log("INFO", "ServiceInstance Related Configuration :" + relatedObject, isDebugEnabled)
+//                                    NodeList dataList = node.getChildNodes()
+//                                    if(null != dataList) {
+//                                        JSONObject jObj = new JSONObject()
+//                                        for (int i = 0; i < dataList.getLength(); i++) {
+//                                            Node dNode = dataList.item(i)
+//                                            if(dNode.getNodeName() == "relationship-data") {
+//                                                Element rDataEle = (Element)dNode
+//                                                def eKey =  rDataEle.getElementsByTagName("relationship-key").item(0).getTextContent()
+//                                                def eValue = rDataEle.getElementsByTagName("relationship-value").item(0).getTextContent()
+//                                                if(eKey.equals("configuration.configuration-id")){
+//                                                    jObj.put("resourceInstanceId", eValue)
+//                                                }
+//                                            }
+//                                            else if(dNode.getNodeName() == "related-to-property"){
+//                                                Element rDataEle = (Element)dNode
+//                                                def eKey =  rDataEle.getElementsByTagName("property-key").item(0).getTextContent()
+//                                                def eValue = rDataEle.getElementsByTagName("property-value").item(0).getTextContent()
+//                                                if(eKey.equals("configuration.configuration-type")){
+//                                                    jObj.put("resourceType", eValue)
+//                                                }
+//                                            }
+//                                        }
+//                                        utils.log("INFO", "Relationship related to Resource:" + jObj.toString(), isDebugEnabled)
+//                                        jArray.put(jObj)
+//                                    }
+//                                // for SP-Partner
+//                                }else if (e.equals("sp-partner")){
+//									
+//								}								
+//                            }
+//                        }
+//                        execution.setVariable("serviceRelationShip", jArray.toString())
                     }
                 }
             }else{
@@ -292,6 +309,50 @@
         }
         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)
+			}
+			// for sp-partner
+			if(rt == "sp-partner" && eKey.equals("sp-partner.id")) {
+				jObj.put("resourceInstanceId", eValue)
+				String sppartnerName = "sp-partner" + eValue
+				jObj.put("resourceType", sppartnerName)
+			}
+		}
+
+		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 getCurrentNS(DelegateExecution execution){
        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/Delete3rdONAPE2EServiceInstance.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/Delete3rdONAPE2EServiceInstance.bpmn
index 116a8a6..0c1fb77 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/Delete3rdONAPE2EServiceInstance.bpmn
+++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/Delete3rdONAPE2EServiceInstance.bpmn
@@ -1,188 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3">
   <bpmn:process id="Delete3rdONAPE2EServiceInstance" name="Delete3rdONAPE2EServiceInstance" isExecutable="true">
-    <bpmn:startEvent id="StartEvent_01a6g9a" name="Delete3rdONAPRES_Start">
-      <bpmn:outgoing>SequenceFlow_0ecyqjf</bpmn:outgoing>
+    <bpmn:startEvent id="StartEvent_0hj12gh" name="Delete3rdONAPRES_Start">
+      <bpmn:outgoing>SequenceFlow_190fewc</bpmn:outgoing>
     </bpmn:startEvent>
-    <bpmn:scriptTask id="ScriptTask_0viqs1u" name="prepare 3rdONAP Delete Request" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1sql6c3</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1soxbjk</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_0rs5t7w" name="prepare 3rdONAP Delete Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1suwdgi</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_15mvx68</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
 def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.prepareSDNCRequest(execution)]]></bpmn:script>
+dcsi.prepare3rdONAPRequest(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:endEvent id="EndEvent_1993lyd" name="Delete3rdONAPRES_End">
-      <bpmn:incoming>SequenceFlow_170nvzi</bpmn:incoming>
+    <bpmn:endEvent id="EndEvent_013449q" name="Delete3rdONAPRES_End">
+      <bpmn:incoming>SequenceFlow_0a8k9xi</bpmn:incoming>
     </bpmn:endEvent>
-    <bpmn:scriptTask id="ScriptTask_093lzuq" name="Save SPPartner In AAI">
-      <bpmn:incoming>SequenceFlow_1tlym3z</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0z0u7x1</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.saveSPPartnerInAAI(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_02oc89f" name="Pre Process Request" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_114wjuf</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1sql6c3</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.preProcessRequest(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_1e4pgbj" name="Delete progress update parameters before delete" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1soxbjk</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_000q9m3</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.prepareUpdateBeforeDeleteSDNCResource(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:serviceTask id="ServiceTask_0r6g690" name="update progress update">
-      <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_updateResOperStatusRequest}</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_000q9m3</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1lhdwv6</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:scriptTask id="ScriptTask_1e5o8dz" name="Post process" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_0z0u7x1</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1bo3fu4</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def csi = new  Delete3rdONAPE2EServiceInstance()
-csi.postProcess(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_0ombt1l" name="Delete E2ESI in 3rdONAP" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_0t0jlzs</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_06fak6j</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.doDeleteE2ESIin3rdONAP(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:serviceTask id="ServiceTask_0lgqtdm" name="update progress update">
-      <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_updateResOperStatusRequest}</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_0lpbqkc</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1tlym3z</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:scriptTask id="ScriptTask_0blh9n0" name="Allocate connection resources for cross ONAP" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1lhdwv6</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0t0jlzs</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.postActivateSDNC(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_1vlm2lw" name="Check SPPartner Info" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_0ecyqjf</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1jgurvk</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.checkSPPartnerand LocallCall(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:exclusiveGateway id="ExclusiveGateway_0d7a4pw" name="Is 3rdONAP Existing" default="SequenceFlow_0u3tca8">
-      <bpmn:incoming>SequenceFlow_1jgurvk</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0u3tca8</bpmn:outgoing>
-      <bpmn:outgoing>SequenceFlow_11pvz8i</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_14mk5it" name="Start3rdONAPDeleteE2ESI">
-      <bpmn:outgoing>SequenceFlow_114wjuf</bpmn:outgoing>
-      <bpmn:linkEventDefinition name="Start3rdONAPDeleteE2ESI" />
-    </bpmn:intermediateCatchEvent>
-    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_0bqnalt" name="GoTo Start3rdONAPDeleteE2ESI">
-      <bpmn:incoming>SequenceFlow_06avdut</bpmn:incoming>
-      <bpmn:linkEventDefinition name="Start3rdONAPDeleteE2ESI" />
-    </bpmn:intermediateThrowEvent>
-    <bpmn:scriptTask id="ScriptTask_1trt7oc" name="post Delete E2ESI in 3rdONAP" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_06fak6j</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0cuvrsr</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.doDeleteE2ESIin3rdONAP(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_01s6c7j" name="Query E2ESI progress in 3rdONAP" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_0cuvrsr</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0lpbqkc</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.getE2ESIProgressin3rdONAP(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_1ri59nm" name="Send Sync Ack Response" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1bo3fu4</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_170nvzi</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def csi = new  Delete3rdONAPE2EServiceInstance()
-csi.sendSyncResponse(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_0d7cawc" name="Check Locall Call" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_11pvz8i</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1lqmzex</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.checkSPPartnerand LocallCall(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
-    <bpmn:exclusiveGateway id="ExclusiveGateway_0j2ccax" name="Is Called from Local">
-      <bpmn:incoming>SequenceFlow_1lqmzex</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_06avdut</bpmn:outgoing>
-      <bpmn:outgoing>SequenceFlow_1pwflny</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_0bmqdpg" name="GoTo  StartLocalONAPDeleteE2ESI">
-      <bpmn:incoming>SequenceFlow_0u3tca8</bpmn:incoming>
-      <bpmn:incoming>SequenceFlow_1pwflny</bpmn:incoming>
-      <bpmn:linkEventDefinition name="StartLocalONAPDeleteE2ESI" />
-    </bpmn:intermediateThrowEvent>
-    <bpmn:endEvent id="EndEvent_1itzq8n" name="Delete3rdONAPRES_End">
-      <bpmn:incoming>SequenceFlow_0vhbw8y</bpmn:incoming>
-    </bpmn:endEvent>
-    <bpmn:scriptTask id="ScriptTask_1aigzk8" name="Delete SPPartner In AAI">
-      <bpmn:incoming>SequenceFlow_03mc2qq</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_03ngo7h</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_1b88nnk" name="Delete SPPartner In AAI">
+      <bpmn:incoming>SequenceFlow_0y2g8mr</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0znwu8z</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
 def dcsi = new Delete3rdONAPE2EServiceInstance()
 dcsi.deleteSPPartnerInAAI(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_0cpsjwl" name="Pre Process Request" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1x1sk3t</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_02l74nc</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_16rcjl3" name="Pre Process Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1ttrqml</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0brxjic</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
 def dcsi = new Delete3rdONAPE2EServiceInstance()
 dcsi.preProcessRequest(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:scriptTask id="ScriptTask_01cer09" name="Delete progress update parameters before delete" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_02l74nc</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0ff0jf2</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_10n1tb6" name="Init Delete resource progress" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0brxjic</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0ezt5f0</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "5")
+execution.setVariable("status", "processing")
+execution.setVariable("statusDescription", "Start Creating")
 def dcsi = new Delete3rdONAPE2EServiceInstance()
-dcsi.prepareUpdate(execution)]]></bpmn:script>
+dcsi.prepareUpdateProgress(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:serviceTask id="ServiceTask_1go9g1i" name="update progress update">
+    <bpmn:serviceTask id="ServiceTask_039ju3f" name="resource progress update">
       <bpmn:extensionElements>
         <camunda:connector>
           <camunda:inputOutput>
@@ -201,411 +57,665 @@
           <camunda:connectorId>http-connector</camunda:connectorId>
         </camunda:connector>
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_03ngo7h</bpmn:incoming>
-      <bpmn:incoming>SequenceFlow_177yb27</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1784pcx</bpmn:outgoing>
+      <bpmn:incoming>SequenceFlow_0ezt5f0</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1suwdgi</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:scriptTask id="ScriptTask_0ywn2ec" name="Post process" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1784pcx</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1xhcwoo</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_1aj6okk" name="Post process" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0znwu8z</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_04hwfll</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
 def csi = new  Delete3rdONAPE2EServiceInstance()
 csi.postProcess(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0ui7e2m" name="StartLocalONAPDeleteE2ESI">
-      <bpmn:outgoing>SequenceFlow_1x1sk3t</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_0r2cxvb" name="Delete E2ESI in 3rdONAP" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_15mvx68</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0wp73cw</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.doDeleteE2ESIin3rdONAP(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:serviceTask id="ServiceTask_0p5029r" name="resource progress update">
+      <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_updateResOperStatusRequest}</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_0fkfn70</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1luhljs</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:sequenceFlow id="SequenceFlow_190fewc" sourceRef="StartEvent_0hj12gh" targetRef="ScriptTask_160sboy" />
+    <bpmn:sequenceFlow id="SequenceFlow_0brxjic" sourceRef="ScriptTask_16rcjl3" targetRef="ScriptTask_10n1tb6" />
+    <bpmn:sequenceFlow id="SequenceFlow_0znwu8z" sourceRef="ScriptTask_1b88nnk" targetRef="ScriptTask_1aj6okk" />
+    <bpmn:sequenceFlow id="SequenceFlow_0ezt5f0" sourceRef="ScriptTask_10n1tb6" targetRef="ServiceTask_039ju3f" />
+    <bpmn:scriptTask id="ScriptTask_160sboy" name="Check SPPartner Info from AAI" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_190fewc</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1f71u71</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.checkSPPartnerInfoFromAAI(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_01c0nhq" name="Is 3rdONAP SPPartner Existing" default="SequenceFlow_0h1rnsw">
+      <bpmn:incoming>SequenceFlow_1f71u71</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0h1rnsw</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1msw3xo</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_0h1rnsw" name="no" sourceRef="ExclusiveGateway_01c0nhq" targetRef="IntermediateThrowEvent_1y4vypx" />
+    <bpmn:sequenceFlow id="SequenceFlow_1msw3xo" name="yes" sourceRef="ExclusiveGateway_01c0nhq" targetRef="ScriptTask_1y8kdt3">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("Is3rdONAPExist" )  == "true" )}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0cql41g" name="Start3rdONAPDeleteE2ESI">
+      <bpmn:outgoing>SequenceFlow_1ttrqml</bpmn:outgoing>
+      <bpmn:linkEventDefinition name="Start3rdONAPDeleteE2ESI" />
+    </bpmn:intermediateCatchEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_1f71u71" sourceRef="ScriptTask_160sboy" targetRef="ExclusiveGateway_01c0nhq" />
+    <bpmn:sequenceFlow id="SequenceFlow_1ttrqml" sourceRef="IntermediateCatchEvent_0cql41g" targetRef="ScriptTask_16rcjl3" />
+    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_0wbo4nq" name="GoTo Start3rdONAPDeleteE2ESI">
+      <bpmn:incoming>SequenceFlow_0o376do</bpmn:incoming>
+      <bpmn:linkEventDefinition name="Start3rdONAPDeleteE2ESI" />
+    </bpmn:intermediateThrowEvent>
+    <bpmn:scriptTask id="ScriptTask_0yz8d8c" name="Query E2ESI progress in 3rdONAP" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_13s0mg5</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_0kkou66</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0fkfn70</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.getE2ESIProgressin3rdONAP(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_04hwfll" sourceRef="ScriptTask_1aj6okk" targetRef="ScriptTask_18auy29" />
+    <bpmn:scriptTask id="ScriptTask_1y8kdt3" name="Check Locall Call" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1msw3xo</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1kcu53z</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.checkLocallCall(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1kcu53z" sourceRef="ScriptTask_1y8kdt3" targetRef="ExclusiveGateway_0pj14lp" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_0pj14lp" name="Is Called from Local">
+      <bpmn:incoming>SequenceFlow_1kcu53z</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0o376do</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1y8xkzy</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_0o376do" name="yes" sourceRef="ExclusiveGateway_0pj14lp" targetRef="IntermediateThrowEvent_0wbo4nq">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("IsLocalCall" )  == "true" )}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="SequenceFlow_1y8xkzy" name="no" sourceRef="ExclusiveGateway_0pj14lp" targetRef="IntermediateThrowEvent_1y4vypx" />
+    <bpmn:intermediateThrowEvent id="IntermediateThrowEvent_1y4vypx" name="GoTo  StartLocalONAPDeleteE2ESI">
+      <bpmn:incoming>SequenceFlow_1y8xkzy</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_0h1rnsw</bpmn:incoming>
+      <bpmn:linkEventDefinition name=" StartLocalONAPDeleteE2ESI" />
+    </bpmn:intermediateThrowEvent>
+    <bpmn:endEvent id="EndEvent_0o0n3fa" name="Delete3rdONAPRES_End">
+      <bpmn:incoming>SequenceFlow_131f1jj</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:scriptTask id="ScriptTask_1lazb8l" name="Delete SPPartner In AAI">
+      <bpmn:incoming>SequenceFlow_1wq9f5k</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_18gb81f</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.deleteSPPartnerInAAI(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="ScriptTask_0buj724" name="Pre Process Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0wnyy50</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0z9axn6</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.preProcessRequest(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="ScriptTask_0rixvgj" name="Prepare Delete resource progress" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0z9axn6</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_04l4to1</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "100")
+execution.setVariable("status", "finished")
+execution.setVariable("statusDescription", "Local Creation Only")
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.prepareUpdateProgress(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:serviceTask id="ServiceTask_1kgvq5e" name="update progress update">
+      <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_updateResOperStatusRequest}</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_18gb81f</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_1swgag2</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0dkbe3r</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:scriptTask id="ScriptTask_17s3yrn" name="Post process" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0dkbe3r</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1wn6y9u</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def csi = new  Delete3rdONAPE2EServiceInstance()
+csi.postProcess(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_18h4prx" name="StartLocalONAPDeleteE2ESI">
+      <bpmn:outgoing>SequenceFlow_0wnyy50</bpmn:outgoing>
       <bpmn:linkEventDefinition name="StartLocalONAPDeleteE2ESI" />
     </bpmn:intermediateCatchEvent>
-    <bpmn:scriptTask id="ScriptTask_0y6ox5c" name="Send Sync Ack Response" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1xhcwoo</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_0vhbw8y</bpmn:outgoing>
+    <bpmn:scriptTask id="ScriptTask_03gddkg" name="Send Sync Ack Response" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1wn6y9u</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_131f1jj</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
 def csi = new  Delete3rdONAPE2EServiceInstance()
 csi.sendSyncResponse(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:exclusiveGateway id="ExclusiveGateway_02l57i8" name="Is 3rdONAP Existing" default="SequenceFlow_177yb27">
-      <bpmn:incoming>SequenceFlow_0ff0jf2</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_03mc2qq</bpmn:outgoing>
-      <bpmn:outgoing>SequenceFlow_177yb27</bpmn:outgoing>
+    <bpmn:sequenceFlow id="SequenceFlow_0z9axn6" sourceRef="ScriptTask_0buj724" targetRef="ScriptTask_0rixvgj" />
+    <bpmn:sequenceFlow id="SequenceFlow_131f1jj" sourceRef="ScriptTask_03gddkg" targetRef="EndEvent_0o0n3fa" />
+    <bpmn:sequenceFlow id="SequenceFlow_18gb81f" sourceRef="ScriptTask_1lazb8l" targetRef="ServiceTask_1kgvq5e" />
+    <bpmn:sequenceFlow id="SequenceFlow_0wnyy50" sourceRef="IntermediateCatchEvent_18h4prx" targetRef="ScriptTask_0buj724" />
+    <bpmn:sequenceFlow id="SequenceFlow_04l4to1" sourceRef="ScriptTask_0rixvgj" targetRef="ExclusiveGateway_1cz6dwq" />
+    <bpmn:sequenceFlow id="SequenceFlow_1wn6y9u" sourceRef="ScriptTask_17s3yrn" targetRef="ScriptTask_03gddkg" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_1cz6dwq" name="Is 3rdONAP SPPartner Existing" default="SequenceFlow_1swgag2">
+      <bpmn:incoming>SequenceFlow_04l4to1</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1wq9f5k</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1swgag2</bpmn:outgoing>
     </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="SequenceFlow_0ecyqjf" sourceRef="StartEvent_01a6g9a" targetRef="ScriptTask_1vlm2lw" />
-    <bpmn:sequenceFlow id="SequenceFlow_1sql6c3" sourceRef="ScriptTask_02oc89f" targetRef="ScriptTask_0viqs1u" />
-    <bpmn:sequenceFlow id="SequenceFlow_1soxbjk" sourceRef="ScriptTask_0viqs1u" targetRef="ScriptTask_1e4pgbj" />
-    <bpmn:sequenceFlow id="SequenceFlow_170nvzi" sourceRef="ScriptTask_1ri59nm" targetRef="EndEvent_1993lyd" />
-    <bpmn:sequenceFlow id="SequenceFlow_1tlym3z" sourceRef="ServiceTask_0lgqtdm" targetRef="ScriptTask_093lzuq" />
-    <bpmn:sequenceFlow id="SequenceFlow_0z0u7x1" sourceRef="ScriptTask_093lzuq" targetRef="ScriptTask_1e5o8dz" />
-    <bpmn:sequenceFlow id="SequenceFlow_114wjuf" sourceRef="IntermediateCatchEvent_14mk5it" targetRef="ScriptTask_02oc89f" />
-    <bpmn:sequenceFlow id="SequenceFlow_000q9m3" sourceRef="ScriptTask_1e4pgbj" targetRef="ServiceTask_0r6g690" />
-    <bpmn:sequenceFlow id="SequenceFlow_1lhdwv6" sourceRef="ServiceTask_0r6g690" targetRef="ScriptTask_0blh9n0" />
-    <bpmn:sequenceFlow id="SequenceFlow_1bo3fu4" sourceRef="ScriptTask_1e5o8dz" targetRef="ScriptTask_1ri59nm" />
-    <bpmn:sequenceFlow id="SequenceFlow_0t0jlzs" sourceRef="ScriptTask_0blh9n0" targetRef="ScriptTask_0ombt1l" />
-    <bpmn:sequenceFlow id="SequenceFlow_06fak6j" sourceRef="ScriptTask_0ombt1l" targetRef="ScriptTask_1trt7oc" />
-    <bpmn:sequenceFlow id="SequenceFlow_0lpbqkc" sourceRef="ScriptTask_01s6c7j" targetRef="ServiceTask_0lgqtdm" />
-    <bpmn:sequenceFlow id="SequenceFlow_1jgurvk" sourceRef="ScriptTask_1vlm2lw" targetRef="ExclusiveGateway_0d7a4pw" />
-    <bpmn:sequenceFlow id="SequenceFlow_0u3tca8" name="no" sourceRef="ExclusiveGateway_0d7a4pw" targetRef="IntermediateThrowEvent_0bmqdpg" />
-    <bpmn:sequenceFlow id="SequenceFlow_11pvz8i" name="yes" sourceRef="ExclusiveGateway_0d7a4pw" targetRef="ScriptTask_0d7cawc">
+    <bpmn:sequenceFlow id="SequenceFlow_0dkbe3r" sourceRef="ServiceTask_1kgvq5e" targetRef="ScriptTask_17s3yrn" />
+    <bpmn:sequenceFlow id="SequenceFlow_1wq9f5k" name="yes" sourceRef="ExclusiveGateway_1cz6dwq" targetRef="ScriptTask_1lazb8l">
       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("Is3rdONAPExist" )  == "true" )}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="SequenceFlow_06avdut" name="yes" sourceRef="ExclusiveGateway_0j2ccax" targetRef="IntermediateThrowEvent_0bqnalt">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("IsLocalCall" )  == "true" )}]]></bpmn:conditionExpression>
+    <bpmn:sequenceFlow id="SequenceFlow_1swgag2" name="No" sourceRef="ExclusiveGateway_1cz6dwq" targetRef="ServiceTask_1kgvq5e" />
+    <bpmn:scriptTask id="ScriptTask_1pdhttw" name="timeDelay" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1udji9x</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0kkou66</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.timeDelay(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_1662gjm" name="Delete SI in 3rdONAP Success?" default="SequenceFlow_12seu6n">
+      <bpmn:incoming>SequenceFlow_0wp73cw</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_13s0mg5</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_12seu6n</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_1we7izu" name="Delete  SI in 3rdONAP Finished?">
+      <bpmn:incoming>SequenceFlow_1luhljs</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1udji9x</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_0y2g8mr</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:scriptTask id="ScriptTask_18auy29" name="Send Sync Ack Response" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_04hwfll</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0a8k9xi</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+def csi = new  Delete3rdONAPE2EServiceInstance()
+csi.sendSyncResponse(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_0a8k9xi" sourceRef="ScriptTask_18auy29" targetRef="EndEvent_013449q" />
+    <bpmn:sequenceFlow id="SequenceFlow_15mvx68" sourceRef="ScriptTask_0rs5t7w" targetRef="ScriptTask_0r2cxvb" />
+    <bpmn:sequenceFlow id="SequenceFlow_0wp73cw" sourceRef="ScriptTask_0r2cxvb" targetRef="ExclusiveGateway_1662gjm" />
+    <bpmn:sequenceFlow id="SequenceFlow_13s0mg5" name="yes" sourceRef="ExclusiveGateway_1662gjm" targetRef="ScriptTask_0yz8d8c">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("serviceOrderId" )  != null && execution.getVariable("serviceOrderId" )  != "" )}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="SequenceFlow_0cuvrsr" sourceRef="ScriptTask_1trt7oc" targetRef="ScriptTask_01s6c7j" />
-    <bpmn:sequenceFlow id="SequenceFlow_1lqmzex" sourceRef="ScriptTask_0d7cawc" targetRef="ExclusiveGateway_0j2ccax" />
-    <bpmn:sequenceFlow id="SequenceFlow_1pwflny" name="no" sourceRef="ExclusiveGateway_0j2ccax" targetRef="IntermediateThrowEvent_0bmqdpg" />
-    <bpmn:sequenceFlow id="SequenceFlow_0vhbw8y" sourceRef="ScriptTask_0y6ox5c" targetRef="EndEvent_1itzq8n" />
-    <bpmn:sequenceFlow id="SequenceFlow_03mc2qq" name="yes" sourceRef="ExclusiveGateway_02l57i8" targetRef="ScriptTask_1aigzk8">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{(execution.getVariable("Is3rdONAPExist" )  == "true" )}]]></bpmn:conditionExpression>
+    <bpmn:sequenceFlow id="SequenceFlow_0fkfn70" sourceRef="ScriptTask_0yz8d8c" targetRef="ServiceTask_0p5029r" />
+    <bpmn:sequenceFlow id="SequenceFlow_1suwdgi" sourceRef="ServiceTask_039ju3f" targetRef="ScriptTask_0rs5t7w" />
+    <bpmn:sequenceFlow id="SequenceFlow_0kkou66" sourceRef="ScriptTask_1pdhttw" targetRef="ScriptTask_0yz8d8c" />
+    <bpmn:sequenceFlow id="SequenceFlow_1luhljs" sourceRef="ServiceTask_0p5029r" targetRef="ExclusiveGateway_1we7izu" />
+    <bpmn:sequenceFlow id="SequenceFlow_1udji9x" name="no" sourceRef="ExclusiveGateway_1we7izu" targetRef="ScriptTask_1pdhttw">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[ #{(execution.getVariable("status" ) == "processing" )}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="SequenceFlow_03ngo7h" sourceRef="ScriptTask_1aigzk8" targetRef="ServiceTask_1go9g1i" />
-    <bpmn:sequenceFlow id="SequenceFlow_1x1sk3t" sourceRef="IntermediateCatchEvent_0ui7e2m" targetRef="ScriptTask_0cpsjwl" />
-    <bpmn:sequenceFlow id="SequenceFlow_02l74nc" sourceRef="ScriptTask_0cpsjwl" targetRef="ScriptTask_01cer09" />
-    <bpmn:sequenceFlow id="SequenceFlow_0ff0jf2" sourceRef="ScriptTask_01cer09" targetRef="ExclusiveGateway_02l57i8" />
-    <bpmn:sequenceFlow id="SequenceFlow_177yb27" name="No" sourceRef="ExclusiveGateway_02l57i8" targetRef="ServiceTask_1go9g1i" />
-    <bpmn:sequenceFlow id="SequenceFlow_1784pcx" sourceRef="ServiceTask_1go9g1i" targetRef="ScriptTask_0ywn2ec" />
-    <bpmn:sequenceFlow id="SequenceFlow_1xhcwoo" sourceRef="ScriptTask_0ywn2ec" targetRef="ScriptTask_0y6ox5c" />
+    <bpmn:endEvent id="EndEvent_19joonf">
+      <bpmn:incoming>SequenceFlow_1mei7hu</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_12seu6n" name="no" sourceRef="ExclusiveGateway_1662gjm" targetRef="ScriptTask_07cq0pw" />
+    <bpmn:sequenceFlow id="SequenceFlow_0y2g8mr" name="yes" sourceRef="ExclusiveGateway_1we7izu" targetRef="ScriptTask_1b88nnk">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[ #{(execution.getVariable("status" )  != "processing" )}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:scriptTask id="ScriptTask_07cq0pw" name="update resource progress failed" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_12seu6n</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0i9iiuo</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.*
+execution.setVariable("progress", "100")
+execution.setVariable("status", "error")
+execution.setVariable("statusDescription", "Delete Service Order failed ")
+def dcsi = new Delete3rdONAPE2EServiceInstance()
+dcsi.prepareUpdateProgress(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:serviceTask id="ServiceTask_1ixmamy" name="resource progress update">
+      <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_updateResOperStatusRequest}</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_0i9iiuo</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1mei7hu</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:sequenceFlow id="SequenceFlow_0i9iiuo" sourceRef="ScriptTask_07cq0pw" targetRef="ServiceTask_1ixmamy" />
+    <bpmn:sequenceFlow id="SequenceFlow_1mei7hu" sourceRef="ServiceTask_1ixmamy" targetRef="EndEvent_19joonf" />
   </bpmn:process>
   <bpmn:error id="Error_0nbdy47" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Delete3rdONAPE2EServiceInstance">
-      <bpmndi:BPMNShape id="StartEvent_01a6g9a_di" bpmnElement="StartEvent_01a6g9a">
-        <dc:Bounds x="870" y="-707" width="36" height="36" />
+      <bpmndi:BPMNShape id="StartEvent_0hj12gh_di" bpmnElement="StartEvent_0hj12gh">
+        <dc:Bounds x="-9" y="-418" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="849" y="-671" width="84" height="28" />
+          <dc:Bounds x="-30" y="-382" width="84" height="28" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0viqs1u_di" bpmnElement="ScriptTask_0viqs1u">
-        <dc:Bounds x="1245" y="-442" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_0rs5t7w_di" bpmnElement="ScriptTask_0rs5t7w">
+        <dc:Bounds x="-41" y="12" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="EndEvent_1993lyd_di" bpmnElement="EndEvent_1993lyd">
-        <dc:Bounds x="1848" y="-46" width="36" height="36" />
+      <bpmndi:BPMNShape id="EndEvent_013449q_di" bpmnElement="EndEvent_013449q">
+        <dc:Bounds x="799" y="393" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1812" y="-4" width="84" height="28" />
+          <dc:Bounds x="763" y="435" width="84" height="28" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_093lzuq_di" bpmnElement="ScriptTask_093lzuq">
-        <dc:Bounds x="1245" y="-68" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_1b88nnk_di" bpmnElement="ScriptTask_1b88nnk">
+        <dc:Bounds x="-41" y="371" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_02oc89f_di" bpmnElement="ScriptTask_02oc89f">
-        <dc:Bounds x="1042" y="-442" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_16rcjl3_di" bpmnElement="ScriptTask_16rcjl3">
+        <dc:Bounds x="163" y="-153" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1e4pgbj_di" bpmnElement="ScriptTask_1e4pgbj">
-        <dc:Bounds x="1442" y="-442" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_10n1tb6_di" bpmnElement="ScriptTask_10n1tb6">
+        <dc:Bounds x="366" y="-153" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_0r6g690_di" bpmnElement="ServiceTask_0r6g690">
-        <dc:Bounds x="1678" y="-442" width="100" height="80" />
+      <bpmndi:BPMNShape id="ServiceTask_039ju3f_di" bpmnElement="ServiceTask_039ju3f">
+        <dc:Bounds x="573" y="-153" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1e5o8dz_di" bpmnElement="ScriptTask_1e5o8dz">
-        <dc:Bounds x="1442" y="-68" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_1aj6okk_di" bpmnElement="ScriptTask_1aj6okk">
+        <dc:Bounds x="231" y="371" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0ombt1l_di" bpmnElement="ScriptTask_0ombt1l">
-        <dc:Bounds x="1245" y="-271" width="100" height="80" />
+      <bpmndi:BPMNShape id="ScriptTask_0r2cxvb_di" bpmnElement="ScriptTask_0r2cxvb">
+        <dc:Bounds x="163" y="12" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_0lgqtdm_di" bpmnElement="ServiceTask_0lgqtdm">
-        <dc:Bounds x="1042" y="-68" width="100" height="80" />
+      <bpmndi:BPMNShape id="ServiceTask_0p5029r_di" bpmnElement="ServiceTask_0p5029r">
+        <dc:Bounds x="798" y="12" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0blh9n0_di" bpmnElement="ScriptTask_0blh9n0">
-        <dc:Bounds x="1042" y="-271" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1vlm2lw_di" bpmnElement="ScriptTask_1vlm2lw">
-        <dc:Bounds x="1042" y="-729" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0d7a4pw_di" bpmnElement="ExclusiveGateway_0d7a4pw" isMarkerVisible="true">
-        <dc:Bounds x="1259" y="-715" width="50" height="50" />
+      <bpmndi:BPMNEdge id="SequenceFlow_190fewc_di" bpmnElement="SequenceFlow_190fewc">
+        <di:waypoint xsi:type="dc:Point" x="27" y="-400" />
+        <di:waypoint xsi:type="dc:Point" x="163" y="-400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1243" y="-747" width="56" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_14mk5it_di" bpmnElement="IntermediateCatchEvent_14mk5it">
-        <dc:Bounds x="870" y="-420" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="850" y="-384" width="85" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0bqnalt_di" bpmnElement="IntermediateThrowEvent_0bqnalt">
-        <dc:Bounds x="1835" y="-707" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1813" y="-666" width="85" height="42" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1trt7oc_di" bpmnElement="ScriptTask_1trt7oc">
-        <dc:Bounds x="1442" y="-271" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_01s6c7j_di" bpmnElement="ScriptTask_01s6c7j">
-        <dc:Bounds x="1678" y="-271" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1ri59nm_di" bpmnElement="ScriptTask_1ri59nm">
-        <dc:Bounds x="1678" y="-68" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0d7cawc_di" bpmnElement="ScriptTask_0d7cawc">
-        <dc:Bounds x="1442" y="-729" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0j2ccax_di" bpmnElement="ExclusiveGateway_0j2ccax" isMarkerVisible="true">
-        <dc:Bounds x="1671" y="-715" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1655" y="-747" width="65" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0bmqdpg_di" bpmnElement="IntermediateThrowEvent_0bmqdpg">
-        <dc:Bounds x="1678" y="-589" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1656" y="-548" width="85" height="42" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="EndEvent_1itzq8n_di" bpmnElement="EndEvent_1itzq8n">
-        <dc:Bounds x="1848" y="288" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1812" y="330" width="84" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1aigzk8_di" bpmnElement="ScriptTask_1aigzk8">
-        <dc:Bounds x="1665" y="67" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0cpsjwl_di" bpmnElement="ScriptTask_0cpsjwl">
-        <dc:Bounds x="1042" y="67" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_01cer09_di" bpmnElement="ScriptTask_01cer09">
-        <dc:Bounds x="1245" y="67" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_1go9g1i_di" bpmnElement="ServiceTask_1go9g1i">
-        <dc:Bounds x="1042" y="266" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0ywn2ec_di" bpmnElement="ScriptTask_0ywn2ec">
-        <dc:Bounds x="1245" y="266" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_0ui7e2m_di" bpmnElement="IntermediateCatchEvent_0ui7e2m">
-        <dc:Bounds x="870" y="89" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="850" y="125" width="85" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0y6ox5c_di" bpmnElement="ScriptTask_0y6ox5c">
-        <dc:Bounds x="1442" y="266" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_02l57i8_di" bpmnElement="ExclusiveGateway_02l57i8" isMarkerVisible="true">
-        <dc:Bounds x="1467" y="82" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1461" y="50" width="56" height="28" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0ecyqjf_di" bpmnElement="SequenceFlow_0ecyqjf">
-        <di:waypoint xsi:type="dc:Point" x="906" y="-689" />
-        <di:waypoint xsi:type="dc:Point" x="1042" y="-689" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="929" y="-711" width="0" height="14" />
+          <dc:Bounds x="95" y="-422" width="0" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1sql6c3_di" bpmnElement="SequenceFlow_1sql6c3">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="-402" />
-        <di:waypoint xsi:type="dc:Point" x="1245" y="-402" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0brxjic_di" bpmnElement="SequenceFlow_0brxjic">
+        <di:waypoint xsi:type="dc:Point" x="263" y="-113" />
+        <di:waypoint xsi:type="dc:Point" x="366" y="-113" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1149.5" y="-424" width="0" height="14" />
+          <dc:Bounds x="269.5" y="-135" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1soxbjk_di" bpmnElement="SequenceFlow_1soxbjk">
-        <di:waypoint xsi:type="dc:Point" x="1345" y="-402" />
-        <di:waypoint xsi:type="dc:Point" x="1442" y="-402" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0znwu8z_di" bpmnElement="SequenceFlow_0znwu8z">
+        <di:waypoint xsi:type="dc:Point" x="59" y="411" />
+        <di:waypoint xsi:type="dc:Point" x="231" y="411" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1349.5" y="-424" width="0" height="14" />
+          <dc:Bounds x="100" y="389" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_170nvzi_di" bpmnElement="SequenceFlow_170nvzi">
-        <di:waypoint xsi:type="dc:Point" x="1778" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1848" y="-28" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0ezt5f0_di" bpmnElement="SequenceFlow_0ezt5f0">
+        <di:waypoint xsi:type="dc:Point" x="466" y="-113" />
+        <di:waypoint xsi:type="dc:Point" x="573" y="-113" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1768" y="-50" width="0" height="14" />
+          <dc:Bounds x="474.5" y="-135" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1tlym3z_di" bpmnElement="SequenceFlow_1tlym3z">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1194" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1194" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1245" y="-28" />
+      <bpmndi:BPMNShape id="ScriptTask_160sboy_di" bpmnElement="ScriptTask_160sboy">
+        <dc:Bounds x="163" y="-440" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_01c0nhq_di" bpmnElement="ExclusiveGateway_01c0nhq" isMarkerVisible="true">
+        <dc:Bounds x="380" y="-426" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1164" y="-35" width="0" height="14" />
+          <dc:Bounds x="378" y="-458" width="56" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0h1rnsw_di" bpmnElement="SequenceFlow_0h1rnsw">
+        <di:waypoint xsi:type="dc:Point" x="405" y="-376" />
+        <di:waypoint xsi:type="dc:Point" x="405" y="-282" />
+        <di:waypoint xsi:type="dc:Point" x="525" y="-282" />
+        <di:waypoint xsi:type="dc:Point" x="525" y="-282" />
+        <di:waypoint xsi:type="dc:Point" x="799" y="-282" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="389" y="-368.53991291727147" width="12" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0z0u7x1_di" bpmnElement="SequenceFlow_0z0u7x1">
-        <di:waypoint xsi:type="dc:Point" x="1345" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1394" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1394" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1442" y="-28" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1msw3xo_di" bpmnElement="SequenceFlow_1msw3xo">
+        <di:waypoint xsi:type="dc:Point" x="430" y="-401" />
+        <di:waypoint xsi:type="dc:Point" x="563" y="-400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1364" y="-35" width="0" height="14" />
+          <dc:Bounds x="499.95320010152244" y="-422.3646305622811" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_114wjuf_di" bpmnElement="SequenceFlow_114wjuf">
-        <di:waypoint xsi:type="dc:Point" x="906" y="-402" />
-        <di:waypoint xsi:type="dc:Point" x="1042" y="-402" />
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_0cql41g_di" bpmnElement="IntermediateCatchEvent_0cql41g">
+        <dc:Bounds x="-9" y="-131" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="929" y="-424" width="0" height="14" />
+          <dc:Bounds x="-29" y="-95" width="85" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1f71u71_di" bpmnElement="SequenceFlow_1f71u71">
+        <di:waypoint xsi:type="dc:Point" x="263" y="-400" />
+        <di:waypoint xsi:type="dc:Point" x="380" y="-401" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="321.5" y="-422.5" width="0" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_000q9m3_di" bpmnElement="SequenceFlow_000q9m3">
-        <di:waypoint xsi:type="dc:Point" x="1545" y="-402" />
-        <di:waypoint xsi:type="dc:Point" x="1678" y="-402" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1ttrqml_di" bpmnElement="SequenceFlow_1ttrqml">
+        <di:waypoint xsi:type="dc:Point" x="27" y="-113" />
+        <di:waypoint xsi:type="dc:Point" x="163" y="-113" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1567.5" y="-424" width="0" height="14" />
+          <dc:Bounds x="50" y="-135" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1lhdwv6_di" bpmnElement="SequenceFlow_1lhdwv6">
-        <di:waypoint xsi:type="dc:Point" x="1728" y="-362" />
-        <di:waypoint xsi:type="dc:Point" x="1728" y="-316" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="-316" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="-271" />
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_0wbo4nq_di" bpmnElement="IntermediateThrowEvent_0wbo4nq">
+        <dc:Bounds x="1026" y="-418" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1365" y="-338" width="0" height="14" />
+          <dc:Bounds x="1004" y="-377" width="85" height="42" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0yz8d8c_di" bpmnElement="ScriptTask_0yz8d8c">
+        <dc:Bounds x="573" y="12" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_04hwfll_di" bpmnElement="SequenceFlow_04hwfll">
+        <di:waypoint xsi:type="dc:Point" x="331" y="411" />
+        <di:waypoint xsi:type="dc:Point" x="509" y="411" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="375" y="389" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1bo3fu4_di" bpmnElement="SequenceFlow_1bo3fu4">
-        <di:waypoint xsi:type="dc:Point" x="1542" y="-28" />
-        <di:waypoint xsi:type="dc:Point" x="1678" y="-28" />
+      <bpmndi:BPMNShape id="ScriptTask_1y8kdt3_di" bpmnElement="ScriptTask_1y8kdt3">
+        <dc:Bounds x="563" y="-440" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1kcu53z_di" bpmnElement="SequenceFlow_1kcu53z">
+        <di:waypoint xsi:type="dc:Point" x="663" y="-400" />
+        <di:waypoint xsi:type="dc:Point" x="792" y="-401" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1565" y="-50" width="0" height="14" />
+          <dc:Bounds x="727.5" y="-422.5" width="0" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0t0jlzs_di" bpmnElement="SequenceFlow_0t0jlzs">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="-231" />
-        <di:waypoint xsi:type="dc:Point" x="1245" y="-231" />
+      <bpmndi:BPMNShape id="ExclusiveGateway_0pj14lp_di" bpmnElement="ExclusiveGateway_0pj14lp" isMarkerVisible="true">
+        <dc:Bounds x="792" y="-426" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1148.5" y="-253" width="0" height="14" />
+          <dc:Bounds x="776" y="-458" width="83" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0o376do_di" bpmnElement="SequenceFlow_0o376do">
+        <di:waypoint xsi:type="dc:Point" x="842" y="-401" />
+        <di:waypoint xsi:type="dc:Point" x="1026" y="-400" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="924.8735220112762" y="-422.0003436810377" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_06fak6j_di" bpmnElement="SequenceFlow_06fak6j">
-        <di:waypoint xsi:type="dc:Point" x="1345" y="-231" />
-        <di:waypoint xsi:type="dc:Point" x="1442" y="-231" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1y8xkzy_di" bpmnElement="SequenceFlow_1y8xkzy">
+        <di:waypoint xsi:type="dc:Point" x="817" y="-376" />
+        <di:waypoint xsi:type="dc:Point" x="817" y="-300" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1348.5" y="-253" width="0" height="14" />
+          <dc:Bounds x="827" y="-357" width="12" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0lpbqkc_di" bpmnElement="SequenceFlow_0lpbqkc">
-        <di:waypoint xsi:type="dc:Point" x="1728" y="-191" />
-        <di:waypoint xsi:type="dc:Point" x="1728" y="-137" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="-137" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="-68" />
+      <bpmndi:BPMNShape id="IntermediateThrowEvent_1y4vypx_di" bpmnElement="IntermediateThrowEvent_1y4vypx">
+        <dc:Bounds x="799" y="-300" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1365" y="-159" width="0" height="14" />
+          <dc:Bounds x="777" y="-259" width="85" height="42" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0o0n3fa_di" bpmnElement="EndEvent_0o0n3fa">
+        <dc:Bounds x="794" y="733" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="758" y="775" width="84" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1lazb8l_di" bpmnElement="ScriptTask_1lazb8l">
+        <dc:Bounds x="762" y="512" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0buj724_di" bpmnElement="ScriptTask_0buj724">
+        <dc:Bounds x="139" y="512" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0rixvgj_di" bpmnElement="ScriptTask_0rixvgj">
+        <dc:Bounds x="342" y="512" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_1kgvq5e_di" bpmnElement="ServiceTask_1kgvq5e">
+        <dc:Bounds x="-41" y="711" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_17s3yrn_di" bpmnElement="ScriptTask_17s3yrn">
+        <dc:Bounds x="231" y="711" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="IntermediateCatchEvent_18h4prx_di" bpmnElement="IntermediateCatchEvent_18h4prx">
+        <dc:Bounds x="-9" y="534" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="-29" y="570" width="85" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_03gddkg_di" bpmnElement="ScriptTask_03gddkg">
+        <dc:Bounds x="496" y="711" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0z9axn6_di" bpmnElement="SequenceFlow_0z9axn6">
+        <di:waypoint xsi:type="dc:Point" x="239" y="552" />
+        <di:waypoint xsi:type="dc:Point" x="342" y="552" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="246" y="530" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1jgurvk_di" bpmnElement="SequenceFlow_1jgurvk">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="-689" />
-        <di:waypoint xsi:type="dc:Point" x="1259" y="-690" />
+      <bpmndi:BPMNEdge id="SequenceFlow_131f1jj_di" bpmnElement="SequenceFlow_131f1jj">
+        <di:waypoint xsi:type="dc:Point" x="596" y="751" />
+        <di:waypoint xsi:type="dc:Point" x="794" y="751" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1156.5" y="-710.5" width="0" height="14" />
+          <dc:Bounds x="650" y="729" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0u3tca8_di" bpmnElement="SequenceFlow_0u3tca8">
-        <di:waypoint xsi:type="dc:Point" x="1284" y="-665" />
-        <di:waypoint xsi:type="dc:Point" x="1284" y="-571" />
-        <di:waypoint xsi:type="dc:Point" x="1404" y="-571" />
-        <di:waypoint xsi:type="dc:Point" x="1404" y="-571" />
-        <di:waypoint xsi:type="dc:Point" x="1678" y="-571" />
+      <bpmndi:BPMNEdge id="SequenceFlow_18gb81f_di" bpmnElement="SequenceFlow_18gb81f">
+        <di:waypoint xsi:type="dc:Point" x="812" y="592" />
+        <di:waypoint xsi:type="dc:Point" x="812" y="641" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="641" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="711" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1268" y="-658" width="12" height="14" />
+          <dc:Bounds x="365.5" y="619" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_11pvz8i_di" bpmnElement="SequenceFlow_11pvz8i">
-        <di:waypoint xsi:type="dc:Point" x="1309" y="-690" />
-        <di:waypoint xsi:type="dc:Point" x="1442" y="-689" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0wnyy50_di" bpmnElement="SequenceFlow_0wnyy50">
+        <di:waypoint xsi:type="dc:Point" x="27" y="552" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="552" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1378.5" y="-711.5" width="18" height="14" />
+          <dc:Bounds x="38" y="530" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_06avdut_di" bpmnElement="SequenceFlow_06avdut">
-        <di:waypoint xsi:type="dc:Point" x="1721" y="-690" />
-        <di:waypoint xsi:type="dc:Point" x="1835" y="-689" />
+      <bpmndi:BPMNEdge id="SequenceFlow_04l4to1_di" bpmnElement="SequenceFlow_04l4to1">
+        <di:waypoint xsi:type="dc:Point" x="442" y="552" />
+        <di:waypoint xsi:type="dc:Point" x="564" y="552" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1769" y="-710.5" width="18" height="14" />
+          <dc:Bounds x="458" y="530" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0cuvrsr_di" bpmnElement="SequenceFlow_0cuvrsr">
-        <di:waypoint xsi:type="dc:Point" x="1542" y="-231" />
-        <di:waypoint xsi:type="dc:Point" x="1678" y="-231" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1wn6y9u_di" bpmnElement="SequenceFlow_1wn6y9u">
+        <di:waypoint xsi:type="dc:Point" x="331" y="751" />
+        <di:waypoint xsi:type="dc:Point" x="496" y="751" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1565" y="-253" width="0" height="14" />
+          <dc:Bounds x="368.5" y="729" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1lqmzex_di" bpmnElement="SequenceFlow_1lqmzex">
-        <di:waypoint xsi:type="dc:Point" x="1542" y="-689" />
-        <di:waypoint xsi:type="dc:Point" x="1671" y="-690" />
+      <bpmndi:BPMNShape id="ExclusiveGateway_1cz6dwq_di" bpmnElement="ExclusiveGateway_1cz6dwq" isMarkerVisible="true">
+        <dc:Bounds x="564" y="527" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1606.5" y="-711.5" width="0" height="14" />
+          <dc:Bounds x="558" y="495" width="56" height="28" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0dkbe3r_di" bpmnElement="SequenceFlow_0dkbe3r">
+        <di:waypoint xsi:type="dc:Point" x="59" y="751" />
+        <di:waypoint xsi:type="dc:Point" x="231" y="751" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="100" y="729" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1pwflny_di" bpmnElement="SequenceFlow_1pwflny">
-        <di:waypoint xsi:type="dc:Point" x="1696" y="-665" />
-        <di:waypoint xsi:type="dc:Point" x="1696" y="-589" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1wq9f5k_di" bpmnElement="SequenceFlow_1wq9f5k">
+        <di:waypoint xsi:type="dc:Point" x="614" y="552" />
+        <di:waypoint xsi:type="dc:Point" x="762" y="552" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1706" y="-646" width="12" height="14" />
+          <dc:Bounds x="679" y="530" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0vhbw8y_di" bpmnElement="SequenceFlow_0vhbw8y">
-        <di:waypoint xsi:type="dc:Point" x="1542" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1848" y="306" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1swgag2_di" bpmnElement="SequenceFlow_1swgag2">
+        <di:waypoint xsi:type="dc:Point" x="589" y="577" />
+        <di:waypoint xsi:type="dc:Point" x="589" y="641" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="641" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="711" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1695" y="284" width="0" height="14" />
+          <dc:Bounds x="293.22499999999997" y="619" width="13" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_03mc2qq_di" bpmnElement="SequenceFlow_03mc2qq">
-        <di:waypoint xsi:type="dc:Point" x="1517" y="107" />
-        <di:waypoint xsi:type="dc:Point" x="1665" y="107" />
+      <bpmndi:BPMNShape id="ScriptTask_1pdhttw_di" bpmnElement="ScriptTask_1pdhttw">
+        <dc:Bounds x="573" y="187" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1662gjm_di" bpmnElement="ExclusiveGateway_1662gjm" isMarkerVisible="true">
+        <dc:Bounds x="386" y="27" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1582" y="85" width="18" height="14" />
+          <dc:Bounds x="384" y="-25" width="55" height="42" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1we7izu_di" bpmnElement="ExclusiveGateway_1we7izu" isMarkerVisible="true">
+        <dc:Bounds x="823" y="202" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="880" y="206" width="68" height="42" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_18auy29_di" bpmnElement="ScriptTask_18auy29">
+        <dc:Bounds x="509" y="371" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0a8k9xi_di" bpmnElement="SequenceFlow_0a8k9xi">
+        <di:waypoint xsi:type="dc:Point" x="609" y="411" />
+        <di:waypoint xsi:type="dc:Point" x="704" y="411" />
+        <di:waypoint xsi:type="dc:Point" x="704" y="411" />
+        <di:waypoint xsi:type="dc:Point" x="799" y="411" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="674" y="404" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_03ngo7h_di" bpmnElement="SequenceFlow_03ngo7h">
-        <di:waypoint xsi:type="dc:Point" x="1715" y="147" />
-        <di:waypoint xsi:type="dc:Point" x="1715" y="196" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="196" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="266" />
+      <bpmndi:BPMNEdge id="SequenceFlow_15mvx68_di" bpmnElement="SequenceFlow_15mvx68">
+        <di:waypoint xsi:type="dc:Point" x="59" y="52" />
+        <di:waypoint xsi:type="dc:Point" x="163" y="52" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1403.5" y="174" width="0" height="14" />
+          <dc:Bounds x="66" y="30" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1x1sk3t_di" bpmnElement="SequenceFlow_1x1sk3t">
-        <di:waypoint xsi:type="dc:Point" x="906" y="107" />
-        <di:waypoint xsi:type="dc:Point" x="1042" y="107" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0wp73cw_di" bpmnElement="SequenceFlow_0wp73cw">
+        <di:waypoint xsi:type="dc:Point" x="263" y="52" />
+        <di:waypoint xsi:type="dc:Point" x="386" y="52" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="929" y="85" width="0" height="14" />
+          <dc:Bounds x="279.5" y="30" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_02l74nc_di" bpmnElement="SequenceFlow_02l74nc">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="107" />
-        <di:waypoint xsi:type="dc:Point" x="1245" y="107" />
+      <bpmndi:BPMNEdge id="SequenceFlow_13s0mg5_di" bpmnElement="SequenceFlow_13s0mg5">
+        <di:waypoint xsi:type="dc:Point" x="436" y="52" />
+        <di:waypoint xsi:type="dc:Point" x="573" y="52" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1193.5" y="85" width="0" height="14" />
+          <dc:Bounds x="496" y="30" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0ff0jf2_di" bpmnElement="SequenceFlow_0ff0jf2">
-        <di:waypoint xsi:type="dc:Point" x="1345" y="107" />
-        <di:waypoint xsi:type="dc:Point" x="1467" y="107" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0fkfn70_di" bpmnElement="SequenceFlow_0fkfn70">
+        <di:waypoint xsi:type="dc:Point" x="673" y="52" />
+        <di:waypoint xsi:type="dc:Point" x="798" y="52" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1406" y="85" width="0" height="14" />
+          <dc:Bounds x="690.5" y="30" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_177yb27_di" bpmnElement="SequenceFlow_177yb27">
-        <di:waypoint xsi:type="dc:Point" x="1492" y="132" />
-        <di:waypoint xsi:type="dc:Point" x="1492" y="196" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="196" />
-        <di:waypoint xsi:type="dc:Point" x="1092" y="266" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1suwdgi_di" bpmnElement="SequenceFlow_1suwdgi">
+        <di:waypoint xsi:type="dc:Point" x="673" y="-113" />
+        <di:waypoint xsi:type="dc:Point" x="848" y="-113" />
+        <di:waypoint xsi:type="dc:Point" x="848" y="-39" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="-39" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="12" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1286" y="174" width="13" height="14" />
+          <dc:Bounds x="818" y="-83" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1784pcx_di" bpmnElement="SequenceFlow_1784pcx">
-        <di:waypoint xsi:type="dc:Point" x="1142" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1176" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1241" y="306" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0kkou66_di" bpmnElement="SequenceFlow_0kkou66">
+        <di:waypoint xsi:type="dc:Point" x="623" y="187" />
+        <di:waypoint xsi:type="dc:Point" x="623" y="92" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1159" y="284" width="0" height="14" />
+          <dc:Bounds x="593" y="132.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1xhcwoo_di" bpmnElement="SequenceFlow_1xhcwoo">
-        <di:waypoint xsi:type="dc:Point" x="1345" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1400" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1400" y="306" />
-        <di:waypoint xsi:type="dc:Point" x="1442" y="306" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1luhljs_di" bpmnElement="SequenceFlow_1luhljs">
+        <di:waypoint xsi:type="dc:Point" x="848" y="92" />
+        <di:waypoint xsi:type="dc:Point" x="848" y="202" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1415" y="299" width="0" height="14" />
+          <dc:Bounds x="818" y="140" width="90" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1udji9x_di" bpmnElement="SequenceFlow_1udji9x">
+        <di:waypoint xsi:type="dc:Point" x="823" y="227" />
+        <di:waypoint xsi:type="dc:Point" x="673" y="227" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="746" y="208" width="12" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_19joonf_di" bpmnElement="EndEvent_19joonf">
+        <dc:Bounds x="387" y="197" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="360" y="236" width="90" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_12seu6n_di" bpmnElement="SequenceFlow_12seu6n">
+        <di:waypoint xsi:type="dc:Point" x="411" y="77" />
+        <di:waypoint xsi:type="dc:Point" x="411" y="137" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="137" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="175" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="183.26272082138004" y="113.00000000000001" width="12" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0y2g8mr_di" bpmnElement="SequenceFlow_0y2g8mr">
+        <di:waypoint xsi:type="dc:Point" x="848" y="252" />
+        <di:waypoint xsi:type="dc:Point" x="848" y="324" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="324" />
+        <di:waypoint xsi:type="dc:Point" x="9" y="371" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="419.8991436726927" y="302" width="18" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_07cq0pw_di" bpmnElement="ScriptTask_07cq0pw">
+        <dc:Bounds x="-41" y="175" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ServiceTask_1ixmamy_di" bpmnElement="ServiceTask_1ixmamy">
+        <dc:Bounds x="166" y="175" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0i9iiuo_di" bpmnElement="SequenceFlow_0i9iiuo">
+        <di:waypoint xsi:type="dc:Point" x="59" y="215" />
+        <di:waypoint xsi:type="dc:Point" x="166" y="215" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="68.5" y="193" width="0" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1mei7hu_di" bpmnElement="SequenceFlow_1mei7hu">
+        <di:waypoint xsi:type="dc:Point" x="266" y="215" />
+        <di:waypoint xsi:type="dc:Point" x="387" y="215" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="326.5" y="193" width="0" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>