org.onap.so.serviceinstancebeans.Platform platform = requestDetails.getPlatform();
         org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = requestDetails.getLineOfBusiness();
+        String applicationId = "";
+        if (requestDetails.getRequestInfo().getApplicationId() != null) {
+            applicationId = requestDetails.getRequestInfo().getApplicationId();
+        }
 
         if (modelType.equals(ModelType.network)) {
             lookupKeyMap.put(ResourceKey.NETWORK_ID, resourceId);
         } else if (modelType.equals(ModelType.vnf)) {
             lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, resourceId);
             this.populateGenericVnf(requestId, modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
-                    serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId);
+                    serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId,
+                    applicationId);
         } else if (modelType.equals(ModelType.volumeGroup)) {
             lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, resourceId);
             this.populateVolumeGroup(requestId, modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
             org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness, Service service, String bbName,
             ServiceInstance serviceInstance, Map<ResourceKey, String> lookupKeyMap,
             RelatedInstanceList[] relatedInstanceList, String resourceId, String vnfType,
-            List<Map<String, String>> instanceParams, String productFamilyId) {
+            List<Map<String, String>> instanceParams, String productFamilyId, String applicationId) {
         GenericVnf vnf = null;
         ModelInfo instanceGroupModelInfo = null;
         String instanceGroupId = null;
         }
         if (vnf == null && bbName.equalsIgnoreCase(AssignFlows.VNF.toString())) {
             vnf = createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness, resourceId, generatedVnfType,
-                    instanceParams, productFamilyId);
+                    instanceParams, productFamilyId, applicationId);
             serviceInstance.getVnfs().add(vnf);
             mapVnfcCollectionInstanceGroup(vnf, modelInfo, service);
         }
     protected GenericVnf createGenericVnf(Map<ResourceKey, String> lookupKeyMap, String instanceName,
             org.onap.so.serviceinstancebeans.Platform platform,
             org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness, String vnfId, String vnfType,
-            List<Map<String, String>> instanceParams, String productFamilyId) {
+            List<Map<String, String>> instanceParams, String productFamilyId, String applicationId) {
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
         GenericVnf genericVnf = new GenericVnf();
         genericVnf.setVnfId(vnfId);
         genericVnf.setVnfType(vnfType);
         genericVnf.setProvStatus(PREPROV);
         genericVnf.setServiceId(productFamilyId);
+        genericVnf.setApplicationId(applicationId);
         if (platform != null) {
             genericVnf.setPlatform(this.mapperLayer.mapRequestPlatform(platform));
         }
                 this.bbInputSetupUtils.updateInfraActiveRequestVnfId(request, vnfId);
             }
             String productFamilyId = requestDetails.getRequestInfo().getProductFamilyId();
+            String applicationId = "";
             this.populateGenericVnf(executeBB.getRequestId(), vnfs.getModelInfo(), vnfs.getInstanceName(),
                     vnfs.getPlatform(), vnfs.getLineOfBusiness(), service, bbName, serviceInstance, lookupKeyMap, null,
-                    vnfId, vnfType, vnfs.getInstanceParams(), productFamilyId);
+                    vnfId, vnfType, vnfs.getInstanceParams(), productFamilyId, applicationId);
         } else if (bbName.contains(VF_MODULE) || bbName.contains(VOLUME_GROUP)) {
             Pair<Vnfs, VfModules> vnfsAndVfModules = getVfModulesAndItsVnfsByKey(key, resources);
             if (vnfsAndVfModules != null) {
 
         String vnfType = "vnfType";
         String resourceId = "networkId";
         String productFamilyId = "productFamilyId";
+        String applicationId = "applicationId";
         Service service = Mockito.mock(Service.class);
         ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
         RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
         doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
         doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
         doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
+        doReturn(applicationId).when(requestInfo).getApplicationId();
 
         doReturn(ModelType.network).when(modelInfo).getModelType();
         SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(REQUEST_ID, requestDetails, service, bbName,
 
         doReturn(ModelType.vnf).when(modelInfo).getModelType();
         resourceId = "vnfId";
+
         doNothing().when(SPY_bbInputSetup).populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform,
                 lineOfBusiness, service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId,
-                vnfType, null, productFamilyId);
+                vnfType, null, productFamilyId, applicationId);
+
         SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(REQUEST_ID, requestDetails, service, bbName,
                 serviceInstance, lookupKeyMap, resourceId, vnfType, null, null, false);
         verify(SPY_bbInputSetup, times(1)).populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform,
                 lineOfBusiness, service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId,
-                vnfType, null, productFamilyId);
+                vnfType, null, productFamilyId, applicationId);
         assertEquals("VnfId populated", true,
                 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
 
         vnf.setVnfName("vnfName");
         serviceInstance.getVnfs().add(vnf);
         String vnfType = "vnfType";
+        String applicationId = "applicationId";
         RequestDetails requestDetails =
                 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
 
 
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
 
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
 
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
 
         instanceName = "vnfName2";
         GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
-                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
+                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
-                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
+                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
         doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
 
 
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
         verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
         verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
         Platform expectedPlatform = new Platform();
         LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
         String resourceId = "123";
+        String applicationId = "applicationId";
         doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
         doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
         org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
 
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
 
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
 
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
 
         instanceName = "vnfName2";
         GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
-                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
+                resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
 
         org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
         vnfAAI.setModelCustomizationId("modelCustId2");
         doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
         SPY_bbInputSetup.populateGenericVnf(REQUEST_ID, modelInfo, instanceName, platform, lineOfBusiness, service,
                 bbName, serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType,
-                null, requestDetails.getRequestInfo().getProductFamilyId());
+                null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
         verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
         verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
         verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
         configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
         configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
         executeBB.setConfigurationResourceKeys(configResourceKeys);
-
         executeBB.setRequestDetails(requestDetails);
         doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
                 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
                 any(String.class), isA(org.onap.so.serviceinstancebeans.Platform.class),
                 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
                 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(),
-                any(String.class));
+                any(String.class), any(String.class));
 
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
         executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
         Service service = Mockito.mock(Service.class);
         String requestAction = "createInstance";
 
-
         executeBB.setRequestDetails(requestDetails);
         doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
                 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
                 any(String.class), isA(org.onap.so.serviceinstancebeans.Platform.class),
                 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
                 isA(ServiceInstance.class), any(), ArgumentMatchers.isNull(), any(String.class),
-                ArgumentMatchers.isNull(), any(), any(String.class));
+                ArgumentMatchers.isNull(), any(), any(String.class), any());
 
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
         executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
                 any(String.class), isA(org.onap.so.serviceinstancebeans.Platform.class),
                 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
                 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(),
-                any(String.class));
+                any(String.class), any(String.class));
 
         lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
         executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
         String platformName = "platformName";
         String lineOfBusinessName = "lineOfBusinessName";
         String productFamilyId = "productFamilyId";
+        String applicationId = "applicationId";
         Platform platform = new Platform();
         platform.setPlatformName(platformName);
         LineOfBusiness lineOfBusiness = new LineOfBusiness();
         expected.setLineOfBusiness(lineOfBusiness);
         expected.setProvStatus("PREPROV");
         expected.setServiceId(productFamilyId);
+        expected.setApplicationId(applicationId);
         Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
         List<Map<String, String>> instanceParams = new ArrayList<>();
         instanceParams.add(cloudParams);
         doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
 
         GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
-                requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId);
+                requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
 
         assertThat(actual, sameBeanAs(expected));
         assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
 
         expected.getCloudParams().clear();
         actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
-                vnfId, vnfType, null, productFamilyId);
+                vnfId, vnfType, null, productFamilyId, applicationId);
         assertThat(actual, sameBeanAs(expected));
     }