====== 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