...
...
...
...
...
...
Pivot Table | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||
|
...
A partir da versão de la versión 12, os pontos de entrada que manipulavam a tabela SE5 serão descontinuados devido à alteração das rotinas de gravação da SE5 para MVC e gravação das tabelas da família FK.
No padrão MVC temos um único ponto de entrada e este é chamado em vários momentos dentro do fonte padrão. Sua ação será determinada pelo seu ID de execução.
FINM010 é o modelo de dados de Baixa a Receber, e, portanto, é o ponto de entrada usado por rotinas que realizam este tipo de operação. FINM020 é o modelo de dados de Baixa a Pagar, e, portanto, é o ponto de entrada usado por rotinas que realizam este tipo de operação.
O momento da sua execução será definido conforme o ID de execução utilizado.
Para gravação dos registros auxiliares (multa, juros, desconto) esses pontos de entrada não irão atender a GRAVAÇÃO NA TABELA SE5. Ele atende somente a gravação do registro principal da baixa. Deverá ser analisado pontualmente qual o ponto de entrada que irá atender a necessidade desejada.
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 enlacePara mais informações sobre a reestruturação da tabelas SE5, que será descontinuada, verificar o link abaixo.
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
Documentação sobre reestruturação da tabela Documentación sobre reestruturación de la tabla SE5:
http://tdn.totvs.com/pages/releaseview.action?pageId=183730415
Documentação Documentación sobre Pontos Puntos de Entrada para gravação de dados complementares da baixagrabar datos complementarios de la baja:
SE5FI070 - Gravação de dados complementares da tabela Grabación de datos complementarios de la tabla SE5 CR
F080ACONT - Complemento de baixa a baja por pagar
SE3F070 - Tratamento Complementar da Baixa a ReceberTratamiento complementario de la baja por cobrar
Ejemplo de grabación de las FK y Exemplo de gravação das FK´s e SE5:
Importante: Caso deseje Si desea utilizar este exemplo para Movimentos Bancários à Pagar, basta substituir o sub-modelo e o prefixo dos campos da tabela ejemplo para Movimientos bancarios por pagar, simplemente sustituya el submodelo y el prefijo de los campos de la tabla FK1 (FK1DETAIL, FK1_TPDOC) pelo sub-modelo e o prefixo dos campos da tabela 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 do formulário ou do del formulario o del modelo, conforme o según el caso
cIdPonto := aParam[2] //ID do local de execução do ponto del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID do formuláriodel formulario
If cIdPonto == 'FORMPOS'
If cIdPonto == 'FORMPOS'
If cIdModel == 'FK1DETAIL'
oSubFK1:SetValue( "FK1_HISTOR", 'PONTO PUNTO DE ENTRADA EM EN MVC' )
EndIf
If cIdModel == 'FK5DETAIL'
oSubFK1:SetValue( "FK5_HISTOR", 'PONTO PUNTO DE ENTRADA EM EN MVC' )
EndIf
EndIf
EndIf
EndIf
Return lRet
Os dados gravados nas tabelas FK´s são replicados automaticamente para a tabela SE5, caso seja necessário realizar a gravação de um campo da SE5 que não possui um campo correspondente nas tabelas FK´s, será necessário informar o 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" do del modelo de dados datos para realizar a gravação na tabela la grabación en la tabla SE5. Os Los campos informados neste atributo serão gravados diretamente na en este atributo se grabarán directamente en la SE5.
ExemploEjemplo:
#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 do formulário ou do del formulario o del modelo, conforme o según el caso
cIdPonto := aParam[2] //ID do local de execução do ponto del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID do formulário 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 o 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
Exemplo Ejemplo do uso do ponto del punto de entrada alterando as tabelas que modifica las tablas FK5(Movimento BancárioMovimiento bancario) e y FK6(Valores acessorios adicionales - Multa, jurosintereses, descontodescuento, etc.)
User Function FINM010()
Local aParam := PARAMIXB
...
oSubModel := aParam[1] //Objeto do formulário ou do del formulario o del modelo, conforme o según el caso
cIdPonto := aParam[2] //ID do local de execução do ponto del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID do formuláriodel formulario
If cIdPonto == 'FORMPOS' // Na validação total do formulárioEn la validación total del formulario.
If cIdModel == 'FK1DETAIL' //Validação do formulário Validación del formulario FK1
If "VL" $ oSubModel:GetValue("FK1_TPDOC") //Condição para alteração de gravaçãoCondición para modificar la grabación
oSubModel:SetValue( "FK1_HISTOR", 'P.E. EM MVC,BAIXA FK1' ) // Novos Nuevos valores
EndIF
ElseIf cIdModel == 'FK6DETAIL' //Validação do formulário Validación del formulario FK6
If "DC" $ oSubModel:GetValue("FK6_TPDOC")
...
ElseIf cIdModel == 'FK5DETAIL' //Validação do formulário Validación del formulario FK5
If "VL" $ oSubModel:GetValue("FK5_TPDOC") //Condição para alteração de gravaçãoCondición para modificar la grabación
oSubModel:SetValue( "FK5_HISTOR", 'P.E. EM MVC,BAIXA FK5' ) // Novos Nuevos valores
EndIF
...