Skip to main content

Email Validation using Callouts in Openbravo

Hi all, I have a written a simple java code that validates an email ID. This is not a completely validated one, but a basic validated one. This can also be also used as a template for creating callouts in Openbravo. special mention to my colleague pandi and one more thanks to ivan from Openbravo in helping me accomplish this task...:)

package org.openbravo.erpCommon.ad_callouts;

import javax.servlet.ServletException;
import org.apache.log4j.Logger;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.openbravo.erpCommon.ad_callouts.SimpleCallout;
import org.openbravo.erpCommon.utility.SequenceIdData;
import org.openbravo.erpCommon.utility.OBError;
import org.openbravo.scheduling.ProcessBundle;

public class Email_CL extends SimpleCallout {
   
    private static final long serialVersionUID = 1L;
    private static Logger log = Logger.getLogger(Email_CL.class);
    @Override
    protected void execute(CalloutInfo info) throws ServletException {

        String mailid = info.getStringParameter("inpemail",null);
        // Set the email pattern string
        Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
        // Match the given string with the pattern
        Matcher m = p.matcher(mailid.toString());
          // check whether match is found
           boolean matchFound = m.matches();
        StringTokenizer st = new StringTokenizer(mailid, ".");
        String lastToken = null;
           while (st.hasMoreTokens())
           {
                 lastToken = st.nextToken();
          }
           //if (matchFound && lastToken.length() >= 2
              //    && mailid.length() - 1 != lastToken.length())
              if(!matchFound)
                  info.addResult("MESSAGE","InValid Email");
    }
}

Importing it into the Application :
             Generally callouts are present in the folder ad_callouts in org/openbravo/erpCommon in the source folder of openbravo. You can put your callout file here and then we should define a callout in our application in Application Dictionary under setup folder callout is there. Now Give a name for the callout preferably the name of your java file because the mapping class file and a auto-generated html file will be generated. You check the existing callouts for path and adjust yours accordingly. Then this defined callout should be assigned to the field where the action has to be performed. for the above example it would be the string field where email will be entered. To assign callout to a column go to tables and columns and choose the corresponding column. There will be a field called callout. Choose your name there. Compile and deploy and check your callout.

Added Note:
              To check whether your callout is called properly, u can use the empty frame at the end of each page. For that go to src/org/openbravo/erpCommon/security. There will be a file called Login_FS.Html. In line No.52 the frame ratio would be "100%,*". Change that too "90%,20%". This will create a empty text area at the end of every page and if that page has callout, the text "Callout response page" will be displayed. Or else if some error is displayed your path settings in callout definition has to be changed. 

Comments

  1. Hello!

    There is any resource that teaches you how to set messages in callouts? Or did you have to read the source code to get and example?

    ReplyDelete

Post a Comment

Popular posts from this blog

My 10 years in Application Development

It's been around 10 years since I started programming. May be a bit more, if I have to include my first attempts at C programming in school. But it would be a grave insult to call remembering ten lines of code and just replicating it to put a star on the screen. I also did a course on Visual basic, but it was more gimmicks that Application development. But it was truly in the year 2007 when I started my Master in Computer Applications that I found a new flare for developing applications. 
I was very late to computers in general and even when I joined my Masters, computers were not really accessible to me. But when I joined my Masters where one is actually expected to hone the skills which they already have, but in case it was were I was learning the skills, initially it was very difficult. I was not sure what computers had for me nor I had a natural flair for programming. But the thing about computers that attracted me was the visual medium it gave. Initially it was just a door t…

Changing Timezone in Postgresql, Ubuntu

Timezone and locale are integral concepts that one should be aware of when implementing a System. For example. if you create a database in PostgreSql, it will use the default System settings for the database. Lets say you have a server in UK and your client is US. If the client tries to retrieve the current date or time, it is going to show the UK time and not the US one.
Today I encountered a different issue in our client place where the Ubuntu timezone and PostgreSql timezone were showing a incorrect values. Instead of Indian Standard Time (IST) it was showing Pacific Daylight Time(PDT). These are the steps that I followed to change the timezone to IST in PostgreSql and Ubuntu.
Changing timezone in Ubuntu:
sudo dpkg-reconfigure tzdataYou will be prompted to choose the continent and then the area. Provided screen shots where we configure the location.
Use TAB key to navigate to the OK button and then press Enter.

The changes will get reflected immediately. To check it you can open a n…

கிறுக்கனின் கிறுக்கல்கள் - அழுகையின் சிறப்பு

அழுகை என்பதை வெறுத்தவன் நான்... என்னை ஒரு நாள் பிரிந்திருக்க முடியாமல் , கைப்பேசியில் நீ சிந்திய உன் கண்ணீர் ஓசை என் காதில் கேட்கும் வரை...

பின்குறிப்பு: கிறுக்கனின் கிறுக்கல்கள் எங்கிருந்தோ தழுவப்பட்டது போல் தோன்றினால் கிறுக்கன் ( நான் உண்மையை ஏற்றுக்கொள்பவன்..:) ) பொறுப்பல்ல. கிறுக்கனின் கிறுக்கல்களில் வரும் கிறுக்கல்கள் யாவும் என் சிறய மூளையில் உதித்ததே ஆகும்.  Inspirations could have been drawn from somewhere else, but its the execution that counts....Isn't it ?