Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement it in java and other questions - prowide iso 20022? #35

Closed
anderson-indiano opened this issue Dec 29, 2021 · 23 comments
Closed
Labels
question Further information is requested

Comments

@anderson-indiano
Copy link

Is there any material (free document) available from PROWIDE ISO 20022 explaining how we can implement it in the JAVA/ MAVEN?

@pauljohe-dnb
Copy link

It's available in maven central already (as explained in the readme). Here is the code though to the most recent version:

<dependency>
  <groupId>com.prowidesoftware</groupId>
  <artifactId>pw-iso20022</artifactId>
  <version>SRU2021-9.2.4</version>
</dependency>

@anderson-indiano
Copy link
Author

Thanks. Please have any example application using this dependency(pw-iso20022) in maven? I only found applications with gradle.

@zubri
Copy link
Member

zubri commented Jan 5, 2022

Hi,

You have some use case examples at https://github.com/prowide/prowide-iso20022-examples/tree/main/src/main/java/com/prowidesoftware/swift/samples

The example project uses Gradle, but you can create a typical Maven project including the dependency as Paul mentioned. There are no particular Gradle/Maven requirements. This is a standard Java library.

Regards

@zubri zubri added the question Further information is requested label Jan 5, 2022
@anderson-indiano
Copy link
Author

Hi, Thanks.

@anderson-indiano
Copy link
Author

anderson-indiano commented Jan 7, 2022

Hi. Please, there are some examples where you get the ISO 20022 message through an MQ queue and turn this message into a standard .TXT file SWIFT FIN.

@zubri
Copy link
Member

zubri commented Jan 7, 2022

Hi,

Notice this open source library provides the model, parser and builder API For ISO 20022 messages.

MQ integration and translation between ISO 20022 and MT are out of scope.
You could contact www.prowidesoftware.com for that, to explore commercial product options.

Regards

@anderson-indiano
Copy link
Author

anderson-indiano commented Jan 7, 2022

Thanks!

@zubri zubri closed this as completed Jan 14, 2022
@anderson-indiano
Copy link
Author

anderson-indiano commented Feb 12, 2022

Hi,

I'm trying to add the values ​​of an mx message (default pacs.0800.001.08) to the fields of an mt103.
Could you please tell me what are the xml methods to get their values ​​and assign to the fields: Field32A, Field50F, Field52A, Field57A, Field59F, Field70,Field71A?

Example: mt103.addField(new Field20().setReference(pacs.getFIToFICstmrCdtTrf().getGrpHdr().getMsgId()));

@zubri
Copy link
Member

zubri commented Feb 14, 2022

Conversion of pacs.008 into MT103 is not straight-forward. There are many things to considered because both the MX and the MT have more than one option for the business content.

For the reference in field 20 as in your example is simple, but then for instance the value date that goes into 32A you could find it in the group header and also in the credit transfer within the pacs. So you have to check which one is present and set it accordingly.

Then things are more complex for the orderer, beneficiary, intermediaries, etc... You could have the name and address in the MX or the BIC code, or even a clearing system code. And you have to create the specific field in the MT depending on what content you have found in the MX.

It is not a 1 to 1 simple list we could provide here.

@anderson-indiano
Copy link
Author

Thank you Zubri!

@anderson-indiano
Copy link
Author

anderson-indiano commented Feb 15, 2022

Hi,

Please, can you help me?

How can I validate if it has the field(tag 23B, 32A) in the mx file?

Example:
MxPacs00800108 mxPacs00800108 = (MxPacs00800108) mx;
Field32A field32a = new Field32A();
if (field32a.asTag() ???)) {
System.out.println("test");
}

@zubri
Copy link
Member

zubri commented Feb 15, 2022

You appear to have some confusions regarding the MT and ISO 20022 (MX) standards. Field 32A is an MT field. It has an equivalent element in the pacs.008 XML structure. But there is no "field 32A in the MX".

Also, this "GitHub Issues" is intended for reporting specific bugs of the open source ISO 20022 library. Not general consultancy questions for the standards.

Notice you would need a much more deep understanding of the standards to code a translation from scratch. You might be interested on this commercial library: https://www.prowidesoftware.com/products/integrator/translations

@anderson-indiano
Copy link
Author

Thanks!

@anderson-indiano
Copy link
Author

anderson-indiano commented Mar 18, 2022

Hi,
Can you please answer me a question?
Does the Prowide library parse all fields coming from an xml message? For example, if I receive an xml message with 5,000 fields, can the Prowide library parse all the fields from the xml message?

@anderson-indiano anderson-indiano changed the title How we can implement it in the java / maven - prowide iso 20022? How we can implement it in the java / questions - prowide iso 20022? Mar 20, 2022
@anderson-indiano anderson-indiano changed the title How we can implement it in the java / questions - prowide iso 20022? Implement it in the java / questions - prowide iso 20022? Mar 20, 2022
@anderson-indiano anderson-indiano changed the title Implement it in the java / questions - prowide iso 20022? Implement it in java and other questions - prowide iso 20022? Mar 20, 2022
@zubri
Copy link
Member

zubri commented Mar 20, 2022

If the XML elements match the message schema yes. There is no size limitation in the model/parser.
If the elements do not match the model, they are simply discarded by the parser.

@anderson-indiano
Copy link
Author

anderson-indiano commented Mar 21, 2022

Hi,
Got it, there is no limitation of parse in xml with prowide.
And, if the message contains any fields other than the classes mapped in the library, the parser will not run.
Only those that are the same in the classes mapped in the library. Right?

@zubri
Copy link
Member

zubri commented Mar 21, 2022

Elements not contained in the mapped model are silently ignored. The parser will load the rest. The provided parse methods are just a facade on top of the Java jaxb unmarshaller.

@anderson-indiano
Copy link
Author

Thanks Zubri!

@anderson-indiano
Copy link
Author

Hi,

Can you please answer me a question? Do you have a prowide ISO 20022 library available, but can XSDs also be available?

@zubri
Copy link
Member

zubri commented Mar 29, 2022

You can get ISO 20022 schemas from the ISO 20022 org web site.
Or from swift.com if you are a member.
We are not allowed to distribute ISO schemas in an open source library.

@anderson-indiano
Copy link
Author

Thanks!

@anderson-indiano
Copy link
Author

Hello,

I'm having problems running an application in an approval environment,
I'm using a SRU021-9-core.13 library, and the error below is occurring:
please help.

Caused by: java.lang.NoClassDefFoundError: com.prowidesoftware.swift.model.field.Field
at java.lang.J9VMInternals.prepareClassImpl(Native Method)
at java.lang.J9VMInternals.prepare(J9VMInternals.java:302)
at java.lang.Class.getDeclaredMethods(Class.java:975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:510)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnot
ationBeanPostProcessor.java:247)
... 12 more
Caused by: java.lang.ClassNotFoundException: com.prowidesoftware.swift.model.field.Field
at java.net.URLClassLoader.findClass(URLClassLoader.java:610)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:853)
... 19 more

  • exit 1

@zubri
Copy link
Member

zubri commented Jun 21, 2022

This indicates you are missing the prowide code library dependency. Or if you are using Java 9+ modules, maybe you need to enable the core module explicitly: Automatic-Module-Name: com.prowidesoftware.core

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants