Descrição:
Verifica se a rotina selecionada está sendo chamada com licença de uso para o módulo de origem.
Sintaxe:
AMIIn(nMd01, nMd02, ...nMd20) -> lRet
Parâmetros:
nMd{nn} => Número do Módulo a ser verificado
Retorno:
Logical → Verdadeiro se a função está sendo chamada de algum dos módulos passado nos parâmetros.
lRet := AmIIn(5) // valida se está no módulo do faturamento
lRet := AmIIn(12,23) // valida se está em algum dos módulos sigaloja ou sigafrt
Bloqueio avançado:
Existe a possibilidade de tornar esta validação um pouco mais restritiva com o uso da função FwBlkUserFunction
. Essa função habilita a restrição para que funções que utilizam a trava com AmIIn
não possam ser encapsuladas dentro de funções de usuário e inseridas no menu de outros módulos.
Com isso este recurso habilitado a validação também é feita considerando o módulo logado pelo usuário e não o módulo associado com o programa no menu.
O exemplo de programa a seguir não permite a chamada do programa fora do menu do Ativo Fixo mesmo que esteja encapsulado por user function
.
O bloqueio não valida a pilha de execução, logo será executado em menu, msexecauto, browse, job, schedule, rest, soap etc.
// programa padrão
function xyzMenu()
local lMenuAllowed as logical
FwBlkUserFunction(.T.)
lMenuAllowed := AmIIn(1) // exemplo com Ativo Fixo
FwBlkUserFunction(.F.)
if !lMenuAllowed
// cancela o processamento do programa
return
endif
// segue o processamento
// ...
return