C++ API: Difference between revisions

From RangerMSP Wiki - PSA software for MSPs and IT services providers
Jump to navigation Jump to search
Line 3,922: Line 3,922:
  std::cout << charge.AdjustAmount << CommitCRM::Charge::Fields::AdjustAmount.DisplaySymbol());
  std::cout << charge.AdjustAmount << CommitCRM::Charge::Fields::AdjustAmount.DisplaySymbol());
</font>
</font>
== ObjectQuery Class ==
'''CommitCRM::ObjectQuery''' is a template class that can operate with any of the '''CommitCRM::Object''' derived classes. It is used to query for objects of certain type (Account, Ticket, etc.). For example, the following code snippet searches for all tickets of an account updated since certain date:
<font face="courier new" size="3">
CommitCRM::ObjectQuery<CommitCRM::Ticket> ticketSearch;
<span style="color: #66AD3A;">//account is previously initialized</span>
ticketSearch.AddCriteria(CommitCRM::Ticket::Fields.AccountREC_ID, CommitCRM::opEqual, account.AccountREC_ID());
SYSTEMTIME time;
ZeroMemory(&time, sizeof(time));
time.wYear = 2011;
time.wMonth = 1;
time.wDay = 1;
ticketSearch.AddCriteria(CommitCRM::Ticket::Fields.UpdateDate, CommitCRM::opGreaterThanOrEqual, time));
CommitCRM::ObjectQuery<CommitCRM::Ticket>::COLLECTION tickets = ticketSearch.FetchObjects();
<span style="color: #66AD3A;">//tickets now contains all CommitCRM::Ticket objects that satisfy the above criteria.</span>
</font>
The table below explains the important methods of the '''CommitCRM::ObjectQuery''' class:
{| class="wikitable"
|-
! '''Access modifier'''
! '''Return value'''
! '''Method'''
! '''Arguments'''
! '''Description'''
|-
| public
| void
| '''AddCriteria'''
| (const std::string& string sField, OperatorEnum opEnum, const std::string& sValue)
| Adds one criteria to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is the internal field name (column '''API Field name''' in the Object derived classes tables),
second parameter is the criteria operator (see the table below)
and third parameter is the value to search for. This variation of the '''AddCriteria''' method should be used only when searching in a field whose name is not included in the predefined fields.
|-
| public
| void
| '''AddCriteria'''
| (const CmtField& field, OperatorEnum opEnum, const std::string& sValue)
| Adds one criteria to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is one of the '''CommitCRM::CmtField''' preinitialized objects included in Fields class in each of the '''CommitCRM::Object''' derived classes,
second parameter is the criteria operator (see the table below)
and third parameter is the value ('''std::string''') to search for. This variation (or the one variations with the '''SYSTEMTIME''' or '''double''' as third parameter) of the '''AddCriteria''' method is the preferred way of adding criteria, unless there is no preinitialized '''CommitCRM::CmtField''' object for the field.
|-
| public
| void
| '''AddCriteria'''
| (CmtField& field, OperatorEnum opEnum, const SYSTEMTIME& dtValue)
| Adds one criteria to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is one of the '''CommitCRM::CmtField''' preinitialized objects included in Fields class in each of the '''CommitCRM::Object''' derived classes,
second parameter is the criteria operator (see the table below)
and third parameter is the value ('''SYSTEMTIME''') to search for. Use this variation to search in fields that are of '''SYSTEMTIME''' type.
|-
| public
| void
| '''AddCriteria'''
| (CmtField& field, OperatorEnum opEnum, int nValue)
| Adds one criteria to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is one of the '''CommitCRM::CmtField''' preinitialized objects included in Fields class in each of the '''CommitCRM::Object''' derived classes,
second parameter is the criteria operator (see the table below)
and third parameter is the value ('''int''') to search for. Use this variation to search in fields that are of '''int''' type.
|-
| public
| void
| '''AddCriteria'''
| (CmtField& field, OperatorEnum opEnum, double nValue)
| Adds one criteria to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is one of the '''CommitCRM::CmtField''' preinitialized objects included in Fields class in each of the '''CommitCRM::Object''' derived classes,
second parameter is the criteria operator (see the table below)
and third parameter is the value ('''double''') to search for. Use this variation to search in fields that are of '''double''' type.
|-
| public
| void
| '''AddSortExpression'''
| (const std::string& sField, SortDirectionEnum sortEnum)
| Adds a sort expression to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is the internal field name (column '''API Field name''' in the Object derived classes tables),
second parameter is '''CommitCRM::SortDirectionEnum''' ('''sortASC''' or '''sortDESC''').
|-
| public
| void
| '''AddSortExpression'''
| (const CmtField& field, SortDirectionEnum sortEnum)
| Adds a sort expression to the initialized '''CommitCRM::ObjectQuery''' object instance.
First parameter is one of the '''CommitCRM::CmtField''' preinitialized objects included in Fields class in each of the '''CommitCRM::Object''' derived classes,
second parameter is '''CommitCRM::SortDirectionEnum''' ('''sortASC''' or '''sortDESC''').
|-
| public
| std::vector<OBJECT>
| '''FetchObjects'''
| ()
| Executes the constructed query and returns a list of objects (of type '''OBJECT''' where OBJECT is any of the '''CommitCRM::Object''' derived classes) that satisfies the criteria.
|}
Below is the table with the available operators ('''CommitCRM::OperatorEnum''') used in the AddCriteria methods.
{| class="wikitable"
|-
! Enum value
! Description
|-
| '''CommitCRM::OperatorEnum::opEqual'''
| Searches for objects using the exact match (equals) operator
|-
| '''CommitCRM::OperatorEnum::opGreaterThan'''
| Searches for objects whose value is greater than the value passed in the third parameter in AddCriteria method.
|-
| '''CommitCRM::OperatorEnum::opGreaterThanOrEqual'''
| Searches for objects whose value is greater or equal than the value passed in the third parameter in AddCriteria method.
|-
| '''CommitCRM::OperatorEnum::opLessThan'''
| Searches for objects whose value is less than the value passed in the third parameter in AddCriteria method.
|-
| '''CommitCRM::OperatorEnum::opLessThanOrEqual'''
| Searches for objects whose value is less than or equal the value passed in the third parameter in AddCriteria method.
|-
| '''CommitCRM::OperatorEnum::opLike'''
| Combined with % (percent sign) in the value passed in the third parameter in AddCriteria method can be used for search with broader match.
|-
| '''CommitCRM::OperatorEnum::opNot'''
| Searches for objects whose value differs from the one passed in the third parameter in AddCriteria method.
|-
| '''CommitCRM::OperatorEnum::opNotLike'''
|
|}

Revision as of 18:52, 24 March 2011

Disclaimer

This documentation refers to CommitCRM 5.6 or later version and assumes CommitCRM is installed and accessible on the local computer.

Introduction

This document demonstrates how to use the CommitCRM C++ API library in order to programmatically connect to your CommitCRM server and query or manipulate the CommitCRM database.


System Requirements

  • CommitCRM 5.6 or later.
  • Visual C++ 2008 or Visual C++ 2010.
  • CommitLib C++ header files.
  • CommitLib.lib (the CommitCRM C++ static library).


Getting Started

After you create your C++ project, you'll need to add the CommitCRM Source folder to your include path and link with the CommitLib.lib static library file, in order to have access to the CommitCRM library classes.

Each application using the library will have to initialize on startup the CommitCRM::Application object and terminate it on exit. Initialization method requires that you pass an object instance of CommitCRM::Config class configured with the following settings:

  • AppName
This is free text, preferably the name of your application.
  • CommitDllFolder
Behind the scenes the library uses the two CommitCRM API dlls: CmtDbEng.dll and CmtDbQry.dll.
In the default CommitCRM installation you'll find these files in 'C:\\Commit\\ThirdParty\\UserDev'.
Important Note: Always point to this folder and do not copy the dll files elsewhere. This is because when the CommitCRM version upgrade runs it also upgrades the dll files stored in this folder. This verifies that you will always be using the latest release.
  • CommitDbFolder
Path to the CommitCRM database, default is 'C:\\Commit\\db'.

Assuming these default values, we can configure the CommitCRM::Config object like this:

CommitCRM::Config config;
config.AppName = "C++ Demo";
config.CommitDllFolder = "C:\\Commit\\ThirdParty\\UserDev";
config.CommitDbFolder = "C:\\Commit\\db";

You should of course check where these paths are exactly on your disk and modify these values accordingly.

Now we can initialize the CommitCRM::Application object with these settings:

CommitCRM::Application::Initialize(config);

If anything goes wrong, the above line will throw an exception of the CommitCRM::Exception class. To prevent unexpected termination of the program execution, we recommend having any call to the CommitCRM library enclosed in a try/catch block.

Before exit, we terminate the CommitCRM::Application object:

CommitCRM::Application::Terminate();

The most basic C++ application that just connects to CommitCRM and terminates could look something like this:

try
{
    CommitCRM::Config config;
    config.AppName = "C++ Demo";
    config.CommitDllFolder = "C:\\Commit\\ThirdParty\\UserDev";
    config.CommitDbFolder = "C:\\Commit\\db";

    CommitCRM::Application::Initialize(config);

    //At this point we have successfully initialized the CommitCRM.Application
    //and can start using the other library classes
}
catch (CommitCRM::Exception exc)
{
    std::cerr << exc.error() << std::endl;
}
CommitCRM::Application::Terminate();

Now that we have confirmed the connectivity to the CommitCRM server (if the above code successfully runs), we can continue adding more functionality to the example.

The library exposes as C++ classes the same CommitCRM objects (Account, Ticket etc.) available through the native CommitCRM API and you can refer to the API Reference Manual for database fields reference.


With any of these objects you can:

  • Search and query for objects with CommitCRM::ObjectQuery that satisfy certain criteria.
  • Read and display the properties of the retrieved objects.
  • Update and save the properties of the retrieved objects.
  • Create and save new objects.



Now let's see how we can search for CommitCRM::Account objects. We instantiate an object of the CommitCRM::ObjectQuery class and pass CommitCRM::Account class as generics parameter.

CommitCRM::ObjectQuery<CommitCRM::Account> accountSearch;

CommitCRM::ObjectQuery class can accept any of the CommitCRM objects in this parameter, but we want to search for accounts now.

Next, we need to set criteria (or more than one) we want to search for:

accountSearch.AddCriteria(CommitCRM::Account::Fields::City, CommitCRM::opEqual, "New York");

Тhe first parameter to the AddCriteria method is either a static object instance of CommitCRM::CmtField class representing the field we want to look in or the internal API field name. Refer to the API Field Name column in the Account Class table for a complete list of the available fields for the CommitCRM::Account class.

The second parameter is a compare operator. We here use the CommitCRM::OperatorEnum::opEqual to get only exact matches. In order to get a broader match in the results you can use CommitCRM::OperatorEnum::opLike operator.

The third parameter is the value we want to find. Prepending and/or appending % (percent) sign at the beginning and/or at the end while using CommitCRM::OperatorEnum::opLike operator, will match the phrase even if in the middle of a sentence.

Now we can execute the search and retrieve the CommitCRM::Account objects (if any):

CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION accounts = accountSearch.FetchObjects();

The above line will populate a list with all CommitCRM::Account objects that were found. Now we can iterate through the accounts like this:

CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION::iterator itAccount = accounts.begin();
while (itAccount != accounts.end())
{
    std::cout << account.CompanyName() << "\r\n";
    ++itAccount;
}

Or we can manipulate these accounts:

CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION::iterator itAccount = accounts.begin();
while (itAccount != accounts.end())
{
    if (account.Zip().empty())
    {
         account.Zip("10001");
         account.Save();
    }

    ++itAccount;
}


We invoke the CommitCRM::Account's Save method on both new or existing accounts. For a new account, invoking the Save method would insert a new account in the CommitCRM database. For an existing account, invoking the Save method would update the fields we modified in the existing account. This rule applies to all CommitCRM objects.

Another option is to add a new ticket for each of the accounts:

CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION::iterator itAccount = accounts.begin();
while (itAccount != accounts.end())
{
    CommitCRM::Ticket ticket;
    ticket.AccountREC_ID(account.AccountREC_ID());
    ticket.Description("Sample ticket for a NewYork account");
    ticket.Save();

    ++itAccount;
}

GetFieldValue and SetFieldValue methods

Each of the CommitCRM library objects have a set of methods that are exposed as C++ getters/setters methods that you can use to manipulate or read the data. You already saw few examples of these methods in the above examples, as: account.Zip or ticket.Description. This is the preferred and more intuitive way of accessing the CommitCRM fields.


However, there is also another way of achieving the same results, by invoking GetFieldValue and SetFieldValue and specifying the internal field name. These methods should only be used if necessary, for example, when updating user-defined custom fields which are not part of the class predefined basic fields.

Here is an equivalent of the above example that uses these two generic methods, instead of the object's getters/setters methods:

CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION::iterator itAccount = accounts.begin();
while (itAccount != accounts.end())
{
    CommitCRM::Ticket ticket;
    ticket.SetFieldValue("FLDTKTCARDID", account.GetFieldValue("FLDCRDRECID"));
    ticket.SetFieldValue("FLDTKTPROBLEM", "Sample ticket for a NewYork account");
    ticket.Save();

    ++itAccount;
}

All internal field names are listed in Classes and Objects below.

Exception Handling

While working with the CommitCRM C++ library, some operations can fail. In this case the library will throw an exception of the CommitCRM::Exception class. We recommend enclosing all calls to the CommitCRM library in a try/catch block.

To find out more about the exact error that ocured when an exception is thrown, you can use the CommitCRM::Exception::Status method that returns the last CommitCRM Status value, or use the CommitCRM::Exception.Codes method to return the list of last codes (if any). Please refer to Error Codes Description for the description of these values.

Complete Program Sample

#include "stdafx.h"
#include <iostream>

#include <CommitLib/CommitCRM/Application.h>
#include <CommitLib/CommitCRM/Account.h>
#include <CommitLib/CommitCRM/Ticket.h>
#include <CommitLib/CommitCRM/Charge.h>
#include <CommitLib/CommitCRM/Item.h>
#include <CommitLib/CommitCRM/QueryCommand.h>
#include <CommitLib/Exception.h>

#include <CommitLib/Helper.h>
#include <CommitLib/IO/File.h>

int _tmain(int argc, _TCHAR* argv[])
{
    try
    {
        CommitCRM::Config config;
        config.AppName = "C++ Demo";
        config.CommitDllFolder = "C:\\Commit\\ThirdParty\\UserDev";
        config.CommitDbFolder = "C:\\Commit\\db";

        CommitCRM::Application::Initialize(config);

        //At this point we have successfully initialized the CommitCRM.Application
        //and can start using the other library classes

        CommitCRM::ObjectQuery<CommitCRM::Account> accountSearch;
        accountSearch.AddCriteria(CommitCRM::Account::Fields::City, CommitCRM::opEqual, "New York");
        CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION accounts = accountSearch.FetchObjects();

        CommitCRM::ObjectQuery<CommitCRM::Account>::COLLECTION::iterator itAccount = accounts.begin();
        while (itAccount != accounts.end())
        {
            std::cout << account.CompanyName() << "\r\n";
            ++itAccount;
        }
    }
    catch (CommitCRM::Exception exc)
    {
        //we can inspect the Commit status (exc.Status) 
        //refer to Error Codes Description
        //exc.Codes contains all error codes last call generated
        //also refer to Error Codes Description
        std::cerr << exc.error() << std::endl;
    }

    //Terminate connection with CommitCRM
    CommitCRM::Application::Terminate();

    return 0;
}

Classes and Objects

The CommitCRM C++ API provides easy access to all objects using a class for each entity in the system (such as Account, Ticket, Asset, etc.).

All classes include:

  1. API functions and routines (which are derived from the base CommitCRM::Object class).
  2. Class data fields, providing an easy way to update the object's data.


All CommitCRM's objects should be updated by setting the class data fields (through setter metthods) and then calling the Save method. For example, to create a new account programmatically (assuming CommitCRM::Application was initialized successfully), one would use the following code snippet:

CommitCRM::Account account;
account.FileAs("ACME Company");
account.Dear("Mr.");
account.Contact("John Doe");
account.Save();


Another option is using SetFieldData and GetFieldData as mentioned earlier, which provide low-level access to data fields. This option should only be used if necessary, for example, when updating user-defined fields which are not part of the class basic fields.


Object Class

The CommitCRM::Object class is the base class for all CommitCRM accessible objects (as Ticket, Account, Asset, etc.). The public methods exposed by the CommitCRM::Object class are available to the derived classes.

Object Method Reference Table

Access modifier Return value Method Arguments Description
public void SetFieldValue (const std::string& sKey, const std::string& sValue) Assigns the value (sValue) of the field passed in sKey argument. Save must be called for the change to take effect. Use this method to access user-defined custom fields.
public std::string GetFieldValue (const std::string& sKey) Retrieves the value of the field passed in sKey argument. Use this method to access user-defined custom fields.
public void Reload () Reloads the Object values from the database. The value of the object unique identifier (REC_ID, the exact name depends on the concrete derived object class)
public void Reinit (const std::string& sID) Same as Reload except the unique identifier is passed as argument.
public void Save () Saves all modified properties of the object to the database.

Object derived classes

Classes explained in this section are derived from CommitCRM::Object class and map directly to a native Commit CRM object (Account, Ticket, etc.).

Account Class

The CommitCRM::Account class derives from CommitCRM::Object and encapsulates the Account Fields. The following table lists all exposed CommitCRM::Account getter/setter methods.

Account Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string AccountREC_ID () FLDCRDRECID 20
public void AccountREC_ID (const std::string& val) FLDCRDRECID 20
public std::string AccountManager () FLDCRDASSIGNCARDID 20
public void AccountManager (const std::string& val) FLDCRDASSIGNCARDID 20
public std::string CompanyName () FLDCRDCOMPANY 60
public void CompanyName (const std::string& val) FLDCRDCOMPANY 60
public std::string Contact () FLDCRDCONTACT 40
public void Contact (const std::string& val) FLDCRDCONTACT 40
public std::string Assistant () FLDCRDASSISTANT 20
public void Assistant (const std::string& val) FLDCRDASSISTANT 20
public std::string ContractREC_ID () FLDCRDBCRECID 20
public void ContractREC_ID (const std::string& val) FLDCRDBCRECID 20
public std::string AccountNumber () FLDCRDCARDID2 15
public void AccountNumber (const std::string& val) FLDCRDCARDID2 15
public std::string ID () FLDCRDCARDID3 15
public void ID (const std::string& val) FLDCRDCARDID3 15
public std::string PopupMessage () FLDCRDCARDMESSAGE Unlimited
public void PopupMessage (const std::string& val) FLDCRDCARDMESSAGE Unlimited
public std::string AddressLine1 () FLDCRDADDRESS1 40
public void AddressLine1 (const std::string& val) FLDCRDADDRESS1 40
public std::string AddressLine2 () FLDCRDADDRESS2 40
public void AddressLine2 (const std::string& val) FLDCRDADDRESS2 40
public std::string AddressLine3 () FLDCRDADDRESS3 40
public void AddressLine3 (const std::string& val) FLDCRDADDRESS3 40
public std::string City () FLDCRDCITY 30
public void City (const std::string& val) FLDCRDCITY 30
public std::string Country () FLDCRDSTATE 20
public void Country (const std::string& val) FLDCRDSTATE 20
public std::string State () FLDCRDCOUNTRY 30
public void State (const std::string& val) FLDCRDCOUNTRY 30
public std::string Zip () FLDCRDZIP 15
public void Zip (const std::string& val) FLDCRDZIP 15
public SYSTEMTIME CreationDate () FLDCRDCREATEDATE N/A
public void CreationDate (const SYSTEMTIME& val) FLDCRDCREATEDATE N/A
public std::string CreatedByUser () FLDCRDCREATEUSERID 20
public void CreatedByUser (const std::string& val) FLDCRDCREATEUSERID 20
public std::string Dear () FLDCRDDEAR 20
public void Dear (const std::string& val) FLDCRDDEAR 20
public std::string Department () FLDCRDDEPARTMENT 35
public void Department (const std::string& val) FLDCRDDEPARTMENT 35
public std::string DocumentsStoreDirectory () FLDCRDDOCSFOLDER 100
public void DocumentsStoreDirectory (const std::string& val) FLDCRDDOCSFOLDER 100
public std::string EmailAddress1 () FLDCRDEMAIL1 70
public void EmailAddress1 (const std::string& val) FLDCRDEMAIL1 70
public std::string EmailAddress2 () FLDCRDEMAIL2 70
public void EmailAddress2 (const std::string& val) FLDCRDEMAIL2 70
public int AccountType () FLDCRDENTITYKIND N/A
public void AccountType (int val) FLDCRDENTITYKIND N/A
public std::string FaxNumber () FLDCRDFAX1 25
public void FaxNumber (const std::string& val) FLDCRDFAX1 25
public std::string FaxNumberExt () FLDCRDFAXDESC1 15
public void FaxNumberExt (const std::string& val) FLDCRDFAXDESC1 15
public std::string FileAs () FLDCRDFULLNAME 60
public void FileAs (const std::string& val) FLDCRDFULLNAME 60
public std::string Type () FLDCRDKIND 30
public void Type (const std::string& val) FLDCRDKIND 30
public std::string LastName () FLDCRDLASTNAME 20
public void LastName (const std::string& val) FLDCRDLASTNAME 20
public std::string Notes (const std::string& val) FLDCRDNOTES Unlimited
public void Notes (const std::string& val) FLDCRDNOTES Unlimited
public std::string Field () FLDCRDPERSONID 20
public void Field (const std::string& val) FLDCRDPERSONID 20
public std::string Phone1Ext () FLDCRDPHNDESC1 40
public void Phone1Ext (cosnt std::string& val) FLDCRDPHNDESC1 40
public std::string Phone2Ext () FLDCRDPHNDESC2 40
public void Phone2Ext (const std::string& val) FLDCRDPHNDESC2 40
public std::string Phone3Ext () FLDCRDPHNDESC3 15
public void Phone3Ext (const std::string& val) FLDCRDPHNDESC3 15
public std::string Phone4Ext () FLDCRDPHNDESC4 15
public void Phone4Ext (const std::string& val) FLDCRDPHNDESC4 15
public std::string Phone1 () FLDCRDPHONE1 25
public void Phone1 (const std::string& val) FLDCRDPHONE1 25
public std::string Phone2 () FLDCRDPHONE2 25
public void Phone2 (const std::string& val) FLDCRDPHONE2 25
public std::string Phone3 () FLDCRDPHONE3 25
public void Phone3 (const std::string& val) FLDCRDPHONE3 25
public std::string Phone4 () FLDCRDPHONE4 25
public void Phone4 (const std::string& val) FLDCRDPHONE4 25
public std::string Region () FLDCRDREGIONCODE 15
public void Region (const std::string& val) FLDCRDREGIONCODE 15
public std::string PopupMessageDisplayIndication () FLDCRDSHOWMESSAGE 1
public void PopupMessageDisplayIndication (const std::string& val) FLDCRDSHOWMESSAGE 1
public std::string SubContractCode () FLDCRDSUBCODE 15
public void SubContractCode (const std::string& val) FLDCRDSUBCODE 15
public std::string Salutation () FLDCRDSUFFIX 20
public void Salutation (const std::string& val) FLDCRDSUFFIX 20
public std::string Tax1 () FLDCRDTAXCODE1 3
public void Tax1 (const std::string& val) FLDCRDTAXCODE1 3
public std::string Tax2 () FLDCRDTAXCODE2 3
public void Tax2 (const std::string& val) FLDCRDTAXCODE2 3
public std::string Title () FLDCRDTITLE 30
public void Title (const std::string& val) FLDCRDTITLE 30
public std::string LastUpdatedBy () FLDCRDUPDATEUSERID 20
public void LastUpdatedBy (const std::string& val) FLDCRDUPDATEUSERID 20
public std::string WebAddress1 () FLDCRDURL1 100
public void WebAddress1 (const std::string& val) FLDCRDURL1 100
public std::string WebAddress2 () FLDCRDURL2 100
public void WebAddress2 () FLDCRDURL2 100
public std::string Status () FLDCRDUSER1 30
public void Status (const std::string& val) FLDCRDUSER1 30
public std::string Field1 () FLDCRDUSER2 30
public void Field1 (const std::string& val) FLDCRDUSER2 30
public std::string Field2 () FLDCRDUSER3 30
public void Field2 (const std::string& val) FLDCRDUSER3 30
public std::string Field3 () FLDCRDUSER4 30
public void Field3 (const std::string& val) FLDCRDUSER4 30
public std::string Field4 () FLDCRDUSER5 30
public void Field4 (const std::string& val) FLDCRDUSER5 30

Ticket Class

The CommitCRM::Ticket class derives from CommitCRM::Object and encapsulates the Ticket Fields. The following table lists all exposed CommitCRM::Ticket getter/setter methods.

Ticket Properties Reference Table

Access modifier Return value Property Arguments API Field Name Field length
public std::string TicketREC_ID () FLDTKTRECID 20
public void TicketREC_ID (const std::string& val) FLDTKTRECID 20
public std::string AccountREC_ID () FLDTKTCARDID 20
public void AccountREC_ID (const std::string& val) FLDTKTCARDID 20
public std::string AssetREC_ID () FLDTKTASSETRECID 20
public void AssetREC_ID (const std::string& val) FLDTKTASSETRECID 20
public std::string ContactREC_ID () FLDTKTCONTACTID 20
public void ContactREC_ID (const std::string& val) FLDTKTCONTACTID 20
public std::string ContractREC_ID () FLDTKTBCRECID 20
public void ContractREC_ID (const std::string& val) FLDTKTBCRECID 20
public std::string EmployeeREC_ID () FLDTKTWORKERID 20
public void EmployeeREC_ID (const std::string& val) FLDTKTWORKERID 20
public int TicketPriority () FLDTKTPRIORITY N/A
public void TicketPriority (int val) FLDTKTPRIORITY N/A
public std::string TicketNumber () FLDTKTTICKETNO 20
public void TicketNumber (const std::string& val) FLDTKTTICKETNO 20
public std::string Description () FLDTKTPROBLEM Unlimited
public void Description (const std::string& val) FLDTKTPROBLEM Unlimited
public std::string TicketType () FLDTKTKIND 25
public void TicketType (const std::string& val) FLDTKTKIND 25
public std::string Source () FLDTKTSOURCE 30
public void Source (const std::string& val) FLDTKTSOURCE 30
public int EstimatedDurationTime () FLDTKTSCHEDLENESTIM N/A
public void EstimatedDurationTime (int val) FLDTKTSCHEDLENESTIM N/A
public std::string ShowTicketInDispatcher () FLDTKTFORDISPATCH 1
public void ShowTicketInDispatcher (const std::string& val) FLDTKTFORDISPATCH 1
public int Status () FLDTKTSTATUS N/A
public void Status (int val) FLDTKTSTATUS N/A
public std::string CreatedByUser () FLDTKTCREATEUSER 20
public void CreatedByUser (const std::string& val) FLDTKTCREATEUSER 20
public SYSTEMTIME DueDate () FLDTKTDUEDATETIME N/A
public void DueDate (const SYSTEMTIME& val) FLDTKTDUEDATETIME N/A
public std::string Resolution () FLDTKTSOLUTION Unlimited
public void Resolution (const std::string& val) FLDTKTSOLUTION Unlimited
public SYSTEMTIME UpdateDate () FLDTKTUPDATEDATE N/A
public void UpdateDate (const SYSTEMTIME& val) FLDTKTUPDATEDATE N/A

Asset Class

The CommitCRM::Asset class derives from CommitCRM::Object and encapsulates the Asset Fields. The following table lists all exposed CommitCRM::Asset getter/setter methods.

Asset Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string AssetREC_ID () FLDASTRECID 20
public void AssetREC_ID (const std::string& val) FLDASTRECID 20
public std::string AssetCode () FLDASTASSETCODE 30
public void AssetCode (const std::string& val) FLDASTASSETCODE 30
public std::string AssetType () FLDASTASSETTYPE 1
public void AssetType (const std::string& val) FLDASTASSETTYPE 1
public std::string AssetName () FLDASTNAME 60
public void AssetName (const std::string& val) FLDASTNAME 60
public std::string Status () FLDASTSTATUS 1
public void Status (const std::string& val) FLDASTSTATUS 1
public std::string SerialNo () FLDASTSERIALNO 30
public void SerialNo (const std::string& val) FLDASTSERIALNO 30
public std::string AccountREC_ID () FLDASTACCRECID 20
public void AccountREC_ID (const std::string& val) FLDASTACCRECID 20
public std::string ContactREC_ID () FLDASTCONTACTRECID 20
public void ContactREC_ID (const std::string& val) FLDASTCONTACTRECID 20
public std::string CreatedByUser () FLDASTCREATEUSER 20
public void CreatedByUser (const std::string& val) FLDASTCREATEUSER 20
public SYSTEMTIME PurchaseDate () FLDASTCUSTPURDATE N/A
public void PurchaseDate (const SYSTEMTIME& val) FLDASTCUSTPURDATE N/A
public std::string PurchasedFromUs () FLDASTCUSTPURFROMUS 1
public void PurchasedFromUs (const std::string& val) FLDASTCUSTPURFROMUS 1
public std::string PurchaseInvoice () FLDASTCUSTPUROURINV 15
public void PurchaseInvoice (const std::string& val) FLDASTCUSTPUROURINV 15
public std::string CustomerPO () FLDASTCUSTPURPO 15
public void CustomerPO (const std::string& val) FLDASTCUSTPURPO 15
public double PurchasePrice () FLDASTCUSTPURPRICE N/A
public void PurchasePrice (double val) FLDASTCUSTPURPRICE N/A
public SYSTEMTIME DeliveredDate () FLDASTDELIVEDATE N/A
public void DeliveredDate (const SYSTEMTIME& val) FLDASTDELIVEDATE N/A
public std::string Description () FLDASTDESC Unlimited
public void Description (const std::string& val) FLDASTDESC Unlimited
public std::string InstalledBy () FLDASTINSTALBY 20
public void InstalledBy (const std::string& val) FLDASTINSTALBY 20
public SYSTEMTIME InstalledDate () FLDASTINSTALDATE N/A
public void InstalledDate (const SYSTEMTIME& val) FLDASTINSTALDATE N/A
public std::string LicenseCodes () FLDASTLICENSECODE Unlimited
public void LicenseCodes (const std::string& val) FLDASTLICENSECODE Unlimited
public std::string LicenseKeys () FLDASTLICENSEKEYS Unlimited
public void LicenseKeys (const std::string& val) FLDASTLICENSEKEYS Unlimited
public std::string LicenseNotes () FLDASTLICENSENOTES Unlimited
public void LicenseNotes (const std::string& val) FLDASTLICENSENOTES Unlimited
public std::string Location () FLDASTLOCATION 50
public void Location (const std::string& val) FLDASTLOCATION 50
public std::string Manufacturer () FLDASTMANUFACTURER 40
public void Manufacturer (const std::string& val) FLDASTMANUFACTURER 40
public std::string MnfSerialNo () FLDASTMNFSERIALNO 30
public void MnfSerialNo (const std::string& val) FLDASTMNFSERIALNO 30
public std::string Model () FLDASTMODEL 20
public void Model (const std::string& val) FLDASTMODEL 20
public std::string Notes () FLDASTNOTES Unlimited
public void Notes (const std::string& val) FLDASTNOTES Unlimited
public double Quantity () FLDASTQUANTITY N/A
public void Quantity (double val) FLDASTQUANTITY N/A
public std::string LastUpdateBy () FLDASTUPDATEUSER 20
public void LastUpdateBy (const std::string& val) FLDASTUPDATEUSER 20
public std::string Field1 () FLDASTUSER1 25
public void Field1 (const std::string& val) FLDASTUSER1 25
public std::string Field2 () FLDASTUSER2 25
public void Field2 (const std::string& val) FLDASTUSER2 25
public std::string Field3 () FLDASTUSER3 25
public void Field3 (const std::string& val) FLDASTUSER3 25
public std::string Field4 () FLDASTUSER4 25
public void Field4 (const std::string& val) FLDASTUSER4 25
public std::string Field5 () FLDASTUSER5 25
public void Field5 (const std::string& val) FLDASTUSER5 25
public SYSTEMTIME Date1 () FLDASTUSERDATE1 N/A
public void Date1 (const SYSTEMTIME& val) FLDASTUSERDATE1 N/A
public double Number1 () FLDASTUSERNUMBER1 N/A
public void Number1 (double val) FLDASTUSERNUMBER1 N/A
public SYSTEMTIME VendorPurchasedDate () FLDASTVENDORDATEPURC N/A
public void VendorPurchasedDate (const SYSTEMTIME& val) FLDASTVENDORDATEPURC N/A
public std::string VendorInvoice (const std::string& val) FLDASTVENDORINVNO 15
public void VendorInvoice (const std::string& val) FLDASTVENDORINVNO 15
public std::string VendorPO () FLDASTVENDOROURPO 15
public void VendorPO (const std::string& val) FLDASTVENDOROURPO 15
public double VendorPrice () FLDASTVENDORPRICE N/A
public void VendorPrice (double val) FLDASTVENDORPRICE N/A
public std::string Vendor () FLDASTVENDORRECID 20
public void Vendor (const std::string& val) FLDASTVENDORRECID 20
public std::string VendorSerialNo () FLDASTVENDORSERNO 30
public void VendorSerialNo (const std::string& val) FLDASTVENDORSERNO 30
public SYSTEMTIME VendorWarrantyExpDate () FLDASTVENDORWARREXP N/A
public void VendorWarrantyExpDate (const SYSTEMTIME& val) FLDASTVENDORWARREXP N/A
public std::string Version () FLDASTVERSION 15
public void Version (const std::string& val) FLDASTVERSION 15
public SYSTEMTIME WarrantyLicenseExp () FLDASTWARREXPDATE N/A
public void WarrantyLicenseExp (const SYSTEMTIME& val) FLDASTWARREXPDATE N/A

Calendar Class

The CommitCRM::Calendar class derives from CommitCRM::Object and encapsulates the Calendar Fields. The following table lists all exposed CommitCRM::Calendar getter/setter methods.

Calendar Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string CalendarREC_ID () FLDEVTRECID 20
public void CalendarREC_ID (const std::string& val) FLDEVTRECID 20
public int EventType () FLDEVTWRITETOID N/A
public void EventType (int val) FLDEVTWRITETOID N/A
public std::string EmployeeREC_ID () FLDEVTWORKERID 20
public void EmployeeREC_ID (const std::string& val) FLDEVTWORKERID 20
public std::string PrivateUser () FLDEVTPRIVATEID 20
public void PrivateUser (const std::string& val) FLDEVTPRIVATEID 20
public std::string AccountREC_ID () FLDEVTCARDID 20
public void AccountREC_ID (const std::string& val) FLDEVTCARDID 20
public std::string ContactREC_ID () FLDEVTCONTACTID 20
public void ContactREC_ID (const std::string& val) FLDEVTCONTACTID 20
public std::string DocumentREC_ID () FLDEVTDOCID 20
public void DocumentREC_ID (const std::string& val) FLDEVTDOCID 20
public bool DoneIndication () FLDEVTDONE N/A
public void DoneIndication (bool val) FLDEVTDONE N/A
public SYSTEMTIME Date () FLDEVTEVENTDATE N/A
public void Date (const SYSTEMTIME& val) FLDEVTEVENTDATE N/A
public std::string Description () FLDEVTFREETEXT Unlimited
public void Description (const std::string& val) FLDEVTFREETEXT Unlimited
public std::string TimeStart () FLDEVTFROMTIME N/A
public void TimeStart (const std::string& val) FLDEVTFROMTIME N/A
public std::string TimeEnd () FLDEVTTOTIME N/A
public void TimeEnd (const std::string& val) FLDEVTTOTIME N/A
public std::string RelLinkREC_ID () FLDEVTLINKRECID 20
public void RelLinkREC_ID (const std::string& val) FLDEVTLINKRECID 20
public std::string Field1 () FLDEVTFAMILY 50
public void Field1 (const std::string& val) FLDEVTFAMILY 50
public std::string Field2 () FLDEVTACTION 50
public void Field2 (const std::string& val) FLDEVTACTION 50
public std::string Field3 () FLDEVTPLACE 40
public void Field3 (const std::string& val) FLDEVTPLACE 40
public std::string Field4 () FLDEVTPLACE1 30
public void Field4 (const std::string& val) FLDEVTPLACE1 30
public std::string Field5 () FLDEVTPLACE2 30
public void Field5 (const std::string& val) FLDEVTPLACE2 30
public std::string CreatedByUser () FLDEVTCREATEUSERID 20
public void CreatedByUser (const std::string& val) FLDEVTCREATEUSERID 20
public std::string LastUpdateByUser () FLDEVTUPDATEUSER 20
public void LastUpdateByUser (const std::string& val) FLDEVTUPDATEUSER 20

Charge Class

The CommitCRM::Charge class derives from CommitCRM::Object and encapsulates the Charge Fields. The following table lists all exposed CommitCRM::Charge getter/setter methods.

Charge Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string ChargeREC_ID () FLDSLPRECID 20
public void ChargeREC_ID (const std::string& val) FLDSLPRECID 20
public std::string ChargeSource () FLDSLPSOURCERECID 20
public void ChargeSource (const std::string& val) FLDSLPSOURCERECID 20
public std::string AccountREC_ID () FLDSLPCARDID 20
public void AccountREC_ID (const std::string& val) FLDSLPCARDID 20
public std::string EmployeeREC_ID () FLDSLPWORKERID 20
public void EmployeeREC_ID (const std::string& val) FLDSLPWORKERID 20
public std::string ChargedItem () FLDSLPITEMID 20
public void ChargedItem (const std::string& val) FLDSLPITEMID 20
public std::string ContractREC_ID () FLDSLPBCRECID 20
public void ContractREC_ID (const std::string& val) FLDSLPBCRECID 20
public std::string TicketREC_ID () FLDSLPTICKETID 20
public void TicketREC_ID (const std::string& val) FLDSLPTICKETID 20
public SYSTEMTIME Date () FLDSLPSLIPDATE N/A
public void Date (const SYSTEMTIME& val) FLDSLPSLIPDATE N/A
public std::string Description () FLDSLPDESC Unlimited
public void Description (const std::string& val) FLDSLPDESC Unlimited
public double Units_Hours () FLDSLPQUANTITY N/A
public void Units_Hours (const std::string& val) FLDSLPQUANTITY N/A
public double AdjustAmount () FLDSLPADJUSTAMOUNT N/A
public void AdjustAmount (double val) FLDSLPADJUSTAMOUNT N/A
public double AdjustPercent () FLDSLPADJUSTPERCENT N/A
public void AdjustPercent (double val) FLDSLPADJUSTPERCENT N/A
public std::string FromTime () FLDSLPSTARTTIME N/A
public void FromTime (const std::string& val) FLDSLPSTARTTIME N/A
public std::string ToTime () FLDSLPENDTIME N/A
public void ToTime (const std::string& val) FLDSLPENDTIME N/A
public double Price_Rate () FLDSLPPRICE N/A
public void Price_Rate (const std::string& val) FLDSLPPRICE N/A
public std::string Billable () FLDSLPBILLKIND 1
public void Billable (const std::string& val) FLDSLPBILLKIND 1
public std::string Billed () FLDSLPSTAGE 1
public void Billed (const std::string& val) FLDSLPSTAGE 1
public std::string Field1 () FLDSLPUSER1 25
public void Field1 (const std::string& val) FLDSLPUSER1 25
public std::string CreateUser () FLDSLPCREATEUSER 20
public void CreateUser (const std::string& val) FLDSLPCREATEUSER 20

Document Class

The CommitCRM::Document class derives from CommitCRM::Object and encapsulates the Document Fields. The following table lists all exposed CommitCRM::Document getter/setter methods.

Document Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string DocumentREC_ID () FLDDOCRECID 20
public void DocumentREC_ID (const std::string& val) FLDDOCRECID 20
public SYSTEMTIME DocumentDate () FLDDOCDOCDATE N/A
public void DocumentDate (const SYSTEMTIME& val) FLDDOCDOCDATE N/A
public std::string Subject () FLDDOCDOCUMENTDESC 100
public void Subject (const std::string& val) FLDDOCDOCUMENTDESC 100
public std::string RelLinkREC_ID () FLDDOCLINKRECID 20
public void RelLinkREC_ID (const std::string& val) FLDDOCLINKRECID 20
public std::string AccountREC_ID () FLDDOCCARDID 20
public void AccountREC_ID (const std::string& val) FLDDOCCARDID 20
public std::string ContactREC_ID () FLDDOCCONTACTID 20
public void ContactREC_ID (const std::string& val) FLDDOCCONTACTID 20
public std::string Field1 () FLDDOCTRANSPORT 20
public void Field1 (const std::string& val) FLDDOCTRANSPORT 20
public std::string Field2 () FLDDOCFOLDER 20
public void Field2 (const std::string& val) FLDDOCFOLDER 20
public std::string Field3 () FLDDOCUMENTPLACE 20
public void Field3 (const std::string& val) FLDDOCUMENTPLACE 20
public std::string FilePathAndName () FLDDOCDOCUMENTNAME 240
public void FilePathAndName (const std::string& val) FLDDOCDOCUMENTNAME 240
public int Category () FLDDOCTREEID N/A
public void Category (int val) FLDDOCTREEID N/A
public std::string EmployeeREC_ID () FLDDOCWORKERID 20
public void EmployeeREC_ID (const std::string& val) FLDDOCWORKERID 20
public std::string CreatedByUser () FLDDOCCREATEUSER 20
public void CreatedByUser (const std::string& val) FLDDOCCREATEUSER 20
public std::string LastUpdateByUser () FLDDOCUPDATEUSER 20
public void LastUpdateByUser (const std::string& val) FLDDOCUPDATEUSER 20

HistoryNote Class

The CommitCRM::HistoryNote class derives from CommitCRM::Object and encapsulates the History Note Fields. The following table lists all exposed CommitCRM::HistoryNote getter/setter methods.

HistoryNote Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string HistoryNoteREC_ID () FLDHISRECID 20
public void HistoryNoteREC_ID (const std::string& val) FLDHISRECID 20
public SYSTEMTIME Date () FLDHISNOTEDATETIME N/A
public void Date (const SYSTEMTIME& val) FLDHISNOTEDATETIME N/A
public std::string Description () FLDHISDESCRIPTION Unlimited
public void Description (const std::string& val) FLDHISDESCRIPTION Unlimited
public std::string RelLinkREC_ID () FLDHISLINKRECID 20
public void RelLinkREC_ID (const std::string& val) FLDHISLINKRECID 20
public std::string Field () FLDHISUSER1 25
public void Field (const std::string& val) FLDHISUSER1 25
public std::string About () FLDHISKIND 15
public void About (const std::string& val) FLDHISKIND 15
public std::string EmployeeREC_ID () FLDHISWORKERID 20
public void EmployeeREC_ID (const std::string& val) FLDHISWORKERID 20
public std::string AccountREC_ID () FLDHISCARDID 20
public void AccountREC_ID (const std::string& val) FLDHISCARDID 20
public std::string Contact () FLDHISCONTACTID 20
public void Contact (const std::string& val) FLDHISCONTACTID 20
public std::string DocumentREC_ID () FLDHISDOCID 20
public void DocumentREC_ID (const std::string& val) FLDHISDOCID 20
public std::string CreatedByUser () FLDHISCREATEUSER 20
public void CreatedByUser (const std::string& val) FLDHISCREATEUSER 20

Item Class

The CommitCRM::Item class derives from CommitCRM::Object and encapsulates the Item Fields. The following table lists all exposed CommitCRM::Item getter/setter methods.

Item Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string ItemREC_ID () FLDITMRECID 20
public void ItemREC_ID (const std::string& val) FLDITMRECID 20
public std::string ItemGroup () FLDITMITEMTYPEGROUP 1
public void ItemGroup (const std::string& val) FLDITMITEMTYPEGROUP 1
public std::string ItemCode () FLDITMITEMNO 30
public void ItemCode (const std::string& val) FLDITMITEMNO 30
public std::string ItemName () FLDITMNAME 60
public void ItemName (const std::string& val) FLDITMNAME 60
public std::string PriceSource () FLDITMPRICESOURCE 1
public void PriceSource (const std::string& val) FLDITMPRICESOURCE 1
public std::string PricePerHour_Unit () FLDITMUNITISHOUR 1
public void PricePerHour_Unit (const std::string& val) FLDITMUNITISHOUR 1
public double Price () FLDITMUNITPRICE N/A
public void Price (double val) FLDITMUNITPRICE N/A
public double Cost () FLDITMSTANDARDCOST N/A
public void Cost (double val) FLDITMSTANDARDCOST N/A
public std::string Tax1 () FLDITMTAXCODE1 3
public void Tax1 (const std::string& val) FLDITMTAXCODE1 3
public std::string Tax2 () FLDITMTAXCODE2 3
public void Tax2 (const std::string& val) FLDITMTAXCODE2 3
public std::string Tax3 () FLDITMTAXCODE3 3
public void Tax3 (const std::string& val) FLDITMTAXCODE3 3
public std::string DescriptionByName () FLDITMDESCBYNAME 1
public void DescriptionByName (const std::string& val) FLDITMDESCBYNAME 1
public std::string Description () FLDITMDESC Unlimited
public void Description (const std::string& val) FLDITMDESC Unlimited
public std::string Suspend () FLDITMSUSPENDED 1
public void Suspend (const std::string& val) FLDITMSUSPENDED 1
public std::string Notes (const std::string& val) FLDITMNOTES Unlimited
public void Notes (const std::string& val) FLDITMNOTES Unlimited
public std::string Field1 () FLDITMUSER1 25
public void Field1 (const std::string& val) FLDITMUSER1 25
public std::string CreateUser () FLDITMCREATEUSER 20
public void CreateUser (const std::string& val) FLDITMCREATEUSER 20

KnowledgeBaseArticle Class

The CommitCRM::KnowledgeBaseArticle class derives from CommitCRM::Object and encapsulates the Knowledge Base Article Fields. The following table lists all exposed CommitCRM::KnowledgeBaseArticle getter/setter methods.

KnowledgeBaseArticle Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string KnowledgeBaseArticleREC_ID () FLDKBARECID 20
public void KnowledgeBaseArticleREC_ID (const std::string& val) FLDKBARECID 20
public SYSTEMTIME DocumentDate () FLDKBACREATEDATE N/A
public void DocumentDate (const SYSTEMTIME& val) FLDKBACREATEDATE N/A
public std::string Title () FLDKBATITLE 250
public void Title (const std::string& val) FLDKBATITLE 250
public std::string Problem () FLDKBAPROBLEM Unlimited
public void Problem (const std::string& val) FLDKBAPROBLEM Unlimited
public std::string Solution () FLDKBASOLUTION Unlimited
public void Solution (const std::string& val) FLDKBASOLUTION Unlimited
public std::string Status () FLDKBASTATUS 1
public void Status (const std::string& val) FLDKBASTATUS 1
public std::string Category () FLDKBACATEGORY 100
public void Category (const std::string& val) FLDKBACATEGORY 100
public std::string Public () FLDKBAISPUBLIC 1
public void Public (const std::string& val) FLDKBAISPUBLIC 1
public std::string CreatedByUser () FLDKBACREATEUSER 20
public void CreatedByUser (const std::string& val) FLDKBACREATEUSER 20
public std::string LastUpdateByUser () FLDKBAUPDATEUSER 20
public void LastUpdateByUser (const std::string& val) FLDKBAUPDATEUSER 20

Opportunity Class

The CommitCRM::Opportunity class derives from CommitCRM::Object and encapsulates the Opportunity Fields. The following table lists all exposed CommitCRM::Opportunity getter/setter methods.

Opportunity Properties Reference Table

Access modifier Return value Method name Arguments API Field Name Field length
public std::string OpportunityREC_ID () FLDOPPRECID 20
public void OpportunityREC_ID (const std::string& val) FLDOPPRECID 20
public std::string OpportunityName () FLDOPPNAME 50
public void OpportunityName (const std::string& val) FLDOPPNAME 50
public std::string OpportunityID () FLDOPPUSERID 15
public void OpportunityID (const std::string& val) FLDOPPUSERID 15
public std::string AccountREC_ID () FLDOPPCARDID 20
public void AccountREC_ID (const std::string& val) FLDOPPCARDID 20
public std::string Source () FLDOPPSOURCE 30
public void Source (const std::string& val) FLDOPPSOURCE 30
public SYSTEMTIME CloseDate () FLDOPPCLOSEDATE N/A
public void CloseDate (const SYSTEMTIME& val) FLDOPPCLOSEDATE N/A
public std::string Manager () FLDOPPWORKERID 20
public void Manager (const std::string& val) FLDOPPWORKERID 20
public SYSTEMTIME OpenDate () FLDOPPOPENDATE N/A
public void OpenDate (const SYSTEMTIME& val) FLDOPPOPENDATE N/A
public SYSTEMTIME CloseByDate () FLDOPPESTDATE N/A
public void CloseByDate (const SYSTEMTIME& val) FLDOPPESTDATE N/A
public double Amount () FLDOPPAMOUNT N/A
public void Amount (double val) FLDOPPAMOUNT N/A
public double Probability () FLDOPPPROBABILITY N/A
public void Probability (double val) FLDOPPPROBABILITY N/A
public std::string Stage () FLDOPPSTAGE 30
public void Stage (const std::string& val) FLDOPPSTAGE 30
public int Status () FLDOPPSTATUS N/A
public void Status (int val) FLDOPPSTATUS N/A
public double ClosingAmount () FLDOPPCLOSEAMOUNT N/A
public void ClosingAmount (double val) FLDOPPCLOSEAMOUNT N/A
public std::string Description () FLDOPPDESCRIPTION Unlimited
public void Description (const std::string& val) FLDOPPDESCRIPTION Unlimited
public std::string OpportunityType () FLDOPPKIND 30
public void OpportunityType (const std::string& val) FLDOPPKIND 30
public std::string OpportunityReason () FLDOPPREASON 30
public void OpportunityReason (const std::string& val) FLDOPPREASON 30
public std::string Note () FLDOPPNOTES Unlimited
public void Note (const std::string& val) FLDOPPNOTES Unlimited
public std::string Territory () FLDOPPREGION 30
public void Territory (const std::string& val) FLDOPPREGION 30
public std::string Field1 () FLDOPPUSER1 30
public void Field1 (const std::string& val) FLDOPPUSER1 30
public std::string Field2 () FLDOPPUSER2 30
public void Field2 (const std::string& val) FLDOPPUSER2 30
public std::string Field3 () FLDOPPUSER3 30
public void Field3 (const std::string& val) FLDOPPUSER3 30
public std::string CreatedByUser () FLDOPPCREATEUSER 20
public void CreatedByUser (const std::string& val) FLDOPPCREATEUSER 20
public std::string LastUpdateByUser () FLDOPPUPDATEUSER 20
public void LastUpdateByUser (const std::string& val) FLDOPPUPDATEUSER 20

Config Class

CommitCRM::Config class is used to pass the global configuration settings to the CommitCRM::Application Initialize method.

Return value Method name Required Description
std::string AppName Yes Maximum 15 chars, string that best identifies your application.
std::string CommitDllFolder Yes Exact path to the folder where CommitCRM API DLLs are located (CmtDbEng.dll and CmtDbQry.dll, usually "C:\\Commit\\ThirdParty\\UserDev").
std::string CommitDbFolder Yes Exact path to the folder where CommitCRM database is located (usually "C:\\Commit\\db").
bool InitCommitApiDll No Initializes the CmtDbEng.dll file, which is required for proper functioning of all update functions. true by default (recommended setting). Set it to false only if you know what you are doing.
bool InitCommitQryDll No Initializes the CmtDbQry.dll file which is required for proper functioning of all search/query functions. true by default (recommended setting). Set it to false only if you know what you are doing.
Params std::vector<std::pair<std::string,std::string> > No Not used, reserved for future use
RaiseExceptionIfDatabaseFieldTruncated bool No Specifies whether truncation of a field value will raise an exception. All string properties/fields have length limitations and if you overwrite them, the extra chars will be removed. By default this setting is false. Set it to true if you want truncation to raise an exception.

Application Class

The CommitCRM::Application class implements a Singleton pattern that hold all global defined application settings and is used for easy access to these settings. Once the main CommitCRM.Application object is initialized, you can refer to this instance by writing: CommitCRM::Application::instance().

Table below lists the CommitCRM::Application getter methods.

Access modifier Return value Method name Arguments Description
public const Config& config () Access to the CommitCRM::Config object passed in CommitCRM::Application.Initialize method.
public std::string CmtDateFormat () Global CommitCRM date format (as dd/mm/yyyy or mm/dd/yyyy). You'll need to refer to this setting if you are directly manipulating DateTime field (using SetFieldValue method).
public std::string CmtDateSeparator () Separator between the date ranges, usually '/', '-' or '.'.
public std::string CmtTimeFormat () Global CommitCRM time format.
public bool CmtIsTimeFormatAMPMInUse () 12 hour or 24 hour time format.

Table below list the CommitCRM::Application methods.

Access modifier Return value Method name Arguments Description
public static Application instance () Method that returns the singleton object. Use it to access all CommitCRM::Application properties/methods.
public static void Initialize (const Config& c) Method that initializes the internal CommitCRM API DLLs. Must be the first call before using any other CommitCRM library calls.
public static void Terminate () Terminates all CommitCRM internal resources. You should call this method before exit from your application.

CmtField Class

The CommitCRM::CmtField class holds the basic attributes for each database field. For each of the classes that represent CommitCRM objects (Account, Ticket, etc.) there is a preinitialized set of shared CommitCRM::CmtField objects that correspond to the properties defined for the class. For example, the CommitCRM::Account class has a getter method FileAs (CommitCRM::Account::FileAs). To this methodcorresponds one static object instance of the CommitCRM::CmtField class accessible through CommitCRM::Account::Fields::FileAs. To the getter methodLastName (CommitCRM::Account::LastName), corresponds the static object CommitCRM::Account::Fields::LastName of type CommitCRM::CmtField. And so on, for each getter method in each class.

Below is a table that lists the getter methods available in the CommitCRM::CmtField class.

Access modifier Return value Method name Arguments Description
public std::string Key () The internal database field key (as FLDCRDFULLNAME or FLDCRDLASTNAME, etc.)
public std::string Type () Internal database field type (as CHAR, MEMO, DOUBLE, TIMESTAMP, etc.)
public int Size () Maximum allowed length for the field data (applies to CHAR Type).
public std::string Label () Label for the field
public std::string Hint ()
public std::string Name ()
public std::string DefaultValue () Default value for the field
public std::string DisplaySymbol () For fields that represent currency value this can be $ (for dollar), or for percentage values this can be %

We demonstrate the above in the following sample:

//charge is of type CommitCRM::Charge and is previously initialized
std::cout << charge.AdjustAmount << CommitCRM::Charge::Fields::AdjustAmount.DisplaySymbol());

ObjectQuery Class

CommitCRM::ObjectQuery is a template class that can operate with any of the CommitCRM::Object derived classes. It is used to query for objects of certain type (Account, Ticket, etc.). For example, the following code snippet searches for all tickets of an account updated since certain date:

CommitCRM::ObjectQuery<CommitCRM::Ticket> ticketSearch;
//account is previously initialized
ticketSearch.AddCriteria(CommitCRM::Ticket::Fields.AccountREC_ID, CommitCRM::opEqual, account.AccountREC_ID());
SYSTEMTIME time;
ZeroMemory(&time, sizeof(time));
time.wYear = 2011;
time.wMonth = 1;
time.wDay = 1;
ticketSearch.AddCriteria(CommitCRM::Ticket::Fields.UpdateDate, CommitCRM::opGreaterThanOrEqual, time));
CommitCRM::ObjectQuery<CommitCRM::Ticket>::COLLECTION tickets = ticketSearch.FetchObjects();
//tickets now contains all CommitCRM::Ticket objects that satisfy the above criteria.

The table below explains the important methods of the CommitCRM::ObjectQuery class:

Access modifier Return value Method Arguments Description
public void AddCriteria (const std::string& string sField, OperatorEnum opEnum, const std::string& sValue) Adds one criteria to the initialized CommitCRM::ObjectQuery object instance.

First parameter is the internal field name (column API Field name in the Object derived classes tables), second parameter is the criteria operator (see the table below) and third parameter is the value to search for. This variation of the AddCriteria method should be used only when searching in a field whose name is not included in the predefined fields.

public void AddCriteria (const CmtField& field, OperatorEnum opEnum, const std::string& sValue) Adds one criteria to the initialized CommitCRM::ObjectQuery object instance.

First parameter is one of the CommitCRM::CmtField preinitialized objects included in Fields class in each of the CommitCRM::Object derived classes, second parameter is the criteria operator (see the table below) and third parameter is the value (std::string) to search for. This variation (or the one variations with the SYSTEMTIME or double as third parameter) of the AddCriteria method is the preferred way of adding criteria, unless there is no preinitialized CommitCRM::CmtField object for the field.

public void AddCriteria (CmtField& field, OperatorEnum opEnum, const SYSTEMTIME& dtValue) Adds one criteria to the initialized CommitCRM::ObjectQuery object instance.

First parameter is one of the CommitCRM::CmtField preinitialized objects included in Fields class in each of the CommitCRM::Object derived classes, second parameter is the criteria operator (see the table below) and third parameter is the value (SYSTEMTIME) to search for. Use this variation to search in fields that are of SYSTEMTIME type.

public void AddCriteria (CmtField& field, OperatorEnum opEnum, int nValue) Adds one criteria to the initialized CommitCRM::ObjectQuery object instance.

First parameter is one of the CommitCRM::CmtField preinitialized objects included in Fields class in each of the CommitCRM::Object derived classes, second parameter is the criteria operator (see the table below) and third parameter is the value (int) to search for. Use this variation to search in fields that are of int type.

public void AddCriteria (CmtField& field, OperatorEnum opEnum, double nValue) Adds one criteria to the initialized CommitCRM::ObjectQuery object instance.

First parameter is one of the CommitCRM::CmtField preinitialized objects included in Fields class in each of the CommitCRM::Object derived classes, second parameter is the criteria operator (see the table below) and third parameter is the value (double) to search for. Use this variation to search in fields that are of double type.

public void AddSortExpression (const std::string& sField, SortDirectionEnum sortEnum) Adds a sort expression to the initialized CommitCRM::ObjectQuery object instance.

First parameter is the internal field name (column API Field name in the Object derived classes tables), second parameter is CommitCRM::SortDirectionEnum (sortASC or sortDESC).

public void AddSortExpression (const CmtField& field, SortDirectionEnum sortEnum) Adds a sort expression to the initialized CommitCRM::ObjectQuery object instance.

First parameter is one of the CommitCRM::CmtField preinitialized objects included in Fields class in each of the CommitCRM::Object derived classes, second parameter is CommitCRM::SortDirectionEnum (sortASC or sortDESC).

public std::vector<OBJECT> FetchObjects () Executes the constructed query and returns a list of objects (of type OBJECT where OBJECT is any of the CommitCRM::Object derived classes) that satisfies the criteria.

Below is the table with the available operators (CommitCRM::OperatorEnum) used in the AddCriteria methods.

Enum value Description
CommitCRM::OperatorEnum::opEqual Searches for objects using the exact match (equals) operator
CommitCRM::OperatorEnum::opGreaterThan Searches for objects whose value is greater than the value passed in the third parameter in AddCriteria method.
CommitCRM::OperatorEnum::opGreaterThanOrEqual Searches for objects whose value is greater or equal than the value passed in the third parameter in AddCriteria method.
CommitCRM::OperatorEnum::opLessThan Searches for objects whose value is less than the value passed in the third parameter in AddCriteria method.
CommitCRM::OperatorEnum::opLessThanOrEqual Searches for objects whose value is less than or equal the value passed in the third parameter in AddCriteria method.
CommitCRM::OperatorEnum::opLike Combined with % (percent sign) in the value passed in the third parameter in AddCriteria method can be used for search with broader match.
CommitCRM::OperatorEnum::opNot Searches for objects whose value differs from the one passed in the third parameter in AddCriteria method.
CommitCRM::OperatorEnum::opNotLike