- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MATA261 - TRANSFERENCIAS - EXECAUTO
×
Linguagem de Programação ADVPL
Perguntas MATA261 - TRANSFERENCIAS - EXECAUTO
- fkuhn
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13653
por fkuhn
MATA261 - TRANSFERENCIAS - EXECAUTO foi criado por fkuhn
E ai pessoal..blz?
Estou procurando algo sobre a rotina automatica do Mata261 (Transferencias mod2)
Alguem teria um exemplo claro dessa rotina...
Desde já agradeço
Estou procurando algo sobre a rotina automatica do Mata261 (Transferencias mod2)
Alguem teria um exemplo claro dessa rotina...
Desde já agradeço
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #13657
por kanaamlrr
Respondido por kanaamlrr no tópico MATA261 - TRANSFERENCIAS - EXECAUTO
Segue
documentação e exemplo
do TDN.
Em anexo vai um fonte que utilizei essa rotina.
Em anexo vai um fonte que utilizei essa rotina.
Por favor Acessar ou Registrar para participar da conversa.
- fkuhn
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
- fkuhn
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13673
por fkuhn
Respondido por fkuhn no tópico MATA261 - TRANSFERENCIAS - EXECAUTO
Rapaz,
Agora os mistérios do Protheus,
o ExecAuto é executado sem erros, mas ele não grava as movimentações na SD3
Segue abaixo o parte do código correspondente
Static Function MovMerc() //Movimenta mercadorias
Local aAuto := {}
Local cNumDoc := M->Z3_YNUM
Local nI := 0
Local cProduto // Cod Produto
Local cDescProd // Descrição do produto
Local cUM // Unidade de medida
Local cArmOri := "01" // Armazem origem
Local cEndOri := Space(15) // Endereço de origem
Local cArmDest := "04" // Armazem destino
Local cEndDest := Space(15) // Endereço destino
Local cNumSer := "" // Numero de série
Local cLote := "" // Lote
Local cSLote := "" // Sub-Lote
Local cValidade := criavar('D3_DTVALID') // Validade
Local nPoten := 0 // Potencia
Local nQuant // Quantidade
Local cQtSegUm := criavar("D3_QTSEGUM") // Quantidade 2ª UM
Local cEstorno := criavar("D3_ESTORNO") // Estornado
Local cNumSeq := criavar("D3_NUMSEQ") // Numero sequencia
Local cLoteDest := "" // Lote destino
Local cValDest := criavar("D3_DTVALID") // Val dest
aAdd(aAuto,{cNumDoc,dDataBase})
// Alimenta o array para execução do MsExecAuto
For nI:=1 To Len(aCols)
SB1->(DBSEEK(xFilial("SB1") + aCols[nI][2] ))
cProduto := aCols[nI][2]
cDescProd := SB1->B1_DESC
cUm := SB1->B1_UM
nQuant := aCols[nI][5]
IF !SB2->(DBSEEK(xFilial("SB2") + aCols[nI][2] + cArmDest ))
CriaSB2( cProduto, cArmDest)
ENDIF
aAdd(aAuto, {cProduto ,;
cDescProd ,;
cUM ,;
cArmOri ,;
cEndOri ,;
cArmDest ,;
cEndDest ,;
cNumSer ,;
cLote ,;
cSLote ,;
cValidade ,;
nPoten ,;
nQuant ,;
cQtSegUm ,;
cEstorno ,;
cNumSeq ,;
cLoteDest ,;
cValDest })
next nI
MSExecAuto({|x,y| mata261(x,y)},aAuto,3)//inclusão
If lMsErroAuto
ConOut("Erro na inclusao!")
MostraErro()
EndIf
Return !lMsErroAuto
Agora os mistérios do Protheus,
o ExecAuto é executado sem erros, mas ele não grava as movimentações na SD3
Segue abaixo o parte do código correspondente
Static Function MovMerc() //Movimenta mercadorias
Local aAuto := {}
Local cNumDoc := M->Z3_YNUM
Local nI := 0
Local cProduto // Cod Produto
Local cDescProd // Descrição do produto
Local cUM // Unidade de medida
Local cArmOri := "01" // Armazem origem
Local cEndOri := Space(15) // Endereço de origem
Local cArmDest := "04" // Armazem destino
Local cEndDest := Space(15) // Endereço destino
Local cNumSer := "" // Numero de série
Local cLote := "" // Lote
Local cSLote := "" // Sub-Lote
Local cValidade := criavar('D3_DTVALID') // Validade
Local nPoten := 0 // Potencia
Local nQuant // Quantidade
Local cQtSegUm := criavar("D3_QTSEGUM") // Quantidade 2ª UM
Local cEstorno := criavar("D3_ESTORNO") // Estornado
Local cNumSeq := criavar("D3_NUMSEQ") // Numero sequencia
Local cLoteDest := "" // Lote destino
Local cValDest := criavar("D3_DTVALID") // Val dest
aAdd(aAuto,{cNumDoc,dDataBase})
// Alimenta o array para execução do MsExecAuto
For nI:=1 To Len(aCols)
SB1->(DBSEEK(xFilial("SB1") + aCols[nI][2] ))
cProduto := aCols[nI][2]
cDescProd := SB1->B1_DESC
cUm := SB1->B1_UM
nQuant := aCols[nI][5]
IF !SB2->(DBSEEK(xFilial("SB2") + aCols[nI][2] + cArmDest ))
CriaSB2( cProduto, cArmDest)
ENDIF
aAdd(aAuto, {cProduto ,;
cDescProd ,;
cUM ,;
cArmOri ,;
cEndOri ,;
cArmDest ,;
cEndDest ,;
cNumSer ,;
cLote ,;
cSLote ,;
cValidade ,;
nPoten ,;
nQuant ,;
cQtSegUm ,;
cEstorno ,;
cNumSeq ,;
cLoteDest ,;
cValDest })
next nI
MSExecAuto({|x,y| mata261(x,y)},aAuto,3)//inclusão
If lMsErroAuto
ConOut("Erro na inclusao!")
MostraErro()
EndIf
Return !lMsErroAuto
Por favor Acessar ou Registrar para participar da conversa.
- Rodrigo Almeida
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 11
- Obrigados Recebidos: 0
11 anos 5 meses atrás #14907
por Rodrigo Almeida
Respondido por Rodrigo Almeida no tópico MATA261 - TRANSFERENCIAS - EXECAUTO
Boa tarde!
Estou tentando utilizar a função MsExecAuto na rotina Mata 261, utilizei como
referência o exemplo do link: tdn.totvs.com/pages/releaseview.action ?
pageId=6089268
Quando executo a rotina, aparece o seguinte erro:
Titulo:
SC807700.LOG
Mensagem:
HELP: MA260OBR
Algum campo de preenchimento obrigatório não foi preenchido.
Não estou conseguindo identificar qual campo é obrigatório no MsExecAuto.
Alguém me informar quais campos devo preencher? Utilizei todos os campos
preenchidos na rotina padrão, verifiquei pelo apsdu, os campos preenchidos e não funcionou...
Estou tentando utilizar a função MsExecAuto na rotina Mata 261, utilizei como
referência o exemplo do link: tdn.totvs.com/pages/releaseview.action ?
pageId=6089268
Quando executo a rotina, aparece o seguinte erro:
Titulo:
SC807700.LOG
Mensagem:
HELP: MA260OBR
Algum campo de preenchimento obrigatório não foi preenchido.
Não estou conseguindo identificar qual campo é obrigatório no MsExecAuto.
Alguém me informar quais campos devo preencher? Utilizei todos os campos
preenchidos na rotina padrão, verifiquei pelo apsdu, os campos preenchidos e não funcionou...
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 5 meses atrás #14909
por kanaamlrr
Respondido por kanaamlrr no tópico MATA261 - TRANSFERENCIAS - EXECAUTO
Cara, aqui eu utilizei essa estrutura:
deu certinho, da uma verificada ai.
/*
Funcao : GrvTrans
Objetivos : Realiza o ExecAuto da rotina de transf de materiais
Autor : Kanaãm L. R. Rodrigues
Data/Hora : 13/08/2012
*/
*------------------------*
Static Function GrvTrans()
*------------------------*
Local aAuto := {}
Private lMsErroAuto := .F.
aAdd(aAuto,{cDocumento,dA261Data})
For i:=1 To Len(aCols2)
aAdd(aAuto, {aCols2[i][01],; //Prod Origem
aCols2[i][02],; //Descrição
aCols2[i][03],; //Unid Medida
aCols2[i][04],; //Armazem origem
aCols2[i][07],; //End. Origem
aCols2[i][08],; //Prod Dest.
aCols2[i][09],; //Descrição
aCols2[i][10],; //Unid Medida
aCols2[i][05],; //Armazém destino
aCols2[i][11],; //End. Dest.
aCols2[i][12],; //Num. Serie
aCols2[i][13],; //Lote
aCols2[i][14],; //Sub-Lote
aCols2[i][15],; //Validade
aCols2[i][16],; //Potencia
aCols2[i][06],; //Quantidade
aCols2[i][17],; //Qtde 2ª UM
aCols2[i][18],; //Estornado
aCols2[i][19],; //Seq.
aCols2[i][20],; //Lote Dest.
aCols2[i][21],; //Valid Dest.
aCols2[i][22]}) //Item Grade
Next i
MSExecAuto({|x,y| mata261(x,y)},aAuto,3)//inclusão
If lMsErroAuto
ConOut("Erro na inclusao!")
MostraErro()
EndIf
//
Return !lMsErroAuto
deu certinho, da uma verificada ai.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MATA261 - TRANSFERENCIAS - EXECAUTO
Tempo para a criação da página:0.157 segundos