diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
index 3e16730..294fd56 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
@@ -62,6 +62,7 @@
 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
 import org.onap.so.db.catalog.client.CatalogDbClient;
+import org.onap.so.logger.MsoLogger;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
 import org.onap.so.serviceinstancebeans.Networks;
@@ -72,6 +73,7 @@
 import org.onap.so.serviceinstancebeans.Vnfs;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -89,7 +91,6 @@
 	private static final String G_REQUEST_ID = "mso-request-id";
 	private static final String G_BPMN_REQUEST = "bpmnRequest";
 	private static final String G_ALACARTE = "aLaCarte";
-	private static final String CLOUD_OWNER = "cloudOwner";
 	private static final String G_APIVERSION = "apiVersion";
 	private static final String G_URI = "requestUri";
 	private static final String G_ISTOPLEVELFLOW = "isTopLevelFlow";
@@ -119,6 +120,9 @@
 	private CatalogDbClient catalogDbClient;
 	@Autowired
 	private AAIConfigurationResources aaiConfigurationResources;
+	@Autowired
+    private Environment environment;
+	private String defaultCloudOwner = "org.onap.so.cloud-owner";
 
 	public void setBbInputSetupUtils(BBInputSetupUtils bbInputSetupUtils) {
 		this.bbInputSetupUtils = bbInputSetupUtils;
@@ -134,7 +138,6 @@
 		final String bpmnRequest = (String) execution.getVariable(G_BPMN_REQUEST);
 		final boolean aLaCarte = (boolean) execution.getVariable(G_ALACARTE);
 		final String apiVersion = (String) execution.getVariable(G_APIVERSION);
-		final String cloudOwner = (String) execution.getVariable(CLOUD_OWNER);
 		final String uri = (String) execution.getVariable(G_URI);
 		final String vnfType = (String) execution.getVariable(VNF_TYPE);
 		List<OrchestrationFlow> orchFlows = (List<OrchestrationFlow>) execution.getVariable(G_ORCHESTRATION_FLOW);
@@ -151,6 +154,12 @@
 			execution.setVariable(G_ISTOPLEVELFLOW, true);
 			ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
 			RequestDetails requestDetails = sIRequest.getRequestDetails();
+			String cloudOwner = "";
+			try{
+				cloudOwner = requestDetails.getCloudConfiguration().getCloudOwner();
+			} catch (Exception ex) {
+				cloudOwner = environment.getProperty(defaultCloudOwner);
+			}
 			Resource resource = extractResourceIdAndTypeFromUri(uri);
 			WorkflowType resourceType = resource.getResourceType();
 			execution.setVariable("resourceName", resourceType.toString());
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
index 5f4eef3..c3f3bb2 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java
@@ -49,6 +49,7 @@
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.aai.domain.yang.L3Network;
 import org.onap.aai.domain.yang.ServiceInstance;
@@ -77,13 +78,16 @@
 import org.onap.so.serviceinstancebeans.RequestParameters;
 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
 import org.onap.so.serviceinstancebeans.SubscriberInfo;
+import org.springframework.core.env.Environment;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class WorkflowActionTest extends BaseTaskTest {
+	
+	@Mock
+	protected Environment environment;
 	@InjectMocks
 	protected WorkflowAction workflowAction;
-	
 	private DelegateExecution execution;
 	
 	@Rule
@@ -112,7 +116,7 @@
 		execution.setVariable("aLaCarte", true);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/networks/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("AssignNetwork1802BB","CreateNetworkBB","ActivateNetworkBB");
 		northBoundRequest.setOrchestrationFlowList(orchFlows);
@@ -134,7 +138,7 @@
 		execution.setVariable("aLaCarte", true);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/networks/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB","DeleteNetworkBB","UnassignNetwork1802BB");
 		northBoundRequest.setOrchestrationFlowList(orchFlows);
@@ -156,7 +160,7 @@
 		execution.setVariable("aLaCarte", true);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","ActivateServiceInstanceBB");
@@ -182,7 +186,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB");
@@ -219,6 +223,54 @@
 	}
 	
 	@Test
+	public void selectExecutionListServiceMacroAssignNoCloudTest() throws Exception{
+		String gAction = "assignInstance";
+		String resource = "Service";
+		execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
+		execution.setVariable("requestAction", gAction);
+		String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json")));
+		execution.setVariable("bpmnRequest", bpmnRequest);
+		execution.setVariable("aLaCarte", false);
+		execution.setVariable("apiVersion", "7");
+		execution.setVariable("requestUri", "v6/serviceInstances/123");
+		
+		
+		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
+		List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB");
+		northBoundRequest.setOrchestrationFlowList(orchFlows);
+		
+		VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
+		vfModuleCustomization.setModelCustomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
+		HeatEnvironment volumeHeatEnv = new HeatEnvironment();
+		vfModuleCustomization.setVolumeHeatEnv(volumeHeatEnv);
+		org.onap.so.db.catalog.beans.VfModule vfModule = new org.onap.so.db.catalog.beans.VfModule();
+		HeatTemplate volumeHeatTemplate = new HeatTemplate();
+		vfModule.setVolumeHeatTemplate(volumeHeatTemplate);
+		vfModuleCustomization.setVfModule(vfModule);
+		
+		VfModuleCustomization vfModuleCustomization2 = new VfModuleCustomization();
+		vfModuleCustomization2.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
+		HeatEnvironment heatEnvironment = new HeatEnvironment();
+		vfModuleCustomization2.setHeatEnvironment(heatEnvironment);
+		org.onap.so.db.catalog.beans.VfModule vfModule2 = new org.onap.so.db.catalog.beans.VfModule();
+		HeatTemplate moduleHeatTemplate = new HeatTemplate();
+		vfModule2.setModuleHeatTemplate(moduleHeatTemplate);
+		vfModuleCustomization2.setVfModule(vfModule2);
+		
+		VfModuleCustomization vfModuleCustomization3 = vfModuleCustomization2;
+		vfModuleCustomization3.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
+		
+		when(environment.getProperty("org.onap.so.cloud-owner")).thenReturn("att-aic");
+		when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction,resource,false,"att-aic")).thenReturn(northBoundRequest);
+		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f")).thenReturn(vfModuleCustomization);
+		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa8")).thenReturn(vfModuleCustomization2);
+		when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID("da4d4327-fb7d-4311-ac7a-be7ba60cf969")).thenReturn(vfModuleCustomization3);
+		workflowAction.selectExecutionList(execution);
+		List<ExecuteBuildingBlock> ebbs = (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
+		assertEqualsBulkFlowName(ebbs,"AssignServiceInstanceBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB","AssignVfModuleBB","AssignVfModuleBB");
+	}
+	
+	@Test
 	public void selectExecutionListServiceMacroActivateTest() throws Exception{
 		String gAction = "activateInstance";
 		String resource = "Service";
@@ -229,7 +281,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/si0");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkBB","ActivateNetworkBB","CreateVolumeGroupBB","ActivateVolumeGroupBB","CreateVfModuleBB","ActivateVfModuleBB"
@@ -283,7 +335,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("DeactivateServiceInstanceBB");
@@ -306,7 +358,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		northBoundRequest.setIsToplevelflow(true);
@@ -334,7 +386,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		northBoundRequest.setIsToplevelflow(true);
@@ -365,7 +417,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		northBoundRequest.setIsToplevelflow(true);
@@ -441,7 +493,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("AssignServiceInstanceBB","CreateNetworkCollectionBB","AssignNetworkBB","AssignVnfBB","AssignVolumeGroupBB","AssignVfModuleBB"
@@ -513,7 +565,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB","DeleteVfModuleBB","DeactivateVolumeGroupBB","DeleteVolumeGroupBB","DeactivateVnfBB","DeactivateNetworkBB"
@@ -559,7 +611,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("UnassignVfModuleBB","UnassignVolumeGroupBB","UnassignVnfBB","UnassignNetworkBB","UnassignServiceInstanceBB");
@@ -603,7 +655,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB","DeleteVfModuleBB","DeactivateVolumeGroupBB","DeleteVolumeGroupBB","DeactivateVnfBB","DeactivateNetworkBB"
@@ -645,7 +697,7 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
+		
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("CreateNetworkCollectionBB","AssignNetworkBB","CreateNetworkBB","ActivateNetworkBB","ActivateNetworkCollectionBB");
@@ -677,7 +729,6 @@
 		execution.setVariable("aLaCarte", false);
 		execution.setVariable("apiVersion", "7");
 		execution.setVariable("requestUri", "v6/serviceInstances/123/networkCollections/123");
-		execution.setVariable("cloudOwner", "my-custom-cloud-owner");
 		
 		NorthBoundRequest northBoundRequest = new NorthBoundRequest();
 		List<OrchestrationFlow> orchFlows = createFlowList("DeactivateNetworkBB","DeleteNetworkBB","UnassignNetworkBB","DeactivateNetworkCollectionBB","DeleteNetworkCollectionBB");
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/CreateNetworkCollection.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/CreateNetworkCollection.json
index 7b369ab..579075f 100644
--- a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/CreateNetworkCollection.json
+++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/CreateNetworkCollection.json
@@ -8,6 +8,7 @@
 			"modelVersion": "10"
 		},
 		"cloudConfiguration": {
+			"cloudOwner" : "my-custom-cloud-owner",
 			"lcpCloudRegionId": "mdt1",
 			"tenantId": "88a6ca3ee0394ade9403f075db23167e"
 		},
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json
index 771283c..2683802 100644
--- a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json
+++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroActivateDeleteUnassign.json
@@ -7,6 +7,9 @@
 			"modelName": "MOW AVPN vMX BV vPE 1 Service",
 			"modelVersion": "10.0"
 		},
+		"cloudConfiguration": {
+			"cloudOwner" : "my-custom-cloud-owner"
+		},
 		"owningEntity": {
 			"owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489",
 			"owningEntityName": "PACKET CORE"
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssign.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssign.json
index 51caddd..ddb118e 100644
--- a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssign.json
+++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssign.json
@@ -7,6 +7,9 @@
 			"modelName": "MOW AVPN vMX BV vPE 1 Service",
 			"modelVersion": "10.0"
 		},
+		"cloudConfiguration": {
+			"cloudOwner" : "my-custom-cloud-owner"
+		},
 		"owningEntity": {
 			"owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489",
 			"owningEntityName": "PACKET CORE"
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json
new file mode 100644
index 0000000..51caddd
--- /dev/null
+++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/Macro/ServiceMacroAssignNoCloud.json
@@ -0,0 +1,125 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "service",
+			"modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b",
+			"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
+			"modelName": "MOW AVPN vMX BV vPE 1 Service",
+			"modelVersion": "10.0"
+		},
+		"owningEntity": {
+			"owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489",
+			"owningEntityName": "PACKET CORE"
+		},
+		"project": {
+			"projectName": "{some project name}"
+		},
+		"subscriberInfo": {
+			"globalSubscriberId": "{some subscriber id}"
+		},
+		"requestInfo": {
+			"productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"source": "VID",
+			"suppressRollback": true,
+			"requestorId": "xxxxxx"
+		},
+		"requestParameters": {
+			"subscriptionServiceType": "VMX",
+			"aLaCarte": false,
+			"userParams": [
+				{
+					"service": {
+						"modelInfo": {
+							"modelType": "service",
+							"modelName": "MOW AVPN vMX BV vPE 1 Service",
+							"modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
+						},
+						"instanceParams": [],
+						"resources": {
+							"vnfs": [
+								{
+									"modelInfo": {
+										"modelType": "vnf",
+										"modelName": "2016-73_MOW-AVPN-vPE-BV-L",
+										"modelVersionId": "7f40c192-f63c-463e-ba94-286933b895f8",
+										"modelCustomizationName": "2016-73_MOW-AVPN-vPE-BV-L 0",
+										"modelCustomizationId": "ab153b6e-c364-44c0-bef6-1f2982117f04"
+									},
+									"cloudConfiguration": {
+										"lcpCloudRegionId": "mdt1",
+										"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+									},
+									"platform": {
+										"platformName": "test"
+									},
+									"lineOfBusiness": {
+										"lineOfBusinessName": "someValue"
+									},
+									"productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+									"instanceParams": [],
+									"vfModules": [
+										{
+											"modelInfo": {
+												"modelType": "vfModule",
+												"modelName": "201673MowAvpnVpeBvL..AVPN_base_vPE_BV..module-0",
+												"modelVersionId": "4c75f813-fa91-45a4-89d0-790ff5f1ae79",
+												"modelCustomizationId": "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"
+											},
+											"instanceParams": [
+												{
+													"vmx_int_net_len": "24"
+												}
+											]
+										},
+										{
+											"modelInfo": {
+												"modelType": "vfModule",
+												"modelName": "201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1",
+												"modelVersionId": "56e2b103-637c-4d1a-adc8-3a7f4a6c3240",
+												"modelCustomizationId": "72d9d1cd-f46d-447a-abdb-451d6fb05fa8"
+											},
+											"instanceParams": [
+												{
+													"availability_zone_0": "mtpocdv-kvm-az01",
+													"vre_a_volume_size_0": "100"
+												}
+											]
+										},
+										{
+											"modelInfo": {
+												"modelType": "vfModule",
+												"modelName": "201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1",
+												"modelVersionId": "56e2b103-637c-4d1a-adc8-3a7f4a6c3240",
+												"modelCustomizationId": "72d9d1cd-f46d-447a-abdb-451d6fb05fa8"
+											},
+											"instanceParams": [
+												{
+													"availability_zone_0": "mtpocdv-kvm-az01",
+													"vre_a_volume_size_0": "50"
+												}
+											]
+										},
+										{
+											"modelInfo": {
+												"modelType": "vfModule",
+												"modelName": "201673MowAvpnVpeBvL..AVPN_vPFE_BV..module-2",
+												"modelVersionId": "f555558f-d538-4876-8ffa-b102650fad64",
+												"modelCustomizationId": "da4d4327-fb7d-4311-ac7a-be7ba60cf969"
+											},
+											"instanceParams": [
+												{
+													"availability_zone_0": "mtpocdv-kvm-az01",
+													"vmx_vpfe_int_ip_0": "192.168.0.16"
+												}
+											]
+										}
+									]
+								}
+							]
+						}
+					}
+				}
+			]
+		}
+	}
+}
\ No newline at end of file
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/application-test.yaml b/bpmn/so-bpmn-tasks/src/test/resources/application-test.yaml
index 7ecb5aa..210854e 100644
--- a/bpmn/so-bpmn-tasks/src/test/resources/application-test.yaml
+++ b/bpmn/so-bpmn-tasks/src/test/resources/application-test.yaml
@@ -185,6 +185,10 @@
   host: http://localhost:${wiremock.server.port}
   uri: /api/oof/v1/placement
   headers.auth: Basic dGVzdDp0ZXN0cHdk
+org:
+  onap:
+    so:
+      cloud-owner: att-aic
 spring:
   datasource:
     jdbc-url: jdbc:mariadb://localhost:3307/camundabpmn
