Leandro Ezequiel Lanfranco

All generations.

fix invalid codeTue, 14 Mar 2023

if laSolicitud.solicitantes.solicitante.count is known then { for each Solicitante in laSolicitud.solicitantes.solicitante such that it.actividades.actividad.count is known do { i = it.nroSolicitante; // seteo variable score = 0; pd = 0; // calculo PD de cada DEUDOR APORTANTE if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento = 0 ) then { // uso APPLICATION SCORE (incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoApplication.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; else { if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento > 0 ) then { // uso BEHAVIOR SCORE (no incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoBehavior.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; }; // guardo PD elSetVariablesMotor.integrantes.integrante[i].probDefault = pd; }; };

FIX INVALID CODE:

fix invalid codeTue, 14 Mar 2023

i is an integer; k is an integer; tipoCda is an integer; tipoSolicitado is a tiposProductosSolicitados; solicitaInclusion is a boolean initially false; solicitaInclucionTC is a boolean initially false; solicitaInclucionCC is a boolean initially false; solicitaInclucionCA is a boolean initially false; solicitaModificacion is a boolean initially false; solicitaProcrear is a boolean initially false; solicitaPpProcrearDamnificados is a boolean initially false; solicitaDesaUrbanisticosLCS is a boolean initially false; solicitaNosisHDNProcrear is a boolean initially false; laCampaña is some CampañaVigente initially a CampañaVigente; print("|\n funcion : Consulto Nosis "); // levanto tipo producto solicitado tipoSolicitado = DefinoTipoProductoSolicitado(); // determino si se trata de solicitud de inclusion/modificacion // solicita Inclusiones? if laSolicitud.productosSolicitados.inclusionesSolicitadas.inclusionSolicitada.count is known then { if laSolicitud.productosSolicitados.inclusionesSolicitadas.inclusionSolicitada.count > 0 then { for each InclusionSolicitada in laSolicitud.productosSolicitados.inclusionesSolicitadas.inclusionSolicitada do { if it.tipoInclusion = tiposInclusion.ADICIONAL_TARJETA then solicitaInclucionTC = true; if it.tipoInclusion = tiposInclusion.COTITULAR_CUENTA then solicitaInclucionCC = true; if it.tipoInclusion = tiposInclusion.COTITULAR_CAJA_AHORRO then solicitaInclucionCA = true; solicitaInclusion = true; }; }; }; // solicita Modificaciones? if laSolicitud.productosSolicitados.modificacionesSolicitadas.modificacionSolicitada.count is known then { if laSolicitud.productosSolicitados.modificacionesSolicitadas.modificacionSolicitada.count > 0 then { for each ModificacionSolicitada in laSolicitud.productosSolicitados.modificacionesSolicitadas.modificacionSolicitada do { solicitaModificacion = true;}; }; }; //El segundo integrante es HDN entonces le consulto Nosis        //Para todo Procrear donde aplicaPoliticaProcrear sea true. if laSolicitud.solicitantes.solicitante.count is known then    { for each Solicitante in laSolicitud.solicitantes.solicitante   do    {        k = it.nroSolicitante; if (k = 1) then {            if ( elSetVariablesMotor.integrantes.integrante[k].tipoRolIntegrante = tiposRolSolicitante.NO_DEUDOR and          elSetVariablesMotor.integrantes.integrante[k].flagHipotecanteNoDeudor = true and            aplicaPoliticaProcrear2020)             then {               solicitaNosisHDNProcrear = true;               };                 };             };         } //Defino si solicita un Procrear if laSolicitud.productosSolicitados.prestamosSolicitados.prestamoSolicitado.count is known then { if laSolicitud.productosSolicitados.prestamosSolicitados.prestamoSolicitado.count > 0 then { for each PrestamoSolicitado in laSolicitud.productosSolicitados.prestamosSolicitados.prestamoSolicitado do { if it.subTipoPrestamo = subTiposPrestamo.STP_ANSES then { solicitaProcrear = true; if (it.tipoPrestamo = tiposPrestamo.PS_PRESTAMO_PERSONAL and (destinoFondos = destinosFondos.LIBRE or negocio = negocios.PERSONAL_PROCREAR_DAMNIFICADOS_ROSARIO or negocio = negocios.PERSONAL_PROCREAR_DAMNIFICADOS_ROSARIO_SUR) ) then solicitaPpProcrearDamnificados = true; }; }; }; }; // Defino si solicita Desarrollos Urbanisticos o Lote Con Servicios if (laSolicitud.informacionProcrear.esPreventa or laSolicitud.informacionProcrear.solicitaPhFSP or laSolicitud.informacionProcrear.solicitaPhLoteConServicios) then solicitaDesaUrbanisticosLCS = true; // ESTANDAR if flagPreaprobado = false then { if laSolicitud.solicitantes.solicitante.count is known then { for each Solicitante in laSolicitud.solicitantes.solicitante do { i = it.nroSolicitante; // Para PP Descuento de Haberes solo control al titular if (esPPDescuentoHaberes = false or (esPPDescuentoHaberes = true and i = 0 )) then { // consulto Nosis - TITULAR (salvo inclusiones), DEUDORES (incl COTITULAR de inclusion), CONYUGE (del Titular - salvo inclusiones si el rol no es adicional) y ADICIONALES TC // [ no consulto solicitudes no crediticias (a menos que se trate de inclusiones/modificaciones) ] // Para HML tambien consulto al conviviente si es aportante (o adicional)  // Se incluye que para HDN cuando es Procrear, consulte si o si Nosis a pedido de políticas y Riesgo Crediticio MOTOR-1052 if ( ( ( (i = 0 and solicitaInclucionTC = false) and (i = 0 and solicitaInclucionCA = false) ) or ( i = 0 and solicitaInclucionCC = true) or elSetVariablesMotor.integrantes.integrante[i].tipoRolIntegrante = tiposRolSolicitante.DEUDOR or elSetVariablesMotor.integrantes.integrante[i].tipoRolIntegrante = tiposRolSolicitante.NO_DEUDOR_ADICIONAL_TC or solicitaNosisHDNProcrear = true or (it.relacionTitular = relacionesTitular.CONYUGE and solicitaInclusion = false) or (it.relacionTitular = relacionesTitular.CONVIVIENTE and elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.varIntermedias.segmento = segmentos.SEGMENTO_CONSUMO) ) and ( tipoSolicitado <> tiposProductosSolicitados.NO_CREDITICIOS or (tipoSolicitado = tiposProductosSolicitados.NO_CREDITICIOS and (solicitaInclusion = true or solicitaModificacion = true) ) ) ) then { // defino tipoCda (el 1 y el 4 corresponden al tipoCda genérico, el 2 corresponde al tipoCda adicional_tc) // Para Cod de Decuento y PP Inundaos voy al Cda de Adicionales Tc // Para HML cuando es aportante voy al cda generico //11009 corresponde a BuhoBank. if ( (elSetVariablesMotor.integrantes.integrante[i].tipoRolIntegrante = tiposRolSolicitante.NO_DEUDOR_ADICIONAL_TC or esPPDescuentoHaberes is true or solicitaPpProcrearDamnificados is true) and not (elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.varIntermedias.segmento = segmentos.SEGMENTO_CONSUMO) ) then tipoCda = 11002; else { if laSolicitud.tipoInvocacion = tiposInvocacion.BUHOBANK_FULL then tipoCda = 11009; else { if (aplicaPoliticaProcrear2020 ) then tipoCda = 11008; else { // Para Procrear voy a un nuevo CDA más flexible que el de HML if solicitaProcrear then { // Desarrollos Urbanisticos y Lote Con Servicios va a un CDA diferencial if solicitaDesaUrbanisticosLCS is true then tipoCda = 11007; else tipoCda = 11006; }; else { // Para HML voy a al 11001 (es igual al 11004 pero sin Referencias Comerciales) if elSetVariablesMotor.varIntermedias.segmento = segmentos.SEGMENTO_CONSUMO then tipoCda = 11001; else { // Si el CDA 11001 está en el challenger voy al nuevo CDA 11004 if ConsultoChallenger("11001") then tipoCda = 11004; else tipoCda = 11001; }; }; }; }; }; // si no consulté en una corrida anterior (lo determino viendo si tengo o no las nosisVariables [ informe y resolucion] y el nosisInforme) // o pasó un tiempo 'considerable' desde la última corrida de la solicitud (la fecha de vigencia < fecha de proceso // la regla de fecha de vigencia = fecha de proceso se permite la re consulta si da RECHAZAR por si se equivocaron al cargar los datos en la primer corrida) //... consulto [nuevamente] if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables is known and elSetVariablesMotor.integrantes.integrante[i].nosisInforme is known ) then { if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables.nosisInfoHtml is known and elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA is known and elSetVariablesMotor.integrantes.integrante[i].nosisVariables.resolucionNosis is known and elSetVariablesMotor.integrantes.integrante[i].nosisInforme.item.count is known ) then { if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables.nosisInfoHtml = "" or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.resolucionNosis = resolucionesNosis.NOSIS_NA or elSetVariablesMotor.integrantes.integrante[i].nosisInforme.item.count = 0 or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA <> tipoCda or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fechaVigencia <= fechaProceso or forzadoBuroExterno = true or ( aplicaPoliticaProcrear2020 and elSetVariablesMotor.integrantes.integrante[i].nosisVariables.compromisoSF is unknown ) or ( aplicaPoliticaProcrear2020 and fechaProceso > '10/04/2021' and fechaProceso < '10/21/2021') ) then { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; }; else { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; }; else { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; // si consulté Nosis para un solicitante entonces registro esto en el flag_Nosis (para luego controlarle antecedentes) elSetVariablesMotor.integrantes.integrante[i].flag_Nosis = true; }; // Fin condiciones de Producto }; // Fin condicion Descuento de Haberes }; }; }; // PREAPROBADOS else { if laSolicitud.solicitantes.solicitante.count is known then { for each Solicitante in laSolicitud.solicitantes.solicitante do { i = it.nroSolicitante; laCampaña = elSetVariablesMotor.integrantes.integrante[0].campañaVigente; // consulto Nosis - ADICIONALES TC y/o // DESHABILITADO: TITULARES de prod crediticio Campañas NO Cross Sell con prescreening vencido y que No sean Pre-Calificados (solo guardo informacion pero no realizo controles por ahora) - if elSetVariablesMotor.integrantes.integrante[i].flagAdicionalTc = true // if ( elSetVariablesMotor.integrantes.integrante[i].flagAdicionalTc = true or // ( i = 0 and tipoSolicitado <> tiposProductosSolicitados.NO_CREDITICIOS and laCampaña.fechaValidezPrescreening < fechaProceso and laCampaña.tipoProspecto <> tiposProspectoCampañaVigente.CV_PRE_CALIFICADO and // (laCampaña.poblacion = poblacionesCampañaVigente.CV_MERCADO_ABIERTO or laCampaña.poblacion = poblacionesCampañaVigente.CV_MERCADO_ABIERTO_BANCARIZADOS or laCampaña.poblacion = poblacionesCampañaVigente.CV_EX_CLIENTES or laCampaña.poblacion = poblacionesCampañaVigente.CV_INVERSORES or laCampaña.poblacion = poblacionesCampañaVigente.CV_PLANES_SUELDO or laCampaña.poblacion = poblacionesCampañaVigente.CV_CROSS_SELL_PH or laCampaña.poblacion = poblacionesCampañaVigente.CV_CROSS_SELL_CC ) ) ) then { // defino tipoCda (el 2 corresponde al tipoCda adicional_tc) if elSetVariablesMotor.integrantes.integrante[i].flagAdicionalTc = true then tipoCda = 11002; else { // Si el CDA 11001 está en el challenger voy al nuevo CDA 11004 if ConsultoChallenger("11001") // Acá poner el nuevo CDA 11004 then tipoCda = 11004; else tipoCda = 11001; }; // si no consulté en una corrida anterior (lo determino viendo si tengo o no las nosisVariables [ informe y resolucion] y el nosisInforme) // o pasó un tiempo 'considerable' desde la última corrida de la solicitud (la fecha de vigencia <= fecha de proceso -ojo: no sacar el =) //... consulto [nuevamente] if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables is known and elSetVariablesMotor.integrantes.integrante[i].nosisInforme is known ) then { if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables.nosisInfoHtml is known and elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA is known and elSetVariablesMotor.integrantes.integrante[i].nosisVariables.resolucionNosis is known and elSetVariablesMotor.integrantes.integrante[i].nosisInforme.item.count is known ) then { if ( elSetVariablesMotor.integrantes.integrante[i].nosisVariables.nosisInfoHtml = "" or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.resolucionNosis = resolucionesNosis.NOSIS_NA or elSetVariablesMotor.integrantes.integrante[i].nosisInforme.item.count = 0 or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA <> tipoCda or elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fechaVigencia <= fechaProceso or forzadoBuroExterno = true ) then { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; }; else { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; }; else { // obtengo informacion de Nosis (el 1 corresponde al tipoCda genérico) ObtengoInformacionNosis( i, tipoCda); // Actualizo el CDA consultado elSetVariablesMotor.integrantes.integrante[i].nosisVariables.tipoCDA = tipoCda; if elSetVariablesMotor.integrantes.integrante[i].nosisVariables.fuenteInforme = "EXTERNA" then elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas = elSetVariablesMotor.integrantes.integrante[i].nosisVariables.cantConsultas +1; // mapeo en SetVariablesMotor elSetVariablesMotor.integrantes.integrante[i].nosisInforme = elNosisInforme; }; // si consulté Nosis para un solicitante entonces registro esto en el flag_Nosis (para luego controlarle antecedentes) elSetVariablesMotor.integrantes.integrante[i].flag_Nosis = true; }; }; }; };

--- **(1) Por ejemplo, el parámetro `nroSolicitante` de la función `ObtengoInformacionNosis` no puede ser de tipo `integer` porque la función `ObtengoInformacionNosis` admite que `nroSolicitante` sea una variable no inicializada. En el lenguaje C, por ejemplo, si no se inicializa una variable numérica, ésta toma el valor 0. En el lenguaje Java, la variable numérica tomaría el valor 'null' (ya que la variable numérica es de tipo `Integer` y no de tipo `int`). En la regla, el valor 'null' no puede asignarse a una variable numérica, por lo que se generaría un error.** **(2) La función `ObtengoInformacionNosis` puede devolver valores diferentes de `null` para el parámet

code to explanationThu, 02 Mar 2023

if laCampaña.montoPrestamoPersonal is known then { if laCampaña.montoPPAdelanto > 10000 then { cuotaSolicitada = 1; plazoSolicitado = 1; subTipoPrestamo = subTiposPrestamo.STP_ADELANTO_SUELDO; solicitaAdelantoSueldo = true; } }

The if statement takes a condition and a block of code as the two arguments. The condition is the logical expression evaluated to be true or false. If the condition evaluates to true, the code block is executed. If the condition evaluates to false, the code block is ignored.

fix invalid codeTue, 14 Mar 2023

i is an integer ; e is a real ; score is a real ; // piso y tope para que el score no de overflow al convertirse en pd... piso is a real initially -20; tope is a real initially 20; pd is a real; print("|\n funcion : corabilidad de Default "); // seteo valor variable e e = Math.E; // determino PD de cada integrante DEUDOR APORTANTE según el Score correspondiente (definido por la variable pesoComportamiento) if laSolicitud.solicitantes.solicitante.count is known then { for each Solicitante in laSolicitud.solicitantes.solicitante such that it.actividades.actividad.count is known do { i = it.nroSolicitante; // seteo variable score = 0; pd = 0; // calculo PD de cada DEUDOR APORTANTE if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento = 0 ) then { // uso APPLICATION SCORE (incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoApplication.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; else { if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento > 0 ) then { // uso BEHAVIOR SCORE (no incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoBehavior.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; }; // guardo PD elSetVariablesMotor.integrantes.integrante[i].probDefault = pd; }; }; // defino PD TOTAL como PD del Titular( ver comments) //SOLO BUHO BANK NO LE DEFINO PD if (laSolicitud.canalVenta = canalesVenta.CV_BUHOBANK_FULL or laSolicitud.canalVenta = canalesVenta.CV_BUHOBANK_LEADS) then {elSetVariablesMotor.integrantes.integrante[0].probDefault = 0}; elSetVariablesMotor.varIntermedias.probDefaultTotal = elSetVariablesMotor.integrantes.integrante[0].probDefault; print("");

## Install

fix invalid codeTue, 14 Mar 2023

if laSolicitud.solicitantes.solicitante.count is known then { for each Solicitante in laSolicitud.solicitantes.solicitante such that it.actividades.actividad.count is known do { i = it.nroSolicitante; // seteo variable score = 0; pd = 0; // calculo PD de cada DEUDOR APORTANTE if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento = 0 ) then { // uso APPLICATION SCORE (incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoApplication.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; else { if ( elSetVariablesMotor.integrantes.integrante[i].flagDeudorAportante = true and elSetVariablesMotor.integrantes.integrante[i].pesoComportamiento > 0 ) then { // uso BEHAVIOR SCORE (no incluye Score Veraz) score = MinR2(MaxR2(elSetVariablesMotor.integrantes.integrante[i].scoreInternoBehavior.resultado, piso), tope); // calculo PD ( probabilidad de default ) pd = ( 1 / ( 1 + Math.Pow(e , score))); }; }; // guardo PD elSetVariablesMotor.integrantes.integrante[i].probDefault = pd; }; };

language from codeThu, 09 Mar 2023

Function KfxLoadValidation ( VerifyBatch As Integer, _ NumberOfDocsInBatch As Integer ) As Integer On Error GoTo Failure If (VerifyBatch <> 0) Then KfxOperation = "Verify" Else KfxOperation = "Index" End If KfxLoadValidation = NoError Exit Function Failure: KfxLoadValidation = FatalError Exit Function End Function REM ======================================================================== REM Function handling termination of this module. REM This function is called upon end of processing for the batch. The REM function is called once per batch and is the last function to be REM called from this module. REM ------------------------------------------------------------------------ Function KfxUnloadValidation ( ) As Integer On Error GoTo Failure KfxUnloadValidation = NoError Exit Function Failure: KfxUnloadValidation = FatalError Exit Function End Function

#### Output

fix invalid codeTue, 14 Mar 2023

//Se personaliza mensaje de salida para informar que el solicitante fue analizado para el Análisis Crediticio de Canal Amarillo.. if ((laSolicitud.flagSolicitaComprobarIngresos = true and laSolicitud.flagSolicitaAprobacionCentralizada = true and elSetVariablesMotor.integrantes.integrante[i].nroIntegrante = 0) and (laSolicitud.canalVenta = canalesVenta.CV_HOME_BANKING or laSolicitud.canalVenta = canalesVenta.CV_MOBILE)) then { elSetVariablesMotor.resolucion.observacionesCanal = elSetVariablesMotor.resolucion.observacionesCanal "|\n " " " msg2 "" it.identidad.apellido ", " it.identidad.nombres " " msg4; };

//Se personaliza mensaje de salida para informar que el solicitante fue analizado para el Análisis Crediticio de Canal Amarillo.. if ((laSolicitud.flagSolicitaComprobarIngresos = true and laSolicitud.flagSolicitaAprobacionCentralizada = true and elSetVariablesMotor.integrantes.integrante[i].nroIntegrante = 0) and (laSolicitud.canalVenta = canalesVenta.CV_HOME_BANKING or laSolicitud.canalVenta = canalesVenta.CV_MOBILE)) then { elSetVariablesMotor.resolucion.observacionesCanal = elSetVariablesMotor.resolucion.observacionesCanal "|\n " " " msg2 "" it.identidad.apellido ", " it.identidad.nombres " " msg4;

Questions about programming?Chat with your personal AI assistant