API Reference Manual: Difference between revisions

From RangerMSP Wiki - PSA software for MSPs and IT services providers
Jump to navigation Jump to search
Line 1,710: Line 1,710:
'''1015''' Software name is too long. Make sure your software name has 3 to 15 characters.<br>
'''1015''' Software name is too long. Make sure your software name has 3 to 15 characters.<br>
'''1100''' Database access error.<br>
'''1100''' Database access error.<br>
<u>These error codes are returned when calling the CommitCRMQueryDataRequest function:</u><br>
'''110001''' The application entity for the query (Subject) is missing.
'''110002''' Invalid XML request. Couldn’t find the XML request name: CommitCRMQueryDataRequest
'''110003''' Invalid value was requested for the record count.
'''110004''' The size for the result buffer is too small. Increase its size and try again.
'''110005''' The query filtering structure is invalid (should form an SQL-like query).
'''110006''' This Code is not exists in Commit
'''110008''' Invalid application entity for the query (Subject) was received
'''110019''' Additional records answer the query. Only the amount of records you requested was returned.
'''110020''' This Code is not exists in Commit
'''110021''' Empty result set. No records were found for the query
<u>These error codes are returned when calling the CommitCRMxmlGetRecDataRequest function:</u><br>
'''150001''' Invalid XML received. Please verify that the XML structure is valid.
'''150002''' Invalid field identifiers were received.
'''150003''' No records in CommitCRM database match the received RECID
'''150004''' The received XML version number is not supported.
'''150005''' XML version number is missing.
'''150006''' The received RECID does not point to an Appointment or Task record (it points to an internal place holder only).
'''150007''' The received RECID does not point to a valid History record (it points to an internal place holder only).
'''150008''' Invalid RECID received. Its value cannot point to any entity in CommitCRM.
'''150009''' The received RECID points to object which is not supported by the API.
'''150011''' Invalid XML request. Couldn’t find the XML request name: commitcrmxmlgetrecdatarequest


<u>General error codes, returned when calling the functions CmtGetDescriptionByCode:</u><br>
<u>General error codes, returned when calling the functions CmtGetDescriptionByCode:</u><br>

Revision as of 12:21, 31 August 2011

User Manuals > API Developers Guide > API Reference Manual

Introduction

In this document you will find:

  • Detailed listing of the CommitCRM API functions with their parameters
  • Detailed listing of database fields per entity. The database fields are used when adding, updating and retrieving data using the API.


API Functions

The Programming API provides two sets of API functions:

  • Data Retrieval API
  • Data Update API


Data Retrieval API Functions

The Data Retrieval API is available starting with CommitCRM 5.5.

The Data Retrieval API should be used for read-only purposes. Pulling data from the database using the API should be done using the following steps:

  1. Execute an SQL query using the data query API function.
  2. The data query API returns a list of resulting record IDs.
  3. Read each record separately using another API function.


The Data Retrieval API functions include initialization, error handling and actual data retrieval functions. The following data retrieval API functions receive and return parameters in XML format:

  • CmtGetQueryRecIds - Receives an SQL query and returns a result list of REC IDs.
  • CmtGetRecordDataByRecId - Returns record details according to the input REC ID.
  • CmtGetFieldAttributesByRecId (advanced) - Returns the database properties of a field.


The following table lists the Data Retrieval API functions and their parameters. You can find more details about each function below the table.

Data Retrieval API Functions:

Method Return Value Description
CmtInitDbQryDll(app_name, path, status) status (int) Establishes a connection to the database. app_name - This string will be used for all functions of the package, and will appear in the application as the user who performs the changes in the records you update. You should specify a meaningful value. path - The path to the DB folder where the Commit server is installed: <server>\Commit\Db status - 1 for success. See Error Codes Description for other values.
CmtGetQueryRecIds
(xml_request_buff,
xml_request_buff_len,
xml_response_data_buff,
xml_response_data_buff_len,
status)
status (int),results (char) Receives an SQL query and returns a result list of REC IDs. You should then call CmtGetRecordDataByRecId for each record details.

xml_request_buff – XML with the SQL query.
xml_request_buff_len – length of the request buffer.
xml_response_data_buff - buffer for returned XML response.
xml_response_data_buff_len – length of the response buffer.
status - returned status, 1 for success.

>> See Error Codes Description for other values.
>> See CmtGetQueryRecIds for more details about the XML parameters.

CmtGetRecordDataByRecId
(xml_request_buff,
xml_request_buff_len,
xml_response_data_buff,
xml_response_data_buff_len,
status)
status (int),details(char) Returns a record's details according to the input REC ID.

xml_request_buff – XML with the REC ID.
xml_request_buff_len – length of the request buffer.
xml_response_data_buff - buffer for returned XML response.
xml_response_data_buff_len – length of the response buffer.
status - returned status, 1 for success.

>> See Error Codes Description for other values.
>> See CmtGetRecordDataByRecId for more details about the XML parameters.

CmtGetFieldAttributesByRecId
(xml_request_buff,
xml_request_buff_len,
xml_response_data_buff,
xml_response_data_buff_len,
status)
status (int),details(char) Returns the properties of a database field.

xml_request_buff – XML with the requested Field ID.
xml_request_buff_len – length of the request buffer.
xml_response_data_buff - buffer for returned XML response.
xml_response_data_buff_len – length of the response buffer.
status - returned status, 1 for success.

>> See Error Codes Description for other values.
>> See CmtGetFieldAttributesByRecId for more details about the XML parameters.

CmtTerminateDbQryDll Close the connection to the database
CmtGetDescriptionByCode (code,
desc_size,
desc)
message (char) Call this function in case of error in

CmtInsUpdRec.
In case of error (return code other than 1),
you can use this to get error string.

CmtGetDescriptionByStatus Call this function in case of error in

CmtInitDbQryDll

CmtGetQueryRecIds

The CmtGetQueryRecIds function receives an SQL query and returns a result list of REC IDs.
Both the request and the response parameters are in XML format. See more details about each XML structure below.

CmtGetQueryRecIds Request

The commitcrmxmlqueryrequest XML contains the following sections:

  • Query Data Type – here you should enter which data type you want to query.
  • SQL Query – here you build the SQL Query to be executed.

commitcrmxmlqueryrequest XML template:

<?xml version="1.0" ?> 
<?commitcrmxmlqueryrequest version="1.0" ?> 
<CommitCRMQueryDataRequest >
   <ExternalApplicationName>Enter you application name here</ExternalApplicationName> 
   <Datakind> one of the supported data types </Datakind>
     <MaxRecordCount> Enter the maximum records you want in the results </MaxRecordCount> 
     <Query> 
       <Where>
 	   <Link> ( </Link>
 	   <FLDTKTCARDID op=" = | > | >= | < | <= | like | not | not like "> value </FLDTKTCARDID> 
 	   <Link> ) and | or ( </Link>
 	   <FLDTKTCARDID op=" = | > | >= | < | <= | like | not | not like "> value </FLDTKTCARDID> 
 	   <Link> ) </Link>
       </Where>
       <Order>
 	  <FLDTKTCARDID_FLDCRDFULLNAME dir="asc | desc" /> 
       </Order>	
     </Query>
</CommitCRMQueryDataRequest >

See more details about each XML token below.

Query Data Type

The Data Type should be entered in the following token:

<Datakind> one of the supported data types </Datakind>

The following table lists the entities supported by the Data Retrieval API. In this list you will find the entity name as it appears in the application and the data kind which is the string you should use in the XML token: Datakind in the XML.

Data Retrieval API Supported data types (Data Kind):

Entity in Application Data Kind
Account ACCOUNT
Opportunity OPPORTUNITY
Document DOCUMENT
Charge CHARGE
Appointment APPOINTMENT
Task TASK
History Note HISTORY-NOTE
History Audit Line HISTORY-AUDIT
Ticket TICKET
Item ITEM
Asset ASSET
Knowledge Base Article ARTICLE
Contract CONTRACT
Tax TAX
SQL Query

The Query part in the XML lets you build the actual text of the SQL query, providing you with maximum flexibility.

     <Query> 
       <Where>
 	   <Link> ( </Link>
 	   <FLDTKTCARDID op=" = | > | >= | < | <= | like | not | not like "> value </FLDTKTCARDID> 
 	   <Link> ) and | or ( </Link>
 	   <FLDTKTCARDID op=" = | > | >= | < | <= | like | not | not like "> value </FLDTKTCARDID> 
 	   <Link> ) </Link>
       </Where>
       <Order>
 	  <FLDTKTCARDID_FLDCRDFULLNAME dir="asc | desc" /> 
       </Order>	
     </Query>

The Query section may contain the following tokens:

  • Where – here you build your actual "where" clause of the query, providing the filtering criteria you want to execute.
    • Field Names and operators – here you can enter the fields to filter by, the operators and the value (e.g. FLDTKTCARDID = CRDIBR5V3SGPKGCSYCEF).
    • Link – this token lets you link text, such as brackets, commas, etc.
  • Order – here you define the sorting criteria for your query (e.g. FLDTKTCARDID_FLDCRDFULLNAME dir="asc").

CmtGetQueryRecIds Response

CmtGetQueryRecIds returns the result in XML format as follows:

<?xml version="1.0" ?>
<?commitcrmxmlqueryresponse version = "1.0" ?>
 <CommitCRMQueryDataResponse>
   <Status></Status>
   <ResultCodes></ResultCodes>
   <ResultMessage></ResultMessage>
   <RecordData></RecordData>
 </CommitCRMQueryDataResponse>

Where:

  • Status, Result Codes – the function returns a main status and in case of error it may return
  • Result Message – contains the error message text in case of an error.
  • Record Data – contains a list of record IDs which answer the query. This list contains the database REC IDs separated by commas.


CmtGetRecordDataByRecId

The CmtGetRecordDataByRecId function receives a record ID and a list of fields for the requested entity, and returns the requested data in XML format.

CmtGetRecordDataByRecId Request

Example of a request to read an Account:

<?xml version="1.0" ?>
<?commitcrmxmlgetrecorddatarequest version = "1.0" ?>
 <CommitCRMGetRecordDataRequest>
   <ExternalApplicationName>MySoftwareName</ExternalApplicationName>
   <GetRecordByRecId>CRDC1VTHMDF627HJECG7</GetRecordByRecId>
   <SelectFieldsList>
     FLDCRDCOMPANY,
     FLDCRDCONTACT,
     FLDCRDADDRESS1,
     FLDCRDCITY,
   </SelectFieldsList>
 </CommitCRMGetRecordDataRequest>

The commitcrmxmlgetrecorddatarequest XML contains the following parameters:

  • Get Record by Rec ID – here you should enter the Record ID you want to read, usually an ID from the list which was returned from the query function.
  • Select Fields List – here you build the list of fields to be returned for the requested entity.


CmtGetRecordDataByRecId Response

The CmtGetRecordDataByRecId function returns the result in XML format as follows:

<?xml version="1.0" ?>
<?commitcrmxmlgetrecorddataresponse version = "1.0" ?> 
 <CommitCRMGetRecordDataResponse>
   <Status> </Status>
   <ResultCodes></ResultCodes>
   <ResultMessage></ResultMessage>
   <RecordData> database fields tokens </RecordData>
 </CommitCRMGetRecordDataResponse>

Where:

  • Status, Result Codes – the function returns a main status and in case of error it may return
  • Result Message – contains the error message text in case of an error.
  • Record Data – contains a list of database fields as requested. This list contains holds each database field as a token and the data itself is the token's value.

Example of a response:

Account Data

<?xml version="1.0" ?>
<?commitcrmxmlgetrecorddataresponse version = "1.0" ?> 
 <CommitCRMGetRecordDataResponse>
   <Status>SUCCESS</Status>
   <ResultCodes></ResultCodes>
   <ResultMessage></ResultMessage>
   <RecordData>
     <FLDCRDCOMPANY> <![CDATA[Commit Business Solutions ltd.]]></FLDCRDCOMPANY>
     <FLDCRDCONTACT> <![CDATA[John Smith]]> </FLDCRDCONTACT>
     <FLDCRDADDRESS1> <![CDATA[107 Severin Street]]> </FLDCRDADDRESS1>
     <FLDCRDCITY> <![CDATA[London]]> </FLDCRDCITY>
   </RecordData>
 </CommitCRMGetRecordDataResponse>

Ticket Data

<?xml version="1.0" encoding="ISO-8859-8" ?>
<?commitcrmxmlgetrecorddataresponse version = "1.0" ?>
 <CommitCRMGetRecordDataResponse>
   <Status>SUCCESS</Status>
   <ResultCodes></ResultCodes>
   <ResultMessage></ResultMessage>
   <RecordData>
     <FLDTKTTICKETNO><![CDATA[0500-1009]]></FLDTKTTICKETNO>
     <FLDTKTSTATUS CmtRawData="900">Cancelled</FLDTKTSTATUS>
     <FLDTKTUPDATEDATE>24/01/2011  18:03</FLDTKTUPDATEDATE>
   </RecordData>
 </CommitCRMGetRecordDataResponse>

CmtGetFieldAttributesByRecId

The CmtGetRecordDataByRecId function receives a Field ID and returns the field details in XML format. Field details include the same details that can be found when viewing the field attributes in the application. The details are returned in an XML including: Field Type, Size, Label, Hint, Name and Default Value.

Both the request and response parameters are in XML format.

CmtGetFieldAttributesByRecId Request

The commitcrmxmlgetfieldattributesrequest XML contains the requested Field ID:

<?xml version="1.0" ?>
<?commitcrmxmlgetfieldattributesrequest version = "1.0" ?>
 <CommitCRMGetFieldAttributesRequest>
   <ExternalApplicationName>MySoftwareName</ExternalApplicationName>
   <GetRecordByRecId> Enter the Field ID here (e.g. FLDCRDCITY) </GetRecordByRecId>
 </CommitCRMGetFieldAttributesRequest>

Where:

  • Get Record by Rec ID – here you should enter the Field ID you want to read. The Field ID which should be transferred to request can be found in the application, by right-clicking the field > Field Attributes > Advanced > Tech. Rec ID.


CmtGetFieldAttributesByRecId Response

The CmtGetRecordDataByRecId function returns the result in XML format as follows:

The CmtGetFieldAttributesByRecId function returns the result in XML format as follows

<?xml version="1.0" ?>
<?commitcrmxmlgetfieldattributesresponse version = "1.0" ?>
<CommitCRMGetFieldAttributesResponse>
 <Status> </Status>
 <ResultCodes></ResultCodes>
 <ResultMessage></ResultMessage>
 <RecordData>
   <TYPE></TYPE>
   <SIZE></SIZE>
   <LABEL></LABEL>
   <HINT></HINT>
   <NAME></NAME>
   <DEFAULTVALUE></DEFAULTVALUE>
   <DISPLAYSYMBOL></DISPLAYSYMBOL>
 </RecordData>
</CommitCRMGetFieldAttributesResponse>


Where:

  • Status, Result Codes – the function returns a main status and in case of error it may return
  • Result Message – contains the error message text in case of an error.
  • Record Data – contains a list of database fields containing the field details.
    • DEFAULTVALUE: contains the default value for the field.
    • DISPLAYSYMBOL: refers to the default value and optionally returns a symbol when relevant for a numeric value (such as currency symbol, percentage symbol, etc.).

Example of a response:

<?xml version="1.0" ?>
<?commitcrmxmlgetfieldattributesresponse version = "1.0" ?>
<CommitCRMGetFieldAttributesResponse>
 <Status>SUCCESS</Status>
 <ResultCodes></ResultCodes>
 <ResultMessage></ResultMessage>
 <RecordData>
   <TYPE><![CDATA[CHAR]]></TYPE>
   <SIZE>30</SIZE>
   <LABEL><![CDATA[City]]></LABEL>
   <HINT><![CDATA[City of account's address]]></HINT>
   <NAME><![CDATA[Address: City]]></NAME>
   <DEFAULTVALUE></DEFAULTVALUE>
   <DISPLAYSYMBOL></DISPLAYSYMBOL>
 </RecordData>
</CommitCRMGetFieldAttributesResponse>

OR (returning a numeric field value)

<?xml version="1.0"  ?>
<?commitcrmxmlgetfieldattributesresponse version = "1.0" ?>
<CommitCRMGetFieldAttributesResponse>
  <Status>SUCCESS</Status>
  <ResultCodes></ResultCodes>
  <ResultMessage></ResultMessage>
  <RecordData>
    <TYPE><![CDATA[DOUBLE]]></TYPE>
    <SIZE></SIZE>
    <LABEL><![CDATA[Adjust Percent]]></LABEL>
    <HINT><![CDATA[Percent of discount or markup]]></HINT>
    <NAME><![CDATA[Adjust Percent]]></NAME>
    <DEFAULTVALUE><![CDATA[0]]></DEFAULTVALUE>
    <DISPLAYSYMBOL><![CDATA[%]]></DISPLAYSYMBOL>
  </RecordData>
</CommitCRMGetFieldAttributesResponse>

Data Update API Functions

The Data Update API allows you to add and update data using Programming API and API by Email (using XML transactions).

Each Data Update API function requires a list of database fields and their values. Database field names can be found by right-clicking the field > Field Settings > Advanced Tab > Rec ID field. You can also find detailed information about each entity and its fields in Database Field Listing.

Following are the API functions for adding and updating data:

Method Return Value Description
CmtInitDbEngDll (app_name, path, status) status (int) Establishes a connection to the database. app_name - This string will be used for all functions of the package, and will appear in the application as the user who performs the changes in the records you update. You should specify a meaningful value. path - The path to the DB folder where the Commit server is installed: <server>\Commit\Db status - 1 for success. See Error Codes Description for other values.
CmtInsUpdRec(app_name, table_id, data_buff, map_buff, flag, tbd,

rec_id_buff_size, error_codes_buff_size,
err_msg_buff_size,rec_id_buff,
err_codes_buff, err_msg_buff, status)

status (int), rec_id (char) Adds/Updates records.

app_name - string containing your application name
table_id - string containing the database table id
data_buff - string containing the values to insert into the Database
map_buff - mapping of the database fields corresponding with the data buff
flag - stop(0)/continue(1) the input process is an invalid data value(s)
tbd - Not used
rec_id_buff_size - length of REC ID Buffer
err_code_buff_size - length of Error Code Buffer
err_msg_buff_size - length of Error Message Buffer
rec_id_buff - buffer for returned REC ID
err_codes_buff - buffer for returned Error Codes
err_msg_buff - buffer for returned Error Messages
status - returned status, 1 for success.
See Error Codes Description for other values.

CmtTerminateDbEngDll Close the connection to the database
CmtGetDescriptionByCode (code,
desc_size,
desc)
message (char) Call this function in case of error in

CmtInsUpdRec.
In case of error (return code other than 1),
you can use this to get error string.

CmtGetDescriptionByStatus Call this function in case of error in

CmtInitDbEngDll

Field buffers The record to be added/updated in the database is passed to the Commit API in two buffers:

Parameter Description Example
data_buff String containing the values to insert into the Database. Separators between the fields are defined in the map_buff "17/04/2008 14:44", "CRD7C9KZPS9JN3LEZVD9", "Charge", "CRDGO0SVQ6074CMAN7DW","Closed","test note in DB Engine", "NTBL6PDPKUU6NXLRHLHP","CRDBSMJ3P72EHMU0HB LX","TKT4S81466E05IM8P23X"
map_buff Mapping of the data_buff: separators, field names.

Field names must be in the same order as the data_buff values.

The field names should be separated with a different separator than the values (e.g. "new line").

" , FLDHISNOTEDATETIME

FLDHISWORKERID
FLDHISKIND
FLDHISCONTACTID
FLDHISUSER1
FLDHISDESCRIPTION
FLDHISRECID
FLDHISCARDID
FLDHISLINKRECID

Database Field Listing

Following is a detailed listing of fields per entity which can be added/updated using the API. The API parameters are the same when using the Programming API or the XML API.

The API allows you to add, update and retrieve the following entities:


All API functions may return error codes. You can find the possible error codes in:


In the following section you will find a detailed listing of the database fields. Each table includes the fields Display name (as shows in the application), the Database Field Name (internal database field identifier) and comments.

Note that when using XML formatted messages, the database field name refers to the name to be provided within the XML token. For example, when the field name is FLDSLPQUANTITY, the XML token should look like this: <FLDSLPQUANTITY>10</FLDSLPQUANTITY>

The following table shows the data kind code when using XML or when using the API functions:

Application entity Table name Programming Code XML Data Kind Name
Accounts Cards 10 ACCOUNT
Opportunities Opps 20 OPPORTUNITY
Documents Docs 30 DOCUMENT
Charges Slips 40 CHARGE
Appointments/Tasks Events 50 APPOINTMENT-OR-TASK
History Notes Notebook 60 HISTORY-NOTE
Tickets Tickets 70 TICKET
Items Items 80 ITEM
Assets Assets 90 ASSET
Knowledge Base KBArticles 100 ARTICLE

You can find examples of adding and updating records in the database by using the database field in the API Code Samples section.

Account Fields

The following table lists the most important parameters for adding/updating Account records. Note slight differences when adding a main account vs. adding a secondary contact.

Field Name Database Field Name Comment
Account REC ID FLDCRDRECID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom, rightclick the RecID field and use Copy.
    e.g. CRDVQYSOD1B4U4HZIQJJ
  2. Using the Data Retrieval API to pull information from the database.
  3. From the Email Response when adding new Account with the API.
Account Manager FLDCRDASSIGNCARDID This field has two roles:
  1. When adding a main Account:
    The account manager should contain the ID of the Employee who is the account manager.
  2. When adding a secondary contact:

This field should contain the ID of the main Account to which the secondary contacted is added.

Company name FLDCRDCOMPANY
Contact: First & Last Name FLDCRDCONTACT
Assistant FLDCRDASSISTANT
Contract FLDCRDBCRECID The default Contract for this Account (not required)
Account Number FLDCRDCARDID2
ID FLDCRDCARDID3
Popup Message FLDCRDCARDMESSAGE
Address: Line1 FLDCRDADDRESS1
Address: Line2 FLDCRDADDRESS2
Address: Line3 FLDCRDADDRESS3
Address: City FLDCRDCITY
Address: State FLDCRDCOUNTRY
Address: Country FLDCRDSTATE
Address: Zip FLDCRDZIP
Creation Date FLDCRDCREATEDATE Any date format, such as DD/MM/YYYY
Created by User FLDCRDCREATEUSERID Foreign Software Name which created the account
Dear FLDCRDDEAR
Department FLDCRDDEPARTMENT
Documents Store Directory FLDCRDDOCSFOLDER
E-Mail Address 1 FLDCRDEMAIL1
E-Mail Address 2 FLDCRDEMAIL2
Account Type FLDCRDENTITYKIND When adding a Main Account = 1
When adding a secondary contact = 5
Fax Number FLDCRDFAX1
Fax Number Extension FLDCRDFAXDESC1
File as FLDCRDFULLNAME
Type FLDCRDKIND
Last Name FLDCRDLASTNAME
Notes FLDCRDNOTES
Field FLDCRDPERSONID
Phone 1 Ext. FLDCRDPHNDESC1
Phone 2 Ext. FLDCRDPHNDESC2
Phone 3 Ext. FLDCRDPHNDESC3
Phone 4 Ext. FLDCRDPHNDESC4
Phone 1 FLDCRDPHONE1
Phone 2 FLDCRDPHONE2
Phone 3 FLDCRDPHONE3
Phone 4 FLDCRDPHONE4
Region FLDCRDREGIONCODE
Popup Message: Display Indication FLDCRDSHOWMESSAGE
Sub-Contact Code FLDCRDSUBCODE
Salutation FLDCRDSUFFIX
Tax1 FLDCRDTAXCODE1
Tax2 FLDCRDTAXCODE2
Notes FLDCRDNOTES
Title FLDCRDTITLE
Last Updated by FLDCRDUPDATEUSERID When performing updates on existing Account - pass the Foreign Software Name which performs the update.
Web Address 1 FLDCRDURL1
Web Address 2 FLDCRDURL2
Status FLDCRDUSER1
Field1 FLDCRDUSER2
Field2 FLDCRDUSER3
Field3 FLDCRDUSER4
Field4 FLDCRDUSER5

Ticket Fields

The table below lists the most important Ticket parameters and behavior:

Field Name Database Field Name Comment
Account REC ID FLDTKTCARDID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking the REC ID field and selecting Copy
  2. Data Retrieval API to pull information from the database
  3. The automated email response when adding a cnew Account with the API
Contact REC ID FLDTKTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Contract REC ID FLDTKTBCRECID The Contract ID. If not supplied, will be taken from the Account's default contract.
Emp. REC ID FLDTKTWORKERID The worker ID to be linked to the Ticket. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Priority FLDTKTPRIORITY The ticket priority. If not passed in the transaction, the default value for new Tickets will be used.

Immediate = 10
High = 20
Normal = 30
Low = 40
Not Applicable= 50

Ticket Number FLDTKTTICKETNO The Ticket number. If passed, must be an existing Ticket, and this will update the Ticket with the details in the transaction.
Description FLDTKTPROBLEM This is the Ticket Description. This is a mandatory field, which must contain text.
Ticket Type FLDTKTKIND Ticket Type (optional). The Ticket Type string should be passed. If not provided, default is used.
Source FLDTKTSOURCE
Estimated Duration Time FLDTKTSCHEDLENESTIM Estimated duration time for the Ticket in minutes.
Show Ticket in Dispatcher FLDTKTFORDISPATCH Possible values: Yes/No
Status FLDTKTSTATUS The Ticket Status (optional).

Possible values:
New = 100
Pending = 200
Scheduled = 300
In-House Service = 400
On-Site Service = 500
Laboratory Service = 600
Hold = 700
Other = 800
Canceled = 900
Completed = 1000

Created by User FLDTKTCREATEUSER Should contain the external software name which created the Ticket
Due Date FLDTKTDUEDATETIME Due date for the Ticket.

Should be passed in date/time format. e.g. MM/DD/YYYY HH:MM AM/PM
Example:
09/14/2010 03:24 PM

Resolution FLDTKTSOLUTION Ticket resolution text

Charge Fields

The table below lists the most important Charge parameters and behavior.

Contract-price Charges have some special characteristics (see comments marked by * in the table below):

Field Name Database Field Name Comment
Record ID FLDSLPRECID The Charge record ID. If provided, the existing Charge will be updated. Otherwise, this will be

added as a new Charge.

Charge Source FLDSLPSOURCERECID The Charge source is the entity for which the charge is created.

Possible values:

  • Linked Contract RecID (for Contract-price Charges). Cannot be the "System Global Contract".
    • Passing the Contract RecID indicates that this is a Contract-price charge.
  • Entity RecID from which the charge is created (for example when creating a charge from an Appointment or Task).
Account REC ID FLDSLPCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking the REC ID field and selecting Copy
  2. Data Retrieval API to pull information from the database
  3. The automated email response when adding a new Account with the API
Employee REC ID FLDSLPWORKERID The worker record ID to be linked to the Charge. Must be an active employee. This is an optional parameter. If not passed, the system default will be used.
Charged Item FLDSLPITEMID The Item Record ID to be linked to the Charge. This is a mandatory field.
  • For Contract-price Charge can be only Fixed-Price, Unit-based Item.
Contract REC ID FLDSLPBCRECID The contract record ID (must be a Contract of the Account)
Ticket REC ID FLDSLPTICKETID The Ticket ID to be linked to the Charge.
  • Not relevant for Contract-price Charge
Date FLDSLPSLIPDATE The date for the Charge. This is an optional parameter. If not provided, the current date will

be used. Should be passed in date format. e.g. MM/DD/YYYY

Description FLDSLPDESC The Charge Description. If not provided, will be taken from the Item's description.
Units/Hours FLDSLPQUANTITY This is the quantity of hours/units
Adjust Amount FLDSLPADJUSTAMOUNT Discount/Markup amount. Positive number means Markup, negative number means Discount.
Adjust Percent FLDSLPADJUSTPERCENT Discount/Markup in percentage, must be between (-100) - 100. Positive number means Markup, negative number means Discount.
From Time FLDSLPSTARTTIME From time for labor Charges e.g. 12:06
  • Not relevant for Contract-price Charge
To Time FLDSLPENDTIME From time for labor Charges e.g. 14:50
  • Not relevant for Contract-price Charge
Price/Rate FLDSLPPRICE If not provided, the price is taken from the Item.
Billable FLDSLPBILLKIND B - Billable

N - Not Billable
If not provided, will be set according to the Contract type.

Billed FLDSLPSTAGE D - Draft

B - Billed

Field1 FLDSLPUSER1 User defined field
Create User FLDSLPCREATEUSER External software name which created the Charge

Item Fields

The table below lists the most important Item parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDITMRECID The Item record ID. If provided, the existing item will be updated. Otherwise, this will be added as a new item.
Item Group FLDITMITEMTYPEGROUP The Item Group to be linked to the Charge. This is a mandatory field:

F - Labor (Fee)
X - Expense
P - Part

Item Code FLDITMITEMNO The item code is a mandatory field
Item Name FLDITMNAME The item name is a mandatory field
Price Source FLDITMPRICESOURCE F - Fixed Price

W - by Employee Rate

Price per Hour/Unit FLDITMUNITISHOUR This field indicated whether the price is unitbased or hours-based.

Y - by Hours
N - by Units
This is an optional field, depending on the Item Group. For example, if the item group is Labor, and Price Source is By Employee, the value will always be by hours

Price FLDITMUNITPRICE Must be a valid numeric value
Cost FLDITMSTANDARDCOST The date for the Charge. This is an optional parameter. If not provided, the current date will

be used. Should be passed in date format. e.g. MM/DD/YYYY

Taxes FLDITMTAXCODE1

FLDITMTAXCODE2
FLDITMTAXCODE3

You can pass up to 3 different tax codes.
Description by Name FLDITMDESCBYNAME Y - take the description from the name field

N - take the description from the Description field

Description FLDITMDESC If not provided, the description is taken from the name.
Suspend FLDITMSUSPENDED Indicated whether this item is currently suspended:

Y - yes
N - no

Notes FLDITMNOTES
Field1 FLDITMUSER1 User defined field
Create User FLDITMCREATEUSER External software name which created the Charge
Created by User FLDTKTCREATEUSER Should contain the external software name which created the Ticket

History Note Fields

The table below lists the most important History Note parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDHISRECID The History Note record ID. If provided, the existing History Note will be updated. otherwise, this will be added as a new History Note.
Date FLDHISNOTEDATETIME Any date format, such as DD/MM/YYYY
Description FLDHISDESCRIPTION The Description text
Opportunity/Ticket/Contract FLDHISLINKRECID Link to Opportunity or Ticket or Contract
Field FLDHISUSER1 User defined field
About FLDHISKIND Optional field
Employee FLDHISWORKERID The employee ID to be linked to the History Note. This is a mandatory parameter and must contain an ID of an active employee.
Account FLDHISCARDID The Account record ID (20 chars). The Account Rec ID can be taken from:
  1. Account Notes tab, at the bottom, right-click the REC ID field and use Copy.
    e.g. CRDVQYSOD1B4U4HZIQJJ
  2. Using Data Retrieval API to pull information from the database
  3. From the Email Response when adding new Account with the API
Contact FLDHISCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Document FLDHISDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the Data Retrieval API to pull information from the database.
Created by User FLDHISCREATEUSER Name of the external software which created this History Note

Asset Fields

The table below lists the most important Asset parameters and behavior:

Field Name Database Field Name Comment
Asset Code FLDASTASSETCODE If an existing Asset Code is provided, then existing Asset is updated. Otherwise a new Asset is added.
Asset Type FLDASTASSETTYPE The Type field is mandatory:

Hardware = H
Software = S
Other = T

Asset Name FLDASTNAME
Status FLDASTSTATUS Mandatory field.

Active = A
Not Active = N
If not provided, default Active is used.

Record ID FLDASTRECID If provided, must exist in the database. Ignored if empty
Serial No. FLDASTSERIALNO
Account FLDASTACCRECID The Account which is linked to the Asset
Contact FLDASTCONTACTRECID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Created by user FLDASTCREATEUSER Name of external software which created this Asset
Purchase Date FLDASTCUSTPURDATE Any date format, such as DD/MM/YYYY
Purchased From Us FLDASTCUSTPURFROMUS Possible values: Y/N.

If not provided, default value Y is used.

Purchase Invoice # FLDASTCUSTPUROURINV
Customer PO FLDASTCUSTPURPO
Purchase Price FLDASTCUSTPURPRICE
Delivered Date FLDASTDELIVEDATE
Description FLDASTDESC
Installed By FLDASTINSTALBY
Installed Date FLDASTINSTALDATE
License Codes FLDASTLICENSECODE
License Keys FLDASTLICENSEKEYS
License Notes FLDASTLICENSENOTES
Location FLDASTLOCATION
Manufacturer FLDASTMANUFACTURER
Mnf Serial No. FLDASTMNFSERIALNO
Model FLDASTMODEL
Notes FLDASTNOTES
Quantity FLDASTQUANTITY If not provided, default value of 1 is used.
Last Update By FLDASTUPDATEUSER Name of externals software which performed the update
Field1 FLDASTUSER1 User defined field
Field2 FLDASTUSER2 User defined field
Field3 FLDASTUSER3 User defined field
Field4 FLDASTUSER4 User defined field
Field5 FLDASTUSER5 User defined field
Date1 FLDASTUSERDATE1 User defined field
Number1 FLDASTUSERNUMBER1 User defined field
Vendor Purchased Date FLDASTVENDORDATEPURC
Vendor Invoice # FLDASTVENDORINVNO
Vendor PO FLDASTVENDOROURPO
Vendor Price FLDASTVENDORPRICE
Vendor FLDASTVENDORRECID
Vendor Serial No. FLDASTVENDORSERNO
Vendor Warranty Exp. Date FLDASTVENDORWARREXP Any date format, such as DD/MM/YYYY
Version FLDASTVERSION
Warranty/License Exp. FLDASTWARREXPDATE Any date format, such as DD/MM/YYYY
Date

Calendar Fields

The table below lists the most important Calendar parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDEVTRECID The Appointment/Task record ID. If provided, the existing entity will be updated. Otherwise, this

will be added as a new Appointment/Task.

Event Type FLDEVTWRITETOID The Event type is a mandatory field.

Appointment = 1
Task = 2

Employee FLDEVTWORKERID The Task/Appointment owner (for private events)
Private: User FLDEVTPRIVATEID If an Employee was set, this field contain the same REC ID as the Employee field (FLDEVTWORKERID).
Account FLDEVTCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by rightclicking

the REC ID field and selecting Copy

  1. Data Retrieval API to pull information from the database
  2. The automated email response when adding a

new Account with the API

Contact FLDEVTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Document FLDEVTDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the Data Retrieval API to pull information from the database.
Done Indication FLDEVTDONE Possible values: Y/N
Date FLDEVTEVENTDATE The Appointment/Task date is a mandatory field of Any date format, such as DD/MM/YYYY. If not

provided, the current date will be used.

Description FLDEVTFREETEXT
Time: Start FLDEVTFROMTIME Mandatory field
Time: End FLDEVTTOTIME Relevant only for Appointments. If this parameter is not provided, 30 min. interval from Start Time is used.
Opportunity/Ticket FLDEVTLINKRECID Linked Ticket/Opportunity/Contract/Asset
Field1 FLDEVTFAMILY User Defined field
Field2 FLDEVTACTION User Defined field
Field3 FLDEVTPLACE User Defined field
Field4 FLDEVTPLACE1 User Defined field
Field5 FLDEVTPLACE2 User Defined field
Created by User FLDEVTCREATEUSERID Name of external software which created the event
Last Update: By User FLDEVTUPDATEUSER Name of external software which updated the

event

Opportunity Fields

The table below lists the most important Opportunity parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDOPPRECID The Opportunity record ID. If provided, the existing Opportunity will be updated. Otherwise, this will be added as a new Opportunity.
Opportunity Name FLDOPPNAME Mandatory field.
Opportunity ID FLDOPPUSERID Optional (Oppty ID)
Account FLDOPPCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. Data Retrieval API to pull information from the database
  3. The automated email response when adding a new Account with the API
Contact FLDOPTCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Source FLDOPPSOURCE
Document FLDOPTDOCID Linked Document ID, can be taken from the Document Properties window (right-click RecID and use Copy), or using the Data Retrieval API to pull information from the database.
Close Date FLDOPPCLOSEDATE
Manager FLDOPPWORKERID The Manager's REC ID
Open Date FLDOPPOPENDATE
Close By Date FLDOPPESTDATE Opportunity must be closed by this date
Amount FLDOPPAMOUNT
Probability % FLDOPPPROBABILITY
Stage FLDOPPSTAGE
Status FLDOPPSTATUS
Closing Amount FLDOPPCLOSEAMOUNT
Description FLDOPPDESCRIPTION
Opportunity Type FLDOPPKIND
Opportunity Reason FLDOPPREASON
Note FLDOPPNOTES
Territory FLDOPPREGION
Field1 FLDOPTFAMILY User Defined field
Field2 FLDOPTACTION User Defined field
Field3 FLDOPTPLACE User Defined field
Created by User FLDOPTCREATEUSERID Name of external software which created the event
Last Update: By User FLDOPTUPDATEUSER Name of external software which updated the event

Document Fields

The table below lists the Document parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDDOCRECID The Document record ID. If provided, the existing Document will be updated. Otherwise, this will be added as a new Document.
Document Date FLDDOCDOCDATE The date for the Document. This is an optional parameter. If not provided, or if the value is illegal, the current date will be used. Should be passed in date format. e.g. MM/DD/YYYY
Subject FLDDOCDOCUMENTDESC
Linked Record FLDDOCLINKRECID The RECID of a linked object. Each Document can be linked to one of the following objects:
  • Ticket
  • Contract
  • Opportunity
  • Knowledge Base Article
  • Asset

The Record ID (20 chars) can be taken from:

  1. Object's Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. Data Retrieval API to pull information from the database
  3. The automated email response when adding a new object with the API.
Account Rec ID FLDDOCCARDID The Account record ID (20 chars). The Account REC ID can be taken from:
  1. Account Notes tab, at the bottom by right-clicking the REC ID field and selecting Copy
  2. Data Retrieval API to pull information from the database
  3. The automated email response when adding a new Account with the API
Contact REC ID FLDDOCCONTACTID The Contact for this Account. If not provided, the main Contact for the Account is taken.
Field1 FLDDOCTRANSPORT User Defined field
Field2 FLDDOCFOLDER User Defined field
Field3 FLDDOCUMENTPLACE User Defined field
File Path + File name FLDDOCDOCUMENTNAME The Document path
Category FLDDOCTREEID The category record ID should be taken from the database table called TreeTbl which contains the Category tree
Employee REC ID FLDDOCWORKERID The worker record ID to be linked to the Document. Must be an active employee.
Created by User FLDDOCCREATEUSER Name of external software which created the document
Last Update: By User FLDDOCUPDATEUSER Name of external software which updated the document

Knowledge Base Article Fields

The table below lists the Knowledge Base Article parameters and behavior:

Field Name Database Field Name Comment
Record ID FLDKBARECID The Article record ID. If provided, the existing Article will be updated. Otherwise, this will be added as a new Article.
Document Date FLDKBACREATEDATE The date for the Document. This is an optional parameter. If not provided, or if the value is illegal, the current date will be used. Should be passed in date format. e.g. MM/DD/YYYY
Title FLDKBATITLE
Problem FLDKBAPROBLEM
Solution FLDKBASOLUTION
Status FLDKBASTATUS Possible values:
  • DRAFT = 'D'
  • PUBLISHED = 'P'
  • OBSOLETE = 'O'
Category FLDKBACATEGORY
Public FLDKBAISPUBLIC Is the Document public.

Possible values:

  • 'Y' = Yes
  • 'N' = No
Created by User FLDKBACREATEUSER Name of external software which created the document
Last Update: By User FLDKBAUPDATEUSER Name of external software which updated the document

Error Codes Description

These error codes are returned when calling the CmtGetDescriptionByStatus function:
1000 CmtDbEng.dll not found.
1001 Invalid value for the Data Kind value.
1002 Invalid DATA buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1003 Invalid MAP buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1004 Invalid REC ID buffer received. Make sure you have allocated the buffer correctly and that you have passed the correct buffer length.
1005 Invalid LOG buffer received. Make sure you've allocated the buffer correctly and that you've passed the correct buffer length.
1006 Invalid REC ID buffer received. It should be at least 20 characters.
1007 Invalid external software name received. Specify a unique name that identifies your software.
1008 Cannot process the transaction. Make sure to call the INIT procedure at least once prior to sending transactions for processing.
1009 Path specified for Commit DB folder not found.
1010 Path specified for Commit DB folder found, but its contents do not reflect a valid DB folder.
1011 The RED ID received for the employee/user was not found in Commit, is invalid or is related to an inactive employee record.
1012 Error registering software.
1013 Software name is missing. Make sure you specify a name that identifies your software.
1014 Software name is less than 3 characters long. Make sure you enter a software name that has 3 to 15 characters.
1015 Software name is too long. Make sure your software name has 3 to 15 characters.
1100 Database access error.

These error codes are returned when calling the CommitCRMQueryDataRequest function:
110001 The application entity for the query (Subject) is missing. 110002 Invalid XML request. Couldn’t find the XML request name: CommitCRMQueryDataRequest 110003 Invalid value was requested for the record count. 110004 The size for the result buffer is too small. Increase its size and try again. 110005 The query filtering structure is invalid (should form an SQL-like query). 110006 This Code is not exists in Commit 110008 Invalid application entity for the query (Subject) was received 110019 Additional records answer the query. Only the amount of records you requested was returned. 110020 This Code is not exists in Commit 110021 Empty result set. No records were found for the query

These error codes are returned when calling the CommitCRMxmlGetRecDataRequest function:
150001 Invalid XML received. Please verify that the XML structure is valid. 150002 Invalid field identifiers were received. 150003 No records in CommitCRM database match the received RECID 150004 The received XML version number is not supported. 150005 XML version number is missing. 150006 The received RECID does not point to an Appointment or Task record (it points to an internal place holder only). 150007 The received RECID does not point to a valid History record (it points to an internal place holder only). 150008 Invalid RECID received. Its value cannot point to any entity in CommitCRM. 150009 The received RECID points to object which is not supported by the API. 150011 Invalid XML request. Couldn’t find the XML request name: commitcrmxmlgetrecdatarequest


General error codes, returned when calling the functions CmtGetDescriptionByCode:
50000 The data is not correct for its type.
50001 The field value has been truncated due to the field length in the database.
50002 The insert operation Failed because the REC ID already existed in the database.
50003 Failed to update Record since it is being updated by another user.
50103 Illegal REC ID.
50104 REC ID Creation failed.
50105 Illegal Sub-Contact REC ID.
50106 Illegal Contract REC ID.
50107 Illegal Employee REC ID.
50108 Illegal Ticket REC ID.
50109 Illegal Account REC ID.
50110 Illegal data for that Contract.
50111 This Employee is not active.
50112 Illegal Document REC ID.
50113 Illegal linked object REC ID.
50114 Employee not found.
50115 Some mandatory fields have no values.
50116 Invalid REC ID buffer received. It should be at least 20 characters.
50117 The Record ID (RECID) is missing.
50118 Invalid Record ID received. Record ID should consist of exactly 20 characters.
50119 Invalid RECID received. Its value cannot point to any entity in CommitCRM.
50120 Software name is missing. Make sure you specify a name that identifies your software.
50121 Software name is less than 3 characters long. Make sure your software name has 3 to 15 characters.
50122 Software name is too long. Make sure your software name has 3 to 15 characters.
51000 Illegal kind of Account entity.
51001 Account Manager not found.
51002 The REC ID of the Account Manager is illegal.
51003 Illegal tax code.
51004 This code does not exist in Commit.
52000 Illegal kind of event.
52001 Illegal start time.
52002 Illegal end time.
52003 Illegal event date.
52004 The field Reminder1 has Illegal Value.
52005 The amount in the field has an illegal value.
52006 The Field Remider1:Units has Illegal Value.
52007 The Field Remider2:Active has Illegal Value.
52008 The Field Remider2:Amount has Illegal Value.
52009 The Field Remider2:Units has Illegal Value.
52010 Illegal employee REC ID.
52011 Error occurred while updating the Task/Appointment employee field.
54000 Illegal Ticket open date.
54001 Illegal Ticket close date.
54002 Illegal Ticket code area.
54004 Illegal Ticket priority.
54005 Illegal Ticket status.
54006 The Ticket Account was not found in the database.
54007 The Ticket Account Manager was not ound in the database.
54008 This code does not exist in Commit.
54009 This code does not exist in Commit.
54010 This code does not exist in Commit.
54011 This code does not exist in Commit.
54012 This code does not exist in Commit.
55000 Illegal charge date.
55001 Illegal charge REC ID.
55002 Illegal start date.
55003 Illegal start time.
55004 Illegal amount entered for hours.
55005 Illegal quantity.
55006 Illegal price.
55007 Illegal total.
55008 Illegal value in the Adjust Amount field.
55009 Illegal value in the Adjust Percent.
55010 The Discount/Markup field has an illegal value.
55011 Illegal value in the Adjust Kind field.
55012 Illegal bill total.
55013 You can not create a charge for a suspended item.
55014 Item was not found in Commit.
55015 This code does not exist in Commit.
55016 This code does not exists in Commit.
55017 This Code does not exist in Commit.
55018 This Code does not exist in Commit.
55019 This Code does not exist in Commit.
55020 This Code does not exist in Commit.
55021 This Code does not exist in Commit.
56000 Illegal item code.
56001 The field that indicates the item group type has an illegal value.
56002 The field that indicates if the Item is suspended has an illegal value.
56003 Illegal value of The field that indicate if the item is suspended.
56004 Mismatch found between the fields price and price source.
56005 Illegal cost.
56006 Mismatch found between the fields cost and item group type.
56007 The field that indicates if the charge is by unit or by hours has an illegal value.
56008 Illegal value in the Description.
56009 The field that indicates the item type has an illegal value.
57000 This Code does not exist in Commit.
58000 Illegal date time.
58001 The Description field was not found.
58002 The field kind was not found.
58003 The Account member was not found.
59000 This code does not exists in Commit.
59001 This Code does not exist in Commit.
59002 This Code does not exist in Commit.
59003 This Code does not exist in Commit.
59004 This Code does not exist in Commit.
59005 This Code does not exist in Commit.
60000 Invalid web user record ID number.
60001 This customer web user is not active.
60002 This user is not a customer.

See Also