In this second installment of the three part deep linking series, we will show the steps necessary to create a simple url access (“deep link”) into any Plex function by WebClient. If you missed the first installment, the introduction to WebClient deep linking, you can access it by clicking here. Although this simple example shows a function with just one input parameter, Plex functions with complex parameter structures can be called using this technique, including functions with MOV variables. There will be more detailed information on the XML call structure used in the final installment of the series.
Please follow these steps
Create a new custom servlet in your web project.
Right-click on wxpcourse60web à select New à select Other… à expand web folder à select Servlet à type deeplink for Java package and Class name à click Finish.
Copy and paste the code provided (DeepLinkJavaZip) to the newly created servlet.
Change the package name to deeplink.
Change the class name to deeplink.
Modify input variable name and field name in the new servlet.
final String plexXML =
Name="Input"><Field Name="ItemID">" +
Modify webclient URL from
final String webclientURL = “/webclient/test”;
final String webclientURL = “/webclient/deeplink”;
Note: String webclientURL = the link to webclient servlet without context path
Update wxpcourse60web libraries.
Right-click on wxpcourse60web à select Properties à select Java Build Path à open Libraries tab à click on Add External JARs… à browse to your <WebsydianWebClient installed directory>jetty6.1.7lib folder à select servlet-api-2.5-6.1.7.jar
Turn off Websydian Web Client Project Builder.
Right-click on wxpcourse60web à select Properties à select builder à uncheck Websydian Web Client Project Builder (if checked)
Add new parameter in J2eeProxy.prop file.
Expand wxpcourse60web project à expand WebContent à expand WEB-INF à open J2eeProxy.prop file with text editor à add the following parameter
webclient.entry.url.deeplink = WXPCOURSE60.WXwF
Change deeplink servlet mapping.
Expand wxpcourse60web project à expand WebContent à expand WEB-INF à open web.xml with text editor
Change webclient servlet mapping to
Change deeplink servlet mapping to
Build the project and publish to the web server.
- To call the function, open a web browser and enter the following URL.
WebClient i+ Developers –
WebClient Patch Release 1.4.10 is released. To obtain this release, please login to http://webclientiplus.com and select Developer Content and Software Downloads
1. When using a custom template, the attach point can now be omitted from the control name (and shoud be for grid cell templates) It will defaut to the attach point where those controls would be place if they didn’t have a control name set.
The following element should be the template= element.
2. The enquiry message close “X” button now has the effect of automatically clicking “Cancel” on the dialog.
3. Options can now be programatically removed from the ComboBox control.
4. RadioButton has improved behavior when dealing with the Read Only and Disabled states.
5. MultilineEdit supports the Lost Focus event.
6. A bug that prevent the root (panel-level) context menu from working has been fixed.
7. A number of check box and radio button quirks have been corrected
The Websydian WebClient i+ development team
WebClient developers have an added bonus that comes as a side effect of generating their Plex panels as RIA applications – the built-in ability to call their functions using an XML external call mechanism. This call mechanism can be invoked in a couple different ways:
- You can call Plex functions as “deep linked” web pages with parameters that can be embedded in external portals or other enterprise web applications.
- Developers can automate Plex business logic from external Business Process Modeling (BPM) or Workflow automation tools, such as Xpert Ivy, Lombardi Teamworks, or Microsoft Workflow Engine. Note that both UI and non-UI functions can be automated in this way.
Simple Deep Link
In the first method, simple deep linking, an url request containing the function name and/or parameters to pass is sent to a custom servlet handler function. This function formats an XML string to call the CA Plex panel function. This call information is then passed to the WebClient servlet, resulting in the Plex panel being called with parameters and the Plex screen displayed in the browser. This is the most common way to call a Plex panel function from a URL.
However, you are not limited to simple deep linking. A Plex panel function or non-UI function can also be called directly by automation. This allows the Plex function to be called from an external application, such as a Business Process Modeling/Workflow application created with Xpert Ivy, an enterprise ERP package such as SAP, or practically any EA that can perform a web function call.
Here is some of the information you can pass on a Plex function call via the WebClient servlet. Note that you can populate panel fields and fire events.
- Plex Function Name
- Plex Function Package
- Input Parameters (MOV’s OK)
- Event to fire
- Fields to populate on the screen (including grid data)
This article is just an orientation to the possibilities behind WebClient deep linking and automation. An example of a deep link and of a workflow automation call will the subject of part 2 and part 3 of this three part series. If you have questions in the meantime, don’t hesitate to contact us at firstname.lastname@example.org.