Verifica se a rotina selecionada está sendo chamada com licença de uso para o módulo de origem.
AMIIn(nMd01, nMd02, ...nMd20) -> lRet
nMd{nn} => Número do Módulo a ser verificado
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 |
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 |
Esse bloqueio do encapsulamento por funções de usuário está disponível nas libs com label a partir de 20200727. |
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |