external_info (Relación con otros CFOs)
En numerosas ocaciones se necesita visualizar registros o entidades de un CFO relacionado con el que estamos modificando. Por ejemplo, una entidad EMPRESA tiene asociadas n-entidades CONTACTOS y nos gustaría poder visualizar dicha información en un formato de listado de contactos a los que podamos acceder.
Relacionando un CFO con otros
En la definición de campos crearemos un campo virtual con el atributo ''
{"fields": ,
"VirtualProposals": {
"name": "Proposals",
"type": "virtual",
"external_info": "datastore",
"entity": "CloudFrameWorkCRMProposals",
"linked_field": "CompanyId",
"field_value": "KeyName",
"fields": "*",
"where":{"field1":"value1",..},
"summary_line": "{{ProposalId}}: {{Title}} [{{Status}}] {{TotalBase}}",
"allow_insert":true,
"external_new_entity_url": "https://api.cloudframework.io/core/cfo/cfi/CloudFrameWorkCRMProposals/insert?filter_CompanyId={{KeyName}}"
}
}
Atributo | Descripción | Valor de emeplo |
---|---|---|
* external_info= | Indica que se va a mostrar información de otro CFO. El valor puede ser datastore o ds,database o db. Para los casos de db, necesitaremos el campo "cfo_id_field" donde relacionamos el id de la tabla donde queremos obtener el dato. Documentación | {"external_info":"datastore"} |
*entity | Nombre del CFO con el que vincularlse | {"entity":"CloudFrameWorkCRMProposals"} |
*linked_field | Nombre del campo o atribute del CFO que será el que hará de enlace. La query buscará registros o entidades del campo que define linked_field = <valor> | {"linked_field": "CompanyId"} |
[*]field_value | Indica qué campo del CFO actual se va a utilizar para que su valor enlace con el linked_field. En caso de que este atributo no se indique se deberá indicar linked_value | {"field_value": "KeyName"} |
[*]linked_value | Opción alternativa a field_value es linked_value, indicando un valor o valores estáticos. Esto sirve cuando queremos enlazar uno o una serie de registros específicos. Si se indica field_value y linked_value prevalecerá feld_value. linked_value puede ser un array de valores. | {"linked_value":"pr-25"} |
*fields | Which fields it will retrieve to be used | {"fields":"*"} |
summary_line | Indica cómo la información se mostrará en cada registro que devuelva la relación. Es un string que contiene valores {{campo}} que se sustituirán por el valor del del campo o atributo del CFO entity | {"summary_line": "{{ProposalId}}: {{Title}} [{{Status}}] {{TotalBase}}"} |
allow_insert | Si tiene un valor true, permitirá que se inserten nuevos registros en el CFO entity | {"allow_insert":true} |
external_new_entity_url | Opcionalmente se puede indicar que para insertar un nuevo registro se puede llamar a un API específico que deberá devolver una estructura de CFO. | "external_new_entity_url": "https://url}" |
where[] | [opcional] Permite meter una array de clave-valor que se unirá a la condición de la consulta | {"where":{"field1":1,"field2":"other"}} |
summary_line
Si seleccionamos "summary_line", es decir , ponemos la variable summary_line en la definición de Virtualield, seguida del texto que queremos que muestre por cada valor que nos va a devolver la consulta. Lo campos de la tabla a mostrar, deberán ir entre {{}}
"summary_line": "El {{HIPOTECH_Project_Note_Created}}] se cambio el IBAN por {{HIPOTECH_Project_Note_StaffManager_id}}",
external_table
El resultado de un external_info se pueden configurar para que la visualización de los datos sea en modo tabla. Para ello hay que añadir una serie de parámetros de configuración que se detallan a continuación.
IMPORTANTE: Esta funcionalidad solo está disponible si no existe el parámetro de configuración "summary_line"
Elemento | Tipo | Descripción |
---|---|---|
external_table | Object | Objeto de configuración para mostrar los datos como tipo tabla |
external_table.cols | Array | Será un array de objetos de configuración de las columnas a mostrar en la tabla. Cada objeto del array tiene los siguientes parámetros de configuración: name: (String)Nombre que se mostrará en la columna field: (String)La información que se mostrarán en la columna. Este parámetro acepta texto, variables o combinado. Por ejemplo: field: Solo texto field: {{Variable_1}} field: Texto más {{Variable_1}} |
external_table.actions | Object | Objeto de configuración para las acciones que se pueden realizar por cada fila de la tabla. Las opciones de configuración son: display: (Boolean) Si está a true, se añadirá una acción en la fila para abrir la modal de visualización del registro de la entidad configurada. Ej. display: true update: (Boolean) Si está a true, se añadirá una acción en la fila para abrir la modal de edición del registro de la entidad configurada. Ej. update: true <custom>: (Object) Se pueden añadir acciones personalizadas en un objeto de configuración que disponga de los campos: ico: (String) Icono del botón de acción onclick: (String) Código de la acción a realizar Ej. btn_custom_1:{ico: 'fa-user', onclick:CloudFrameWorkInterface.newAlertBox('info','test','Esto es un test'); return false;} |
external_table.rows_per_page | Int | Sirve para especificar el número de filas que queremos por página. Si no se especifica ninguno, el valor por defecto son 10 |
external_table.display_search | Boolean | Sirve para habilitar el buscador en la parte superior de la tabla. Por defecto false, no se mostraría el buscador. |
"field": {
"name": "Nombre del field",
"type": "virtual",
"external_info": "datastore",
"entity": "NombreEntidad",
"linked_field": "KeyValue",
"field_value": "KeyId",
"fields": "*",
"external_table": {
"rows_per_page": 5,
"display_search": true,
"cols": [
{
"name": "Actualizado",
"field": "{{DateUpdated}}"
},
{
"name": "Por",
"field": "{{CloudFrameworkUser}}"
},
{
"name": "IBAN",
"field": "{{StringValue}}"
}
],
"actions": {
"display": true,
"update": false
}
}
},
Para más información sobre la aplicación de campos virtuales acceder a la sección [Uso de Campos Virtuales]