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]

Cesta de compras