Oracle Form for Blackberry

Hi guys,
Is there anyway I can run Oracle application on Blackberry Playbook?
Thank you

1010274 wrote:
I cannot load Oracle Form as my Desktop Window does. I think my Desktop needs kind of Java to run that application.so please explain why this problem or solution is appropriate for forum on Oracle DATABASE?
your problem is about client configuration & connectivity issue.

Similar Messages

  • Opening a secure web page from oracle forms for credit card validation

    Hi All,
    I searched for the topic in the forms forum but couldn't find a solution.
    Requirement: As per some compliance, our application cannot do a credit card validation from our forms application, instead we need to use a java code which a third party will provide ,it's an iframe (they say, i am layman when it comes to Java, don't know what is it), but they say that, within your forms application you call our iframe do the credit card validation over there get a token of response back from us and use this token as a confirmation in your application.
    Problem: I could not find a solution anywhere wherein i can call a web page from forms. Now, this web page should be modal, i.e. unless i close this page i cannot access my forms application. Please guide me if anyone has done that.
    Secondly if i could make it work, how will i communicate with this external web page, like getting back some token value and use it back in my forms application. I am completely clueless.
    As we are using Oracle designer for generating forms, we cannot use a bean type thing as designer does not have the bean-item type defined!
    Appreciate if anyone could provide me pointers for a solution to this problem statement.
    We are on forms 9i -- Version 9.0.2.11.0
    Edited by: the_wing_rider on Jul 8, 2011 5:10 AM

    The simple way to do it is to use a PJC (java bean) + apache httpclient library..
    If you have a webservice than you can use Axis library and wsdl2java to create java classes from wsdl.
    also you can use httpclient library to simulate http protocol (request/response actions)..
    (for example.. you have a credit card number.. you post this number to specified URL and then you parse the response from credit card validation server)..
    Post here some documentation (specification) on how to call the credit card validation .. (maybe it's a secure webservice?)
    Here you have a httpclient library documentation:
    http://hc.apache.org/httpcomponents-client-ga/tutorial/html/index.html
    Also you can implement bean area in designer.. If you need help I can post here how we do it in our project..
    also look here: Call webservice from PJC over https protocol
    regards
    Peter
    Edited by: Peterv6i on Jul 8, 2011 3:35 PM

  • Oracle Forms for the Helpdesk

    Greetings, all
    We are in the process of seeking an alternative to our Peregrine system. We really like Remedy, but since they are owned by Peregrine, we're reluctant to go with them. I've worked with Remedy in the past and am very happy with it.
    I hears somewhere that Oracle Forms was a healthy alternative to Remedy. In fact, some said that the administration tools are very similar.
    Does anyone out there have any information on these comparisons? Also, is anyone using Oracle Forms as a helpdesk tool?
    Thanks
    Mike Davis
    [email protected]

    Don't know about Remedy - but Oracle Support use Forms as their call logging system.
    Regards
    Grant Ronald
    Forms Product management

  • Using DDE with Oracle Forms for uploading Excel data

    Hi There,
    I have used DDE in Forms to upload data from Excel.
    The code which I have implemented is as follows:
    DECLARE
    iApplication pls_integer;
    iConv pls_integer;
    v2Buffer varchar2(100);
    v2text varchar2(100);
    nLength number;
    nTransactionId number;
    /* these varrays are defined in a package specification*/
    vExcelProduct p_upload_functions.prd_no:=p_upload_functions.prd_no('1');
    vExcelVpc p_upload_functions.vpc:=p_upload_functions.vpc('1');
    BEGIN
    /*Open an DDE Server application*/
    iApplication:= DDE.App_Begin('C:/excel.exe ‘||v2fileName,DDE.App_Mode_Minimized);
    iConv:=DDE.Initiate('EXCEL',v2filename);
    BEGIN
    /* first row of the sheet used for title . So loop is started from 2*/
    /* Reading a row*/
    FOR I IN 2..10000
    LOOP
    /* Reading columns of a particular row*/
         FOR J IN 1..n / * n be the number of columns in excel sheet */
         LOOP
    /* generate the cell no of excel sheet from where data will
    be fetched- R is used for row no and C is foe column no*/
         v2text:='R'||I||'C'||J||':'||'R'||I||'C'||J;
    /* Store the value in variable */
    dde.request(iConv,v2text,v2Buffer,dde.cf_text,1000);
    /*Stores values in the varrays for a row*/
    IF j=1 THEN
    /* for first column*/
    nLength:=length(v2Buffer);
    vExcelOrg(I-1):=To_Number(substr(v2Buffer,1,nLength-2));
         /* for second column */
    ELSIF j=2 THEN
    nLength:=length(v2Buffer);
    vExcelProduct(I-1):=substr(v2Buffer,1,nLength-2);
    END IF;
    END LOOP;
    /*Exit the loop when it encounters an empty row*/
    IF vExcelProduct(I-1) IS NULL AND vExcelOrg(I-1) IS NULL THEN
    EXIT;
    END IF;
    /* Otherwise extending the varray*/
    vExcelProduct.extend;
    vExcelOrg.extend;
    /* Reading the next row*/
    END LOOP;
    /* Now close the DDE application */
    DDE.app_end(iApplication);
    DDE.terminate(iConv);
    EXCEPTION
         WHEN Others THEN
         DDE.app_end(iApplication);
    DDE.terminate(iConv);
    RAISE Form_Trigger_Failure;
    END;
    I am facing a problem, I will appreciate if you can give some insights to help.
    We have been having problem logging in to application when there are a number of EXCEL processes running (17-18) on the server. Users that have already logged in have no problem, but new login will get "FRM-92101 There was a failure in the Forms Server during startup". The Forms Server itself is running fine. After we killed a few EXCEL processes, new users will be able to login.
    Thanks and regards,
    Mandeep

    this is a trial method and right now i am trying to read only the first cell of the excel sheet and return that value and show it in the UI when the user presses the button but this code is not returning any value.
    METHOD read_excel.
      INCLUDE ole2incl.
      DATA: filename(128) TYPE c,
                excel TYPE ole2_object,
                cell TYPE ole2_object,
                workbook TYPE ole2_object,
               pfile TYPE localfile VALUE
               'C:\Documents and Settings\I047323\Desktop\new.xls',
                name TYPE string.
      CREATE OBJECT excel 'EXCEL.APPLICATION'.
      SET PROPERTY OF excel 'VISIBLE' = 0.
      CALL METHOD OF excel 'WORKBOOKS' = workbook.
      CALL METHOD OF workbook 'OPEN'
        EXPORTING  #1       = pfile.
        CALL METHOD OF excel  'CELLS' = cell
          EXPORTING
            #1      = 1
            #2      = 1
        GET PROPERTY OF cell 'VALUE' = value.
      CALL METHOD OF workbook 'SAVE'.
      CALL METHOD OF workbook 'CLOSE'.
      CALL METHOD OF excel 'QUIT'.
      FREE OBJECT excel.
    ENDMETHOD.
    Edited by: neelima v on Jan 14, 2008 4:06 PM

  • RUNNIG CRYSTAL REPORTS FROM ORACLE FORMS (for oracle report team too)

    I WANT TO RUN CRYSTAL REPORT FROM THE ORACE FORMS 6i how can i
    run this if any one has syntax or any detail please send me
    or reply
    thanks

    Ask the Crystal support forum how do you invoke their tool from
    a command line.
    You can then use host command from forms.
    You can also try and find out if they have an OLE2 interface and
    then work with the OLE2 package in forms.

  • How to remove a oracle form from read only format

    I need to personalize an Oracle form for one responsibility. But when i open through that responsibility, it is opening in read only format. When i open the same form through super user responsibility, then it is opening up-datable format. I tried different options like 'System Profiles- HR Query only to 'NO'', 'Removing Query-Only'. but still i can open it only in read only format where i need to make some fields up-datable.
    Any suggestions please?

    Hi All,
    I have an Standard E-Business Suite screen.
    This is the Transaction Overview Screen, which is in Read-Only Mode.
    The Value of the unit price is rounded on 2 decimal.
    We tried to change this with Perzonilization, but the the error is coming up
    "FRM-40602: Cannot insert into or update data in a view"
    What are we doing wrong.
    Thanks for your support.
    Best regards Marcel Snoeck

  • Generating a Report from Oracle Forms

    If a want to generate a report in Oracle Reports
    by pressing a Button on my Oracle Forms for example for 5 text items
    on that form ...then how do i do it ???
    plz help

    well when i create a report module in the object navigator of oracle forms
    its opens Oracle Reports application and it gives error
    "REP-0118 Unable to create temporary file"
    and then the error "ORA-000904: "PB_RPT" : invalid identifier ......etc select query etc"
    here PB_RPT is a Push Button.
    Please Help

  • JUNIT in Oracle Forms 6i

    Hi
    We are using Oracle Forms 6i to develop Oracle Applications form extensions.
    Wanted to know if we use JUnit in Oracle Forms for testing?
    Thanks
    Rahul

    Hi there
    Thanks for the response.
    I was thinking of Forms Data Loader to use as an option for unit testing in Oracle Forms since it does capture the events like button submit , but I dont think it does any verification of data like JUnit.
    Please let me know what do you think of same.
    Thanks
    Rahul

  • Bug in Oracle Forms 9i triggers

    I've found a bug in oracle forms 9i. It happens when you have a select query inside a when-validate-item trigger and in that query you opt to show an alert when the query has encountered an exception...
    When that trigger is fired, the alert will show even if the query returns a record(which means that it does not go through the exception). The solution is to recompile the said trigger.
    Is this bug present in the other versions of Oracle forms?
    Is there a patch for this bug?

    Hi,
    Thanks for your reply.
    I've consulted with some of my colleagues who have been using Oracle forms for more than 5 years now, and they said that the bug seems to randomly appears...The code works fine in the local environemnt (forms builder) and in the AS itself (compiled in Unix) but after sometime, the bug appears and they just compiled the trigger where the code of the alert is in...
    Is there any logical explanation of why compiling a trigger (without changing any code) solves this problem?

  • How to use BULK COLLECT in oracle forms

    hi gurus,
    I am using oracle forms
    Forms [32 Bit] Version 10.1.2.0.2 (Production)
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionI wanna use bulk collect from database table lets say <employees>
    while working on database level with collections and records it's working very well for me, but when I try to use that technique on oracle forms it hits me error
    error 591 this feature is not supported in client side programmingI know I can use cursors to loop through the records of oracle tables ,
    but I'm convenient while using collections and arrays
    for example
    Set Serveroutput On
    Declare
          Type Rec_T Is Record (     
           Empid Number ,
           Empname Varchar2(100)
          Type V_R Is Table Of Rec_T Index By Binary_Integer;     
          V_Array V_R;
    Begin
       Select Employee_Id , First_Name
       Bulk Collect
       Into V_Array
          From Employees; 
       For Indx In V_Array.First..V_Array.Last Loop
       Dbms_Output.Put_Line('employees id '||V_Array(Indx).Empid ||'and the name is '||V_Array(Indx).Empname);
       End Loop;      
         End;I wanna use this same way on oracle forms , for certain purposes , please guide me how can I use ...
    thanks...

    For information, you can use and populate a collection within the Forms application without using the BULK COLLECT
    Francoisactually I want to work with arrays , index tables ,
    like
             record_type (variable , variable2);
             type type_name <record_type>  index by binary_integer
            type_variable type_name;
            and in main body of program
            select something
            bulk collect into type_variable
            from any_table;
           loop
                type_variable(indx).variable , type_variable(indx).variable2;
           end loop;
           this is very useful for my logic on which I am working
              like
              type_variable(indx).variable || type_variable(indx-1);
             if it's possible with cursors then how can I use cursor that can fullfill my this logic@Francois
    if it's possible then how can i populate without using bulk collect?
    thanks
    and for others replies: if I can use stored procedures please give me any example..
    thanks

  • How to show the result of query in oracle forms 10g to Excel Sheet File

    Dear All,
    I have query and i want the result to be show in excel sheet file in oracle forms
    for example if i have a form with search criteria and when pressed the button of ( export to excel ) the result is
    excel file contains the result of the query .

    The only method to achieve this is with the help of Webutil. Please go through documentation for more help.
    Regards,
    Manoj Chakravarthy

  • DML issue in Oracle forms

    Hi,
    I have seen sometimes the queries which work in oracle sql*plus and Pl/Sql Developer,they dont work in Oracle forms, for example following query works in
    Pl/sql developer,but not in oracle forms
    select *
    from tablea
    where name in (variable)
    so if variable contains 'AA','BB'
    and records are there in table ,it will not fetch any records,whether variable is with quotes or not .........
    whenever there is a dml statement involving variables ..behavior is somewhat different ....so to get that done ....i normally transfer them to database procedure or function .....then it works fine ..
    Is it known bug or what.
    Regards,
    SS

    You can use a FORMS_DDL or EXECUTE IMMEDIATE
    select_dml := ' select * from tablea where name in ('||:variable||')';
    FORMS_DDL ( select_dml);if variable contains 'AA','BB'

  • Attach Forms With Comm Port in Oracle Forms

    I am trying to make connection of Oracle forms Builder with my device using comm port but i dnt know the complete procedure to attach the comm with oracle forms also i have no idea to convert asquii data to normal form.Please any one help me to attach comm port with my oracle forms and also convert asqui code which is showing on hyper terminal into normal data.Also I am using oracle forms 6i

    Make a java component (PJC) and use a rxtx library (http://rxtx.qbang.org/wiki/index.php/Examples) ...
    I have made a PJC to use a RS232 port from oracle forms for Hypercom POS terminal..
    Here is my code (in short i will post a component on PJC site (here I can't post a complete code because of 30000 char limit ;) )..
    If you look in method "public void init(IHandler handler) " I make a download of rxtxSerial.dll from my forms server and then I call System.loadLibrary("rxtxSerial");"
    In other way you must put the dll in windows/system32 path.. This dll is native library for rs232 communication.
    If you look at the method "public void doTransaction" you can see the initialization of comm port...
    With inputStream and OutputStream you read and write datas to/from your rs232 port..
    p.s: the code is not complete but you can see how I made the rs232 communication (also the code is not final ;) )
    ====================================================
    public class PosTerminalPjc extends VBean {
         private static final long serialVersionUID = -8814623494538014849L;
         Properties res = new Properties();
         SerialPort serialPort;
         OutputStream os;
         InputStream is;
         CommPortIdentifier portId;
         Enumeration portList;
         IHandler mHandler;
      Random randomGenerator = new Random();
            char STX = 2;
         char ETX = 3;
         char EOT = 4;
         char ACK = 6;
         char NAK = 15;
         char FS = 28;
         private static final ID COMPORT         = ID.registerProperty("COMPORT"); // serial port (COM1,COM2,COM3,...)
         private static final ID AMOUNT          = ID.registerProperty("AMOUNT"); // amount of the transaction (12)
         private static final ID TRANSACTIONTYPE = ID.registerProperty("TRANSACTIONTYPE"); // SALE, REFUND
      private static final ID EXECUTE         = ID.registerProperty("EXECUTE"); // invoke doTransaction();
      //Output parameters to form
      private static final ID TRANSACTIONPROCESSED  = ID.registerProperty("TRANSACTIONPROCESSED");
      private static final ID TRANSACTIONFLAG       = ID.registerProperty("TRANSACTIONFLAG");
      private static final ID TRANSACTIONNUMBER     = ID.registerProperty("TRANSACTIONNUMBER");
      private static final ID BATCHNUMBER           = ID.registerProperty("BATCHNUMBER");
      private static final ID TRANSACTIONDATE       = ID.registerProperty("TRANSACTIONDATE");
      private static final ID TRANSACTIONTIME       = ID.registerProperty("TRANSACTIONTIME");
      private static final ID TRANSACTIONAMOUNT     = ID.registerProperty("TRANSACTIONAMOUNT");
      private static final ID CARDDATASOURCE        = ID.registerProperty("CARDDATASOURCE");
      private static final ID NUMBERCUSTOMERCARD    = ID.registerProperty("NUMBERCUSTOMERCARD");
      private static final ID EXPIRATIONDATE        = ID.registerProperty("EXPIRATIONDATE");
      private static final ID TERMINALID            = ID.registerProperty("TERMINALID");
      private static final ID MERCHANTID            = ID.registerProperty("MERCHANTID");
      private static final ID COMPANYNAME           = ID.registerProperty("COMPANYNAME");
      private static final ID SEQUENTIALNUMBER      = ID.registerProperty("SEQUENTIALNUMBER");
      private static final ID ERRORDESC             = ID.registerProperty("ERRORDESC");
         //Events
      private static final ID EVT_OK  = ID.registerProperty("EVT_OK"); //custom event if all ok
      private static final ID EVT_ERR = ID.registerProperty("EVT_ERR"); //custom event if error occured
      // state machine variables
         long l_timeout;
         long l_wait_for = 5000; // pos terminal wait for command (5 seconds)
         long l_wait_for_transaction = 62000 * 2; // pos terminal timeout
         long l_second = 1000; // one second
         byte b_retry = 0;
         String dataValue = "";
      byte[] readBuffer = new byte[2000]; //2000 bytes buffer to read rs232 stream
         String comPort = ""; // local variable to store com port name
                                       // (COM1,COM2,...)
         String transactionType = "SALE"; // type of transaction to be executed (SALE
                                                      // or REFUND) default SALE
         String amount = "0"; // default amount value is set to 0
         //output paramerers
      String transactionProcessed = "";
      String transactionFlag = "";
      String transactionNumber = "";
      String batchNumber = "";
      String transactionDate = "";
      String transactionTime = "";
      String transactionAmount = "";
      String cardDataSource = "";
      String numberCustomerCard = "";
      String expirationDate = "";
      String terminalId = "";
      String merchandId = "";
      String companyName = "";
      String sequentialNumber ="";
      String errorDescription;
        public PosTerminalPjc() {
              super();
              System.out.println("============================");
              System.out.println("== State machine POS v1.0 ==");
              System.out.println("== Peter Valencic (c)     ==");
              System.out.println("== 03.04.2012             ==");
              System.out.println("============================");
        System.out.println("java.library.path: "+System.getProperty("java.library.path"));
              try {
                   res.load(this.getClass().getResourceAsStream("/res/language.properties")); // load language file
              } catch (Exception ex) {
                   System.err.println("Err loading language.properties file: "
                             + ex.toString());
      public void init(IHandler handler)
        super.init(handler);
        this.mHandler = handler;
        System.out.println("init handler ok");
        System.out.println("code base: "+handler.getCodeBase());
        //load dll from codeBase URL
        try
          String mylibName = "rxtxSerial.dll";
          String URLpath = "http://dekani:7777/forms/java/";
          System.out.println("URL: "+ URLpath + mylibName);
          URL libUrl = new URL(URLpath+mylibName);
          System.out.println("libUrlgetFile: " + libUrl.getFile());
          File file = new File(mylibName);
          System.out.println(file);
          if (!file.exists())
          file.createNewFile();
          URLConnection urlc = libUrl.openConnection();
          InputStream in = urlc.getInputStream();
          FileOutputStream out = new FileOutputStream(file);
          byte[] buffer = new byte[1048];
          int read;
          while ((read = in.read(buffer)) != -1){
             out.write(buffer, 0, read); // write
            out.close();
            in.close();
            System.loadLibrary("rxtxSerial");
        catch(Exception exc)
          System.err.println("Exception SystemLoadLibrary: " + exc.toString());
          this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_lib"));
      private void doTransaction() throws Exception {
        String sequentialNumber = ""+getRandomInteger(1000,9000,randomGenerator);
              String phase = null; // initial null value for state machine phase
              long l_ack_timeout = 0; //initial value for acknowledge timeout
              // com port check
              if (getComPort().trim().equalsIgnoreCase("")) {
                   this.showError(res.getProperty("s_dlg_err_title"),
                             res.getProperty("s_com_invalid"));
              if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_com_invalid"));
                                dispatchCustomEvent(ce);
                   return;
              // transaction type chek
              System.out.println(this.getTransactionType());
              if (!getTransactionType().equalsIgnoreCase("REFUND")
                        & !getTransactionType().equalsIgnoreCase("SALE")
            & !getTransactionType().equalsIgnoreCase("TICKET")
            & !getTransactionType().equalsIgnoreCase("VOID")
                   this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_tran_invalid_type"));
          if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_tran_invalid_type"));
                                dispatchCustomEvent(ce);
                   return;
              portList = portId.getPortIdentifiers();
              while (portList.hasMoreElements()) {
                   portId = (CommPortIdentifier) portList.nextElement();
          System.out.println(portId.getName());
                   if (portId.getName().equalsIgnoreCase(this.getComPort())) {
                        System.out.println("Port is used : "
                                  + portId.isCurrentlyOwned());
                        serialPort = (SerialPort) portId.open("ComDriver", 2000);
                        serialPort.setSerialPortParams(9600, SerialPort.DATABITS_7,
                                  SerialPort.STOPBITS_1, SerialPort.PARITY_EVEN);
                        serialPort.notifyOnDataAvailable(true);
                        serialPort.notifyOnOutputEmpty(true);
                        os = serialPort.getOutputStream();
                        is = serialPort.getInputStream();
                        break;
              if (portId == null) {
              this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_com_not_found"));
          if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_com_not_found"));
                                dispatchCustomEvent(ce);
                   return;
        else if (portId.getName().equalsIgnoreCase(this.getComPort()) == false)
                  this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_com_not_found"));
          if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_com_not_found"));
                                dispatchCustomEvent(ce);
          return;
              // state machine infinite loop
              while (true)
                   // SEND DATA TO POS TERMINAL
                   if (phase == null)
                        System.out.println("start phase");
                        byte[] req = null;
                        //verify transaction type to be SALE or REFUND
                        //if REFUND then transaction number must be specified
                        if (getTransactionType().equalsIgnoreCase("SALE")) {
                             System.out.println("--> SALE send message to the pos terminal");
                             System.out.println("--> amount: " + amount);
                             req = protocolStream("000000"+sequentialNumber+"01100" + FS + amount + FS
                                       + FS + "+0" + FS + "978" + FS + FS + FS + FS + FS
                                       + FS + FS + ETX);
                        else if (getTransactionType().equalsIgnoreCase("REFUND")) {
                             System.out.println("--> REFUND send message to the pos terminal");
                             System.out.println("--> amount: " + amount);
                             System.out.println("--> transaction number: " + getTransactionNumber());
                             req = protocolStream("000000123405100" + getTransactionNumber() + FS + amount
                                       + FS + FS + "+0" + FS + "978" + FS + FS + FS + FS
                                       + FS + FS + FS + ETX);
            else if (getTransactionType().equalsIgnoreCase("VOID")) {
                             System.out.println("--> VOID transaction");
                             System.out.println("--> amount: " + amount);
                             System.out.println("--> transaction number: " + getTransactionNumber());
                             req = protocolStream("000000123410100" + getTransactionNumber() + FS      + FS + FS + "+0" + FS + "978" + FS + FS + FS + FS
                                       + FS + FS + FS + ETX);
            else if (getTransactionType().equalsIgnoreCase("TICKET")) {
                             System.out.println("--> TICKET duplicate");
                               req = protocolStream("000000123413100" + getTransactionNumber() + FS      + FS + FS + "+0" + FS + "978" + FS + FS + FS + FS
                                       + FS + FS + FS + ETX);
            else {
                             //nothing ;)
                        os.write(req);
                        os.flush();
                        l_ack_timeout = System.currentTimeMillis() + 1500;
                        //wait for half second
                        Thread.sleep(500);
                        l_timeout = System.currentTimeMillis() + l_wait_for; //add some time for timeout
                        phase = "TO_POS_ACK";
                        System.out.println("phase: " + phase);
                   }//phase null
                   //CHECK IF THE TIMEOUT OCCURED
                if (phase.equalsIgnoreCase("TO_POS_ACK") & (l_timeout < System.currentTimeMillis()) & (b_retry < 4))
                    b_retry += 1;
                    System.out.println("TIMEOUT: " + b_retry);
                    l_timeout = System.currentTimeMillis() + l_wait_for;
                    if (b_retry >= 4) {
                        System.out.println("Timeout occured");
                        closePort();
                        this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_timeout"));
                        break;
              //CHECK FOR THE ACKNOWLEDGE (FIRST RESPONSE FROM POS TERMINAL)
                if (phase.equalsIgnoreCase("TO_POS_ACK") &
                        (l_ack_timeout < System.currentTimeMillis())) {
                    try {
                        int numBytes = 0;
                        dataValue = "";
                        while ((numBytes = is.read(readBuffer)) > 0) {
                            dataValue += new String(readBuffer, 0, numBytes, "ASCII");
                        if (dataValue.getBytes().length > 0) {
                            System.out.println("->first byte: " +
                                dataValue.getBytes()[0]);
                            System.out.println("total length: " +
                                dataValue.getBytes().length);
                            //check for ack byte
                            if (dataValue.getBytes()[0] == 6) {
                                System.out.println(
                                    "<--ACKNOWLEDGE received from pos terminal");
                                phase = "WAIT_FOR_TRANSACTION";
                                l_timeout = System.currentTimeMillis() + l_wait_for_transaction;
                                System.out.println("-> wait for transaction response");
                    } catch (IOException ev) {
              //WAIT FOR TIMEOUT ON MESSAGE (watch dog timer)
                if (phase.equalsIgnoreCase("WAIT_FOR_TRANSACTION") &
                        (l_timeout < System.currentTimeMillis())) {
                    System.out.println(
                        "Error receiving response from pos terminal!!!");
                    closePort();
                    this.showError(res.getProperty("s_dlg_err_title"),
                                 res.getProperty("s_response_error"));
                  if (this.mHandler != null)
                    CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                    this.setErrorDescription(res.getProperty("s_response_error"));
                    dispatchCustomEvent(ce);
                    break;
              //WAIT FOR SOME DATA TO COME FROM POS TERMINAL OVER RS232
                if (phase.equalsIgnoreCase("WAIT_FOR_TRANSACTION")) {
                    try {
                        int numBytes = 0;
                        dataValue = "";
                        Thread.sleep(500);
                        while ((numBytes = is.read(readBuffer)) > 0) {
                            dataValue += new String(readBuffer, 0, numBytes, "ASCII");
                        if (dataValue.getBytes().length > 0) {
                            System.out.println("->first byte: " +
                                dataValue.getBytes()[0] + "|" +
                                dataValue.getBytes()[1]);
                            System.out.println("->ascii: " + dataValue);
                            System.out.println("total length: " +
                                dataValue.getBytes().length);
                            if (dataValue.indexOf("PREKINIL UPORABNIK") != -1) {
                                System.out.println(
                                    "Uporabnik je prekinil povezavo!");
                                  closePort();
                                //transaction cancelled by user s_user_cancel
                                this.showError(res.getProperty("s_dlg_err_title"),
                                             res.getProperty("s_user_cancel"));
                              if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_user_cancel"));
                                dispatchCustomEvent(ce);
                                break;
                            if (dataValue.indexOf("NAPACEN VNOS") != -1) {
                                System.out.println("Napačen vnos");
                                closePort();
                                //invalid user entry
                                this.showError(res.getProperty("s_dlg_err_title"),
                                             res.getProperty("s_user_invalid_entry"));
                               if (this.mHandler != null)
                                CustomEvent ce = new CustomEvent(this.mHandler, EVT_ERR);
                                this.setErrorDescription(res.getProperty("s_user_invalid_entry"));
                                dispatchCustomEvent(ce);
                                break;
                            if (dataValue.indexOf("PROSIM POCAKAJ") != -1) {
                                System.out.println("<-- PROSIM POCAKAJ");
                                continue;
                            //preberemo podatke iz stringe terminala
                            if (dataValue.indexOf("SPREJETO") != -1) {
                                closePort();
                                System.out.println("<-- TRANSAKCIJA SPREJETA");
                                System.out.println(dataValue);
                                StringTokenizer st = new StringTokenizer(dataValue, "\034" );
                                String dv = st.nextToken();
                                sequentialNumber = dv.substring(6,10);
                                transactionProcessed = dv.substring(1, 3);
                                transactionFlag = dv.substring(13,15);
                                transactionNumber = dv.substring(15,21);
                                batchNumber = dv.substring(21,25);
                                transactionDate = dv.substring(25,31);
                                transactionTime = dv.substring(31,37);
                                transactionAmount = st.nextToken();
                                st.nextToken(); //Amount exponent
                                st.nextToken(); //Amount currency
                                cardDataSource = st.nextToken();
                                numberCustomerCard = st.nextToken();
                                expirationDate = st.nextToken();
                                st.nextToken(); // authorization code
                                terminalId = st.nextToken();
                                merchandId = st.nextToken();
                                companyName = st.nextToken();
                                System.out.println("================");
                                System.out.println(transactionProcessed);
                                System.out.println(transactionFlag);
                                System.out.println(transactionNumber);
                                System.out.println(batchNumber);
                                System.out.println(transactionDate);
                                System.out.println(transactionTime);
                                System.out.println(transactionAmount);
                                System.out.println(cardDataSource);
                                System.out.println(numberCustomerCard);
                                System.out.println(expirationDate);
                                System.out.println(terminalId);
                                System.out.println(merchandId);
                                System.out.println(companyName);
                                if (this.mHandler != null)
                                  System.out.println("dispatch custom event");
                                  CustomEvent ce = new CustomEvent(this.mHandler, EVT_OK);
                                  dispatchCustomEvent(ce);
                                return;
                    } catch (IOException ev) {
                      System.err.println("Exception sm: " + ev.toString());
                System.out.print('*');
                Thread.sleep(200);
              }//end state machine loop
          * protocolStream prepare the stream to be send over RS232 to POS terminal
          * with LRC cheksum control
          * @param data
          * @return byte[]
         private byte[] protocolStream(String data) {
              char STX = (char) 0x02;
              String tmp = "" + STX + STX + data + "" + getLRC(data);
              System.out.println("PStream: " + tmp);
              for (int i = 0; i < tmp.getBytes().length; i++) {
                   System.out.print(tmp.getBytes() + ":");
              return tmp.getBytes();
    * close port and stream
    private void closePort()
    try {
    serialPort.close();
    is.close();
    os.close();
    } catch (Exception ee) {
         * Longitudinal Redundancy Check (LRC)
         * @param packet
         * @return String
         private String getLRC(String packet) {
              char[] splitPacket = packet.toCharArray();
              char lrc = 0x00;
              for (int x = 0; x < splitPacket.length; x++) {
                   lrc = (char) (lrc ^ splitPacket[x]);
              return "" + (char) lrc;
         private String paddingString(String s, int n, char c, boolean paddingLeft) {
              if (s == null) {
                   return s;
              int add = n - s.length(); // may overflow int size... should not be a
              if (add <= 0) {
                   return s;
              StringBuffer str = new StringBuffer(s);
              char[] ch = new char[add];
              Arrays.fill(ch, c);
              if (paddingLeft) {
                   str.insert(0, ch);
              } else {
                   str.append(ch);
              return str.toString();
    public boolean setProperty(ID id, Object value)
    if (id.toString().equalsIgnoreCase("COMPORT")) {
    setComPort((String)value);
    System.out.println("RS232 com port: " + getComPort());
    return false;
    if (id.toString().equalsIgnoreCase("AMOUNT")) {
    this.setAmount((String)value);
    System.out.println("Amount value: " + getAmount());
    return false;
    if (id.toString().equalsIgnoreCase("TRANSACTIONTYPE")) {
    this.setTransactionType((String)value);
    System.out.println("Transaction Type value: " + this.getTransactionType());
    return false;
    if (id.toString().equalsIgnoreCase("EXECUTE")) {
    System.out.println("Invoke pos terminal");
    try
    doTransaction();
    catch(Exception ex)
    System.err.println("Execute Exception>> " + ex.toString());
    this.showError(res.getProperty("s_dlg_err_title"),res.getProperty("s_gen_exception"));
    return false;
    return false;
         * Display error message inside oracle form
         * @param title
         * @param exceptionString
         private void showError(String title, String exceptionString) {
              JOptionPane.showMessageDialog(this, exceptionString, title, 0);
    Edited by: peterv6i.blogspot.com on May 8, 2012 10:18 AM
    Edited by: peterv6i.blogspot.com on May 8, 2012 10:20 AM
    Edited by: peterv6i.blogspot.com on May 8, 2012 10:21 AM

  • How to enable Multi-record select in Oracle Forms

    Hi
    we recently upgraded to R12 -- 12.1.3.
    we have a requirement in which I should let the users select multiple records in a tabular Form (custom form).
    Currently we have a custom form that displays Open sales orders with credit holds. After selecting the record, the user can release the hold on the order by clicking on a button. The requirement is for enabling selection of multiple records and release.
    We have a similary functionality in 'Quick Sales Orders' form. In this form, multiple lines can be selected by pressing 'CTL' and clicking on the records.
    I read about using APP_MULTI for this. But I couldnt figure out how to enable the multiple selection.
    If someone could throw some light on this, it would be greatly helpful

    See http://stackoverflow.com/questions/3291758/how-do-i-use-the-app-multi-package-to-support-multi-selection-in-my-oracle-form for steps/sample code.
    Sandeep Gandhi

  • Oracle Form Builder and Form Runtime

    I don't know where to get additional help. I have a project to
    complete that I believe is relatively simple for a proficient
    Oracle developer. It is a database for an education store. I
    have the database set up, but I can't get the forms to work
    properly and don't know how to complete some of it. I have to
    create Oracle forms for the order process then enter some
    orders. I have some masterless data blocks, and don't know how
    to make a form that needs field from several related tables.
    Also, I need buttons to clear form and one to accept the orders.
    Then I need to make a screen where a search or query can be
    done. Help! I have bought a book by Stowe, and read the online
    manuals. I would really love it if someone could walk me through
    it. I'll pay for it if necessary. I have to get this done!
    Thanks,
    Tamara Kicovic
    403-245-9659
    null

    Tamara Kicovic (guest) wrote:
    : I don't know where to get additional help. I have a project to
    : complete that I believe is relatively simple for a proficient
    : Oracle developer. It is a database for an education store. I
    : have the database set up, but I can't get the forms to work
    : properly and don't know how to complete some of it. I have to
    : create Oracle forms for the order process then enter some
    : orders. I have some masterless data blocks, and don't know how
    : to make a form that needs field from several related tables.
    : Also, I need buttons to clear form and one to accept the
    orders.
    : Then I need to make a screen where a search or query can be
    : done. Help! I have bought a book by Stowe, and read the online
    : manuals. I would really love it if someone could walk me
    through
    : it. I'll pay for it if necessary. I have to get this done!
    : Thanks,
    : Tamara Kicovic
    : 403-245-9659
    Tamara,
    if I understand well, those buttons that you need, you
    already have on default menu that is included by default in
    module-form.Have you tried them, or you need more specific one?
    Zina
    null

Maybe you are looking for

  • Tree Attributes Query Example is Incorrect

    I have been trying to create a Tree region in Application Express 4.0.2.00.07. In the "Tree Attributes" page the exmaple and help text are contradicting, the example is oncorrect whereas the help text is correct. This is very frustrating! See text: S

  • Bapi's for creating Maintenance order in IW31 with notification

    Hi All,    Is there any bapi's for creating Maintenance order with Notification number in the transaction iw31.   Also is there any bapi's for creating measurement document. Points will be awarded. Regards, vinoth

  • How to create folder if not exist in given path.

    Hi Friends, I am developing file upload utility, i want to keep the uploaded files in c:/company/upload/A when i launch application on another pc where there is no structure like this .. how it will create automatically and how to check through file.

  • WRT320N drops connection

    Hi all, First my setup: I have a pc that has a wired connection to the WRT320N. I have a mediaplayer that has a wirless connection to the WRT320N. And I have a laptop connected wireless. I also use Network magic Pro. Situation: I have mapped the medi

  • A little arrow under my battery

    i was recently driving and when i looked down at my phone there was a little blue arrow under my battery, Does anyone know what this is i have never seen it b4, it was charging in my car, but after i unplugged it, it was still there, although i love