Thursday, August 23, 2012

ADF Get sequence next value

Get sequence next value in ADF

Value Type :  Expression

Value :
(new oracle.jbo.server.SequenceImpl("HR.XX_IMAGE_S",adf.object.getDBTransaction())).getSequenceNumber()









Other options mentioned in
http://hasamali.blogspot.com/2011/04/adf-bc-various-way-of-setting-sequence.html


For Programmatic Approach
in EoImpl

import oracle.jbo.server.SequenceImpl;
...
protected void initDefaults() {
super.initDefaults();

SequenceImpl sequence = new SequenceImpl("<YourSequenceName>",getDBTransaction());
DBSequence dbseq = new DBSequence(sequence.getSequenceNumber());
OR
Number seqValue = (Number)sequence.getSequenceNumber();
populateAttributeAsChanged(<YourId>,dbseq
}




OR

Inside  EOImpl Class
@Override
public void create(AttributeList attributeList) {
super.create(attributeList);
SequenceImpl seq = new SequenceImpl("LOG_SEQ", getDBTransaction());
Number seqNextval = seq.getSequenceNumber();
setId(seqNextval);
}


Saturday, August 18, 2012

OAF Get Oracle Date FOrmat / Change Date Format

1) From one format to any other format

eg.   15-Aug-2012    to  12/08/15
        String dob;
        dob = "15-Aug-2012 ";
        final String OLD_FORMAT = "dd-MMM-yyyy";
        final String NEW_FORMAT = "yy/MM/dd";
        String  NewDate ;
        NewDate = "";
          if (dob != null) {
            try {
              SimpleDateFormat OldDateFormat = new SimpleDateFormat(OLD_FORMAT);
              Date dt = OldDateFormat.parse(dob);
              OldDateFormat.applyPattern(NEW_FORMAT);
              NewDate = OldDateFormat.format(dt);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
       
        System.out.println("Reqd Date Format is  :" + NewDate);


2) To get Oracle Date Format
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;

        // Inside PR or PFR
        String dob;
        dob = "15-Aug-2012 ";
       // Method Call
       oracle.jbo.domain.Date jboRateStart = castToJBODate(dob);
       System.out.println("JBO Date is  :" + jboRateStart);


      public static  oracle.jbo.domain.Date castToJBODate(String aDate) {
        DateFormat formatter;
        java.util.Date date;
        if (aDate != null) {
            try {
                formatter = new SimpleDateFormat("dd-MMM-yyyy");
                //formatter = new SimpleDateFormat("MM/dd/yyyy");
                date = formatter.parse(aDate);
                java.sql.Date sqlDate = new java.sql.Date(date.getTime());
                oracle.jbo.domain.Date jboDate =
                    new oracle.jbo.domain.Date(sqlDate);
                return jboDate;
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

Output
JBO Date is  :2012-08-15

Split Characters with Specific Length


public class Split2CharFinal 
{
  public static void main(String[] args)
  {
             // You can put main method code in Process Request or Process Form Request
              String str = "SplitChar2";
              //  Split String with fixed Number of Char eg. 2 
              Object[] strOut;
              // Call Method to get Splitted String in Array 
              strOut = splitInParts(str, 2); 
 
              String str_Full_Split = "";
              // Read Array
              for (int i=0; i<strOut.length; i++) {
              System.out.println("  Out "+i+" "+strOut[i]);
              str_Full_Split = str_Full_Split +"/"+ strOut[i];
              } 
              System.out.println(" Full Split "+ str_Full_Split);
  } 
 
public static String[] splitInParts(String s, int partLength) {     
  int len = s.length();      
 
  // Number of parts     
  int nparts = (len + partLength - 1) / partLength;     
  String parts[] = new String[nparts];      
 
  // Break into parts     
    int offset= 0;     
    int i = 0;     
    while (i < nparts)     {         
      parts[i] = s.substring(offset, Math.min(offset + partLength, len));         
      offset += partLength;         
      i++;     
      }      
      return parts; 
    }  
}

Sunday, August 12, 2012

ADF Default Date as Sysdate


Go to Entity Object
Open Date Attribute which you want to Deafult as Sysdate
Click Value Type as Expression.
Value  adf.currentDate

For Timestamp adf.currentDateTime


import oracle.jbo.domain.Date;
..
protected Date getCurrentDate()
{
    return new Date( Date.getCurrentDate());
}
import oracle.jbo.Domain.Date;
import java.sql.Timestamp;
..
protected Date getCurrentDateWithTime()
{
    return new Date( new Timestamp( System.currentTimeMillis()));
}




http://abakalidis.blogspot.com/2007/02/oracle-adf-accessing-current-date-and.html



Date Validations
http://mychanneladf.blogspot.com/2012/06/comparing-dates-and-displaying.htmlhttp://oracleanil.blogspot.com/2009/04/itemco.html