BDS BUS2038 - JPG Bilder werden nicht komplett hochgeladen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

BDS BUS2038 - JPG Bilder werden nicht komplett hochgeladen

Beitrag von dirrty (ForumUser / 1 / 2 / 0 ) »
Hallo zusammen,

ich habe eine Anforderung eine Anlage in Form eine JPEG oder PNG zu einer Meldung(IW23) hinzuzufügen.
Die Bilder befinden sich auf einem Server. Um diese zu bekommen nutze ich den HTTP2_GET Baustein.

Code: Alles auswählen.

CALL FUNCTION 'HTTP2_GET'
  EXPORTING
    absolute_uri                = lv_url
    request_entity_body_length  = 1024
*    rfc_destination             =
    user                        = lv_user
    password                    = lv_password
*   blankstocrlf                = 'X'
    timeout                     = 20
    no_logon                    = ' '
*   wrap_lines                  = 'X'
  IMPORTING
    status_code                 = lv_status
    status_text                 = lv_status_text
    response_entity_body_length = lv_length
  TABLES
**     REQUEST_ENTITY_BODY  =
    response_entity_body        = lt_response_body
    response_headers            = lt_response_head
Anschließend mache ich folgende Umwandlungen

Code: Alles auswählen.

  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
    EXPORTING
      input_length = lv_length
*     FIRST_LINE   = 
*     LAST_LINE    = 
    IMPORTING
      buffer       = lv_xstring
    TABLES
      binary_tab   = lt_response_body
    EXCEPTIONS
      failed       = 1
      OTHERS       = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
*
*        l_img_size = xstrlen( lv_xstring ).
** --- convert back
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer        = lv_xstring
*     APPEND_TO_TABLE       = ' '
    IMPORTING
      output_length = lv_length
    TABLES
      binary_tab    = lt_data.
Die Umwandlung ist dafür das ich von CHAR zu einem RAW Format den Tabelleninhalt umwandeln kann.
Den Upload in das BDS mache ich so:

Code: Alles auswählen.

CALL FUNCTION 'BDS_BUSINESSDOCUMENT_CREA_TAB'
    EXPORTING
      logical_system  = ls_bapibds01-log_system
      classname       = ls_bapibds01-classname
      classtype       = ls_bapibds01-classtype
      client          = sy-mandt
      object_key      = ls_bapibds01-objkey
      binary_flag     = 'X'
* IMPORTING
*     OBJECT_KEY      =
    TABLES
      signature       = lt_signature
      components      = lt_components
      content         = lt_data
*     ASCII_CONTENT   =
    EXCEPTIONS
      nothing_found   = 1
      parameter_error = 2
      not_allowed     = 3
      error_kpro      = 4
      internal_error  = 5
      not_authorized  = 6
      OTHERS          = 7.
Das Bild wird in der Anlagenliste ergänzt jedoch wird ein Teil einfach abgeschnitten.

Hat jemand eine Idee woran das liegen kann?
Danke im Voraus :).

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: BDS BUS2038 - JPG Bilder werden nicht komplett hochgelad

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Ich würde mal auf einen Codepage-Conversion Fehler tippen.
Wenn du wirklich die Daten per CHAR empfängst ist hier schon der Fehler passiert: Gewisse Zeichen werden zwischen unterschiedlichen Systemen (Unix/Windows/MacOS) automatisch umgewandelt.
Schau mal ob du die Daten als RAW empfangen kannst oder beim Abschicken als RAW übergeben kannst.

Lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
dirrty

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: BDS BUS2038 - JPG Bilder werden nicht komplett hochgelad

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Um mögliche Fehlerquellen aufzuspüren, wäre mein erster Schritt ein Dowload des JPGs nach dem Aufruf des Bausteins HTTP2_GET
z.B mit CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD im BIN mode.
eg.

Code: Alles auswählen.

CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    bin_filesize              = lv_length
    filename                  = lv_file
    filetype                  = 'BIN'
*    append                    = SPACE
*    write_field_separator     = SPACE
*    header                    = '00'
*    trunc_trailing_blanks     = SPACE
     write_lf                  = ' '
*    col_select                = SPACE
*    col_select_mask           = SPACE
*    dat_mode                  = SPACE
*    confirm_overwrite         = SPACE
*    no_auth_check             = SPACE
*    codepage                  = SPACE
*    ignore_cerr               = ABAP_TRUE
*    replacement               = '#'
*    write_bom                 = SPACE
*    trunc_trailing_blanks_eol = 'X'
*    wk1_n_format              = SPACE
*    wk1_n_size                = SPACE
*    wk1_t_format              = SPACE
*    wk1_t_size                = SPACE
*  IMPORTING
*    filelength                =
  changing
    data_tab                  = lt_response_body[]
  EXCEPTIONS
    file_write_error          = 1
    no_batch                  = 2
    gui_refuse_filetransfer   = 3
    invalid_type              = 4
    no_authority              = 5
    unknown_error             = 6
    header_not_allowed        = 7
    separator_not_allowed     = 8
    filesize_not_allowed      = 9
    header_too_long           = 10
    dp_error_create           = 11
    dp_error_send             = 12
    dp_error_write            = 13
    unknown_dp_error          = 14
    access_denied             = 15
    dp_out_of_memory          = 16
    disk_full                 = 17
    dp_timeout                = 18
    file_not_found            = 19
    dataprovider_exception    = 20
    control_flush_error       = 21
    not_supported_by_gui      = 22
    error_no_gui              = 23
    others                    = 24.
dann kann man erstmal analysieren, was man empfängt.

lg jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
dirrty

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
878
Views
Durch Semikolons getrennte Textdatei wird hochgeladen
von ABAPLover » 01.09.2023 23:41 • Verfasst in ABAP® für Anfänger
4
Antw.
2878
Views
FileUpload für mehrere Bilder
von D4ntey » 20.07.2015 12:24 • Verfasst in Web-Dynpro, BSP + BHTML
11
Antw.
6153
Views
ABAP Liste mit Bilder?
von MisterB » 28.06.2013 15:29 • Verfasst in ABAP® für Anfänger
7
Antw.
9137
Views
Mit MM03 Bilder einfügen
von MisterB » 11.02.2013 14:52 • Verfasst in Material Management & Produktionsplanung
7
Antw.
19959
Views
Bilder importieren in SAPScript
von Steffi221185 » 28.11.2007 14:07 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2356
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4178