Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Case creation from SWIFT message fails in Prod with some TAG20

SA-22312

Summary



The SmartInvestigate application receives a SWIFT message with non A-Z, a-z, 0-9 characters inside the TAG20 field, independently from the SWIFT message type.

The message case is created, but an validation error in the assignment which prevents the case progress further in the flow.

It appears that the Java code used for the SWIFTLastCorrRef does not take into account the whole set of the SWIFT X Character Set.


Error Messages



".pyWorkParty(Inquirer).LastCorrRef: Invalid value specified for LastCorrRef. Value doesn't adhere to the Validate: SWIFTLastCorrRef"


Steps to Reproduce



Issue is reproduced from the OOTB Pega Smart Investigate. Following is the procedure:

01. From the Manager Portal, Click on "New"
02. Select "MsgCase" as Business
03. Select "Generic Message" as Case Type
04. Copy the following SWIFT Message inside the Message Section:


{1:A01AAAAAABBAYYY2222222222}
{2:O8887770000413XXXXXX0A2XXX12345678910111212141N}
{3:{108:TI1234567890.8C)}}
{4:
:20:BG1234567890.8C)
:21:AA12345678910111
:79:RE: OUR MESSAGE TO YOU
NO. .
.
DETAILS::
DATE.......: 7-7-2016
AMOUNT.....: USD 29,00
VALUE......: 8-8-2016
OUR REF....: 00000000000
YOUR REF...: 1111111111
SUBFIELD 9.:
FIELD 86...:
.
.
THANK YOU
-}
{5:{CHK:2222BIC0000}}

05. The User clicks on "Create"
06. The Message Case is created and correctly parsed, as you can see under Work Information. 
07. The User clicks on the "Process the message" assignment.
08. On the new form the User chooses a Line of Business and a Case Type (this is independent, but for example: "Payments"/"Amend beneficiary")
09. The User clicks on "Submit".
10. The User fills the mandatory fields (in my previous example they are Transaction Date and Value Date).
11. The User clicks on "Create".
12. The Error ".pyWorkParty(Inquirer).LastCorrRef: Invalid value specified for LastCorrRef. Value doesn't adhere to the Validate: SWIFTLastCorrRef" is presented to the User.


Root Cause



A defect in Pegasystems’ code or rules

Resolution



Field :20 contains a closing bracket character which cause the validation to fail:

:20:BG1234567890.8C)

To overcome this issue, the SWIFTLastCorrRef validation rule can be modified to reference the SIValidSWIFTCharSet utility.
​ By doing so, all the characters within the cope of SWIFT character set will not cause validation error:

char prev = 0;
for (int pos = 0, len = theValue.length(); pos < len; ++pos) {
    
     if (theValue.charAt(pos)!= ' ')
     {
    if (
              ! Character.isLetterOrDigit(theValue.charAt(pos)) && (!com.pegarules.generated.pegasi_siutilities.SIValidSWIFTCharSet(String.valueOf(theValue.charAt(pos))) || theValue.charAt(pos) == '/') 
                            && !(theValue.charAt(pos) == '/' && pos != 0 && pos != len-1 && prev != '/')
            ) 
         {
        return false;
    }
     }
     prev = theValue.charAt(pos);
}
return true;

Published April 23, 2016 - Updated December 2, 2021

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice