quarta-feira, 19 de junho de 2019

Só ALV

Somente para informações sobre ALV.

Usando mesmo event_handler para vários ALVs no mesmo programa

Nos eventos tem o parâmetro oculto sender para todos os eventos, utilizá-lo para definir qual objeto ALV está sendo utilizado para um evento compartilhado.

Ex.:

      handle_alv_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
            e_row_id
            e_column_id
            es_row_no
            sender,




O SENDER define o objeto ALV sendo executadoo naquele momento.

Para conseguir saber qual está sendo executado existem várias maneiras, eu fazia lendo qual container estava sendo utilizado, mas achei uma maneira mais fácil de um exemplo no SDN.

Primeiro define um nome para o objeto ALV utilizando o metodo SET_NAME.

Ex: go_alv_adi_nf->set_name('ADI_NF').

Quanto é executado dentro do evento, utilizar o método para pegar o nome do ALV definido.

Ex.: 
FORM handle_alv_hotspot_click USING iv_row_id    TYPE lvc_s_row
                                    is_column_id TYPE  lvc_s_col
                                    is_row_no    TYPE lvc_s_roid
                                    io_sender TYPE REF TO cl_gui_alv_grid.

  DATA lv_name TYPE string.

  CALL METHOD io_sender->get_name
    RECEIVING
      name lv_name.

  IF lv_name 'ADI_NF'.

 ELSE.
 ENDIF.


========================================================================



segunda-feira, 3 de junho de 2019

ES_J_1BNF_ADD_DATA - NF WRITER

Opa.. essa ADD_DATA não tava passando quando é uma NF writer. Tem uma nota que explica como funciona, mas pelo blog abaixo fica mais fácil de entender.

Outro detalhe.. nessa caso ele tem um método especifico para J1B1N

ADD_DATA_J1B1N


https://blogs.sap.com/2016/09/08/badi-nova-chamada-automaticamente-na-nf-writer-j1b1nj1b2n/