Deixar como global.
Nesse caso se eu tenho um objeto de autorização para criar/modificar e exibir. Se estiver como exibir eu desativo os botões, no caso tenho o botão standard e outro customizado.
Pode ser assim tbm.
https://github.com/SAP-samples/abap-platform-rap-opensap/blob/main/week3/unit6.md
===== EXEMPLO FUNCIONAL USANDO A FORMA DA SAP
-- Detalhe, testando pelo eclipse pelo binding não funciona, somente depois do deploy no ambiente do cliente
METHOD get_instance_authorizations.
    DATA lv_exibir TYPE abap_bool.
    READ ENTITIES OF ZPP_I_OrdensEncFrangoCorte IN LOCAL MODE
     ENTITY OrdemProd ALL FIELDS
     WITH CORRESPONDING #( keys )
     RESULT DATA(lt_ordens) FAILED failed.
    CHECK lt_ordens IS NOT INITIAL.
    LOOP AT lt_ordens INTO DATA(lw_ordens).
      CLEAR lv_exibir.
      AUTHORITY-CHECK OBJECT 'ZPP_ENCFRC'
       ID 'ACTVT' FIELD '02'
       ID 'WERKS' FIELD lw_ordens-werks.
      IF sy-subrc <> 0.
        AUTHORITY-CHECK OBJECT 'ZPP_ENCFRC'
         ID 'ACTVT' FIELD '03'
         ID 'WERKS' FIELD lw_ordens-werks.
        IF sy-subrc <> 0.
          APPEND VALUE #( %tky        = lw_ordens-%tky
                          %msg        = new_message_with_text( severity = if_abap_behv_message=>severity-error
                                        text   = |Sem autorização para centro: { lw_ordens-werks }| )
                        ) TO reported-ordemprod.
        ENDIF.
        lv_exibir = abap_true.
      ENDIF.
      APPEND VALUE #( %tky = lw_ordens-%tky
                      %update = COND #( WHEN lv_exibir = abap_true THEN if_abap_behv=>auth-unauthorized ELSE if_abap_behv=>auth-allowed )
                      %action-ExecOrdem = COND #( WHEN lv_exibir = abap_true THEN if_abap_behv=>auth-unauthorized ELSE if_abap_behv=>auth-allowed )
                      %action-refreshTela = COND #( WHEN lv_exibir = abap_true THEN if_abap_behv=>auth-unauthorized ELSE if_abap_behv=>auth-allowed )
                ) TO result.
    ENDLOOP.
  ENDMETHOD.
 
Nenhum comentário:
Postar um comentário