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

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>