WebService Functions
WebService Functions
The functions listed in this section query, update, delete, and insert a records in the current project database. These functions are:
Insert and Delete Record Functions
The \SmartClient\acad\afm_samples.lsp file contains examples of using the WebService functions.
All WebService methods have a fixed list of parameters. Even though the number of parameters is fixed, certain parameter values are optional, and for those parameters a value of
nil
can be used to indicate no value. Each of the functions described in this section state whether a value must be set for a parameter
(required)
or if a nil value can be set instead for optional parameters
(optional)
.
The DataRecord Object
The
WebService DataRecord
is the common container for all data that originates from the Web Central server. This
DataRecord
object is used for all Record-related data internally within the Smart Client Extension applications, as well as by javascript for server-side View development.
This
DataRecord
object is exposed through the AutoLISP API as lists of field-value pairs and is identified as a ‘Record’ in this documentation. The ‘Record’ object must be in the following form:
(
("fieldList" ("tableName.fieldName0" . value0) ("tableName.fieldName1" . value1) etc..)
("oldFieldList" ("tableName.fieldName0" . value0) ("tableName.fieldName2" . value2) etc..)
)
This is used when querying, updating, or inserting data through the exposed
WebService
functions. The first item in each list
fieldList
and
oldFieldList
are required fixed values.
Note: Values must be of the correct data type for the specified field name, such as:
(“rm.rm_id” . “101”)
(“rm.area” . 155.89)
There are a series of utility functions that aid in working with these Record objects, which are described in the "Utility Functions" section of this document.
Example
The following is an example of a record that would be used in a call to
WebServicesUpdateRecord
in which the “rm.rm_std” value is to be updated server-side.
(
("fieldList" ("rm.bl_id" . "HQ") ("rm.fl_id" . "17") ("rm.rm_id" . "101") ("rm.rm_std" . "OFFICE"))
("oldFieldList" ("rm.bl_id" . "HQ") ("rm.fl_id" . "17") ("rm.rm_id" . "101") ("rm.rm_std" . "WRKSTN"))
)
Restrictions
Each restriction included in the list of restrictions can take any of the following forms:
- (list “tableName.fieldName” value)
- (list “tableName.fieldName” “comparison” value)
- (list “tableName.fieldName” “comparison” “logicalOperator”)
Where:
- tableName.fieldName: a concatenation of the table name and field name of interest.
- comparison: how the value is to be tested. The default is “=”, which is passed in as a string. See below for a list of supported comparisons.
- value: the value with which the comparison should be tested. The value type must be valid per the field type. For example: if the field is rm.fl_id, the value must be a string, such as 17. If the field is rm.area, the value must be a number, such as 200.0.
- logicalOperator: specifies how multiple filters are to be logically combined. Supported values are “and” or “or”, the default is “and” if nothing is specified.
Comparison Options
- lt
- <
- gt
- >
- lte
- <=
- gte
- >=
- like
- isnull
- isnotnull
- !=
- <>
- in
- notin
Example Restriction Usage
Specify a filter where “rm.rm_cat” = “SERV”
(list (list "rm.rm_cat" "SERV"))
alternatively:
(list (list "rm.rm_cat" “=” "SERV"))
Specify a filter where “rm.area” >= 75.0 AND “rm.area” < 100.0
(list (list "rm.area" ">=" 75.0) (list "rm.area" "<" 100.0))
Specify a filter where “rm.rm_type” is like “OFF” OR “rm.rm_type” = “MAIL”
((list "rm.rm_type" "like" "OFF")(list "rm.rm_type" "=" "MAIL" "or"))
Note: For the first form in which only the field name and value are specified, the operator defaults to “=”.