Traducir a :

miércoles, 31 de julio de 2013

¿Cómo insertar un registro a una tabla de la base de datos desde un popUp en Oracle ADF?

Este tutorial fue realizado en jDeveloper 11.1.1.7.0 y su objetivo es insertar un registro a una tabla de la base de datos ingresando los datos del nuevo registro en un popUp.

Para este tutorial tenemos la siguiente tabla de Observaciones y  botón "Agregar Observación" en el fragmento "Fragmento.jsff".


Tenemos un popUp que contiene un Dialog y necesitamos agregar un nuevo registro en la tabla de la base de datos. Es necesario arrastar desde los Data Controls el View Object referente a la tabla de la base de datos que estamos trabajando, en este caso es "ObservacionesView1".



Vamos a popUp -> Propety Inspector -> Common -> PopUpFetchListener creamos la función "editPopUpListener", y en popUp -> Propety Inspector -> Common-> PopUpCanceledListener creamos la función "editPopUpCancelListener", en el Manage Bean del fragmento: "FragmentoBean.java".

Además cambiamos la propiedad de Common-> ContentDelivery a lazyUncached.


Luego nos dirigimos hacia la pestaña Bindings de la página y añadimos 3 bindings de tipo "action": "CreateInsert" , "Commit" y "Rollback". Como vemos todas estas acciones hacen referencia al Iterador: "ObservacionView1Iterator" del View Object "ObservacionView1" que estamos trabajando.



Para ejecutar un "action" desde el ManageBean de la página o fragmento podemos utilizar la siguiente función:
    public Object executeAction(String actionName) {
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
            OperationBinding operation = bindings.getOperationBinding(actionName);
            return operation.execute(); }

Luego implementamos los métodos "editPopUpListener"  y "editPopUpCancelListener":

   public void editPopUpFetchListener(PopupFetchEvent popupFetchEvent) {
        executeAction("CreateInsert");   }

  public void editPopUpCalcelListener(PopupCanceledEvent popupCanceledEvent) {
    executeAction("Rollback"); }

Ahora vamos nos dirigimos hacia las propiedades del  Dialog que se encuentra dentro del popUp y añadimos un método en Dialog-> Property Inspector -> Behavior -> DialogListener


En la función OKDialog que acabamos de crear, implementamos lo siguiente:

  public void OKDialog(DialogEvent dialogEvent) { 
    Outcome outcome = dialogEvent.getOutcome();
            if (outcome == Outcome.ok){
              executeAction("Commit");}
          else if (outcome == Outcome.no){
               executeAction("Rollback");}}
¿Quieres compartir esta publicación?

0 comentarios: