ePQA
The e-Commerce PQA Enhancer
from Stevens Creek Software
Introduction
ePQA is a PalmCall application designed to
facilitate e-commerce from a Palm VII. It allows any PQA to be enhanced with the
following features:
1) Selection of a customer from the built-in Address Book application, using
"Intelliscroll" to allow tapping of letters of the alphabet to quickly
skip to a section in the Address Book based on one of a dozen fields.


Search and display on more than a dozen fields:

2) Filling in one or more fields in the PQA form with information extracted
from the Address Book entry. All fields (including custom fields, even renamed
custom fields) can be extracted, as can the full name (combination of first and last
name) and the full address (combination of address, city, state, and zip).
3) As an alternative to selecting a customer in general, AutoFill of information
from the Business Card entry (i .e., personal information) or from a another
"pre-selected" entry.
4) Credit card entry and/or validation (validation means verifying that the
numbers satisfy the appropriate check sum algorithms imposed on credit cards, not
that the card is actually valid!).

5) Adding items and prices to a PQA order form from a catalog of thousands of
items (requires Take An Order! software).

6) Printing of information returned to the PQA as a web clipping, such
as a credit card receipt for a transaction that has just been authorized on the web
(requires PalmPrint software).
7) Transfer of information returned to the PQA to the Memo Pad.
Installation
ePQA.prc is a standard Palm application, installed
into the Palm VII using standard installation tools.
Writing a PQA to use ePQA
The sample software distribution includes a file epqademo.htm which demonstrates
a sample order form written to take advantage of ePQA. The key lines of this file
are these:
<A HREF="palmcall:SCsv.appl?Select&Full Name&E-mail&Address&City&State&Zip
Code&Skip" BUTTON>Select Customer</A>
<A HREF="palmcall:SCsv.appl?Select Card&Full Name&E-mail&Address&City&State&Zip
Code&Skip" BUTTON>AutoFill Self</A>
<A HREF="palmcall:SCsv.appl?Full Name&E-mail&Address&City&State&Zip
Code" BUTTON>AutoFill Other</A>
<A HREF="palmcall:SCsv.appl?Skip19&CCInput" BUTTON>Input Credit
Card</A>
The first of these two lines demonstrates calling ePQA
(creator ID SCsv), selecting a customer, and extracting information to fill in a
form, the second set of two lines does the same thing but extracting the information
from the user's "Business Card" rather than allowing selection of a customer
in general, the third extracts information from a "pre-selected" card other
than the business card, and the fourth fragment demonstrates calling ePQA
to enter and validate a credit card number. The key to ePQA
is that it will parse arguments (one or more, separated by ampersands &) passed
to it and take appropriate actions. The potential arguments are as follows:
- Select displays a screen (shown below) labelled Select Name which
allows the user to select a name from the Address Book database. The list displayed
shows name (last name, first name) and location (city, state) or company and name,
depending on the sort order of the Address Book. The usual category selector allows
one or all categories of names to be selected. Beneath the list of names is a complete
alphabet, A-Z. To scroll to a particular name, the user can use Graffiti (as in the
normal Address Book "Lookup" function), but, even more simply, can just
tap on the letters to jump to the appropriate section (e.g., "T" scrolls
to the "T's", "T" followed by "R" scrolls to the names
starting with "TR", etc.). When a name is selected, the user taps OK
(or Cancel to avoid choosing a name). The last name chosen is always remembered,
so that a user using ePQA for personal reasons
(e.g., to always fill in their OWN name and address in different forms) would only
need to perform a selection once, not every time.


Unlike the standard Address Book application, the first (search) field can
be more than a dozen choices - Name, Company, Address, City/State, Zip Code,
Work Phone, Home Phone, Fax, E-mail, or Custom 1 through 4. Furthermore, the user
also has full control over the second display column (with the same set of 13 choices),
to help in selecting the right name from the list.

This same screen can be called up directly by a user by tapping on the ePQA
application itself. This "pre-selects" a name from the list, so now
a PQA can be written in which the user simply taps an "Autofill" button
and sees the information filled in, without the necessity to go through the selection
process each time.
To verify that the dsired customer is being chosen, the user can also "double-tap"
on a name on the list to see a "full detail" display:
- Select Card automatically selects the user's Business Card from
the Address Book (assuming one entry in the Address Book has been previously designated
as the Business Card).
- Field names from the Address Book, including not only all standard
names such as "Last name", "Company", "City", etc.,
but also all possible phone types ("E-mail", "Home", etc.) and
even including renamed custom fields, will extract the requested information, fill
out one field in the form with that information, and skip to the next field. There
are two "special cases", Full Name combines the first and
last name fields and copies them to one field in the form, and Full Address
combines the Address, City, State, and Zip Code fields and copies the result
into one field in the form. Thus the example shown above first allows the user to
select a name, and then, with no further user action, fills in the first field in
the form with the Full Name, the second field in the form with the E-mail, the third
field in the form with the Address, the fourth field in the form with the City, the
fifth field in the form with the State, and the sixth field in the form with the
Zip Code.
- Skip skips a field; SkipN (e.g., Skip8) skips N
fields. If there is one field (or more) in the form which needs information which
is not found in the Address Book, you can simply skip over it. Note in the three
examples shown above, the first two end with "&Skip" and the third
does not. In the first two cases, after filling in all the specified fields, the
software automatically places the "insertion point" into the next field
(presumably one requiring manual input). In the third case, the software fills in
all the specified fields, and leaves the insertion point in the next field (if any
remain).
- CCInput allows the user to enter a credit card number using large
on-screen buttons, validates the number, and then fills in the next two fields, the
first with the number itself (without spaces) and the second with the expiration
date in the form MMYY.
- CCValidate takes the number found in the currently active field,
and performs a standard validation test on it to verify that it is (numerically)
a valid credit card number. This prevents wasting an on air-transmission of an invalid
credit card number.
- SelectItem and SelectItemPrice allow the user
to select an item from a built-in catalog of items (requires a copy of Take An
Order! software installed in the unit). SelectItem fills in the
name of the item in the next field; SelectItemPrice fills in the
name and price of the item in the next two fields.
- Print takes the information found in the currently active field
and prints it. Functioning of this feature requires that a copy of either PalmPrint
or SCS Print Server be installed on the Palm VII to perform the actual printing.
- Memo takes the information found in the currently active field and creates
one or more memos from it (using the memo size limit of 4000 characters). If multiple
memos must be created, the software automatically breaks the memo at a line break
(if one is found in the last 100 characters), or, failing that, a space (if one is
found in the last 100 characters), or, failing that, whereever it must.
Writing a CGI script to allow printing or memo creation via ePQA
The sample software distribution includes a file epqademo.cgi which demonstrates
how to write a CGI script to take advantage of the printing capability of ePQA.
The key lines of this file are these:
print '<CENTER><A HREF="palmcall:SCsv.appl?Print" BUTTON>Print</A>';
print '<A HREF="palmcall:SCsv.appl?Memo" BUTTON>Create Memo</A></CENTER>';
print '<FORM ACTION="default.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">';
print '<TEXTAREA NAME="Output" ROWS="11" COLS="32">';
print "The information you provided was:\r";
...
print "</TEXTAREA><BR>";
The first line creates a button labelled "Print" which will call ePQA with the "Print" command. The second
line creates a button labelled "Create Memo" which will call ePQA
with the "Memo" command. The signficance of the remaining lines is that
the print functionality of ePQA requires that
all data to be printed (or transferred to a memo) is contained in a single Palm "field",
which in CGI terms becomes a single "TEXTAREA" inside a form (in cases
where this isn't possible, PQA results can still be printed using PalmPrint,
but they require a multistep process - selecting "Copy Page" from the PQA
Edit Menu, switching to the PalmPrint application, and tapping "Print Clipboard."
This is not only a multistep process, but of course is also subject to the clipboard
1000-character limit.)
Note that this CGI script is actually active on the Web at http://www.stevenscreek.com/palm/epqademo.cgi,
so that test PQAs can be written and tested by referencing that URL (as does the
sample PQA, epqademo.pqa).
Using the sample software to demonstrate functionality
- Install epqademo.pqa and epqa.prc in the Palm VII. If printing is to be taken
advantage of, install PalmPrint or SCS Print Server as well. If catalog searching
is to be taken advantage of, install Take An Order! as well (PalmPrint, SCS Print
Server, and Take An Order! can all be downloaded in trial versions, as well as purchased,
at www.stevenscreek.com).
- Run PalmPrint and configure the software for the printer to be used for the test.
Likewise for Take An Order! if that is to be used.
- Run the ePQA Demo application. This will display a blank form to be filled out
to order software items from Stevens Creek Software. The form can be filled out by
hand, but of course that defeats the purpose of the test.
- Tap on the "Select Customer" button. A view of the Address Book is
displayed. Select a name.
- Tap on OK. When the PQA reappears, the relevant fields will be filled in.
- As an alternative to the previous two steps, simply tap on the "AutoFill
Self" button and the information will be extracted from the Business Card in
the Address Book (assuming one has been designated).
- As an additional alternative, before running the PQA, tap on ePQA itself, and
select a customer. Now, in the ePQA demo, tap on "Autofill Other" and the
information from that name will be filled in.
- If you have installed Take An Order!, tap on "Add" to add an item to
the order; if not, you can fill in the name and price of an item "by hand."
- Tap on "Enter CC" to enter a credit card. For purposes of this test,
you can enter "4444111122223333" which is a valid number, or, to see the
test fail, "4444111122223334."
- Tap Submit Order. This will go over the air to the Stevens Creek web site and
go through the motions of placing an order (no order will actually be placed, and
no actual credit card authorization will occur).
- You will receive a (bogus) order acknowledgement on the screen - "Thank
you for your order, etc.".
- Tap the "Create Memo" button and the acknowledgement will be automatically
transferred to a memo in the MemoPad (you can check this after doing the next step).
- Tap the "Print" button which appears, point the unit at the printer,
and voila! the receipt will be printed, complete with a signature line, ready for
the customer to sign.
ePQA is a trademark of Stevens Creek Software. PalmPrint
is a registered trademark of the 3Com Corporation or its subsidiaries, used by Stevens
Creek Software under express license.