Produto: | Microsiga Protheus® |
Ocorrência: | Como incluir um registro de ordem de serviç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 na ordem de serviço |
Passo a passo: | Vamos criar um exemplo de execauto para a inclusão de um registro para a ordem de serviço Exemplo de Uso #INCLUDE "TOTVS.CH" #INCLUDE "TBICONN.CH" User Function MyTeca450() Local lOk := .T. Local aCabec := {} Local aItem := {} Local aItens := {} Local aApont := {} Local aAponts := {} Local cNumOS := "" Private lMsErroAuto := .F. ConOut(Repl("-",80)) PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "TEC" TABLES "SA1","SE4","DA0","AA3","AAG","AA5","SB1","AA5","AB6","AB7","AB8" DbSelectArea("SA1") DbSetOrder(1) If !SA1->(DbSeek(xFilial("SA1")+"00000101")) lOk := .F. ConOut("Cadastrar Cliente: 000001 Loja: 01") EndIf DbSelectArea("SB1") DbSetOrder(1) //VERICAR TAMANHO DOS CAMPOS DE PRODUTO If !SB1->(DbSeek(xFilial("SB1")+" COM00000000000000000000000011")) lOk := .F. ConOut("Cadastrar Produto: COM00000000000000000000000011") EndIf DbSelectArea("SE4") DbSetOrder(1) If !SE4->(DbSeek(xFilial("SE4")+"001")) lOk := .F. ConOut("Cadastrar Condicao de Pagamento: 001") EndIf If !SE4->(DbSeek(xFilial("SE4")+"002")) lOk := .F. ConOut("Cadastrar Condicao de Pagamento: 002") EndIf DbSelectArea("AA3") DbSetOrder(1) //VERIFICAR TAMANHO DE CAMPO DE PRODUTO E NUMERO DE SERIE If !AA3->(DbSeek(xFilial("AA3")+"00000101"+ " COM00000000000000000000000011"+"00000000544000000001")) lOk := .F. ConOut("Cadastrar Base Instalada Cliente/Loja: 000001/01 Produto: COM00000000000000000000000011 Série: 00030400029400000001") EndIf DbSelectArea("AAG") DbSetOrder(1) If !AAG->(DbSeek(xFilial("AAG")+"OC01 ")) lOk := .F. ConOut("Cadastrar Ocorrencia: OC01 ") EndIf DbSelectArea("AA5") DbSetOrder(1) If !AA5->(DbSeek(xFilial("AA5")+"000006")) lOk := .F. ConOut("Cadastrar Servico: 000006") EndIf If lOk ConOut(PadC("Teste de Inclusao da OS",80)) ConOut("Inicio: "+Time()) cNumOS := GetSXENum("AB6","AB6_NUMOS") RollBackSx8() aAdd(aCabec,{"AB6_NUMOS",cNumOS,Nil}) aAdd(aCabec,{"AB6_CODCLI",SA1->A1_COD,Nil}) aAdd(aCabec,{"AB6_LOJA" ,SA1->A1_LOJA,Nil}) aAdd(aCabec,{"AB6_EMISSA",dDataBase,Nil}) aAdd(aCabec,{"AB6_ATEND" ,cUserName,Nil}) aAdd(aCabec,{"AB6_CONPAG","001",Nil}) aAdd(aCabec,{"AB6_HORA" ,Time(),Nil}) aAdd(aItem,{"AB7_ITEM" ,StrZero(1,2),Nil}) aAdd(aItem,{"AB7_TIPO" ,"1",Nil}) aAdd(aItem,{"AB7_CODPRO",AA3->AA3_CODPRO,Nil}) aAdd(aItem,{"AB7_NUMSER",AA3->AA3_NUMSER,Nil}) aAdd(aItem,{"AB7_CODPRB",AAG->AAG_CODPRB,Nil}) aAdd(aItens,aItem) aAdd(aApont,{"AB8_ITEM" ,StrZero(1,2),Nil}) aAdd(aApont,{"AB8_SUBITE",StrZero(1,2),Nil}) aAdd(aApont,{"AB8_CODPRO",SB1->B1_COD,Nil}) aAdd(aApont,{"AB8_CODSER",AA5->AA5_CODSER,Nil}) aAdd(aApont,{"AB8_QUANT",1,Nil}) aAdd(aApont,{"AB8_VUNIT",100,Nil}) aAdd(aApont,{"AB8_PRCLIS",100,Nil}) aAdd(aAponts,aApont) TECA450(,aCabec,aItens,aAponts,3) If !lMsErroAuto ConOut("Inclusao com sucesso! ") Else ConOut("Erro na inclusao!") EndIf aCabec := {} aItem := {} aItens := {} aApont := {} aAponts:= {} ConOut(PadC("Teste de Alteracao da OS",80)) aAdd(aCabec,{"AB6_NUMOS",cNumOS,Nil}) aAdd(aCabec,{"AB6_CODCLI",SA1->A1_COD,Nil}) aAdd(aCabec,{"AB6_LOJA" ,SA1->A1_LOJA,Nil}) aAdd(aCabec,{"AB6_EMISSA",dDataBase,Nil}) aAdd(aCabec,{"AB6_ATEND" ,cUserName,Nil}) aAdd(aCabec,{"AB6_CONPAG","002",Nil}) aAdd(aCabec,{"AB6_HORA" ,Time(),Nil}) aAdd(aItem,{"LINPOS","AB7_ITEM","01"}) aAdd(aItem,{"AB7_ITEM" ,StrZero(1,2),Nil}) aAdd(aItem,{"AB7_TIPO" ,"1",Nil}) aAdd(aItem,{"AB7_CODPRO",AA3->AA3_CODPRO,Nil}) aAdd(aItem,{"AB7_NUMSER",AA3->AA3_NUMSER,Nil}) aAdd(aItem,{"AB7_CODPRB",AAG->AAG_CODPRB,Nil}) aAdd(aItens,aItem) aAdd(aApont,{"AB8_ITEM" ,StrZero(1,2),Nil}) aAdd(aApont,{"AB8_SUBITE",StrZero(1,2),Nil}) aAdd(aApont,{"AB8_CODPRO",SB1->B1_COD,Nil}) aAdd(aApont,{"AB8_CODSER",AA5->AA5_CODSER,Nil}) aAdd(aApont,{"AB8_QUANT",2,Nil}) aAdd(aApont,{"AB8_VUNIT",100,Nil}) aAdd(aApont,{"AB8_PRCLIS",100,Nil}) aAdd(aAponts,aApont) TECA450(,aCabec,aItens,aAponts,4) If !lMsErroAuto ConOut("Alteracao com sucesso! ") Else ConOut("Erro na Alteracao!") EndIf aCabec := {} aItem := {} aItens := {} aApont := {} aAponts:= {} ConOut(PadC("Teste de Exclusao da OS",80)) aAdd(aCabec,{"AB6_NUMOS",cNumOS,Nil}) aAdd(aCabec,{"AB6_CODCLI",SA1->A1_COD,Nil}) aAdd(aCabec,{"AB6_LOJA" ,SA1->A1_LOJA,Nil}) aAdd(aCabec,{"AB6_EMISSA",dDataBase,Nil}) aAdd(aCabec,{"AB6_ATEND" ,cUserName,Nil}) aAdd(aCabec,{"AB6_CONPAG","002",Nil}) aAdd(aCabec,{"AB6_HORA" ,Time(),Nil}) aAdd(aItem,{"AB7_ITEM" ,StrZero(1,2),Nil}) aAdd(aItem,{"AB7_TIPO" ,"1",Nil}) aAdd(aItem,{"AB7_CODPRO",AA3->AA3_CODPRO,Nil}) aAdd(aItem,{"AB7_NUMSER",AA3->AA3_NUMSER,Nil}) aAdd(aItem,{"AB7_CODPRB",AAG->AAG_CODPRB,Nil}) aAdd(aItens,aItem) aAdd(aApont,{"AB8_ITEM" ,StrZero(1,2),Nil}) aAdd(aApont,{"AB8_SUBITE",StrZero(1,2),Nil}) aAdd(aApont,{"AB8_CODPRO",SB1->B1_COD,Nil}) aAdd(aApont,{"AB8_CODSER",AA5->AA5_CODSER,Nil}) aAdd(aApont,{"AB8_QUANT",2,Nil}) aAdd(aApont,{"AB8_VUNIT",100,Nil}) aAdd(aApont,{"AB8_PRCLIS",100,Nil}) aAdd(aAponts,aApont) TECA450(,aCabec,aItens,aAponts,5) If !lMsErroAuto ConOut("Exclusao com sucesso! ") Else ConOut("Erro na Exclusao!") EndIf aCabec := {} aItem := {} aItens := {} aApont := {} aAponts:= {} ConOut("Fim : "+Time()) EndIf RESET ENVIRONMENT Return Importante Os dados enviados para exclusão devem existir, pois internamente é realizado um posicionamento no registro para a exclusão do mesmo |
Observações: |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas