Exo URL Protocol
Exo Business records can be opened from a URL/hyperlink using the exo:// protocol. The link can be on a webpage, in an email, in a third-party application, or in the Exo Business interface itself.
Note: Video-based Help is available for this topic on the Exo Business Education Centre.
Exo Business grid displays support clickable URLs for the TEXT and NTEXT data types. This feature can be used in Grid widgets, to allow drilling to a URL directly from the data. In combination with Exo Business URLs, it allows drilldown to any of the Exo Business records that support URLs.
Setting up the Exo URL Protocol
A separate application, exoprotocolhandler.exe, processes all Exo Business URLs. This application is installed with Exo Business, and must be present on all PCs where you want to use Exo Business URLs.
To set up support for Exo Business URLs, double-click on this application to run it once (every time it runs, it checks if it is registered as the exo:// handler in local registry, and registers itself if it is not).
URL Format
Exo Business URLs are formatted as follows:
exo://[connection/]command[(#)][/][?param=value¶m=value...]
Each URL has the following components:
- connection - specifies the Exo Business database connection to use.
- command - specifies the Exo Business procedure/window to launch.
- (#) - some commands allow you to open a specific record by entering the record’s ID number (SEQNO or ACCNO) in brackets. If an ID number is not supplied, the search screen for that kind of record is displayed.
- ?param=value - some commands support additional parameters, such as a search string. Multiple parameters are separated with an ampersand (&).
A command must be specified; all other components are optional.
Supported Commands
Supported commands are listed in the table below. All commands open in the core Exo Business module, unless stated otherwise.
Note: Commands must be available as a menu item in the relevant module; users will be prevented from opening any screen that they would not normally have access to when using an Exo Business module. This ensures that the security of the Exo Business system is preserved.
Command |
Description |
activity(x) |
Opens the Activity record with the ID number x in the Exo Business Core module. |
campaign(x)/?search=xyz |
Opens the Campaign record with the ID number x in the Exo Business CRM module, or searches for the text specified by the ?search parameter. |
company/?search=xyz company/?find=xyz |
Opens the Company search window in the Exo Business Core module, searching for the text specified by the ?search or ?find parameter. |
contact(x)/?search=xyz contact(x)/?find=xyz |
Opens the Contact record with ID number x in the core Exo Business module, or searches for the text specified by the ?search or ?find parameter. |
core_campaign(x)/?search=xyz |
Opens the Campaign record with the ID number x in the core Exo Business module, or searches for the text specified by the ?search parameter. |
core_opportunity(x) |
Opens the Opportunity record with ID number x in the core Exo Business module. |
core_serviceunit(x)/?search=xyz |
Opens the Serviceable Unit record with the ID number x in the core Exo Business module, or searches for the text specified by the ?search parameter. |
craccount(x)/?search=xyz |
Opens the Creditor account with the Account ID number x, or searches for the text specified by the ?search parameter. |
crinvoice(x)/?search=xyz |
Opens the Creditors Invoices window. |
crm_activity(x) |
Opens the Activity record with the ID number x in the Exo Business CRM module. |
crm_company/?search=xyz crm_company/?find=xyz |
Opens the Company search window in the Exo Business CRM module, searching for the text specified by the ?search or ?find. |
crm_contact(x)/?search=xyz crm_contact(x)/?find=xyz |
Opens the Contact record with ID number x in the Exo Business CRM module, or searches for the text specified by the ?search or ?find parameter. |
crm_saleorder(x)/?search=xyz |
Opens the Sales Order with ID number x in the Exo Business CRM module, or searches for the text specified by the ?search parameter. |
document(x) |
Opens the document stored in the Document Manager with the document ID x. |
draccount(x)/?search=xyz |
Opens the Debtor account with the Account ID number x, or searches for the text specified by the ?search parameter. |
fixedasset(x)/?search=xyz |
Opens the Exo Fixed Assets record with the Asset number x, or searches for the text specified by the ?search parameter. |
invoice(x) |
Opens the Debtor invoice with ID number x. |
jc_purchaseorder(x)/?search=xyz |
Opens the Purchase Order with ID number x in the Exo Job Costing module, or searches for the text specified by the ?search parameter. |
job(x)/?search=xyz |
Opens the Job record with the ID number x in the Exo Job Costing module, or searches for the text specified by the ?search parameter. |
opportunity(x)/?search=xyz |
Opens the Opportunity record with ID number x in the Exo Business CRM module, or searches for the text specified by the ?search parameter. |
purchaseorder(x)/?search=xyz |
Opens the Purchase Order with ID number x, or searches for the text specified by the ?search parameter. |
prospect(x)/?search=xyz |
Opens the Non Account x with the Account ID number x, or searches for the text specified by the ?search parameter. |
report/?parameters |
Opens a Clarity report. All report parameters are supported, e.g. exo://report/?DR_Control.CLR&d=Printer&a=N |
saleorder(x)/?search=xyz |
Opens the Sales Order with ID number x, or searches for the text specified by the ?search parameter. |
serial/?stockcode=xyz&search=xyz |
Opens the Serial Number Tracking window. |
serviceunit(x)/?search=xyz |
Opens the Serviceable Unit record with the ID number x in the Exo Job Costing module, or searches for the text specified by the ?search parameter. |
stockitem/?stockcode=xyz |
Opens the Stock item with the stock code specified by the ?stockcode parameter. |
statement |
Opens the Debtors statements window. |
workorder(x)/?search=wyz |
Opens the Works Order record with the ID number x in the Exo Business core module, or searches for the text specified by the ?search parameter. |
Searching Records
For commands that support it, the ?search parameter opens the relevant search window, showing all records that match the search terms, e.g. searching Debtors with ?search=auto will show all Debtors that include "auto" anywhere in the account name.
Some commands support the alternate ?find parameter, which offers more options using % wildcards (in a URL, the percent symbol must be escaped with %25). You can use the ?find parameter as follows:
- ?find=test - return items that match "test" exactly
- ?find=test%25 - return items that start with "test"
- ?find=%25test - return items that end with "test"
- ?find=%25test%25 - return items that contain "test" anywhere in the name
While the ?search parameter always opens the relevant search window, if the ?find parameter matches only one record, that record will be opened automatically and the search window won't appear.
Examples
exo://draccount(2) - opens the Debtor account with the ID number (SEQNO) 2.
exo://crm_contact(3) - opens the Contact with the ID number (SEQNO) 3 in the Exo Business CRM module.
exo://contact/?search=smith - opens the Contact search window, showing results for a search on "smith".
exo://stockitem/?stockcode=AIRFIL01 - opens the Stock item with the code AIRFIL01.
exo://contact/?find=a%25 - opens the Contacts search window, showing all results that start with the letter a.