TrackStudio Enterprise 3.1
Integrating with Third-Party Systems

This section describes the interaction with TrackStudio Enterprise via SOAP API.

To interact with external applications, import or export data, you can use TrackStudio SOAP API. 

TrackStudio SOAP API features:

  • Based on the Apache AXIS technology.
  • Can be used by Java clients as well as .NET clients.
  • Provides direct access to external adapters used for web interface realization. Unlike most other systems, TrackStudio SOAP API does not limit the possibility of interaction with TrackStudio by simple operations.
  • It is safe to use TrackStudio SOAP API calls. If the user cannot perform the operation via web interface, he/she will not be able to perform it via SOAP API. SOAP API can be disabled to provide more safety.

The following services are available to work via SOAP API:

  • JavaAttachment (Java-only)
  • Acl
  • Attachment
  • Category
  • EmailType
  • Filter
  • Find
  • MailImport
  • Message
  • Prstatus
  • Registration
  • Script
  • Step
  • Task
  • Udf
  • User
  • Workflow

This service functionality corresponds to the gran.app.adapter.external adapters. For example, the Acl service allows you to call the gran.app.adapter.external.SecuredAclAdapter adapter methods via SOAP. In order to provide compatibility with various SOAP implementations, TrackStudio uses proxy to convert parameter types. For example, Java collections are not supported in .NET so Java collection is converted to the arrays. The conversion is done in the com.trackstudio.soap.service classes. For example, the proxy for the getEmailTypeList method is the following:

    public EmailTypeBean[] getEmailTypeList(String sessionId)
    throws GranException {
        ArrayList list = new ArrayList();
        for (Iterator it =
             manager.getEmailTypeList(sessionId).iterator();
             it.hasNext();)
            list.add(((SecuredEmailTypeBean) it.next()).getSOAP());
        return (EmailTypeBean[])
            list.toArray(new EmailTypeBean[]{new EmailTypeBean()});
    }

Sometimes more complex conversions can be done. For example, the proxy for the getUserList method from the SecuredUserAdapter is as following:

    public UserSliderBean getUserList(String sessionId,
    String managerId, int page)
        throws GranException {
        Slider slider = manager.getUserList(sessionId,
                                            managerId, page);
        UserSliderBean bean = new UserSliderBean();
        bean.setId(slider.getId());
        bean.setKeyword(slider.getKeyword());
        bean.setPage(slider.getPage());
        bean.setPageSize(slider.getPageSize());
        bean.setSortOrder(slider.getSortorder());
        ArrayList list = new ArrayList();
        for (Iterator it = slider.getCol().iterator(); it.hasNext();)
            list.add(((SecuredUserBean) it.next()).getSOAP());
        bean.setUsers((UserBean[])
             list.toArray(new UserBean[]{new UserBean()}));
        return bean;
    }
Topic 
Description 
This section describes how to interact with TrackStudio from a Java application using TrackStudio SOAP API. 
This section describes how to use TrackStudio SOAP API from an Internet Browser. 
This section describes how to realize the interaction between TrackStudio and a .NET application using TrackStudio SOAP API. 
Copyright (c) 2002-2005. All rights reserved.