Thursday, August 27, 2009

Encoding

Für Änderungen des Encodings ist die Klasse CL_ABAP_CONV_OBJ nützlich
(mehr Infos über die Klassendokumentation).
Der Report RSCP0032 kann für Tests und Informationsgewinnung rund um
Encoding genutzt werden.
Die Funktionsbausteine ECATT_CONV_STRING_TO_XSTRING und
ECATT_CONV_XSTRING_TO_STRING können für Transformationen genutzt werden.
In der Tabelle TCP00 sind die Codepages aufgeführt.

FORM decode_response USING pi_xstring type xstring CHANGING pie_string
type string.
DATA: lo_eref TYPE REF TO cx_transformation_error,
lv_errstr TYPE string,
lo_converter TYPE REF TO cl_abap_conv_obj.

* ändern des Encoding auf ISO-8859-1 (nur das versteht Inforate)
CREATE OBJECT lo_converter
EXPORTING
incode = '1133' " ISO-8859-1
outcode = '4103' " UTF-8
EXCEPTIONS
invalid_codepage = 1
internal_error = 2
OTHERS = 3.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL METHOD lo_converter->convert
EXPORTING
inbuff = pi_xstring
outbufflg = 0
IMPORTING
outbuff = pie_string
EXCEPTIONS
internal_error = 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.
ENDFORM.

Tuesday, August 18, 2009

Problem Import WSDL von Fremdsystem

Manche externe Systeme haben Probleme, die WSDL eines SAP-Webservices zu
importieren. Dies kann u.a. an den policy-tags liegen. In diesem Fall
hilft es, in der WSDL-URL 'ws_policy' durch 'standard' zu ersetzen.

Wednesday, July 22, 2009

Webservice Consumer

Ein Video-Tutorial zur Erstellung eines Webservice-Clients findet man
unter:
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/media/uuid/20eb3174-41ab-2a10-a383-907faf60eed3

Wenn das Einlesen einer WSDL-URL nicht funktioniert oder eine
Fehlermeldung beim Aufruf des Services auftritt, kann das damit
zusammenhängen, dass die Proxy-Einstellungen im SAP falsch/ungepflegt
sind. Dazu die SICF aufrufen und die Einstellungen unter
Client/Proxyeinstellungen vornehmen.

Tuesday, July 14, 2009

System Traces

Die Logs/Traces im System können über die SM21 aufgerufen werden. Hier
findet man auch die RFC-Developer Traces, die den Netzwerkverkehr
protokollieren.

Tuesday, June 23, 2009

Dynprotextarea für Anzeige

CONSTANTS: gc_ne0 TYPE i VALUE '1',
gc_eq0 TYPE i VALUE '0',
gc_line_length TYPE i VALUE '100'.

CREATE OBJECT go_custom_container
EXPORTING
container_name = 'CC_INFO'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.

CREATE OBJECT go_editor
EXPORTING
parent = go_custom_container
wordwrap_mode =
cl_gui_textedit=>wordwrap_at_fixed_position
wordwrap_position = gc_line_length
wordwrap_to_linebreak_mode = cl_gui_textedit=>true.

go_editor->set_readonly_mode( gc_ne0 ).
go_editor->set_statusbar_mode( gc_eq0 ).
go_editor->set_toolbar_mode( gc_eq0 ).

Monday, June 22, 2009

Pflegeviewvariante für Tabelle

Üblicherweise legt man für Tabellen einen Pflegedialog an (SE54). Um zu
erreichen, dass nur bestimmte Datensätze bzw. Spalten angezeigt werden,
kann eine Pflegeview-Variante erzeugt werden. Auch dafür die SE54
aufrufen. Als Referenz für die Variante nimmt man den zuvor erzeugten
Pflegeview.

Über die SE93 kann man eine Transaktion anlegen, über die man den
Pflegedialog direkt aufrufen kann ohne über die SM30 gehen zu müssen.