Quantcast
Channel:
Viewing all articles
Browse latest Browse all 7499

Re: SEPA Datei mit Hash-Wert verschlüsseln

$
0
0
Viel Erfolg!
Bei uns sieht das Coding in etwa wie folgt aus, falls du das vergleichen möchtest...


* Hinweis 1776812 - Zusätzliche Hülle der SEPA-Datei mit Hash-Wert
"t_file_output nach t_file_output_h kopieren. Diese enthält später die Zahlungsdatei
LOOP AT t_file_output INTO ls_file_output_h.
APPEND ls_file_output_h TO lt_file_output_h.
ENDLOOP.
"Umwandlung der Zahlungsdatei in einen String für den Aufruf an einen Funktionsbaustein zur Ermittlung des Hash-Werts
LOOP AT lt_file_output_h INTO ls_file_output_h.
IF ls_file_output_h-length > 0.
CONCATENATE ld_str
ls_file_output_h-line(ls_file_output_h-length)
INTO ld_str RESPECTING BLANKS.
ENDIF.
ENDLOOP.

"Herausschneiden der Hülle, so dass nur die Zahlungsdatei bleibt.
ld_str_file_only = ld_str.

"In ld_str ist die komplette Datei enthalten, also muss zunächst die Hülle entfernt werden.
"Suche nach dem Beginn der Zahlungsdatei
FIND FIRST OCCURRENCE OF '<Document '
IN ld_str
MATCH OFFSET l_count.
"Suche nach dem Ende der Zahlungsdatei
FIND FIRST OCCURRENCE OF '</Document>'
IN ld_str
MATCH OFFSET l_rest.
l_rest = l_rest + 11. "Position Ende der Zahlungsdatei
l_ganz = l_rest - l_count. "Länge der Zahlungsdatei
ld_str_file_only = ld_str+l_count(l_ganz). "komplette Zahlungsdatei

"Berechnung des Hashwertes der Zahlungsdatei
l_algorithm = 'SHA-256'.
l_document = ld_str_file_only.

cl_abap_message_digest=>calculate_hash_for_char(
EXPORTING
if_algorithm = l_algorithm
if_data = l_document
"if_length = 0
IMPORTING
ef_hashstring = l_hashstring
).

"Vorbelegten Hashstring in der Hülle durch berechneten Hashstring ersetzen.
FIELD-SYMBOLS <file_output> TYPE fpm_file.
READ TABLE t_file_output INDEX 2 ASSIGNING <file_output>.
IF sy-subrc = 0.
REPLACE '123456789012345678901234567890' &
'1234567890123456789012345678901234'
IN <file_output>-line
WITH l_hashstring.
ENDIF.

Viewing all articles
Browse latest Browse all 7499