Produto: | Microsiga Protheus® |
Ocorrência: | Como incluir um registro no contrato de manutenção via execauto |
Ambiente: | Microsiga Protheus - SIGATEC - Gestão de Serviços |
Solução: | Está solução é uma explicação de como é criado um registro via execauto no contrato de manutenção |
Passo a passo: | Vamos criar um exemplo de execauto para a inclusão de um registro para a base de atendimento Exemplo de Uso #INCLUDE "TOTVS.CH" #INCLUDE "TBICONN.CH" User Function MyTeca200() Local aCabec := {} Local aItens := {} Local aItem := {} Local cContrato := "" Local lOk := .T. PRIVATE lMsErroAuto := .F. ConOut(Repl("-",80)) ConOut(PadC("Teste de Inclusao de 2 chamado tecnico com 1 itens cada",80)) //Verificar a empresa e filial corretas para inicialização do ambiente para a inclusão PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "TEC" TABLES "SA1","SB1","SE4","AA3","AAH" DbSelectArea("SA1") SA1->(DbSetOrder(1)) If !SA1->(DbSeek(xFilial("SA1")+"00000501")) lOk := .F. ConOut("Cadastrar cliente: 00000501") EndIf AA3->(dbSetOrder(4)) If !AA3->(DbSeek(xFilial("AA3")+ Space( Len( AA3->AA3_CODFAB ) ) + Space( Len( AA3->AA3_LOJAFA ) ) + "AGRUPRH " + "JHJSHDJHKJHDKAHKJDS " )) //Verifique o tamanho do campo AA3_CODPRO e AA3_NUMSER lOk := .F. ConOut("Cadastrar base instalada: Produto : " + Padr( "AGRUPRH",LEN( AA3->AA3_CODPRO ) ) + " - Identificador : " + Padr( "JHJSHDJHKJHDKAHKJDS",LEN( AA3->AA3_NUMSER ) ) ) EndIf If !AA3->(DbSeek(xFilial("AA3")+ Space( Len( AA3->AA3_CODFAB ) ) + Space( Len( AA3->AA3_LOJAFA ) ) + "FLDPCA00 " + "ID 20231124-11 " )) //Verifique o tamanho do campo AA3_CODPRO e AA3_NUMSER lOk := .F. ConOut("Cadastrar base instalada: Produto : " + Padr( "PA2",LEN( AA3->AA3_CODPRO ) ) + " - Identificador : " + Padr( "002",LEN( AA3->AA3_NUMSER ) ) ) EndIf SB1->(DbSetOrder(1)) If !SB1->(DbSeek(xFilial("SB1")+ "AGRUPRH " )) //VERIFICAR TAMANHO DO CAMPO B1_COD lOk := .F. ConOut("Cadastrar produto: " + Padr( "AGRUPRH ",15 ) ) EndIf If !SB1->(DbSeek(xFilial("SB1")+"FLDPCA00 ")) //VERIFICAR TAMANHO DO CAMPO B1_COD lOk := .F. ConOut("Cadastrar produto: " + Padr( "FLDPCA00 ",15 ) ) EndIf SE4->(DbSetOrder(1)) If !SE4->(DbSeek(xFilial("SE4")+"001") ) lOk := .F. ConOut("Cadastrar condicao de pagto : 001" ) EndIf If lOk ConOut("Inicio inclusao : "+Time()) cContrato := "000000000000007" //informa o numero do contrato, VERIFICAR A NUMERAÇÃO DO CAMPO AAH_CONTRT aCabec := {} aItens := {} aAdd(aCabec,{"AAH_CONTRT" ,cContrato ,Nil}) aAdd(aCabec,{"AAH_CODCLI" ,"000005" ,Nil}) // O CODIGO DO CLIENTE DEVE SER O MESMO QUE ESTÁ NA BASE DE ATENDIMENTO aAdd(aCabec,{"AAH_LOJA" ,"01" ,Nil}) aAdd(aCabec,{"AAH_TPCONT" ,"1" ,Nil}) aAdd(aCabec,{"AAH_CONPAG" ,"001" ,Nil}) aAdd(aCabec,{"AAH_INIVLD" ,dDataBase ,Nil}) aAdd(aCabec,{"AAH_CPAGPV" ,"001" ,Nil}) aAdd(aCabec,{"AAH_CODPRO" ,"AGRUPRH ",Nil}) //O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD //informa a base de atendimento para o contrato aItem := {} aAdd(aItem,{"AA3_CODFAB" , " " } ) aAdd(aItem,{"AA3_LOJAFA" , " " } ) aAdd(aItem,{"AA3_CODPRO" , "AGRUPRH "} ) //O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD aAdd(aItem,{"AA3_NUMSER" , "JHJSHDJHKJHDKAHKJDS " } ) // o valor atribuido deve ter o mesmo tamanho da linha AA3_NUMSER aAdd(aItem,{"M_A_R_K_" , .T. } ) aAdd(aItens,aItem) aItem := {} aAdd(aItem,{"AA3_CODFAB" , " " } ) aAdd(aItem,{"AA3_LOJAFA" , " " } ) aAdd(aItem,{"AA3_CODPRO" , "FLDPCA00 "} ) ////O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD aAdd(aItem,{"AA3_NUMSER" , "ID 20231124-11 " } ) // o valor atribuido deve ter o mesmo tamanho da linha AA3_NUMSER aAdd(aItem,{"M_A_R_K_" , .T. } ) aAdd(aItens,aItem) //Teste de Inclusao TECA200(NIL,aCabec,aItens,3) If !lMsErroAuto ConOut("Incluido com sucesso! " + cContrato ) Else ConOut("Erro na inclusao!") EndIf ConOut("Fim inclusao : "+Time()) ConOut("Inicio alteração : "+Time()) aCabec := {} aItens := {} aAdd(aCabec,{"AAH_CONTRT" ,cContrato ,Nil}) aAdd(aCabec,{"AAH_CODCLI" ,"000005" ,Nil}) aAdd(aCabec,{"AAH_LOJA" ,"01" ,Nil}) aAdd(aCabec,{"AAH_TPCONT" ,"1" ,Nil}) aAdd(aCabec,{"AAH_CONPAG" ,"001" ,Nil}) aAdd(aCabec,{"AAH_INIVLD" ,dDataBase ,Nil}) aAdd(aCabec,{"AAH_CPAGPV" ,"001" ,Nil}) aAdd(aCabec,{"AAH_CODPRO" ,"AGRUPRH ",Nil}) //O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD aItem := {} aAdd(aItem,{"AA3_CODFAB" , " " } ) aAdd(aItem,{"AA3_LOJAFA" , " " } ) aAdd(aItem,{"AA3_CODPRO" , "AGRUPRH "} ) //O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD aAdd(aItem,{"AA3_NUMSER" , "JHJSHDJHKJHDKAHKJDS " } ) // o valor atribuido deve ter o mesmo tamanho da linha AA3_NUMSER aAdd(aItem,{"M_A_R_K_" , .T. } ) aAdd(aItens,aItem) aItem := {} aAdd(aItem,{"AA3_CODFAB" , " " } ) aAdd(aItem,{"AA3_LOJAFA" , " " } ) aAdd(aItem,{"AA3_CODPRO" , "FLDPCA00 "} ) ////O Valor atribuido nessa linha deve ter o mesmo tamanho do campo AAH_CODPRO, VERIFIQUE SE ELE ESTÁ COM O MESMO TAMANHO DO CAMPO B1_COD aAdd(aItem,{"AA3_NUMSER" , "ID 20231124-11 " } ) // o valor atribuido deve ter o mesmo tamanho da linha AA3_NUMSER aAdd(aItem,{"M_A_R_K_" , .T. } ) aAdd(aItens,aItem) // Teste de Inclusao TECA200(NIL,aCabec,aItens,4) If !lMsErroAuto ConOut("Alterado com sucesso ! " + cContrato ) Else ConOut("Erro na alteração !") EndIf ConOut("Fim alteração : "+Time()) EndIf RESET ENVIRONMENT Return(.T.) Veja que o contrato 000000000000007 ainda não existe na base de dados. Agora vamos criar o contrato utilizando o modelo disponibilizado. |
Observações: |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas