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, también permiten modificar directamente los datos del caso y del contacto relacionado. Esta funcionalidad puede utilizarse para actualizar información durante la ejecución de tareas.

Nota: Los scripts son utilizados como tipo de tareas en las 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;
}

Ejemplo de código Uso avanzado de API:

El siguiente código hace un llamado a un servicio web de forma avanzada, pudiendo incorporar diferentes métodos, body y headers, para la obtención de un token en Be Aware 360:

function execute(caso,stage,contacto,usuario,cuenta,service){
	var jsonResult = {}
	var method = "POST"
	var urlBase = "https://api.beaware360.com"
	var urlEndpoint = "/ba360/apir/v10_5/login/auth"
 
	var stringHeaders = "{\"Content-Type\":\"application/json\"}"
	var stringData = "{\"pass\":\"password\", \"user\":\"username\", \"company\":\"ba360\"}"
 
	var salidaStr = service.executeServiceUtil(method,stringHeaders,urlBase,urlEndpoint,stringData)
	jsonResult.MESSAGE = salidaStr.data
	jsonResult.CODE = salidaStr.status
	return jsonResult	
}

Crear un script

Para crear un script, realice los siguientes pasos:

  1. Navegue a Proceso > Script.
  2. El sistema lista todos los scripts que se han creado en la herramienta.
  3. Clic en el botón Crear ubicado en la parte superior derecha de la pantalla.
  4. Ingrese el nombre con el que se identificará el script en el campo Nombre.
  5. Ingrese el código del script en lenguaje JavaScript en el campo Script.
    1. Para utilizar algún campo de un objeto, por ejemplo Caso, se debe utilizar de la siguiente forma: caso.nombreCampo. Ejemplo: caso.REFNUM.
    2. 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.
    3. La función debe respectar el orden de los objetos. La firma de la función depende de desde dónde se invoque el script:
      1. Como tarea de tipo Script en una lista de chequeo: function execute(caso, script, contacto, usuario, cuenta, service). El segundo parámetro es el registro del script, no el paso del flujo.
      2. Asociado a un Contacto, una Cuenta, un Usuario o un Caso: function execute(usuario, cuenta, contacto, caso, service).
      3. Importante: los parámetros se enlazan por posición, no por nombre. Un script escrito para una de las dos formas y reutilizado en la otra no falla: recibe los objetos cambiados de lugar y opera sobre datos equivocados. Antes de reutilizar un script del catálogo en otro punto, ajuste el orden de los parámetros.
      4. Nota: los eventos de paso del flujo —preIn, postIn, preOut, preSave y postSave— son funciones distintas de execute y sí reciben el paso: (caso, stage, contacto, usuario, cuenta, service).
      5. Nota: cuando el script se asocia a un Contacto, a una Cuenta o a un Usuario, solo llega con datos el objeto que se está creando o modificando. Los demás llegan vacíos.
  6. 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:

  1. Navegue a Proceso > Script.
  2. El sistema lista todos los scripts que se han creado en la herramienta.
  3. Clic en el botón Modificar ubicado al final del registro script que desea modificar.
  4. Modifique el nombre con el que se identificará el script en el campo Nombre.
  5. Modifique el código del script en lenguaje javascript en el campo Script.
    1. Para utilizar algún campo de un objeto, por ejemplo Caso, se debe utilizar de la siguiente forma: caso.nombreCampo. Ejemplo: caso.REFNUM.
    2. 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.
    3. La función debe respectar el orden de los objetos:
      1. function execute(caso, stage, contacto, usuario, cuenta, service){}
  6. 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:

  1. Navegue a Proceso > Script.
  2. El sistema lista todos los scripts que se han creado en la herramienta.
  3. Clic en el botón Eliminar ubicado al final del registro de script que desea eliminar.
  4. 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

Límites de ejecución

El script se ejecuta en un entorno restringido:

  1. No puede acceder a clases de Java. Dispone de JavaScript y de los objetos que recibe como parámetros, entre ellos service para invocar servicios externos.
  2. La ejecución se corta a los 60 segundos. Superado el plazo, el paso no avanza.

Importante: el bloqueo de clases Java es posterior a los ejemplos publicados en esta página. Un script existente que resuelva llamadas externas construyendo objetos de Java en lugar de usar service deja de funcionar. Revíselos antes de la próxima actualización.