LogoLogo
  • Inicio
  • ¿Qué es Dinaup?
  • ¿Qué es Ready To Go?
  • Precios
  • Historial de Cambios
    • Principal
      • 62.6759 [2025-04-7]
      • 62.6753 [2025-03-31]
      • Próxima Versión
    • Beta
      • 2025-04-16
      • 2025-05-26
  • Ready To Go
    • Pymes
      • Mi Empresa
      • Ejercicios
      • Tesorería
        • Cuentas bancarias
        • Bancos
        • Cajas
        • Conciliación Bancaria
        • Reglas de Movimientos Bancarios
        • Auditoría de reglas y clasificación de movimientos
        • Cómo importar Extractos Bancarios
      • Impuestos
      • Retenciones
      • Facturación
        • Categorías de Compra
        • Categorías de Venta
        • Gestión de Compras y Gastos
        • Gestión de Ventas e Ingresos
        • Ventana de Factura
        • Tipos de Compras y Gastos
        • Tipos de Venta e Ingresos
        • Libros de Compra y Gastos
        • Libros de Venta e Ingresos
        • Cómo registrar una factura intracomunitaria
      • Inventario y Precios
        • Productos
        • Almacenes
        • Gestión de Precios
        • Gestión de Pedidos
          • Guía Inicio: Pedidos
      • Clientes, Proveedores, Bancos...
        • Gestión de Proveedores
        • Gestión de Clientes
      • Documentos oficiales
      • Configuración
      • Análisis
      • Procesos
        • Ponerse al Día: Detección de Anomalías
        • Exportación
      • Ejemplos prácticos
        • ¿Cómo contabilizar factura de Revolut?
        • ¿Cómo contabilizar factura de Miro?
        • ¿Cómo contabilizar factura de ChatGPT?
        • ¿Cómo contabilizar factura de Petropix?
      • Preguntas Frecuentes
    • TPV
      • Guía Configuración de Cajas
      • Guía Cierres de Caja
      • Modo Kiosko
      • Guía Configuración: TPV
      • Recursos
    • Proyectos
      • Proyectos
      • Tareas
      • Dependencias
      • To-Do
      • Hilos y Temas
    • CRM
      • Seguimientos
      • Procesos y Fases
      • Kanban
    • Recursos Humanos
      • Introducción al Control Horario
      • Guía Alta de Empleado
      • Guía Sistema de Fichajes
      • Cómo crear horarios laborales paso a paso
      • Guía calendario de festivos
      • Guía para asignar un horario a un empleado
      • Guía Vacaciones y Ausencias
      • Introducción Sistema de Fichaje
      • Línea de Tiempo
      • Empleados
      • Horarios
      • Festivos
      • Vacaciones y Ausencias
      • Departamentos
      • Cargos
      • Nóminas
      • Turnos
      • Fichaje
      • Horas Extra
      • Exportación
      • Análisis
      • Asignación de Horarios a Empleados
    • Marketing
      • Avatares
      • Objeciones
      • Puntos de Dolor
      • Casos de éxito
      • Testimonios
      • Camapañas
      • Anuncios
  • Administrador
    • Gestión de Usuarios
    • Permisos y Roles
      • Crear Diseño de Sección
      • Cómo crear y asignar roles de usuario en Dinaup
    • Claves API
    • Cuenta y Facturación
      • Almacenamiento en Dinaup
  • Integraciones
    • Zapier, Make y n8n
      • Dinaup & n8n
    • Power BI
    • Dinaup PG Sync
    • Email
    • Cloudflare Worker
  • Desarrollo
    • Información Clave
      • Límites
    • Convención Desarrollo
    • Flex
      • Secciones
      • Documentos dinámicos
        • Envío de Emails
      • Campos
      • Informes
        • Informes API
      • Algoritmos
      • Scripts
      • Flujos
    • Dinaup SDK (.NET)
      • Sections
      • Reports
      • WriteOperations
        • Ejemplo: Agregar un Recambio en Dinaup (.NET)
        • Ejemplo: Ejecucción WriteOperations por Lotes (.NET)
        • Ejemplo: Agregar un Cliente desde Dinaup (.NET)
      • DynamicDocuments
      • Dinaup.Logs (Logging)
    • MyDinaup (.NET)
      • Actualizar MyDianup
    • Dinaup.Database (.NET)
    • Open Soruce
      • Ready To Blazor
      • Ready To Automate
    • WebHook
      • Entrantes
      • Salientes
    • Dinaup Vault
    • Ecosistema Desarrollo
    • Casos de Uso
      • UI/UX Personalizada
  • Casos de Éxito
    • Autodesguaces Alicante
  • Recursos
    • Listado de Secciones
      • Solución Pymes
        • Entidades
        • Actividades de Empresa
        • Almacenes
        • Empresas Administradas
        • Datos fiscales
        • Entidades
        • Retenciones
        • Impuestos
        • Tablas de IRPF / Sociedades
        • Epígrafe actividades económica
        • Productos
        • Grupos de Almacenes
        • Zonas de Almacén
        • Huecos en almacenes
        • Salidas de inventario
        • Entradas de inventario
        • Categorías de Compra
        • Lotes de Compra
        • Lotes de Producto
        • Libros registros de Compras / Gastos
        • Salidas de Compra
        • Entradas de Compra
        • Pago de Compras
        • Catálogo de Compras
        • Compras / Gastos
        • Ventas / Ingresos
        • Documentos Oficiales
        • Catálogos de Venta
        • Cuentas Bancarias
        • Categorías de Venta
        • Cobros de Venta
        • Entradas de Venta
        • Salidas de Venta
        • Libros registros de Ventas / Ingresos
        • Tipos de Cliente
        • Pedidos
        • Canales de Venta
        • Métodos de Pago
        • Monedas
        • Cajas
        • Cierres de Caja
        • Movimientos Bancarios
        • Movimientos de Caja
        • Reglas de clasificación de movimientos bancarios
        • Asientos Contables
        • Cuadro de Cuentas
        • Ejercicios
        • Cuadro de Cuentas Oficiales
        • Inmovilizado
        • Tipos de Venta
        • Tipos de Compra
      • Solución CRM
        • Seguimientos de Clientes
        • Procesos de Venta
        • Fase de procesos de Venta
        • Eventos de CRM
      • Solución Proyectos
        • Proyectos v2
        • Tareas
      • Solución Recursos Humanos
        • Departamentos
        • Subdepartamentos
        • Definición de Jornadas
        • Turnos
        • Horarios
        • Festivos
        • Asignaciones de Horarios
        • Registros de fichajes laboral
        • Motivos de Ausencias y Retrasos
        • Motivos de Horas Extras
        • Vacaciones, Bajas y Ausencias
        • Nóminas
      • Solución Marketing
        • Avatares
        • Productos de Marketing
        • Objeciones
        • Casos de éxito
        • Testimonios
        • Puntos de Dolor
        • Resultados de Campaña
        • Campañas
        • Anuncios
        • Versiones de Anuncios
        • Contenido Redes Sociales
        • Estrategias de Marketing
      • Otras
        • Empleados
        • Zonas horarias
        • Países
        • Comunidades autónomas
        • Provincias
        • Municipios
        • Códigos postales
        • Sección de pruebas API
        • Notificaciones
        • Logs de Eventos Legales
    • Hint
    • Prototipado Flex
    • Proceso Desarrollo
    • Radzen (Blazor Componentes)
    • Listado de Partners
      • Top Financial Advisor
    • Viaje del Emprendedor en Dinaup
    • Recursos Flex
      • Documentos Dinámicos
        • Ticket - Venta
        • Impresión Venta
        • Ticket - Pedido
        • Impresión Pedido
        • Código de Barras - Hueco de Almacén
        • Código de Barras - Recambios
  • Comunidad
    • Tickets Soporte
  • Términos y Condiciones
    • Términos y Condiciones de Uso
    • Política de Impagos de Dinaup
    • ¿Qué significa tener un Partner asociado?
      • Iniciar una disputa con un Partner
  • Comunidad
  • Blog
Con tecnología de GitBook
En esta página
  • Crear un nuevo registro
  • Actualizar un registro existente
  • Escritura Virtualizada
  • ¿Qué hace la virtualización?
  • ¿Cuándo usar virtualización?
  • ¿Cuándo evitar virtualización?
  • Ejemplos
  1. Desarrollo
  2. Dinaup SDK (.NET)

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?

¿Cuándo evitar virtualización?

Ejemplos

AnteriorReportsSiguienteEjemplo: Agregar un Recambio en Dinaup (.NET)

Última actualización hace 2 meses

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.

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.

✅
⛔
Ejemplo: Agregar un Recambio en Dinaup (.NET)
Ejemplo: Ejecucción WriteOperations por Lotes (.NET)