Monday, September 15, 2014

ADF - Mengubah pesan error part 2


Pada part 1 kita sudah mengubah pesan error dengan cara catch exception di class impl dari entity object. Nah pada kali ini saya akan melakukan hal yang sama dengan jalan yang berbeda, yaitu dengan menggunakan DCErrorHandler. Berikut penjelasan singkatnya:

"Implements a default error handling class for the ADF framework. This handler caches the exception in the bindingContainer and then if 'Throw' flag is set, throws exceptions it receives as JboExceptions (by creating a JboException if required)."

  • Pertama tama kita buat class baru yang bernama "MyCustomErrorHandler" dan pastikan Anda sudah membuat Entity Object dan View Object.



  • Buka DataBinding.cpx dan register class yang kita buat.


  • Berikut code di "MyCustomErrorHandler"
 package view.java;

import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCErrorHandlerImpl;

import oracle.jbo.TooManyObjectsException;

public class MyCustomErrorHandler extends DCErrorHandlerImpl {
    public MyCustomErrorHandler(boolean b) {
        super(b);
    }
    public MyCustomErrorHandler(){
        this(true); 
    }
    @Override
    public void reportException(DCBindingContainer dCBindingContainer,
                                Exception exception) {
        super.reportException(dCBindingContainer, exception);
    }

    @Override
    public String getDisplayMessage(BindingContext bindingContext,
                                    Exception exception) {
        
        String message="";
        // Jika exception merupakan TooManyObjectsException maka pesan error           //akan diganti
        if(exception instanceof TooManyObjectsException){
            String msg=exception.getMessage();
            int i=msg.indexOf("Too many objects match the primary key ");
            if(i>0)  
            {  
               
               message= "Duplicate Employee Id Found.";  
              
            }
        }else{
              message= super.getDisplayMessage(bindingContext, exception);

        }
        System.out.println(message);
        return message;
     
    }
}
  • Langkah terakhir mari kita tes, disini saya membuat form dan melakukan pengujian dengan memasukkan data yang sudah ada di database seperti gambar dibawah: 



Sekian blog singkat saya, semoga bermanfaat :)

Referensi
http://docs.oracle.com/cd/E15051_01/apirefs.1111/e10653/oracle/adf/model/binding/DCErrorHandler.html
http://www.adftutorials.com/adf-custom-error-handler-to-display-custom-message-to-user.html





No comments:

Post a Comment