Páginas

segunda-feira, 13 de junho de 2016

Executando uma Static Function de outro programa com a Função StaticCall()


Todos nós sabemos ou pelo menos a maioria sabe, que uma “Static Function” só pode ser chamada de dentro o mesmo programa fonte (mesmo prw) que a criou, certo?

Mas e se precisássemos utilizar uma “Static Function” existente em um RPO, cujo os fontes não estão disponíveis ?

Podemos resolver este problema com a utilização de uma função chamada StaticCall() que irá executar uma “Static Function” de qualquer outro programa em que esteja declarada.

Sintaxe:

xReturn := StaticCall(xParam1, xParam2, xParam3, ..., ..., xParamN)

Onde:

xParam1 := NomeDoPrograma (sem aspas), onde se encontra a Static Function que se deseja executar.

xParam2 := NomeDaStaticFunction (sem aspas), a ser executada

xParam3 := A partir desse espaço são definidos os parâmetros que são passados para a Static Function que será chamada, podendo variar de 0..N.


Exemplo:



O resultado deste exemplo será o seguinte:




 Até a próxima...

Agrupando Pedidos de Venda em uma única Nota Fiscal de Saída


Quando for necessário agrupar vários Pedidos de Venda que tenham as mesmas característica em uma única Nota Fiscal de Saída através da rotina MATA460 (Documento de Saída), bastaria mudar o parâmetro “Aglut.Ped. Iguais ?” para “Sim”. Correto ?


Porém, podemos nos deparar com o seguinte problema:

Criando um Botão Customizado na Consulta Posição do Cliente

Na rotina de Consulta Posição do Cliente FINC010, é possível adicionar um botão para executar uma rotina que traga novas informações sobre o cliente.

Para isso é necessário utilizar um ponto de entrada chamado FC010BTN.

A função VerSenha()

Esta função verifica se o usuário corrente tem acesso a determinada opção que foi cadastrada no
Configurador nas propriedades do usuário (menu Detalhes / Acessos), tais como “Excluir produto”, ”Alterar produto”, etc.

Exemplo:

if ! VerSenha(36)   // verifica se o usuário pode alterar a data base do sistema.
   return Nil
endif

Como usar a função StartJob()

As vezes é comum precisarmos executar uma rotina dentro de uma função mas sem interromper o processamento desta função aguardando até que a rotina termine. Para isto existe a função StartJob. Está função permite iniciar uma Thread, ou seja, uma nova conexão no monitor, sem interromper a função que à chamou.

Variáveis Públicas Disponíveis no Protheus

No sistema Protheus existem inúmeras variáveis públicas disponíveis para serem utilizadas dentro de um programa, gatilho ou fórmula.

Vejam algumas: