CONTEÚDO
01. VISÃO GERAL
A nova rotina de Registro de Pendências, permite o gerenciamento das pendências de forma automática, selecionando-se a operação desejada e também os campos que devem ser complementados no registro.
02. OBJETIVO DE UTILIZAÇÃO
Realizar processamento da rotina de gerenciamento das pendências de forma automática.
03. PARÂMETROS
O conteúdo das variáveis deverão ser enviados no instante da execução da rotina. Vide exemplo abaixo:
- cFilPnd - Filial de origem da pendência.
- cNumPnd - Número da pendência.
- aDados - Campos que devem ser alterados.
- nOpcao - Opção de execução do fonte.
- cTMSCOSB - Deverá ser informada Identificação Produto na Conciliação Sobras/Faltas 0=Não Utiliza,1=Obrigatório,2=Não Obrigatório
Variáveis estáticas que devem ser carregadas via função TMSAF89Set:
- nRotExt - Carrega rotina que deverá ser executada (10 - Indenizar / 11 - Encerrar / 12 - Estornar)
- nRadio - Carrega opção no encerramento da pendência, quando nRotExt for igual a 11 (1 - Somente Encerrar / 2 - Re-entregar / 3 - Devolver)
- lConAut - Carrega o fechamento automático da conciliação (.F. - Não / .T. - Sim)
- lPergUsu - Carrega a exibição das perguntas ao usuário (.F. - Não exibe / .T. - Exibe)
04. EXEMPLO DE EXECUÇÃO DE PROGRAMA
#INCLUDE "PROTHEUS.CH" /*{Protheus.doc} AutoPend Exemplo de Rotina Automática da Pendência @type Static Function @author Totvs @since 31/01/2025 @version P12 R12.1.29 @param nOpcao @return return, return_type, return_description @example EncPende() (examples) @see (links_or_references) */ User Function AutoPend(cFilPnd,cNumPnd,aDados,nOpcao) Local aDadosDUU := {} Local aAreas := {DUU->(GetArea()),GetArea()} Local aCamposDUU := {} Local lRet := .T. Local nCntFor1 := 0 Local oMdlPnd Local oMdlFldDUU Local oStruDUU Default cFilPnd := "M SP 01 " Default cNumPnd := "000044" Default aDados := {{"DUU_MOTIVO","TESTE"},{"DUU_OBSENC","TESTE"},{"DUU_CODMTC","0001"}} Default nOpcao := 4 If !Empty(cNumPnd) .And. nOpcao != 0 DUU->(DbSetOrder(1)) If DUU->(DbSeek(xFilial("DUU") + cFilPnd + cNumPnd)) Aadd(aDadosDUU,{"DUU_FILPND",cFilPnd}) Aadd(aDadosDUU,{"DUU_NUMPND",cNumPnd}) For nCntFor1 := 1 To Len(aDados) Aadd(aDadosDUU,{aDados[nCntFor1,1],aDados[nCntFor1,2]}) Next nCntFor1 //-- Carrega Rotina Extra TMSAF89Set("nRotExt",11) //-- Encerrar //-- Carrega Opção no Encerramento da Pendência TMSAF89Set("nRadio",1) //-- Somente Encerra //-- Carrega Fechamento Automático da Conciliação TMSAF89Set("lConAut",.T.) //-- Fecha Automaticamente //-- Exibe Perguntas ao Usuário TMSAF89Set("lPergUsu",.F.) //-- Não Exibe Perguntas // Permite mudar o informe da Identificação Produto na Conciliação Sobras/Faltas 0=Não Utiliza,1=Obrigatório,2=Não Obrigatório TMSAF89Set("cTMSCOSB","0") //-- Carrega o Model da Pendência oMdlPnd := FWLoadModel("TMSAF89") oMdlPnd:SetOperation(nOpcao) //-- Ativa o Model da Pendência oMdlPnd:Activate() //-- Carrega o Modelo da Pendência oMdlFldDUU := oMdlPnd:GetModel("MdFieldDUU") oStruDUU := oMdlFldDUU:GetStruct() aCamposDUU := oStruDUU:GetFields() oMdlFldDUU:Activate() //-- Registro de Pendências For nCntFor1 := 1 To Len(aDadosDUU) If AScan(aCamposDUU,{|x| AllTrim(x[3]) == AllTrim(aDadosDUU[nCntFor1,1])}) > 0 If !oMdlFldDUU:SetValue(aDadosDUU[nCntFor1,1],aDadosDUU[nCntFor1,2]) lRet := .F. Exit EndIf EndIf Next nCntFor1 //-- Grava os Dados If lRet If (lRet := oMdlPnd:VldData()) oMdlPnd:CommitData() EndIf EndIf //-- Se Ocorreu Algum Erro Exibe Mensagem If !lRet MostraErro() EndIf //-- Desativa o Model do Planejamento oMdlPnd:DeActivate() EndIf EndIf AEval(aAreas,{|x,y| RestArea(x),FwFreeArray(x)}) FwFreeArray(aAreas) Return lRet
05. ASSUNTOS RELACIONADOS
- ID's dos Modelos MVC - Novo Registro de Pendências (TMSAF89 - SIGATMS
- TMSAF89 - Pontos de Entrada Padrão MVC.
06. TABELAS UTILIZADAS
DUU - Registro de Pendências
Import HTML Content
Visão Geral
Conteúdo das Ferramentas