Ejemplo+de+Examen+“Analista+Senior+GeneXus+X+Ev1” (1)

Embed Size (px)

Citation preview

Ejemplo de Examen Analista Senior GeneXus X Ev1Solo 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)Slot { SlotId* SlotDescription Technician { TechnicianId* TechnicianName } }

b)Slot { SlotId* SlotDescription Technician { TechnicianId* TechnicianName } } Technician { TechnicianId* TechnicianName }

c)Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* SlotId* TechnicianName }

d)Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* TechnicianName }

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)

Slot { SlotId* SlotDescription Type { TypeId* TypeDescription } }

b)

Type { TypeId* TypeDescription Slot { SlotId* SlotDescription } }

Slot { SlotId* SlotDescription }

c)

Type { TypeId* TypeDescription }

Slot { SlotId* SlotDescription TypeId TypeDescription }

d)

Type { TypeId* TypeDescription SlotId SlotDescription }

Slot { SlotId* SlotDescription }

3. [5 %] Se tiene una aplicacin GeneXus para un casino. Dada la siguiente transaccin, determine lo que considere correcto.Slot { SlotId* SlotDescription Prize { PrizeId* PrizeDescription } }

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.

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)Customer { CustomerId* CustomerName } VIPCard { VIPCardId* VIPCardObservations CustomerId CustomerName }

b)Customer { CustomerId* CustomerName VIPCardId VIPCardObservations } VIPCard { VIPCardId* VIPCardObservations }

c)Customer { CustomerId* CustomerName } VIPCard { VIPCardId* VIPCardObservations CustomerId CustomerName }

Unique Index

d)

Customer { CustomerId* CustomerName }

VIPCard { VIPCardId* VIPCardObservations VIPCardCustomerId VIPCardCustomerName }

Subtype group: VIPCardCustomer VIPCardCustomerId subtype of VIPCardCustomerName subtype of

CustomerId CustomerName

e) Ninguna de las anteriores

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.Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* TechnicianName } Registration { RegistrationId* RegistrationDate Fx RegistrationAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName } }

a)TECHNICIAN TechnicianId* TechnicianName SLOT SlotId* SlotDescription TechnicianId REGISTRATION RegistrationId* RegistrationDate REGISTRATIONSLOT RegistrationId* SlotId* TechnicianId

b)

TECHNICIAN TechnicianId* TechnicianName

SLOT SlotId* SlotDescription TechnicianId

REGISTRATION RegistrationId* RegistrationDate RegistrationAmount

REGISTRATIONSLOT RegistrationId* SlotId* TechnicianId

c)

TECHNICIAN TechnicianId* TechnicianName

SLOT SlotId* SlotDescription TechnicianId

REGISTRATION RegistrationId* RegistrationDate

REGISTRATIONSLOT RegistrationId* SlotId*

d)

TECHNICIAN TechnicianId* TechnicianName

SLOT SlotId* SlotDescription TechnicianId

REGISTRATION RegistrationId* RegistrationDate RegistrationAmount

REGISTRATIONSLOT RegistrationId* SlotId*

e) Ninguna es correcta

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:RESERVATION CUSTOMER

RESERVATIONSLOT

SLOT

a) b) c) d)

RESERVATION + RESERVATIONSLOT RESERVATION + CUSTOMER RESERVATION + RESERVATIONSLOT + SLOT 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.Slot { SlotId* SlotDescription } Customer { CustomerId* CustomerName } Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }

a) b) c) d)

RESERVATIONSLOT + RESERVATION RESERVATIONSLOT + SLOT RESERVATIONSLOT + RESERVATION + SLOT RESERVATIONSLOT + RESERVATION + SLOT + CUSTOMER

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:Slot { SlotId* SlotDescription } Customer { CustomerId* CustomerName } Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }

Nullable = yes

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 TitularTechnicianId TitularTechnicianName SubstituteTechnicianId SubstituteTechnicianName } Technician { TechnicianId* TechnicianName }

Subtype group: SlotTechnicians TitularTechnicianId subtype of TitularTechnicianName subtype of SubstituteTechnicianId subtype of SubstituteTechnicianName subtype of

TechnicialId TechnicianName TechnicianId TechnicianName

Slot Rules: Error( Invalid Substitute Technician) if TitularTechnicianId =SubstituteTechnicianId;

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 } Technician { TechnicianId* TechnicianName }

Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription InvoiceSlotAmount } }

b)

Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* TechnicianName }

Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName InvoiceSlotAmount } }

Invoice Rules: Error( Invalid Slot) if TechnicianId TechnicianId;

c)

Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* TechnicianName }

Invoice { InvoiceId* InvoiceDate InvoiceTechnicianId InvoiceTechnicianName InvoiceAmount Slot { SlotId* SlotDescription TechnicianId TechnicianName InvoiceSlotAmount } }

Subtype group: InvoiceTechnician InvoiceTechnicianId subtype of InvocieTechnicianName subtype of

TechnicialId TechnicianName

Invoice Rules: Error( Invalid Slot) if TechnicianId InvoiceTechnicianId;

d)

Slot { SlotId* SlotDescription TechnicianId TechnicianName } Technician { TechnicianId* TechnicianName }

Invoice { InvoiceId* InvoiceDate TechnicianId TechnicianName InvoiceAmount Slot { SlotId* SlotDescription InvoiceSlotTechnicianId InvoiceSlotTechnicianName InvoiceSlotAmount } }

Subtype group: InvoiceSlotTechnician InvoiceSlotTechnicianId subtype of InvocieSlotTechnicianName subtype of

TechnicialId TechnicianName

Invoice Rules: Error( Invalid Slot) if TechnicianId InvoiceSlotTechnicianId;

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.

Person { PersonId* PersonName PersonPhone }

Customer { CustomerId* CustomerName CustomerPhone CustomerIsVIP CustomerCredit PersonId }

Technician { TechnicianId* TechnicianName TechnicianPhone TechnicianSalary PersonId }

ndice Unique en esta tabla compuesto por PersonId

ndice Unique en esta tabla compuesto por PersonId

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?

Slot { SlotId* SlotDescription } Customer { CustomerId* CustomerName }

Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }

Verdadero:

Falso:

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?

Slot { SlotId* SlotDescription } Customer { CustomerId* CustomerName }

Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }

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 } Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription ReservationSlotTime } }

Customer { CustomerId* CustomerName }

a) b) c) d) e)

Proc.call( ReservationId ) if Insert on BeforeComplete; Proc.call( ReservationId ) If Insert on Commit; Proc.call( ReservationId ) if Insert on AfterComplete; Proc.call( ReservationId ) on AfterInsert; 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.Slot { SlotId* SlotDescription } Reservation { ReservationId* ReservationDate CustomerId CustomerName CustomerIsVIP Slot { SlotId* SlotDescription ReservationSlotTime } }

Customer { CustomerId* CustomerName CustomerIsVIP }

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;

a) b) c) d)

Las reglas se disparan en el orden en el que han sido declaradas El orden de ejecucin ser: b. - c. - d. - a. El orden de ejecucin ser: c. - b. - d. - a. Ninguna de las opciones anteriores es correcta

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.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

a) b) c) d)

Tabla de partida: RESERVATION Tabla de evaluacin: RESERVATIONSLOT Tabla de partida: RESERVATION Tabla de evaluacin: RESERVATION Tabla de partida: CUSTOMER Tabla de evaluacin: RESERVATION Tabla de partida: RESERVATIONSLOT Tabla de evaluacin: RESERVATIONSLOT

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.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

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 ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }

SUM( ReservationSlotAmount)

For each Print printblock1 // ReservationId, ReservationDate y SlotDescritpion For each Print printblock2 // CustomerName endfor 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 } Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }

Customer { CustomerId* CustomerName }

For each Print printblock1 // CustomerName For each Print printblock2 // ReservationId, ReservationDate y SlotDescritpion 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.Slot { SlotId* SlotDescription } Reservation { ReservationId* ReservationDate CustomerId CustomerName ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }

SUM( ReservationSlotAmount)

Customer { CustomerId* CustomerName }

a) For each order CustomerId defined by ReservationDate Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor b) For each Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor

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.Slot { SlotId* SlotDescription } Reservation { ReservationId* ReservationDate CustomerId CustomerName ReservationAmount Slot { SlotId* SlotDescription ReservationSlotAmount } }

SUM( ReservationSlotAmount)

Customer { CustomerId* CustomerName }

For each defined by ReservationDate Print printblock1 // CustomerId, CustomerName For each Print printblock2 // ReservationId, ReservationDate y ReservationAmount endfor Endfor

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.

SlotType { SlotTypeId* SlotTypeDescription }

Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

Customer { CustomerId* CustomerName }

Slot Type: 1 Wizards Customer: 15 Ann Smith Reservtion Id.. .. ..

Date. . .

Slot Description. . .

Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }

Customer: 120 Peter Jones Reservtion Id.. ..

Date. .

Slot Description. .

Slot Type: 1 Wizards Customer: 15 Ann Smith Reservtion Id..

Date.

Slot Description.

a)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

b)

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

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

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 } }

Data Provider Source: Client {

Rule: parm( &dateFrom);

Id = CustomerId Name = CustomerName SlotsAmount = Count( SlotId, ReservationDate >= &dateFrom) SlotsReserved where ReservationDate >= &dateFrom { Slot { Description = 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.

Slot { SlotId* SlotDescription SlotReservationPrice } Customer { CustomerId* CustomerName }

Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription SlotReservationPrice } }

Business Component = True Invoice { InvoiceId* Autonumber = True InvoiceDate CustomerId CustomerName InvoiceStartPeriodDate InvoiceEndPeriodDate InvoiceAmount }

Data Provider: GetInvoicesParm( in: &startDate, in: &endDate ); ----------------------------------------------------------------------------------------------Invoice{

InvoiceDate = Today() CustomerId InvoiceStartPeriodDate = &startDate InvoiceEndPeriodDate = &endDate InvoiceAmount = Sum( SlotReservationPrice, ReservationDate >= &start and ReservationDate 12;

Msg( Customer has extra bonus ) if SlotReservationBonus;

a)

// &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()

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)

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

d)

Ninguna de las opciones anteriores es correcta.

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).

SlotType { SlotTypeId* SlotTypeDescription }

Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

a)

Invocar desde la transaccin SlotType, antes del Commit, a la transaccin Slot pasndole el valor de SlotTypeId como parmetro. 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. 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.

b)

c)

d) a) y b) son correctas (y las nicas correctas). e) b) y c) son correctas (y las nicas correctas).

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.

Technician { TechnicianId* TechnicianName }

Slot { SlotId* SlotDescription TechnicianId TechnicianName }

Freestyle Grid: Grid1 Grid: Grid2

a)

b)

c)

d)

e) Ninguna de las anteriores

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.SlotType { SlotTypeId* SlotTypeDescription } Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

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.

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.SlotType { SlotTypeId* SlotTypeDescription } Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

AllowSelection=True

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

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.

Slot { SlotId* SlotDescription }

Customer { Customerd* CustomerName }

Reservation { ReservationId* ReservationDate CustomerId CustomerName Slot { SlotId* SlotDescription } }

a) 9 veces b) 2 veces c) 11 veces d) Ninguna de las anteriores

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.SlotType { SlotTypeId* SlotTypeDescription } Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

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.

Grid: Grid1

Grid: Grid2

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.

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.SlotType { SlotTypeId* SlotTypeDescription } Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

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.

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.

SlotType { SlotTypeId* SlotTypeDescription }

Slot { SlotId* SlotDescription SlotTypeId SlotTypeDescription }

Verdadero:

Falso:

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 ejemploSi 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.