Hi Guys,
I had to controll several Codes for been implementing for a project I have worked on. By following code for a datasource, this did not get started
What can be the reason for that? Any help would be great.
Thanks and regards,
Edem
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(I_STRING)
*" EXPORTING
*" REFERENCE(E_FIELD1) TYPE AB_EXTRAKT_FELD
*" REFERENCE(E_FIELD2) TYPE AB_EXTRAKT_FELD
*" REFERENCE(E_FIELD3) TYPE AB_EXTRAKT_FELD
*" REFERENCE(E_FIELD4) TYPE AB_EXTRAKT_FELD
*" REFERENCE(E_FIELD5) TYPE AB_EXTRAKT_FELD
*"----------------------------------------------------------------------
CONSTANTS: c_field_length TYPE i VALUE '60',
c_string_max TYPE i VALUE '300',
c_variable_prefix TYPE name_komp VALUE 'l_field'.
DATA: l_string_length TYPE i,
l_processing_step TYPE i,
l_step_equal_fieldlength TYPE i,
l_string TYPE string,
l_field1 TYPE ab_extrakt_feld,
l_field2 TYPE ab_extrakt_feld,
l_field3 TYPE ab_extrakt_feld,
l_field4 TYPE ab_extrakt_feld,
l_field5 TYPE ab_extrakt_feld,
l_index_n TYPE n LENGTH 1,
l_variable TYPE name_komp,
l_offset TYPE i.
FIELD-SYMBOLS:
<field> TYPE ab_extrakt_feld.
l_string_length = strlen( i_string ).
IF l_string_length = 0.
RETURN.
ENDIF.
IF l_string_length > c_string_max.
l_string = i_string+0(c_string_max).
l_string_length = c_string_max.
ELSE.
l_string = i_string.
ENDIF.
l_processing_step = l_string_length DIV c_field_length.
l_step_equal_fieldlength = l_string_length MOD c_field_length.
*--- Wenn die Größe genau 60 Zeichen beträgt, ist eine Sonderbehandlung erforderlich
IF l_step_equal_fieldlength = 0.
l_processing_step = l_processing_step - 1.
ENDIF.
l_processing_step = l_processing_step + 1.
DO l_processing_step TIMES.
l_string_length = strlen( l_string ).
l_index_n = sy-index.
CONCATENATE
c_variable_prefix
l_index_n
INTO
l_variable.
UNASSIGN <field>.
ASSIGN (l_variable) TO <field>.
IF l_processing_step = l_index_n. "Verarbeitung Rest
MOVE l_string+0(l_string_length) TO <field>.
ELSE.
l_offset = l_string_length - c_field_length.
MOVE l_string+0(c_field_length) TO <field>.
MOVE l_string+c_field_length(l_offset) TO l_string.
ENDIF.
ENDDO.
e_field1 = l_field1.
e_field2 = l_field2.
e_field3 = l_field3.
e_field4 = l_field4.
e_field5 = l_field5.
ENDFUNCTION.