0% found this document useful (0 votes)
135 views4 pages

Programa

The document contains ABAP code for performing the following tasks: 1. Splitting a string into components and appending them to an internal table 2. Converting a string to UTF-8 format by using an ABAP conversion object 3. Enveloping data by using the SSF_KRN_DEVELOPE function
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
135 views4 pages

Programa

The document contains ABAP code for performing the following tasks: 1. Splitting a string into components and appending them to an internal table 2. Converting a string to UTF-8 format by using an ABAP conversion object 3. Enveloping data by using the SSF_KRN_DEVELOPE function
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

*{v001 - P46235 - Inicio

*}v001 - P46235 - Fim

CONCATENATE buffer dta_crlf INTO lv_string RESPECTING BLANKS.


CONCATENATE v_string_teste lv_string INTO v_string_teste.

CALL FUNCTION 'SWA_STRING_SPLIT'


EXPORTING
input_string = v_string_teste
max_component_length = 255
TABLES
string_components = lt_table
EXCEPTIONS
max_component_length_invalid = 1
OTHERS = 2.

IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT lt_table INTO ls_table.


v_string = ls_table-str.
APPEND v_string TO filebuff_255.
ENDLOOP.

PERFORM CONVERT_TO_UTF8
USING EXAMPLE
CHANGING IN_DATA_TABLE-BINDATA.

FORM CONVERT_TO_UTF8 USING INBUF TYPE STRING CHANGING OUTBUF TYPE X.


data: l_conv type ref to cl_abap_conv_out_ce.

* Konvertierer l_conv besorgen


call method cl_abap_conv_out_ce=>create
exporting encoding = 'UTF-8'
replacement = '#'
ignore_cerr = abap_true
receiving conv = l_conv.

* Zeichen in den Konvertierer hineinstecken ...


call method l_conv->write
exporting data = inbuf.

* ... und das Ergebnis abholen


call method l_conv->get_buffer
receiving buffer = outbuf.

ENDFORM.

* CALL FUNCTION 'SDB_WORD_WRAP'


* EXPORTING
* textline = lv_string
* outputlen = 255
* TABLES
* out_lines = filebuff_255
* EXCEPTIONS
* outputlen_too_large = 1
* OTHERS = 2.
*
* LOOP AT filebuff_255 INTO v_string.
* lv_index = sy-tabix.
* lv_strlen = strlen( v_string ).
* lv_strlen = 2.
* IF lv_strlen = dta_crlf.
* DELETE filebuff_255 INDEX lv_index.
* ENDIF.
* ENDLOOP.

refresh data_in.

CALL FUNCTION 'SSF_KRN_DEVELOPE'


EXPORTING
SSFTOOLKIT = ls_ssfparms-ssftoolkit
STR_FORMAT = 'PKCS7'
B_OUTDEC = in_enc
io_spec = io_spec
OSTR_ENVELOPED_DATA_L = remlen
* IMPORTING
* OSTR_OUTPUT_DATA_L =
* CRC =
TABLES
OSTR_ENVELOPED_DATA = data_out
RECIPIENT = lt_recipient_list
OSTR_OUTPUT_DATA = data_in
EXCEPTIONS
SSF_KRN_ERROR = 1
SSF_KRN_NOOP = 2
SSF_KRN_NOMEMORY = 3
SSF_KRN_OPINV = 4
SSF_KRN_NOSSFLIB = 5
SSF_KRN_RECIPIENT_ERROR = 6
SSF_KRN_INPUT_DATA_ERROR = 7
SSF_KRN_INVALID_PAR = 8
SSF_KRN_INVALID_PARLEN = 9
SSF_FB_INPUT_PARAMETER_ERROR = 10
OTHERS = 11
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

* REFRESH filebuff_255.
* CALL FUNCTION 'CONVERT_STRING_TO_TABLE'
* EXPORTING
* i_string = gv_string
* i_tabline_length = 255
* TABLES
* et_table = filebuff_255.
IF gv_nova_cript IS NOT INITIAL.
DATA: lv_xstring TYPE xstring.

CALL FUNCTION 'SSFH_STRING_TO_XSTRINGUTF8'


EXPORTING
cstr_input_data = gv_string
IMPORTING
ostr_input_data = lv_xstring
EXCEPTIONS
conversion_error = 1
internal_error = 2
OTHERS = 3.

IF gv_string IS INITIAL.
gv_string = lv_string.
ELSE.
CONCATENATE gv_string lv_string INTO gv_string.
ENDIF.

IF sy-subrc = 0.
WHILE xstrlen( lv_xstring ) > 0.
wa_filebuff-bindata = lv_xstring.
APPEND wa_filebuff TO filebuff.
SHIFT lv_xstring LEFT BY 255 PLACES IN BYTE MODE.
ENDWHILE.
ENDIF.
ELSE.

ls_ssfparms-indatalen + xstrlen( data_in-bindata ).

*{v001 - P46235 - Inicio


*&---------------------------------------------------------------------*
*& Form f_CONVERT_TO_UTF8
*&---------------------------------------------------------------------*
FORM f_convert_to_utf8 USING uv_inbuf TYPE any
CHANGING cv_outbuf TYPE x.

DATA: lo_conv TYPE REF TO cl_abap_conv_out_ce.

* Konvertierer l_conv besorgen


CALL METHOD cl_abap_conv_out_ce=>create
EXPORTING
encoding = 'UTF-8'
replacement = '#'
ignore_cerr = abap_true
RECEIVING
conv = lo_conv.

IF lo_conv IS BOUND.
* Zeichen in den Konvertierer hineinstecken ...
CALL METHOD lo_conv->write
EXPORTING
data = uv_inbuf.
* ... und das Ergebnis abholen
CALL METHOD lo_conv->get_buffer
RECEIVING
buffer = cv_outbuf.
ENDIF.

ENDFORM. "f_CONVERT_TO_UTF8
*{v001 - P46235 - Fim

* LOOP AT filebuff_255 INTO wa_filebuff_255.


* PERFORM f_convert_to_utf8 USING wa_filebuff_255
* CHANGING wa_filebuff-bindata.
* APPEND wa_filebuff TO filebuff.
* CLEAR wa_filebuff.
* ENDLOOP.

You might also like