GetFindData

Purpose

Use GetFindData to locate information that is accessed using either a 3270 server or a custom server.


A screen capture of the Action GetFindData window

Description

GetFindData retrieves all input as strings.

Once a caller has provided partial identification information (by pressing the keys on the telephone keypad), GetFindData sends a request via the server for a list of data items that are identified by the partial identification information. If the list contains more than one item, GetFindData processes additional identification information. When enough information has been provided to identify the unique data item, that item is placed in a buffer to which a variable name is assigned, and the action returns "succeeded". If the list contains no items, the action returns immediately with the result "no match found".

The key identified by the Stop Key system parameter in the Application Server Interface group clears the input to allow the caller to start over. By default, this is the asterisk (*) key. The last key pressed must be the key identified by the Enter Key system parameter in the Application Server Interface group. By default, this is the <#> key.

If the action terminates with the result "succeeded" or "no match found" without the user having pressed the Enter key, the next prompt is force-played for the first 0.8 seconds to discard any extra keys the caller has pressed, unless there is another Get action before that prompt.

For example, suppose a caller wants to order an item from a catalog. As soon as the caller keys in the first part of the item number, GetFindData sends a request to the server to retrieve a list of all the item numbers that begin with the same characters. If there is only one item on the list, the action places the entire item number in a buffer. If the list includes more than one candidate item, GetFindData processes the additional characters the caller has provided in the meantime until it locates a single item number that matches the caller’s input.

A caller can provide information as numbers or letters. The Key Signals system parameter group maps letters to the keys on the telephone keypad.

To enter a number or letter, the caller presses two keys. The first key is the key on which the letter appears. The second key indicates which of the letters mapped to that key is the one the caller wants. The first position in the map is 0, the second position is 1, and so on.

For example, if the keys are mapped as printed on telephone keypads in the United States, the map for key 2 can be set to 2ABC. The caller presses 2 and then 0 to enter the number 2; 2 and then 1 to enter the letter A; 2 and then 2 to enter the letter B; and 2 and then 3 to enter the letter C. To enter S, the caller presses 7 and then 3.

Note: To accommodate Q and Z, you can map the Key 1 parameter to 1QZ. After you restart Blueworx Voice Response, Q is available by pressing 1 then 1, and Z by pressing 1 then 2.

GetFindData causes an automatic fade out of any background music. You can override this by using the System : Music : Automatic fade before actions system variable (SV226).

Parameters

The parameters for GetFindData identify the server that is used to access the information, the variable to which the returned information is assigned, and the minimum amount of information a caller must enter before the action invokes the server. The parameters also define two timeouts.

Possible results

GetFindData can have one of the following results:

Succeeded
The requested information has been located and assigned to the variable.
No Match Found
No information could be found that matched the information requested by the caller.
Host Problem
A problem with the computer on which the information is located prevented the information from being available. The application knows that the other computer is there, but GetFindData cannot retrieve the information at this time.
Timeout (with input)
The caller started entering information but never finished. The time specified by Caller Input Timeout has elapsed.
No Host Response
The voice application did not receive a response when it tried to contact the computer on which the information is located. The computer may be down.
Timeout
The time specified by Caller Input Timeout has elapsed and the caller has not entered the information.
Last Timeout
The application has repeated this GetFindData action for the number of times defined by the value of Timeouts Allowed.
Caller Hung Up
The caller has hung up.

ASCII syntax

When using an ASCII editor, code this action with these parameters in the following order:

  1. Server Type "CUSTOM_SERVER"
    • or "SERVER_3270"
  2. Server Name
  3. Server Command
  4. Parameter
  5. Minimum keys
  6. Host Response Time Limit
  7. User input timeout
  8. Timeouts allowed

For example:

label: "Check Edges"
	GetFindData("SERVER_3270", SrvrSample_3270, sendkeys,
             in1_n, 10, 20, 10, 5)
	  edge EDGE_GFDATA_MATCH_FOUND:		match_found
	  edge EDGE_GFDATA_NO_MATCH_FOUND:	   no_match_found
	  edge EDGE_GFDATA_HOST_PROB:			host_prob
	  edge EDGE_GFDATA_TIMEOUT_WITH_INPUT: timeout_with_input
	  edge EDGE_GFDATA_NO_HOST_RESPONSE:   no_host_response
	  edge EDGE_GFDATA_NO_INPUT:			no_input
	  edge EDGE_GFDATA_LAST_TIMEOUT:		last_timeout
	  edge EDGE_HUP: 					  hup
	;
	GetFindData("CUSTOM_SERVER", CS_Request_Call, sleepy,
             in1_n, 10, 20, 10, 5);

The parameters and edges are described above under "Parameters" and "Possible results". For more information, see Testing a state table using the debugger.