MyDinaup
MyDinaup
es un conjunto de librerías .NET generadas automáticamente para cada empresa que utiliza Dinaup como plataforma de gestión de datos. El objetivo principal es exponer, mediante código fuertemente tipado, la estructura particular de secciones, Documentos dinámicos e Informes disponible en cada licencia.
Estas librerías exponen las entidades de negocio (secciones, documentos dinámicos e informes) de forma fuertemente tipada. Esto evita que el desarrollador deba conocer los identificadores internos de campos y documentos, ya que MyDinaup genera clases con propiedades y métodos que representan las estructuras reales.
SectionsD (Secciones):
Cada sección de Dinaup se modela como una clase en MyDinaup, con propiedades que corresponden a campos específicos. Asimismo, se incluyen métodos asíncronos para leer (GetRowsAsync), filtrar, paginar y manipular registros sin necesidad de usar identificadores ni campos internos manualmente.DynamicDocumentsD (Documentos Dinámicos):
Los documentos dinámicos son plantillas con variables que Dinaup utiliza para generar contenido (HTML, PDF, etc.). MyDinaup crea clases derivadas deDinaupDynamicDocumentBase
para cada documento, exponiendo las variables que se deben suministrar. Al ejecutar el documento víaExecuteAsync()
, se obtiene el resultado sin preocuparse por los detalles de identificación del documento o la traducción de parámetros a IDs internos.ReportsD (Informes):
Los informes son vistas de datos preconfiguradas. MyDinaup genera clases que representan cada informe, incluyendo una clase DTO (por ejemplo,*_RowC
) para cada fila de resultados. Esto permite leer resultados como objetos .NET tipados y filtrarlos u ordenarlos a través de métodos y propiedades, en lugar de manejar datos crudos o diccionarios.
Ejemplos Secciones
Obtención de Filas desde una Sección
Suponiendo que la empresa dispone de una sección "Productos", MyDinaup generará una clase ProductosD
con una clase interna ProductosC
(modelo de datos) y una clase ProductosES
(estructura de campos). ```c# var parameters = new RowsRequestParameters ; var productos = await EmpresaXMyDinaup.SectionsD.ProductosD.GetRowsAsync(dinaupClient, parameters, dinaupClient.DefaultSession);
Filtrado de Datos en una Sección
Para aplicar filtros, se utilizan las propiedades definidas en la clase ProductosES
(estructura de campos). Por ejemplo, filtrar productos descontinuados:
Ejemplos Documento Dinámico
Ejecución de un Documento Dinámico
Si la empresa cuenta con un documento dinámico “DocumentoDeEnvio” que requiere una variable “PedidoID”, MyDinaup genera una clase que hereda de DinaupDynamicDocumentBase
.
No se necesitan diccionarios de parámetros ni conocer el GUID del documento. La clase DocumentoDeEnvioAPI
ya contiene toda esa información y solicita solamente el valor del parámetro PedidoID
.
Ejemplos Informes
Lectura de Datos desde un Informe
Si existe un informe preconfigurado, por ejemplo, “VentasMensuales”, MyDinaup crea una clase VentasMensualesC
y una fila tipo VentasMensuales_RowC
.
De nuevo, no es necesario manejar arrays de objetos sin procesar. El informe se expone como una clase clara con propiedades tipadas.
Ejemplos operación de Escritura
En este ejemplo, se escribe un nuevo registro en la sección “SeccionDePruebasAPI” usando un campo que hace referencia a una unidad de medida relacionada:
Convención estructura
Puedes consultar las secciones disponibles en Indice de secciones.
Homológamente a una base de datos, las secciones son tablas donde se almacena la información estructurada:
Ejemplo: Productos, Impuestos, Compras, Ventas...
MyDinaup tiene una nomenclatura para hacerla fácilmente accesible.
Sections
<Seccion>D
(Aquí
D
es un sufijo que significa " Definiciones ")
<Seccion>D.<Seccion>ES.<Campo>
(
ES
indica " Estructura ")
Reports
<Informe>C
(Aquí
C
= " Construible " — indica que se puede instanciar conNew
)
<Informe>C.<Informe>_RowC
RowC
representa una fila del informe
<Informe>C.<Informe>_RowC.<Propiedad>
(Tanto
<Informe>
como<Propiedad>
son patrones personalizables)
Ejemplos
La entidad “Productos” se almacena en la sección Productos
. Y su informe API Principal se llama API - Productos
Sections
ProductosD
ProductosD.ProductosES.Nombre
Reports
APIProductosC
APIProductosC.APIProductos_RowC
APIProductosC.APIProductos_RowC.Nombre