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?
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.
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.
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
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.