TrackStudio Enterprise 3.5
Integrating with Third-Party Systems

The following topic 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 security.

The following services are available using SOAP API:

  • JavaAttachment (Java-only)
  • Acl
  • Attachment
  • Category
  • EmailType
  • Export
  • Filter
  • Find
  • Index
  • MailImport
  • Message
  • Prstatus
  • Registration
  • Report
  • SCM
  • 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 a proxy to convert parameter types. For example, Java collections are not supported in .NET so a Java collection is converted to 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 follows:

    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;
    }

The following topic describes how to interact with TrackStudio from a Java application using TrackStudio SOAP API.
The following topic describes how to use TrackStudio SOAP API from an Web browser.
The following topic describes how to realize the interaction between TrackStudio and a .NET application using TrackStudio SOAP API.