There is no OSGi interface for a PaymentExport

Description

There is an interface to export payments in org.adempiere.base/src/org/compiere/util/PaymentExport.java It is not supported via OSGi and I would like to create a way to implement a kind of "IPaymentExportFactory" in an OSGi plugin.

I am working on an Online Banking Interface to support the new SEPA online transactions. While doing that I saw that the interface for PaymentProcessors does only allow one Payment at a time. With SEPA (and the older german DTAUS format) you can send many payment transactions in one turn. This saves bank charges, is faster and depending on your bank security mechanism you have to authorize every transaction with a PIN and TAN.

So there is a need for an interface to send many payments in one turn to your bank. After seeing through the code It seems the best way if I use the already used PaymentExport interface. It only lacks of OSGi plugin support. The PaymentProcessor interface is very far away from working with many transactions and it is an abstract base class that deals with HTTP connections. The HBCI online banking interface I need to implement does work with a whole new library and does not need anything of the PaymentProcessor stuff. I would like to use a simpler interface with just one method like PaymentExport already is.

What do you think?

Environment

None

Attachments

4

Activity

Show:

Carlos Ruiz August 3, 2018 at 9:09 AM

Committed a fix here
https://bitbucket.org/idempiere/idempiere/commits/c15bb3b
the previous commit made the Document No field read-only - disabling the feature to renumber checks when printing.

Michael Powacht October 31, 2017 at 12:18 AM

Hi Carlos,
I had to rebuild the fragment using Java Execution environment 1.8 instead of 1.7 and it seems to work as expected.

Michael Powacht October 27, 2017 at 9:15 AM

Thanks Carlos, I'll check that out if it's possible via host plug-in org.adempiere.base.

Michael Powacht October 27, 2017 at 9:14 AM

Hi Carlos, adding to above, I just realized I wouldn't have had to implement these methods as they were defined as Java8-"default" methods in interface PaymentExport.
So the problem must lie somewhere else.

Carlos Ruiz October 27, 2017 at 8:58 AM

Hi ,

as a fragment - the test I did I set the host plugin to org.adempiere.base - you say yours is in org.adempiere.ui.zk, that can be the cause about not being able to load it.
This option is intended for backward compatibility, so the old classes must keep working, you don't need to change them, or add new methods.

If you change your class to use/add the new way, then do I think is better you migrate to the plugin approach (not a fragment). You can see the attachment de.bozem.sepa_ModifiedNewApproach.tbz for an example about how to implement it.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Priority

Created November 18, 2013 at 3:19 AM
Updated August 3, 2018 at 9:09 AM
Resolved October 26, 2017 at 1:02 PM