CONTEÚDO
01. VISÃO GERAL
Esta documentação tem a finalidade de apresentar um exemplo de rotina automática para a rotina WMSA530.
A descrição do processo de Troca de Lotes é realizada no documento: Troca de Lote (WMSA530 - SIGAWMS).
02. EXEMPLO
Para utilizar a rotina automática é necessário definir as variáveis private e alterar o pergunte ativo para a rotina WMSA530:
#include 'protheus.ch'
#INCLUDE 'TOTVS.CH'
#Include "FWMVCDEF.CH"
User Function tst530()
Local oModel := Nil
Local oModelLote:= Nil
Local oModelLt1 := Nil
Local oModelD14 := Nil
Local oModelD0A := Nil
Local nOperat := MODEL_OPERATION_INSERT
//Variaveis privadas utilizadas no programa WMSA530
Private lD14SemSB8 := .F.
Private lOperInsert := .T.
Private lOperDelete := .F.
oModel := FWLoadModel("WMSA530") //-- Carrega o modelo
oModelD0A := oModel:GetModel("A530D0A")
oModelLote:= oModelD0A:GetModel("A530LOTE")
oModelD14 := oModelLote:GetModel("A530D14")
oModel:SetOperation(nOperat) //-- Seta operação de inclusão
//Abaixo será setado os dados para o pergunte do programa WMSA530 informando os dados para troca de lote.
//Para que grave corretamente devera ser informado todos os parametros e um unico endereço por vez .
Pergunte("WMSA530",.F.)
MV_PAR01 := '01'
MV_PAR02 := '001 '
MV_PAR03 := 'AUTO000239'
MV_PAR04 := ' '
MV_PAR05 := ' '
MV_PAR06 := 'ZZZZZZZZZZ'
oModel:Activate() //-- Ativa o Modelo
oModelLt1 := oModel:GetModel("A530LOTE")
If oModelLt1:SeekLine({{"LOTECT",'AUTO000239'}})
oModelLt1:SetValue("QTDMOV",1) //Setando o campo QtdMovimento do Grid Lotes Aqui será informado a quantidade que será trocado o lote
EndIf
oModelD14:LoadValue("D14_QTDMOV",0)
If oModelD14:SeekLine({{"D14_LOCAL",'01' },{"D14_ENDER",'A0551 '},{"D14_PRODUT", '001 ' },{"D14_LOTECT",'AUTO000239'}})
oModelD14:LoadValue("D14_QTDMOV",1) //Setando o campo Qtd movimento do Grid "Produtos selecionados" Aqui será informado a quantidade que será trocado o lote
oModelD14:LoadValue("D14_NEWLOT","LOTEB") // Setando valor para o campo Novo Lote . DEverá ser informado o novo lote.
EndIf
//-- Validacao e Gravacao do Modelo
If oModel:VldData() // Validando o modelo de dados do programa WMSA530
oModel:CommitData() // Gravando
Else
VarInfo("Erro",oModel:GetErrorMessage()) //Caso houver algum erro retornará um array aqui.
EndIf
oModel:DeActivate() //desativa modelo
Return