Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8623

extract-programm

$
0
0

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.


Viewing all articles
Browse latest Browse all 8623

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>