<< Clic para mostrar Tabla de Contenidos >> Obtener y utilizar valores de una entidad |
Modificar valores de atributos específicos de una entidad no relacionada al modelo de datos
Al actualizar atributos no relacionados con el modelo de datos, usando Me.getXPath("entity-list"), debe crear un atributo de Scope en la entidad de proceso. Esto le permitirá guardar temporalmente el i-ésimo registro de la lista de entidades y luego actualizarlo.
Un banco ofrece múltiples productos crediticios a sus clientes. Una vez que se aprueba y entrega un producto, se realizará un seguimiento mensual con el fin de evaluar si el cliente cumple con los pagos pactados a tiempo. Si el cliente cae en mora en repetidas ocasiones, todas sus solicitudes en progreso se penalizan y por lo tanto difícilmente serán aprobados.
Para identificar si una solicitud ha sido penalizada, se utiliza un atributo Booleano en el modelo de datos. Este atributo debe actualizarse en todas las solicitudes en progreso del cliente cuando este caiga en mora.
Los parámetros de esta función son:
•sEntityName: Nombre de la entidad.
•oEntitYKey: Id del registro específico dentro de la entidad.
•sAttribName: Nombre del atributo de la entidad.
•oAttribValue: Valor a asignar.
Incluya una expresión como una acción de actividad.
Primero obtenga la lista de casos en progreso del cliente que será penalizado.
Hemos creado un atributo Scope en el proceso, llamado kmCreditRequestTemp. Lo usaremos para almacenar el i-ésimo valor de cada solicitud.
Luego, actualizar el atributo que identifica si una solicitud es penalizada en cada solicitud.
//Obtain the list of cases of the user evaluated
var IdCustomerEvaluated=<CustomersFollowUp.CustomerEvaluated.Id>
var parameters = new FilterParameters();
parameters.AddParameter("@idRequester", IdCustomerEvaluated);
var ListOfRequests = Me.getXPath("entity-list('CreditRequest', 'idRequester=@idRequester')", parameters);
//Update each case
for (var i=0;i<ListOfRequests.size();i++)
{
//Use the Scope attribute to store the ith record, then update the penalized request
<CustomersFollowUp.kmCreditRequestTemp> = ListOfRequests[i].getXPath("Id");
<CustomersFollowUp.kmCreditRequestTemp.RequestPenalized> = true;
}
Obtener un valor de una entidad no relacionada en el Modelo de Datos
Suponga un proceso de Solicitud de crédito donde la cantidad máxima solicitada se basa en un estudio de riesgos. Cuando un Analista ingresa el puntaje de riesgo calculado en la tarea Capacidad de Pago y da clic en el botón guardar, el límite superior de la cantidad aprobada será mostrado.
La estimación de riesgo se guarda en una Entidad paramétrica donde cada rango tiene un monto máximo relacionado:
Ya que la entidad paramétrica no se relaciona directamente con el modelo de datos, necesitamos utilizar una función que busque el valor mencionado dependiendo del nivel de riesgo.
Vamos a utilizar la función getEntityAttrib. La función se encuentra en la categoría Navegación de Datos.
Esto pasará el puntaje de riesgo ingresado por el analista para determinar en que rango se encuentra y devolver la cantidad máxima que puede ser solicitada.
La sintaxis de la función es:
CHelper.getEntityAttrib("Entity","ValueToReturn","filterExpresion",filterParameters)
La entidad será la entidad paramétrica Riesgo.
El valor a retornar es la Cantidad máxima aprobada
La expresión del filtro es el rango general del riesgo ingresado.
Los parámetros del filtro son los valores del rango filtrado en la expresión del filtro.
En el cuarto paso del asistente, seleccione Acciones de la Actividad.
Dé clic en la tarea donde se va ha mostrar el límite superior aprobado y cree una expresión Al Guardar.
El puntaje del riesgo ingresado por el analista está guardado en el atributo Riesgo.
La cantidad máxima será asignada al atributo Cantidad Máxima.
La expresión deberá lucir de la siguiente forma:
//Crear el conjunto de parámetros de filtro
var parameters = new FilterParameters();
//Establecer como parámetro la cantidad máxima aprobada relacionada. Los nombres de los parámetros DEBEN comenzar con @
parameters.AddParameter("@RiskValue",<CreditRequest.Risk>);
//Obtener el puntaje de riesgo ingresado
<CreditRequest.MaximumAmount>=CHelper.getEntityAttrib("Risk","MaximumApprovedAmount","(LowerBound<=@RiskValue) AND (UpperBound>@RiskValue)",parameters);
Dé clic en Ok para guardar los cambios.
Cuando un Analista ingrese el puntaje de riesgo y dé clic en Guardar, la cantidad máxima correspondiente será mostrada.
Obtener valores de una colección
Suponga un proceso de Solicitud de compras donde tiene una colección de productos, donde cada producto tiene un único precio y una cantidad. El requerimiento es obtener el costo total de los productos de la orden.
Necesitamos iterar sobre los productos de la colección regresados por la consulta XPath. Por cada producto que vamos a obtener el precio total y sumarlo al costo total de la compra.
Para iterar sobre la colección, es necesario guardar el resultado de la consulta XPath en una variable y luego llamar la función GetValueAsCollection, pasando la variable de la consulta como parámetro. Una vez los valores han sido convertidos a un Array List, es posible navegar los valores de la colección utilizando la función FOR.
Usted puede ejecutar este ejemplo utilizando la función Over XPath. El ejemplo solo tiene como propósito brindar un ejemplo. |
La función GetValueAsCollection se encuentra en la categoría Navegación de Datos.
La sintaxis de la función es:
CHelper.GetValueAsCollection("Collection")
Los parámetros de la función son: el XPath de la colección obtenido, en este caso será la colección Productos Solicitados.
Cree una expresión Al guardar de la tarea donde se va a realizar el cálculo.
Agregue una expresión con el siguiente código.
var Collection=<PurchaseRequest.ProductsRequested>;
//Convierta el objeto de la colección en una colección para ser iterado.
var Array=CHelper.GetValueAsCollection(Collection);
//Inicialice la variable guardada en el Costo Total.
var Total=0
//Itere sobre la colección para obtener el precio de cada uno de los productos
for (var I=0; I < Array.size(); I++)
{
//Obtener cada elemento, luego guardar le precio y la cantidad.
var Element= Array.get(I);
var ElementPrice=Element.getXPath("UnitPrice") ;
var ElementQuantity=Element.getXPath("Quantity");
//Acumular el precio total en la variable Costo Total.
Total=Total+(ElementPrice*ElementQuantity);
}
// Asignar el costo total en el atributo mostrado.
<PurchaseRequest.TotalCost>=Total;
La colección se debe ver en el Portal de Trabajo de la siguiente manera.
Una vez la expresión es ejecutada, el costo total es mostrado.
Obtener valores de atributos específicos de una entidad
En un Contact Center, se debe enviar una notificación al jefe de la persona que trabaja en una solicitud, en caso de que el tiempo para atenderlo se exceda. Usted necesita entonces conocer la dirección de correo electrónico del jefe.
Para obtenerlo, usted puede utilizar la función CHelper.getAttrib. Esta función devuelve el valor de un atributo dado de un registro específico en una entidad.
Los parámetros de esta función son:
•sEntityName: Nombre de la entidad.
•oEntitYKey: Id del registro específico dentro de la entidad.
•sAttribName: Nombre del atributo de la entidad.
Y la sintaxis es:
CHelper.getAttrib(sEntityName, oEntityKey, sAttribName);
Incluya una expresión como una acción de actividad.
Obtenga el id del jefe del asignado actual utilizando la función Me.Case.WorkingCredential.UserProperties().
Utilice la función CHelper.getattrib() para obtener desde la entidad WFUser, la dirección de correo electrónico del usuario deseado. En este caso almacene este valor en un atributo del modelo de datos (BossEmail).
//Obtain the identifier of the current assignee user
var BossId=Me.Case.WorkingCredential.UserProperties["idbossuser"];
//Obtain the email of the user from the WFUser entity
<ContactCenter.BossEmail> = CHelper.getAttrib("WFUser",BossId,"Email");
Last Updated 9/13/2023 9:21:16 AM