|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.a_weinert.dta.DTAus
@MinDoc(copyright="Copyright 2008 A. Weinert",
author="Albrecht Weinert",
version="V.21",
lastModified="12.02.2010",
lastModifiedBy="A. Weinert",
usage="Als Java Anwendung starten; siehe Dokumentation (javaDoc) \n java java de.a_weinert.dta.DTAus [optionen] xml-Eingabe [DTAUS0.TXT]\n java java de.a_weinert.dta.DTAus -? f\u00fcr grunds\u00e4tzliche optioen ",
purpose="Erzeugt eine DTA Datei f\u00fcr Sammeleinz\u00fcge oder -lastschriften")
public class DTAus
DTAus-Datensätze für Sammelüberweisung oder -lastschrift.
Although being part of Frame4J, this class's documentation is
intentionally in German language. See
this hint, please.
This application creates the message accepted by all German and bigger
European banks for bulk transfers from appropriate XML input. Customers
having the necessary privileges may put those bulk order by online banking
or by sending a disk.
Diese Anwendung erzeugt eine DTAus-Zeichenfolge für Sammellastschriften
oder -überweisungen für das Austauschformat DTA oder DTAUS deutscher
Banken. Die erzeugte Datei wird per Diskette eingereicht oder per
online-banking hochgeladen.
Die DTAus-Zeichenfolge besteht aus ein oder sinnvollerweise mehreren
DTAus.Transactionen gleichen Typs. Sie müssen entweder Lastschriften
oder Überweisungen sein; und alle Transaktionen haben dasselbe
"Auftraggeberkonto".
Diese Klasse kann von anderen als Banking-Anwendungen genutzt werden oder
aber als eigenständige Anwendung. (Als Anwendung nutzt sie eine anonyme
innere Ableitung von App). Mit
java de.a_weinert.dta.DTAus [optionen] xml-Eingabe [DTAUS0.TXT]
transformiert man eine XML-Datei (s.u.) in das DTA-Format. Das Ergebnis
kann bei einigen Banken und im Allgemeinen nur mit entsprechender
zusätzlicher Vereinbarung als Diskette eingereicht bzw. mit einem
online-banking Web-Dienst hochgeladen werden.
Das XML-Format ist anhand des folgenden Beispiels (beziehungsweise
von verein.xml)
selbsterklärend:
Hinweise: Als Gesamtanzahl der Zwecke sind 2 bis 4 sinnvoll. Mögliche
Obergrenzen liegen bei 2, 4 oder 14. Vierzehn ist wohl die bank-gegebene
absolute Obergrenze, deren Überschreiten hier eine Exception
auslöst.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- siehe de.a_weinert.dta.DTAus
http://www.a-weinert.de/java/aweinertbib.html -->
<dta type="LK" termin="11.09.2008">
<!-- LK: Lastschrift; GK: Überweisung; Textinhalt: Beschreibung
nicht für DTA -->
Verein der Meerschweinfreunde, Beitrag 2008
<konto nr="1234567890" blz="900 900 90"
name="Freunde d. Meerschweine e.V.">
Das Lastschrifteinzugsbeitragskonto des Vereins
</konto>
<!-- gemeinsame(r) Zwecke(e) für alle Transaktionen -->
<zweck>Mitgliedsbeitrag 2008</zweck>
<transaction betrag="33,90">
Einzug vom ersten Mitglied
<konto nr="2345678901" blz="990 890 07"
name="Schnuppi Meerschwein">
Konto des Mitglieds Nr. 1
</konto>
<zweck>abzüglich Aufwand für Heu 20,31</zweck>
</transaction>
<transaction betrag="54,21">
Einzug vom zweiten Mitglied
<konto nr="3456789012" blz="990 890 07"
name="Muri Meerschwein">
Konto des Mitglieds Nr. 2
</konto>
<zweck> gemäß Einzusgermächtig. 4.5. </zweck>
</transaction>
</dta>
Die maximale Zahl der Transaktionen scheint prinzipiell in den Tausenden
zu liegen, ist für DTAus als Anwendung aber auf 200 begrenzt.
Die Anwendung wurde für die Lastschrift von Vereinsbeiträgen (wenn auch
nicht von Meerschweinen) mehrfach erfolgreich genutzt.
©
Copyright 2008 Albrecht Weinert
Konto,
de.a_weinert.dta,
TextHelper| Nested Class Summary | |
|---|---|
class |
DTAus.Transaction
Eine Transaktion (innere Klasse). |
| Field Summary | |
|---|---|
static String |
DTA_OUT
Der Standard-Dateiname für DTA-Austausch-Dateien. |
static String |
DTAtranslate
Lookup-Tabelle für den (perversen) DTA-Zeichensatz. |
static String |
TYPE_CREDIT
Typ des Sammelauftrags: Sammelüberweisung. |
static String |
TYPE_DEBIT
Typ des Sammelauftrags: Lastschrift. |
| Constructor Summary | |
|---|---|
DTAus(Konto myAccount,
String type)
Erzeugen eines neuen Sammelauftrags. |
|
DTAus(Konto myAccount,
String type,
ConstTime execdate)
Erzeugen eines neuen Sammelauftrags. |
|
| Method Summary | |
|---|---|
void |
addEntry(DTAus.Transaction entry)
Hinzufügen eines einzelnen Auftrags zu diesem Sammelauftrag. Das DTAus.Transaction-Objekt, welches hier als Argument benötigt
wird, muss mit 'dtaus.new Transaction()' erzeugt werden
('dtaus' ist dabei das aktuelle
DTAUS-Objekt). |
void |
addUsage(CharSequence usage)
Hinzufügen einer gemeinsamen Verwendungszweckzeile zum Sammelauftrag. |
static String |
check(CharSequence val)
Prüfen und Aufbereiten einer Zeichenkette für DTA. |
static String |
expand(String st,
int len,
char filler,
boolean alignLeft)
Begrenzen und Auffüllen einer Zeichenkette auf Länge. |
static void |
main(String[] argv)
Start der Anwendung (App-Erbe). |
static DTAus |
makeDTAusXML(String xmlInp,
PrintWriter log,
boolean verbose)
DTAus-Objekt aus XML-Beschreibung erzeugen. |
String |
toDTAstring()
Der Sammelauftrag im DTA-Format. |
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final String TYPE_CREDIT
public static final String TYPE_DEBIT
public static final String DTAtranslate
DTAtranslate vermittelt (im ISO8859-1-Bereich von 0..255) diese
Textverhunzung als Lookup-Tabelle.DTAtranslate.charAt(charQuell);
check(CharSequence),
Constant Field Valuespublic static final String DTA_OUT
| Constructor Detail |
|---|
public DTAus(Konto myAccount,
String type)
DTAus(myAccount, type, null), also
sofortige Ausführung.
public DTAus(Konto myAccount,
String type,
ConstTime execdate)
throws IllegalArgumentException,
NullPointerException
myAccount ist dabei das "eigene" Konto, welches bei
Sammelüberweisungen als Belastungskonto und bei Sammellastschriften als
Gutschriftkonto verwendet wird.type ist die Art des Sammelauftrags:execdate gibt das Datum an, an dem dieser Sammelauftrag
ausgeführt werden soll. Gegebenenfalls muss es zwischen aktuellen Datum
und 15 Tage später liegen.
myAccount - Gegenkonto für die enthaltenen Aufträgetype - GK für Sammelüberweisungen und LK für Sammellastschriftenexecdate - Ausführungsdatum für diesen
Sammelauftrag; null für sofortige Ausführung.
IllegalArgumentException - bei falschem type
NullPointerException - ohne Konto| Method Detail |
|---|
public void addUsage(CharSequence usage)
TraTransaktion als erste
Verwendungszeilen übernommen.
DTAus.Transaction.addUsage(CharSequence)public void addEntry(DTAus.Transaction entry)
DTAus.Transaction-Objekt, welches hier als Argument benötigt
wird, muss mit 'dtaus.new Transaction()' erzeugt werden
('dtaus' ist dabei das aktuelle
DTAUS-Objekt).
entry - Hinzuzufügender Einzelauftragpublic String toString()
toString in class Objectpublic String toDTAstring()
public static String check(CharSequence val)
throws IllegalArgumentException
IllegalArgumentException - für Unicode > ü
(und damit auch für > 8 Bit)DTAtranslate
public static String expand(String st,
int len,
char filler,
boolean alignLeft)
throws IllegalArgumentException
st - Ausgangszeichenkettelen - Ziellängefiller - Füllzeichen, i.A. Leerzeichen (Text) oder 0 (Zahlen)alignLeft - true: linksbündig
IllegalArgumentException - wenn unter Länge 15 gekürzt werden müsste
public static DTAus makeDTAusXML(String xmlInp,
PrintWriter log,
boolean verbose)
throws SAXNotRecognizedException,
SAXNotSupportedException,
ParserConfigurationException,
SAXException,
IOException
DTAus-Objekt aus einer XML-Beschreibung dar. Klassenbeschreibung. de.a_weinert.dta.DTAus verwendet, wenn sie als Anwendung
(zum Zweck DTA-Datei aus XML) gestartet / verwendet wird. Diese Methode
kann natürlich auch in anderen Anwendungen eingesetzt werden.
xmlInp - Dateiname XML Beschreibunglog - Log-Dateiverbose - Log ausführlich
SAXException
ParserConfigurationException
SAXNotSupportedException
SAXNotRecognizedException
IOExceptionpublic static void main(String[] argv)
makeDTAusXML(String, PrintWriter, boolean),
App
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||