

Una macro es un atajo que agrupa varios pasos en uno solo.
En lugar de repetir la misma secuencia veinte veces por día, se la define una vez y después se la ejecuta con un clic.
El nombre viene de la informática de los años sesenta, donde una macroinstrucción era una instrucción corta que el sistema expandía en muchas otras.
Esa idea original sigue intacta: una orden breve, muchas acciones detrás.
La primera es la de las planillas de cálculo, donde una macro es un programa que se graba o se escribe para automatizar operaciones sobre celdas.
Ahí la macro reproduce pulsaciones y fórmulas, y suele apoyarse en un lenguaje de programación propio de la herramienta.
La segunda es la de los sistemas de gestión empresarial, donde una macro es una lista ordenada de instrucciones que se aplican sobre un registro abierto en pantalla.
En este segundo caso no hace falta escribir código: cada instrucción se elige de una lista y se le indica sobre qué campo actúa.
La diferencia práctica es grande, porque la macro de planilla la arma alguien con perfil técnico y la del sistema de gestión la arma la persona que hace el trabajo.
Cada macro guarda sus instrucciones con un número de orden, y ese número decide la secuencia.
No es un detalle menor, porque el resultado cambia según qué se haga primero.
Una macro que completa el asunto de un correo y después lo envía funciona; la misma macro en el orden inverso envía un correo vacío.
Una macro que termina enviando o guardando de forma definitiva se llama irreversible, porque su efecto no se deshace con un clic.
Conviene probarla sobre un registro de prueba antes de dejarla disponible para todo el equipo.
Una macro rinde cuando la tarea es repetitiva, frecuente y siempre igual.
Responder una consulta habitual, cerrar un ticket resuelto o registrar el resultado de una llamada son casos de manual.
No rinde cuando cada caso exige una decisión distinta, porque entonces el tiempo se va en corregir lo que la macro dejó mal.
Tampoco reemplaza a una automatización de fondo: la macro la dispara una persona, mientras que una regla automática corre sola cuando se cumple una condición.
Armar una macro es una tarea de la persona de negocio y no del área técnica.
Aun así hace falta el permiso correspondiente, tanto para crear macros propias como para publicarlas al resto del equipo.
Las macros se guardan en carpetas, y esas carpetas son las que definen quién ve cada una.
Una macro personal sirve como atajo individual, y una macro compartida sirve para que todo el equipo responda de la misma forma.
En el ERP de EGA Futura una macro es un registro más de la Plataforma, con su nombre, su descripción y su dueño.
Ese registro guarda además a qué objeto se aplica, que es lo que determina sobre qué pantallas aparece disponible.
Las instrucciones no viven sueltas: cada una es un registro hijo que depende de la macro y lleva su número de orden.
Por eso borrar una macro se lleva con ella todas sus instrucciones, sin dejar restos.
El punto que suele sorprender es la lista de objetos sobre los que se puede aplicar una macro.
Además de los casos y los contactos, ahí figuran Factura, Venta, Orden de compra, Factura de compra y Cotización.
También aparecen Activo fijo, Cuenta contable, Asiento contable, Proyecto, Tarea de proyecto, Ticket de servicio, Empleado y Gasto.
O sea que la misma herramienta que cierra un ticket sirve para estandarizar un paso del circuito de compras o del alta de un activo.
Cada instrucción combina tres datos: la operación, el destino y el valor.
La operación dice qué hacer, el destino dice sobre qué campo o componente actuar y el valor dice qué escribir.
El valor admite un texto largo, así que permite cargar párrafos completos y no solo palabras sueltas.
Cuando lo que hay que cargar es un registro en lugar de un texto, la instrucción guarda directamente su identificador.
Una empresa cierra todos los días varias facturas que ya fueron cobradas.
El paso manual consiste en abrir cada Factura, cambiar su Estado de Emitida a Pagada y guardar.
Con una macro aplicada al objeto Factura esos tres pasos quedan en un solo clic desde la Vista de lista.
El ahorro por registro se mide en segundos, pero sobre cien facturas por semana la diferencia se nota.
La Plataforma lleva un registro del uso de cada macro, además del registro de la macro y del de sus instrucciones.
Ese dato es el que permite ver cuáles se usan de verdad y cuáles quedaron obsoletas.
Una macro que nadie ejecuta hace meses suele ser la señal de que el proceso cambió y la macro no.
Cada macro declara si está preparada para la interfaz moderna de la Plataforma, que es la que usa el ERP.
Ese indicador evita el caso incómodo de una macro que figura en la lista pero después no llega a ejecutarse.
No. La de planilla es un programa que automatiza operaciones sobre celdas y suele escribirse en un lenguaje propio de la herramienta.
La del ERP es una lista ordenada de instrucciones que se arma eligiendo opciones, sin escribir código.
No: se ejecutan una detrás de otra, en el orden que cada instrucción tiene guardado.
Ese orden importa, porque una acción suele depender del resultado de la anterior.
La arma la persona que hace el trabajo, eligiendo la operación y el campo de una lista.
Lo que sí se necesita es el permiso correspondiente, y una carpeta compartida para que la vea el resto del equipo.
Es la que termina con una acción que no se puede deshacer, como enviar un correo electrónico o guardar de forma definitiva.
Conviene probarla sobre un registro de prueba antes de dejarla disponible.
Las macros se modelan con tres objetos estándar de la Plataforma: Macro, MacroInstruction y MacroUsage.
La cabecera vive en Macro y el detalle en MacroInstruction.
Name es un Text de 255 y es obligatorio.
Description es un Rich Text Area de 4.096 caracteres.
StartingContext, con etiqueta Apply To, es la lista de selección que fija el objeto sobre el que corre la macro.
IsLightningSupported e IsAlohaSupported son casillas de verificación que declaran en qué interfaz puede ejecutarse.
OwnerId apunta a un usuario o a una cola.
MacroId es una relación maestro-detalle obligatoria hacia Macro, así que borrar la macro borra sus instrucciones en cascada.
SortOrder es un Number(9, 0) obligatorio y es el campo que define la secuencia de ejecución.
Operation es una lista de selección obligatoria y Target una lista de selección opcional.
Value es un Long Text Area de 4.000 caracteres y ValueRecord un Text de 15 que guarda el identificador de un registro.
El campo Name de la instrucción es un Auto Number.
La lista incluye objetos estándar y los objetos personalizados del ERP, entre ellos EGAFutura__Invoice__c, EGAFutura__Sales_Order__c, EGAFutura__Purchase_Order__c, EGAFutura__Activo_fijo__c, EGAFutura__Cuenta_contable__c y EGAFutura__Ticket_servicio__c.
Un objeto nuevo queda disponible en esa lista sin configuración adicional.
Como SortOrder es obligatorio, cualquier carga masiva de instrucciones tiene que asignarlo de forma explícita.
Al clonar una macro por API conviene replicar el mismo orden relativo, porque la Plataforma no lo recalcula sola.