20240106

LINE_EXISTS (inline)

  METHOD line_exists_1.

**     retorna true se uma linha existe na tabela interna

*     line_exists( itab[] ).




  ENDMETHOD.




  METHOD line_exists_2.

*    data: t_kna1     TYPE TABLE OF kna1.
    typesbegin of y_kna1,
             kunnr       type kna1-kunnr,
             name1       type kna1-name1,
           end of y_kna1,

          y_t_kna1    type STANDARD TABLE OF y_kna1
            WITH KEY PRIMARY_KEY COMPONENTS kunnr .


    data(t_kna1value y_t_kna1(
      kunnr '10'  name1 'Cliente dez' )
      kunnr '20'  name1 'Cliente vinte' )
      kunnr '30'  name1 'Cliente trinta' )
    ).

***     Sem table function
    READ TABLE t_kna1
      TRANSPORTING NO FIELDS
      WITH KEY kunnr '20' .



***     Com table function
    data(v_tabixline_indext_kna1[ kunnr '20' ).


  ENDMETHOD.




  METHOD line_exists_3.

     typesbegin of y_kna1,
              kunnr    type kna1-kunnr,
              name1    type kna1-name1,
            end of y_kna1,

            y_t_kna1    type STANDARD TABLE OF y_kna1
              WITH KEY PRIMARY_KEY COMPONENTS kunnr.



     data(t_kna1value y_t_kna1(
       kunnr '10'  name1 'Cliente dez'   )
       kunnr '20'  name1 'Cliente vinte' )
     ).


*** Sem table function
    READ TABLE t_kna1
      TRANSPORTING NO FIELDS
      WITH KEY kunnr '20' .

    IF sy-subrc IS INITIAL ).

    ENDIF.



*** Com table function
*    if line_exists( t_kna1[ kunnr = '20' ] ).
*
*    endif.

  ENDMETHOD.







  METHOD line_exists_4.

     typesbegin of y_kna1,
              kunnr    type kna1-kunnr,
              name1    type kna1-name1,
            end of y_kna1,

            y_t_kna1    type STANDARD TABLE OF y_kna1
              WITH KEY PRIMARY_KEY COMPONENTS kunnr.



     data(t_kna1value y_t_kna1(
       kunnr '10'  name1 'Cliente dez'   )
       kunnr '20'  name1 'Cliente vinte' )
     ).


*** Sem table function
    READ TABLE t_kna1
      TRANSPORTING NO FIELDS
      WITH KEY kunnr '20' .

    IF sy-subrc IS INITIAL ).
       data(v_existe'Sim'.
    ELSE.
      v_existe 'Não'.
    ENDIF.



*** Com table function
    DATA(v_existe2COND #(
      WHEN line_existst_kna1[ kunnr '20' ]  )
      THEN 'Sim'
      ELSE 'Não'
    ).


  ENDMETHOD.