Para el correcto funcionamiento del Totvs Recibo, debe ser configurado el puerto multiprotocolo

2.1  - Configuración del  puerto Multiprotocolo

La configuración del multiprotocolo solo está disponible   partir de la versión  20200214   de  LIB  y Appserver versión 7.00.191205P . 

A continuación se muestran los pasos para configurar:




Puede verificar si el puerto multiprotocolo fue habilitado correctamente mediante el console.log del ambiente como se muestra a continuación:



Con la configuración del puerto multiprotocolo, los parámetros MV_GCTPURL y MV_BACKEND ya no son necesarios .

2.2  - Habilitación de la rutina FINA998 en el menú de Financiero desde el módulo Configurador.


Ejemplo de configuración del menú de Financiero para habilitar la funcionalidad de la rutina Totvs Recibo:


Para Argentina . si el parámetro MV_FINA846 contiene .T.,  al ingresar a la rutina fina998, ingresará directamente a la antigua rutina que corresponde a Cobros Diversos modelo II (FINA840). Para los demás países de Mercado internacional, si el parámetro MV_FINA087 contiene  .T.,  al ingresar a la rutina fina998, ingresará directamente a la antigua rutina que corresponde a Cobros Diversos modelo I (FINA087A).

La funcionalidad de estos parámetros sólo se mantendrá para en la  versión 12.1.2210, después de esta versión ignorará dicha funcionalidad.

2.3  - Configuración de Disparadores de campo desde módulo Configurador.

Al momento de configurar un disparador, es importante tener en cuanta el uso de la nueva función FWFldGet para poder acceder a los valores que ya se tiene informados en la forma de pago(Variables de memoria). 

Para configurar un disparador utilizando la función FWFldGet se tienen los siguientes ejemplos:

CampoEL_TIPO
Secuencia

001

Cnt. DominioEL_PREFIXO
Tipo1 -Primario
Regla"TF"
Posiciona2 - No
Alias
Orden0
Clave
CondiciónFWFldGet('EL_TIPO') == "TF" (Se utiliza en lugar de M->EL_TIPO).  


CampoEL_NUMERO
Secuencia

001

Cnt. DominioEL_SIRECER
Tipo1 -Primario
ReglaIIF(ALLTRIM(M->EL_TIPO)=="RS",U_Sire(FWFldGet('FJT_CLIENT'),FWFldGet('EL_TIPO')),M->EL_SIRECER).
Posiciona2 - No
Alias
Orden0
Clave
Condición

Para poder acceder a los valores del encabezado solo se podrá utilizar la función FWFldGet, por ejemplo FWFldGet ('FJT_CLIENT'). Si se intenta acceder de la formar anterior "M→FJT_CLIENT" no será posible recuperar los valores.

Para los valores de la forma de pago se recomienda solo utilizar la función FWFldGet, por ejemplo FWFldGet ('EL_TIPO'). 

No será posible utilizar variables privadas dentro de la Regla, Clave o Condición del disparador.


Es importante contar con la siguiente actualización de disparador para ya no utilizar variables privadas en los disparadores:

Actualizaciones al Diccionario de datos

Tabla SEL - Recibos de Cobranza

Disparador para el campo EL_TIPO

Aplica para Argentina.

CampoEL_TIPO
Secuencia

003

Cnt. DominioEL_ENDOSSA
Tipo1 -Primario
Regla"2"  
Posiciona2 - No
Alias
Orden0
Clave
CondiciónALLTRIM (M->EL_TIPO) <> "CH"            


Aplica para Argentina.

CampoEL_TIPO
Secuencia

004

Cnt. DominioEL_TERCEIR
Tipo1 -Primario
Regla"1"  
Posiciona2 - No
Alias
Orden0
Clave
CondiciónALLTRIM (M->EL_TIPO) <> "CH"            


Disparador para el campo EL_TIPODOC

Aplica para Argentina, México, Bolivia, Chile, Colombia, Republica Dominicana, Ecuador, Paraguay ,Perú, Uruguay.


Campo

EL_TIPODOC

Secuencia001
Cnt. DominioEL_TPCRED 
Tipo1 -Primario
ReglaIIF(M->EL_TIPODOC$ IIf(FindFunction("FinCondTp"),FinCondTp("CredInm"),cCredInm),"1" ,M->EL_TPCRED)  
Posiciona2 - No
Alias
Orden0
Clave
Condición


Aplica para Argentina, México, Bolivia, Chile, Colombia, Republica Dominicana, Ecuador, Paraguay ,Perú, Uruguay.

Campo

EL_TIPODOC

Secuencia002
Cnt. DominioEL_TPCRED 
Tipo1 -Primario
Regla

IIF(M->EL_TIPODOC$ IIf(FindFunction("FinCondTp"),FinCondTp("CredMed"),cCredMed),"3",M->EL_TPCRED)   

Posiciona2 - No
Alias
Orden0
Clave
Condición

        

El disparador del campo EL_TIPODOC compara el Tipo Valor con el retorno de la función FinCondTp, la cual valida como primera opción, los tipos de títulos registados en la tabla de Tipos de Titulo (SES). Si la tabla no cuenta con registros, por default los comparará con  "TF /EF /CC /CD" y "CH|CC".

Si la tabla ya cuenta con registros, es necesario agregar el tipo de titulo "CH" para que el disparador funcione correctamente.


Disparador para el campo EL_BANCO

Aplica para Argentina.

Campo

EL_BANCO

Secuencia001
Cnt. DominioEL_MOEDA
Tipo1 -Primario
ReglaIif(FindFunction('Bcotrigger'),Bcotrigger(M->EL_BANCO+"-" +M->EL_AGENCIA+"-" +M->EL_CONTA),"1")     
Posiciona2 - No
Alias
Orden0
Clave
Condición

La configuración del multiprotocolo solo está disponible   partir de la versión  20200214   de  LIB  y Appserver versión 7.00.191205P . 

A continuación se muestran los pasos para configurar:




Puede verificar si el puerto multiprotocolo fue habilitado correctamente mediante el console.log del ambiente como se muestra a continuación:



Con la configuración del puerto multiprotocolo, los parámetros MV_GCTPURL y MV_BACKEND ya no son necesarios .


2.4  - Consideraciones para el uso de funciones en el campo Edición (X3_WHEN) y reglas de dependencia (XXA) 


Esto solo es un ejemplo de como configurar correctamente las reglas de dependencia (XXA) y/o modos de edición "When" (X3_WHEN)

CONFIGURACIÓN PARA PRUEBA DEL WHEN

  1. Por medio del Módulo Configurador (SIGACFG) :
    1. Crear el campo con las siguientes características:
      1. Sección campó 
        1. Campo = EL_WHEN
        2. Tipo = 1-Caracter
        3. Tamaño = 5
        4. Formato = @!
        5. Contexto = 1 - Si
        6. Propiedad = 1 - Modificar
      2. Sección informaciones
        1. Tit. Español = Campo when
        2. Desc. Español = Campos que se activa si se cumple el when
      3. Sección Opciones
        1. Inic. Estándar = ""
        2. Modo Edición = U_WHENRET()   

          Importante

          En el campo Modo Edición (X3_WHEN) puede ser ejecutada una función de usuario (Cómo se observa en el punto 2) o configurar directamente una condición lógica que retorne un valor booleano desde el Modo Edición del campo.

          Ejemplo de Función de usuario y condición lógica desde el módulo configurador: 

          1.  b.

          Ambos ejemplos retornan un valor booleano, el cual indica (.T.) si se activa el campo, ya que la condición se cumple o de lo contrario el campo permanece bloqueado (.F.)

      4. Sección Uso
        1. Usado (x)
        2. Browse (x)
  2. Compilar la siguiente función de usuario:
    1. Esta función tiene la funcionalidad de determinar si se bloquea o no un campo dependiendo el valor del campo Tipo Documento (EL_TIPODOC).

CONFIGURACIÓN PARA PRUEBA DE REGLAS DE DEPENDENCIA

  1. Por medio del Módulo Configurador (SIGACFG):
    1. Crear el campo (Contra dominio) con las siguientes características:
      1. Sección campó 
        1. Campo = EL_DEPEN
        2. Tipo = 1-Caracter
        3. Tamaño = 5
        4. Formato = @!
        5. Contexto = 1 - Si
        6. Propiedad = 1 - Modificar
      2. Sección informaciones
        1. Tit. Español = DEPENDENCIA
        2. Desc. Español = Campos que se activa si se cumple la regla de dependencia
      3. Sección Opciones
        1. Inic. Estándar =""  
      4. Sección Uso
        1. Usado (x)
        2. Browse (x)
  2. Realizamos la configuración del campo (Dominio) Valor (EL_VALOR):
    1. Editamos la pestaña Reglas de dependencia (XXA):
      1. Secuencia = 501
      2. Contra dominio = EL_DEPEN
      3. Tipo = 3 - Pre y Post validación (Para más información, consulte el siguiente link: XXA - Reglas de Dependencia entre Campos)


Pueden ser mezcladas reglas de dependencia con when, por ejemplo:

  • Se puede configurar un campo B (Contra dominio) que tenga una regla de dependencia de campo A (Dominio) pero a su vez el campo B tenga un WHEN (X3_WHEN) en donde indica que el campo Tipo Valor (EL_TIPODOC) retorne true solamente cuando se seleccione una forma de pago de tipo Efectivo. En este caso, el campo B solamente se activará cuando las combinaciones de estas dos condiciones sea verdadera (En caso de que él contra dominio tenga una validación (X3_VALID) está también tiene que ser validada y retornar un valor verdadero).