FAQs - Suporte técnico

MP - ADVPL - Exemplo da rotina automática MATA920

Dúvida
Gostaria saber se tem algum exemplo ou documentação para integração de notas de saídas via rotina automática(MATA920).

Ambiente
Protheus – ADVPL – A partir da versão 11.80

Solução
Abaixo segue o exemplo da Rotina Automática MATA920.

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function MyMata920()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nX     := 0
Local nY     := 0
Local cDoc   := ""
Local lOk    := .T.
PRIVATE lMsErroAuto := .F.

//-- Abertura do ambiente
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusao de 10 documentos de entrada com 30 itens cada",80))

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FIS" TABLES "SF2","SD2","SA1","SA2","SB1","SB2","SF4"

dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"PA001"))
 lOk := .F.
 ConOut("Cadastrar produto: PA001")
EndIf
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"501"))
 lOk := .F.
 ConOut("Cadastrar TES: 501")
EndIf
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
 lOk := .F.
 ConOut("Cadastrar condicao de pagamento: 001")
EndIf
dbSelectArea("SA1")
dbSetOrder(1)
If !SA1->(MsSeek(xFilial("SA1")+PADR("CL0001",Len(SA1->A1_COD))+"01"))
 lOk := .F.
 ConOut("Cadastrar cliente: CL000101")
EndIf
If lOk
 ConOut("Inicio: "+Time())
 //-- Verifica o ultimo documento valido para um fornecedor
 dbSelectArea("SF2")
 dbSetOrder(2)
 MsSeek(xFilial("SF2")+Padr("CL0001",Len(SA1->A1_COD))+"01z",.T.)
 dbSkip(-1)
 cDoc := SF2->F2_DOC
 For nY := 1 To 10
  aCabec := {}
  aItens := {}

  If Empty(cDoc)
   cDoc := StrZero(1,Len(SD2->D2_DOC))
  Else
   cDoc := Soma1(cDoc)
  EndIf
  aadd(aCabec,{"F2_TIPO"   ,"N"})
  aadd(aCabec,{"F2_FORMUL" ,"N"})
  aadd(aCabec,{"F2_DOC"    ,(cDoc)})
  aadd(aCabec,{"F2_SERIE"  ,"UNI"})
  aadd(aCabec,{"F2_EMISSAO",dDataBase})
  aadd(aCabec,{"F2_CLIENTE",Padr("CL0001",Len(SA1->A1_COD))})
  aadd(aCabec,{"F2_LOJA"   ,"01"})
  aadd(aCabec,{"F2_ESPECIE","NF"})
  aadd(aCabec,{"F2_COND","001"})
  aadd(aCabec,{"F2_DESCONT",0})
  aadd(aCabec,{"F2_FRETE",0})
  aadd(aCabec,{"F2_SEGURO",0})
  aadd(aCabec,{"F2_DESPESA",0})
  If cPaisLoc == "PTG"         
   aadd(aCabec,{"F2_DESNTRB",0})
   aadd(aCabec,{"F2_TARA",0})
  Endif
  For nX := 1 To 30
   aLinha := {}
   aadd(aLinha,{"D2_COD"  ,"PA001",Nil})
   aadd(aLinha,{"D2_ITEM" ,StrZero(nX,2),Nil})
   aadd(aLinha,{"D2_QUANT",1,Nil})
   aadd(aLinha,{"D2_PRCVEN",100,Nil})
   aadd(aLinha,{"D2_TOTAL",100,Nil})
   aadd(aLinha,{"D2_TES","501",Nil})
   aadd(aItens,aLinha)
  Next nX
  //-- Teste de Inclusao
  MATA920(aCabec,aItens)
  If !lMsErroAuto
   ConOut("Incluido com sucesso! "+cDoc)
  Else
   MostraErro()
   ConOut("Erro na inclusao!")
  EndIf
 Next nY
 ConOut("Fim  : "+Time())
 //-- Teste de exclusao
 aCabec := {}
 aItens := {}
 aadd(aCabec,{"F2_TIPO"   ,"N"})
 aadd(aCabec,{"F2_FORMUL" ,"N"})
 aadd(aCabec,{"F2_DOC"    ,(cDoc)})
 aadd(aCabec,{"F2_SERIE"  ,"UNI"})
 aadd(aCabec,{"F2_EMISSAO",dDataBase})
 aadd(aCabec,{"F2_FORNECE","F00001"})
 aadd(aCabec,{"F2_LOJA"   ,"01"})
 aadd(aCabec,{"F2_ESPECIE","NFE"})
 aadd(aCabec,{"F2_DESCONT",0})
 aadd(aCabec,{"F2_FRETE",10})
 aadd(aCabec,{"F2_SEGURO",20})
 aadd(aCabec,{"F2_DESPESA",30})
 If cPaisLoc == "PTG"          
  aadd(aCabec,{"F2_DESNTRB",40})
  aadd(aCabec,{"F2_TARA",50})
 Endif
 For nX := 1 To 30
  aLinha := {}
  aadd(aLinha,{"D2_ITEM",StrZero(nX,Len(SD1->D1_ITEM)),Nil})
  aadd(aLinha,{"D2_COD","PA002",Nil})
  aadd(aLinha,{"D2_QUANT",2,Nil})
  aadd(aLinha,{"D2_PRCVEN",100,Nil})
  aadd(aLinha,{"D2_TOTAL",200,Nil})
  aadd(aItens,aLinha)
 Next nX
 //-- Teste de Exclusao
 ConOut(PadC("Teste de exclusao",80))
 ConOut("Inicio: "+Time())
 MATA920(aCabec,aItens,5)
 If !lMsErroAuto
  ConOut("Exclusao com sucesso! "+cDoc)
 Else
  MostraErro()
  ConOut("Erro na exclusao!")
 EndIf
 ConOut("Fim  : "+Time())
 ConOut(Repl("-",80))
EndIf

RESET ENVIRONMENT

Return(.T.)

Static Function ProcH(cCampo)
Return aScan(aAutoCab,{|x|Trim(x[1])== cCampo })

Saiba Mais:
Rotina Automática MATA920

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _