class NfSoftwareUpgradeDispatcher implements JavaDelegate {

    @Override
    public void execute(DelegateExecution delegateExecution) throws Exception {
        logger.debug("Running execute block for activity id: {}, name: {}", delegateExecution.getCurrentActivityId(),
                delegateExecution.getCurrentActivityName());

        RequestDetails bpmnRequestDetails = requestVerification(delegateExecution);

        final String serviceInstanceName = bpmnRequestDetails.getRequestInfo().getInstanceName();
        final String pnfName = bpmnRequestDetails.getRequestParameters().getUserParamValue(PNF_NAME);
        final String serviceModelUuid = bpmnRequestDetails.getModelInfo().getModelUuid();
        final List<Map<String, Object>> userParams = bpmnRequestDetails.getRequestParameters().getUserParams();
        final Pnf pnf = getPnfByPnfName(delegateExecution, pnfName);
        final List<PnfResourceCustomization> pnfCustomizations =
                getPnfResourceCustomizations(delegateExecution, serviceModelUuid);
        final PnfResourceCustomization pnfResourceCustomization = pnfCustomizations.get(0);
        final String payload = bpmnRequestDetails.getRequestParameters().getPayload();

        populateExecution(delegateExecution, bpmnRequestDetails, pnfResourceCustomization, pnf, serviceInstanceName,
                pnfName, serviceModelUuid, userParams, payload);

        logger.trace("Completed preProcessRequest PnfSoftwareUpgradeServiceRequest Request ");
    }

}