DT_Punto_de_Entrada_grabación_de_datos_complementarios_tablas_FK_SE5


Oops, it seems that you need to place a table or a macro generating a table within the Pivot Table macro.

The table is being loaded. Please wait for a bit ...

Línea de producto:

Microsiga Protheus

Segmento:

Servicios

Módulo:

Financeiro

Punto de entrada:

FINM010, FINM020

Requisito (ISSUE):

DSERFINR-660

DSERFINR-2195

DSERFINP-1307

País(es):

Todos

Base(s) de datos:

Todos

Sistema(s) operativo(s):

Todos

Versiones/Release:

12

Función:

FINM010, FINM020

Devolución:

lRet

Descripción

A partir de la versión 12, los puntos de entrada que manejan la tabla SE5 se descontinuarán debido al cambio de las rutinas de grabación de la SE5 a la MVC y grabación de las tablas del grupo FK. 

En el estándar MVC tenemos un único punto de entrada y este se llama en varios momentos dentro del fuente estándar. Su acción se determinará por su ID de ejecución. 

FINM010 es el modelo de datos de la Baja por cobrar y, por lo tanto, es el punto de entrada utilizado por rutinas que realizan este tipo de operación. FINM020 es el modelo de datos de la Baja por Pagar y, por lo tanto, es el punto de entrada utilizado por rutinas que realizan este tipo de operación.

El momento de su ejecución se definirá según el ID de ejecución utilizado. 

Para grabar los registros auxiliares (multa, intereses, descuento) estos puntos de entrada no servirán para la GRABACIÓN EN LA TABLA SE5. Este sirve solamente para la grabación del registro principal de la baja. Se debe analizar puntualmente el punto de entrada que servirá para la necesidad deseada.

Para más informaciones sobre la reestruturación de las tablas SE5, que se descontinuará, verifique el siguiente enlace.


Documentação sobre pontos de entrada em MVC:
http://tdn.totvs.com/display/public/mp/Pontos+de+Entrada+para+fontes+Advpl+desenvolvidos+utilizando+o+conceito+MVC 

Documentación sobre reestruturación de la tabla SE5:
http://tdn.totvs.com/pages/releaseview.action?pageId=183730415

Documentación sobre Puntos de Entrada para grabar datos complementarios de la baja:
SE5FI070 - Grabación de datos complementarios de la tabla SE5 CR

F80GRVFK - Punto de entrada para grabar datos complementarios de la baja

SE5FI080 - Punto de entrada para grabar datos complementarios de la baja

F080ACONT - Complemento de baja por pagar

SE3F070 - Tratamiento complementario de la baja por cobrar


Ejemplo de grabación de las FK y SE5:

Importante: Si desea utilizar este ejemplo para Movimientos bancarios por pagar, simplemente sustituya el submodelo y el prefijo de los campos de la tabla FK1 (FK1DETAIL, FK1_TPDOC) por el submodelo y el prefijo de los campos de la tabla FK2 (FK2DETAIL, FK2_TPDOC)

#Include 'Protheus.ch'
#Include 'FWMVCDEF.ch'

User Function FINM010()
Local aParam := PARAMIXB
Local lRet := .T.
Local oSubFK1 := ''
Local cIdPonto := ''
Local cIdModel := ''

If aParam <> NIL

oSubFK1 := aParam[1] //Objeto del formulario o del modelo, según el caso
cIdPonto := aParam[2] //ID del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID del formulario

If cIdPonto == 'FORMPOS'
If cIdPonto == 'FORMPOS'
If cIdModel == 'FK1DETAIL'
oSubFK1:SetValue( "FK1_HISTOR", 'PUNTO DE ENTRADA EN MVC' )
EndIf
If cIdModel == 'FK5DETAIL'
oSubFK1:SetValue( "FK5_HISTOR", 'PUNTO DE ENTRADA EN MVC' )
EndIf
EndIf
EndIf
EndIf

Return lRet


Los datos grabados en las tablas FK se copian automáticamente a la tabla SE5, si es necesario realizar la grabación de un campo de la SE5 que no tiene un campo correspondiente en las tablas FK, es necesario informar el atributo "E5_CAMPOS" del modelo de datos para realizar la grabación en la tabla SE5. Los campos informados en este atributo se grabarán directamente en la SE5.


Ejemplo:

#Include 'Protheus.ch'
#Include 'FWMVCDEF.ch'

User Function FINM010()
Local aParam := PARAMIXB
Local lRet := .T.
Local oModParam := ''
Local oModelBxR := ''
Local cIdPonto := ''
Local cIdModel := ''
Local oFK8 := Nil
Local oFKA := Nil
Local cCamposE5 := ''


If aParam <> NIL

oModParam := aParam[1] //Objeto del formulario o del modelo, según el caso 
cIdPonto := aParam[2] //ID del lugar de ejecución del punto de entrada 
cIdModel := aParam[3] //ID del formulario 

If cIdPonto == 'FORMPOS'
If cIdModel == 'FK5DETAIL'
oModelBxR := oModParam:GetModel()
oFK8 := oModelBxR:GetModel( "FK8DETAIL" )
oFKA := oModelBxR:GetModel( "FKADETAIL" )

cCamposE5 := AllTrim(oModelBxR:GetValue('MASTER', 'E5_CAMPOS'))
If !Empty(cCamposE5)
cCamposE5 := Left( cCamposE5, Len(cCamposE5) -1 )
cCamposE5 += ",{ 'E5_CCD', '000000001'}"
cCamposE5 += ",{ 'E5_CCC', '000000002'}}"
Else
cCamposE5 := "{{ 'E5_CCD', '000000001'}"
cCamposE5 += ",{ 'E5_CCC', '000000002'}}"
EndIf

oModelBxR:SetValue( "MASTER","E5_CAMPOS",cCamposE5 ) // Informando el atributo "E5_CAMPOS"
oFK8:SetValue( "FK8_CCD", '000000001' )
oFK8:SetValue( "FK8_CCC", '000000002' )
oFK8:SetValue( "FK8_IDMOV", oFKA:GetValue('FKA_IDORIG') )
EndIf
EndIf
EndIf

Return lRet


Ejemplo do uso del punto de entrada que modifica las tablas FK5(Movimiento bancario) y FK6(Valores adicionales - Multa, intereses, descuento, etc.)

User Function FINM010()

Local aParam := PARAMIXB

Local lRet := .T.

Local oSubModel := ''

Local cIdPonto := ''

Local cIdModel := ''

Local cCamposE5             := ''

Local oModelBx               := ''

               

                If aParam <> NIL

                               oSubModel        := aParam[1] //Objeto del formulario o del modelo, según el caso

                               cIdPonto             := aParam[2] //ID del lugar de ejecución del punto de entrada

                               cIdModel            := aParam[3] //ID del formulario

                              

                               If cIdPonto == 'FORMPOS' // En la validación total del formulario.

                                               If cIdModel == 'FK1DETAIL' //Validación del formulario FK1

                                                               If "VL" $  oSubModel:GetValue("FK1_TPDOC") //Condición para modificar la grabación

                                                                              oSubModel:SetValue( "FK1_HISTOR", 'P.E. EM MVC,BAIXA FK1' ) // Nuevos valores

                                                               EndIF

                                               ElseIf cIdModel == 'FK6DETAIL' //Validación del formulario FK6

                                                               If "DC" $  oSubModel:GetValue("FK6_TPDOC")

                                                                              oSubModel:SetValue( "FK6_HISTOR", 'P.E. EM MVC,DESCONTO' )

                                                               EndIf

                                               ElseIf cIdModel == 'FK5DETAIL' //Validación del formulario FK5

                                                               If "VL" $  oSubModel:GetValue("FK5_TPDOC") //Condición para modificar la grabación

                                                                              oSubModel:SetValue( "FK5_HISTOR", 'P.E. EM MVC,BAIXA FK5' ) // Nuevos valores

                                                               EndIF   

                                               EndIf

                               EndIf

                EndIf


Return lRet