Os objetos de bloqueio são usados no SAP para evitar inconsistências ao inserir/alterar dados no banco de dados.
O SAP fornece três tipos de objetos de bloqueio.
-
Bloqueio de leitura (bloqueio compartilhado)
protege o acesso de leitura a um objeto. O bloqueio de leitura permite que outras transações tenham acesso de leitura, mas não de escrita à
área bloqueada da tabela.
-
Bloqueio de escrita (bloqueio exclusivo)
protege o acesso de escrita a um objeto. O bloqueio de escrita permite que outras transações não tenham acesso de leitura nem de escrita à
área bloqueada da tabela.
-
Bloqueio de escrita aprimorado (bloqueio exclusivo sem acumulação)
funciona como um bloqueio de escrita, exceto que o bloqueio de escrita aprimorado também protege contra acessos adicionais da
mesma transação.
Você pode criar um bloqueio em um objeto SAP através da transação SE11 e inserir um nome significativo que comece com EZ. Por exemplo: EZTEST_LOCK.
Uso: você pode ver em quase todas as transações que ao abrir um objeto em modo de alteração, o SAP não permite que outro usuário abra o mesmo objeto em modo de alteração.
Exemplo: em Recursos Humanos, ao inserirmos um número de pessoal na tela de manutenção de dados mestres, o SAP não permite que outro usuário use o mesmo número de pessoal para alterações.
Tecnicamente:
Ao criar um objeto de bloqueio, o Sistema cria automaticamente dois módulos de função.
1. ENQUEUE_
2. DEQUEUE_
Você deve usar esses módulos de função em seu programa.
verifique este link para um exemplo.
http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
tabelas: vbak.
call function 'ENQUEUE_EZLOCK3'
exporting
mode_vbak = 'E'
mandt = sy-mandt
vbeln = vbak-vbeln
-
X_VBELN = ' '
-
_SCOPE = '2'
-
_WAIT = ' '
-
_COLLECT = ' '
-
EXCEPTIONS
-
FOREIGN_LOCK = 1
-
SYSTEM_FAILURE = 2
-
OTHERS = 3
.
if sy-subrc 0.
-
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
-
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Normalmente, os ABAPers criarão os objetos de bloqueio, pois sabemos quando bloquear, como bloquear e onde bloquear o objeto, e depois de completar nossas atualizações, desbloqueamos os objetos nas tabelas.