Árvore de páginas

GFEA0841 - Ponto de entrada executado após a gravação do Frete Combinado (GFEA084), alternativo ao ponto de entrada padrão do MVC

Características do Requisito

Linha de Produto:

Protheus

Segmento:

Distribuição e Logística

Módulo:

SIGAGFE 

Ponto de Entrada - GFEA0841

Descrição:

O objetivo desse ponto de entrada é tratar as informações salvas do Frete Combinado, no caso onde elas não estão armazenadas no Model da rotina GFEA084, e sim em arrays.

O ponto de entrada é executado após a gravação, e foi projetado estritamente para substituir o evento MODELCOMMITNTTS do MVC, quando este não pode ser disparado.

Motivo para a criação do ponto de entrada: ao resolver o problema da issue DLOGGFE-7357 (no qual o ponto de entrada MVC não executava), surgiu um bug de chave duplicada conforme a issue DLOGGFE-9573.

Assim, para resolver os dois erros simultaneamente, foi desfeita a liberação da issue DLOGGFE-7357, e criado este ponto de entrada para atendê-la.

Localização:

Após a gravação do Frete Combinado

Programa Fonte:

GFEA084 - Frete Combinado

Parâmetros:

Nome

Tipo

Descrição

Obrigatório
PARAMIXB[1]Array

GWF - Cálculo de Frete

Sim
PARAMIXB[2]ArrayGWI - Componente do Cálculo de FreteSim
PARAMIXB[3]ArrayGWH - Documento do Cálculo de FreteSim


Para todos os arrays, cada linha é composta por duas colunas, onde a primeira é o nome do campo e a segunda é o valor.

Para os arrays das tabelas GWI e GWH,  podem existir vários itens (linhas), e para cada item as duas colunas mencionadas acima.

Exemplos de arrays:


    1) GWF - Cálculo de Frete:

        PARAMIXB[1][1]: "GWF_FILIAL"
        PARAMIXB[1][2]: "D MG 01 "
        PARAMIXB[2][1]: "GWF_NRCALC"
        PARAMIXB[2][2]: "00000014"
            ... etc.

    2) GWI - Componente do Cálculo de Frete
        - Componente 1:
        PARAMIXB[1][1][1]: "GWI_FILIAL"
        PARAMIXB[1][1][2]: "D MG 01 "
        PARAMIXB[1][2][1]: "GWI_NRCALC"
        PARAMIXB[1][2][2]: "00000014"
            ... etc.
        PARAMIXB[1][5][1]: "GWI_CDCOMP"
        PARAMIXB[1][5][2]: "001 "
            ... etc.            
        - Componente 2:
        PARAMIXB[2][1][1]: "GWI_FILIAL"
        PARAMIXB[2][1][2]: "D MG 01 "
        PARAMIXB[2][2][1]: "GWI_NRCALC"
        PARAMIXB[2][2][2]: "00000014"
            ... etc.

        PARAMIXB[2][5][1]: "GWI_CDCOMP"
        PARAMIXB[2][5][2]: "002 "
           ... etc.

        - Componente n:
        PARAMIXB[n][1][1]: "GWI_FILIAL"
        PARAMIXB[n][1][2]: "D MG 01 "
        PARAMIXB[n][2][1]: "GWI_NRCALC"
        PARAMIXB[n][2][2]: "00000014"
            ... etc.
        PARAMIXB[n][5][1]: "GWI_CDCOMP"
        PARAMIXB[n][5][2]: "n "
            ... etc.

    3) GWH - Documento do Cálculo de Frete

        - Documento 1:
        aGWH[1][1][1]: "GWH_FILIAL"
        aGWH[1][1][2]: "D MG 01 "
        aGWH[1][2][1]: "GWH_NRDC "
        aGWH[1][2][2]: "00053411  "
            ... etc.
        - Documento 2:
        aGWH[2][1][1]: "GWH_FILIAL"
        aGWH[2][1][2]: "D MG 01 "
        aGWH[2][2][1]: "GWH_NRDC "
        aGWH[2][2][2]: "00053412  "
            ... etc.
        - Documento n:
        aGWH[n][1][1]: "GWH_FILIAL"
        aGWH[n][1][2]: "D MG 01 "
        aGWH[n][2][1]: "GWH_NRDC "
        aGWH[n][2][2]: "n"
            ... etc.    

Retorno:

Nome

Tipo

Descrição

Obrigatório

lRet

L

Valida os dados inseridos.

Não

Exemplo GFEA841
#include "TOTVS.CH"


User Function GFEA0841()
	Local nY := 0
	Local nZ := 0
	Local aLinha := {}
	Local aGWF := PARAMIXB[1]
	Local aGWI := PARAMIXB[2]
	Local aGWH := PARAMIXB[3]
	Local cCampo := ""
	Local cValor := ""
	Local lRet := .T.

	//-------------------------------------------------
	ConOut( "Acessando dados da GWF: ")
	//-------------------------------------------------
	For nY := 1 To Len(aGWF)
		cCampo := aGWF[nY,1]
		cValor := cValToChar(aGWF[nY,2])
		ConOut( "Campo: " + cCampo + " Valor: " + cValor )
	Next nY

	//-------------------------------------------------
	ConOut( "Acessando dados da GWI: ")
	//-------------------------------------------------
	For nY := 1 To Len(aGWI)
		
		ConOut( "Linha: " + AllTrim(Str(nY)) )
		aLinha := aGWI[nY]
		
		For nZ := 1 To Len(aLinha)
			cCampo := aLinha[nZ,1]
			cValor := cValToChar(aLinha[nZ,2])
			ConOut( "Campo: " + cCampo + " Valor: " + cValor )
		Next nZ
		
	Next nY
	
	//-------------------------------------------------
	ConOut( "Acessando dados da GWH: ")
	//-------------------------------------------------
	For nY := 1 To Len(aGWH)
		
		ConOut( "Linha: " + AllTrim(Str(nY)) )
		aLinha := aGWH[nY]
		
		For nZ := 1 To Len(aLinha)
			cCampo := aLinha[nZ,1]
			cValor := cValToChar(aLinha[nZ,2])
			ConOut( "Campo: " + cCampo + " Valor: " + cValor )
		Next nZ
		
	Next nY		

Return lRet