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 AMThe 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 -
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,
Mandeepthis 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
thanksAsk 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 helpwell 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 -
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
RahulHi 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 -
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,
SSYou 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 helpfulSee 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
nullTamara 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.
-
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