The Agentry SDK is a collection of resources provided to developers to support inter process communications between the Agentry Client and another process or application running the same client device.
There are two options available for interacting with external processes. These options consist of ActiveX, or using the Client API. The ActiveX interface to the Agentry Client has been available for quite some time and has been expanded and augmented with continuing increases in the exposure of the Agentry Client functionality and data. The Agentry Client API exposes the ability to execute actions, instantiate and apply transactions, and request a rule evaluation, all from an external process running on the same device as the Agentry Client.
Included in the Agentry SDK, and in addition to the resources needed to make use of the API’s it provides, are a handful of samples. It may be beneficial for the uninitiated to review these samples, and possibly even compile and build one or more of them in order to become more familiar with the overall structure and logic involved in building processes or controls that interact with the Agentry Client.
The Agentry ActiveX Client API (ActiveX API) provides numerous resources for creating an ActiveX control that is displayed on the Agentry Client’s user interface and that can interact with the Agentry Client in several different ways, including passing various types of data between the Agentry Client and ActiveX control, requests made by the control of the client to execute actions, and for the Agentry Client to be aware of various control-related events such as data entry and changes in focus.
The ActiveX API provided by Syclo includes numerous resources needed by the ActiveX control that must be included in the build and compile stages. There are methods within the Agentry Client that are exposed to the ActiveX control, as well as methods that are expected to exist within the control that will be called at various times by the Agentry Client to notify the control of certain events related to the control and/or the user’s interaction with it.
The Agentry Client API has been provided to expose certain functionality within the Agentry Client to external processes. Similar to the ActiveX API, the external process can request the Agentry Client to execute actions. In addition, the process can also request the Agentry Client to instantiate a transaction using values provided by the external process, and to then apply that transaction. The external process can also call through the Client API to request a rule evaluation and to receive the value returned by that rule.
A significant difference between the Client API and the ActiveX API is how the communications are supported. When using the ActiveX API it is a requirement that an ActiveX control be used and displayed on the Agentry Client’s user interface. In some situations this is either not practical, or such a control makes no sense for the intended purpose. The Agentry Client API allows for interaction between an external process and the Agentry Client with such a control. The external process must be built using the provided resources in the Agentry SDK, and call the methods provided by the Client API to perform the desired processing.
Both the Agentry ActiveX Client API and the Agentry Client API are available for use with Agentry Client’s running on Windows devices, desktops, and laptops. ActiveX is a Microsoft protocol provided exclusively for their family of Windows operating systems, and therefore cannot be used in conjunction with Agentry Clients for platforms other than Windows. The Agentry Client API is at this time available only for Windows platforms as well.
The primary driver for selecting the Agentry Client API for external processes or the Agentry ActiveX Client API is whether or not a control should be or is needed to be displayed on the Agentry Client’s user interface. If there is no need for such a control, or if such a control does not make sense in the context in which the processing or work flow is performed, then the developer should investigate using the Agentry Client API for external processes. If, however, a control is needed, then the Agentry ActiveX Client API must be used.
Other differences include the functionality exposed and available by each API. The Agentry Client API for external processes allows for the execution of actions, the evaluation of rules, and the instantiation and application of transactions. All three of these processes are performed in the context of the module MainObject.
For developers familiar with the Agentry ActiveX Client API, it is important to note some items related to the recent addition of the Agentry Client API for external processes. The most important difference is that the Client API does not utilize any of the resources provided by the SDK for ActiveX, nor does it use the methods, field types, action types, or other components provided to support ActiveX controls. The Agentry Client API for external processes is a separate entity and all support and resources related to its usage are mutually exclusive from the Agentry ActiveX Client API related resources.
No changes were made to the ActiveX API related to the addition of the Agentry Client API. Any existing ActiveX controls built using the ActiveX API provided previously are still supported and no change to them is needed.