Bapi ,Converter für Extenstion BAPI_TE_MEPOITEM

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Bapi ,Converter für Extenstion BAPI_TE_MEPOITEM

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hallo Experten, weisst jemand ein Method für convertet von struktur to container.
ich habe eine struktur:
Data:lt_extenszion type bapiparex.
Data:ls_BAPI_TE_MEPOITEM type BAPI_TE_MEPOITEM.
dann fühle ich diese struktur und dann versuche ich move zu ls_extention machen.
Bekomme ich Fehler, das bei Unicode geht es nicht.
Dann habe ich probiert solche converter benutzen:
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = ls_BAPI_TE_MEPOITEM
IMPORTING
ex_container = ls_extension+30(960)
EXCEPTIONS
illegal_parameter_type = 1
OTHERS = 2.
er convertirt, aber leider habe ich viel fleder von Typ FLOAT, DEC oder INT, deshalb bekomme ich da nicht richtige format. Gibte es ander Möglichkeit?
Danke

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


Re: Bapi ,Converter für Extenstion BAPI_TE_MEPOITEM

Beitrag von jocoder (Specialist / 339 / 3 / 101 ) »
Eine Möglichkeit wäre BASE64-Codierung zu nutzen
wie nachfolgendes Code-Snippet zeigt:

Code: Alles auswählen.

class base64_converter definition.

  public section.

     class-methods convert_to_base64
        importing
           bapi_mepoitem type bapi_mepoitem
        returning value(result) TYPE string.

  private section.

     class-methods is_utf16
        returning value(unicode) type sap_bool.

endclass.

class base64_converter implementation.
  method convert_to_base64.
    DATA: struct_descr TYPE REF TO cl_abap_view_offlen,
             hex_bapi_mepoitem TYPE xstring.

    IF is_utf16( ) = abap_true.
      struct_descr = cl_abap_view_offlen=>create_unicode16_view(
        bapi_mepoitem ).
    ELSE.
      struct_descr = cl_abap_view_offlen=>create_legacy_view(
        bapi_mepoitem ).
    ENDIF.

   data(hex_converter) = cl_abap_conv_out_ce=>create( ).
    hex_converter->convert_struc( EXPORTING data = bapi_mepoitem view = struct_descr
      IMPORTING buffer = hex_bapi_mepoitem ).

    result = cl_http_utility=>encode_x_base64( hex_bapi_mepoitem ).

  endmethod.

  method is_utf16.
    DATA: codepage TYPE cpcodepage.

    CALL FUNCTION 'SCP_CODEPAGE_FOR_LANGUAGE'
      EXPORTING
        language = sy-langu
      IMPORTING
        codepage = codepage.

    IF codepage(1) = '1'.
      unicode = abap_false.
    ELSE.
      unicode = abap_true.
    ENDIF.

  endmethod.
endclass.

Codiert wird dann wie folgt:

Code: Alles auswählen.

ls_extension+30(960) = base64_converter=>convert_to_base64( ls_bapi_mepoitem ).
Die Dekodierung von BASE64 in die Struktur bapi_mepoitem erfolgt analog. Hierfür muss nur die Klasse cl_abap_conv_out_ce durch die Klasse cl_abap_conv_in_ce ersetzt werden und die Methode cl_http_utility=>decode_x_base64 anstatt der Methode cl_http_utility=>encode_x_base64 gewählt werden.

Re: Bapi ,Converter für Extenstion BAPI_TE_MEPOITEM

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Hallo autohandel ( hast du eigentlich keinen richtigen Namen? )

normalerweise schreibt SAP für BAPI-Strukturen immer Strukturen nur aus C-Feldern vor. Bei dir sind sicherlich durch den CI-Include in der BAPI_TE_MEPOITEM ein paar Zahlenfelder da reingekommen die dir Probleme bereiten.

Wenn du eine Alternativstruktur zu BAPI_TE_MEPOITEM erstellst, die aus namensgleichen Feldern besteht, bei der aber die nummerischen Felder durch C-Felder ersetzt werden sollte das dein Problem lösen, da SAP üblicherweise tief im Coding in solchen Fällen mit "MOVE-CORRESPONDING" arbeitet. Und da deine Alternativstruktur nun lediglich aus C-Feldern besteht gibt es auch nicht mehr deine Fehlermeldung.

Coding dann etwa:

Code: Alles auswählen.

data: ls_alternativstruktur type alternativstruktur.
MOVE-CORRESPONDING bapi_te_mepoitem to ls_alternativstruktur.
ls_extension-structure = 'ALTERNATIVSTRUKTUR'.
ls_extension+30 = ls_alternativstruktur.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2332
Views
per BAPI-Control über Visual Basic ein BAPI aufrufen
von Kaiwalker » 25.07.2005 15:22 • Verfasst in ABAP® Core
0
Antw.
3320
Views
SAP JCo --> BAPI
von Hutch3 » 17.10.2010 17:42 • Verfasst in Java & SAP®
0
Antw.
1125
Views
BAPI für WG 22
von MASTERmind » 10.09.2007 16:05 • Verfasst in ABAP® Core
2
Antw.
1854
Views
Bapi´s im HR
von fbo » 10.07.2007 09:20 • Verfasst in Human Resources
1
Antw.
1678
Views
BAPI
von anki_86 » 11.06.2007 10:40 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

alv_grid aktualisieren
vor 4 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 13 Stunden von Shortcut IT 3 / 42

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.

Aktuelle Forenbeiträge

alv_grid aktualisieren
vor 4 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 13 Stunden von Shortcut IT 3 / 42

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 170