WriteOperations
En esta sección aprenderás cómo utilizar las operaciones de escritura (WriteOperation) para crear, actualizar y gestionar registros dentro de la plataforma Dinaup utilizando el SDK para .NET.
Las operaciones de escritura permiten a los desarrolladores modificar datos en las secciones dinámicas de Dinaup, de forma segura.
Crear un nuevo registro
Para insertar un nuevo registro, basta con construir un diccionario con los valores clave-campo, y pasar una cadena vacía como ID en el constructor de WriteOperation
.
var newData = new Dictionary<string, string>
{
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.Resumen, "Nueva tarea" },
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.TextoPrincipal, "Contenido inicial" },
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.Prioridad, "1" }
};
var writeOperation = new WriteOperation(string.Empty, newData);
var sectionId = MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES._SectionID;
var result = await dinaupClient.RunWriteOperationAsync(dinaupClient.DefaultSession, sectionId, new[] { writeOperation }, true);
result .EnsureSuccess(); // Provoca excepción si algo falla.
Actualizar un registro existente
var existingRecordId = "GUID_DEL_REGISTRO";
var updateData = new Dictionary<string, string>
{
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.Resumen, "Resumen actualizado" },
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.TextoPrincipal, "Nuevo contenido de tarea" },
{ MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES.Prioridad, "2" }
};
var writeOperation = new WriteOperation(existingRecordId, updateData);
var sectionId = MyDinaup.SectionsD.TareasDeProyectosD.TareasDeProyectosES._SectionID;
var result = await dinaupClient.RunWriteOperationAsync(dinaupClient.DefaultSession, sectionId, new[] { writeOperation }, true);
result .EnsureSuccess(); // Provoca excepción si algo falla.
Escritura Virtualizada
La escritura virtualizada permite que Dinaup ejecute automáticamente la lógica de negocio definida en una sección. Al activarla, cualquier operación de escritura se comporta como si se hubiera realizado desde la interfaz web: con scripts, validaciones, eventos, y cálculos incluidos.
¿Qué hace la virtualización?
Cuando se activa la virtualización en una operación de escritura (RunWriteOperationAsync
con virtualized: true
), Dinaup:
Ejecuta scripts personalizados de la sección (
onBeforeSave
,onAfterSave
, etc.)Recalcula campos automáticos (ej. totales, impuestos)
Aplica reglas de validación y lógica de negocio
Dispara eventos definidos en la sección
Cuando se desactiva (virtualized: false
), simplemente se guardan los valores tal como se reciben (Creando histórico). No se ejecuta ningún comportamiento adicional.
La escritura virtualizada es más costosa en términos de rendimiento. Cada operación implica ejecutar scripts del backend y lógica personalizada, lo que puede afectar la velocidad si estás procesando muchos registros o usas esta opción innecesariamente.
¿Cuándo usar virtualización?
✅ Usa escritura virtualizada cuando la sección contiene lógica de negocio activa que debe ejecutarse. Esto incluye cálculos automáticos de totales en ventas, generación de fechas de vencimiento, o scripts que actualizan otras entidades relacionadas. Por ejemplo, al registrar una nueva venta, al cerrar un pedido o al generar una factura, la virtualización asegura que todo se procese correctamente.
¿Cuándo evitar virtualización?
⛔ Evita la virtualización cuando realizas modificaciones simples que no requieren ejecutar lógica adicional. Esto incluye acciones como cambiar el estado de una venta, asignar un técnico a un ticket de soporte, registrar una nota interna o marcar una tarea como completada. En estos casos, desactivarla mejora el rendimiento sin afectar el comportamiento esperado.
Ejemplos
Ejemplo: Agregar un Recambio en Dinaup (.NET)Ejemplo: Ejecucción WriteOperations por Lotes (.NET)Última actualización