Árvore de páginas

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Serviços

Módulo:

Gestão de Compras Públicas

Rotina:

Rotina

Nome Técnico

GCPA100

Análise de Mercado

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Lista de funções úteis

Função

Utilização

Referente ao botão

GCP100MDSug(oModel)Retorna o código da modalidade sugerida

Exemplo de rotina automática - Inclusão de Análise de Mercado por Lote

A Rotina GCPA100 foi desenvolvida em MVC, portanto para realizar a inclusão, alteração e exclusão de um contrato, automaticamente, deve-se fazer uso do modelo de dados. A Seguir mostraremos um exemplo de como realizar a inclusão de um contrato utilizando o modelo de dados da rotina GCPA100.

Para mais detalhes sobre a utilização do MVC, consulte a pagina: http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC


#Include 'Protheus.ch'
#INCLUDE "FWMVCDEF.CH"

//-------------------------------------------------------------------
/*/{Protheus.doc} GPC101AUTO()

Função que efetua a inclusão de Analise de Mercado por Lote.

@author TOTVS
@since 00/00/0000
@version 1.0

/*/
//-------------------------------------------------------------------
User Function GPC101AUTO()

Local oModel := FWLoadModel("GCPA101") // Carrega o modelo
Local oModelCOY := oModel:GetModel('COY_DETAIL') // Carrega submodelo da composição do lote
Local cLogError := ""

oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão

oModel:Activate() // Ativa o Modelo

// Cabeçalho Análise de Mercado
oModel:SetValue( 'COM_MASTER' , 'COM_REGRA' , '003' )
oModel:SetValue( 'COM_MASTER' , 'COM_TIPO' , 'MP' )
oModel:SetValue( 'COM_MASTER' , 'COM_ESPECI' , '2' )

// Lote
oModel:SetValue( 'COQ_DETAIL' , 'COQ_LOTE' , '0001' )
oModel:SetValue( 'COQ_DETAIL' , 'COQ_METODO' , '1' )

// Fornecedores
oModel:SetValue( 'COP_DETAIL' , 'COP_TIPO' , '2' )
oModel:SetValue( 'COP_DETAIL' , 'COP_CODFOR' , '000005' )

// Produtos
oModel:SetValue( 'CON_DETAIL' , 'CON_CODPRO' , 'P000001' )
oModel:SetValue( 'CON_DETAIL' , 'CON_QUANT' , 100 )

// Solicitações
oModel:LoadValue( 'COO_DETAIL' , 'COO_NUMSC' , 'PMS08M' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_ITEMSC' , '001' )

// Composição do Lote
If oModelCOY:SeekLine({{'COY_CODPRO', 'P000001'}}) // Posiciona no item correspondente
oModel:SetValue( 'COY_DETAIL' , 'COY_PRCUN' , 50 )
EndIf

oModel:GetModel('CON_DETAIL'):AddLine() // Adiciona uma nova linha para Produto

// Produtos
oModel:SetValue( 'CON_DETAIL' , 'CON_CODPRO' , 'P000002' )
oModel:SetValue( 'CON_DETAIL' , 'CON_QUANT' , 50 )

// Solicitações
oModel:LoadValue( 'COO_DETAIL' , 'COO_NUMSC' , 'PMS08M' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_ITEMSC' , '002' )
oModel:LoadValue( 'COO_DETAIL' , 'COO_QUANT' , 50 )

// Composição do lote
If oModelCOY:SeekLine({{'COY_CODPRO', 'P000002'}})
oModel:SetValue( 'COY_DETAIL' , 'COY_PRCUN' , 300 )
EndIf

// Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
Else
aEval( oModel:GetErrorMessage(), { | x | cLogError += cValToChar( x ) + CRLF } )
Help( ,,"GCP101AUTO",,cLogError, 1, 0 )
EndIf

oModel:DeActivate() // Desativa o modelo

oModel:Destroy() // Destrói o modelo

Return


Para utilização da ExecAuto para inclusão de Análise de Mercado por Item acesse o link:Exemplo de Rotina Automática GCPA100 - Análise de Mercado por Item


  • Sem rótulos