1
0
-1

Hi there, I have a problem that when one of my steps expire in the Job Controller, the task that gets assigned loses the form data map values. E.g. this is what I get

A Security Access Request form has been submitted from ${formDataMap.firstName} ${formDataMap.lastName} for review


Can anyone please help?

 

 

    CommentAdd your comment...

    5 answers

    1.  
      1
      0
      -1

      Was there any fix to this? I am having a similar issue.

      1. Diana Pattenden

        Hi Don, the only way to fix this is to upgrade to at least 4.2.6. We upgraded to 4.3.4 and this fixes the issue.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      Hi Diana,

      I have updated my example found here Step Expiry to have the step expire to a new task step. Previously it expired to the Reject endpoint. This is similar to what you are doing in your job.

      However I was not able to replicate your issue. I was testing on TM 4.3.3 and TM 4.3.4. I understand that you company is on an earlier version of TM 4.2.4. As such I would like to track this now through the support ticket that you lodged.

      Thanks for posting this question I think the changes make the Step Expiry a more realistic and effective example.

      Thanks

      Larry Bunton

        CommentAdd your comment...
      1.  
        1
        0
        -1

        Hi Diana,

        Thanks. Can you confirm that

        • the issue occurs in the "Manager Once Removed Review" step.
        • the Task associated with the step that timed out was not submitted or saved.

        On first inspection the job definition json appears to be configured correctly.

        I think you may have found a bug.

        Can I get you to log a support ticket for this? Just give a brief description and I will update it.

        I will need to do some more analysis on this. I will create and running a example with a simpler job based upon the one that you provided. I will also create a simple "minimal" form to test it. Hopefully I can get you a workaround to the issues.

        I might not be able to complete the analysis this afternoon. I will give you an update in the morning.

        Cheers

        Larry Bunton 

        CommentAdd your comment...
      2.  
        1
        0
        -1

        Hi Larry,

         

        {
        "jobDetails": {
        "name": "Security Access Request Workflow",
        "version": "4.1.0"
        },
        "properties": [
        { "name": "Task Form Code", "value": "$func.startFormCode()" }
        ],
        "steps": [
        {
        "name": "Start",
        "type": "start",
        "actions": [
        {
        "name": "Handle Submission",
        "type": "Job Form Start",
        "properties": [
        { "name": "Process Message Text", "value": "Your ${submission.formName} application is being processed." },
        { "name": "Conditional Route Name", "value": "$func.invoke('Security Access Conditional Route Lookup', ${formDataMap.routeName}, ${formDataMap.requestType}, ${formDataMap.accessGroup}, ${formDataMap.formalLeaderFlg})" }
        ]
        }
        ],
        "routes": [
        { "name": "Default", "nextStep": "Formal Leader Review" }
        ]
        },
        {
        "name": "Formal Leader Review",
        "type": "",
        "expiryRule": "+1h",
        "actions": [
        {
        "name": "Create Task",
        "type": "Job Task Assign",
        "properties": [
        { "name": "Task Type", "value": "Review" },
        { "name": "Process Message Send Email", "value": "false" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "Your ${submission.formName} application is at the Formal Leader Review Step" },
        { "name": "Task Assign User", "value": "${formDataMap.managerUsername}" },
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Review Email HTML').getValue()}" },
        { "name": "Task Message", "value": "Please review the Security Access Request from ${formDataMap.firstName} ${formDataMap.lastName}." },
        { "name": "Task Review Previous Step", "value": "true" },
        { "name": "Task Send Email", "value": "true" },
        { "name": "Task Subject", "value": "Formal Leader Review - ${submission.formName} from ${formDataMap.firstName} ${formDataMap.lastName}" }
        ]
        },
        {
        "name": "Formal Leader Review and Submit",
        "type": "Job Task Wait",
        "properties": [
        { "name": "Conditional Route Name", "value": "$func.invoke('Security Access Conditional Route Lookup', ${formDataMap.routeName}, ${formDataMap.requestType}, ${formDataMap.accessGroup}, ${formDataMap.formalLeaderFlg})" }
        ]
        }
        ],
        "routes": [
        { "name": "Approve", "nextStep": "Application Delivery" },
        { "name": "Decline", "nextStep": "Applicant Update" },
        { "name": "Security Task", "nextStep": "Email Security", "display": "false" },
        { "name": "Expiry", "nextStep": "Manager Once Removed Review", "display": "false" },
        { "name": "Primary Custodian Task", "nextStep": "Primary Custodian Review", "display": "false" }
        ]
        },
        {
        "name": "Manager Once Removed Review",
        "type": "",
        "actions": [
        {
        "name": "Create Task",
        "type": "Job Task Assign",
        "properties": [
        { "name": "Task Type", "value": "Review" },
        { "name": "Process Message Send Email", "value": "false" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "Your ${submission.formName} application is at the Manager Review Step" },
        { "name": "Task Assign User", "value": "n019146" },
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Review Email HTML').getValue()}" },
        { "name": "Task Message", "value": "Please review the Security Access Request from ${formDataMap.firstName} ${formDataMap.lastName}." },
        { "name": "Task Review Previous Step", "value": "true" },
        { "name": "Task Send Email", "value": "true" },
        { "name": "Task Subject", "value": "Manager review - ${submission.formName} from ${formDataMap.firstName} ${formDataMap.lastName}" },
        { "name": "Task Form XML Data", "value": "$func.startSubmissionXml()" }
        ]
        },
        {
        "name": "Manager Once Removed Review and Submit",
        "type": "Job Task Wait",
        "properties": [
        { "name": "Conditional Route Name", "value": "$func.invoke('Security Access Conditional Route Lookup', ${formDataMap.routeName}, ${formDataMap.requestType}, ${formDataMap.accessGroup}, ${formDataMap.formalLeaderFlg})" }
        ]
        }
        ],
        "routes": [
        { "name": "Approve", "nextStep": "Application Delivery" },
        { "name": "Decline", "nextStep": "Applicant Update" },
        { "name": "Security Task", "nextStep": "Email Security", "display": "false" }
        ]
        },
        {
        "name": "Primary Custodian Review",
        "type": "",
        "expiryRule": "+1h",
        "actions": [
        {
        "name": "Create Task",
        "type": "Job Task Assign",
        "properties": [
        { "name": "Task Type", "value": "Review" },
        { "name": "Process Message Send Email", "value": "false" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "Your ${submission.formName} application is at the Custodian Review Step" },
        { "name": "Task Assign User", "value": "${formDataMap.primaryCustodian}" },
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Review Email HTML').getValue()}" },
        { "name": "Task Message", "value": "Please review the Security Access Request from ${formDataMap.firstName} ${formDataMap.lastName}." },
        { "name": "Task Review Previous Step", "value": "true" },
        { "name": "Task Send Email", "value": "true" },
        { "name": "Task Subject", "value": "Custodian review - ${submission.formName} from ${formDataMap.firstName} ${formDataMap.lastName}" }
        ]
        },
        {
        "name": "Primary Custodian Review and Submit",
        "type": "Job Task Wait"
        }
        ],
        "routes": [
        { "name": "Approve", "nextStep": "Application Delivery" },
        { "name": "Decline", "nextStep": "Applicant Update" },
        { "name": "Security Task", "nextStep": "Email Security", "display": "false" },
        { "name": "Expiry", "nextStep": "Security Review", "display": "false" }
        ]
        },
        {
        "name": "Security Review",
        "type": "",
        "actions": [
        {
        "name": "Create Task",
        "type": "Job Task Assign",
        "properties": [
        { "name": "Task Type", "value": "Review" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "Your ${submission.formName} application is at the Security Review Step" },
        { "name": "Task Assign User", "value": "hosecurity" },
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Review Email HTML').getValue()}" },
        { "name": "Task Message", "value": "Please review the Security Access Request from ${formDataMap.firstName} ${formDataMap.lastName}." },
        { "name": "Task Review Previous Step", "value": "true" },
        { "name": "Task Send Email", "value": "true" },
        { "name": "Task Subject", "value": "Security review - ${submission.formName} from ${formDataMap.firstName} ${formDataMap.lastName}" }
        ]
        },
        {
        "name": "Email Security",
        "type": "Job Action",
        "serviceName": "Send Email Notification",
        "properties": [
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Review Email HTML').getValue()}" },
        { "name": "Task Email Recipients", "value": "${job.getControllerService().getServiceParameter('Security Email').getValue()}" }
        ]
        },
        {
        "name": "Security Review and Submit",
        "type": "Job Task Wait"
        }
        ],
        "routes": [
        { "name": "Approve", "nextStep": "Application Delivery" },
        { "name": "Decline", "nextStep": "Applicant Update" }
        ]
        },
        {
        "name": "Email Security",
        "type": "",
        "actions": [
        {
        "name": "Email Security",
        "type": "Job Action",
        "serviceName": "Send Email Notification with PDF",
        "properties": [
        { "name": "Task Email Subject", "value": "${job.getControllerService().getServiceParameter('Security Email Subject').getValue()}" },
        { "name": "Task Email Message", "value": "${job.getControllerService().getServiceParameter('Security Email HTML').getValue()}" },
        { "name": "Task Email Recipients", "value": "${job.getControllerService().getServiceParameter('Security Email').getValue()}" },
        { "name": "Attach Receipt", "value": "true" }
        ]
        }
        ],
        "routes": [
        { "name": "Default", "nextStep": "Application Delivery" }
        ]
        },
        {
        "name": "Applicant Update",
        "type": "",
        "actions": [
        {
        "name": "Create Task",
        "type": "Job Task Assign",
        "properties": [
        { "name": "Process Message Submission", "value": "$func.startSubmission()" },
        { "name": "Process Message Text", "value": "Your ${submission.form.formName} application has been declined, it requires you to provide additional updates." },
        { "name": "Task Assign User", "value": "$func.startUser()" },
        { "name": "Task Message", "value": "Please revise your ${submission.formName} as it was declined" },
        { "name": "Task Review Previous Step", "value": "true" },
        { "name": "Task Subject", "value": "Please revise your ${submission.formName}." },
        { "name": "Task Type", "value": "Review" }
        ]
        },
        {
        "name": "Handle Submission",
        "type": "Job Task Wait"
        }
        ],
        "routes": [
        { "name": "Update", "nextStep": "##PREVIOUS_STEP" },
        { "name": "Terminate", "nextStep": "Terminated Applicant" }
        ]
        },
        {
        "name": "Application Delivery",
        "type": "",
        "actions": [
        {
        "name": "Application Delivery",
        "type": "Job Delivery"
        },
        {
        "name": "Application Delivery Wait",
        "type": "Job Delivery Wait"
        }
        ],
        "routes": [
        { "name": "Default", "nextStep": "Approved Complete" }
        ]
        },
        {
        "name": "Approved Complete",
        "type": "endpoint",
        "actions": [
        {
        "name": "Process Message",
        "type": "Job Process Message",
        "properties": [
        { "name": "Process Message Send Email", "value": "true" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "The ${submission.formName} has been approved." }
        ]
        }
        ]
        },
        {
        "name": "Terminated Applicant",
        "type": "endpoint",
        "actions": [
        {
        "name": "Process Message",
        "type": "Job Process Message",
        "properties": [
        { "name": "Process Message Send Email", "value": "true" },
        { "name": "Process Message Submission Step", "value": "Start" },
        { "name": "Process Message Text", "value": "The ${submission.formName} was terminated by you." }
        ]
        }
        ]
        }
        ]
        }

          CommentAdd your comment...
        1.  
          1
          0
          -1

          Hi Diana,

          I need a bit more context. Can you provide your Job Definition JSON or a simplified example that shows the same behavior.

          • I want to see how the step routes the next step when it expires
          • I also need to see the action properties of the step(s).

          Thanks

          Larry Bunton
          Collaboration Jobs Lead. 

            CommentAdd your comment...