It caches metadata alike Remedy::ARSTools, but uses Data::Dumper or Storable module. And metadata model is directly given from ARS::ars_GetFieldTable()/ARS::ars_GetField(), unlike ARSOOForm and Remedy::ARSTools. And additional description level (-metadn/-metaid) added to unify field names and extend conversion capabilities of field values.

Field names and values are translated (-strFields/strIn/strOut) as possible.

(CGI Form Presenter - Field Definitions) Action to execute after the form performance, should be at the top of the form, before -key fields. May be several actions with the same -namecgi. 1 - action button, it should to be at the bottom of the form. For 'entrySave' action, 'entryUpd' is used when non-empty key value, 'entryDel' otherwise with non-empty previous key value.

(CGI Form Presenter - Field Definitions) Labels for the drop-down list box field. If no -values, this will be generated automatically. Special {-name=>name, field=>value,..} form is to define -change. See also -values.

(CGI Form Presenter - Field Definitions) Action to execute before the form performance, should be at the top of the form, before -key fields. May be several actions with the same -namecgi. Alternative key field name may be passed as CGI->param(action-name). See alco -action.

(CGI Form Presenter - Field Definitions) Short name of the Variable File to read record from with -action=>'vfentry' or -action=>'vfhash'; or to renew or update after -action=>'entryIns' || 'entryUpd' || 'entryDel' May be used with -action or -key field.

(CGI Form Presenter - Field Definitions) Definition of html field to display (Utility Objects):

not exists - use default widget,
undef - field not included in form,
'html' - html to display,
hidden field with previous value added if '-namecgi'
sub{} -> html to display,...
{option=>value,..} - parameters for 'cgi...' or 'CGI' field

(Metadata) Refresh minimal ARS metadata set (vfstore(-meta-min)) after connect/arsmeta call. Load minimal ARS metadata instead of or after connect/arsmeta call. Loading of minimal metadata set is faster then loading all metadata with arsmeta. Minimal metadata set includes explicit 'enumLimits' and 'time' fields.

Load SQL Data Store metadata or refresh this from ARS metadata after connect/arsmeta call. The SQL Data Store is intended for data replicated from ARS using dbidsrpl() calls. Database table and column names are escaped ARS form and field names. Metadata is stored in -meta-sql variable file.

(Utility Objects) Generate simple HTML form in table layout using CGI->start_form(), CGI->table(), CGI->end_form(). 'th' tag will be used for simple strings as usual labels, 'td' tag - for strings started with HTML tags.

-lim_rf => undef || max number of records read from ARS, query(-limit). The number of the records fetched really may be incremented by counting timestamps duplicated. Without timestamps, additional queries will be invoked when '-lim_rf' records fetched.

Query data from SQL Data Store. Uses dbi(), -meta-sql, -sqlschema. Any dbi() method may be used for SQL Data Store, but dbidsquery understands "ARS form name"s and "ARS field name"s in addition to "sql table name"s and "sql column name"s. Records are returned as hash refs with ARS field names available, otherwise SQL column names. Parameters:

(ARS methods) Form field => value hash for a new ARS record using values given and default values in -meta. This may be not needed, entryIns may be sufficient. Field names are translated to ids using -metadn/-meta. Field values are translated with strOut when -strFields.

Specially for 'HPD:Help Desk': 'Incident Number' value will be generated if it is 1.

Execute the script periodically, run command immediately, soon command after delay specified. Log file name may be full file name, else vfname(file name) will be used. If run command is empty, soon command will be scheduled. If soon command is empty, sleep(minutes*60) will be used, otherwise 'at' MSWin32 scheduling command. If !defined(minutes), soon command will be deleted from schedule and run command will be executed once.

(ARS methods) Convert value for ARS internal field value representation. Called automatically when -strFields. Should be called explicitly from strIn sub{} in -metadn/-metaid. May need to be called explicitly forming query condition. See also strOut, -strFields.

(ARS methods) Convert ARS field value for external representation. Called automatically when -strFields. Should be called explicitly from strOut sub{} in -metadn/-metaid and when parsing strings result from query. See also strIn, -strFields.

(Variable files) Direct access to vfdata using key name and value. Each element of vfdata(-slotName) array should be a hash with 'keyName' element. vfdata array will be automatically cached into hash "-slotName/keyName".

(Variable files) Renew variables file using vfstore() inside vfload() with '-slotName-load' sub{}. If no period or when period ==1 file will be renewed immediatelly. Else file will be renewed only if it is older then period.