====== 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]]. **Nota:** Los scripts que se usan para las listas de chequeo corresponden a métodos de solo lectura (no ejecutan acción "save"), por lo que si en el script se ejecuta alguna función que modifique el objeto Caso (update), este no se aplicará. 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