Upload
moises-villalba
View
98
Download
5
Embed Size (px)
Citation preview
Ejemplo de Examen Analista Senior GeneXus X Ev1
Solo existe una respuesta considerada correcta para cada pregunta.
Al lado del nmero de pregunta se indica el porcentaje que vale la misma.
El examen se aprueba con 70% y dura 180 minutos.
No se restan puntos por respuestas incorrectas.
1. [5 %]
Se tiene una aplicacin GeneXus para un casino. La misma cuenta con transacciones para
registrar los slots (mquinas de juegos) as como los tcnicos encargados de repararlos.
Sabiendo que un slot (Slot) puede ser reparado por varios tcnicos (Technician), y que un mismo
tcnico puede reparar varios slots, determine cul es el diseo de transacciones correcto para
representar esta realidad.
a)
b)
c)
Slot { SlotId* SlotDescription Technician { TechnicianId* TechnicianName } }
Slot { SlotId* SlotDescription Technician { TechnicianId* TechnicianName } }
Technician { TechnicianId* TechnicianName }
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Technician { TechnicianId* SlotId* TechnicianName }
d)
e) Ninguna de las anteriores
2. [5 %]
Se tiene una aplicacin GeneXus para un casino. La misma cuenta con transacciones para
registrar los slots as como los tipos de slot existentes.
Sabiendo que cada slot (Slot) corresponde a un tipo determinado (Type) y slo uno, y que
pueden haber muchos slots del mismo tipo, determine cul es el diseo de transacciones
correcto para representar esta realidad.
a)
b)
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Technician { TechnicianId* TechnicianName }
Type { TypeId* TypeDescription Slot { SlotId* SlotDescription } }
Slot { SlotId* SlotDescription }
Slot { SlotId* SlotDescription Type { TypeId* TypeDescription } }
c)
d)
3. [5 %]
Se tiene una aplicacin GeneXus para un casino.
Dada la siguiente transaccin, determine lo que considere correcto.
a) Se est representando que por cada slot hay muchos premios y cada premio puede ser
brindado por muchos slots.
b) Se est representando que por cada slot hay muchos premios, y que cada premio
corresponde nicamente a ese slot y no a otro (teniendo ambos actores de la realidad existencia
por s misma).
c) Se est representando que por cada slot hay muchos premios, y que cada premio
corresponde nicamente a ese slot y no a otro (teniendo Slot existencia por s mismo y SlotPrize
existencia dependiente de Slot).
d) Se est representando que por cada slot hay un solo premio y por cada premio un solo slot
que lo brinda.
Type { TypeId* TypeDescription }
Slot { SlotId* SlotDescription TypeId TypeDescription }
Type { TypeId* TypeDescription SlotId SlotDescription }
Slot { SlotId* SlotDescription }
Slot { SlotId* SlotDescription Prize { PrizeId* PrizeDescription } }
4. [5 %]
Se tiene una aplicacin GeneXus para un casino. La misma cuenta con transacciones para
registrar los clientes as como las tarjetas VIP que se emiten para los mismos.
Sabiendo que cada cliente (Customer) puede tener una nica tarjeta VIP (VIPCard) y que cada
tarjeta VIP solo puede pertenecer a un cliente, determine cul es el diseo de transacciones
correcto para representar esta realidad.
a)
b)
c)
d)
e) Ninguna de las anteriores
Customer { CustomerId* CustomerName }
VIPCard { VIPCardId* VIPCardObservations CustomerId CustomerName }
Customer { CustomerId* CustomerName VIPCardId VIPCardObservations }
VIPCard { VIPCardId* VIPCardObservations }
Customer { CustomerId* CustomerName }
VIPCard { VIPCardId* VIPCardObservations CustomerId CustomerName }
Unique Index
Customer { CustomerId* CustomerName }
VIPCard { VIPCardId* VIPCardObservations VIPCardCustomerId VIPCardCustomerName }
Subtype group: VIPCardCustomer VIPCardCustomerId subtype of CustomerId VIPCardCustomerName subtype of CustomerName
5. [2.5%]
Se tiene una aplicacin GeneXus para un casino.
Dado el siguiente diseo de transacciones, determine la estructura fsica de las TABLAS que
GeneXus disear y crear.
a)
b)
c)
d)
e) Ninguna es correcta
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Technician { TechnicianId* TechnicianName
}
Registration { RegistrationId* RegistrationDate Fx RegistrationAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName } }
SLOT SlotId* SlotDescription TechnicianId
TECHNICIAN TechnicianId* TechnicianName
REGISTRATION RegistrationId* RegistrationDate
REGISTRATIONSLOT RegistrationId* SlotId* TechnicianId
SLOT SlotId* SlotDescription TechnicianId
TECHNICIAN TechnicianId* TechnicianName
REGISTRATION RegistrationId* RegistrationDate RegistrationAmount
REGISTRATIONSLOT RegistrationId* SlotId* TechnicianId
SLOT SlotId* SlotDescription TechnicianId
TECHNICIAN TechnicianId* TechnicianName
REGISTRATION RegistrationId* RegistrationDate
REGISTRATIONSLOT RegistrationId* SlotId*
SLOT SlotId* SlotDescription TechnicianId
TECHNICIAN TechnicianId* TechnicianName
REGISTRATION RegistrationId* RegistrationDate RegistrationAmount
REGISTRATIONSLOT RegistrationId* SlotId*
6. [2.5%]
Se tiene una aplicacin GeneXus para un casino.
Dado el siguiente diagrama de Bachman, determine la tabla extendida de la tabla base
RESERVATION:
a) RESERVATION + RESERVATIONSLOT
b) RESERVATION + CUSTOMER
c) RESERVATION + RESERVATIONSLOT + SLOT
d) Ninguna es correcta
7. [2.5%]
Se tiene una aplicacin GeneXus para un casino. La misma cuenta con un conjunto de
transacciones para registrar los slots (Slot), clientes (Customer) y reserva de slots (Reservation)
segn se muestra.
Determine la tabla extendida de la tabla base RESERVATIONSLOT.
a) RESERVATIONSLOT + RESERVATION
b) RESERVATIONSLOT + SLOT
c) RESERVATIONSLOT + RESERVATION + SLOT
d) RESERVATIONSLOT + RESERVATION + SLOT + CUSTOMER
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
RESERVATIONSLOT
CUSTOMER RESERVATION
SLOT
8. [1.5%]
Se tiene una aplicacin GeneXus para un Casino. La misma cuenta con un conjunto de
transacciones para registrar los slots (Slot), y la reserva de slots (Reservation), por parte de los
clientes (Customer) segn se muestra.
En algunas ocasiones se realizan reservas sin la necesidad de especificar el cliente (CustomerId).
A partir del diseo propuesto, indique la afirmacin que cosidere correcta:
a. Por el hecho de haber definido que CustomerId admite nulos, no se controlar la integridad
referencial contra la tabla CUSTOMER.
b. Si bien se defini que CustomerId admite nulos, de especificarse un valor, se controlar la
integridad referencial contra la tabla CUSTOMER.
c. Ninguna de las opciones anteriores es correcta.
9. [3.5%]
Se tiene una aplicacin GeneXus para un casino. Esta cuenta con un conjunto de transacciones
para registrar los slots (Slot) y los tcnicos encargados de las reparaciones (Technician).
Cada vez que se ingresa un nuevo slot se le debe asociar un tcnico responsable y uno suplente.
El sistema deber controlar que no sea el mismo.
Determine si es verdadero o falso que la siguiente alternativa resuelve correctamente el
requerimiento anterior.
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
Nullable = yes
Slot { SlotId* SlotDescription TitularTechnicianId TitularTechnicianName SubstituteTechnicianId SubstituteTechnicianName }
Technician { TechnicianId* TechnicianName }
Verdadero: Falso:
10. [ 3.5%]
Se tiene una aplicacin GeneXus para un casino. Esta cuenta con un conjunto de transacciones
para registrar los slots (Slot) y los tcnicos encargados de las reparaciones (Technician).
Un slot puede ser reparado por un solo tcnico y cada tcnico tiene asignados varios slots para
reparar en caso que lo requieran. Es as que a lo hora de facturar los servicios de un tcnico
(Invoice) se debe verificar que los slots detallados efectivamente estn a cargo del tcnico de la
factura.
Determine de las siguientes opciones la que implementa este requerimiento.
a)
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription InvoiceSlotAmount } }
Technician { TechnicianId* TechnicianName }
Slot Rules: Error( Invalid Substitute Technician) if TitularTechnicianId =SubstituteTechnicianId;
Subtype group: SlotTechnicians TitularTechnicianId subtype of TechnicialId TitularTechnicianName subtype of TechnicianName SubstituteTechnicianId subtype of TechnicianId SubstituteTechnicianName subtype of TechnicianName
b)
c)
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Invoice Rules: Error( Invalid Slot) if TechnicianId TechnicianId;
Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName InvoiceSlotAmount } }
Technician { TechnicianId* TechnicianName }
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Subtype group: InvoiceTechnician InvoiceTechnicianId subtype of TechnicialId InvocieTechnicianName subtype of TechnicianName
Invoice { InvoiceId* InvoiceDate InvoiceTechnicianId InvoiceTechnicianName InvoiceAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName InvoiceSlotAmount } }
Technician { TechnicianId* TechnicianName }
Invoice Rules: Error( Invalid Slot) if TechnicianId InvoiceTechnicianId;
d)
e) Ninguna de las anteriores
11. [ 2.5%]
Se tiene una aplicacin GeneXus para un casino.
Se necesita registrar la informacin de los tcnicos que reparan los slots, as como la de los
clientes del casino.
Como tanto los tcnicos como los clientes son personas, de las que se registra un conjunto de
informacin comn (nombre y telfono), se desea registrar la info general una sola vez.
Luego slo resta registrar la informacin particular (por ejemplo, si la persona es un cliente, se
desea registrar si es un cliente VIP y el crdito que le proporciona el casino, y si es un tcnico,
interesa registrar su salario).
Determine si es verdadero o falso que la siguiente solucin resuelve la necesidad descripta
adecuadamente en GeneXus.
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Subtype group: InvoiceSlotTechnician InvoiceSlotTechnicianId subtype of TechnicialId InvocieSlotTechnicianName subtype of TechnicianName
Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription InvoiceSlotTechnicianId InvoiceSlotTechnicianName InvoiceSlotAmount } }
Technician { TechnicianId* TechnicianName }
Invoice Rules: Error( Invalid Slot) if TechnicianId InvoiceSlotTechnicianId;
Verdadero: Falso:
12. [ 1.5%]
Se tiene una aplicacin GeneXus para un casino. Se cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Suponga que en la transaccin Reservation se declar la regla:
ReservationDate = Today() on AfterInsert;
La regla propuesta corresponde a una definicin funcionalmente correcta en GeneXus.
Esta afirmacin es verdadera o falsa?
Verdadero: Falso:
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
Person { PersonId* PersonName PersonPhone }
Technician { TechnicianId* TechnicianName TechnicianPhone TechnicianSalary PersonId }
Customer { CustomerId* CustomerName CustomerPhone CustomerIsVIP CustomerCredit PersonId }
ndice Unique en esta tabla compuesto por PersonId
ndice Unique en esta tabla compuesto por PersonId
13. [1.5 %]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Suponga que en la transaccin Reservation se declar la regla:
ReservationSlotTime += 60 if SlotId >100 on BeforeUpdate;
La regla propuesta corresponde a una definicin funcionalmente correcta en GeneXus.
Esta afirmacin es verdadera o falsa?
Verdadero: Falso:
14. [1.5 %]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Suponga que en la transaccin Reservation se declar la regla:
Something.call(SlotId) on BeforeComplete;
La regla propuesta corresponde a una definicin funcionalmente correcta en GeneXus.
Esta afirmacin es verdadera o falsa?
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
Verdadero: Falso:
15. [ 2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Suponga que luego de insertarse una reserva, se necesita invocar a un procedimiento que
procese de alguna manera los datos de la reserva (cabezal y lneas).
Suponiendo que es necesario invocar al procedimiento luego de efectuado el commit,
determine cul de las siguientes reglas de invocacin en la transaccin Reservation es la
correcta:
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
a) Proc.call( ReservationId ) if Insert on BeforeComplete;
b) Proc.call( ReservationId ) If Insert on Commit;
c) Proc.call( ReservationId ) if Insert on AfterComplete;
d) Proc.call( ReservationId ) on AfterInsert;
e) Ninguna de las anteriores
16. [ 2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Dado el siguiente conjunto de reglas declaradas en la transaccin Reservation, determine el
orden en el cual sern ejecutadas.
a) Las reglas se disparan en el orden en el que han sido declaradas
b) El orden de ejecucin ser: b. - c. - d. - a.
c) El orden de ejecucin ser: c. - b. - d. - a.
d) Ninguna de las opciones anteriores es correcta
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName CustomerIsVIP }
Reservation { ReservationId* ReservationDate CustomerId CustomerName CustomerIsVIP Slot { SlotId* SlotDescription ReservationSlotTime } }
Reservation rules: a. Msg( VIP Customer Registration) if CustomerIsVIP on AfterComplete; b. ProcX.call(ReservationDate) on AfterInsert; c. ProcA.call( SlotId) on BeforeInsert; d. ProcB.call( ResrevationId ) on BeforeComplete;
17. [2.5%]
En las reglas de las transacciones slo se pueden actualizar atributos que pertenecen
fsicamente a la tabla base de cada nivel, y no a su extendida.
Esta aseveracin es verdadera o falsa?
Verdadero: Falso:
18. [2%]
Se tiene una aplicacin GeneXus para un casino. Esta cuenta con transacciones para registrar los
slots (Slot), y la reserva de los slots (Reservation) por parte de los clientes (Customer).
Dado el siguiente source de un procedimiento, determine la tabla de partida y la tabla de
evaluacin (la que se navega para contar registros) de la frmula local declarada.
a) Tabla de partida: RESERVATION Tabla de evaluacin: RESERVATIONSLOT
b) Tabla de partida: RESERVATION Tabla de evaluacin: RESERVATION
c) Tabla de partida: CUSTOMER Tabla de evaluacin: RESERVATION
d) Tabla de partida: RESERVATIONSLOT Tabla de evaluacin: RESERVATIONSLOT
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
Source: For each &SlotsQuantity = Count( ReservationSlotTime) Print printblock1 // ReservationDate, CustomerName, &SlotsQuantity endfor
19. [2%]
Se tiene una aplicacin GeneXus para un casino. Esta cuenta con transacciones para registrar los
slots (Slot), y la reserva de los slots (Reservation) por parte de los clientes (Customer)
Se quiere imprimir un listado de los clientes que tienen ms de 10 reservas efectuadas para la
fecha de hoy.
Determine si es verdadero o falso que el source que se muestra representa una solucin al
requerimiento.
Verdadero: Falso:
20. [2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Dados el siguiente par de for eachs anidados, determine sus tablas base.
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }
Source: For each Where Count( ReservationDate, ReservationDate = Today() ) > 10 Print printblock1 // CustomerId, CustomerName endfor
a) For each externo: RESERVATIONSLOT For each interno: CUSTOMER
b) For each externo: RESERVATION For each interno: CUSTOMER
c) For each externo: SLOT For each interno: CUSTOMER
d) For each externo: RESERVATIONSLOT For each interno: RESERVATIONSLOT
21. [3%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Dada la implementacin del procedimiento que figura a continuacin, determine cul ser el
resultado de su ejecucin.
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }
SUM( ReservationSlotAmount)
For each Print printblock1 // ReservationId, ReservationDate y SlotDescritpion For each Print printblock2 // CustomerName endfor Endfor
a) Producto cartesiano: se listan todos los clientes de la tabla CUSTOMER y todos los slots
registrados en la tabla RESERVATIONSLOT, sin hacer ningn filtro en la informacin. Es decir,
saldr por cada cliente, todos los slots de todas las reservas.
b) Join: se listan todos los clientes de la tabla CUSTOMER y por cada cliente, se listan slo los
slots registrados en la tabla RESERVATIONSLOT que corresponden a reservaciones del
cliente (se filtra automticamente por CustomerId).
c) Ninguna de las anteriores.
22. [4%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Se solicita un listado que muestre todos los clientes y para cada uno sus reservas de slots.
(Interesa que salgan todos los clientes, aunque no haya reservas para ellos).
Determine cul es la implementacin que resuelve este requerimiento.
For each Print printblock1 // CustomerName For each Print printblock2 // ReservationId, ReservationDate y SlotDescritpion endfor Endfor
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }
SUM( ReservationSlotAmount)
a)
b)
c) Ninguna es correcta
23. [4%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Se solicita un listado que muestre a los clientes y para cada uno sus reservas de slots. Interesa
que salgan en el listado solamente aquellos clientes que tengan reservas.
Determine si es verdadero o falso que el source que se muestra representa una solucin al
requerimiento.
For each order CustomerId defined by ReservationDate Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor
For each Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }
SUM( ReservationSlotAmount)
Verdadero: Falso:
24. [3%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los tipos de slots (SlotType), clientes (Customer) y las reservas de
slots (Reservation), segn se muestra.
Se desea generar un listado de reservas de slots como se muestra (es decir por tipo de slot, para
cada cliente listar sus reservas; y no se desea que salgan tipos de slots y clientes si no hay
reservas para los mismos).
Determine la opcin de implementacin que considere correcta.
For each defined by ReservationDate Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
Slot Type: 1 Wizards
Customer: 15 Ann Smith
Reservtion Id Date Slot Description .. . . .. . . .. . .
Customer: 120 Peter Jones
Reservtion Id Date Slot Description .. . . .. . .
Slot Type: 1 Wizards
Customer: 15 Ann Smith
Reservtion Id Date Slot Description .. . .
a)
b)
c) Ninguna de las anteriores
25. [2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Sabiendo que una consulta frecuente ser recuperar todas las reservas de un slot en una fecha
determinada, se implement el data selector que se muestra.
Luego se implement el web panel que se muestra abajo, el cual referencia al Data Selector.
Seleccione lo que considere correcto.
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
Data Selector: SlotReservation Parameters:
&date
&slot Conditions:
ReservationDate = &date
SlotId = &slot
For each order SlotTypeId Print TypePB // SlotTypeId, SlotTypeDescription For each order CustomerId Print CustomerPB // CustomerId, CustomerName For each order ReservationId Print ReservationPB // ReservationId, ReservationDate, SlotDescription Endfor Endfor Endfor
For each order SlotTypeId, CustomerId, ReservationId Print TypePB // SlotTypeId, SlotTypeDescription For each Print CustomerPB // CustomerId, CustomerName For each Print ReservationPB // ReservationId, ReservationDate, SlotDescription Endfor Endfor Endfor
Web panel Form:
a) el web panel implementado, al ejecutarse desplegar en el grid los nombres de los clientes
que tienen reservas para el slot 1 en la fecha de hoy, pero se podrn visualizar nombres de
clientes repetidos, dado que la tabla base del web panel ser RESERVATIONSLOT.
b) el web panel implementado, al ejecutarse desplegar en el grid los nombres de los clientes
que tienen reservas para el slot 1 en la fecha de hoy, y se visualizar el nombre de cada
cliente solamente una vez, dado que la tabla base del web panel ser CUSTOMER.
c) Ninguna de las opciones anteriores es correcta.
26. [3%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer) y las reservas de slots (Reservation), segn
se muestra.
Se necesita obtener una coleccin de datos, estructurados como se muestra en el SDT de abajo,
que se cargar con los clientes del Casino. De cada cliente se recuperar adems una lista de los
slots que tiene reservados a partir de una fecha dada.
Indique si es verdadero o falso que la solucin propuesta abajo corresponde a una
implementacin correcta del requerimiento.
Slot { SlotId* SlotDescription }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
Verdadero: Falso:
27. [3%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con un conjunto de transacciones
para registrar los slots (Slot), los clientes (Customer), las reservas de slots (Reservation) por las
que se les cobrar. Interesa generar y grabar automticamente una factura por cliente, con el
total por concepto de reservas de slots en un perodo de facturacin determinado.
Para ello se declara el Data Provider GetInvoices que se indica abajo.
Indique si es verdadero o falso que: el Data Provider slo permite cargar datos estructurados,
pero no permite grabar en la base de datos. Para grabar la informacin deber invocarse al DP
desde otro objeto y grabar explcitamente, como se muestra abajo.
Data Provider Source: Rule: parm( &dateFrom); Client { Id = CustomerId Name = CustomerName SlotsAmount = Count( SlotId, ReservationDate >= &dateFrom) SlotsReserved where ReservationDate >= &dateFrom
{ Slot { Description = SlotDescription } }
}
Slot { SlotId* SlotDescription SlotReservationPrice }
Customer { CustomerId* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription SlotReservationPrice } }
Invoice { InvoiceId* InvoiceDate CustomerId CustomerName InvoiceStartPeriodDate InvoiceEndPeriodDate InvoiceAmount }
Business Component = True
Autonumber = True
Parm( in: &startDate, in: &endDate ); ----------------------------------------------------------------------------------------------- Invoice {
InvoiceDate = Today() CustomerId InvoiceStartPeriodDate = &startDate InvoiceEndPeriodDate = &endDate InvoiceAmount = Sum( SlotReservationPrice, ReservationDate >= &start and ReservationDate
a)
Slot { SlotId* SlotDescription Reservation { SlotReservationDate* ShiftId* ShiftDescription CustomerId CustomerName SlotReservationBonus }
Customer { CustomerId* CustomerName }
Shift { ShiftId* ShiftDescription ShiftStartTime ShiftEndTime }
= True if ShiftId < 5; False otherwise
Error( Invalid reservation date ) if ReservationSlotDate < Today();
&reservations = CountCustomerReservation.udp( ReservationSlotDate, CustomerId );
Error( Number of reservations exceeded) if &reservation > 12;
Msg( Customer has extra bonus ) if SlotReservationBonus;
// &slot data type: Slot
// &reservation data type: Slot.Reservation
&slot.SlotId = 100
&slot.SlotDescription = The Wizard
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 1
&reservation.CustomerId = &customerId
&slot.Reservation.Add( &reservation )
&reservation = new ()
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 7
&reservation.CustomerId = &customerId
&slot.Reservation.Add( &reservation )
&slot.Save()
Business Component = True
b)
parm( in: &customerId, in: &date);
// &slot data type: Slot
// &reservation data type: Slot.Reservation
&slot.SlotId = 100
&slot.SlotDescription = The Wizard
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 1
&reservation.CustomerId = &customerId
&slot.Reservation.Add( &reservation )
&reservation = new ()
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 7
&reservation.CustomerId = &customerId
&slot.Reservation.Add( &reservation )
&slot.Save()
if &slot.Success()
Commit
else
Rollback
endif
c)
d) Ninguna de las opciones anteriores es correcta.
parm( in: &customerId, in: &date);
// &slot data type: Slot
// &reservation data type: Slot.Reservation
&slot.SlotId = 100
&slot.SlotDescription = The Wizard
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 1
&reservation.CustomerId = &customerId
&slot.Save()
&slot.Reservation.Add( &reservation )
&reservation = new ()
&reservation.SlotReservationDate = &date
&reservation.ShiftId = 7
&reservation.CustomerId = &customerId
&slot.Reservation.Add( &reservation )
&slot.Save()
if &slot.Success()
Commit
else
Rollback
endif
29. [2.5%]
Se tiene una aplicacin GeneXus web para un casino, que cuenta con transacciones para
registrar los slots (Slot) y los tipos de slots (SlotType), segn se muestra.
Cada vez que se ingresa un nuevo tipo de slot al sistema es porque ya se cuenta con un slot de
dicho tipo, que debe ingresarse inmediatamente, de manera tal que no quede un tipo de slot sin
slot registrado (comparten la misma UTL).
Indique, de las siguientes, la opcin correcta (de haber ms de una, la ms completa).
a) Invocar desde la transaccin SlotType, antes del Commit, a la transaccin Slot pasndole el
valor de SlotTypeId como parmetro.
b) Invocar desde la transaccin SlotType, inmediatamente antes del Commit, a un
procedimiento que ingrese el slot, pasndole el valor de SlotTypeId por parmetro. Se
deshabilita el Commit on Exit del procedimiento.
c) Crear un web panel con dos variables: una de tipo de datos = business component
SlotType y otra de tipo de datos = business component Slot, insertndolas en el form y
agregando un botn de confirmacin con un evento asociado que realiza las dos
grabaciones (Save) y en caso de no detectarse errores, que ejecute el comando Commit.
d) a) y b) son correctas (y las nicas correctas).
e) b) y c) son correctas (y las nicas correctas).
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
30. [1.5%]
Se tiene una aplicacin GeneXus web para un casino.
Se desea disear un web panel que muestre en un grid Freestyle cada tcnico, con los slots que
tiene asignados para reparar, y abajo la cantidad de esos slots.
Determine la opcin de implementacin que considere correcta.
a)
b)
c)
d)
e) Ninguna de las anteriores
Technician { TechnicianId* TechnicianName }
Slot { SlotId* SlotDescription TechnicianId TechnicianName }
Freestyle Grid: Grid1
Grid: Grid2
31. [3.5%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con una transaccin para registrar
los tipos de slots (SlotType) y otra para registrar los slots (Slot).
Se desea disear un web panel que permita seleccionar un tipo de slot y que a partir de all
despliegue en un grid todos los slots existentes de ese tipo. Para ello se define el web panel que
se muestra.
Determine de las opciones que siguen, la correcta.
a) El web panel funcionar correctamente, dado que por la presencia de los atributos SlotTypeId
en las conditions y SlotId, SlotDescription en el evento Load, GeneXus inferir una tabla base
implcita, y sta resultar ser SLOT. Por haber tabla base implcita, no es necesario colocar
comando Load dentro del evento Load, ya que el mismo se disparar una vez por slot de tipo de
slot seleccionado.
b) El web panel arrojar un error en la especificacin, dado que GeneXus entiende que por no
haber atributos en el grid, ser sin tabla base. Por esto, no tiene sentido ni definir una condition,
ni que se quieran utilizar atributos en el evento Load, fuera de un comando For each.
c) El web panel no arrojar un error, pero est mal programado y no mostrar nada en el grid,
dado que para GeneXus no hay tabla base implcita, por lo que faltara colocar un for each
dentro del evento Load para definir la carga explcitamente y emplear el comando Load para
cargar cada lnea en el grid.
d) Ninguna de las opciones anteriores es correcta.
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
32. [3%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con una transaccin para registrar
los tipos de slots (SlotType) y otra para registrar los slots (Slot).
Se desea disear un web panel que:
1) muestre todos los slots en un grid
2) muestre debajo del grid la cantidad de slots que son de los tipos 3, 5 y 7
3) cuando el usuario seleccione una lnea del grid, se pueda invocar a otro web panel que
muestre informacin del tipo de slot correspondiente
Para resolver estas necesidades, se defini el web panel que se muestra, donde en el grid no se
agrega ningn atributo no visible. Seleccione la opcin que considere correcta.
a) El web panel resuelve solamente el requisito 1) adecuadamente
b) El web panel resuelve solamente los requisitos 1) y 2) adecuadamente
c) El web panel resuelve los 3 requisitos adecuadamente
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
AllowSelection=True
33. [2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con transacciones para registrar los
slots (Slot), clientes (Customer) y reservas de slots (Reservation).
Para mostrar todos los slots que tienen reservas para la fecha de hoy, junto con la cantidad de
reservas, se ha implementado el web panel que se muestra.
Suponiendo que solamente 2 slots tienen reservas para la fecha, y que para el primero hay 5
reservas y para el segundo 4. Determine la cantidad de veces que se disparar el evento Load
del grid al ejecutar el web panel.
a) 9 veces
b) 2 veces
c) 11 veces
d) Ninguna de las anteriores
Slot { SlotId* SlotDescription }
Customer { Customerd* CustomerName }
Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }
34. [1%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con transacciones para registrar los
slots (Slot), y sus tipos (SlotType) como se indica.
Se desea implementar un web panel con dos grids paralelos, pero cuyas cargas estn
relacionadas de la siguiente manera: que en el primer grid se muestren los tipos de slots y en el
segundo grid los slots, de manera tal que cuando el usuario seleccione un tipo de slot del grid1
(propiedad AllowSelection habilitada), en el segundo grid slo se muestren los slots de ese tipo.
Determine de las siguientes, cul es la implementacin correcta.
a) Como ambos grids tienen tabla base y estn relacionadas, GeneXus automticamente
resuelve que una vez que el usuario elija una lnea del grid1, se carguen automticamente en el
grid2 los slots relacionados.
b) Si bien ambos grids tienen tabla base y las mismas estn relacionadas, GeneXus no establece
relacin entre ellos, por lo que hay que implementarlo. Para ello alcanza con hacer lo que sigue
y no es necesario que la variable &typeId est en pantalla.
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
Grid: Grid2 Grid: Grid1
c) La implementacin de la opcin b) sera correcta slo si se colocara la variable &typeId en
pantalla (oculta).
d) Ninguna de las opciones anteriores es correcta.
35. [2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con las transacciones para registrar
los slots (Slot) y sus tipos (SlotType) como se indica.
Se aplica el pattern work with a ambas transacciones, y se desea que el web panel generado
WWSlotType no ofrezca la posibilidad de eliminar tipos de slots.
Elija la opcin que considere correcta y adecuada para implementar este requerimiento.
a) Se edita el web panel generado automticamente por el pattern, WWSlotType y se elimina
la columna con la variable &Delete y la programacin de los eventos que la referencian.
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
b) Se edita la solapa del pattern de la transaccin SlotType y en el nodo modes que se
muestra, se editan sus propiedades, cambiando el valor de la propiedad delete: de default a
false.
c) Se edita la solapa del pattern de la transaccin SlotType y en el nodo View( Slot Type
Information) , se expande el mismo, y dentro del Tab (General) se busca la propiedad
Action(Delete) que se muestra, y se le cambia su valor de default a false.
d) Ninguna de las opciones anteriores es correcta.
36. [2%]
Se tiene una aplicacin GeneXus para un casino, que cuenta con las transacciones para registrar
los slots (Slot) y sus tipos (SlotType) como se indica.
Se aplica el pattern work with a ambas transacciones. Se desea personalizar el Work With Slot
Types generado, para poder invocar a un web panel con un botn debajo del grid, que abra un
web panel MySlotTypeQuery, que tiene implementada una consulta dinmica donde pueden
realizarse grficas de diversos tipos sobre los tipos de slots.
Determine si es verdadero o falso que para resolver este requerimiento, alcanza con crear una
nueva accin en la solapa Patterns de la transaccin SlotType como se muestra abajo.
Verdadero: Falso:
SlotType { SlotTypeId* SlotTypeDescription }
Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }
37. [1 %]
Se tiene una aplicacin GeneXus para un Casino.
Hasta el momento se trabaj sobre la versin Casino, que se acaba de instalar en el cliente.
Ahora se necesita continuar con el desarrollo, implementando un nuevo mdulo sin que estos
cambios afecten a la versin que tiene el cliente.
Para eso se deber:
a) Crear una Frozen version y comenzar a desarrollar sobre ella.
b) Crear la Frozen version Version1 y a partir de ella crear una nueva Development version
(Upgrades for Version1) y all comenzar a desarrollar el mdulo.
c) Se debe crear un nuevo Environment y setearlo como activo. Luego desarrollar en este
environment el nuevo mdulo.
d) Ninguna de las anteriores
38. [1%]
Se tiene una aplicacin GeenXus para un Casino.
Como an no se sabe cul ser la plataforma final, se ha definido un environment .NET y otro
environment Java.
El environment por defecto es .NET, y luego de haberse desarrollado varios de sus mdulos, se
desea actualizar todas las definiciones en el environment Java.
Determine de las opciones siguientes, la que resuelve esa actualizacin.
a) Se debe provocar un impacto sobre el Environment Java, a partir del Environment .NET.
b) No es necesario hacer nada, dado que todo cambio se aplica automticamente a todos los
environments existentes.
c) Se debe utilizar Change Defender
d) Ninguna de las anteriores
Comentarios adicionales para quienes se preparen con este examen de
ejemplo
Si bien la mayora de los temas que aparecen en este examen aparecen en todos los exmenes por ser
fundamentales en cuanto a la lgica de GeneXus, puede haber cierta variabilidad de examen a examen.
Por ejemplo en este examen no aparecen preguntas de objeto Query, ni de proceso de Build, ni de
GXserver, que s se incluyen, entre otros, en otros exmenes.