Use UUID to fill pnf-id in PNF PnP 05/74705/3
authorJoanna Jeremicz <joanna.jeremicz@nokia.com>
Wed, 5 Dec 2018 09:38:39 +0000 (10:38 +0100)
committerJoanna Jeremicz <joanna.jeremicz@nokia.com>
Tue, 18 Dec 2018 11:03:38 +0000 (12:03 +0100)
Issue-ID: SO-1272
Change-Id: If516b7ec38dad3fbc7409aff42275a98ef2af76b
Signed-off-by: Joanna Jeremicz <joanna.jeremicz@nokia.com>
bpmn/mso-infrastructure-bpmn/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateAndActivatePnfResourceTest.java
bpmn/mso-infrastructure-bpmn/src/test/resources/applicationContext_forPnfTesting.xml
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreatePnfEntryInAaiDelegate.java [moved from bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateAaiEntryWithPnfIdDelegate.java with 72% similarity]
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/ExecutionVariableNames.java
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegate.java [new file with mode: 0644]
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfCheckInputs.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreatePnfEntryInAaiDelegateTest.java [moved from bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreateAaiEntryWithPnfIdDelegateTest.java with 73% similarity]
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegateTest.java [new file with mode: 0644]
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfCheckInputsTest.java
bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateAndActivatePnfResource.bpmn
bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/CreateVcpeResCustService_simplified.bpmn

index 2348af5..5591051 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
  * 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
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
 import org.assertj.core.api.Assertions;
 import org.camunda.bpm.engine.RuntimeService;
 import org.camunda.bpm.engine.runtime.ProcessInstance;
@@ -34,11 +42,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
-
 @RunWith(SpringRunner.class)
 @ContextConfiguration(locations = "/applicationContext_forPnfTesting.xml")
 public class CreateAndActivatePnfResourceTest {
@@ -50,6 +53,7 @@ public class CreateAndActivatePnfResourceTest {
     @Autowired
     @Rule
     public ProcessEngineRule processEngineRule;
+    private static final String VALID_UUID = UUID.nameUUIDFromBytes("testUuid".getBytes()).toString();
 
     @Autowired
     private AaiConnectionTestImpl aaiConnection;
@@ -66,6 +70,7 @@ public class CreateAndActivatePnfResourceTest {
         Map<String, Object> variables = new HashMap<>();
         variables.put("timeoutForPnfEntryNotification", TIMEOUT_10_S);
         variables.put(CORRELATION_ID, AaiConnectionTestImpl.ID_WITH_ENTRY);
+        variables.put(PNF_UUID, VALID_UUID);
         // when
         ProcessInstance instance = runtimeService
                 .startProcessInstanceByKey("CreateAndActivatePnfResource", "businessKey", variables);
@@ -94,6 +99,7 @@ public class CreateAndActivatePnfResourceTest {
         Map<String, Object> variables = new HashMap<>();
         variables.put("timeoutForPnfEntryNotification", TIMEOUT_10_S);
         variables.put(CORRELATION_ID, AaiConnectionTestImpl.ID_WITHOUT_ENTRY);
+        variables.put(PNF_UUID, VALID_UUID);
         // when
         ProcessInstance instance = runtimeService
                 .startProcessInstanceByKey("CreateAndActivatePnfResource", "businessKey", variables);
@@ -106,7 +112,7 @@ public class CreateAndActivatePnfResourceTest {
                 "CheckInputs",
                 "CheckAiiForCorrelationId",
                 "DoesAaiContainInfoAboutPnf",
-                "CreateAndActivatePnf_CreateAaiEntry",
+                "CreatePnfEntryInAai",
                 "AaiEntryExists",
                 "InformDmaapClient",
                 "WaitForDmaapPnfReadyNotification",
index 3a41801..9e9e5a2 100644 (file)
@@ -52,7 +52,7 @@
     <property name="aaiConnection" ref="aaiConnection"/>
   </bean>
 
-  <bean id="CreateAaiEntryWithPnfIdDelegate" class="org.onap.so.bpmn.infrastructure.pnf.delegate.CreateAaiEntryWithPnfIdDelegate">
+  <bean id="CreatePnfEntryInAaiDelegate" class="org.onap.so.bpmn.infrastructure.pnf.delegate.CreatePnfEntryInAaiDelegate">
     <property name="aaiConnection" ref="aaiConnection"/>
   </bean>
 
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
  * 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
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
 
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.aai.domain.yang.Pnf;
 import org.onap.so.bpmn.infrastructure.pnf.implementation.AaiConnection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * Implementation of "Create AAI entry with pnf-id = correlation_id" task in CreateAndActivatePnfResource.bpmn
+ * Implementation of "Create Pnf entry in AAI" task in CreateAndActivatePnfResource.bpmn
  *
  * Inputs:
  *  - correlationId - String
+ *  - pnfUuid - String
  */
 @Component
-public class CreateAaiEntryWithPnfIdDelegate implements JavaDelegate {
+public class CreatePnfEntryInAaiDelegate implements JavaDelegate {
 
+    private static final Logger logger = LoggerFactory.getLogger(CreatePnfEntryInAaiDelegate.class);
     private AaiConnection aaiConnection;
 
     @Autowired
@@ -48,10 +55,12 @@ public class CreateAaiEntryWithPnfIdDelegate implements JavaDelegate {
     @Override
     public void execute(DelegateExecution execution) throws Exception {
         String correlationId = (String) execution.getVariable(CORRELATION_ID);
+        String pnfUuid = (String) execution.getVariable(PNF_UUID);
         Pnf pnf = new Pnf();
         pnf.setInMaint(true);
-        pnf.setPnfId(correlationId);
+        pnf.setPnfId(pnfUuid);
         pnf.setPnfName(correlationId);
         aaiConnection.createEntry(correlationId, pnf);
+        logger.debug("AAI entry is created for pnf correlation id: {}, pnf uuid: {}", correlationId, pnfUuid);
     }
 }
index b3f2f72..1407cb9 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
  * 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
@@ -30,4 +32,5 @@ public class ExecutionVariableNames {
     public final static String AAI_CONTAINS_INFO_ABOUT_IP = "aaiContainsInfoAboutIp";
     public final static String DMAAP_MESSAGE = "dmaapMessage";
     public final static String TIMEOUT_FOR_NOTIFICATION = "timeoutForPnfEntryNotification";
+    public final static String PNF_UUID = "pnfUuid";
 }
diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegate.java b/bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegate.java
new file mode 100644 (file)
index 0000000..f5483e4
--- /dev/null
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
+ * 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.pnf.delegate;
+
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
+
+import java.util.UUID;
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class GeneratePnfUuidDelegate implements JavaDelegate {
+
+    private static final Logger logger = LoggerFactory.getLogger(GeneratePnfUuidDelegate.class);
+
+    @Override
+    public void execute(DelegateExecution delegateExecution){
+        UUID uuid = UUID.randomUUID();
+        logger.debug("Generated UUID for pnf: {}, version: {}, variant: {}", uuid, uuid.version(), uuid.variant());
+        delegateExecution.setVariable(PNF_UUID, uuid.toString());
+    }
+}
index 164f51f..c1ddf2e 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
  * 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
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.TIMEOUT_FOR_NOTIFICATION;
 
+import com.google.common.base.Strings;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.engine.delegate.JavaDelegate;
 import org.onap.so.bpmn.common.scripts.ExceptionUtil;
@@ -34,6 +38,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class PnfCheckInputs implements JavaDelegate {
 
+    public static final String UUID_REGEX = "(?i)^[0-9a-f]{8}-[0-9a-f]{4}-[1-5]{1}[0-9a-f]{3}-[89ab]{1}[0-9a-f]{3}-[0-9a-f]{12}$";
     private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, PnfCheckInputs.class);
 
     private String defaultTimeout;
@@ -45,19 +50,37 @@ public class PnfCheckInputs implements JavaDelegate {
 
     @Override
     public void execute(DelegateExecution execution) {
+        validateCorrelationId(execution);
+        validatePnfUuid(execution);
+        validateTimeout(execution);
+    }
+
+    private void validateCorrelationId(DelegateExecution execution) {
         String correlationId = (String) execution.getVariable(CORRELATION_ID);
-        if (correlationId == null) {
+        if (Strings.isNullOrEmpty(correlationId)) {
             new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999, "correlationId variable not defined");
         }
+    }
+
+    private void validatePnfUuid(DelegateExecution execution) {
+        String pnfUuid = (String) execution.getVariable(PNF_UUID);
+        if (Strings.isNullOrEmpty(pnfUuid)) {
+            new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999, "pnfUuid variable not defined");
+        }
+        if (!pnfUuid.matches(UUID_REGEX)) {
+            new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999, "pnfUuid is not a valid UUID");
+        }
+    }
+
+    private void validateTimeout(DelegateExecution execution) {
         String timeout = (String) execution.getVariable(TIMEOUT_FOR_NOTIFICATION);
-        if (timeout == null) {
+        if (Strings.isNullOrEmpty(timeout)) {
             LOGGER.debug("timeoutForPnfEntryNotification variable not found, setting default");
             if (defaultTimeout == null) {
                 new ExceptionUtil().buildAndThrowWorkflowException(execution, 9999,
-                        "default timeoutForPnfEntryNotification value not defined");
+                    "default timeoutForPnfEntryNotification value not defined");
             }
             execution.setVariable(TIMEOUT_FOR_NOTIFICATION, defaultTimeout);
         }
     }
-
 }
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright 2018 Nokia
+ * ================================================================================
  * 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
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.BDDMockito.given;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
 
+import java.util.UUID;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.junit.Test;
 import org.onap.aai.domain.yang.Pnf;
 
-public class CreateAaiEntryWithPnfIdDelegateTest {
+public class CreatePnfEntryInAaiDelegateTest {
 
     @Test
     public void shouldSetPnfIdAndPnfName() throws Exception {
         // given
-        CreateAaiEntryWithPnfIdDelegate delegate = new CreateAaiEntryWithPnfIdDelegate();
+        String pnfUuid = UUID.nameUUIDFromBytes("testUuid".getBytes()).toString();
+        CreatePnfEntryInAaiDelegate delegate = new CreatePnfEntryInAaiDelegate();
         AaiConnectionTestImpl aaiConnection = new AaiConnectionTestImpl();
         delegate.setAaiConnection(aaiConnection);
         DelegateExecution execution = mock(DelegateExecution.class);
-        when(execution.getVariable(eq(CORRELATION_ID))).thenReturn("testCorrelationId");
+        given(execution.getVariable(eq(CORRELATION_ID))).willReturn("testCorrelationId");
+        given(execution.getVariable(eq(PNF_UUID))).willReturn(pnfUuid);
         // when
         delegate.execute(execution);
         // then
         Pnf createdEntry = aaiConnection.getCreated().get("testCorrelationId");
-        assertThat(createdEntry.getPnfId()).isEqualTo("testCorrelationId");
+        assertThat(createdEntry.getPnfId()).isEqualTo(pnfUuid);
         assertThat(createdEntry.getPnfName()).isEqualTo("testCorrelationId");
         assertThat(createdEntry.isInMaint()).isTrue();
     }
diff --git a/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegateTest.java b/bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegateTest.java
new file mode 100644 (file)
index 0000000..c351706
--- /dev/null
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Nokia.
+ * ================================================================================
+ * 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.pnf.delegate;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
+import org.junit.Test;
+
+public class GeneratePnfUuidDelegateTest {
+    @Test
+    public void execute_shouldSetValidUuidAsPnfUuid() {
+        // given
+        GeneratePnfUuidDelegate delegate = new GeneratePnfUuidDelegate();
+        DelegateExecution execution = new DelegateExecutionFake();
+        // when
+        delegate.execute(execution);
+        // then
+        assertThat((String) execution.getVariable(PNF_UUID)).matches(PnfCheckInputs.UUID_REGEX);
+    }
+}
\ No newline at end of file
index 2e8fb4b..3e146be 100644 (file)
 
 package org.onap.so.bpmn.infrastructure.pnf.delegate;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.CORRELATION_ID;
+import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.PNF_UUID;
 import static org.onap.so.bpmn.infrastructure.pnf.delegate.ExecutionVariableNames.TIMEOUT_FOR_NOTIFICATION;
 
+import java.util.UUID;
 import org.camunda.bpm.engine.delegate.BpmnError;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
+import org.junit.Before;
 import org.junit.Test;
 
 public class PnfCheckInputsTest {
 
     private static final String DEFAULT_TIMEOUT = "P1D";
+    private static final String VALID_UUID = UUID.nameUUIDFromBytes("testUuid".getBytes()).toString();
+    private static final String RESERVED_UUID = new UUID(0, 0).toString();
 
-    private DelegateExecution mockDelegateExecution() {
-        new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution delegateExecution = mock(DelegateExecution.class);
-        when(delegateExecution.getVariable("testProcessKey")).thenReturn("testProcessKeyValue");
-        return delegateExecution;
+    private DelegateExecution delegateExecution;
+
+    @Before
+    public void setUp() {
+        delegateExecution = new DelegateExecutionFake();
+        delegateExecution.setVariable("testProcessKey", "testProcessKeyValue");
     }
 
     @Test
-    public void shouldThrowException_whenPnfIdNotSet() {
-        // given
-        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution delegateExecution = mockDelegateExecution();
-        // when, then
+    public void shouldThrowException_whenCorrelationIdNotSet() {
+        PnfCheckInputs testedObject = prepareExecutionForCorrelationId(null);
+        assertThatThrownBy(() -> testedObject.execute(delegateExecution)).isInstanceOf(BpmnError.class);
+    }
+
+    @Test
+    public void shouldThrowException_whenTimeoutIsEmptyStringAndDefaultIsNotDefined() {
+        PnfCheckInputs testedObject = prepareExecutionForTimeout(null, "");
         assertThatThrownBy(() -> testedObject.execute(delegateExecution)).isInstanceOf(BpmnError.class);
     }
 
-    private DelegateExecution mockDelegateExecutionWithCorrelationId() {
-        new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution delegateExecution = mockDelegateExecution();
-        when(delegateExecution.getVariable(CORRELATION_ID)).thenReturn("testCorrelationId");
-        return delegateExecution;
+    @Test
+    public void shouldSetDefaultTimeout_whenTimeoutIsNotSet() {
+        PnfCheckInputs testedObject = prepareExecutionForTimeout(DEFAULT_TIMEOUT, null);
+        testedObject.execute(delegateExecution);
+        assertThat(delegateExecution.getVariable(TIMEOUT_FOR_NOTIFICATION)).isEqualTo(DEFAULT_TIMEOUT);
     }
 
     @Test
-    public void shouldThrowException_whenTimeoutIsNotSetAndDefaultIsNotDefined() {
-        // given
-        PnfCheckInputs testedObject = new PnfCheckInputs(null);
-        DelegateExecution delegateExecution = mockDelegateExecutionWithCorrelationId();
-        // when, then
+    public void shouldThrowException_whenPnfUuidIsNotSet() {
+        PnfCheckInputs testedObject = prepareExecutionForUuid(null);
         assertThatThrownBy(() -> testedObject.execute(delegateExecution)).isInstanceOf(BpmnError.class);
     }
 
     @Test
-    public void shouldSetDefaultTimeout_whenTimeoutIsNotSet() {
-        // given
+    public void shouldThrowException_whenPnfUuidIsEmptyString() {
+        PnfCheckInputs testedObject = prepareExecutionForUuid("");
+        assertThatThrownBy(() -> testedObject.execute(delegateExecution)).isInstanceOf(BpmnError.class);
+    }
+
+    @Test
+    public void shouldThrowException_whenPnfUuidIsReservedUuid() {
+        PnfCheckInputs testedObject = prepareExecutionForUuid(RESERVED_UUID);
+        assertThatThrownBy(() -> testedObject.execute(delegateExecution)).isInstanceOf(BpmnError.class);
+    }
+
+    private PnfCheckInputs prepareExecutionForCorrelationId(String correlationId) {
         PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
-        DelegateExecution delegateExecution = mockDelegateExecutionWithCorrelationId();
-        // when
-        testedObject.execute(delegateExecution);
-        // then
-        verify(delegateExecution).setVariable(eq(TIMEOUT_FOR_NOTIFICATION), eq(DEFAULT_TIMEOUT));
+        delegateExecution.setVariable(CORRELATION_ID, correlationId);
+        delegateExecution.setVariable(PNF_UUID, VALID_UUID);
+        return testedObject;
+    }
+
+    private PnfCheckInputs prepareExecutionForTimeout(String defaultTimeout, String timeout) {
+        PnfCheckInputs testedObject = new PnfCheckInputs(defaultTimeout);
+        delegateExecution.setVariable(CORRELATION_ID, "testCorrelationId");
+        delegateExecution.setVariable(PNF_UUID, VALID_UUID);
+        delegateExecution.setVariable(TIMEOUT_FOR_NOTIFICATION, timeout);
+        return testedObject;
+    }
+
+    private PnfCheckInputs prepareExecutionForUuid(String uuid) {
+        PnfCheckInputs testedObject = new PnfCheckInputs(DEFAULT_TIMEOUT);
+        delegateExecution.setVariable(CORRELATION_ID, "testCorrelationId");
+        delegateExecution.setVariable(PNF_UUID, uuid);
+        return testedObject;
     }
 }
\ No newline at end of file
index e0b14ab..d807917 100644 (file)
@@ -1,10 +1,10 @@
 <?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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.16.2">
+<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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="2.0.3">
   <bpmn:collaboration id="Collaboration_1d0w8lf">
     <bpmn:participant id="Participant_1egg397" name="SO&#10;Create and Activate Pnf Resource" processRef="CreateAndActivatePnfResource" />
     <bpmn:participant id="Participant_0atuyq0" name="AAI" />
     <bpmn:participant id="Participant_19w87ws" name="Workflow Message Service&#10;(communication with DMAAP)&#10;" />
-    <bpmn:messageFlow id="MessageFlow_1h3xu88" sourceRef="CreateAndActivatePnf_CreateAaiEntry" targetRef="Participant_0atuyq0" />
+    <bpmn:messageFlow id="MessageFlow_1h3xu88" sourceRef="CreatePnfEntryInAai" targetRef="Participant_0atuyq0" />
     <bpmn:messageFlow id="MessageFlow_09ibv5a" sourceRef="CheckAiiForCorrelationId" targetRef="Participant_0atuyq0" />
     <bpmn:messageFlow id="MessageFlow_0vjul4t" sourceRef="Participant_0atuyq0" targetRef="CheckAiiForCorrelationId" />
     <bpmn:messageFlow id="MessageFlow_1vrcp2d" sourceRef="Participant_19w87ws" targetRef="WaitForDmaapPnfReadyNotification" />
   <bpmn:process id="CreateAndActivatePnfResource" name="CreateAndActivatePnfResource" isExecutable="true">
     <bpmn:sequenceFlow id="SequenceFlow_1kc34bc" sourceRef="WaitForDmaapTimeout" targetRef="CancelDmaapClientSubscription" />
     <bpmn:sequenceFlow id="SequenceFlow_1o8od8e" sourceRef="InformDmaapClient" targetRef="WaitForDmaapPnfReadyNotification" />
-    <bpmn:sequenceFlow id="SequenceFlow_0v5ffpe" name="No" sourceRef="DoesAaiContainInfoAboutPnf" targetRef="CreateAndActivatePnf_CreateAaiEntry">
+    <bpmn:sequenceFlow id="SequenceFlow_0v5ffpe" name="No" sourceRef="DoesAaiContainInfoAboutPnf" targetRef="CreatePnfEntryInAai">
       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{!aaiContainsInfoAboutPnf}</bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="SequenceFlow_0p09qgm" sourceRef="WaitForDmaapPnfReadyNotification" targetRef="AaiEntryUpdated" />
     <bpmn:sequenceFlow id="SequenceFlow_17s9025" sourceRef="AaiEntryExists" targetRef="InformDmaapClient" />
-    <bpmn:sequenceFlow id="SequenceFlow_1qr6cmf" sourceRef="CreateAndActivatePnf_CreateAaiEntry" targetRef="AaiEntryExists" />
+    <bpmn:sequenceFlow id="SequenceFlow_1qr6cmf" sourceRef="CreatePnfEntryInAai" targetRef="AaiEntryExists" />
     <bpmn:sequenceFlow id="SequenceFlow_1j4r3zt" sourceRef="CheckAiiForCorrelationId" targetRef="DoesAaiContainInfoAboutPnf" />
     <bpmn:sequenceFlow id="SequenceFlow_0j5ksz1" sourceRef="CreateAndActivatePnf_StartEvent" targetRef="CheckInputs" />
     <bpmn:sequenceFlow id="SequenceFlow_1miyzfe" sourceRef="CancelDmaapClientSubscription" targetRef="ThrowTimeoutException" />
       <bpmn:incoming>SequenceFlow_1kc34bc</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1miyzfe</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:serviceTask id="InformDmaapClient" name="Inform DmaapClient about business key and corresponding pnf-id" camunda:delegateExpression="${InformDmaapClient}">
+    <bpmn:serviceTask id="InformDmaapClient" name="Register in Dmaap" camunda:delegateExpression="${InformDmaapClient}">
       <bpmn:incoming>SequenceFlow_17s9025</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1o8od8e</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:intermediateThrowEvent id="AaiEntryExists" name="AAI entry exists">
-      <bpmn:incoming>SequenceFlow_1qr6cmf</bpmn:incoming>
-      <bpmn:incoming>SequenceFlow_1l1t6ak</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_17s9025</bpmn:outgoing>
-    </bpmn:intermediateThrowEvent>
-    <bpmn:serviceTask id="CreateAndActivatePnf_CreateAaiEntry" name="Create AAI entry with pnf-id = correlation_id" camunda:delegateExpression="${CreateAaiEntryWithPnfIdDelegate}">
+    <bpmn:serviceTask id="CreatePnfEntryInAai" name="Create Pnf entry in AAI" camunda:delegateExpression="${CreatePnfEntryInAaiDelegate}">
       <bpmn:incoming>SequenceFlow_0v5ffpe</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1qr6cmf</bpmn:outgoing>
     </bpmn:serviceTask>
         <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">#{timeoutForPnfEntryNotification}</bpmn:timeDuration>
       </bpmn:timerEventDefinition>
     </bpmn:boundaryEvent>
+    <bpmn:exclusiveGateway id="AaiEntryExists" name="AAI entry exists">
+      <bpmn:incoming>SequenceFlow_1l1t6ak</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_1qr6cmf</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_17s9025</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
     <bpmn:association id="Association_0d7oxnz" sourceRef="CreateAndActivatePnf_StartEvent" targetRef="TextAnnotation_1eyzes8" />
     <bpmn:textAnnotation id="TextAnnotation_1eyzes8">
       <bpmn:text>Inputs:
 Â - timeoutForPnfEntryNotification - String
  - correlationId - String
+ - uuid - String
 </bpmn:text>
     </bpmn:textAnnotation>
   </bpmn:process>
       <bpmndi:BPMNShape id="ServiceTask_0a5uk9o_di" bpmnElement="CheckAiiForCorrelationId">
         <dc:Bounds x="219" y="167" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ServiceTask_0iimk5v_di" bpmnElement="CreateAndActivatePnf_CreateAaiEntry">
+      <bpmndi:BPMNShape id="ServiceTask_0iimk5v_di" bpmnElement="CreatePnfEntryInAai">
         <dc:Bounds x="511" y="167" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1j4r3zt_di" bpmnElement="SequenceFlow_1j4r3zt">
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1l1t6ak_di" bpmnElement="SequenceFlow_1l1t6ak">
-        <di:waypoint x="415" y="207" />
+        <di:waypoint x="415" y="182" />
         <di:waypoint x="415" y="66" />
-        <di:waypoint x="707" y="66" />
-        <di:waypoint x="707" y="189" />
+        <di:waypoint x="711" y="66" />
+        <di:waypoint x="711" y="182" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="430" y="180" width="19" height="14" />
+          <dc:Bounds x="430" y="159" width="19" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0v5ffpe_di" bpmnElement="SequenceFlow_0v5ffpe">
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1qr6cmf_di" bpmnElement="SequenceFlow_1qr6cmf">
         <di:waypoint x="611" y="207" />
-        <di:waypoint x="689" y="207" />
+        <di:waypoint x="686" y="207" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="605" y="187" width="90" height="10" />
         </bpmndi:BPMNLabel>
           <dc:Bounds x="1305" y="382" width="70" height="27" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0fjcdy4_di" bpmnElement="AaiEntryExists">
-        <dc:Bounds x="689" y="189" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="672" y="235" width="77" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="TextAnnotation_1eyzes8_di" bpmnElement="TextAnnotation_1eyzes8">
-        <dc:Bounds x="-37" y="70" width="243" height="54" />
+        <dc:Bounds x="-37" y="70" width="243" height="82" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="Association_0d7oxnz_di" bpmnElement="Association_0d7oxnz">
         <di:waypoint x="-36" y="189" />
-        <di:waypoint x="-36" y="124" />
+        <di:waypoint x="-36" y="152" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_1vrcp2d_di" bpmnElement="MessageFlow_1vrcp2d">
         <di:waypoint x="1060" y="523" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_17s9025_di" bpmnElement="SequenceFlow_17s9025">
-        <di:waypoint x="725" y="207" />
+        <di:waypoint x="736" y="207" />
         <di:waypoint x="803" y="207" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="719" y="187" width="90" height="10" />
       <bpmndi:BPMNShape id="ServiceTask_0lx02qn_di" bpmnElement="CheckInputs">
         <dc:Bounds x="48" y="167" width="100" height="80" />
       </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0qwrtuy_di" bpmnElement="AaiEntryExists" isMarkerVisible="true">
+        <dc:Bounds x="686" y="182" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="672" y="242" width="77" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn:definitions>
index 02b564e..3940dec 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="2.0.3" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="CreateVcpeResCustService_simplified" name="CreateVcpeResCustService_simplified" isExecutable="true">
     <bpmn2:scriptTask id="sendSyncAckResponse_ScriptTask" name="Send Sync Ack Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.sendSyncResponse(execution)]]></bpmn2:script>
+CreateVcpeResCustService.sendSyncResponse(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="sendSyncAckResponse_ScriptTask" targetRef="IntermediateThrowEvent_2" />
     <bpmn2:startEvent id="createVCPE_startEvent" name="Start Flow">
@@ -16,10 +16,9 @@ CreateVcpeResCustService.sendSyncResponse(execution)]]></bpmn2:script>
     <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.preProcessRequest(execution)
-]]></bpmn2:script>
+CreateVcpeResCustService.preProcessRequest(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="sendSyncAckResponse_ScriptTask" />
     <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_3" name="vCPE-RESCUST">
@@ -29,9 +28,9 @@ CreateVcpeResCustService.preProcessRequest(execution)
     <bpmn2:scriptTask id="postProcessAndCompletionRequest_ScriptTask" name="Post Process &#38; Completion Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0afe2pg</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.postProcessResponse(execution)]]></bpmn2:script>
+CreateVcpeResCustService.postProcessResponse(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="postProcessAndCompletionRequest_ScriptTask" targetRef="callCompleteMsoProcess_CallActivity" />
     <bpmn2:callActivity id="callCompleteMsoProcess_CallActivity" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
@@ -52,8 +51,8 @@ CreateVcpeResCustService.postProcessResponse(execution)]]></bpmn2:script>
     <bpmn2:scriptTask id="ScriptTask_2" name="Set Success Indicator" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[// The following variable is checked by the unit test
-execution.setVariable("CreateVcpeResCustServiceSuccessIndicator", true)]]></bpmn2:script>
+      <bpmn2:script>// The following variable is checked by the unit test
+execution.setVariable("CreateVcpeResCustServiceSuccessIndicator", true)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_2" targetRef="CreateVCPE_EndEvent" />
     <bpmn2:endEvent id="CreateVCPE_EndEvent" name="End">
@@ -72,9 +71,9 @@ execution.setVariable("CreateVcpeResCustServiceSuccessIndicator", true)]]></bpmn
       <bpmn2:scriptTask id="ScriptTask_1" name="Log / Print Unexpected Error" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
+        <bpmn2:script>import org.onap.so.bpmn.common.scripts.*
 ExceptionUtil ex = new ExceptionUtil()
-ex.processJavaException(execution)]]></bpmn2:script>
+ex.processJavaException(execution)</bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_1" targetRef="EndEvent_1" />
     </bpmn2:subProcess>
@@ -124,16 +123,16 @@ ex.processJavaException(execution)]]></bpmn2:script>
       <bpmn2:scriptTask id="ScriptTask_0yk02h3" name="Prepare FalloutHandler" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_0jg47xm</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_0807ukc</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+        <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.prepareFalloutRequest(execution)]]></bpmn2:script>
+CreateVcpeResCustService.prepareFalloutRequest(execution)</bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_0zpbskl" name="Yes" sourceRef="ExclusiveGateway_1vwgs6p" targetRef="ExclusiveGateway_0ydrtdx">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("disableRollback") != true}]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("disableRollback") != true}</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_0dhf2js" name="No" sourceRef="ExclusiveGateway_1vwgs6p" targetRef="InclusiveGateway_0foywso" />
       <bpmn2:sequenceFlow id="SequenceFlow_1sx5llu" name="Yes" sourceRef="ExclusiveGateway_0ydrtdx" targetRef="InclusiveGateway_0foywso">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("PONR") == true}]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("PONR") == true}</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_02o4yqx" name="No" sourceRef="ExclusiveGateway_0ydrtdx" targetRef="ScriptTask_17doerz" />
       <bpmn2:sequenceFlow id="SequenceFlow_19mxskt" name="No" sourceRef="ExclusiveGateway_1kvn1pz" targetRef="ExclusiveGateway_05indeh" />
@@ -176,16 +175,16 @@ CreateVcpeResCustService.prepareFalloutRequest(execution)]]></bpmn2:script>
       <bpmn2:scriptTask id="ScriptTask_17doerz" name="Pre Process Rollback" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_02o4yqx</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_0ftzjjm</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+        <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService= new CreateVcpeResCustService()
-CreateVcpeResCustService.preProcessRollback(execution)]]></bpmn2:script>
+CreateVcpeResCustService.preProcessRollback(execution)</bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:scriptTask id="ScriptTask_0wyub4x" name="Post Process Rollback" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_0dvsqpp</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_1rabks0</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+        <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService= new CreateVcpeResCustService()
-CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
+CreateVcpeResCustService.postProcessRollback(execution)</bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_1rabks0" sourceRef="ScriptTask_0wyub4x" targetRef="InclusiveGateway_0foywso" />
       <bpmn2:exclusiveGateway id="ExclusiveGateway_06gq6em" name="is AR_BRG Ok?" default="SequenceFlow_0ya1cr3">
@@ -210,7 +209,7 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
         <bpmn2:outgoing>SequenceFlow_027lz43</bpmn2:outgoing>
       </bpmn2:inclusiveGateway>
       <bpmn2:sequenceFlow id="SequenceFlow_0orpdrl" name="Yes" sourceRef="ExclusiveGateway_06gq6em" targetRef="CallActivity_1bpuf2p">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCARBRG_rollbackData") != null }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("DCARBRG_rollbackData") != null }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_1t3cnnx" sourceRef="CallActivity_1bpuf2p" targetRef="ExclusiveGateway_1mjdcct" />
       <bpmn2:sequenceFlow id="SequenceFlow_0ya1cr3" name="No" sourceRef="ExclusiveGateway_06gq6em" targetRef="InclusiveGateway_131ozdf" />
@@ -231,7 +230,7 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
         <bpmn2:outgoing>SequenceFlow_0dr2fem</bpmn2:outgoing>
       </bpmn2:exclusiveGateway>
       <bpmn2:sequenceFlow id="SequenceFlow_1sim44y" name="Yes" sourceRef="ExclusiveGateway_1mjdcct" targetRef="InclusiveGateway_131ozdf">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCARBRG_rolledBack") == true }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{ execution.getVariable("DCARBRG_rolledBack") == true }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_0dr2fem" name="No" sourceRef="ExclusiveGateway_1mjdcct" targetRef="InclusiveGateway_1xenadu" />
       <bpmn2:exclusiveGateway id="ExclusiveGateway_05dg1m1" name="Rollback success?" default="SequenceFlow_1mbymcu">
@@ -240,7 +239,7 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
         <bpmn2:outgoing>SequenceFlow_1mbymcu</bpmn2:outgoing>
       </bpmn2:exclusiveGateway>
       <bpmn2:sequenceFlow id="SequenceFlow_1quvahv" name="Yes" sourceRef="ExclusiveGateway_05dg1m1" targetRef="InclusiveGateway_142br6v">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCVAM_rolledBack") ==true }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{ execution.getVariable("DCVAM_rolledBack") ==true }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_1mbymcu" name="No" sourceRef="ExclusiveGateway_05dg1m1" targetRef="InclusiveGateway_0m9f5ka" />
       <bpmn2:exclusiveGateway id="ExclusiveGateway_0y7gtd9" name="rollback failed?" default="SequenceFlow_12dakwh">
@@ -259,7 +258,7 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
       <bpmn2:sequenceFlow id="SequenceFlow_1lv5ld6" sourceRef="InclusiveGateway_0m9f5ka" targetRef="InclusiveGateway_1xenadu" />
       <bpmn2:sequenceFlow id="SequenceFlow_0dvsqpp" sourceRef="InclusiveGateway_1xenadu" targetRef="ScriptTask_0wyub4x" />
       <bpmn2:sequenceFlow id="SequenceFlow_09nn9a9" name="Yes" sourceRef="ExclusiveGateway_0y7gtd9" targetRef="InclusiveGateway_1xenadu">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("rolledBack") != null && execution.getVariable("rolledBack") == false}]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("rolledBack") != null &amp;&amp; execution.getVariable("rolledBack") == false}</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_027lz43" sourceRef="InclusiveGateway_131ozdf" targetRef="ExclusiveGateway_14tl857" />
       <bpmn2:sequenceFlow id="SequenceFlow_0t3mtod" sourceRef="InclusiveGateway_142br6v" targetRef="ExclusiveGateway_1kvn1pz" />
@@ -275,7 +274,7 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
         <bpmn2:outgoing>SequenceFlow_0ne9n0g</bpmn2:outgoing>
       </bpmn2:callActivity>
       <bpmn2:sequenceFlow id="SequenceFlow_1sl79hn" name="Yes" sourceRef="ExclusiveGateway_1kvn1pz" targetRef="CallActivity_071yaf8">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCARTXC_rollbackData") != null }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("DCARTXC_rollbackData") != null }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:exclusiveGateway id="ExclusiveGateway_0y158bb" name="Rollback success?" default="SequenceFlow_00by7l7">
         <bpmn2:incoming>SequenceFlow_0ne9n0g</bpmn2:incoming>
@@ -284,11 +283,11 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
       </bpmn2:exclusiveGateway>
       <bpmn2:sequenceFlow id="SequenceFlow_0ne9n0g" sourceRef="CallActivity_071yaf8" targetRef="ExclusiveGateway_0y158bb" />
       <bpmn2:sequenceFlow id="SequenceFlow_1a7e8l1" name="Yes" sourceRef="ExclusiveGateway_05indeh" targetRef="DoRollbackService_CallActivity">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCRESI_rollbackData") != null }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{ execution.getVariable("DCRESI_rollbackData") != null }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_00by7l7" name="No" sourceRef="ExclusiveGateway_0y158bb" targetRef="InclusiveGateway_0m9f5ka" />
       <bpmn2:sequenceFlow id="SequenceFlow_17cz98f" name="Yes" sourceRef="ExclusiveGateway_0y158bb" targetRef="ExclusiveGateway_05indeh">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCARTXC_rolledBack") == true }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{ execution.getVariable("DCARTXC_rolledBack") == true }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:callActivity id="CallActivity_1cl4iu4" name="DoRollback&#10;VNF and Modules&#10;" calledElement="DoCreateVnfAndModulesRollback">
         <bpmn2:extensionElements>
@@ -303,13 +302,13 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
       </bpmn2:callActivity>
       <bpmn2:sequenceFlow id="SequenceFlow_1mpsdaj" sourceRef="CallActivity_1cl4iu4" targetRef="ExclusiveGateway_05dg1m1" />
       <bpmn2:sequenceFlow id="SequenceFlow_007p8k3" name="Yes" sourceRef="ExclusiveGateway_14tl857" targetRef="CallActivity_1cl4iu4">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAM_rollbackData") != null }]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{execution.getVariable("DCVAM_rollbackData") != null }</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
     </bpmn2:subProcess>
     <bpmn2:scriptTask id="setPONR_ScriptTask" name="set PONR">
       <bpmn2:incoming>SequenceFlow_12ilko1</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0afe2pg</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[#{execution.setVariable("PONR", true)}]]></bpmn2:script>
+      <bpmn2:script>#{execution.setVariable("PONR", true)}</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_12ilko1" sourceRef="IntermediateCatchEvent_4" targetRef="setPONR_ScriptTask" />
     <bpmn2:sequenceFlow id="SequenceFlow_0afe2pg" sourceRef="setPONR_ScriptTask" targetRef="postProcessAndCompletionRequest_ScriptTask" />
@@ -332,9 +331,9 @@ CreateVcpeResCustService.postProcessRollback(execution)]]></bpmn2:script>
     <bpmn2:scriptTask id="ScriptTask_0cdtchu" name="Prepare&#10;Decompose&#10;Service&#10;" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1eu60rt</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_00h6hmd</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.prepareDecomposeService(execution)]]></bpmn2:script>
+CreateVcpeResCustService.prepareDecomposeService(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1eu60rt" sourceRef="IntermediateCatchEvent_3" targetRef="ScriptTask_0cdtchu" />
     <bpmn2:sequenceFlow id="SequenceFlow_00h6hmd" sourceRef="ScriptTask_0cdtchu" targetRef="DecomposeService" />
@@ -350,20 +349,21 @@ CreateVcpeResCustService.prepareDecomposeService(execution)]]></bpmn2:script>
     <bpmn2:scriptTask id="ScriptTask_0lpv2da" name="PostProcess&#10;Decompose&#10;Service&#10;" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_17g05fd</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11efpvh</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.processDecomposition(execution)]]></bpmn2:script>
+CreateVcpeResCustService.processDecomposition(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_11efpvh" sourceRef="ScriptTask_0lpv2da" targetRef="IntermediateThrowEvent_0prlju0" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0gj4vud" sourceRef="IntermediateCatchEvent_17pzn7m" targetRef="Task_14l19kv" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0gj4vud" sourceRef="IntermediateCatchEvent_17pzn7m" targetRef="GeneratePnfUuid" />
     <bpmn2:sequenceFlow id="SequenceFlow_0clhseq" sourceRef="Task_14l19kv" targetRef="IntermediateThrowEvent_0lt5ltv" />
     <bpmn2:callActivity id="Task_14l19kv" name="Create And Activate Pnf Resource" calledElement="CreateAndActivatePnfResource">
       <bpmn2:extensionElements>
         <camunda:in source="timeoutForPnfEntryNotification" target="timeoutForPnfEntryNotification" />
         <camunda:in source="correlationId" target="correlationId" />
         <camunda:in businessKey="#{execution.processBusinessKey}" />
+        <camunda:in source="pnfUuid" target="pnfUuid" />
       </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0gj4vud</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1yojilk</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0clhseq</bpmn2:outgoing>
     </bpmn2:callActivity>
     <bpmn2:callActivity id="CallActivity_1vc4jeh" name="Call Create &#10;ServiceInstance&#10;" calledElement="DoCreateServiceInstance">
@@ -393,16 +393,16 @@ CreateVcpeResCustService.processDecomposition(execution)]]></bpmn2:script>
     <bpmn2:scriptTask id="ScriptTask_1y241p8" name="Prepare&#10;Create&#10;Service&#10;" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1429lyc</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0bt420h</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.prepareCreateServiceInstance(execution)]]></bpmn2:script>
+CreateVcpeResCustService.prepareCreateServiceInstance(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:scriptTask id="ScriptTask_1y5lvl7" name="Post Process&#10;Create&#10;Service&#10;" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0ocy2qp</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11gw54u</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.onap.so.bpmn.vcpe.scripts.*
+      <bpmn2:script>import org.onap.so.bpmn.vcpe.scripts.*
 def CreateVcpeResCustService = new CreateVcpeResCustService()
-CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:script>
+CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)</bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0m5yuay" name="StartService">
       <bpmn2:outgoing>SequenceFlow_1429lyc</bpmn2:outgoing>
@@ -416,6 +416,11 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
     <bpmn2:sequenceFlow id="SequenceFlow_0ocy2qp" sourceRef="CallActivity_1vc4jeh" targetRef="ScriptTask_1y5lvl7" />
     <bpmn2:sequenceFlow id="SequenceFlow_1429lyc" sourceRef="IntermediateCatchEvent_0m5yuay" targetRef="ScriptTask_1y241p8" />
     <bpmn2:sequenceFlow id="SequenceFlow_11gw54u" sourceRef="ScriptTask_1y5lvl7" targetRef="IntermediateThrowEvent_13xv36r" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1yojilk" sourceRef="GeneratePnfUuid" targetRef="Task_14l19kv" />
+    <bpmn2:serviceTask id="GeneratePnfUuid" name="Generate Pnf UUID" camunda:delegateExpression="${GeneratePnfUuidDelegate}">
+      <bpmn2:incoming>SequenceFlow_0gj4vud</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1yojilk</bpmn2:outgoing>
+    </bpmn2:serviceTask>
   </bpmn2:process>
   <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
@@ -431,8 +436,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="256" y="789" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
-        <di:waypoint xsi:type="dc:Point" x="103" y="829" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="829" />
+        <di:waypoint x="103" y="829" />
+        <di:waypoint x="256" y="829" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="100" y="829" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -444,8 +449,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="490" y="1432" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_61" targetElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="356" y="829" />
-        <di:waypoint xsi:type="dc:Point" x="447" y="829" />
+        <di:waypoint x="356" y="829" />
+        <di:waypoint x="447" y="829" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="200" y="790" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -454,8 +459,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="447" y="789" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_42" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ScriptTask_80" targetElement="_BPMNShape_CallActivity_4">
-        <di:waypoint xsi:type="dc:Point" x="590" y="1472" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="1472" />
+        <di:waypoint x="590" y="1472" />
+        <di:waypoint x="763" y="1472" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="632" y="1457" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -467,8 +472,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_CallActivity_4" targetElement="_BPMNShape_ScriptTask_337">
-        <di:waypoint xsi:type="dc:Point" x="863" y="1472" />
-        <di:waypoint xsi:type="dc:Point" x="1071" y="1471" />
+        <di:waypoint x="863" y="1472" />
+        <di:waypoint x="1071" y="1471" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="922" y="1457" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -492,24 +497,24 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_70" targetElement="_BPMNShape_ScriptTask_269">
-        <di:waypoint xsi:type="dc:Point" x="1361" y="1825" />
-        <di:waypoint xsi:type="dc:Point" x="1400" y="1825" />
+        <di:waypoint x="1361" y="1825" />
+        <di:waypoint x="1400" y="1825" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1344" y="1825" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_269" targetElement="_BPMNShape_EndEvent_219">
-        <di:waypoint xsi:type="dc:Point" x="1500" y="1825" />
-        <di:waypoint xsi:type="dc:Point" x="1533" y="1825" />
-        <di:waypoint xsi:type="dc:Point" x="1533" y="1825" />
-        <di:waypoint xsi:type="dc:Point" x="1553" y="1825" />
+        <di:waypoint x="1500" y="1825" />
+        <di:waypoint x="1533" y="1825" />
+        <di:waypoint x="1533" y="1825" />
+        <di:waypoint x="1553" y="1825" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1503" y="1825" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="547" y="829" />
-        <di:waypoint xsi:type="dc:Point" x="699" y="829" />
+        <di:waypoint x="547" y="829" />
+        <di:waypoint x="699" y="829" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="578" y="814" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -518,8 +523,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="1071" y="1431" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_337" targetElement="_BPMNShape_EndEvent_177">
-        <di:waypoint xsi:type="dc:Point" x="1171" y="1470" />
-        <di:waypoint xsi:type="dc:Point" x="1262" y="1470" />
+        <di:waypoint x="1171" y="1470" />
+        <di:waypoint x="1262" y="1470" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1172" y="1455" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -582,41 +587,41 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="891" y="2945" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0zpbskl_di" bpmnElement="SequenceFlow_0zpbskl">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2971" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2938" />
+        <di:waypoint x="75" y="2971" />
+        <di:waypoint x="75" y="2938" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="81" y="2958" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0dhf2js_di" bpmnElement="SequenceFlow_0dhf2js">
-        <di:waypoint xsi:type="dc:Point" x="100" y="2996" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2996" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2938" />
+        <di:waypoint x="100" y="2996" />
+        <di:waypoint x="734" y="2996" />
+        <di:waypoint x="734" y="2938" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="140" y="3001" width="15" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1sx5llu_di" bpmnElement="SequenceFlow_1sx5llu">
-        <di:waypoint xsi:type="dc:Point" x="100" y="2913" />
-        <di:waypoint xsi:type="dc:Point" x="405" y="2913" />
-        <di:waypoint xsi:type="dc:Point" x="405" y="2913" />
-        <di:waypoint xsi:type="dc:Point" x="709" y="2913" />
+        <di:waypoint x="100" y="2913" />
+        <di:waypoint x="405" y="2913" />
+        <di:waypoint x="405" y="2913" />
+        <di:waypoint x="709" y="2913" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="419" y="2917" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_02o4yqx_di" bpmnElement="SequenceFlow_02o4yqx">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2888" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2866" />
+        <di:waypoint x="75" y="2888" />
+        <di:waypoint x="75" y="2866" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="86" y="2871" width="15" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_19mxskt_di" bpmnElement="SequenceFlow_19mxskt">
-        <di:waypoint xsi:type="dc:Point" x="202" y="1821" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="1725" />
-        <di:waypoint xsi:type="dc:Point" x="681" y="1725" />
-        <di:waypoint xsi:type="dc:Point" x="681" y="1941" />
+        <di:waypoint x="202" y="1821" />
+        <di:waypoint x="202" y="1725" />
+        <di:waypoint x="681" y="1725" />
+        <di:waypoint x="681" y="1941" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="392" y="1704" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -625,16 +630,16 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="204" y="1432" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_12ilko1_di" bpmnElement="SequenceFlow_12ilko1">
-        <di:waypoint xsi:type="dc:Point" x="96" y="1472" />
-        <di:waypoint xsi:type="dc:Point" x="204" y="1472" />
+        <di:waypoint x="96" y="1472" />
+        <di:waypoint x="204" y="1472" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="105" y="1447" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0afe2pg_di" bpmnElement="SequenceFlow_0afe2pg">
-        <di:waypoint xsi:type="dc:Point" x="304" y="1472" />
-        <di:waypoint xsi:type="dc:Point" x="447" y="1472" />
-        <di:waypoint xsi:type="dc:Point" x="490" y="1472" />
+        <di:waypoint x="304" y="1472" />
+        <di:waypoint x="447" y="1472" />
+        <di:waypoint x="490" y="1472" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="331" y="1457" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -649,30 +654,30 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1f1hd3l_di" bpmnElement="SequenceFlow_1f1hd3l">
-        <di:waypoint xsi:type="dc:Point" x="1026" y="2006" />
-        <di:waypoint xsi:type="dc:Point" x="1026" y="2103" />
+        <di:waypoint x="1026" y="2006" />
+        <di:waypoint x="1026" y="2103" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="996" y="2055" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0jg47xm_di" bpmnElement="SequenceFlow_0jg47xm">
-        <di:waypoint xsi:type="dc:Point" x="759" y="2913" />
-        <di:waypoint xsi:type="dc:Point" x="941" y="2913" />
-        <di:waypoint xsi:type="dc:Point" x="941" y="2945" />
+        <di:waypoint x="759" y="2913" />
+        <di:waypoint x="941" y="2913" />
+        <di:waypoint x="941" y="2945" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="805" y="2898" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0807ukc_di" bpmnElement="SequenceFlow_0807ukc">
-        <di:waypoint xsi:type="dc:Point" x="991" y="2985" />
-        <di:waypoint xsi:type="dc:Point" x="1023" y="2985" />
+        <di:waypoint x="991" y="2985" />
+        <di:waypoint x="1023" y="2985" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="962" y="2970" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_19yywk8_di" bpmnElement="SequenceFlow_19yywk8">
-        <di:waypoint xsi:type="dc:Point" x="1123" y="2985" />
-        <di:waypoint xsi:type="dc:Point" x="1160" y="2985" />
+        <di:waypoint x="1123" y="2985" />
+        <di:waypoint x="1160" y="2985" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1097" y="2970" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -690,9 +695,9 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0sezboq_di" bpmnElement="SequenceFlow_0sezboq">
-        <di:waypoint xsi:type="dc:Point" x="681" y="1991" />
-        <di:waypoint xsi:type="dc:Point" x="681" y="2128" />
-        <di:waypoint xsi:type="dc:Point" x="1001" y="2128" />
+        <di:waypoint x="681" y="1991" />
+        <di:waypoint x="681" y="2128" />
+        <di:waypoint x="1001" y="2128" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="689" y="2045" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -701,10 +706,10 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="25" y="2786" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0zq7i3q_di" bpmnElement="SequenceFlow_0zq7i3q">
-        <di:waypoint xsi:type="dc:Point" x="-27" y="2997" />
-        <di:waypoint xsi:type="dc:Point" x="20" y="2997" />
-        <di:waypoint xsi:type="dc:Point" x="20" y="2996" />
-        <di:waypoint xsi:type="dc:Point" x="50" y="2996" />
+        <di:waypoint x="-27" y="2997" />
+        <di:waypoint x="20" y="2997" />
+        <di:waypoint x="20" y="2996" />
+        <di:waypoint x="50" y="2996" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="-56" y="2998" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -719,8 +724,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="684" y="2786" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1rabks0_di" bpmnElement="SequenceFlow_1rabks0">
-        <di:waypoint xsi:type="dc:Point" x="734" y="2866" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2888" />
+        <di:waypoint x="734" y="2866" />
+        <di:waypoint x="734" y="2888" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="704" y="2877" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -732,15 +737,15 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="256" y="944" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1eu60rt_di" bpmnElement="SequenceFlow_1eu60rt">
-        <di:waypoint xsi:type="dc:Point" x="103" y="984" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="984" />
+        <di:waypoint x="103" y="984" />
+        <di:waypoint x="256" y="984" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="135" y="969" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_00h6hmd_di" bpmnElement="SequenceFlow_00h6hmd">
-        <di:waypoint xsi:type="dc:Point" x="356" y="984" />
-        <di:waypoint xsi:type="dc:Point" x="447" y="984" />
+        <di:waypoint x="356" y="984" />
+        <di:waypoint x="447" y="984" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="357" y="969" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -761,25 +766,25 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0orpdrl_di" bpmnElement="SequenceFlow_0orpdrl">
-        <di:waypoint xsi:type="dc:Point" x="100" y="2628" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2628" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2598" />
+        <di:waypoint x="100" y="2628" />
+        <di:waypoint x="202" y="2628" />
+        <di:waypoint x="202" y="2598" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="141" y="2613" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1t3cnnx_di" bpmnElement="SequenceFlow_1t3cnnx">
-        <di:waypoint xsi:type="dc:Point" x="202" y="2518" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2481" />
+        <di:waypoint x="202" y="2518" />
+        <di:waypoint x="202" y="2481" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="172" y="2500" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0ya1cr3_di" bpmnElement="SequenceFlow_0ya1cr3">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2603" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2542" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2542" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2481" />
+        <di:waypoint x="75" y="2603" />
+        <di:waypoint x="75" y="2542" />
+        <di:waypoint x="75" y="2542" />
+        <di:waypoint x="75" y="2481" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="88" y="2508" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -797,8 +802,8 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1kpdu1j_di" bpmnElement="SequenceFlow_1kpdu1j">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2282" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2153" />
+        <di:waypoint x="75" y="2282" />
+        <di:waypoint x="75" y="2153" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="83" y="2218" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -810,16 +815,16 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1sim44y_di" bpmnElement="SequenceFlow_1sim44y">
-        <di:waypoint xsi:type="dc:Point" x="177" y="2456" />
-        <di:waypoint xsi:type="dc:Point" x="100" y="2456" />
+        <di:waypoint x="177" y="2456" />
+        <di:waypoint x="100" y="2456" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="107" y="2431" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0dr2fem_di" bpmnElement="SequenceFlow_0dr2fem">
-        <di:waypoint xsi:type="dc:Point" x="226" y="2457" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2457" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2695" />
+        <di:waypoint x="226" y="2457" />
+        <di:waypoint x="734" y="2457" />
+        <di:waypoint x="734" y="2695" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="316" y="2436" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -831,22 +836,22 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1quvahv_di" bpmnElement="SequenceFlow_1quvahv">
-        <di:waypoint xsi:type="dc:Point" x="177" y="2128" />
-        <di:waypoint xsi:type="dc:Point" x="100" y="2128" />
+        <di:waypoint x="177" y="2128" />
+        <di:waypoint x="100" y="2128" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="129" y="2103" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1mbymcu_di" bpmnElement="SequenceFlow_1mbymcu">
-        <di:waypoint xsi:type="dc:Point" x="227" y="2128" />
-        <di:waypoint xsi:type="dc:Point" x="1001" y="2128" />
+        <di:waypoint x="227" y="2128" />
+        <di:waypoint x="1001" y="2128" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="290" y="2097" width="15" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_17g05fd_di" bpmnElement="SequenceFlow_17g05fd">
-        <di:waypoint xsi:type="dc:Point" x="547" y="984" />
-        <di:waypoint xsi:type="dc:Point" x="638" y="984" />
+        <di:waypoint x="547" y="984" />
+        <di:waypoint x="638" y="984" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="548" y="969" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -858,15 +863,15 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0ftzjjm_di" bpmnElement="SequenceFlow_0ftzjjm">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2786" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2745" />
+        <di:waypoint x="75" y="2786" />
+        <di:waypoint x="75" y="2745" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="45" y="2766" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_12dakwh_di" bpmnElement="SequenceFlow_12dakwh">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2695" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2653" />
+        <di:waypoint x="75" y="2695" />
+        <di:waypoint x="75" y="2653" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="83" y="2666" width="15" height="12" />
         </bpmndi:BPMNLabel>
@@ -878,40 +883,40 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1lv5ld6_di" bpmnElement="SequenceFlow_1lv5ld6">
-        <di:waypoint xsi:type="dc:Point" x="1026" y="2153" />
-        <di:waypoint xsi:type="dc:Point" x="1026" y="2720" />
-        <di:waypoint xsi:type="dc:Point" x="759" y="2720" />
+        <di:waypoint x="1026" y="2153" />
+        <di:waypoint x="1026" y="2720" />
+        <di:waypoint x="759" y="2720" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="996" y="2437" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0dvsqpp_di" bpmnElement="SequenceFlow_0dvsqpp">
-        <di:waypoint xsi:type="dc:Point" x="734" y="2745" />
-        <di:waypoint xsi:type="dc:Point" x="734" y="2786" />
+        <di:waypoint x="734" y="2745" />
+        <di:waypoint x="734" y="2786" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="704" y="2766" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_09nn9a9_di" bpmnElement="SequenceFlow_09nn9a9">
-        <di:waypoint xsi:type="dc:Point" x="100" y="2720" />
-        <di:waypoint xsi:type="dc:Point" x="423" y="2720" />
-        <di:waypoint xsi:type="dc:Point" x="423" y="2720" />
-        <di:waypoint xsi:type="dc:Point" x="709" y="2720" />
+        <di:waypoint x="100" y="2720" />
+        <di:waypoint x="423" y="2720" />
+        <di:waypoint x="423" y="2720" />
+        <di:waypoint x="709" y="2720" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="144" y="2693" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_027lz43_di" bpmnElement="SequenceFlow_027lz43">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2431" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="2332" />
+        <di:waypoint x="75" y="2431" />
+        <di:waypoint x="75" y="2332" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="45" y="2372" width="90" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0t3mtod_di" bpmnElement="SequenceFlow_0t3mtod">
-        <di:waypoint xsi:type="dc:Point" x="75" y="2103" />
-        <di:waypoint xsi:type="dc:Point" x="75" y="1846" />
-        <di:waypoint xsi:type="dc:Point" x="177" y="1846" />
+        <di:waypoint x="75" y="2103" />
+        <di:waypoint x="75" y="1846" />
+        <di:waypoint x="177" y="1846" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="45" y="1965" width="90" height="0" />
         </bpmndi:BPMNLabel>
@@ -923,19 +928,19 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="IntermediateThrowEvent_0lt5ltv_di" bpmnElement="IntermediateThrowEvent_0lt5ltv">
-        <dc:Bounds x="466" y="1259" width="36" height="36" />
+        <dc:Bounds x="725" y="1259" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="441" y="1306" width="85" height="24" />
+          <dc:Bounds x="700" y="1306" width="85" height="27" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_071yaf8_di" bpmnElement="CallActivity_071yaf8">
         <dc:Bounds x="321" y="1806" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1sl79hn_di" bpmnElement="SequenceFlow_1sl79hn">
-        <di:waypoint xsi:type="dc:Point" x="227" y="1846" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="1846" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="1846" />
-        <di:waypoint xsi:type="dc:Point" x="321" y="1846" />
+        <di:waypoint x="227" y="1846" />
+        <di:waypoint x="256" y="1846" />
+        <di:waypoint x="256" y="1846" />
+        <di:waypoint x="321" y="1846" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="271" y="1826" width="19" height="12" />
         </bpmndi:BPMNLabel>
@@ -947,30 +952,30 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0ne9n0g_di" bpmnElement="SequenceFlow_0ne9n0g">
-        <di:waypoint xsi:type="dc:Point" x="421" y="1846" />
-        <di:waypoint xsi:type="dc:Point" x="521" y="1846" />
+        <di:waypoint x="421" y="1846" />
+        <di:waypoint x="521" y="1846" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="426" y="1825" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1a7e8l1_di" bpmnElement="SequenceFlow_1a7e8l1">
-        <di:waypoint xsi:type="dc:Point" x="706" y="1966" />
-        <di:waypoint xsi:type="dc:Point" x="976" y="1966" />
+        <di:waypoint x="706" y="1966" />
+        <di:waypoint x="976" y="1966" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="832" y="1945" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_00by7l7_di" bpmnElement="SequenceFlow_00by7l7">
-        <di:waypoint xsi:type="dc:Point" x="546" y="1871" />
-        <di:waypoint xsi:type="dc:Point" x="546" y="2128" />
-        <di:waypoint xsi:type="dc:Point" x="1001" y="2128" />
+        <di:waypoint x="546" y="1871" />
+        <di:waypoint x="546" y="2128" />
+        <di:waypoint x="1001" y="2128" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="554" y="1994" width="15" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_17cz98f_di" bpmnElement="SequenceFlow_17cz98f">
-        <di:waypoint xsi:type="dc:Point" x="559" y="1858" />
-        <di:waypoint xsi:type="dc:Point" x="668" y="1954" />
+        <di:waypoint x="559" y="1858" />
+        <di:waypoint x="668" y="1954" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="615" y="1889" width="19" height="12" />
         </bpmndi:BPMNLabel>
@@ -979,16 +984,16 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="152" y="2193" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1mpsdaj_di" bpmnElement="SequenceFlow_1mpsdaj">
-        <di:waypoint xsi:type="dc:Point" x="202" y="2193" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2153" />
+        <di:waypoint x="202" y="2193" />
+        <di:waypoint x="202" y="2153" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="172" y="2167" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_007p8k3_di" bpmnElement="SequenceFlow_007p8k3">
-        <di:waypoint xsi:type="dc:Point" x="100" y="2307" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2307" />
-        <di:waypoint xsi:type="dc:Point" x="202" y="2273" />
+        <di:waypoint x="100" y="2307" />
+        <di:waypoint x="202" y="2307" />
+        <di:waypoint x="202" y="2273" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="142" y="2286" width="19" height="12" />
         </bpmndi:BPMNLabel>
@@ -997,28 +1002,28 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         <dc:Bounds x="638" y="944" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_11efpvh_di" bpmnElement="SequenceFlow_11efpvh">
-        <di:waypoint xsi:type="dc:Point" x="738" y="984" />
-        <di:waypoint xsi:type="dc:Point" x="902" y="984" />
+        <di:waypoint x="738" y="984" />
+        <di:waypoint x="902" y="984" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="775" y="963" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0gj4vud_di" bpmnElement="SequenceFlow_0gj4vud">
-        <di:waypoint xsi:type="dc:Point" x="103" y="1277" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="1277" />
+        <di:waypoint x="103" y="1277" />
+        <di:waypoint x="256" y="1277" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="134.5" y="1257" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0clhseq_di" bpmnElement="SequenceFlow_0clhseq">
-        <di:waypoint xsi:type="dc:Point" x="356" y="1277" />
-        <di:waypoint xsi:type="dc:Point" x="466" y="1277" />
+        <di:waypoint x="547" y="1277" />
+        <di:waypoint x="725" y="1277" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="366" y="1257" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_1totpg4_di" bpmnElement="Task_14l19kv">
-        <dc:Bounds x="256" y="1237" width="100" height="80" />
+        <dc:Bounds x="447" y="1237" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_1vc4jeh_di" bpmnElement="CallActivity_1vc4jeh">
         <dc:Bounds x="447" y="1072" width="100" height="80" />
@@ -1042,33 +1047,40 @@ CreateVcpeResCustService.postProcessServiceInstanceCreate(execution)]]></bpmn2:s
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0bt420h_di" bpmnElement="SequenceFlow_0bt420h">
-        <di:waypoint xsi:type="dc:Point" x="356" y="1112" />
-        <di:waypoint xsi:type="dc:Point" x="447" y="1112" />
+        <di:waypoint x="356" y="1112" />
+        <di:waypoint x="447" y="1112" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="356.5" y="1091" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0ocy2qp_di" bpmnElement="SequenceFlow_0ocy2qp">
-        <di:waypoint xsi:type="dc:Point" x="547" y="1112" />
-        <di:waypoint xsi:type="dc:Point" x="638" y="1112" />
+        <di:waypoint x="547" y="1112" />
+        <di:waypoint x="638" y="1112" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="547.5" y="1091" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1429lyc_di" bpmnElement="SequenceFlow_1429lyc">
-        <di:waypoint xsi:type="dc:Point" x="101" y="1112" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="1112" />
+        <di:waypoint x="101" y="1112" />
+        <di:waypoint x="256" y="1112" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="133.5" y="1091" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_11gw54u_di" bpmnElement="SequenceFlow_11gw54u">
-        <di:waypoint xsi:type="dc:Point" x="738" y="1112" />
-        <di:waypoint xsi:type="dc:Point" x="902" y="1112" />
+        <di:waypoint x="738" y="1112" />
+        <di:waypoint x="902" y="1112" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="775" y="1091" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1yojilk_di" bpmnElement="SequenceFlow_1yojilk">
+        <di:waypoint x="356" y="1277" />
+        <di:waypoint x="447" y="1277" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_1j71wic_di" bpmnElement="GeneratePnfUuid">
+        <dc:Bounds x="256" y="1237" width="100" height="80" />
+      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn2:definitions>