Árvore de páginas


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:

Variáveis Private
#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