PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 07/17/2018 1:58 PM by  tommyg-006
Effective Date of Action From A User Action Node
 7 Replies
Sort:
You are not authorized to post a reply.
Author Messages
tommyg-006
HRIS Analyst/Project Lead
Private
Basic Member
(16 points)
Basic Member
Posts:10


Send Message:

--
07/09/2018 1:44 PM

    Hello,

     

    I am working on a flow in IPA for Leave of Absence Processing.  In the flow there is a User Action Node where the end user choose one of the following actions:

     

    Employee Returned from Leave

    Employee Failed to Return (Terminate)

    Extend Employee Leave

    I need a way to get the effective date of the action, but this may not be the same date as when the User Action was completed.  Lawson recommended having the end-user put in the date as a message on the action, which I have formatted in MM/DD/YYYY format.  I would like to through an assign node change the format to YYYYMMDD so it can be used in either LP51 or PA52.  However, the date is coming out as string and I have not had any luck either converting it to a date or reformatting to the needed format. 

    Any suggestions? 

    Todd Mitchell
    Senior IT Specialist
    Gordon Food Service
    Veteran Member
    (192 points)
    Veteran Member
    Posts:82


    Send Message:

    --
    07/09/2018 1:54 PM

    I have used javascript to create a new variable and define it using the substring command.  

     

    vEffectiveDate                 = substring(vArr[2],6,10) + substring(vArr[2],0,2) +  substring(vArr[2],3,5) ;

     

    Note:  I didn't take the time to format this for your needs, only presenting it as an example.

     

    Dave Curtis
    Manager, HRIS
    University of Maryland Medical System
    Veteran Member
    (392 points)
    Veteran Member
    Posts:136


    Send Message:

    --
    07/09/2018 2:12 PM

    Same as Todd, I would use javascript.  I have an IPA process that I do that same thing.  They add the date to a message and it pulls the message.

    Then, using a substring function it pulls the date into a few different formats

     

    The users are instructed to enter the date in format MM/DD/YYYY

     

    substring(qMsgDtl_Message,6,10) + substring(qMsgDtl_Message,0,2) + substring(qMsgDtl_Message,3,5) 

     

    You may already have this in place but I will give one warning - the users will mess up with the date.  They will enter M/D/YY and other format.  Since it is free text they will enter just about anything... So I have format checking in place and if the format is incorrect it sends the user an email and loops the process back into their inbox and in the email it tells them the format is incorrect and clarifies the format needed.  

    Users get mad and send emails saying "I keep entering the same thing and it keeps telling me it is wrong - it will not take the date I am entering" BUT it saves PA52 errors later in the process and the users get it eventually.

     

     

     

     

    tommyg-006
    HRIS Analyst/Project Lead
    Private
    Basic Member
    (16 points)
    Basic Member
    Posts:10


    Send Message:

    --
    07/09/2018 2:47 PM
    Thanks Todd and Dave for the suggestion! I was looking online for hours for a solution like that. I put that logic into my flow, but now I am getting an output like this:

    Activity started: Assign2980 (Run Id: 25)
    ReturnDateVar = <_messages>


    Evaluating JavaScript expression ReturnDateFinal = ReturnDateVar.substring(6,10); to value ages
    Variables in Process:
    ReturnDateVar = <_messages>



    Is the flow supposed to return messages with that format? If so I believe I would have to count the spaces until I get to the actual date, correct?
    tommyg-006
    HRIS Analyst/Project Lead
    Private
    Basic Member
    (16 points)
    Basic Member
    Posts:10


    Send Message:

    --
    07/09/2018 2:49 PM
    Dave,

    Do you use the "moment" javascript function to validate the format of the date?
    Dave Curtis
    Manager, HRIS
    University of Maryland Medical System
    Veteran Member
    (392 points)
    Veteran Member
    Posts:136


    Send Message:

    --
    07/09/2018 3:51 PM

    I have to use a Landmark transaction to pull the message.

    The transaction pulls the message using the following transaction string

     

    _dataArea="<!--appProdline-->" & _module="pfi" & _objectName="PfiMessage" & _actionName="Find" & _actionOperator="NONE" & _actionType="MultipleRecordQuery" & _runAsUser="" & _authenticatedUser="" & _pageSize="30" & _relationName="" & _setName="SymbolicKey" & _asOfDate="" & _effectiveDate="" & PfiWorkunit="<!--WorkUnit-->" & PfiMessage & Message & PfiWorkunit

     

    Following the transaction node I have an assign node that "collects" the message 

     NodeName_Message

    My Landmark transaction node name is qMsgDtl

    So the Variable Value I have to pull the date and format it is

    substring(qMsgDtl_Message,6,10) + substring(qMsgDtl_Message,0,2) + substring(qMsgDtl_Message,3,5)

     

     

     

    Dave Curtis
    Manager, HRIS
    University of Maryland Medical System
    Veteran Member
    (392 points)
    Veteran Member
    Posts:136


    Send Message:

    --
    07/09/2018 4:16 PM

    To validate the date, I use an expression using pattern test

    javascript below;

     

    var dte = qMsgDtl_Message;
    var pat =  /^[0-9]{2}\/?[0-9]{2}\/?[0-9]{4}$/;
    var at = pat.test(dte);

    if(at === true)
     {intRej = 0;
     }
    else  {intRej = 1;
    }

     

     

    This tests the output of the message variable and if it matches MM/DD/YYYY the output is 0 otherwise the output is 1.  I then use a Branch node and if the output is 1 it loops back around and sends an email and places the action back in the users inbox.

    tommyg-006
    HRIS Analyst/Project Lead
    Private
    Basic Member
    (16 points)
    Basic Member
    Posts:10


    Send Message:

    --
    07/17/2018 1:58 PM
    Thank you Dave and Todd for the assist! I have that piece of the flow up and running, and it is doing exactly what I wanted.
    You are not authorized to post a reply.