99005284-Ejemplo-de-Examen-“Analista-Senior-GeneXus-X-Ev1”

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.