Vous êtes sur la page 1sur 3

Como funciona o Authority Check?

BY FLVIO FURLAN JANUARY 11, 2009

Compartilhe!

Problema
Criar um programa para gerar um relatrio de vos, filtrando por empresa
area. Os vendedores s podem visualizar determinadas empresas areas e
somente gerentes podem visualizar todas as empresas.

Soluo
Cria um Authorization Object Z_CARRID, como o campo CARRID e
ACTVT. Tambm precisamos criar as seguintes Authorizations:
DISPLAY_ALL e DISPLAY_AA.
No programa, devemos verificar se o usurio tem autorizao para visualizar a
empresa area que ele escolheu na tela de seleo:

1 AUTHORITY-CHECK 'Z_CARRID'
2 ID CARRID FIELD pa_car
3 ID ACTVT FIELD '03'.

Se o SY-SUBRC = 0, quer dizer que o usurio possui autorizao para


visualizar a empresa area que ele entrou na tela de seleo. Nesse caso, o
programa continua a sua execuo.
Caso contrrio, o usurio no tem autorizao para visualizar a empresa area
e ai devemos mostrar uma mensagem de erro.

Execuo e Teste
Crie um usurio com a autorizao DISPLAY_AA e rode o programa. O
relatrio deve ser mostrado. Retire essa autorizao e rode novamente. Uma
mensagem de erro deve aparecer.

Discusso

No a intenso aqui mostrar como criar os Authorization Objects e as


Authorizations, mas qual o mecanismo do sistema de autorizao do SAP.
O mecanismo de autorizao adotado pela SAP baseado em Authorization
Objects and Authorizations.O conjunto de Authorizations forma um profile e
este adicionado aos profiles do usurio. Um objeto de autorizao base
para a criao de Authorizations:
Vamos pegar o exemplo usado acima, do objeto Z_CARRID. Ele formado
pelo campo CARRID (Empresa area) e ACTVT (Atividade). Ou seja, um
objeto de autorizao formado apenas por campos, sem nenhum valor.
Os valores so adicionados nas autorizaes. No nosso exemplo, citei duas
autorizaes: DISPLAY_ALL e DISPLAY_AA, compostas pelos seguintes
valores:

1 DISPLAY_ALL
2 CARRID = *
3 ACTVT = "03"

Isso significa que o usurio que tiver essa authorization no seu profile, poder
executar a atividade 03 (display) para qualquer empresa area (CARRID = *).

1 DISPLAY_AA
2 CARRID = "AA"
3 ACTVT = "02"

J essa autorizao, garante ao usurio que a tiver em seu profile, a permisso


para alterar (atividade 02) empresas areas com cdigo AA.
Ainda no est terminado. A criao do objeto, da autorizao e a incluso
dos mesmos no profile do usurio no garante as devidas permisses.
necessrio inclu-lo no programa.
Fazemos isso com o comando:

1 AUTHORITY-CHECK 'Z_CARRID' " define o objeto de autorizao


2 ID CARRID FIELD pa_car
" define o valor do campo CARRID para teste
3 ID ACTVT FIELD '03'.
" define qual a operao desejada nesse ponto do programa

Com o retorno desse comando ser via SY-SUBRC, sendo que 0 significa que
o usurio tem autorizao, e 8 para permisso negada.
Se quizermos testar se usurio tem ou no permisso para alterar, mudamos a
atividade para 02.
Temos vrias atividades permitidas. Para consultar a lista completa, veja o
help do ABAP da SAP.

Veja Tambm
Authorizations

Vous aimerez peut-être aussi