Como faço para customizar uma rotina que será chamada no PDV para ser executada na Retaguarda?
Ambiente
Microsiga Protheus - SIGAFRT (Totvs PDV) - Aplicável a partir da versão 11.80
Solução
Por motivos de segurança e para evitar interferência de customizações no processo de subida de dados do padrão, foi evitado o uso de Ponto de Entrada, no JOB de subida de dados STWUPSALE.
Link para download do fonte de exemplo: FonteExemplo.prw
#INCLUDE 'PROTHEUS.CH'
//--------------------------------------------------------
/*/{Protheus.doc} MeuFunc()
Realiza conout no console dos paramtros recebidos
@param cParam1 Conteudo do tipo String para apresentacao em conout()
@param cParam2 Conteudo do tipo String para apresentacao em conout()
@param cParam3 Conteudo do tipo numerido para apresentacao em conout()
@author Paulo Henrique
@version P11.8
@since 06/03/2017
@return lRetorno .T.
/*/
//--------------------------------------------------------
User Function MeuFunc( cParam1, cParam2, nParam3 )
Default cParam1 := 'cParam1 vazio...'
Default cParam1 := 'cParam2 vazio...'
Default nParam3 := 0
Conout('Iniciou MeuFunc')
Conout('Recebeu Param1:',cParam1)
Conout('Recebeu Param2:',cParam1)
Conout('Recebeu Param3:',nParam3)
Conout('Finalizou MeuFunc')
Return .T.
//--------------------------------------------------------
/*/{Protheus.doc} MeuJob()
Realiza conout no console dos paramtros recebidos
@param cEmp Conteudo do tipo String com a Empresa para abertura de ambiente
@param cFil Conteudo do tipo String com a Filial para abertura de ambiente
@author Paulo Henrique
@version P11.8
@since 06/03/2017
@return lRetorno .T.
/*/
//--------------------------------------------------------
User Function MeuJob(cEmp , cFil)
Local lRet := .F.
Local lExecutou := .F.
cEmp := 'T1'
cFil := 'PARM2=D MG 01'
Conout('Iniciando MeuJob')
//Prepara Ambiente
RPCSetType(3)
RpcSetEnv(cEmp,cFil,Nil,Nil,'FRT')
lExecutou := STBRemoteExecute( 'U_MeuFunc', { 'ConteudoParam1','ConteudoParam2',10 } , NIL, .T. , @lRet )
Conout('Retorno MeuJob',lExecutou)
If !lExecutou
Conout('Não conseguiu executar a rotina _MinhaFunc. Verifique se a funcionalidade está cadastrada e habilitada na Retaguarda')
EndIf
Conout('Finalizou MeuJob')
Return .T.
2. Dentro do ambiente da Retaguarda, acessar a configuração de Funcionalidades(CFGA051) para incluir a function que será executada na retaguarda:
3. Dentro do ambiente da Retaguarda, acessar a configuração de Perfil(CFGA052) para habilitar a funcionalidade no perfil Principal/Retaguarda:
4. Após esse processo, a rotina estará preparada para ser executada no PDV, podendo ser via Job conforme exemplo abaixo:
Configuração do JOB Appserver.ini (PDV):
[MEUJOB]
MAIN=U_MeuJob
ENVIRONMENT=PDV1180
NPARMS=2
PARM1=T1
PARM2=D MG 01
[ONSTART]
JOBS=MEUJOB
REFRESHRATE=30
5. Verifique que o JOB foi executado e a rotina MeuFunc foi executada na Retaguarda:
Acesse nossa Central de Atendimento na opção Perguntas Frequentes e verifique nossos Artigos.
0 Comentários