Plantillas programables

En Capitally, funciones como Importar e Impuestos te permiten definir lógica compleja mediante un sencillo editor sin código. De hecho, todos los preajustes integrados se crean con este editor, por lo que puedes aprovechar todas las capacidades de la aplicación y adaptarla a tus necesidades.

Este artículo te guiará por la funcionalidad común. Consulta los artículos de Importar e Impuestos para obtener más detalles.

Bloques de construcción

Las plantillas se construyen usando Estados de cuenta. Cuando se evalúan, cada estado de cuenta se ejecuta uno por uno, hasta que se encuentra una instrucción Exit o se llega al final de la lista.

Cada vez que un estado de cuenta necesita evaluar un valor, se usa una expresión . Estas pueden ir desde un valor fijo, como un activo o un número concreto, pasando por un valor de propiedad, como una columna de datos o un tipo de operación, hasta fórmulas que permiten cálculos complejos.

Puedes tratarlo como un lenguaje de scripting sencillo o como una fórmula compleja de Excel. Ofrece conceptos básicos como estados de cuenta, expresiones, variables, funciones y bucles. Pero todo se construye de forma visual, sin necesidad de programar.

Tomar decisiones con instrucciones If

El estado de cuenta más básico es la instrucción If . Te permite tomar decisiones basadas en cualquier propiedad y, si las condiciones se cumplen, se ejecutan los estados de cuenta anidados. Si no se cumplen, se comprueba el siguiente bloque else o else if .

Insertar estados de cuenta y bloques If

Para insertar un nuevo estado de cuenta, sitúa el cursor antes, después o entre los estados de cuenta existentes y haz clic en el divisor azul divisor que aparece y selecciona una instrucción o preajuste del menú.

Para insertar un nuevo bloque «If», pasa el cursor por el espacio antes, después o entre bloques if/else existentes y haz clic en el gris divisor que aparece

Modificarlos

Cada instrucción y bloque If tiene un menú que puedes usar para Copiar, Cortar, Duplicar y Eliminar.

Una vez que copies o cortes una instrucción, puedes pegarla de la misma forma en que añades nuevas instrucciones: aparecerá una opción Pegar.

And / Or

Cuando se necesitan condiciones complejas, puedes envolver la primera condición dentro de un bloque And/Or y combinar múltiples condiciones de esta forma.

Establecer propiedades con la instrucción Set

Puedes modificar la propiedad o variable de un objeto con una instrucción Set . Simplemente elige la propiedad que deseas modificar e indica un valor.

Interfaz desplegable para asignar la «Moneda de la comisión» a «Moneda del valor» con opciones, en un panel de ajustes de usuario resaltado en morado.La moneda de la comisión será la misma que la moneda del valor

Modificar el valor existente en lugar de reemplazarlo

Al hacer clic en el desplegable to puedes seleccionar distintos modos de asignación, como suma, multiplicación, añadir texto al final o al principio, entre otros.

Captura de pantalla de una interfaz de automatización de flujos de trabajo que muestra acciones para incrementar un valor en una cantidad y añadir una nota mediante una columna de descripción.El valor aumentará según la columna Importe, mientras que la Nota se añadirá con la Descripción

Transformar valores

Los valores escalares simples, como texto o números, pueden transformarse antes de ser asignados. Al hacer clic en fx puedes elegir una de las transformaciones. Puedes combinar varias transformaciones y reordenarlas arrastrando y soltando.

Captura de pantalla de una herramienta de transformación de datos que muestra opciones para incrementar una columna llamada «Amount» por valor, con funciones adicionales listadas.El valor se convertirá en el valor absoluto redondeado de la columna ImporteReemplazar texto

La transformación Replace te permite reemplazar las apariciones de un texto coincidente por otra cosa. Por ejemplo, puedes reemplazar una palabra (p. ej., .GR por .EU) o eliminar algo reemplazándolo por nada.

Captura de pantalla de una interfaz de transformación de datos que asigna sufijos de tickers de activos, convirtiendo el sufijo .GR en .EU para la estandarización de datos financieros.

Replace también admite Expresiones regulares , incluidos los llamados grupos de captura y referencias inversas. Solo activa el botón (.*) .

Supongamos que tienes la cadena «apple orange banana» y quieres intercambiar las posiciones de las dos primeras palabras. Puedes usar el patrón ([a-z]+) [a-z]+ ([a-z]+) y reemplazarlo por $2 $1 para obtener «orange apple banana».

Extraer texto

En lugar de extraer, puedes simplemente hacer coincidir la parte de la cadena que debe usarse. Funciona mejor con Expresiones regulares, ya que se extraerá el primer grupo de captura.

Retomando el ejemplo anterior con «apple orange banana», usar [a-z]+ ([a-z]+) [a-z]+ extraerá únicamente la palabra del medio: «orange».

Mapear valores

Para algunas propiedades como el tipo de Activo o de Operación, también puedes mapear el valor de uno a otro. Haz clic en el icono S invertido junto a S icono junto a fx para añadir una asignación.

La asignación comprobará si el valor entrante supera una comparación. Si es así, se usará el valor seleccionado. Las asignaciones se evaluarán en secuencia y ganará la primera que coincida.

Captura de pantalla de una interfaz de flujo de trabajo con lógica condicional que mapea tipos de operaciones como Compra, Venta y actividad de plan de acciones a acciones específicas.

Conversión de valores entre tipos

Las propiedades pueden tener tipos incompatibles. Por ejemplo, un texto se convertirá automáticamente a número o fecha, siempre que contenga un valor reconocible (p. ej., 2024-11-01 o 1st Nov 2024).

Esto también funciona para Cuentas, Monedas, Mercados o Tipos de transacción, donde cualquier valor de texto se usará para buscar en los datos del proyecto o del mercado.

Para los activos, también puedes especificar qué tipos de activos y mercados deben incluirse y en qué orden de preferencia.

Captura de pantalla de un filtro de búsqueda de activos financieros con opciones para tipo de activo, selección de mercado y un botón para activar la búsqueda de activos remotos.

Definir variables

Como en cualquier lenguaje de scripting, puedes definir una variable para almacenar un valor y reutilizarlo más adelante. Cada variable tiene un tipo específico y un valor inicial. Una vez definida, puede referenciarse o establecerse como cualquier otra propiedad.

Por defecto, todas las variables son locales , es decir, solo están disponibles dentro del bloque en el que se declaran (incluidos los bloques anidados) y únicamente después de ser declaradas.

Puedes cambiarlas para que sean compartidas, lo que significa que su valor se inicializará una sola vez y estará disponible no solo en todo el programa, sino también entre sus invocaciones, como en cada fila de una importación o en cada evento fiscal.

Captura de pantalla que muestra la inicialización de una variable en una interfaz, con opciones para números fijos o valores dinámicos, y cambio entre ámbito local y compartido.

Comentarios

Los cálculos solo serán útiles si comprendes los números. Puedes añadir comentarios con formato enriquecido en cualquier parte de la plantilla para describir mejor la lógica.

Captura de pantalla de un cuadro de texto verde con consejos de formato Markdown, incluyendo encabezados, listas, texto en negrita y creación de hipervínculos.