archivedInfra.setProductFamilyName(iar.getProductFamilyName());
                 archivedInfra.setTenantName(iar.getTenantName());
                 archivedInfra.setResourceStatusMessage(iar.getResourceStatusMessage());
+                archivedInfra.setWorkflowName(iar.getWorkflowName());
+                archivedInfra.setOperationName(iar.getOperationName());
 
                 newArchivedReqs.add(archivedInfra);
                 oldInfraReqs.add(iar);
 
--- /dev/null
+use requestdb;
+
+ALTER TABLE infra_active_requests ADD COLUMN IF NOT EXISTS WORKFLOW_NAME varchar(200);
+ALTER TABLE archived_infra_requests ADD COLUMN IF NOT EXISTS WORKFLOW_NAME varchar(200);
+
+ALTER TABLE infra_active_requests ADD COLUMN IF NOT EXISTS OPERATION_NAME varchar(200);
+ALTER TABLE archived_infra_requests ADD COLUMN IF NOT EXISTS OPERATION_NAME varchar(200);
\ No newline at end of file
 
     protected String finishTime;
     protected String requestScope;
     protected String requestType;
+    protected String workflowName;
+    protected String operationName;
     protected String originalRequestId;
     protected RequestDetails requestDetails;
     protected InstanceReferences instanceReferences;
         this.requestType = requestType;
     }
 
+    public String getWorkflowName() {
+        return workflowName;
+    }
+
+    public void setWorkflowName(String workflowName) {
+        this.workflowName = workflowName;
+    }
+
+    public String getOperationName() {
+        return operationName;
+    }
+
+    public void setOperationName(String operationName) {
+        this.operationName = operationName;
+    }
+
     public RequestStatus getRequestStatus() {
         return requestStatus;
     }
     public String toString() {
         return new ToStringBuilder(this).append("requestId", requestId).append("startTime", startTime)
                 .append("finishTime", finishTime).append("requestScope", requestScope)
-                .append("requestType", requestType).append("requestDetails", requestDetails)
-                .append("instanceReferences", instanceReferences).append("requestStatus", requestStatus)
-                .append("requestProcessingData", requestProcessingData).append("cloudRequestData", cloudRequestData)
-                .append("originalRequestId", originalRequestId).toString();
+                .append("requestType", requestType).append("workflowName", workflowName)
+                .append("requestDetails", requestDetails).append("instanceReferences", instanceReferences)
+                .append("requestStatus", requestStatus).append("requestProcessingData", requestProcessingData)
+                .append("cloudRequestData", cloudRequestData).append("originalRequestId", originalRequestId).toString();
     }
 }
 
             vnfId = sir.getVnfInstanceId();
         }
 
+        currentActiveReq = setWorkflowNameAndOperationName(currentActiveReq, workflowUuid);
         saveCurrentActiveRequest(currentActiveReq);
 
         RequestClientParameter requestClientParameter;
 
         RecipeLookupResult recipeLookupResult = getInstanceManagementWorkflowRecipe(currentActiveReq, workflowUuid);
 
+        currentActiveReq = setWorkflowNameAndOperationName(currentActiveReq, workflowUuid);
         saveCurrentActiveRequest(currentActiveReq);
 
         RequestClientParameter requestClientParameter;
         }
         return null;
     }
+
+    protected InfraActiveRequests setWorkflowNameAndOperationName(InfraActiveRequests currentActiveReq,
+            String workflowUuid) {
+        Workflow workflow = catalogDbClient.findWorkflowByArtifactUUID(workflowUuid);
+        if (workflow != null) {
+            currentActiveReq.setWorkflowName(workflow.getName());
+            currentActiveReq.setOperationName(workflow.getOperationName());
+        }
+        return currentActiveReq;
+    }
 }
 
             request.setOriginalRequestId(originalRequestId);
         }
 
+        if (!version.matches("v[1-7]")) {
+            String workflowName = iar.getWorkflowName();
+            if (workflowName == null) {
+                workflowName = iar.getRequestAction();
+            }
+            request.setWorkflowName(workflowName);
+
+            String operationName = iar.getOperationName();
+            if (operationName != null) {
+                request.setOperationName(operationName);
+            }
+        }
+
         InstanceReferences ir = new InstanceReferences();
         if (iar.getNetworkId() != null)
             ir.setNetworkInstanceId(iar.getNetworkId());
 
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.logger.HttpHeadersConstants;
 import org.onap.so.serviceinstancebeans.RequestReferences;
 import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
     private final ObjectMapper mapper = new ObjectMapper();
     private ObjectMapper errorMapper = new ObjectMapper();
 
+    @Autowired
+    InstanceManagement instanceManagement;
+
     @Value("${wiremock.server.port}")
     private String wiremockPort;
 
         ServiceInstancesResponse realResponse = mapper.readValue(response.getBody(), ServiceInstancesResponse.class);
         assertThat(realResponse, sameBeanAs(expectedResponse).ignoring("requestReferences.requestId"));
     }
+
+    @Test
+    public void workflowAndOperationNameTest() {
+        wireMockServer.stubFor(get(urlMatching(
+                ".*/workflow/search/findByArtifactUUID[?]artifactUUID=71526781-e55c-4cb7-adb3-97e09d9c76be"))
+                        .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                                .withBody(getWiremockResponseForCatalogdb("workflow_Response.json"))
+                                .withStatus(org.apache.http.HttpStatus.SC_OK)));
+        InfraActiveRequests activeReq = new InfraActiveRequests();
+        activeReq =
+                instanceManagement.setWorkflowNameAndOperationName(activeReq, "71526781-e55c-4cb7-adb3-97e09d9c76be");
+        assertEquals(activeReq.getWorkflowName(), "testingWorkflow");
+        assertEquals(activeReq.getOperationName(), "testOperation");
+    }
 }
 
     private static final String RETRY_STATUS_MESSAGE = "RetryStatusMessage";
     private static final String ROLLBACK_STATUS_MESSAGE = "RollbackStatusMessage";
     private static final String TASK_INFORMATION = " TASK INFORMATION: Last task executed: Call SDNC";
+    private static final String WORKFLOW_NAME = "testWorkflowName";
+    private static final String OPERATION_NAME = "testOperationName";
+    private static final String REQUEST_ACTION = "createInstance";
     private InfraActiveRequests iar;
     boolean includeCloudRequest = false;
     private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
         expected.setRequestScope(SERVICE);
         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
 
+        iar.setWorkflowName(WORKFLOW_NAME);
+        iar.setOperationName(OPERATION_NAME);
+
         Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
         assertThat(result, sameBeanAs(expected));
     }
 
+    @Test
+    public void mapInfraActiveRequestToRequestWithWorkflowNameAndOperationNameTest() throws ApiException {
+        doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
+        InstanceReferences instanceReferences = new InstanceReferences();
+        instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        RequestStatus requestStatus = new RequestStatus();
+        requestStatus.setRequestState(iar.getRequestStatus());
+        requestStatus.setStatusMessage(
+                String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
+                        FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
+                        "The vf module already exist"));
+
+        Request expected = new Request();
+        expected.setRequestId(REQUEST_ID);
+        expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+        expected.setInstanceReferences(instanceReferences);
+        expected.setRequestStatus(requestStatus);
+        expected.setRequestScope(SERVICE);
+        expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
+        expected.setWorkflowName(WORKFLOW_NAME);
+        expected.setOperationName(OPERATION_NAME);
+
+        iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+        iar.setWorkflowName(WORKFLOW_NAME);
+        iar.setOperationName(OPERATION_NAME);
+
+        Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
+                OrchestrationRequestFormat.DETAIL.toString(), "v8");
+        assertThat(result, sameBeanAs(expected));
+    }
+
+    @Test
+    public void mapInfraActiveRequestToRequestWithNoWorkflowNameAndNoOperationNameTest() throws ApiException {
+        doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
+        InstanceReferences instanceReferences = new InstanceReferences();
+        instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        RequestStatus requestStatus = new RequestStatus();
+        requestStatus.setRequestState(iar.getRequestStatus());
+        requestStatus.setStatusMessage(
+                String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
+                        FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
+                        "The vf module already exist"));
+
+        Request expected = new Request();
+        expected.setRequestId(REQUEST_ID);
+        expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+        expected.setInstanceReferences(instanceReferences);
+        expected.setRequestStatus(requestStatus);
+        expected.setRequestScope(SERVICE);
+        expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
+
+
+        expected.setWorkflowName(REQUEST_ACTION);
+        expected.setRequestType(REQUEST_ACTION);
+
+        iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
+        iar.setRequestAction(REQUEST_ACTION);
+        iar.setWorkflowName(null);
+        iar.setOperationName(null);
+
+        Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
+                OrchestrationRequestFormat.DETAIL.toString(), "v8");
+        assertThat(result, sameBeanAs(expected));
+    }
+
     @Test
     public void mapRequestStatusAndExtSysErrSrcToRequestFalseTest() throws ApiException {
         doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
 
 {
   "artifactUUID": "71526781-e55c-4cb7-adb3-97e09d9c76be",
   "artifactName": "testingWorkflow.bpmn",
-  "name": "testingWorkflow" 
+  "name": "testingWorkflow",
+  "operationName":  "testOperation"
 }
\ No newline at end of file
 
 {
   "artifactUUID": "81526781-e55c-4cb7-adb3-97e09d9c76bf",
   "artifactName": "testingPNFWorkflow.bpmn",
-  "name": "testingPNFWorkflow" 
+  "name": "testingPNFWorkflow",
+  "operationName": "testPnfOperation" 
 }
\ No newline at end of file
 
   `TENANT_NAME` varchar(200) DEFAULT NULL,
   `PRODUCT_FAMILY_NAME` varchar(200) DEFAULT NULL,
   `RESOURCE_STATUS_MESSAGE` longtext,
+  `WORKFLOW_NAME` varchar(200) DEFAULT NULL,
+  `OPERATION_NAME` varchar(200) DEFAULT NULL,
   PRIMARY KEY (`REQUEST_ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
 
     ROLLBACK_EXT_SYSTEM_ERROR_SOURCE VARCHAR SELECTIVITY 1,
     TENANT_NAME VARCHAR SELECTIVITY 1,
     PRODUCT_FAMILY_NAME VARCHAR SELECTIVITY 1,
-    RESOURCE_STATUS_MESSAGE VARCHAR SELECTIVITY 36
-    
+    RESOURCE_STATUS_MESSAGE VARCHAR SELECTIVITY 36,
+    WORKFLOW_NAME VARCHAR SELECTIVITY 1,
+    OPERATION_NAME VARCHAR SELECTIVITY 1    
 );          
 
 INSERT INTO PUBLIC.INFRA_ACTIVE_REQUESTS(REQUEST_ID, REQUEST_STATUS, STATUS_MESSAGE, PROGRESS, START_TIME, END_TIME, SOURCE, VNF_ID, VNF_NAME, VNF_TYPE, SERVICE_TYPE, TENANT_ID, VNF_PARAMS, VNF_OUTPUTS, REQUEST_BODY, RESPONSE_BODY, LAST_MODIFIED_BY, MODIFY_TIME, VOLUME_GROUP_ID, VOLUME_GROUP_NAME, VF_MODULE_ID, VF_MODULE_NAME, VF_MODULE_MODEL_NAME, CLOUD_REGION, CALLBACK_URL, CORRELATOR, NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, REQUEST_SCOPE, REQUEST_ACTION, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, REQUESTOR_ID, CONFIGURATION_ID, CONFIGURATION_NAME, OPERATIONAL_ENV_ID, OPERATIONAL_ENV_NAME, REQUEST_URL) VALUES
     REQUEST_URL VARCHAR SELECTIVITY 1,
     TENANT_NAME VARCHAR SELECTIVITY 1,
     PRODUCT_FAMILY_NAME VARCHAR SELECTIVITY 1,
-    RESOURCE_STATUS_MESSAGE VARCHAR SELECTIVITY 36
+    RESOURCE_STATUS_MESSAGE VARCHAR SELECTIVITY 36,
+    WORKFLOW_NAME VARCHAR SELECTIVITY 1,
+    OPERATION_NAME VARCHAR SELECTIVITY 1
 );
 
 CREATE TABLE IF NOT EXISTS cloud_api_requests(
 
                 .append("networkName", getNetworkName()).append("networkType", getNetworkType())
                 .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId())
                 .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId())
-                .append("operationalEnvName", getOperationalEnvName()).append("requestUrl", getRequestUrl()).toString();
+                .append("operationalEnvName", getOperationalEnvName()).append("requestUrl", getRequestUrl())
+                .append("tenantName", getTenantName()).append("productFamilyName", getProductFamilyName())
+                .append("workflowName", getWorkflowName()).append("operationName", getOperationName()).toString();
     }
 
 }
 
                 .append("originalRequestId", getOriginalRequestId())
                 .append("extSystemErrorSource", getExtSystemErrorSource())
                 .append("rollbackExtSystemErrorSource", getRollbackExtSystemErrorSource())
-                .append("tenantName", getTenantName()).append("productFamilyName", getProductFamilyName()).toString();
+                .append("tenantName", getTenantName()).append("productFamilyName", getProductFamilyName())
+                .append("workflowName", getWorkflowName()).append("operationName", getOperationName()).toString();
     }
 }
 
     private String tenantName;
     @Column(name = "PRODUCT_FAMILY_NAME", length = 80)
     private String productFamilyName;
+    @Column(name = "WORKFLOW_NAME", length = 200)
+    private String workflowName;
+    @Column(name = "OPERATION_NAME", length = 200)
+    private String operationName;
 
     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @JoinColumn(name = "SO_REQUEST_ID", referencedColumnName = "REQUEST_ID", updatable = false)
         this.productFamilyName = productFamilyName;
     }
 
+    public String getWorkflowName() {
+        return workflowName;
+    }
+
+    public void setWorkflowName(String workflowName) {
+        this.workflowName = workflowName;
+    }
+
+    public String getOperationName() {
+        return operationName;
+    }
+
+    public void setOperationName(String operationName) {
+        this.operationName = operationName;
+    }
+
     @PrePersist
     protected void onCreate() {
         if (requestScope == null)
                 .append("instanceGroupName", getInstanceGroupName()).append("requestUrl", getRequestUrl())
                 .append("originalRequestId", originalRequestId).append("extSystemErrorSource", extSystemErrorSource)
                 .append("rollbackExtSystemErrorSource", rollbackExtSystemErrorSource).append("tenantName", tenantName)
-                .append("productFamilyName", productFamilyName).toString();
+                .append("productFamilyName", productFamilyName).append("workflowName", workflowName)
+                .append("operationName", operationName).toString();
     }
 }