Integration: Scanning Under Programmatic Control


Essentially, to scan under programmatic control the user performs the normal documented procedures for starting Image-Master at a scanning capable workstation. This includes starting the program, logging into Image-Master, selecting the desired database, and invoking the Scanning Module.

Once the Scanning Module loads, DDE server services are permitted and the following conversations will be honored from your application:

Example 1:

Service: IMASTER


Executable: IMASTER.EXE (required to be running and in the Scanning Module by the user)

Request Type(s) Supported: EXECUTE

DDE Execute = SCAN (attended scanning) and SCANB (fully automated scanning) support the loading of index filing fields prior to the scan request being initiated.

The format is as follows:

SCAN=fieldname1=value1,fieldname2=value2, ...and so on.

Loading of field(s) during scanning is purely optional. The syntax also supports a DOS batch file compatible form that encloses the index fields in quotes as in: SCAN="fieldname1=value1..." In all forms, the case of the commands and fieldnames are irrelevant, but the case of the values are preserved.


Note that fieldname123 is a literal which represents a valid, defined, index field from the currently selected database. If a third-party application tries to pass an undefined fieldname, the user will be advised and that field will be skipped. Any other valid fields will be loaded as expected.


Note that value123 is AN EXPRESSION! (One of FoxPro's greatest features). That means for simple literal assignments, the proper delimiters must be included around the value.

For example:

Storing a character literal: ADDRESS='123 Any Street' (note the SINGLE quotes around the value)

Storing a date literal: TDATE={01/17/1996} (note the curly brackets around the value) and so on...

Note that since the value is an expression, more complex data can be exchanged.

For example:

Using an internal FoxPro function: TDATE=DATE() (this would store the current system date in the field)

Using a third-party data source: DEALER=EXTNFN()+'extra literal value' quite simply, any expression that evaluates to the correct data type would work.

Example 2:

SCAN="COMPANY='Able Fish Industries',TELEPH='(819) 555-1864'"

(This uses the DOS compatible method. The corresponding batch command for a DOS app might be.. ...DISP32.EXE ...\IMASTER.EXE,SCAN=%1 and then the passed parameter would be "COMPANY='Able Fish Industries',TELEPH='(819) 555-1864'")


As mentioned earlier, the value(s) are loaded into the appropriate fields prior to the start of scanning. Therefore, the typical workflow would be for the third-party application to send the request, the scanning operator loads the document set into the scanner as instructed, scans and QC's the document set, fills in any remaining index fields, and then chooses done.

Related Topics

Introduction Image-Master Third-Party Integration