SAP Jobsuche bei DV-Treff
doobie1968
vor 2 Jahre
Hallo zusammen,

ich möchte gerne aus dem Archiv einen Anhang zu einer Faktura herunterladen.

Das versuche ich mit Funktionsbaustein SCMS_DOC_READ.

Leider scheitere ich und die entsprechenden Tabellen (content_txt, content_bin) werden nicht gefüllt.

Ich habe es auch mit anderen Bausteinen versucht (u.a. ARCHIV_GET_TABLE), leider immer ohne Erfolg.

Mein Coding ist wie folgt:

CONCATENATE gs_invoices-vbeln '%' INTO gv_vergleich.

SELECT SINGLE object_id arc_doc_id archiv_id reserve

FROM toa01

INTO ( lv_object_id, lw_connections-arc_doc_id, lw_connections-archiv_id, lv_document_type )

WHERE object_id LIKE gv_vergleich.

CALL FUNCTION 'SCMS_DOC_READ'

EXPORTING

mandt = sy-mandt

stor_cat = ' '

crep_id = lw_connections-archiv_id

doc_id = lw_connections-arc_doc_id

TABLES

access_info = lt_info

content_txt = lt_content_txt_1022

content_bin = lt_content_bin_1022

EXCEPTIONS

bad_storage_type = 1

bad_request = 2

unauthorized = 3

comp_not_found = 4

not_found = 5

forbidden = 6

conflict = 7

internal_server_error = 8

error_http = 9

error_signature = 10

error_config = 11

error_format = 12

error_parameter = 13

error = 14

OTHERS = 15.

Für einen Tipp wäre ich sehr dankbar!

Viele Grüße

Udo

doobie1968
vor 2 Jahre
Habe es alternativ auch mit Funktionsbaustein ARCHIVOBJECT_GET_TABLE versucht.

Hier wird zwar eine Ausgabedatei (Paramater binarchivobject) erzeugt, aber im Endeffekt kann man die versendete PDF-Datei nicht öffnen :-(

Auch hier das Beispielcoding (zusätzlich mit der Methode add_attachment zum Anhängen an eine Mail:

CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE'

EXPORTING

archiv_id = lw_connections-archiv_id

document_type = lv_document_type_fb

archiv_doc_id = lw_connections-arc_doc_id

all_components = ' '

signature = ' ' " vorher = 'X'

compid = ' '

IMPORTING

binlength = e_length

TABLES

archivobject = et_archivobject

binarchivobject = et_binarchivobject

EXCEPTIONS

error_archiv = 1

error_communicationtable = 2

error_kernel = 3

OTHERS = 4.

CASE sy-subrc.

WHEN 0.

lv_docid = ls_obj-instid.

IF et_binarchivobject[] IS NOT INITIAL.

REFRESH lt_content_bin.

CALL METHOD cl_rmps_general_functions=>convert_1024_to_255

EXPORTING

im_tab_1024 = et_binarchivobject[]

RECEIVING

re_tab_255 = lt_content_bin[].

ENDIF.

l_lines = lines( lt_content_bin ).

l_size = l_lines * 255.

gr_send_request = cl_bcs=>create_persistent( ).

* ADD attchment

CONCATENATE 'Invoice_' gs_invoices-vbeln INTO l_subject.

CALL METHOD gr_document->add_attachment

EXPORTING

i_attachment_type = 'pdf' " l_extension " 'EXT'

i_attachment_subject = l_subject

i_attachment_language = sy-langu

i_attachment_size = l_size

i_att_content_hex = lt_content_bin. " l_attach.

Falls irgendwer eine Idee hat, wäre ich sehr dankbar!

Viele Grüße

Udo