With WebOffice 10 R3, so called Custom tools were introduced. By using a Custom tool it is possible to extend WebOffice 10 R3 functionality with arbitrary tool functionality. Each configured Custom tool will get its own toolbar button in the WebOffice html client.
Custom tool functionality and tool form get implemented by a SynerGIS partner or by the customer. The partner/customer may choose the technology and Esri API to be used for implementing the tool functionality and the tool form.
WebOffice 10 R3 provides an easy-to-use API which is implemented on
•HTTP GET/POST protocol level (similar to ArcGIS Server REST API) or
•JavaScript level (similar to ArcGIS Server Javascript API).
See figure below for WebOffice 10 R3 Custom Tool concept.

WebOffice Custom Tool concept
According to the figure above, the Custom Tool implementation may use arbitrary web technology and Esri API, this decision is totally up to the customer respectively partner implementing the Custom Tool.
Look for sample Custom Tool implementations and detailed technical information in folder pub/custom_tools of your WebOffice 10 R3 web application.
To get an overview of the example implemented in the WebOffice Sample Project, refer to chapter An advanced Custom Tool.

Web integration - Custom Tool configuration
Using the Web integration – Custom Tool element, it is possible to specify the URL of the Custom Tool implementation and which way information gets passed from WebOffice 10 R3 to the Custom Tool implementation. Tool tip and Tool icon can be configured as well.
With WebOffice 10 R3 it is possible to add a Web integration - custom tool to any Tool group.
Property |
Description |
Use tool? |
Specify whether this Tool is available in the WebOffice client (Yes) or not (No). |
URL of external page |
Full URL of external web page/application |
Tool tip |
Tool name shown as tool tip |
Pass mode |
Pass mode •HTTP: Pass coordinates and/or object keys from WebOffice to the external web page via HTTP (parameters are added in the query string of the HTTP request), •Javascript: Pass coordinates and/or object keys from WebOffice to the external web page calling a Javascript function of the configured web page. |
JavaScript callback on close |
JavaScript method called before closing the tool. |
Use HTTP Get? |
Pass parameters to external application via HTTP Get ('Yes') or HTTP Post ('No') |
URL of external page for passing parameters |
Full URL of external web page/application used for passing parameters (Pass mode HTTP). |
Pass user context? |
Used for UserManagement secured projects. Specifies if the user context of the user logged on to WebOffice will get passed in the HTTP header. Note: If providing a user context to an external application the URL will be redirected. All paths used in the external Application have to be full qualified! |
Provide snap functionality? |
Specifies if the snap functionality should be provided in the tool form or not. |
Javascript function |
Javascript function of external web page/application called by WebOffice. e.g. ProcessWebOfficeCall(objKeys[],geom[][]) |
Tool icon |
In WebOffice folder pub/images 10 icons are available (tool_01.gif to tool_10.gif). Icon size 16x16 pixels. |
External Tool-ID |
Tool id used for external calls. |
Web integration - Custom Tool configuration
For easy functional tests for custom tools you can configure a custom tool with the following settings using the testextapplication.jsp file:
•URL of the external page: testextapplication.jsp
•Pass mode: JavaScript
•JavaScript function: callFromWo
The parameters (key field, geometry) transferred by WebOffice 10 R3 will be displayed in the upper part of testextapplication.jsp.

Configuration of testextapplication.jsp with an advanced custom tool to pass two parameters via select box (parameter 1: Object ID of railroad stations, parameter 2: bounding box coordinates)
In the subsequent chapters the possible child configuration elements are documented. These configuration elements specify in which way the user will be able to interact with WebOffice 10 R3 before information gets passed to the Custom Tool implementation.