Objeto Data Provider
|
|
|
- Lorena Salas Sánchez
- hace 8 años
- Vistas:
Transcripción
1 Objeto Data Provider DP 242
2 DP: Escenario Intercambio de información jerárquica entre aplicaciones, o dentro de una misma aplicación. APPLICATION A Data Interchange APPLICATION B Sistema de Facturación envío de info de los recibos Id: 2516 Customer: John Drotts Date: 12/12/2008 Amount: 1000 Id: 158 Customer: Dane Smith Date: 12/12/2008 Amount: 750 Sistema de Deudores/Acreedores Supongamos que desde nuestro ing System, queremos enviar a un sistema de deudores y acreedores, un listado de los recibos correspondientes a cierto período de facturación (es decir, para un período determinado se desea sumarizar para cada cliente el importe total que se le ha facturado y generarle un recibo). Se trata de información jerárquica (enviaremos info de recibos, cada uno de los cuáles tiene determinados datos). El formato más usual de intercambio de información jerárquica suele ser Xml, aunque no sabemos qué deparará el futuro en ese aspecto (por ejemplo se está volviendo común el formato Json). 243
3 Procedimientos procedurales Cómo obtenemos los recibos para un rango de fechas dado? Utilizando un procedimiento que reciba el rango de fechas de facturación: &start y &end y devuelva una colección de recibos:? for each using ActiveCustomers() &bill.date = &today &bill.customername = CustomerName &bill.invoiceperiodstartdate = &start &bill.invoiceperiodenddate = &end &bill.amount = sum( InvoiceAmount, InvoiceDate>=&start and InvoiceDate <= &end and InvoicePendingFlag ) &bills.add( &bill ) &bill = new () endfor Teniendo el mismo SDT que definimos cuando estudiamos los tipos de datos estructurados (allí le llamamos _SDT, aquí le llamaremos ), estamos utilizando un procedimiento con los siguientes parámetros: parm( in: &start, in: &end, out: &bills ); siendo &start y &end variables de tipo Date que reciben el rango de facturación, y &bills una variable collection del SDT. Obsérvese que estamos utilizando el Data Selector ActiveCustomers para filtrar por clientes activos y utilizando la fórmula inline sum, en la que únicamente sumamos los totales de aquellas facturas que pertenezcan al cliente de la actual iteración del For each y cuyas fechas se encuentren en el rango dado y tengan el valor True en el atributo Booleano InvoicePendingFlag. Este atributo será cambiado a False una vez que la factura haya sido procesada dentro del proceso de generación de recibos que iniciamos aquí pero que completaremos más adelante, cuando estudiemos las formas de actualizar la información de la base de datos (aquí solamente estamos obteniendo la información de los recibos, pero aún no los registraremos en la base de datos ). 244
4 Procedimientos procedurales Lenguaje de Input Lenguaje de Transformación Lenguaje de Output INPUT Transformation OUTPUT Ejemplo: For each using ActiveCustomers() &bill.date = &today &bill.customername = CustomerName &bill.invoiceperiodstartdate = &start &bill.invoiceperiodenddate = &end &bill.amount = sum( InvoiceAmount, ) &bills.add( &bill ) &bill= new() endfor? embebido dentro del código La intención del procedimiento? Todo procedimiento toma un Input, y mediante alguna transformación, obtiene un Output. Para obtener el Input se tiene cierto lenguaje (en GeneXus si se trata de la base de datos, nombrando los atributos alcanza, como se puede ver en el ejemplo, a la derecha de las asignaciones; así como también se obtiene de los parámetros). Para realizar la Transformación se tiene otro lenguaje (el código que podemos ver en el ejemplo) y luego para expresar el Output otro más. Como puede verse, en el caso de los procedimientos GeneXus, tanto el Input como el Output se encuentran embebidos dentro del propio código de Transformación. Puede decirse entonces que el foco está puesto en la transformación. De esta forma la intención del procedimiento, su salida, queda oscurecida dentro de ese código, que mezcla: elementos de salida, con elementos de transformación (en nuestro caso, el comando for each, el método add y el operador new, que implementan el armado de la colección de recibos) y con elementos de entrada. 245
5 Procedimientos declarativos Lenguaje de Input Lenguaje de Transformación Lenguaje de Output INPUT Transformation Data Provider OUTPUT hierarchical structure FORMAT TXT HTML XML JSON SDT s using ActiveCustomers() Date = &today CustomerName = CustomerName InvoicePeriodStartDate = &start InvoicePeriodEndDate = &end Amount = sum( InvoiceAmount, ) Intención clara s Date: 12/12/08 CustomerName: John Drotts Amount 1000 Date: 12/12/08 CustomerName: Dane Smith Amount: 750 Con un Data Provider, el foco está ubicado en el lenguaje de salida: obsérvese que se indica en una estructura jerárquica de qué se compone ese Output. Luego, para cada elemento de la estructura jerárquica, habrá que indicar en el Source del Data Provider, cómo se calcula. Por tanto, alcanza con observar el lado izquierdo para deducir cuál será la estructura resultante. Luego, alcanzará con indicar el formato deseado para esa estructura jerárquica resultante 246
6 Procedimientos declarativos Lenguaje de Input Lenguaje de Transformación Lenguaje de Output INPUT Transformation Data Provider OUTPUT FORMAT TXT HTML XML JSON SDT hierarchical structure s Date: 12/12/08 CustomerName: John Drotts Amount: 1000 Date: 12/12/08 CustomerName: Dane Smith Amount: 750 <s> <> <Date>12/12/08</Date> <CustomerName>John Drotts</CustomerName> <Amount>1000</Amount> </> <> <Date>12/12/08</Date> <CustomerName>Dane Smith</CustomerName>. <Amount>750</Amount> </> </s> Date 12/12/08 CustomerName John Drotts Amount 1000 Date 12/12/08 CustomerName Dane Smith Amount 750 s Luego, una misma información estructurada, podrá representarse utilizando los diferentes formatos existentes. Esa es la idea del Data Provider. Si en el futuro aparece un nuevo formato de representación de información estructurada, el Data Provider continuará invariable GeneXus implementará el método de transformación a ese formato, y solo habrá que utilizarlo. 247
7 Data Providers Estructuras jerárquicas en GeneXus? SDTs OUTPUT Date 12/12/08 CustomerName John Drotts Amount 1000 Date 12/12/08 CustomerName Dane Smith Amount 750 INPUT DB CustomerId CustomerName CustomerStatus 1542 John Drotts A 1543 Dane Smith A invoices Hasta aquí hicimos un análisis descriptivo. Surge inmediatamente la siguiente pregunta: cómo se representan en GeneXus las estructuras jerárquicas de datos? Por tanto, la salida de un Data Provider será un SDT (o una colección de SDTs). Luego, con esa salida puede realizarse lo que se desee, en particular, convertirla a formato XML, con el método toxml de los SDTs. Veamos cómo declaramos la salida no será de la forma convencional (como parámetro de out de la regla parm) 248
8 Data Providers Date 12/12/08 CustomerName John Drotts Amount 1000 Date 12/12/08 CustomerName Dane Smith Amount 750 OUTPUT Aquí vemos para el ejemplo que venimos estudiando, que teniendo el SDT definido s, collection, que coincide con la estructura que se infiere del Source del Data Provider Gets, habrá que declarar ese SDT en la propiedad Output del Data Provider. Pero no es la única posibilidad veremos otra en la página siguiente, donde cobrará sentido la propiedad Collection. 249
9 Data Providers Otra posibilidad (mismo resultado): Date 12/12/08 CustomerName John Drotts Amount 1000 Date 12/12/08 CustomerName Dane Smith Amount 750 OUTPUT Si en lugar de tener el SDT collection s, tuviéramos el que aparece arriba,, entonces podríamos programar el Source del Data Provider como vemos y luego configurar la propiedad Collection en True, con lo cuál se abrirá una nueva propiedad, Collection Name, que permitirá dar nombre a la colección. Este Data Provider es equivalente al anterior. Obsérvese que en este caso no es necesario poner la raíz de la jerarquía, s, puesto que se infiere de la propiedad Collection Name. De todas formas, si bien no es requerido, podría programarse el Source exactamente igual al anterior, es decir, con el grupo s encabezando la jerarquía. s using ActiveCustomers() Nota: la cláusula using, así como las where que veremos luego, order, etc., podrán especificarse tanto a nivel del grupo s, como del grupo, en casos como este. Volveremos sobre este tema más adelante. 250
10 Data Provider Objetivo: Retorno de datos estructurados. Con Procedimiento: hay que armar el SDT con operaciones de bajo nivel. Con Data Provider: facilidad de escritura y claridad. Es declarativo independiente de implementación. para devolver datos estructurados utilizaremos un DP en lugar de un Procedimiento. Los Data Providers atacan eficientemente un tipo de problema: aquel que consiste en retornar datos estructurados. Para ese tipo de problemas contábamos con los procedimientos, pero su desventaja evidente era que necesitábamos implementar la forma de armar esas estructuras con operaciones de bajo nivel, como agregar un ítem a una colección con Add, y pedir memoria (new). Asimismo, si hubiera que hacer cálculos complejos para dar valor a cada miembro de la estructura, quedarían en el código embebidos los elementos de la salida, sin que fuera sencillo visualizar en un golpe de vista la salida resultante del Procedimiento. Todos estos inconvenientes se evitan con un Data Provider. Aquí el foco está puesto en la salida, razón por la cuál con un solo vistazo quedará evidenciada la estructura del Output. Por otro lado, siendo absolutamente declarativo, nos independizamos de la forma en que se implementa realmente la carga del SDT. De eso se encarga GeneXus. Cuanto más declarativa sea una herramienta, más fácil de programar, más adaptable al cambio, más independiente de una implementación particular. GeneXus tiende a permitir declarar lo más posible y cada vez programar proceduralmente menos. Lo declarativo traslada el problema de la implementación a la herramienta, y se la quita al programador. Cuanto más inteligente una herramienta, menos necesidad tendrá el programador de resolver el problema: le alcanzará con enunciarlo. 251
11 Data Provider Utilización Igual que un procedimiento que devuelve información estructurada: Procedimiento Gets Objeto GeneXus Parm( in: par 1,, in: par n, out: &bills ); &Thes = Gets( par 1,, par n ) udp Data Provider Gets Parm( in: par 1,, in: par n ); Output: Collection: True CollectionName: s Objeto GeneXus &Thes = Gets( par 1,, par n ) &xml = &Thes.ToXml() Un Data Provider también puede recibir parámetros vía regla parm, pero a diferencia de un procedimiento donde todos los parámetros pueden ser de entrada/salida, aquí solo podrán ser de entrada. Por otro lado, un procedimiento que devuelve información estructurada lo hace mediante una variable que se carga en el código, y que debe declararse como de salida, en el último parámetro de la regla parm. En un Data Provider, la declaración del tipo de datos de salida se hace mediante las propiedades Output, no en la regla parm. La invocación desde cualquier objeto GeneXus de un Data Provider es idéntica a la invocación de un procedimiento, es decir, con udp. Recuerde que al invocar a un objeto y no especificar el método de invocación, se asume udp. La variable &Thes deberá estar declarada en el objeto GeneXus en el que se realiza la invocación. Es la variable en la que se devolverá el resultado. Recuerde que si el SDT definido en la KB es el correspondiente a los ítems individuales:, (y no a la colección s), entonces la variable &Thes se definirá como Collection, de tipo de datos. Luego, con la estructura jerárquica devuelta se podrá, por ejemplo, convertir al formato deseado, como XML. Importante: Como veremos, un Data Provider no solo puede retornar un SDT o colección de SDT, sino también otro tipo, el Business Component, que también representa información estructurada. Vea ese tema para completar el conocimiento de Data Providers. 252
12 Componentes básicos: Grupos Elementos Variables sinfo s Date = &today CustomerName = CustomerName InvoicePeriodStartDate = &start InvoicePeriodEndDate = &end Amount = sum( InvoiceAmount, ) &quantity = &quantity + 1 Quantity = &quantity El ejemplo que podemos ver aquí es parecido al que estuvimos trabajando. Hemos agregado el elemento Quantity. Tómese unos instantes para pensar cómo deberá ser el SDT sinfo, para que matchee con este Source. A la izquierda lo hemos presentado. De todos modos, el Source no tiene por qué escribirse tal cual la estructura del SDT. Cuando en el SDT tenemos un miembro collection de un determinado ítem, podemos omitir del Source el Item como grupo. Ejemplo: con el SDT que tenemos arriba, podríamos haber escrito el Data Provider: snfo s Date = &today CustomerName = CustomerName InvoicePeriodStartDate = &start InvoicePeriodEndDate = &end Amount = sum (InvoiceAmount, ) &quantity = &quantity + 1 Quantity = &quantity con el mismo resultado. GeneXus tiene la inteligencia suficiente como para matchear con el SDT. 253
13 Grupos Agrupan tanto elementos, grupos como variables en un mismo nivel de jerarquía. Puede ser repetitivo como no serlo (inteligencia para determinarlo). sinfo s Quantity = &quantity Será una colección de muchos sinfo s Date = &today CustomerName = CustomerName &quantity = &quantity +1 Quantity = &quantity 254
14 Grupos Un grupo repetitivo es análogo a un for each: Determina tabla base (de igual forma que en un for each) Tiene disponibles las mismas cláusulas que para un for each: sinfo [[order] order_attributesi [when condi] [order none] [when condx]] s [using DataSelectorName([[parm1 [,parm2 [, ] ])] [where conditioni when condi attribute IN DataSelectorName([[parm1 [,parm2 [, ] ] ] [defined by att ] Date = &today CustomerName = CustomerName InvoicePeriodStartDate = &start InvoicePeriodEndDate = &end Ver más adelante opciones avanzadas Amount = sum( InvoiceAmount, ) &quantity = &quantity + 1 Quantity = &quantity &quantity = 0 En el ejemplo, el grupo de nombre será repetitivo. Por qué? Para contestar la pregunta, hagamos otra: y si fuera un for each, donde los elementos de la izquierda de las asignaciones corresponden a los distintos elementos de una variable SDT? En este caso la presencia de CustomerName (a la derecha de la segunda asignación) permite afirmar que hay tabla base: CUSTOMER. Por tanto el grupo será repetitivo, iterando sobre la tabla CUSTOMER. En el ejemplo que veníamos trabajando, podíamos tener la cláusula: using ActiveCustomers() que es como tener: For each using ActiveCustomers() por lo que así no estuviera el atributo CustomerName en la segunda asignación, de todos modos sería con tabla base, por la presencia del atributo CustomerStatus en el Data Selector ActiveCustomers. Obsérvese que el grupo de nombre sinfo, en cambio, no será repetitivo, no tiene cláusulas asociadas, y los elementos que contiene están definidos a base de variables y no de atributos: Quantity = &quantity &quantity = 0 Y qué pasa con el grupo s? Obsérvese que en este caso, es un grupo que sólo contiene otro grupo. El grupo contenido será repetitivo, por lo que s será una colección de. Por este motivo, el subgrupo podría omitirse (solamente dejar s) y que quede implícito. De este modo, las cláusulas del grupo que permiten definir order, filtros, defined by, se pueden asociar a este grupo. 255
15 Grupos También pueden repetirse grupos: Clients Client Name = Lou Reed Country = United States City = New York Client where CountryName = Mexico Name = CustomerName Country = CountryName City = CityName El resultado retornado será una colección de N+1 ítems: siendo N el número de clientes de México. Si la condición se hubiese colocado en el grupo Clients, aplicaría a los dos subgrupos Client. Por eso es que se permite que las cláusulas operen a nivel de los grupos que se repiten (items), y no solo a nivel del grupo que es colección de ítems. 256
16 Elementos Un Elemento es un valor atómico en el Output. Cada Elemento debe ser asignado y su sintaxis es la de las fórmulas. Ejemplo: Clients Client Name = CustomerName Active = True if CustomerStatus = Status.Active; False otherwise; 257
17 Elementos Elementos y Atributos usualmente tienen el mismo nombre notación más compacta: Ejemplo: sinfo s Date = &today CustomerName = CustomerName InvoicePeriodStartDate = &start sinfo s Date = &today CustomerName InvoicePeriodStartDate = &start 258
18 Variables Algunas veces es necesario realizar cálculos internos: Ejemplo: sinfo s &quantity = 0 Date = &today CustomerName InvoicePeriodStartDate = &start InvoicePeriodEndDate = &end Amount = sum( InvoiceAmount, ) &quantity = &quantity + 1 Quantity = &quantity 259
19 Grupos: Opciones avanzadas Cláusula Default (~ When none) el grupo solo irá a la salida si el grupo precedente (de igual nombre) no está presente. Cláusulas de Paginado: Count y Skip Para manejar cuántos registros irán a la salida. Cláusula NoOutput en un Grupo significa que el grupo no deberá estar presente en la salida, sino solo sus elementos subordinados. Cláusula OutputIfDetail Para grupo cabezal conteniendo grupo con sus líneas: solo se presenta el primero en la salida si tiene líneas. Cláusula Input si se necesita trabajar con colecciones (devueltas por Procedimiento o Data Provider) como Input del DP. Podrá encontrar la información completa de este tema en inglés en nuestro community wiki, en la siguiente página: 260
20 Group: cláusula Default Cláusula Default: el grupo solo irá a la salida si el grupo precedente (de igual nombre) no está presente. (~ When none en for each) CurrentTaxes Where TaxInitialDate >= today() Where TaxFinalDate <= today() VAT = TaxVAT Income = TaxIncome CurrentTaxes [Default] VAT = 0.7 Income = 0.3 Tabla TAXES TaxInitialDate* TaxFinalDate* TaxVAT TaxIncome Sólo se incluye en el Output si no se encontró registro en el día de hoy 261
21 Grupos: cláusulas de paginado Count y Skip. Para manejar cuántos registros irán a la salida. Customers Customer [Count = 20] [Skip = 100] Code = CustomerId Name = CustomerName Se saltean los primeros 100 customers y se incluyen en el Output los 20 siguientes. 262
22 Grupos: cláusula NoOutput En un Grupo significa que el grupo no deberá estar presente en la salida: sino solo sus elementos subordinados. Employees Employee Id = EmployeeId Name = EmployeeName EarningInfo [NoOutput] Where IsAutorized(&UserId) Salary = EmployeeSalary Bonus = EmployeeBonus <Employees> <Employee> <Id>123</Id> <Name>John Doe</Name> <Salary>30000</Salary> <Bonus>5000</Bonus> </Employee> </Employees> <Employees> <Employee> <Id>123</Id> <Name>John Doe</Name> <EarningInfo> <Salary>30000</Salary> <Bonus>5000</Bonus> </EarningInfo> </Employee> </Employees> en lugar de 263
23 Grupos: cláusula OutputIfDetail Cada ítem de la colección de salida tiene un cabezal y algunas líneas: cláusula a nivel del grupo cabezal sólo se presentarán en la salida aquellos grupos que tengan líneas. Countries Country [OutputIfDetail] Id = CountryId Name = CountryName Tabla base: COUNTRY Customers Id= CustomerId Name = CustomerName &quantity = &quantity + 1 Quantity = &quantity Tabla base: CUSTOMER Si un país no tiene clientes asociados no aparecerá como ítem de la colección Countries en la salida. No lo hemos mencionado, pero como intuitivamente podemos pensar, de tener un par de grupos anidados (un grupo que, entre otras cosas, contiene a otro), si cada uno debe acceder a la base de datos, entonces las tablas base, así como el criterio de navegación se determinan exactamente igual que en el caso de un par de for eachs anidados. Por ese motivo, en el ejemplo, el grupo Country tiene tabla base COUNTRY; el grupo Customers tiene tabla base CUSTOMER, y se hará un join entre ambas tablas a la hora de recuperar la información para cargar la colección de países. Es decir, por cada registro de COUNTRY se cargará la información de sus atributos CountryId y CountryName en los elementos Id y Name del ítem Country del SDT colección Countries que se está cargando, y luego se recorrerá la tabla CUSTOMER filtrando por aquellos registros para los cuales CUSTOMER.CountryId = COUNTRY.CountryId, cargando para cada uno los elementos Id y Name. La presencia de la cláusula OutputIfDetail hace que solamente se presenten en la salida aquellos países que cuenten con clientes asociados. Si un país de la base de datos no tiene cliente alguno, entonces no se presentará como item de la colección de salida, Countries. 264
24 Cláusula Input Hasta aquí asumimos que el Input venía de la BD; pero también se necesitan otro tipo de entradas. Por ejemplo, la salida de un Procedimiento o Data Provider. La forma obvia de trabajo es a través de variables, que una vez asignadas se manejan de forma usual: &var = Proc.udp( parm1,, parmn) &SdtVariable = DataProvider( parm1,, parmn ) Pero si se necesita trabajar con una colección se necesita la cláusula Input 265
25 Para trabajar con colecciones. VerySimple Month Input &i = 1 to 12 MonthNumber = &i Lenguaje de DP Cláusula Input CustomersFromAnotherDataProvider &CustomersSDT = GetCustomers() // a DataProvider that Outputs Customers collection Customer Input &Customer in &CustomersSDT Id = &Customer.Code Name = &Customer.Name Similar al For &i=1 to 12 del lenguaje procedural Otro Input puede ser un SDT collection: Similar al For &var in Expression del lenguaje procedural 266
Dos formas de devolver una colección con un Data Provider
Dos formas de devolver una colección con un Data Provider Los Data Provider son objetos versátiles que con un lenguaje declarativo nos facilitan la carga de estructuras, tanto ítems simples como colecciones
Actualización de la Base de Datos
Actualización de la Base de Datos 267 Actualización BD Insert-Update-Delete Actualización interactiva: Transacciones: A través del form el usuario ingresa/modifica/elimina los datos. Ventajas: Se ejecutan
Cargando los tipos de datos compuestos
Cargando los tipos de datos compuestos En más de una oportunidad, necesitamos almacenar en memoria una lista de elementos que tienen el mismo tipo de información pero distintos valores guardados. Por ejemplo,
En el ejemplo, se procede en este orden:
Lo primero que hace GeneXus al encontrar un par de for eachs anidados es determinar la tabla base de cada uno, en forma ordenada, de afuera hacia adentro, empezando por el más externo. Recién luego determina
Reporting (objeto Query)
Reporting (objeto Query) En muchas ocasiones necesitamos realizar consultas a la base de datos para analizar la información y poder tomar decisiones. Podemos necesitar agrupar la información por uno o
Tipos de datos estructurados
Tipos de datos estructurados Hasta ahora hemos empleado siempre tipos de datos simples. Hemos definido atributos y dominios de tipo Numeric, de tipo Character y también contamos con otros tipos de datos
El listado de navegación nos informa claramente que la tabla base es ATTRACTION, que la recorrida será ordenada por la clave primaria de dicha tabla:
Recordemos que GeneXus determina la tabla base del for each teniendo en cuenta el nombre de la transacción que declaramos al lado del for each (que debe ser la transacción cuya tabla física asociada queremos
Script For each simple tabla base y cláusula order
Page1 Script For each simple tabla base y cláusula order Para determinar la tabla base, GeneXus extrae los atributos nombrados en el for each encuentra las tablas en las que se hallan: y toma como tabla
Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio.
Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio. En la primera parte de esta demo creamos nuestra base de conocimiento y la transacción de facturas
Creando una aplicación móvil con GeneXus para trabajar con los Materiales del SAP ERP parte 4
Page1 Creando una aplicación móvil con GeneXus para trabajar con los Materiales del SAP ERP parte 4 Ahora sí, si no hubo error, querremos obtener el listado de materiales, por lo que tendremos que invocar
Pais { PaisId * PaisNombre } Pais { PaisId* PaisNombre } Pais. PaisId* PaisNombre
1) pts. Se tiene una aplicación GeneXus para una ensambladora de móviles. La misma cuenta con la transacción para registrar los automóviles que son ensamblados. De los autos es necesario registrar el país
Integridad Transaccional
Integridad Transaccional IT 143 Qué es el concepto: integridad transaccional? Un conjunto de actualizaciones a la base de datos tiene integridad transaccional cuando en caso de una finalización anormal,
Objeto Procedimiento
Objeto Procedimiento 155 Procedimientos Definición Procesos no interactivos de consulta y actualización de la base de datos. Procedimientos: Definen procesos no interactivos de consulta y actualización
Relaciones entre entidades de la realidad
Page1 Relaciones entre entidades de la realidad En varios ejemplos de nuestra agencia de viajes, encontramos que los actores de la realidad se relacionan entre sí de distintas maneras, por ejemplo cuando
Diseñando la primera transacción
Diseñando la primera transacción Luego de creada la base de conocimiento, el siguiente paso consiste en describir a los objetos de la realidad mediante objetos GeneXus.. Para identificar a los objetos
Objeto Web Panel 330
Objeto Web Panel 330 Generalidades Definición Objetos GeneXus que permiten al usuario realizar consultas interactivas a la base de datos a través de una pantalla en tiempo de ejecución. Son flexibles,
Aplicación del GAM. Una vez autenticado el usuario podrá comenzar a utilizar la aplicación.
Aplicación del GAM Veamos que debemos hacer desde nuestra aplicación para utilizar el GAM. Vamos a abrir GeneXus y veremos que simplemente modificando el valor de una propiedad a nivel de la versión va
Cláusula Unique. La cláusula Unique permite mencionar atributos cuyos valores no deben salir duplicados en el resultado de la consulta.
Cláusula Unique En ocasiones necesitamos definir ciertas consultas, que requieren navegar determinada tabla, pero necesitamos que si un mismo atributo tiene almacenado el mismo valor para varios registros,
Métodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Diagramas de secuencia
Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Interacciones básicas 1 Para qué sirven los diagramas de secuencia? 2 Para qué sirven los diagramas de
1
Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus
Introducción a procedimientos, listados y comando For each
Introducción a procedimientos, listados y comando For each Pasemos a conocer a los objetos de tipo Procedimiento, que podemos definir en una base de conocimiento GeneXus. Este tipo de objeto nos permite
Servicios Públicos. Manual de Usuarios Módulo Gastos. Proyecto Implementación UBA. Febrero 2011 Versión 2.0
Manual de Usuarios Módulo Gastos Servicios Públicos Proyecto Implementación UBA Coordinación General de Tecnologías de la Información y las Comunicaciones Febrero 2011 Versión 2.0 Contenido 17. Gastos
CONTRA RECIBO POR SELECCIÓN
CONTRA RECIBO POR SELECCIÓN El sistema Facturación cuenta con un módulo especial para la elaboración de contra recibos, al cual se puede accesar a través de la opción Contra Recibo por Selección dentro
Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)
aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)
Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y
Sistema de Registro, Derivación y Monitoreo Chile Crece Contigo
Sistema de Registro, Derivación y Monitoreo Chile Crece Contigo MANUAL DE USO CHCC MÓDULO ESTADÍSTICO NOVIEMBRE 2011 TABLA DE CONTENIDO 1 INTRODUCCIÓN... 3 2 ACCESO AL SISTEMA... 4 3 FUNCIONALIDADES MÓDULO
Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 4: Diseñador de Consultas (+ info)
Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 4: Diseñador de Consultas (+ info) Instituto de Tecnologías Educativas 2011 Más información sobre el Diseñador de consultas Como
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
Instructivo Costo Promedio Ponderado en el software administrativo
en el software administrativo Utilizar Costo Promedio Ponderado El costo promedio ponderado consiste en determinar un promedio, sumando los valores existentes en el inventario con los valores de las nuevas
Estatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Conversión entre Tipos
Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen
Estructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)
aprenderaprogramar.com Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A) Sección: Cursos Categoría: Curso Bases de la programación Nivel I Fecha revisión: 2024 Autor:
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Terceros Ekon Sical. Departamento de Informática
1 Terceros Ekon Sical Departamento de Informática 2 TERCEROS En la aplicación hay dos puntos de menú donde pueden tratarse los terceros dentro de SP Base y en la contabilidad en la entrada específica de
Demo: empezando a desarrollar la aplicación en su parte web
Demo: empezando a desarrollar la aplicación en su parte web En videos anteriores, habíamos empezado por ver la aplicación a la que queremos llegar en ejecución. Luego habíamos estudiado las características
Patterns: Escenario. Paginación
307 : Escenario Filtro sobre los datos Paginación Teniendo la transacción Country y la transacción Customer, queremos lograr hacer la aplicación más vistosa, con consultas con vistas más completas y con
Formato para prácticas de laboratorio
PLAN DE CLAVE CARRERA NOMBRE DE LA ASIGNATURA ESTUDIO ASIGNATURA LSC 2009-2 11290 Introducción a la Programación PRÁCTICA No. 2 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado en Sistemas Computacionales
TIPOS DE DATOS EN ABAP
TIPOS DE DATOS EN ABAP En ABAP existen los diferentes tipos de datos: Declaración de Campos Para declarar variables en un programa ABAP, debemos utilizar la sentencia DATA. Ejemplo: DATA var. Esta sentencia,
PHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Representación de números en la recta real. Intervalos
Representación de números en la recta real. Intervalos I. Los números reales En matemáticas los números reales se componen de dos grandes grupos: los números racionales (Q) y los irracionales (I). A su
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Aplicativos: Cómo se realiza la descarga e instalación de Aplicativos AFIP?
Aplicativos: Cómo se realiza la descarga e instalación de Aplicativos AFIP? La AFIP pone a su disposición los aplicativos necesarios para cumplir con la presentación de las declaraciones juradas y la gestión
EJERCICIO 26 DE EXCEL
EJERCICIO 26 DE EXCEL TABLAS EN EXCEL Tablas En las versiones anteriores de Excel esta característica se conocía como Listas, ahora en esta nueva versión se denomina Tablas. Las tablas facilitan la administración
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas
Teoría de Números Divisibilidad Olimpiada de Matemáticas en Tamaulipas 1. Introducción Divisibilidad es una herramienta de la aritmética que nos permite conocer un poco más la naturaleza de un número,
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque
GUIA No 5. CREACIÓN DE SubVI s
GUIA No 5 CREACIÓN DE SubVI s Una característica importante de LabView es el manejo de jerarquías y el poder utilizar fácilmente un programa anterior como un módulo de otro cualquiera. Cuando un VI es
Fórmulas. Objetivos y Definición. Definir fórmulas nos brinda una forma clave de compartir conocimiento y obtener código generado optimizado
97 Objetivos y Definición Definir fórmulas nos brinda una forma clave de compartir conocimiento y obtener código generado optimizado Cuando el valor de un atributo o variable puede calcularse a partir
Programando el Evento Start, Click o De usuario en un Web Panel
Programando el Evento Start, Click o De usuario en un Web Panel Teníamos un web panel que desplegaba información de los clientes y permitía filtrar la información desplegada por nombre completo del cliente.
Informática I para Bachillerato
CIMAT C++ C/C++ de Datos CIMAT Sesión 15 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad, a diferencia de los arreglos
Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
Semana03[1/17] Funciones. 16 de marzo de Funciones
Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,
Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.
NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida
5 centenas + 2 decenas + 8 unidades, es decir: = 528
Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan
XQuery. Un lenguaje de consulta para XML.
XQuery. Un lenguaje de consulta para XML. Nieves Carralero Colmenar. IES Pedro Mercedes. Junta de Comunidades de Castilla-La Mancha. España. Resumen En este artículo se muestra una introducción práctica
Bing (proveedor de busqueda) Bing es una herramienta de búsqueda que nos ayudará a encontrar lo que buscamos de forma rápida y sencilla.
Bing (proveedor de busqueda) Bing es una herramienta de búsqueda que nos ayudará a encontrar lo que buscamos de forma rápida y sencilla. 0 Construir una búsqueda Si deseamos ver lo mejor de la Web en temas
TP N 4 Redirección de entrada y salida estándar
Taller de GNU/Linux 2002 TP4 hoja 1/5 Universidad Nacional de La Matanza Ingeniería en Informática-Taller de GNU/Linux TP N 4 Redirección de entrada y salida estándar Objetivos: Conceptos de entrada y
Momentos de disparo de reglas en transacciones
Momentos de disparo de reglas en transacciones Cuando vimos las reglas que podemos escribir en las transacciones, dijimos que no era necesario especificar cuándo debe ejecutarse cada una de ellas, ya que
Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)
aprenderaprogramar.com Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A) Sección: Cursos Categoría: Curso Visual Basic Nivel
Unidad II. 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función.
Unidad II Funciones 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función. Función En matemática, una función (f) es una relación entre un conjunto dado X (llamado dominio)
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Intervalos (Segunda Parte)
Intervalos (Segunda Parte) Esta clase, la n 3 de Teoría Musical, es una continuación de la segunda clase, en la cual ya habíamos comenzado a abordar los contenidos relacionados a los Intervalos Musicales.
Consultas SQL INNER JOIN
Consultas SQL INNER JOIN Inner join sólo produce los registros que coinciden en las dos tablas A y B. 2. INNER JOIN TablaB Full outer join produce el conjunto de todos los registros en las tablas A y B,
CAPITULO XII PUENTES DE CORRIENTE ALTERNA
CAPITULO XII PUENTES DE CORRIENTE ALTERNA 2. INTRODUCCION. En el Capítulo IX estudiamos el puente de Wheatstone como instrumento de medición de resistencias por el método de detección de cero. En este
Consulta con salida Chart (Parte I)
Consulta con salida Chart (Parte I) Ya hemos visto en videos anteriores la creación de consultas con salida Table y Pivot table. Veamos ahora la creación de una consulta con salida Chart, o sea, vista
Excel 2013 Completo. Duración: Objetivos: Contenido: 80 horas
Excel 2013 Completo Duración: 80 horas Objetivos: Descripción del funcionamiento básico de la hoja de cálculo Microsoft Excel 2013, viendo las funciones disponibles en este programa a la hora de crear
Sistema de Información de Compras y Contrataciones del Estado (SICE) Gestión de pedidos para compras centralizadas
Sistema de Información de Compras y Contrataciones del Estado (SICE) Gestión de pedidos para compras centralizadas INFORMACIÓN DE INTERÉS Última actualización: 02/09/2012 Nombre actual del archivo: Gestión
Modificación de dato relevante, evento timer y calendarios
Modificación de dato relevante, evento timer y calendarios Continuando con el diagrama, la tarea Evaluate Customer deberá evaluar la situación financiera del cliente y almacenar la decisión en un dato
Declaración Informativa de Operaciones con Terceros (DIOT) en Aspel-COI 7.0
Declaración Informativa de Operaciones con Terceros (DIOT) en Aspel-COI 7.0 Obtén esta Declaración de manera muy sencilla en Aspel-COI 7.0, sólo tienes que realizar ciertas configuraciones para que el
Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.
Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función. Se suele llamar método de Newton-Raphson al método de Newton cuando se utiliza para calcular los ceros
Consultas en JPA-QL. Sistemas de Persistencia de Objetos
Consultas en JPA-QL Sistemas de Persistencia de Objetos Contenidos nov-08 Alberto MFA [email protected] 2 Preparación y ejecución nov-08 Alberto MFA [email protected] 3 Creación HQL y JPA QL QBC y QBE (Query By
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
PARAMETRIZACION CONTABLE DEL MÓDULO VENTAS
PARAMETRIZACION CONTABLE DEL MÓDULO VENTAS Si en el módulo Procesos Generales-Datos Contables-Herramientas para Integración Contable indicó que integra con el módulo Tango Astor Contabilidad (Selección
ESTRUCTURA DE NAVEGACIÓN MÓDULO ALMACENES - REPORTES TABLA DE CONTENIDO
Funcionalidad [Reportes - Soporte] ESTRUCTURA DE NAVEGACIÓN MÓDULO ALMACENES - REPORTES TABLA DE CONTENIDO FUNCIONALIDAD PÁG. REPORTES PÁG. Soporte 1 Catálogo de Elementos 2 Clasificación de Elemento 6
Manual de Usuario Proveedor. Módulo Monitor de Obras
Manual de Usuario Proveedor www.iconstruye.com Módulo Monitor de Obras ÍNDICE... 2 DESCRIPCIÓN GENERAL... 3 CONFIGURACIÓN... 3 FUNCIONALIDADES... 4 1. NUEVO ESCRITORIO MONITOR DE OBRAS... 4 2. BUSCADOR
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
ENLACE CON EL SISTEMA NOI
Enlace NOI 1 ENLACE CON EL SISTEMA NOI. El sistema NOI, es un programa de cálculo de Nómina, el cual permite realizar la importación de Faltas, percepciones y deducciones, así como la exportación de las
Cronos Líneas de tiempo
Cronos Líneas de tiempo Qué es Cronos? Cronos es una aplicación que permite realizar líneas de tiempo. Se descarga desde el portal educ.ar (http://www.educ.ar/recursos/ver?rec_id=92550) y se instala en
Versión 1.0. Manual del Usuario Proveedor
hipercompras Versión 1.0 Manual del Usuario Proveedor INDICE DE CONTENIDOS Requerimientos de Software:... 4 Instalación y configuración del MS Internet Explorer 5.0...4 Ingreso a HiperCompras... 6 Descripción
Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.
DIRECCIONAMIENTO IP Un computador puede estar conectado a más de una red. En este caso, se le debe asignar al sistema más de una dirección. Cada dirección identificará la conexión del computador a una
Materia: Matemática de Octavo Tema: Conjunto Q (Números Racionales)
Materia: Matemática de Octavo Tema: Conjunto Q (Números Racionales) Vamos a recordar los conjuntos numéricos estudiados hasta el momento. (1.) Conjunto de los números Naturales Son aquellos que utilizamos
Submenú Cuenta corriente Clientes
CUENTAS CORRIENTES DE CLIENTES Este submenú incluido en el programa de gestión de ventas, es el encargado de dar las herramientas de administración de las cuentas corrientes de clientes, permite ingresar
Introducción a la Programación en Visual Basic y su aplicación en Excel. M.I. Jaime Alfonso Reyes Cortés
Introducción a la Programación en Visual Basic y su aplicación en Excel. M.I. Jaime Alfonso Reyes Cortés TEMA 4 CREACIÓN DE FORMULARIOS Y CONTROLES EN EXCEL. Inserción de controles en una hoja de cálculo
Qué son los subtipos?
Qué son los subtipos? Hasta ahora hemos visto que GeneXus establece relaciones entre transacciones -y entre tablas- basándose en los nombres de atributos que encuentra iguales. Por ejemplo, en la transacción
Manual Gestión de Ambientes
Manual Gestión de Ambientes Ingrese a www.senasofiaplus.edu.co con el rol Gestión desarrollo curricular en el paquete funcional Gestión de Ambientes. En este paquete podrá planear, programar y crear los
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Figura 1: Abriendo el Performance Monitor Figura 2: Pantalla Inicial del Monitor
Universidad de Los Andes Departamento de Ingeniería de Sistemas y Computación Infraestructura Computacional ISIS 2203 (C1) Manual Performance Monitor Windows Server 2008 Preparado por: Asistente Graduado
SISTEMAS DE NUMERACION
SISTEMAS DE NUMERACION INTRODUCCION El número de dígitos de un sistema de numeración es igual a la base del sistema. Sistema Base Dígitos del sistema Binario 2 0,1 Octal 8 0,1,2,3,4,5,6,7 Decimal 10 0,1,2,3,4,5,6,7,8,9
Práctica #1 Crear Base de Datos
Práctica #1 Crear Base de Datos Contenido: Creación de tablas de datos Selección de distintos tipos de datos Aplicación de propiedades de campos Objetivo: Al término de esta práctica el alumno deberá de
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Mejoras en el Re-instalable 06 de Aspel-BANCO 4.0
Mejoras en el Re-instalable 06 de Aspel-BANCO 4.0 En este número de Enlace Aspel, se describen las mejoras que se realizaron al Sistema Aspel- BANCO 4.0 con el re-instalable No.6, la forma en la que se
MATERIAL INTRODUCTORIO ORACLE 11G
MATERIAL INTRODUCTORIO ORACLE 11G Esp. JONATHAN GUERRERO ASTAIZA Capacidades de una sentencia SELECT La sentencia SELECT recibe información a partir de una base de datos. Con la sentencia SELECT usted
1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón
1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado
