Árvore de páginas

Ponto de entrada padrão MVC

A rotina relacionada a este ponto de entrada passou recentemente por uma reestruturação para o padrão de desenvolvimento MVC, desta forma o exemplo de código 01, apresentado neste documento, pode não ser mais efetivo, desta forma indicamos a utilização do Exemplo 2 - MVC.

Ponto de Entrada para alteração de dados na tabela de Contas a Pagar.

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

Manutenção de Ativos

Rotina:

Rotina

Nome Técnico

MNTA765

Registro de Multas

Chamados Relacionados

TUJKUF

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos



Ponto de Entrada

Descrição:

Ponto de Entrada para que seja adicionado o valor do Desconto na tabela de Contas a Pagar, chamado na função de integração com o financeiro, após confirmar montar a tela de parcelas, sendo chamado individualmente para cada parcela (uma vez para cada linha). Outra aplicação é para realizar alteração de conteúdo dos títulos SE2 antes da chamada do ExecAuto FINA050, nesse momento passando como parâmetro o array completo com todos os títulos.

Localização:

SIGAMNT: Atualizações/Multas/Multa

Programa Fonte:

MNTA765.PRX

Função:

MNTA7655()

Parâmetros:


Nome

Tipo

Descrição

aTitulo

Array

Array com todos os campos da SE2 e seus respectivos conteúdos

nLenNuméricoNúmero de parcelas.

Obs: Os parâmetros acima só são passados quando o ponto de entrada é chamado antes da integração com FINA050, conforme consta na descrição do PE.

Retorno:

Nome

Tipo

Descrição

Obrigatório

xRet

Indefinido

Deve retornar um caracter quando chamado a partir da rotina de multas, ou um array quando chamado no momento de geração da SE2.

Sim

Observação:

O ponto de entrada tem duas aplicações:

a) quando é chamado na rotina de multas, não envia parâmetros (portanto aPARAMIXB) é nulo, e espera como retorno o valor de desconto (caracter);

b) quando é chamado na geração do título financeiro (SE2), envia como parâmetro o array de títulos (aPARAMIXB[1] = array) e espera como retorno o array atualizado.

Exemplo 1 - Padrão
#Include 'Protheus.ch'

User Function MNTA7655()

      Local xRet

      If Type("PARAMIXB") == "A"  //chamado na gravação do título SE2

            xRet:= PARAMIXB[1]

            nPos := asCan(xRet,{|x| x[1] == "E2_HIST"})

            If nPos > 0

                  xRet[nPos][2] := 'Multa gerada via módulo MNT.'

            EndIf

      Else  //chamado para gravar desconto

            xRet:= M->TRX_DESCON

      EndIf


Return xRet
Exemplo 2 - MVC
#Include 'Protheus.ch'

User Function MNTA7655()

      Local xRet
	  Local oModel7655 

      If Type("PARAMIXB") == "A"  .And. Len(PARAMIXB) <= 2 //chamado na gravação do título SE2

            xRet:= PARAMIXB[1]

            nPos := asCan(xRet,{|x| x[1] == "E2_HIST"})

            If nPos > 0

                  xRet[nPos][2] := 'Multa gerada via módulo MNT.'

            EndIf

      Else  //chamado para gravar desconto
					
			oModel7655 := PARAMIXB[3] // Busca o modelo de dados que contêm os valores de memória. 		

            xRet:= oModel7655:GetValue('MULTAS','TRX_DESCON') // Busca valor de memória

      EndIf


Return xRet