====== Configuración de scripts ======
La funcionalidad de scripts se usa para realizar validaciones o llamar a servicios web simples de tipo GET que ejecutan algún tipo de tarea en un sistema externo a Be Aware 360.
Estos scripts son utilizados como tipo de tareas en las [[configuracionlistachequeo#Configuración de listas de chequeo|listas de chequeo]].
Los scripts se realizan en lenguaje JavaScript.
Dentro de los scripts se pueden consultar campos de otros objetos de negocio, como son:
* **Caso:** Todas las variables de Caso.
* **Contacto:** Todas las variables de Contacto. Corresponde al Contacto relacionado al Caso.
* **Cuenta:** Todas las variables de Cuenta. Corresponde a la Cuenta relacionada al Caso.
* **Usuario:** Todas las variables de Usuario. Corresponde al Usuario asignado al Caso.
**Nota:** Al realizar llamados a la URL de tipo GET es importante usar dos funciones para reemplazar los espacios y los caracteres especiales, dado que Be Aware no los soporta:
* La función **encodeURI(var)** permite utilizar espacios y otros caracteres como ''{}'' ''()'' en un mensaje sin necesidad de modificarlos por su código ASCII correspondiente. Por ejemplo, colocar %20 en lugar de espacio.
* La función **variable.replace** reemplaza los caracteres especiales que no son soportados en una URL por los que sí son soportados. Por ejemplo, utilizarlo para reemplazar ñ por n, á por a, etc.
**Ejemplo de código:**
El siguiente código hace un llamado a un servicio web que envía un mensaje de SMS:
function execute(caso,stage,contacto,usuario,cuenta,service){
var jsonResult = {};
var telefono = contacto.fono[0];
if(telefono == null){
jsonResult.CODE = 200;
}else{
if(telefono.substring(0,1) == "+"){
telefono = telefono.substring(1,telefono.length);
}
var sms = "Estimado(a) "+contacto.NOMBRE+", hemos registrado tu caso con el número "+caso.REFNUM;
var sms = sms.replace(/á/gi,"a");
var sms = sms.replace(/é/gi,"e");
var sms = sms.replace(/í/gi,"i");
var sms = sms.replace(/ó/gi,"o");
var sms = sms.replace(/ú/gi,"u");
var sms = sms.replace(/ñ/gi,"n");
var uri = "https://urlget.com/envio-sms?subscriber="+telefono+"&mensaje="+sms;
var urlService = encodeURI(uri);
var salidaStr = service.executeService(urlService,null);
var salidaJSON = salidaStr;
if(salidaJSON == "OK_REQUEST"){
jsonResult.MESSAGE = 'MENSAJE SMS ENVIADO CON ÉXITO'+salidaJSON;
jsonResult.CODE = 200;
}else{
jsonResult.MESSAGE = 'ERROR DE ENVÍO SMS. REVISE EL NÚMERO DE CELULAR '+telefono+' '+salidaJSON;
jsonResult.CODE = 500;
}
}
return jsonResult;
}
===== Crear un script =====
Para crear un script, realice los siguientes pasos:
- Navegue a **Proceso** > **Script**.
- El sistema lista todos los scripts que se han creado en la herramienta.
- Clic en el botón **Crear** ubicado en la parte superior derecha de la pantalla.
- Ingrese el nombre con el que se identificará el script en el campo **Nombre**.
- Ingrese el código del script en lenguaje //JavaScript// en el campo **Script**.
- Para utilizar algún campo de un objeto, por ejemplo //Caso//, se debe utilizar de la siguiente forma: ''caso.nombreCampo''. Ejemplo: ''caso.REFNUM''.
- Para utilizar los custom fields de un objeto, por ejemplo //Caso//, se debe utilizar de la siguiente forma: ''caso.CF.nombreCustomField''. Ejemplo: ''caso.CF.nombre''.
- La función debe respectar el orden de los objetos:
- function execute(caso, stage, contacto, usuario, cuenta, service){}
- Clic en el botón **Guardar** ubicado en la parte superior derecha de la pantalla.
===== Modificar un script =====
Para modificar un script, realice los siguientes pasos:
- Navegue a **Proceso** > **Script**.
- El sistema lista todos los scripts que se han creado en la herramienta.
- Clic en el botón **Modificar** ubicado al final del registro script que desea modificar.
- Modifique el nombre con el que se identificará el script en el campo **Nombre**.
- Modifique el código del script en lenguaje javascript en el campo **Script**.
- Para utilizar algún campo de un objeto, por ejemplo //Caso//, se debe utilizar de la siguiente forma: ''caso.nombreCampo''. Ejemplo: ''caso.REFNUM''.
- Para utilizar los custom fields de un objeto, por ejemplo //Caso//, se debe utilizar de la siguiente forma: ''caso.CF.nombreCustomField''. Ejemplo: ''caso.CF.nombre''.
- La función debe respectar el orden de los objetos:
- function execute(caso, stage, contacto, usuario, cuenta, service){}
- Clic en el botón **Guardar** ubicado en la parte superior derecha de la pantalla.
===== Eliminar un script =====
Para eliminar un script, realice los siguientes pasos:
- Navegue a **Proceso** > **Script**.
- El sistema lista todos los scripts que se han creado en la herramienta.
- Clic en el botón **Eliminar** ubicado al final del registro de script que desea eliminar.
- Clic nuevamente en el botón **Eliminar** para confirmar la eliminación del registro.
===== Variables para utilizar en un script =====
==== Uso de las variables ====
* Para usar las variables según los objetos, se utiliza la nomenclatura ''{objeto}.{variable}''.
* Por ejemplo:
* **Caso:** caso.REFNUM
* **Contacto:** contacto.NOMBRE
* **Usuario:** usuario.USER
* **Cuenta:** cuenta.RAZONSOCIAL
* Para utilizar los campos personalizados, se utiliza la nomenclatura ''{objeto}.CF.{nombrecampopersonalizado}''.
* Por ejemplo:
* **Caso:** caso.CF.nombre
* **Contacto:** contacto.CF.fechainicio
* Las variables de correo corresponde a un arreglo de 3 valores. Para utilizar esta variable, se utiliza de la siguiente manera:
* **Primer email:** contacto.email[0]
* **Segundo email:** contacto.email[1]
* **Tercer email:** contacto.email[2]
* Las variables de teléfono (fono) corresponde a un arreglo de 3 valores. Para utilizar esta variable, se utiliza de la siguiente manera:
* **Primer teléfono:** contacto.fono[0]
* **Segundo teléfono:** contacto.fono[1]
* **Tercer teléfono:** contacto.fono[2]
==== Variables aceptadas para objeto Caso ====
Las variables corresponden a los valores del **Caso** desde donde se ejecuta el script.
* ID
* IDESTADO
* REFNUM
* IDESTADODESC
* IDCONTACTO
* IDCUENTA
* IDCUENTADESC
* IDCONTACTODESC
* IDPRIORIDAD
* IDPRIORIDADDESC
* IDPRIORIDADCOLOR
* IDUSUARIOASIGNADO
* IDUSUARIOASIGNADODESC
* IDTIPO
* IDTIPODESC
* IDSUBTIPO
* IDSUBTIPODESC
* IDSLA
* CF
* ORIGEN
* IDSLADESC
* IDPRODUCTO
* IDPRODUCTODESC
* IDSTAGEACTUAL
* IDSTAGEACTUALDESC
* IDWORKFLOW
* IDWORKFLOWDESC
* ASUNTO
* FECHACREACION
* IDUSUARIOCREACION
* IDUSUARIOCREACIONDESC
* FECHAMODIFICACION
* IDUSUARIOMODIFICACION
* IDUSUARIOMODIFICACIONDESC
* DESTACADO
* DUEDATE
* PRIMERPASO
* FINGRESO
* SLAVALUE
* PORCENTAJE
* FINALIZADO
* SISTEMAEXTERNO
* IDINTERACCION
* FECHAMODIFICACION
* FECHAREAPERTURA
==== Variables aceptadas para objeto Contacto ====
Las variables corresponden a los valores del **Contacto asociado al Caso** desde donde se ejecuta el script:
* NOMBRE
* APELLIDO
* IDENTIFICADOR
* CARGO
* TITULO
* DIRECCION
* IDCUENTA
* IDCUENTADESC
* IDTIPO
* IDSLA
* CF
* FECHANACIMIENTO
* PASS
* FACEBOOK
* TWITTER
* INSTAGRAM
* EMAILCP
* email
* fono
* COMPANY
* fonocp
* GRUPOSKILLS
* GRUPOCUENTAS
* GRUPOCUENTAS
* FECHACREACION
* FECHAMODIFICACION
* ORIGIN
==== Variables aceptadas para objeto Usuario ====
Las variables corresponden a los valores del **Usuario asignado al Caso** desde donde se ejecuta el script:
* NOMBRE
* APELLIDO
* USER
* ISOPAIS
* CF
* PASS
* EMAIL
* IDEMPRESA
* IDEMPRESADESC
* IDROL
* IDROLDESC
* IDPERMISO
* IDPERMISODESC
* IDUSUARIO
* ACCESO
* IDGRUPO
* IDGRUPODESC
* AVATAR
* PORTADA
* CANTIDADCASOS
* MULTISESSION
* NOTIFICACIONACTIVA
* TIMEZONE
* LANGUAGE
* FECHACREACION
* FECHAMODIFICACION
* GRUPOSKILLS
* ESTADO
* LATITUD
* LONGITUD
* FECHAPOSICION
==== Variables aceptadas para objeto Cuenta ====
Las variables corresponden a los valores de la **Cuenta asociada al Caso** desde donde se ejecuta el script:
* IDENTIFICADOR
* RAZONSOCIAL
* GIRO
* DIRECCION
* TELEFONO
* CORREO
* IDSLA
* IDSLADESC
* IDREPRESENTANTE
* IDREPRESENTANTEDESC
* GRUPOCONTACTOS
* FACEBOOK
* INSTAGRAM
* PAGINAWEB
* TWITTER
* XPOS
* YPOS
* ISOPAIS
* FECHACREACION
* FECHAMODIFICACION
* CF
* GRUPOCONTACTOS