Registriert seit: 8. Mär 2018
197 Beiträge
Delphi 12 Athens
|
AW: Wie werden Überweisungen / Lastschriften mit der DDBAC realisiert
28. Apr 2021, 08:54
Guten Tag TurboMagic,
es ist eine Überweisung von DE zu DE
Delphi-Version 10.2
ich benutze um zu testen den Originalcode aus dem SDK:
Delphi-Quellcode:
procedure TFormMain.btnExecuteRemitClick(Sender: TObject);
var
aHKUEB: BACSegment;
aMsg: BACMessage;
sVerwendungszweck: array of string;
i, j: Integer;
begin
try
Screen.Cursor := crHourGlass;
btnExecuteRemit.Enabled := false;
{Erzeuge eine HKUEB transaction}
aHKUEB := CreateTransactionSegment('HKUEB');
SetAuftraggeberKontoverbindung(aHKUEB);
{Hier wird die Kontoverbindung des Empfängers eingestellt. Für das
Empfängerkonto können wir kein Unterkontomerkmal wissen, und geben deshalb
auch keines an.}
aHKUEB.Item['EmpfaengerKontoverbindung1', 'Kontonummer1'] := txtAccountNr.Text; // KontoNummer
aHKUEB.Item['EmpfaengerKontoverbindung1', 'Laenderkennzeichen1'] := 280;
aHKUEB.Item['EmpfaengerKontoverbindung1', 'Kreditinstitutcode1'] := txtRemitBankCode.Text; // BLZ
aHKUEB.Item['EmpfaengerNameEins1', 1] := txtPayee.Text;
aHKUEB.Item['Zahlungsbetrag1', 'Wert1'] := txtAmount.Text;
aHKUEB.Item['Zahlungsbetrag1', 'Waehrung1'] := 'EUR';
aHKUEB.Item['Textschluessel1', 1] := 51;
aHKUEB.Item['Textschluesselergaenzung1', 1] := '';
aHKUEB.Item['Verwendungszweck1', 'Zeile1'] := RichEditPurpose.Lines[0];
aHKUEB.Item['Verwendungszweck1', 'Zeile2'] := RichEditPurpose.Lines[1];
aMsg := BACMessage(aDialog.ExecuteSegment(aHKUEB));
ReportResult(aMsg, '', aHKUEB);
finally
Screen.Cursor := crDefault;
btnExecuteRemit.Enabled := true;
end;
end;
Delphi-Quellcode:
{ *****************************************************************************
Function: SetAuftraggeberKontoverbindung()
Comments: Setzt die Kontoverbindungsdaten des Auftraggebers in ein
Auftragssegment. Die korrekten Kontodaten werden dabei aus dem
HIUPD Segment des Kontos gelesen.
***************************************************************************** }
procedure TFormMain.SetAuftraggeberKontoverbindung(aSegment: BACSegment);
begin
{ Alle Kontodetails aus den UPD werden kopiert. Obwohl das GD
"Unterkontomerkmal" erst mit HBCI 2.2 eingeführt wurde, wird es hier
dennoch immer kopiert. Liegt dieses GD nicht vor, so wird einfach ein
leerer Wert kopiert, der später beim Segmentaufbau in der DDBAC
ignoriert wird.}
aSegment.Item['AuftraggeberKontoverbindung1', 'Kontonummer1'] := aAccount.AccountNumber;
aSegment.Item['AuftraggeberKontoverbindung1', 'Unterkontomerkmal1'] := aAccount.SubAccountNumber;
aSegment.Item['AuftraggeberKontoverbindung1', 'Laenderkennzeichen1'] := aAccount.CountryCode;
aSegment.Item['AuftraggeberKontoverbindung1', 'Kreditinstitutcode1'] := aAccount.BankCode;
aSegment.Item['AuftraggeberKontoverbindung1', 'IBAN1'] := aAccount.IBAN;
aSegment.Item['AuftraggeberKontoverbindung1', 'BIC1'] := aAccount.BIC;
end;
Die Fehlermeldung ist im Anhang.
|
|
Zitat
|