Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Exemplo de utilização
  3. Operações
  4. Principais Campos
  5. Pré condições para utilização da rotina
  6. Parâmetros do sistema
  7. Pontos de entrada
  8. Adapter EAI
  9. MILE
  10. M-messenger
  11. Tabelas utilizadas
  12. Processos relacionados
  13. 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
languagejs
themeConfluence
titleIncluir uma solicitação de transferência
linenumberstrue
collapsetrue
#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
languagejs
titleCopiar uma solicitação de transfência
linenumberstrue
collapsetrue
#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
languagejs
titleAlterar uma solicitação de transferencia
linenumberstrue
collapsetrue
#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
languagejs
title Efetivar uma solicitação de transferencia
linenumberstrue
collapsetrue
#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
languagejs
titleExcluir uma solicitação de transferencia
linenumberstrue
collapsetrue
#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

...

Informações
titleObservações

Na

...

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
effectDuration0.5
Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade

...

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1
labelIncluir

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
titleBloqueio de Campos

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
defaulttrue
id2
labelAlterar

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
titleBloqueio de Campos

Não é permitida a alteração dos campos código, data e solicitante em Documento de transferência.

Card
id3
labelVisualizar

Permite a visualização de informações da solicitação.

Após visualizar as informações desejadas e clique em Confirmar.


Card
id4
labelExcluir

Permite a exclusão da solicitação de transferência.

Confira as informações disponíveis e clique em Confirmar.


Card
id5
labelEfetivar

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
id6
labelCopia

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.



Procedimentos

Para cadastrar uma solicitação de transferência utilizando a opção Copiar:

  1. Em Solicitação de transferência de Materiais, posicione o cursor sobre o solicitação a ser copiado.
  2. Clique em Copiar.
  3. É exibida a tela de inclusão apresentando todos os campos preenchidos da mesma forma como foram preenchidos para a solicitação selecionado.
  4. Se necessário altere/preencha os campos que desejar.
  5. Confira os dados e confirme a inclusão.

04. Principais Campos

...

Card
defaulttrue
id17
labelDocumento de TransferênciaReplicar TES

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.


04. Principais Campos

Âncora
#principaiscampos
#principaiscampos

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1
labelDocumento de Transferência
Nessa pasta são informados os dados de identificação do produto como código, tipo de produto, unidade de medida primária e secundária, uso de controles específicos por produto como uso de rastreabilidade, alçada, endereçamento e outras.


Campo:

Descrição

Tp. Doc Entr

Selecione a opção desejada:

1=A Classificar: o Documento de Entrada será gerado na filial destino com pendência das informações fiscais (TES não definido), ou seja, trata-se de um Pré Documento de Entrada.

2=Classificado: o Documento de Entrada será gerado na filial destino com as informações fiscais (TES definido).

Card
defaulttrue
id2
labelDados da Transferência
Nessa pasta são informados os dados de identificação do produto como código, tipo de produto, unidade de medida primária e secundária, uso de controles específicos por produto como uso de rastreabilidade, alçada, endereçamento e outras.


Campo:

Descrição

Produto informe o código do produto de origem.
Armaz. Orig. informe o código do armazém de origem.
Quantidade informe a quantidade do produto que será transferido.
Filial Dest. informe a filial destino desejada.
Prod. Destino informe o código do produto de destino.
Armaz. Destino informe o código do armazém de destino.
TES Saída informe o tipo de Saída. No cadastro de TES, os campos Atu. Estoque e Trans. Filial devem estar com o conteúdo igual a Sim; ambos estão localizados na pasta Adm/Fin/Cust.       
TES Entrada informe o tipo de Entrada. No cadastro de TES, os campos Atu. Estoque e Trans. Filial devem estar com o conteúdo igual a Sim; ambos estão localizados na pasta Adm/Fin/Cust.

...

NomePropósitoLink 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_STAPROV

Com o parametro MV_APROVTR ativo, que submete para alçada de aprovação configurada, este parametro fixa qual grupo de aprovação será submetido.  A opção padrão é Fvazio, em branco.


MV_CUSFILindica 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_AGCUSTOindica 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_MTNLOTEmanté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_ESTNEGindica 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_LIBTRFindica se o sistema assume a liberação de credito nos pedidos de transferência de filiais. A opção padrão é desativado .F. 

07. PONTOS DE ENTRADA


PEST07671PONTODE_ENTRADA_MT311ROT
NomePropósitoEquivalente em MVCLink da documentação

MT311ROT

possa manipular os botões existentes e adicionar novos botões na rotina Solicitação de transferência.Solicitação de transferência.Não alteradoPEST07671_PONTO_DE_ENTRADA_MT311ROT

M311FILIAL

Validação para inclusão ou alteração do ProdutoNão alteradoDT PE M311FILIAL - Permite definição de filiais destino na solicitação de transferência

MT311Leg

Permite limpar o conteúdo dos campos de complemento de produtoNão alteradoPEST07666_MT311LEG_

M311FILIAL

Validação para inclusão ou alteração do ProdutoNão alteradoDT PE M311FILIAL - Permite definição de filiais destino na solicitação de transferência

MT311Leg

Permite limpar o conteúdo dos campos de complemento de produtoNão alteradoPEST07666_MT311LEG_ADICIONA_LEGENDA

08. ADAPTER EAI

Não se aplica a esta rotina

Saiba mais em: A camada do EAI

09. MILE

...


08. ADAPTER EAI

Não se aplica a esta rotina

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:
    1. Principal com ID saída NNTMASTER e ocorrência 1-Única
    2. Secundário 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.

  • A rotina utiliza a configuração padrão de máximo permitido para linhas na grid de um modelo MVC (990) 

Saiba mais: MILE - Model Integrator Layout Engine

...

13. PERGUNTAS E RESPOSTAS MAIS FREQUENTES(FAQ)

...


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>