...
- Visão Geral
- Exemplo de utilização
- Operações
- Principais Campos
- Pré condições para utilização da rotina
- Parâmetros do sistema
- Pontos de entrada
- Adapter EAI
- MILE
- M-messenger
- Tabelas utilizadas
- Processos relacionados
- Perguntas e respostas mais frequentes (FAQ)
...
A rotina Produtos permite onde as operações podem ser utilizadas em suas customizações conforme exemplos abaixo:
Bloco de código |
---|
language | js |
---|
theme | Confluence |
---|
title | Incluir uma solicitação de transferência |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "TBICONN.CH"
/*
Exemplo de inclusão de ums solicitacao de transferência via rotina automatica
*/
User Function M311Inc()
Local oModel
Local aLog
Local cMensLog
Local nX
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST"
oModel := FWLoadModel("MATA311") //Carrega o modelo
oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão
oModel:Activate() // Ativa o Modelo
//Cabeçalho da solicitacao
oModel:SetValue( 'NNSMASTER', 'NNS_CLASS', '1' )
oModel:SetValue( 'NNSMASTER', 'NNS_ESPECI', ' ' )
//Itens da solicitacao
// produto e local de origem
oModel:SetValue( 'NNTDETAIL', 'NNT_FILORI', '01' )
oModel:SetValue( 'NNTDETAIL', 'NNT_PROD', 'PRO001' )
oModel:SetValue( 'NNTDETAIL', 'NNT_LOCAL', '0A' )
oModel:SetValue( 'NNTDETAIL', 'NNT_QUANT', 1 )
// produto e local de destino
oModel:SetValue( 'NNTDETAIL', 'NNT_FILDES', '01' )
oModel:SetValue( 'NNTDETAIL', 'NNT_PRODD', 'PRO001' )
oModel:SetValue( 'NNTDETAIL', 'NNT_LOCLD', '0B' )
// Caso seja transferencia de filiais os campos de TES de entrada e saida são obrigatorios
//oModel:SetValue( 'NNTDETAIL', 'NNT_TS', '549' )
//oModel:SetValue( 'NNTDETAIL', 'NNT_TE', '072' )
If oModel:VldData() //Validação do modelo
oModel:CommitData() // Gravação do Modelo
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
cMensLog := ''
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro
MostraErro()
EndIf
oModel:DeActivate() //desativa modelo
Return NIL
|
Bloco de código |
---|
language | js |
---|
title | Copiar uma solicitação de transfência |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "TBICONN.CH"
/*
Exemplo de Copia de ums solicitacao de transferência via rotina automatica
*/
User Function m311Copy()
Local oModel
Local nX
Local cCodDoc
Private cOpId311 := "004" // DECLARACAO PARA O REALIZAR A COPIA DA SOLICITACAO
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST"
cCodDoc := "0000000001" // codigo do documento de solicitação de transferência a ser copiado
//Posiciona registro
dbSelectArea("NNS")
NNS->(DbSetOrder(1))
If NNS->(DbSeek(xFilial("NNS") + cCodDoc))
//carrega o model
oModel := FWLoadModel( "MATA311" )
//Define operação do modelo
oModel:SetOperation( MODEL_OPERATION_INSERT )
//Ativação do modelo
oModel:Activate( .T. )
//-- Preenchimento dos campos da NNT da 1a linha
oModel:SetValue( "NNTDETAIL","NNT_QUANT",3)
If oModel:VldData() //Validação do modelo
oModel:CommitData() // Gravação do Modelo
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
cMensLog := ''
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro
MostraErro()
EndIf
ELSE
conout("Documento de Solicitação de transferência não encontrado")
ENDIF
Return NIL
|
Bloco de código |
---|
language | js |
---|
title | Alterar uma solicitação de transferencia |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "TBICONN.CH"
/*
Exemplo de alteracao de ums solicitacao de transferência via rotina automatica
*/
User Function m311Alt()
Local oModel
Local nX
Local cCodDoc
Private cOpId311 := "004" // DECLARACAO PARA O REALIZAR A ALTERACAO DA SOLICITACAO
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST"
cCodDoc := "0000000001" // codigo do documento de solicitaзгo de transferência a ser alterado
//Posiciona registro
dbSelectArea("NNS")
NNS->(DbSetOrder(1))
If NNS->(DbSeek(xFilial("NNS") + cCodDoc))
//carrega o model
oModel := FWLoadModel( "MATA311" )
//Define operaзгo do modelo
oModel:SetOperation( MODEL_OPERATION_UPDATE )
//Ativaзгo do modelo
oModel:Activate()
//-- Preenchimento dos campos da NNT da 1a linha
oModel:SetValue( "NNTDETAIL","NNT_QUANT",4)
If oModel:VldData() //Validaзгo do modelo
oModel:CommitData() // Gravaзгo do Modelo
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
cMensLog := ''
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro
MostraErro()
EndIf
ELSE
conout("Documento de Solicitaзгo de transferência nгo encontrado")
ENDIF
Return NIL |
Bloco de código |
---|
language | js |
---|
title | Efetivar uma solicitação de transferencia |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "TBICONN.CH"
/*
Exemplo de Efetivar uma solicitacao de transferência via rotina automatica
*/
User Function m311efet()
Local oModel
Local nX
Local cCodDoc
Local oModelNNT
Private cOpId311 := "011" // DECLARACAO PARA O REALIZAR A EFETIVACAO DA SOLICITACAO
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST"
cCodDoc := "0000000001" // codigo do documento de solicitaçãoo de transferência a ser efetivado
//Posiciona registro
dbSelectArea("NNS")
NNS->(DbSetOrder(1))
If NNS->(DbSeek(xFilial("NNS") + cCodDoc))
//carrega o model
oModel := FWLoadModel( "MATA311" )
//Define operação do modelo
oModel:SetOperation( MODEL_OPERATION_UPDATE )
//Ativação do modelo
oModel:Activate()
//-- Preenchimento dos campos da NNS
oModel:SetValue( 'NNSMASTER' , 'NNS_STATUS' , '2' )
oModel:SetValue( 'NNSMASTER' , 'NNS_ESPECI' , "NF" )
oModelNNT := oModel:GetModel("NNTDETAIL")
For nX := 1 To oModelNNT:Length()
oModelNNT:GoLine( nX )
oModel:SetValue( 'NNTDETAIL' , 'NNT_SERIE' , "001" )// Informe a série desejada
Next nx
If oModel:VldData() //Valida??o do modelo
oModel:CommitData() // Grava??o do Modelo
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
cMensLog := ''
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro
MostraErro()
EndIf
oModel:DeActivate() //desativa modelo
ELSE
conout("Documento de Solicitação de transferência não encontrado")
ENDIF
Return NIL
|
Bloco de código |
---|
language | js |
---|
title | Excluir uma solicitação de transferencia |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "TBICONN.CH"
/*
Exemplo de Excluir uma solicitacao de transferência via rotina automatica
*/
User Function m311Exc()
Local oModel
Local nX
Local cCodDoc
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'admin' PASSWORD '' MODULO "EST"
cCodDoc := "0000000002" // codigo do documento de solicitação de transferência a ser excluida
//Posiciona registro
dbSelectArea("NNS")
NNS->(DbSetOrder(1))
If NNS->(DbSeek(xFilial("NNS") + cCodDoc))
//carrega o model
oModel := FWLoadModel( "MATA311" )
//Define operação do modelo
oModel:SetOperation( MODEL_OPERATION_DELETE )
//Ativação do modelo
oModel:Activate()
If oModel:VldData() //Validação do modelo
oModel:CommitData() // Gravação do Modelo
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
cMensLog := ''
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cMensLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cMensLog) //grava log para exibir com funcao mostraerro
MostraErro()
EndIf
oModel:DeActivate() //desativa modelo
ELSE
conout("Documento de Solicitaão de transferência n?o encontrado")
ENDIF
Return NIL |
...
...
execução automatica da rotina, |
...
não devem ser informados os campos: - NNT_FILIAL, NNS_FILIAL e NNS_FILORI, pois estes são preenchidos de acordo com a filial logada
- NNT_COD e NNS_COD, pois são preenchidos automaticamente pela rotina
|
03. OPERAÇÕES
Na página principal da rotina, estão disponíveis as opções:
Deck of Cards |
---|
|
Deck of Cards |
---|
effectDuration | 0.5 |
---|
history | false |
---|
id | samples |
---|
effectType | fade |
---|
|
Card |
---|
default | true |
---|
id | 1 |
---|
label | Incluir |
---|
| Permite a inclusão de informações da solicitação de transferência. As informações devem ser preenchidas de acordo com as orientações descritas em Principais Campos. Após preencher as informações desejadas e clique em Confirmar. Aviso |
---|
| Não é permitida a alteração dos campos código, data e solicitante em Documento de transferência, sendo gerado automaticamente, conforme usuario logado e ddatabase.
|
|
Card |
---|
default | true |
---|
id | 2 |
---|
label | Alterar |
---|
| Permite a alteração de informações da solicitação selecionado. As informações devem ser ajustadas de acordo com as orientações descritas em Principais Campos. Após alterar as informações desejadas e clique em Confirmar.
Aviso |
---|
| Não é permitida a alteração dos campos código, data e solicitante em Documento de transferência.
|
|
Card |
---|
| Permite a visualização de informações da solicitação.
Após visualizar as informações desejadas e clique em Confirmar.
|
Card |
---|
| Permite a exclusão da solicitação de transferência. Confira as informações disponíveis e clique em Confirmar.
|
Card |
---|
| Permite a visualização de informações da solicitação e somente editando dos campos Tp.Doc Entr, Especie NF e Just. Rejeic em Documento de transferência. Em Dados de transferência será somente possivel navegar nas informações.
Após visualizar as informações desejadas e clique em Confirmar.
|
Card |
---|
| Facilita a inclusão de solicitação de transferência de materiais. O sistema faz uma copia da solicitação selecionada atualizando o codigo, data e solicitante , possibilitando a edição e a gravação do o cadastro de um novo produto.
ProcedimentosPara cadastrar uma solicitação de transferência utilizando a opção Copiar: - Em Solicitação de transferência de Materiais, posicione o cursor sobre o solicitação a ser copiado.
- Clique em Copiar.
- É exibida a tela de inclusão apresentando todos os campos preenchidos da mesma forma como foram preenchidos para a solicitação selecionado.
- Se necessário altere/preencha os campos que desejar.
- Confira os dados e confirme a inclusão.
|
Card |
---|
| Nas operações de Inclusão, Alteração e Cópia é disponibilizada a opção Replicar TES no botão Outras Ações da Rotina. A rotina facilita o preenchimento da solicitação de transferência, pois permite alterar a TES de entrada e de saída de uma ou mais linhas do documento por vez. Para utilizar a função, informe os campos: - 01 - Filial Destino ?: Permite filtrar quais linhas serão alteradas na solicitação de transferência. Por exemplo, ao informar filial "02", somente as linhas com o campo Filial Destino "02" serão alteradas. Caso o campo seja deixado em branco, todas as linhas serão alteradas.
- 02 - TES de Saída ?: Informe a TES que será usada no documento de saída
- 03 - TES de Entrada ?: Informe a TES que será usada no documento de entrada. As opções de TES apresentadas dependem de qual Filial Destino foi informada na pergunta 01, exceto para o caso em que a Filial Destino seja deixada em branco, onde será apresentado o cadastro de TES da filial corrente.
Após informar os parâmetros, confirme a execução. Será atribuida a TES de entrada e saída nas linhas conforme configurado. Caso alguma linha não possa ser gravada (por exemplo, a TES de entrada informada não existe na filial de destino), o processo será interrompido e uma mensagem será apresentada. |
|
...
Nome | Propósito | Link da documentação |
MV_TPCUSST | define o custo do produto que deve ser considerado no registro de transferência. Apresenta as opções 1=Lista de Preço; 2=Custo Standard; 3=Último preço de Compra e 4=Custo Unitário. |
|
MV_APROVTR | indica se o controle de transferência de produto deve ser submetido para alçada de aprovação. A opção padrão é F. |
|
MV_CUSFIL | indica se o recalculo do custo médio deverá calcular o custo aglutinando por Filial (F), por Empresa (E) ou por Armazém (A). A opção padrão é A. |
|
MV_AGCUSTO | indica se deve aglutinar o custo on-line (por Filial ou Empresa). Respeita a definição do parâmetro MV_CUSFIL. A opção padrão é F. |
|
MV_MTNLOTE | mantém o número do sub-lote para as transferências entre o mesmo produto e o mesmo lote. A opção padrão é N. |
|
MV_ESTNEG | indica se o Sistema permite que os saldos em estoque dos produtos fiquem negativos por meio de movimentações. A opção padrão é S. |
|
MV_LIBTRF | indica se o sistema assume a liberação de credito nos pedidos de transferência de filiais. A opção padrão é desativado .F. |
|
...
Saiba mais em: A camada do EAI
09. MILE
...
Configurar o layout conforme necessidade da importação dos dados. Pontos de atenção:
- Tipo Adapter: MVC
- Adapter: MATA311
- Criar dois canais, o principal com ID saída NNTMASTER e ocorrência 1-Única, o segundo com ID saída NNSDETAIL com ocorrência N-Várias
- Não informar os campos NNT_FILIAL, NNS_FILIAL, NNS_FILORI, NNT_COD e NNS_COD. Vide observações no item 02.
Saiba mais: MILE - Model Integrator Layout Engine
...