Monday, 19 January 2015

Creation of sequence in ADF for ID (Auto generation of ID In ADF )

First we need to create one sequence in Database
Create sequence in Database

CREATE SEQUENCE   "XX_Test_SEQ"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE


Different  type to Create of sequence  in ADF

11)    Creation of sequence  using  groovy  sequence
·        IN this sequence generated in number and set to attribute
·        Ex 1 , 2 , 3 ……..
.    open EO and goto attribute and select for which attribute u need to generate sequence  
·        Copy below code to value in  expression field  and save

syntax: (new oracle.jbo.server.SequenceImpl("Schema_name. Sequnce_name ",adf.object.getDBTransaction())).getSequenceNumber()



example : (new oracle.jbo.server.SequenceImpl("RMMODEL. XX_Test_SEQ ",adf.object.getDBTransaction())).getSequenceNumber()







2)    Creation of sequence   using create method 
·        Open EOimpl class and copy below code
·        idValue  store the next value of  sequence 

    protected void create(AttributeList attributeList ){
        super.create(attributeList);
        SequenceImpl seqImpl = new   SequenceImpl("RMMODEL. XX_Test_SEQ ",getDBTransaction());
        Number idValue= seqImpl.getSequenceNumber();
        setAttribute("TicketNumber", idValue);
    }



2.1)    If u want ID like  string ex: ‘RFC00001’ and ‘RFC00002
     Then use below code
     In this  we will  convert Sequence that to java lang int and 
      formatting that sequence in 5 digits use String.format option then concat with required string or char 


  protected void create(AttributeList attributeList ){
        super.create(attributeList);
        SequenceImpl seqImpl = new   SequenceImpl("RMMODEL. XX_Test_SEQ ",getDBTransaction());
        Number idValue= seqImpl.getSequenceNumber();
        int num=idValue.intValue();
        String idval=String.format("%05d", num);
        String TicketNum="RFC";
        TicketNum=TicketNum+idval;
        setAttribute("TicketNumber", TicketNum);
    }