engageone v4.4.8 programmer's reference guide

308
Customer Engagement EngageOne ® Compose EngageOne ® Server Programmer's Reference Guide Version 4.4 Service Pack 8

Upload: others

Post on 10-Jan-2022

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EngageOne v4.4.8 Programmer's Reference Guide

Customer Engagement

EngageOnereg Compose EngageOnereg Server

Programmers Reference Guide Version 44 Service Pack 8

Table of Contents

1 - Overview

Overview 5

Template designer 5

EngageOne Server components 10

EngageOne administration 13

EngageOne Interactive 14

Interactive document process flow 14

2 - Integrating with EngageOne

SOAP

OnDemand 18

Interactive 18

Data push processing in EngageOne

Interactive 18

Interactive Document Delivery 32

Sample application 33

OnDemand Document Delivery 36

3 - XForms

About XForms 39

XForms processors 41

XFormSDI Flow 42

XForms standard files 43

Data definition type and attributes 62

4 - System Data Integration

SDI General Configuration 66

Using an XML file as a data source 67

Using the Java callback interface 68

Feature support for System Data Integration 69

Integration option 1 ndash XML data source 71

Integration option 2 ndash callback interface 75

5 - Additional features in SOAP

Trusted Connection 87

Template search 87

Write delivery information 96

Managing the work queue 99

Updating work items 102

Reassigning a work item 106

Deleting a work item 108

6 - EngageOne notifications

Overview 110

Notification components diagram 111

Topics and queues 113

Configuration settings 114

Messages 118

Communication messages 119

Batch messages 121

Workflow messages 122

Consuming notification messages 123

Using other JMS implementations 126

Sample message consumers 128

7 - The comparison adapter plug-in

The custom plug-in implementation 130

Example implementations 131

Plug-in Installation and configuration 135

8 - Appendix A - Editor methods

LoadContents 137

SaveContents 137

SpellCheck 138

IsComplete 138

IsModified 139

GetVersion 139

9 - Appendix B - SOAP API

Identifiers 141

Search filter 142

Promotion service 143

Folder service 164

Data push service 168

Delivery management service 170

Dictionary service 178

Domain service 180

Editor service 182

Keymap service 185

Metadata service 193

Request status update service 196

Security service 198

Template service 204

Workitem service 227

Attachment service 252

Workflow service 264

Delivery service 276

10 - Upgrading 3X to 4X SOAP

services

Licensing changes 297

Security changes 298

WorkItem approval process not supported 300

DataPushServicemapData not supported 300

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 3

1 - Overview EngageOne is an interactive document production system enabling the creation and delivery of high volume on demand and interactive customer correspondence

In this section

Overview 5 Template designer 5 EngageOne Server components 10 EngageOne administration 13 EngageOne Interactive 14 Interactive document process flow 14

Overview

Overview

Document templates and optional content objects are defined by the template designer in a core application called Designer and managed in the content repository These programs are made available to front-office users through a Web-based interface This interface allows users to create and modify a document in a controlled manner and distribute documents through various delivery channels as required

The EngageOne Interactive Web application uses the services provided by the EngageOne Web services interface to access the server functions of EngageOne

Template designer

Document templates are created by a template designer a user who defines the document and its interactions in Designer

A template consists of a traditional publication design along with interactive data definitions which describe the front office user interactions required to complete a document from that template

This involves designing the overall template and defining

bull The data prompts included in the document using the Interactive Editor bull Paragraph and content selection using optional content selections (Active Content) bull Free-form text to override content protection using editable paragraphs

For more information about these functions see the Designer Userrsquos Guide

The template designer allows the user to edit or enter free text as required in an EngageOne document design by selecting a section of text in a paragraph object and defining the text as editable Any text marked as editable can be changed by the user Text that is not marked as editable will be protected

In addition to the basic template the template designer can create optional content Property values are defined enabling them to be conditionally placed in an Active Content Group When Active Content is marked as interactive the user is dynamically presented with content choices to help them complete their document

Once the EngageOne template has been designed and data fields defined the template is named and published for EngageOne The XForm files that define the documents data model are included in the templatersquos Zip file

The process of importing these files into the EngageOne content repository using the EngageOne Administration client is called Template deployment

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 5

Overview

The interactive data model is defined and exposed using the W3C XForm standard The XForm can be used by the system integrator to push system data into the interactive document

Content repository

The content repository provides file storage and version control for EngageOne It houses the templates used to create documents supporting files needed for document composition and the document instances waiting for delivery

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 6

Overview

About the template

The template manifest (template_masterxml) describes template attributes and contents

The template manifest is made up of the following

Subfiles

The Subfiles section contains a list of files in the template Zip file and specifies each file type

Template composition

HIP files contain design layout logic and other resources required for generating publications These files are used by Generate

There are two types of HIP file publications and independently publishable active content

HIP

Publication files contain design layout and logic These files are used by the Interactive Editor

There are two types of PUB file template publications and independently publishable active content

PUB

XForms define electronic forms for collecting general purpose information XFRM

Instance data file

Initially this file contains default field values All values entered by the user will be saved in this file Free form text is stored in the HIP and PUB files not the instance file

INST

The instance file schema contains standard schema nodes and attributes The schema ensures data returned in the instance file is well-formed the right type and meets defined field criteria

SCHEMA

Image file required by the editor for display in the template IMG

XML representation of the Designer Publication ldquoSample Datardquo whether the original data is keyed data (for example single value decomposition) delimited (for example comma separated values) or on-demand XML The DATAMODEL file type appears only for non-interactive templates

DATAMODEL

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 7

Overview

Template composition

PREVIEW

PROMPTLOGIC

THUMBNAIL

PDF file appears for both interactive and non-interactive templates where Designer Publish for EngageOne has successfully generated a PDF ldquopreviewrdquo example of the Designer Publication

The PREVIEW file is generated using ldquoemergency replacementrdquo data where the Designer Publication data is incomplete and may not reflect the completed document PREVIEW file is available for the Interactive user to view a ldquoPreviewrdquo of the Template Document at the start of the ldquoEdit Communicationrdquo process

Files containing information used to prompt for and validate interactive template data when the ActiveX editor is not used

Scaled image representation of the first document Intended as a rough guide to the layout and content of the first document

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 8

Overview

Resources

The Resources section lists the dependencies of the template These can be of the following types

ACTCONT Active content

IMAGE Image used in the template

FONT Font used in the template

The following fragment demonstrates the structure of the template manifest

ltxml version=10 encoding=utf-8gtlt--XML meta file for EngageOne Template--gtltdocument ocmmetafile-vers=ocm-metafile10 ocm-vers=OCM TemplateV10gt ltOcmMetadatagt ltdocumentClassgt ltmetadata-field fieldName=Publish Date fieldValue=05-May-2009

defaultValue= fieldType=text gtltmetadata-field fieldName=Published By fieldValue=Administrator

defaultValue= fieldType=text gtltmetadata-field fieldName=Design Publication Name fieldValue=Basic

defaultValue= fieldType=text gtltdocumentClassgtltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=PUBgttemplatepubxltFilegtltFile type=XFRMgtd79f96b60b2a48ee9f59c8bed5655f86xformltFilegtltFile type=INSTgtd79f96b60b2a48ee9f59c8bed5655f86xmlltFilegtltFile type=SCHEMAgtd79f96b60b2a48ee9f59c8bed5655f86xsdltFilegtltFile type=IMGgtc52767b2d1824366b522589d550cb297pngltFilegtltSubfilesgtltResourcesgt ltRes type=ACTCONT name=Basic

guid=e06d8fc2009642ddb2740495af6bf785 gtltRes type=FONT name=Arial 11pt

guid=24e474cc2baa434cb7239457b6b90443 gtltRes type=IMAGE name=logobmp

guid=c52767b2d1824366b522589d550cb297 gtltResourcesgtltInputsgtltHIP path= gtltActiveContent path= gtltInputsgtltOcmMetadatagtltdocumentgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 9

Overview

EngageOne Server components

The Web services layer

bull Exposes EngageOne communication services to a custom built front office Web application or to the EngageOne Web application

The Business layer

bull Document management - template storage and retrieval (including version control) and work queues (document instance storage and retrieval)

bull Security management - supports direct integration with LDAP and Active Directory for user and group lists

bull Delivery Services - defines delivery channels and provides services to generate draft and final copy output

bull Event Monitor - monitors system health and tracks system activities Tracking information can be used for reporting

For example a report can specify how many times a template is used or how quickly a template is processed

bull Delivery channels - EngageOne delivery channels include print fax email SMS and archive

Document instances can be submitted for real-time delivery to a local printer

Output can be queued for EngageOne batch processing

About Web services

The EngageOne server exposes most of its API via Web services EngageOne Web services enable custom application integration with EngageOne server on any development platform supporting Web services

Components Requirements

Support for various bindings (SOAP 11) SOAP and Web services

Axis 2 or JAX-WS (recommended)

At least custom XML

Java clients

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 10

Overview

Components Requirements

Microsoft Windows Communication Foundation Framework

NET clients

Note Not all EngageOne Server Web services are WS-I compliant

bull There is an issue with MTOM attachments support using Axis2 as a client

In order to work around this issue updated client stubs are provided on the installation media under the samples folder These client stubs accommodate and correctly parse MTOM attachments If you use Axis2 and wish to use MTOM attachments you may opt to use these stubs

bull The services will continue to work without MTOM attachments The advantage to MTOM attachments is they can work with larger file sizes

Web services are backward compatible and client code should not need to be changed Any auto-generated client stub code based on a previous Web service release should be regenerated against the new Web services definitions (WSDLs)

Services are provided that allow a third part application to complete document flow starting from creation up to delivery

The diagram below shows the server components exposed as a Web service via an adapter The diagram details the exposed Web services a custom application could use to integrate with EngageOne

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 11

Overview

Web service descriptions

The following details EngageOne Web services

Delivery Management Service - search delivery channels and devices

Delivery service - work item preview and work item distribution

Dictionary service - search speller XML file

Domain service - search domain information

Editor service - transfer files from the content repository server by resource file ID

Keymap service - import keymaps

Metadata service - manage and retrieve document classes or metadata and configure metadata definitions

Security service - search user roles

Template service - template creation retrieval and search support

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 12

Overview

WorkItem service - work queue related functions

For example retrieve work items work item creation work item assignment approval and rejection functional support

In the EngageOne Web service runtime environment EngageOne Web services work with EngageOne applications using Simple Object Access Protocols (SOAP) In the application server environment a SOAP servlet is deployed as the requestresponse gateway

All EngageOne Web services are published in Web service Description Language (WSDL) format and are described by the following namespaces

Note Namespaces are used to avoid naming conflicts in XML tags ensuring uniqueness

bull httppbcomEngageOnewscommon bull httppbcomEngageOnewsmodel bull httppbcomEngageOnewsdeliveryManagement bull httppbcomEngageOnewsdelivery bull httppbcomEngageOnewsdictionary bull httppbcomEngageOnewsdomain bull httppbcomEngageOnewseditor bull httppbcomEngageOnewskeymap bull httppbcomEngageOnewsmetadata bull httppbcomEngageOnewssecurity bull httppbcomEngageOnewstemplate bull httppbcomEngageOnewsworkItem

EngageOne WSDL files are generated from the EngageOne Web service Java Interface

WSDL example files are included in the distribution media ltrelease-distributiongtsamplessoapwsdl

EngageOne administration

The EngageOne administrator uses a Web application to set up and configure the EngageOne environment

The Web application is delivered as part of the standard EngageOne server install

The EngageOne Administration Web interface supports managing folders templates and delivery channels

For security purposes role-based access and user roles are defined in EngageOne Administration Roles can be assigned to individual or a group of LDAP users

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 13

Overview

The EngageOne administer handles domain management license management and system diagnostics

For more details see the EngageOne Administration Guide

EngageOne Interactive

EngageOne Interactive is delivered with the EngageOne Server It provides a browser based interface for front-office workers to create customized documents EngageOne Interactive supports a widely distributed user base including remote users

For more information about working with EngageOne documents see the EngageOne Interactive Userrsquos Guide

In many cases a custom designed application might be more appropriate for addressing your business needs

If preferable to a fully featured implementation the Web services interface allows integration between EngageOne and your existing business systems

For more information about building your own interactive application see Integrating with EngageOne SOAP

Interactive document process flow

Note integration is not supported in this version of EngageOne Server workflow

The process flow starts with EngageOne fulfilling a request for a document in real time requiring user interaction to complete the request Data definitions are embedded in a template and create an underlying XForm The XForm is used to drive the prompts which gather data required to complete the document

Business driven data is retrieved or provided by your system integration program from the appropriate source

For more information see Integrating with EngageOne SOAP and System Data Integration

The following diagram illustrates the process flow

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 14

Overview

Selecting a template

A custom application would use the TemplateService Web service

The template service collects a list of templates from the content repository and presents the templates to the user All templates have a template ID which is used by all other calls

Templates can be identified by name Keep in mind that the template name is not unique and a search by name could return multiple templates

bull A document instance is created from a template by the editor The XForm is pushed to the custom system integration program which parses system attributes and populates system fields

For example the system may have executed an address lookup and populated form information The XForm is returned to the calling application for user interaction

Note a custom built Web application must adhere to the specification for interactive data prompt display Front end users can manually enter data for document completion

Editing is handled through

bull Form fields (generated from XForms or by the system integrator) bull The Interactive Editor component (supplied with EngageOne server)

Edits are stored in the answer file where they can be accessed by Generate when composing the final output documents Edits can be sent to the delivery process automatically without being saved

For more information see Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 15

Overview

Save and submit

When a document instance is saved the system data interactive input delivery channel selections and any other relevant information is saved in an answer file

The answer file is passed back to the EngageOne repository by the WorkItemService and saved as a new revision of a permanent document instance

The completed document is submitted

The reference to the permanent document instance and version is sent to the Document Server for final delivery

The document revision and template revision are referenced by the Document Server and any change will not affect what is delivered to the user The user may choose from the templates delivery options

Delivering a document

The Document Server receives delivery requests

The requests are queued and a job number is returned to the calling application The job number can be used for future requests about job status error tracking and audit information

The system queries the EngageOne server for available delivery channels

Available delivery channels are returned by the DeliveryManagementService Web service call

Returned data is filtered by available channels set up in the template configuration and by EngageOne Document server permissions

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 16

2 - Integrating with EngageOne SOAP This section provides an overview of using EngageOne Server Web services to integrate with other business systems

In this section

OnDemand 18 Interactive 18 Data push processing in EngageOne Interactive 18 Interactive Document Delivery 32 Sample application 33 OnDemand Document Delivery 36

Integrating with EngageOne SOAP

OnDemand

Isolated services called by customer systems without an end user

Interactive

Graphical interfaces supporting stage by stage integration of EngageOne Server into existing tools and workflows

Data push processing in EngageOne Interactive

EngageOne Server includes an optional data push method This method can provide customer data that can be used to generate interactive documents

Data push works by pushing an XML data structure from your business systems to the EngageOne Server where it is ready for document instance creation The XML data structure is pushed to EngageOne Interactive using a Web service request

Data push can be used in conjunction with system data integration or in its place if the following requirements are met

bull You have no data to populate for drop-down lists free form text fields and any associated fields specified as key fields or visible on the XForm in your template

bull The data you push is complete bull Mapping is complete

To accomplish this create map files in an XML editor then import to EngageOne Server

Data push passes the data in any defined format then maps with one of the following options

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 18

Integrating with EngageOne SOAP

Mapping options

With a Push User

Without a Push User

Data push parameters

The parameters are

bull userId - user name

With a Template

bull Task set to ACTIVE_NEW status

bull User is automatically assigned

bull Work item is automatically created

bull Task set to ACTIVE_NEW status

bull Interactive prompts for user assignment

bull Work item is automatically created

Without a Template

bull Task set to NEW status bull User is automatically assigned bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull Task set to NEW status bull Interactive prompts for user assignment bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull password - userId password bull pushUserId - ID used to assign the task (optional) bull domainName - EngageOne domain name bull pushDataXML - source XML pushed data pushed bull mapId - data map identifier bull Template identifier - EngageOne Interactive template identifier (optional)

You can also pass authentication data for a user ID to push data on behalf of another user In this case the pushed data is associated with a Work Item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 19

Integrating with EngageOne SOAP

Accessing services

To create an instance of the stub you will need to know the Web service endpoint

Typically an EngageOne Web service endpoint is in the following format

httpltengageone-server-hostgtltserver-portgtEngageOneWSltweb-service-namegt

Where

bull ltengageone-server-hostgt the host name where EngageOne server is deployed

bull ltserver-portgt the port where the EngageOne Server Web services are accessible

bull ltweb-service-namegt the EngageOne Web service to invoke

How mapping works

The data map XML schema depends on your business data structure

Data maps are based on XML files that are loaded in EngageOne Server These data maps describe the data element associations in business data during a data push event to the corresponding answer file entries The data mapper uses data maps to map element names from a single data map for multiple EngageOne data formats However a single element name can only be mapped in one way

There are three methods for mapping data element mapping list mapping and repeat mapping

Important information about data maps

bull Map names are independent of the XML file used to import the XML structure bull Map files can be stored anywhere on your network and imported using the Data Map tab bull Data map names are unique due to the way map IDs are formed and must be unique within a domain

The diagram below shows how the data mapper works with data maps and answer files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 20

ltPubllcaliongt

lt lrs ~am gtltlrs ~ m gt

ltL slh ~egtltL s t amegt

ltmiddotr1 Llegtlt11 tlegt

ltPu lie tlongt

ltdat gt

Data Pust XML Mapper

le

ltEublicacion

ltvar name foo gtbarltvargt

ltvar name= blah gtduhltvargt

ltvar n me= huh gtltv rgt

Map File

(xyuml)

ltFirstNam gtbarltFirstNamegt lt~astNarn gtduhlt~ascNamegt

ltTitlegtltTi l gt

ltddtdgt ltPublicationgt

ltJaLaP sh 1 p ma p d=~xyzbullgt ltL slMap am = daLadaL xpaLh=lt na n gt

ltE menu-iap srcxraL = var- r1am = roo La~~ LXPaL = F rsLNam gt ltF m nLMap srcXPaL = va- am= lc1h larg tXPaL = LclSL Nam gt ltEemencMap srcXPa h var ~amec h middoth arge xea h l~ _e gt

ltla a stMapgt

Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 21

Integrating with EngageOne SOAP

Data map XML schema and examples

A good understanding of the data map XML schema is key to integrating data push methods between your business systems custom applications EngageOne Interactive and EngageOne Server

The data map XML schema uses XPath annotation for determining source and target elements in pushed XML data

The data map XML schema is located in

ltrelease-distributiongtsamplesdata-map-schema

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 22

Integrating with EngageOne SOAP

XPath

XPath is a language designed for finding information in an XML document

There are three ways to use XPath to determine the source and target elements for data mapping The source element comes from the pushed XML data specified to the Web service or the EngageOne Interactive URL The target element is the template answer XML file

The three types of mapping in the XML schema are ElementMap ListMap and RepeatMap

bull ElementMap maps a single data element from pushed XML data to a single element in an answer XML file

bull ListMap maps multiple data elements from pushed XML data to multiple elements in an answer XML file

bull RepeatMap maps repeating data elements from pushed XML data to repeating elements in an answer XML file

A single map XML file can have zero or more element maps zero or more list maps and zero or more repeat maps

Nest ElementMap ListMap and RepeatMap elements to define the source and targe file hierarchy

Using XPath annotation you can write expressions for the source element in the pushed XML data and the target element in the answer XML file

Note If you use namespaces in your pushed XML data you must declare standard XML namespaces in your data map

ElementMap example

ltpElementMap srcXPath=datadatum[name=String 1]targetXPath=InteractiveDataModelPublicationString2gt

The srcXPath attribute contains the XPath expression that identifies the source element in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination element in the answer XML file

In this example the source element is identified as the ltdatumgt tag where the name attribute has the value lsquoString1rsquo

The target element is identified as the ltString2gt element under the ltPublicationgt section of the answer XML file

ListMap example

ListMap is more complex

For example

ltpListMap name=datadatum xpath=name gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 23

Integrating with EngageOne SOAP

In this example the XPath expression ldquodatadatumrdquo identifies multiple elements in the pushed XML data For each of these elements the name attribute identifies the target element name in the answer XML file

For example if the pushed XML data had the following

ltdatagt ltdatum name=rdquoString1rdquogtFredltdatumgtltdatum name=rdquoString2rdquogtJonesltdatumgt

ltdatagt

The above example would identify both ltdatumgt elements from the pushed XML data It would copy ldquoFredrdquo into the ltString1gt element of the ltInteractiveDataModelgt of the answer XML file and copy ldquoJonesrdquo into the ltString2gt element of the ltInteractiveDataModelgt

Using a single ListMap you can copy over multiple pieces of data

RepeatMap example

The third approach is to use RepeatMap The RepeatMap element allows you to define a set of repeating elements from the source XML file and copy them to repeating elements in the target XML file

For example

ltRepeatMap srcXPath=mydatadata1targetXPath=InteractiveDataModelPublicationNestedRepeatingGroupParentgt

ltElementMap srcXPath=name targetXPath=NamegtltRepeatMap srcXPath=data2 targetXPath=NestedRepeatingGroupChildgtltElementMap srcXPath=time targetXPath=TimegtltElementMap srcXPath=num targetXPath=NumbergtltRepeatMapgt

ltRepeatMapgt

The srcXPath attribute contains the XPath expression that identifies the source repeating elements in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination repeating elements in the answer XML file

Inside RepeatMap nested ElementMap and ListMap are used to map data elements RepeatMapcan be nested as well Typically the XPath expressions used by a nested map are relative

In this example in the srcXPath of the first ElementMap name is relative to the srcXPath of its parent RepeatMap mydatadata1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 24

Integrating with EngageOne SOAP

EngageOne domains

Note as of the 4X version of the software domains are known as communities

EngageOne separates data into domains A domain represents a line of business department or section in a business environment

Domains are configured by a system administrator at installation time Once installed they can be managed and adjusted System users will be assigned various roles on a per-domain basis

When integrating with SOAP services the domain the username and password must be included in the request

User authentication

EngageOne Server supports two authentication mechanisms

bull WS-Security - industry and SOAP standard

The recommended authentication method

bull AuthContext - custom element in the SOAP request

This authentication method has been deprecated It is used for backwards compatibility with previous versions of the software

WS-Security

WS-Security (Web Services Security) is an industry standard that addresses security when data is exchanged as part of a Web service This authentication is implemented on all EngageOne Server SOAP services at the userid and password level

Legacy applications may choose not to use this type of authentication authenticating instead through the backwards-compatible AuthContext mechanism described below

New applications should leverage this authentication and disable the AuthContext mechanism

With WS-Security use the ltcomcommunitygtltcomcommunitygt element for the domain request

Legacy AuthContext

Every operation will include the AuthContext element AuthContext needs to contain UsernameToken or SessionToken elements

UsernameToken and SessionToken are mutually exclusive If the request contains SessionToken UserNameToken cannot be specified

Note When a request does not include the SessionToken element the server will expect the UsernameToken element to check authentication If the UsernameToken is valid the

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 25

Integrating with EngageOne SOAP

server will generate a new SessionToken that will be passed back to the client Subsequent requests can use the returned SessionToken instead of the UsernameToken

By default the SessionToken will expire after 30 minutes The timeout length can be configured via the session_timeout tag of the ltinstallation_rootgtcoreconfconfig-settingsxml file after EngageOne has been installed

If the SessionToken has expired a SOAP fault will occur with error code -6 Repeating the call that failed with a valid UsernameToken will allow the call to succeed and generate a new SessionToken The new SessionToken will be valid for an additional 30 minutes

Code example

ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongt optionalltcomondemandgtfalseltcomondemandgt optional

ltcomUsernameTokengtltcomauthContextgt

Obsolete flags

onDemand

The onDemand element was used to control licensing options in previous versions of the software We recommend non-legacy customers treat this element as optional and avoid using it

transientSession

The transientSession element was used to indicate the current call should not create a persistent session We recommend non-legacy customers treat this element as optional and avoid using it

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 26

Integrating with EngageOne SOAP

Data Push error handling

Error messages are contained in the SOAP Web service detail response Error messages are localized based on the server locale

To support localized error messages the SOAP details contains an errorCode element the client application can use to translate the error message This is based on the error code returned

Following is an example of a SOAP response from the server containing an error

ltxml version=10 encoding=UTF-8gtltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeader gtltenvBodygtltenvFaultgt ltfaultcodegtenvServerltfaultcodegtltfaultstringgtAuthentication failureltfaultstringgtltdetailgt ltServiceFault xmlns=httppbcomEngageOnewscommongtltcodegt-1ltcodegtltmessagegtAuthentication failureltmessagegtltServiceFaultgt

ltdetailgtltenvFaultgtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 27

Integrating with EngageOne SOAP

Code element error types

The code element in the SOAP fault is mapped to the following error types

Code Error Type

-1 General failure

-2

-3

Illegal argument

Invalid identifier

-4 Missing required argument

-5

-6

Unsupported operation

Session timeout

Message

bull failed to find Delivery Item

bull failed to deliver document bull failed to delete Delivery Item

bull failed to preview Template

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to resume Delivery Item

bull failed to suspend Delivery Item

bull failed to update Delivery Item

Never returned

bull failed to load subfiles (for example HIP) bull failed to find template

bull failed to find workItem

bull failed to find workItem preview

bull failed to preview because of current status (active-new or active-incomplete)

bull empty request bull missing delivery item identifier delivery options identifier template authContext workItemID HIP Property answer

Never returned

expired userContext

The message element is a string that explains the error details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 28

Integrating with EngageOne SOAP

Web services scenario medical insurance data integration

You work for an insurance provider as a data integration analyst You have been tasked with developing a custom system data integration program that collects key information about clients and additional client data from various back-end systems

This information populates an XML instance that is passed to the EngageOne server for document composition When data is pushed to the server the template and other identifiers are specified When the end-user launches EngageOne Interactive the work item based on the specified template is available

The first document composition activity that will be supported is email notification to plan members or their dependents who may be subject to coordination of benefit requirements

The following is a sample of data from the data source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 29

Integrating with EngageOne SOAP

Coordinate with template designer

The next step is to coordinate with the template designer and define the Interactive Data Model field names for associated document composition template

Typically either the data integration analyst provides the field names to the template designer or the template designer provides a list of field names to the analyst You will also need authentication information for the EngageOne server

Define data push mapping

Based on field name assignments the next step is to map the fields from your data source to the Interactive Data Model field names

The mapping is defined in a data push map file The mapping function allows any valid XML input structure to be mapped to the Interactive Data Model XML structure

Because of the structure of your input data and design of the template you decide to use ElementMap to map a single data element from the pushed XML data to a single element in an answer XML file

The field names received from the template designer are the same as the field names in the source data except the template designer is using a field named COB to represent the Coordination_of_Benefits data from the source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 30

Integrating with EngageOne SOAP

Import data push map

Name the map file MyDataPush_COBxml

You import the mapping file into EngageOne Administration

For more information see the EngageOne Administration Guide

Creating the Web services

Using Data Push Web services you can build a custom integration application and create thefollowing

1 Use any JAX-WS compliant client framework such as Axis2 to create Web service client stubs based on the pushData Web service

2 Use the client stubs to formulate a pushData request to pass the Data Push XML data to EngageOne Server with the template identifier and map name (mapId in the service definition)

3 Invoke the Web service using the client stubs you created 4 Handle the response from the Web service invocation 5 Test the custom system data integration application by passing a test XML instance Ask the

template designer or an EngageOne Interactive user to log in and verify that the work item is available

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 31

Integrating with EngageOne SOAP

Interactive Document Delivery

The most important feature of any interactive document delivery application is the ActiveX editor The ActiveX editor allows free form communication editing with a high degree of fidelity between the view presented while editing and the finished communication The editor is embedded in EngageOne Interactive and is available on the installation media

bull The ActiveX editor requires services to retrieve and save the associated files

The deliver-document sample application demonstrates how this can be achieved

bull If you build deploy and run the sample application you will progress through a series of pages

The first page prompts you to choose a lsquothemersquo for the pages

bull Then a login prompt displays

Once logged in choose a template and a delivery option from the two lists

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 32

Integrating with EngageOne SOAP

Sample application

The sample application included in the release distribution is a simple Java Server Faces application

This application uses the Mojarra implementation PrimeFaces for the UI components and a Java servlet to interact with the ActiveX control

The sample application is made up of two parts

1 The view (XHTML files) define the display elements

Included with the view files are controllers (java files) that define the interaction between the user and the views

2 The Java servlet provides the ActiveX editor with the required content then saves changes This functionality is provided by GET and PUT methods respectively

bull In the sample application the EditorServletjava file defines the servlet and its GET and PUT methods

bull The GET method takes templateId WorkItemId and domain name as URL parameters

These parameters are used to make SOAP calls to the EngageOne Server and retrieve the required files The retrieved files are zipped and passed to the ActiveX control

bull The PUT method takes the modified files as a Zip and passes the contained file to the EngageOne SOAP services These are written back to the EngageOne Server

bull The BaseURL and serverURLs will need to be defined for your implementation of the servlet

You can implement the servlet for your application in the way shown in the sample file or you can select a different approach In either case you will need to provide service end-points for the PUT and GET methods when launching the ActiveX control

Implement Deliver Document sample application

The sample application provides an example using EngageOnes SOAP services to query existing objects such as templates and delivery options These objects will be used with user input to generate documents that can be viewed or download through a browser

Note

bull These instructions are taken from a READMEtxt file located in the installation files in the samplesdeliver-document directory

bull The deliver_documentwar file is included in the installation files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 33

Integrating with EngageOne SOAP

Quick start

Use the deliver_documentwar file

Copy deliver_documentwar to the webapps directory of your Tomcat server

Note

bull deliver_documentwar may work with other servers It has been tested on Tomcat bull For best results use a clean copy of Tomcat with no other Web applications installed

Customize sample application

1 Edit the webWEB-INFdeliver-documentproperties file Replace compbsamplessoapurl with the server URL The Web application may be run from any server

2 Build the package with mvn clean package See httpsmavenapacheorgguidesintroductionintroduction-to-the-lifecyclehtml for more information about using Maven A deployable WAR file will be located targetdeliver_documentwar

3 Copy the WAR file to the webapps directory of the Tomcat server

Run sample application

1 Restart the Tomcat server Access the sample application httplthostname8080gtdeliver-documentLoginxhtml

bull Change lthostname8080gt above to match the correct hostname bull The Settings page displays

2 If appropriate choose a theme 3 Log in to the application

The sample application is ready to be used

Notes

bull You may set the property compbsamplessoapurl as a JVM property (-D) to override the server location

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 34

Integrating with EngageOne SOAP

bull This sample application reference shows how to use EngageOne services in a modern application environment Improvements can be made in the area of session management security etc Please follow your own best practices

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 35

Integrating with EngageOne SOAP

OnDemand Document Delivery

The most common goal for this use case is to create a single communication from a template This is illustrated by walking through an example for generating a PDF

At the highest level the steps are load a template load a delivery option deliver the document

At a slightly lower level the programmer will need to manage

bull Authentication for all calls bull Manipulation of the template files on disk bull A mechanism for the customization of a template into a document bull Any post-delivery activities (for example saving a delivered PDF to disk)

Before a document can be delivered the following must exist a domain a template and a delivery option

Note These prerequisites are not covered in the sample application

Ways to authenticate

There are two ways to authenticate

WS-Security

The recommended authentication method This type of authentication is implemented in all EngageOne Server SOAP services at the userid and password level

Legacy AuthContext

This authentication method has been deprecated

For details on authentication see User authentication

Typically a template will be retrieved for instantiation via the templateServicesearchTemplates call This object contains the files for a communication based on that template All data will necessarily be empty or set to defaults

Data entry in a communication can be customized in many ways

For the included sample application the files are saved to disk and a user is instructed to edit them manually Then the files are loaded (in this example from disk) into the Template field of a DeliverDocument object

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 36

Integrating with EngageOne SOAP

While it is not feasible to reproduce all relevant code from the sample project in this document what follows is a short excerpt edited for clarity It demonstrates the calls to deliver a document and save the PDF generated once the template customer data and delivery option have been prepared

response = deliverydeliverDocument(doc)getDeliveryRequest()items = responsegetDeliveryItems()getDeliveryItem()item = itemsget(0)saveFile(path item)

The DeliveryItem object passed here to saveFile will return an InputStream via getInputStream and can be saved to a file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 37

3 - XForms EngageOne defines the data model for a template using the World Wide Web Consortium (W3C) XForms standard It is intended to provide a flexible device-independent mechanism for collecting information from users in a primarily Web-based environment

In this section

About XForms 39 XForms processors 41 XFormSDI Flow 42 XForms standard files 43 Data definition type and attributes 62

XForms

About XForms

The following are primary benefits of XForm ndash for more details see wwww3orgMarkUpForms2003xforms-faqhtml

bull XForms has been designed to allow much to be checked by the browser such as types of fields being filled in that a particular field is required or that one date is later than another This reduces the need for round trips to the server or for extensive script-based solutions and improves the user experience by giving immediate feedback to what is being filled in

bull All dates in the WSDLs should be using the XML Schema date datatype which defines a standard date format YYYY-MM-DD This is not a propriety implementation For more information you can refer to the specification at wwww3orgTRxmlschema-2date

bull XForms is properly integrated into XML it is in XML the data it collects in the form is XML it can load external XML documents as initial data and can submit the results as XML Including the user in the XML pipeline means you can have end-to-end XML right up to the users desktop

bull XForms uses a number of existing XML technologies such as XPath for addressing and calculating values and XML Schema for defining data types This has a dual benefit ease of learning for people who already know these technologies and the ability for implementation to use off-the-shelf components to build their systems

bull The same form can be delivered without change to a traditional browser a PDA a mobile phone a voice browser and even Instant Messenger This greatly eases providing forms to a wide audience since forms only need to be authored once

bull It is much easier for the author to create complicated adaptive forms without having to resort to scripting because XForms uses declarative markup to declare properties of values and to build relationships between values

bull XForms has been designed so that it will work equally well with accessible technologies as with traditional visual browsers

XForms greatly improves on the HTML form approach by separating the purpose from the presentation specifically what the form does and how it looks It achieves this separation of concerns by adopting the Model-View-Controller (MVC) pattern

The data to be collected by the form is known as instance data and the XForms model describes the structure of the instance data in addition to constraints on that data and submissions Document navigation workflow auto-fill and pre-fill form applications are supported through the use of instance data The view of the XForm describes the controls to be used and which items of data they are bound to The controller is the XForms processor in use which coordinates events in the system

The fragment below is an XForm page which demonstrates these different entities

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 39

XForms

The instance element serves as a container for the initial instance data These are the fields which the form controls will be bound to When the form is first displayed the values in this XML will be presented as the default values When the form is submitted this XML structure will be updated to contain the new values supplied by the user and the XML posted or otherwise handled accordingly

As an alternative to embedding the instance XML directly into the XForm file the instance element may simply refer to an external XML file using the src attribute XForms originating in EngageOne always point to an external instance XML file

The model element contains bind elements which define constraints on mappings to the instance data and a submission element which defines the action that will be taken when the form is submitted by the user

The presentation elements within the XForm page body contain the controls each of which possess references to the instance data

For more information on XForm technology see the W3C XForm wiki page httpwwww3orgMarkUpFormswiki The XForm Institute also provides an online book containing a comprehensive discussion of this technology at httpxformsinstitutecomessentialsbrowseindexphp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 40

XForms

XForms processors

To integrate with XForms you need to choose an appropriate XForms processor for your application Here is a short list of XForms processors both free and commercial that you may wish to investigate Please refer to their respective sites for specific installation and integration instructions

Orbeon Forms Orbeon Forms (formerly Orbeon Presentation Server (OPS)) is an open source forms solution that handles the complexity of forms typical of the enterprise or government It is brought to standard Web browsers (including Internet Explorer Firefox Safari and Opera) via the Ajax technology with no need for client-side software or plug-ins Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation optional and repeated sections always up-to-date error summaries PDF output full internationalization and controls like auto-completion tabs dialogs trees and menus Orbeon Forms already supports part of the XForms 11 specification

Jadu XForms allows you create accessible and XML enabled online forms for integration with payment and CRM systems

Open Office XForms is integrated in Open Office

Libre Office XForms is integrated in Libre Office

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 41

XForms

XFormSDI Flow

KEYFIELD NON-KEYFIELD

visible visible 1stXForm 2nd XForm

F F F F SDI is invoked then editor displays

F T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

T F T F User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then editor displays

T T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

Rules

1 If any visible fields then display 1st Xform with any keyfields displayed (even if there are no visible keyfields) 2 SDI is always invoked 3 If any visible non-key fields then display 2nd XForm

Data push rules

1 If SDI has not been invoked on a work item created via DP (ie status = Active New) then SDI processing must occur

2 If all key fields are populated via DP then skip 1st Xform (overrides rule 1 above)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 42

XForms

XForms standard files

The XForms standard main components are the files used by the Interactive Editor to drive all user interactions These include an XHTML presentation file XML instance file and an XSD schema definition file These files are used by the Interactive Editor to drive all user interactions and can be used for integration purposes to collect system data from a front-end business system The XForms files can also be opened by a standard XForms processor in order to present a more traditional Web-based eForm data capture interface as part of an application

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 43

XForms

XHTML presentation file

The XHTML presentation file contains the defined fields together with related attributes of the interactive data presented in the EngageOne Interactive Editor during document completion Since this file conforms to the W3C XHTML standard the defined data types and the available attributes are included in the XHTML standards For more information on XHTML visit the W3C Web site

The following is an example of an XHTML presentation file

lt-- XForms and Orbeon Namespaces --gt ltxhtmlhtml xmlnsxhtml=httpwwww3org1999xhtmlxmlnsev=httpwwww3org2001xml-eventsxmlnsf=httporbeonorgoxfxmlformattingxmlnswidget=httporbeonorgoxfxmlwidgetxmlnsxforms=httpwwww3org2002xformsxmlnsxs=httpwwww3org2001XMLSchemaxmlnsxxforms=httporbeonorgoxfxmlxformsgt

lt-- Header section --gt ltxhtmlheadgt ltxhtmltitlegtInteractiveDataModelltxhtmltitlegt

lt-- Xform model section --gt ltxformsmodelgt

lt-- Specifies actual instance fileReplace with actual Instance filename --gt ltxformsinstance src=57861025010e462fa5acbde4fe0ecf90xmlgt

ltndash- This specifies how the results of the form are to be submitted By default it specifies the put mechanism andthename of theinstance file as the action (target file) In addition a submit control must always be added to the view referencing the ID of thesubmission elementReplace with actual instance filename --gt ltxformssubmission action=57861025010e462fa5acbde4fe0ecf90xml id=main_submission method=putgt

lt-- Bind section These bind the interactive data definition to a set of attributes --gt ltxformsbind nodeset=InteractiveDataModelPublicationCustomerName

readonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerAddressreadonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerCity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 44

XForms

readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerStatereadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerZip readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationPolicyNumberreadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationClaimantNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceSourcereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceDatereadonly=false() required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationPhysicialNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationServiceDatereadonly=false()required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentNamereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentTitlereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationRecipientreadonly=true() required=false() type=xsstringgt

ltxformsbind

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 45

XForms

nodeset=InteractiveDataModelPublicationDeliveryInformationEmailToAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailFromAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailSubjectreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailBodyreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationFaxNumberreadonly=false() required=false() type=xsstringgt

ltxformsmodelgtltxhtmlheadgt

lt-- XForms View section(XHTML body) --gt ltxhtmlbodygt

ltndash- User interface control for the Interactive Data Definition in the

Model section ndash-gt span style=displaynonegt

ltndash- User interface control for the Interactive Data Definition in the Model section ndash-gt

ltxformsinput ref=InteractiveDataModelPublicationCustomerNamegtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangt

ltndash- Separates controls in XForms browsers or processors for layout purposesndash-gtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegt

ltxformsinput ref=InteractiveDataModelPublicationCustomerAddressgt

ltxformslabelgtltxformslabelgtlt xformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 46

XForms

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerCitygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerStategtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegtltndash- May contain the followingsections Input ndash choice validation is not specified it is only applied to FieldGroup Field and Delivery Information

Select1 ndash used for Single Selection attribute for the specifieddefinition

Select ndash used for Multi-Selection attribute for the specified Definition ndash-gt

ltxformsinputref=InteractiveDataModelPublicationCustomerZipgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPolicyNumbergt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationClaimantNamegt

ltxformslabelgtSelect the claimantltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 47

XForms

ltxformslabelgtFredltxformslabelgtltxformsvaluegtFredltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMarthaltxformslabelgtltxformsvaluegtMarthaltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTylerltxformslabelgtltxformsvaluegtTylerltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtWilmaltxformslabelgtltxformsvaluegtWilmaltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationCorrespondenceSourcegtltxformslabelgtSelect the correspondence sourceltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt ltxformslabelgtEmailltxformslabelgtltxformsvaluegtEmailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtFaxltxformslabelgtltxformsvaluegtFaxltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMailltxformslabelgtltxformsvaluegtMailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTelephoneltxformslabelgtltxformsvaluegtTelephoneltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondenceDategtltxformslabelgtSelect the correspondence dateltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 48

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPhysicialNamegtltxformslabelgtType the physician nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationServiceDategtltxformslabelgtSelect the date of serviceltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentNamegtltxformslabelgtType your nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentTitlegtltxformslabelgtType your titleltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationRecipientgtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailToAddressgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 49

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailFromAddressgt ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailSubjectgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailBodygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationFaxNumbergtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltxformssubmit submission=main_submissiongt ltxformslabelgtSubmitltxformslabelgtltxformssubmitgt

lt-- This specifies the submit control for the XForms --gt ltxhtmlbodygtltxhtmlhtmlgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 50

XForms

XML instance file

The XML file is referred to as the instance file because it contains the instance node of the XForms file This file contains the values for the definitions (fields repeating group fields group fields and IDE group fields) ndash see Data definition type and attributes on page 62 This file may initially contain only empty elements for each of the defined fields since values are only written if default values have been specified in the Interactive Data Editor After an eForm has been completed or the Interactive Editor has been used the values the user supplied for each field will be saved to the instance file (Note freeform text is stored in the pub and hip files not the instance file) Since this file conforms to the W3C XML standard the defined data types and the available attributes are included in the XML standards For more information on XML visit the W3C Web site

ltndash- This specifies the IDD title version number of schemaused Namespaces actual Schema fileReplace with actual Schema filename--gt ltxml version=10 encoding=UTF-8 standalone=yes gt- ltInteractiveDataModel xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=57861025010e462fa5acbde4fe0ecf90xsdgt

ltndash- Publication --gt - ltPublicationgt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt ltCustomerNamegtFred JonesltCustomerNamegtltCustomerAddressgt123 High StreetltCustomerAddressgtltCustomerCitygtBelguimltCustomerCitygtltCustomerStategtWIltCustomerStategtltCustomerZipgt53021ltCustomerZipgtltPolicyNumbergt254320982ltPolicyNumbergtltClaimantNamegtFredltClaimantNamegtltCorrespondenceSourcegtFaxltCorrespondenceSourcegtltCorrespondenceDategt2007-12-22ltCorrespondenceDategtltPhysicialNamegtDr JamesltPhysicialNamegtltServiceDategt2007-12-02ltServiceDategtltCorrespondentNamegtyour nameltCorrespondentNamegtltCorrespondentTitlegtyour titleltCorrespondentTitlegt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt -ltDeliveryInformationgtltRecipient gtltEmailToAddress gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 51

XForms

ltEmailFromAddress gtltEmailSubject gtltEmailBody gtltFaxNumber gt

ltDeliveryInformationgtltg1private gtltPublicationgtltInteractiveDataModelgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 52

XForms

XML schema file for the interactive data model

The XML schema definition or XSD describes the format of the XML document containing the data This is the file used to generate the Data Format and allows the final document to be generated from the updated instance file The XSD is also a W3C standard For more information on XML schema files visit the W3C Web site

The following is an example of an XML schema definition file

lt-- Namespace and version number of schema and default namespaces --gt ltxml version=10 encoding=UTF-8 standalone=yes gtltxsschema xmlnsxs=httpwwww3org2001XMLSchemaelementFormDefault=qualifiedxmlnsg1=httpwwwg1comOCMSchemagt

lt-- Interactive Data Model --gt lt-- Interactive Data Definition in Schema element format --gt ltxselement name=InteractiveDataModelgt ltxscomplexTypegtltxssequencegtltxselement name=Publicationgt ltxscomplexTypegt

ltxssequencegtltxselement g1keyfield=true g1sysdata=true

g1visible=false minOccurs=0 name=CustomerNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerAddressgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerCitygt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerStategt

ltxssimpleTypegtltxsrestriction base=xsstringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 53

XForms

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerZipgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=PolicyNumbergt

ltxssimpleTypegt

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ClaimantNamegtltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Fredgtltxsenumeration value=Martha ltxsenumeration value=Tylergtltxsenumeration value=Wilmagtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=CorrespondenceSourcegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Emailgtltxsenumeration value=Faxgtltxsenumeration value=Mailgtltxsenumeration value=Telephonegtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondenceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=PhysicialNamegt

ltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 54

XForms

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ServiceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentTitlegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement minOccurs=0 name=DeliveryInformationgtltxscomplexTypegtltxssequence maxOccurs=1gtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=Recipientgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailToAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailFromAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailSubjectgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 55

XForms

ltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailBodygtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=FaxNumbergt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxssequencegt

ltxsattribute name=Delivery use=optionalgtltxscomplexTypegtltxselementgtltxselement name=g1privategtltxssequencegt

ltxsattribute name=DOC1TREATASSOP type=xsboolean use=optionalgtltxscomplexTypegtltxselementgtltxssequencegtltxscomplexTypegtltxselementgtltxsschemagt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 56

XForms

XML schema file for the non-interactive Designer data model

XML schema file for the non-interactive Designer data model

The Designer file formats supported are

bull Keyed Record bull CSV Data Format bull Custom XML

Keyed Record

EngageOnerequires that Designer provides data format information when publishing a template where the publication implements a keyed record data format A data model file in the form of an XML structure is published with this type of publication along with the XML schema for the data model XML

For Example consider the following keyed record data block

CUSTOMER01001012831MrJohn Lawrence Lawrence 311Bellview Drive Gloucester VA 23061 VAMLIEPO CUSTOMER0207021999080119990831199909031999000178750000000000017875000000 0000020845 MOBILE0100009900000011210000000000011021 LONGDIST0100000495000003500000398400004829 INTERNET0100000000000049950000000000004995NADSL 384k 128k SUMMEND DETAIL00Mobile Service DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000 DETAIL00Long Distance ServiceDETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000

TheXML structure is generated by Designer to represent this data model Note the XML in this example is not complete

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegt

ltSource createdBy=DOC1Data Format Editor version=11date=2011-04-28gt

ltSchemaDefgt ltFileInfogt ltFileFormatgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 57

XForms

ltFixedWidthgt ltRecordDelimitergtCR+LFltRecordDelimitergt

ltFixedWidthgtltFileFormatgtltDefaultHandlinggtltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggtltFileInfogtltDataHierarchygtltRecordKeykey=MOBILE01gt

SVD data is represented by the ltFixedWidthgt tag in above XML structure

CSV Data Format

EngageOne will require that Designer provides data format information when publishing a template where the publication implements a CSV data format The following approach would address the requirements for EngageOne with regard to this format

A data model file in the form of an XML structure would be published with this type of publication along with the XML schema for the data model XML

For example consider the following CSV data block

Key Name Address Zip DRAmountRemarks001Smith101 Princes StreetED1 4DH DR8901Cash charges apply

001 Manish102 Princes StreetWD17 1UE CR5000Transport charges

Thefollowing XML structure would be generated by Designer to represent this data model

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltSource createdBy=DOC1Data Format Editor version=11date=2011-03-25gtltSchemaDefgt ltFileInfogt

ltFileFormatgt ltDelimitedgt ltFieldDelimitergtltFieldDelimitergtltQuotegtltQuotegtltFirstRowHeadingsgttrueltFirstRowHeadingsgtltRecordDelimitergtCR+LFltRecordDelimitergt

ltDelimitedgtltFileFormatgtltDefaultHandlinggt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 58

XForms

ltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggt

ltFileInfogtltDataHierarchygtltRecordKeykey=001gt

ltDataHierarchygtltDataStructuregt ltRecordkey=Key descr= hideRecord=true repeatType=Group

maxOccurs=0 minOccurs=0gt ltField name=Key Definition Field import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt07D6A8A528A9964C8E6E9F9075F5649CltFieldKeygt

ltFieldgtltField name= Name import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt0974502326B53548A3BE1BA86E85735BltFieldKeygt

ltFieldgtltField name= Address import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt8B33038F15BB5345B82D8148C562C27DltFieldKeygt

ltFieldgtltField name= Zip import=true required=truegtltStringgt

ltStrLengthgt0ltStrLengthgtltStringgtltFieldKeygt9D0E2B9C4C95F948B7BB829C7A91039FltFieldKeygt

ltFieldgtltField name= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt68AED90F9271A3448AA932EF84B42B59ltFieldKeygt

ltFieldgtltField name= Amount import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtF57F5D798949A54D929E796225CD726EltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 59

XForms

ltStrLengthgt8ltStrLengthgtltStringgtltFieldKeygtEBCC0E4E8CCD9347948694BC21C5A248ltFieldKeygt

ltFieldgtltRecordgt

ltRecordkey=001 descr=KeygtltFieldiskey=true name=Key Definition Field import=true

required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt7C8C32E0EC913D41A608D56E24443B82ltFieldKeygt

ltFieldgtltFieldname= Name import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtC246A928E5A4FF4D966541199954779FltFieldKeygt

ltFieldgtltFieldname= Address import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt15B78234DB357343BB72751CC638A5F3ltFieldKeygt

ltFieldgtltFieldname= Zip import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtE7E1245888D5E54794F9B8C6FE12B131ltFieldKeygt

ltFieldgtltFieldname= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt964879FB55944D40BD3E22568350333AltFieldKeygt

ltFieldgtltFieldname= Amount import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt4975636D567F594A88AEF96EDEE1C538ltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgtltStrLengthgt21ltStrLengthgt

ltStringgtltFieldKeygt2D2B4AB6EFFF1D42B66EB63FB3BAED04ltFieldKeygt

ltFieldgtltRecordgtltDataStructuregt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 60

XForms

ltSchemaDefgtltFileDescriptiongt

SVD data is represented by the ltDelimitedgt tag in this XML structure

Custom XML

Designer generates an XML schema that represents the custom XML structure that you may create

for any given publication EngageOne supports the custom XML data model by having access to this

XML schema file When Designer publishes a template for EngageOne the following files appear in

the archive file

template_masterxml includes a SCHEMA tag in ltSubfilesgt and there will be no DATAMODEL

tag

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modelxsdltFilegtltSubfilesgt

In Designer user can create custom xml sample data using

bull XSD schema file bull DTD schema file

Depending on the schema file the SCHEMA entry in template_masterxml will change For XSD ltSubfilesgt will be as above for SCHEMA tag For DTD schema ltSubfilesgt will be

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modeldtdltFilegtltSubfilesgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 61

XForms

Data definition type and attributes

The EngageOne XForms data definition types and attributes follow the standard XForms specifications Below is a diagram of the structure of the data definition node types

The configurable attributes available are listed below

This attribute specifies the name of the interactive data element Naming conventions follow XML standards They can only contain alphanumeric characters and underscores and must start with a letter

Name

This attribute specifies the data type of the value of the interactive data

Type

This attribute specifies the initial value

This value is set directly in the XForms Instance (XML) as the inner node value

Default Value

This text appears in both the Interactive Editor and on a traditional eForm to tell the user what to enter

The Prompt value is set in the XForms View (XHTML body node) using the label node

Prompt

This attribute is used to provide an extended message or explanation of the Prompt attribute

Help Text

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 62

XForms

This attribute marks the interactive field for compulsory completion When filling out a template a value must be provided for this field in order to progress to the next interactive field or generate the document

This is set in XForms Model using the required attribute of the bind node

This dictates whether the field value is user changeable or not This property is frequently set for definitions requiring system-supplied data from mainline business systems

This is set in XHTML using the read-only attribute of the bind node

This specifies whether the interactive field for the definition should be displayed on the form The Visible property only impacts the display of an interactive field on a traditional eForm presentation All fields needed to complete a document or used in document are always prompted for in the Interactive Editor unless they are defined in the document as read-only

This property value is set in the XSD schema file using g1visible attribute of the element node

The System Data attribute identifies elements whose values are expected to be supplied by system data integration with the front end business system

This flag is set in the XSD schema using the g1sysdata attribute of the element node

The xml structure of supplied system data should be the same as the xml structure of the answer file Thus repeating groups of answer file-like XML structure should be put in under the system data tag For a sample system data xml structure see XML instance file on page 51

The Key Field denotes whether a definition is the unique identifier for the template or not This attribute is used by EngageOne to order and manage the template instances

Key fields are also used by the system data integration program to identify the correct data to collect

This flag is set in the XSD schema file using the g1keyfield attribute of the element node

Mandatory

Read-Only

Visible

System Data

Key Field

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 63

XForms

Expression Validation

Max Length Validation

This property defines input value constraints to ensure valid entries are accepted for the definition during data capture

These rules are set in the XForms Model using the constraint attribute of the bind node

In the XSD schema file they are set using the value attribute of minInclusivemaxInclusive minExclusive or maxExclusive node

This attribute specifies the maximum number of characters a user may input for a string-type field

The value is set in the XForms View (XHTML body node) using the maxlength attribute of the input node In the XSD schema file it is set using the value attribute of the maxLength node

For more information on how these fields are populated and used during data integration see System Data Integration on page 65

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 64

4 - System Data Integration System Data Integration (SDI) enables loading system data into the EngageOne Interactive This data can be extracted from different sources

For example Web service message queues databases etc

In this section

SDI General Configuration 66 Using an XML file as a data source 67 Using the Java callback interface 68 Feature support for System Data Integration 69 Integration option 1 ndash XML data source 71 Integration option 2 ndash callback interface 75

System Data Integration

SDI General Configuration

EngageOne Interactive uses XForms to support external SDI and user prompts before the document editing session is launched in the EngageOne editor The modular design of XForms detaches the model (data rendered by the view) from viewable content This allows the SDI handler to work in isolation with the XForms model and modify it depending on the requirements

In this section two SDI methods are explained along with the features provided by the EngageOne system to support System Data Integration

This section assumes that the integration programmer has XForm knowledge and experience

EngageOne Interactive provides two methods for integrating documents with external system data

bull An XML data source (for demonstration and proof of concept purposes only) which the application reads and parses to identify and load data to a target document

For more information see Using an XML file as a data source

bull A Java callback interface invoked during the System Data Integration process

See Using the Java callback interface on page 68

EngageOne provides a generic XForm (included in the document subfiles) This XForm can be used with both integration methods to allow user interaction with the system by providing inputs that control loading of system data into the document

SDI configuration is controlled by settings in deploylocalproperties When the path to sysdataxml is missing (default setting) the system bypasses the SDI call and uses the answer file in the template When the path is defined the SDI call is made to sysdataxml If the path to sysdataxml is specified but the system cannot find the file an error message displays

If the path to sysdataxml is not specified but a custom class is specified the custom SDI class will be used If both the path to the default XML and the custom SDI class are specified the custom class is used

Note This method is provided for demonstration and proof of concept It is not intended for production purposes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 66

System Data Integration

Using an XML file as a data source

This method is provided for demonstration and proof of concept It is not intended for production purposes

An external XML data file sysdataxml contains system data needed to populate a documentrsquos sysdata fields By default System Data Integration is not enabled To enable sysdataxml set the location in deploylocalproperties

The system data loading process occurs during document creation An XForm is displayed once SysdataAction detects there is a keyfield referenced in its schema definition The XForm prompts the user to provide input which serves as the key to retrieve the corresponding line item from the XML data

XML data source diagram

This is illustrated in the following diagram

The user submits the input form and SysdataAction (action controller) attempts to load the SystemDataLoader specified in systemdataproperties The system data loader class is empty by default allowing the default SystemDataLoader class implementation (XMLSystemDataLoader)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 67

System Data Integration

XMLSystemDataLoader tasks

XMLSystemDataLoader performs the following tasks to render the XForm page that will be sent to the user

bull Loads the system data XML from the location specified in systemdataproperties

bull Parses the system data XML bull Transfers the selected line item to the document answer XML file bull Returns the modified document subfiles back to the SysdataAction class

The XForms page shows the system data input fields populated with data from the system data XML

You can also use the Visible attribute for fields to display in the XForm after system data loading has completed The Visible attribute is configured by the template designer in Designer by enabling the schema definition (set to True)

Using the Java callback interface

The second option incorporating System Data Integration is via a Java callback interface During System Data Integration you can configure the EngageOne Interactive application to invoke a custom implementation This implements a callback interface (system data loader) and allows access to references of document subfiles

The XMLSystemDataLoader (default system data loader) implements the system data loader interface The default system data loader will be replaced by your custom system data loader One system data loader can be plugged into the application at a time

Note Multiple system data loaders can be used in the application employing various object oriented patterns

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 68

System Data Integration

Java callback interface process flow

The process flow and interaction discussed in the previous section Using an XML file as a data source applies to the process flow implemented with a custom system data loader

The process starts when EngageOne Interactive detects that a document has keyfields EngageOne Interactive will delegate SysdataAction to retrieve and collate the document subfiles and wrap them in an XFormsContext object SysdataAction will invoke the custom system data loader class and pass the XFormsContext object The XForms page will be rendered and which will contain the modifications in the document subfiles

When implementing System Data Integration be aware that document subfiles should be retrieved from the document repository via Web services to incorporate your System Data Integration requirements

Feature support for System Data Integration

EngageOne provides custom XML attributes for defining the document schema subfile (XSD)

These attributes are available through the following namespace httpwwwg1comOCMSchema

Each custom attribute is attached to the element definition on the schema subfile

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

Where

bull visible ndash XForm user interface element which references this node This should be visible when the XForms page is rendered

bull keyfield ndash Instance data value that should be used as a look-up field for retrieving external system data The corresponding user interface element should be visible if data will be provided by the user

bull sysdata ndash Instance data value should be populated with external system data look-up results

There are attributes in the XForms subfile that work with the custom attributes defined for System Data Integration

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 69

System Data Integration

XForms model example

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

In this example

bull required attribute - Required instance data value Should contain a value bull read only attribute - Read only attribute Should not change its value The XForms user interface element which references this node is rendered as a non-editable form element

Note When implementing the system data loader where you need to modify the XForms page ensure that the attribute values are properly set

It is important that the above attributes are set with appropriate values so the XForms page will render properly

The values of those attributes are set visually in the document templates

For more information see Designing the template for System Data Integration on page 71

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 70

System Data Integration

Integration option 1 ndash XML data source

Loading the data from an XML data source is the default mode when performing System DataIntegration

Enabling the default system data loader

Note On a fresh system install this is the default configuration for EngageOne Interactive This step is necessary only overriding this setting

For example you develop a custom system data loader and plug it in to the application

To enable the default system data loader

In EngageOne Interactive modify the system data configuration settings deploylocalproperties

This involves

1 Set the sdicallbackclassname to blank 2 Set the sdicallbackjarpath to blank

Designing the template for System Data Integration

In Designer the Interactive Data Editor allows configuring the XForms page for System DataIntegration This process works with XForms and custom schema attributes

Following are some processes showing variations on configuring the system data attributes of your template

For more information about designing templates for EngageOne see the Designer Userrsquos Guide

Configure system data load with a user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Disable the read-only attribute in the XForms design page for user interaction fields

The required attribute can be enabled for users to provide data before document authoring This is for fields not populated with system data

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 71

System Data Integration

Configure system data load with the user confirmation page read-only

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Enable the read-only attribute in the XForms design page for user interaction fields

Configure system data load without the user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Disable the visible attribute for fields the user will interact with

This loads system data to the answer XML file and launches EngageOne editor with the document displayed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 72

System Data Integration

Preparing the system data XML

In order for system data to be loaded by EngageOne Interactive your system must create the sysdataxml file

The following schema constraints are enforced for sysdataxml

ltxselement name=system-datagtltxscomplexTypegt

ltxssequencegt answer XML file schema constraint applies hereltxssequencegt

ltxscomplexTypegtltxselementgt

bull The sysdataxml file must be enclosed by a system data element bull There should be a list of XML nodes in the system data element

These nodes will refer to a system data line item which has the same format as the answer XML file and complies with the schema defined for the answer XML file

Example XML answer file

The following example illustrates a defined answer XML file followed by a corresponding system data XML

Defined answer XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=d3dc1f5adc034110914418efcb2bcb07xsdgt

ltPublicationgt ltAccountNamegtltAccountNamegtltAccountNumbergtltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtltBillingAddressgt

ltg1private gtltPublicationgt

System data XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltsystem-datagt

ltInteractiveDataModelgt ltPublicationgt

ltAccountNamegtJohn XltAccountNamegtltAccountNumbergtEA343ADF-DDltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtJohn X ResidencesltBillingAddress

ltPublicationgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 73

System Data Integration

ltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn YltAccountNamegtltAccountNumbergtY1343ADF-YYltAccountNumbergtltDateCreatedgt2008-11-08ltDateCreatedgtltBillingAddressgtltBillingAddress

ltPublicationgtltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn ZltAccountNamegtltAccountNumbergtZ04A3ADF-ZZltAccountNumbergtltDateCreatedgt2008-10-11ltDateCreatedgt

ltPublicationgtltInteractiveDataModelgt

lt-- more system data line item can be appended here --gt ltsystem-datagt

InteractiveDataModel element

The InteractiveDataModel element represents a single data line item where each line should have the same XML structure as its answer file

The g1private element is not present in any line item in the system data XML Any nodes under g1private are used for EngageOne internal processing If appropriate nodes can be excluded from a line item

For example BillingAddress is not included in the line item John Z

EngageOne Interactive transfers a selected line item from the system data file to the answer file Missing information line item information will be skipped during transfer

EngageOne Interactive uses the schema definition to determine which elements are key and sysdata fields

For each sysdata element the element should be populated with system data

Loading the system data XML

Plug in the system data XML to EngageOne Interactive

1 Modify the system data configuration settings in deploylocalproperties 2 Modify the sdisysdatapath property and set it to the absolute path of the system data

XML file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 74

System Data Integration

Integration option 2 ndash callback interface

Configure EngageOne Interactive to use a custom system data loader implementation

Configure EngageOne Interactive to use a custom system data loader implementation

1 Create the custom system data loader implementation 2 Compile and package the custom system data loader implementation class to a JAR file 3 Configure EngageOne Interactive system data settings to load and invoke the custom system

data loader class

Implement a custom system data loader

To implement a custom system data loader

Steps

1 Create a custom system data loader class which implements the compbocmclientxformSystemDataLoader Java interface This must be plugged into EngageOne Interactive at runtime The System Data Integration API classes are bundled in sdi-client-apijar located in the samples folder of the EngageOne distribution folder This houses the main interface of the System Data Integration that the custom system data loader class needs to implement

For example

public interface SystemDataLoader

Loads system data into the given XML document param xmlDocument the given XML document param context throws Exception if an error occurs while loading system

data void loadSystemData(XFormsContext context) throws Exception

2 Import the project classpath to reference the System Data Integration API classes When packaging the custom system data loader you may not need to put the sdi-client-apijar

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 75

System Data Integration

file on the project classpath as those classes are available in the EngageOne Interactive Web application archive The following guidelines must be observed when developing a custom system data loader

bull Create the custom system data loader implementation bull The custom system data loader should implement the compbocmclientxformSystemDataLoader interface

bull An XFormsContext object is passed to the custom system data loader when invoked during System Data Integration The object provides access to the document subfiles answer file XForm file and answer file schema file

bull If an XForms file is altered it should conform to the W3C XForms 11 standard

If an answer XML file is altered it should conform to its XML schema file

Any structural change in the answer XML file should be cascaded to its XML schema file When loading EngageOne Editor validates the answer XML using the XML schema

bull Do not change the g1private XML element in the answer XML file or the corresponding constraint in the XML schema

Notes

bull Altering custom EngageOne XForms attributes will affect how the XForms page is rendered in EngageOne Interactive Incorrect settings might cause the page to be incorrectly displayed or lead to loss of data

bull Set keyfields to visible bull System data can be set to visible or non-visible bull It is recommended that Required fields in the XForms file be set to visible bull It is recommended that you do not amend a field marked as System data before invoking the custom system data loader

bull Any change made to document subfiles cannot be reversed bull Do not change XML namespaces in document subfiles bull Removal of existing XML elements from document subfiles is not allowed bull Any other changes can be made to document subfiles except for the constraints mentioned above

For example you can add XForms UI elements XML data in the answer XML file as well as make schema and XForms constraint modifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 76

System Data Integration

Custom system data loader

Following is a sample custom system data loader This adds a visible input element in the document

These changes include

bull Addition of schema definition in the XML schema file bull Addition of XForms mapping in the XForms file bull Addition of XML nodes in the answer XML file which maps to the XForms element

Custom data loader interface

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception loadToSchema(context)loadToView(context) loadToInstance(context)

private void loadToSchema(XFormsContext context) throws Exception private void loadToView(XFormsContext context) throws XMLStreamException

FactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException private void loadToInstance(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException public void loadSystemDataWithXpath(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException JaxenException SAXException IOExceptionParserConfigurationException TransformerFactoryConfigurationErrorTransformerException

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 77

System Data Integration

loadToSchema function

private void loadToSchema(XFormsContext context) throws Exception add simple element to schema XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetSchemaAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement schema

= buildergetDocumentElement() OMElement root = schemagetFirstElement() OMElement complexType = rootgetFirstChildWithName(new QName(httpwwww3org2001XMLSchema complexType)) QNamesequenceIndicator = new QName(httpwwww3org2001XMLSchemasequence) OMElement complexTypeChild = complexTypegetFirstChildWithName(sequenceIndicator) if(complexTypeChild == null) QName allIndicator = new QName(httpwwww3org2001XMLSchema

all) complexTypeChild = complexTypegetFirstChildWithName(allIndicator) OMFactory factory = OMAbstractFactorygetOMFactory() OMNamespace

xmlSchemaNamespace = factorycreateOMNamespace(httpwwww3org2001XMLSchemaxs)OMNamespace group1Namespace =

factorycreateOMNamespace(httpwwwg1comOCMSchema g1)

OMElement comment = factorycreateOMElement(elementxmlSchemaNamespace complexTypeChild) commentaddAttribute(visibletrue group1Namespace)commentaddAttribute(minOccurs 0 null)

commentaddAttribute(name Comment null)OMElement simpleType = factorycreateOMElement(simpleType

xmlSchemaNamespace comment) OMElement restriction = factorycreateOMElement(restriction xmlSchemaNamespace simpleType)restrictionaddAttribute(base xsstring null)

ByteArrayOutputStream bos = new ByteArrayOutputStream()schemaserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)

Document newSchema = docBuilderfactorynewDocumentBuilder()parse(new ByteArrayInputStream(bostoByteArray()))

contextsetSchemaAsDocument(newSchema)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 78

System Data Integration

loadToView function

private void loadToView(XFormsContext context) throws XMLStreamExceptionFactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException

XMLStreamReader parser1 = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))StAXOMBuilder builder1 = new StAXOMBuilder(parser1) OMElement

instanceData = builder1getDocumentElement() String firstNodeName = instanceDatagetLocalName()

XMLStreamReader parser = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetXFormsViewAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement xhtml = buildergetDocumentElement()

OMFactory factory = OMAbstractFactorygetOMFactory()OMNamespace xformsNamespace =

factorycreateOMNamespace(httpwwww3org2002xforms xforms)

AXIOMXPath modelExpr = new AXIOMXPath(xformsmodel)modelExpraddNamespace(xforms httpwwww3org2002xforms)OMElement model = (OMElement) modelExprselectSingleNode(xhtml)

OMElement bind = factorycreateOMElement(bind xformsNamespacemodel) bindaddAttribute(nodeset+firstNodeName+PublicationComment null)bindaddAttribute(readonly false() null)bindaddAttribute(required false() null)

bindaddAttribute(type xsstring null)

AXIOMXPath bodyExpr = new AXIOMXPath(xhtmlbody)bodyExpraddNamespace(xhtml httpwwww3org1999xhtml) OMElementbody = (OMElement) bodyExprselectSingleNode(xhtml)

OMElement input = factorycreateOMElement(input xformsNamespacebody) inputaddAttribute(ref+firstNodeName+PublicationComment null) OMElement label = factorycreateOMElement(label xformsNamespace input)factorycreateOMText(label Comment)OMElement help = factorycreateOMElement(help xformsNamespace

input) factorycreateOMText(help Observations)

ByteArrayOutputStream bos = new ByteArrayOutputStream()xhtmlserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 79

System Data Integration

docBuilderfactorysetNamespaceAware(true)Document newView = docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))contextsetXFormsViewAsDocument(newView)

loadToInstance function

private void loadToInstance(XFormsContext context)throws XMLStreamException FactoryConfigurationError

XFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))tAXOMBuilder builder = new StAXOMBuilder(parser) OMElement

instanceData = buildergetDocumentElement() AXIOMXPath bodyExpr = new AXIOMXPath(Publication)OMElement publication = (OMElement)

bodyExprselectSingleNode(instanceData) OMFactory factory = OMAbstractFactorygetOMFactory()OMElement e = factorycreateOMElement(Comment null publication)factorycreateOMText(e contextgetTemplateName())

ByteArrayOutputStream bos = new ByteArrayOutputStream()instanceDataserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)Document newInstanceData =

docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))

contextsetInstanceAsDocument(newInstanceData)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 80

System Data Integration

Error handling

You can configure the custom system data loader to determine the required error handling scheme during system data retrieval in EngageOne Interactive

To enable this feature you must throw a SystemDataLoaderException object from the loadSystemData (XFormsContext context) implementation of the custom system data loader class

SystemDataLoaderException class ndash custom fields

The SystemDataLoaderException class has custom fields that can be set by either passing required values to the SystemDataLoaderException objects constructor or by the individual setter methods

errorcode

A string field that maps the SystemDataLoaderException object to a localized error message which will display on the XForms page

All error codes that EngageOne Interactive to use should be enumerated in the systemDataLoaderErrorCodesproperties file located in the Engage One install directory in the Interactive folder The properties file should contain the complete mapping of error codes to their corresponding message keys

A sample systemDataLoaderErrorCodesproperties file follows

local error code for system data loader exceptions

001=systemdataloaderdataNotFound 001 and 002 are 002=systemdataloaderunknown default entries 003=systemdataloaderincorrectKey004=systemdataloaderinternalError005=systemdataloaderhostUnreachable

Note any number of error codes may be mapped to the same message key Error codes must be unique

These keys are mapped to error messages that EngageOne Interactive can display on the XForms page The mapping of keys to their respective messages must be specified in the systemDataLoaderMessagesproperties file located in the Engage One install directory in the Interactive folder

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 81

System Data Integration

systemDataLoaderMessagesproperties sample

Following is a systemDataLoaderMessagesproperties resource bundle sample

-- System Data Loader custom messagessystemdataloaderdataNotFound=Data not found for the entered key Please try again

systemdataloaderunknown=Unknown error encountered during system dataretrieval Please try again

systemdataloaderincorrectKey=The entered key 0 is incorrect or missing Please try again

systemdataloaderinternalError=Error encountered during system dataretrieval Please cancel the creation of this document and contact yoursystem administrator

systemdataloaderhostUnreachable=The host of the system data isunreachable Please try again later If the problem persists pleasecontact your system administrator

Error messages can be localized and are dependent on the language settings of the Internet browser

To enable localization for the custom system data loader error messages follow the localization (L10N) standards and append the correct suffix to the resource base name (systemDataLoaderMessages)

For example

systemDataLoaderMessages_en for English

systemDataLoaderMessages_de for German

systemDataLoaderMessages_zh for Chinese etc

All resource bundles must be placed in the same directory with the base resource bundle (systemDataLoaderMessagesproperties) The default value of this field is 001 (ldquoData not found for the entered key Please try againrdquo)

params

An optional field that accepts an array of strings (casted to Object[])

The value of this field will be passed to the resource bundle handler of EngageOne Interactive to replace placeholders (0 1 etc) in error messages in the systemDataLoaderMessagesproperties file This field will be ignored if the errorCode field of the SystemDataLoaderException object points to an error message that does not contain placeholders The default value of this field is null

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 82

System Data Integration

result

An enum field that determines the page EngageOne Interactive will load if a SystemDataLoaderException is thrown during system data retrieval

It has two values

bull SystemDataLoaderResultDEFAULT ndash forces EngageOne Interactive to ignore the caught error and allow the user to manually input data to the user prompt fields The error message (specified by the errorCode field) will not be visible on the XForms page

bull SystemDataLoaderResultREPROMPT ndash forces EngageOne Interactive to allow the user to re-enter key field data and retrieve system data The error message (specified by the errorCode field) will display on top of the XForms page

The default value of this field is SystemDataLoaderResultDEFAULT

message and cause

message (String) and cause (Throwable)

Implicit fields that can be set by including any or both constructor arguments of the SystemDataLoaderException object These fields are inherited from the of SystemDataLoaderException parent class If these are set the stack trace of the wrapped Throwable or the value of the given message will be logged on the application server logs

SystemDataLoaderException constructor signature

The following is a complete list of constructor signatures of the SystemDataLoaderException

Note the errorCode params and result fields can be set via their setter methods

SystemDataLoaderException constructor signatures

public SystemDataLoaderException()public SystemDataLoaderException(Throwable cause) publicSystemDataLoaderException(String errorCode)public SystemDataLoaderException(String errorCode Object[] params)public SystemDataLoaderException(SystemDataLoaderResult result)public SystemDataLoaderException(String errorCodeSystemDataLoaderResultsystemDataLoaderResultresult)public SystemDataLoaderException(String errorCode Object[] paramsSystemDataLoaderResult result) public SystemDataLoaderException(Stringmessage String errorCode SystemDataLoaderResult result) publicSystemDataLoaderException(String message String errorCode Object[]params SystemDataLoaderResult result)public SystemDataLoaderException(String message String errorCode)public SystemDataLoaderException(String message String errorCodeObject[] params) public SystemDataLoaderException(Throwable cause StringerrorCode)public SystemDataLoaderException(Throwable cause String errorCode

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 83

System Data Integration

Object[] params)public SystemDataLoaderException(Throwable cause String errorCodeSystemDataLoaderResult result) public SystemDataLoaderException(Throwablecause String errorCode Object[] params SystemDataLoaderResult result)public SystemDataLoaderException(String message Throwable cause StringerrorCode)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params) public SystemDataLoaderException(Stringmessage Throwable cause String errorCode SystemDataLoaderResultresult)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params SystemDataLoaderResult result)

Sample implementation

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception try

your custom code which loads the system data to the XForm files goes here You will need to use XFormsContext object to retrieve the XForm files rendered in the EngageOne Interactive application Depending on your implementation you may need to modify the XForm schema instance XML file as necessary

catch (Exception e) wrap all Exceptions encountered to a SystemDataLoaderException

SystemDataLoaderException exception = new SystemDataLoaderException(e)

if (e instanceof RemoteException) set the error code exceptionsetErrorCode(110)

set the error message parameters if applicable exceptionsetParams(new String[]contextgetTemplateName())

set the result action exceptionsetResult(SystemDataLoaderResultREPROMPT)

else simply set the result action since the error messages wont be

displayed exceptionsetResult(SystemDataLoaderResultDEFAULT)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 84

System Data Integration

finally throw the exception throw exception

Compiling and packaging custom system data loader

Prepare the custom system data loader class to be plugged into EngageOne Interactive

1 Compile the custom system data loader implementation by including the sdi-client-apijarfile on the project classpath This file is located in the EngageOne install directory under the active-drive (content repository) config folder

2 Package the custom system data loader on the same JAR file System Data Integration API classes are included in the EngageOne Interactive Web application archive You can assemble the custom system data loader class without the sdi-client-apijar on the project classpath

Configuring EngageOne Interactive system data settings

Plug the custom system data loader into EngageOne Interactive

1 Modify the system data configuration settings deploylocalproperties located in the EngageOne install directory under the active-drive (content repository) config folder

2 Modify the sdicallbackclassname property and set it to the fully-qualified name (FQN) of the custom system data loader class For example commycompanyengageonesdiApplicationSystemDataLoader

3 Modify the sdicallbackjarpath property and set the path to the JAR file containing the custom system data loader class For example EngageOnesdicustom-sdi-10jar

This configuration setting can accept a valid Java classpath allowing multiple JAR files to be specified

Note The following rule applies when defining the value for this property

If a relative path is used the system assumes the location of the custom system data loader class is relative to the value path set in the customSdidefaultclasspath property in config-settingsxml By default this path is set to the EngageOne install directory

For example sdi-testCustomLoaderjar where sdi-test is a directory under the path specified in the property

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 85

5 - Additional features in SOAP

In this section

Trusted Connection 87 Template search 87 Write delivery information 96 Managing the work queue 99 Updating work items 102 Reassigning a work item 106 Deleting a work item 108

Additional features in SOAP

Trusted Connection

Where there is a higher level of trust between EngageOne and a custom application you can use the

trusted connection feature This method establishes an authorized session token based on the valid

userID trusted connection apli key(defined in deployproperties under key securitytrustedconnectionapikey) and domainID only meaning regular userpassword authentication is not required (as with the connect

service)

The related configuration setting is checked to determine whether this service should be made available to the system or not This is done by examine securitytrustedconnectionpassword property defined in deployproperties

Trusted connection is defaulted to off during EngageOne installation

To activate the feature securitytrustedconnectionpassword should be set

To perform trustedConnection use the SecurityService trustedConnectionLoginmethods

Template search

As the document repository increases in size retrieving all templates can consume a large amount of memory EngageOne Server provides an optimized service for searching templates based on a given criteria This service can sort and provide a subset of the search result set also known as pagination

To perform a template search against the document repository use the TemplateService searchTemplates method

Searching templates by template property

This service enables searching templates by template property (for example template name and ID) It also enables searching by template metadata attributes as well as a wildcard search

Note a wild card search can be performed only for certain search criteria fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 87

Additional features in SOAP

Create an instance of the client stub for the TemplateService then invoke the searchForTemplates service where you pass in the search criteria

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService) SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate() IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter) templatesetIdent(id)requestgetTemplates()setTemplate(template)

SearchTemplatesResponse response = templateServicesearchTemplates(request) ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 88

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Note

bull The searchTemplates service makes use of other classes

Use these classes to compose the template search criteria and pass it to the service invocation

This service returns a list of templates that match the search criteria

For example if the template search key is set to Insurance Policy Letter the result set will contain all template names containing Insurance Policy Letter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 89

Additional features in SOAP

Searching templates with sorting and pagination

Perform a template search with a sorted and paginated result set and add additional search criteria values to pass to the searchTemplates service

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate()IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter)templatesetIdent(id) requestgetTemplates()setTemplate(template)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(1)paginationsetPageSize(10)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields())SortField field = new SortField()fieldsetType(SortFieldTypeNAME)fieldsetOrder(SortOrderASCENDING)

requestsetPagination(pagination) requestsetSorting(sorting)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

The SortingControls class accepts sort fields and sort ordering values

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 90

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

reqpagination = new TemplateServicePaginationControls()reqpaginationpageNumber = 1reqpaginationpageSize = 10

reqsorting = new TemplateServiceSortingControls()reqsortingfields = new TemplateServiceSortField[1]reqsortingfields[0] = new WebServiceTest1TemplateServiceSortField()

reqsortingfields[0]type = TemplateServiceSortFieldTypeNAMEreqsortingfields[0]order = TemplateServiceSortOrderASCENDING

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Use the PaginationControls and SortingControls classes to compose a sorted and paginated template search The PaginationControls class accepts pageNumber and pageSize values which control the page size and the result retrieved by the set page snapshot

In the example above the result set is sorted by template name and displays the first ten template matches

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 91

Additional features in SOAP

Searching templates by template metadata

You can perform a metadata search to retrieve a list of metadata or document classes available in EngageOne Server This information can be presented to an end-user who can choose which metadata they want to use to perform a more detailed search

To retrieve all metadata from the server

1 Use the MetadataService searchMetadata service 2 Create an instance of the client stub for MetadataService 3 Invoke the searchMetadata method

Java sample

MetadataServiceStub metadataService = new MetadataServiceStub(URL_BASE+ MetadataService)SearchMetadata request = new SearchMetadata()requestsetFilter(SearchFilterDETAIL)

SearchMetadataResponse response = metadataServicesearchMetadata(request)ListltDocumentClassgt docClasses = responsegetDocClasses()getDocClass()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 92

Additional features in SOAP

C NET sample

MetadataServiceMetadataServiceClient metadataSvc = new MetadataServiceMetadataServiceClient(MetadataServiceSOAP)

MetadataServiceSearchMetadata req = new WebServiceTest1MetadataServiceSearchMetadata()reqfilter = CommonServicesSearchFilterDETAIL

MetadataServiceSearchMetadataResponse resp = metadataSvcsearchMetadata(req)MetadataServiceDocumentClass[] classes = respdocClasses

This service returns a list of document class objects

This service introduces some new classes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 93

Additional features in SOAP

Supported metadata field types

Currently EngageOne supports only the following metadata field data types

Data type Description

Text Alphanumeric string

Date Date

Number Numeric integral and floating

You can perform template searches using metadata

The following example illustrates how to search for all templates that belong to a particular document class with the insurance category

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetDocClasses(new SearchTemplatesDocClasses())

SearchTemplatesDocClassesDocClass docClass = new SearchTemplatesDocClassesDocClass()IntegerIdOrName id = new IntegerIdOrName()idsetName(SimpleClass) docClasssetIdent(id)

docClasssetFields(new SearchTemplatesDocClassesDocClassFields())

SearchTemplatesDocClassesDocClassFieldsField field = new SearchTemplatesDocClassesDocClassFieldsField()id = new IntegerIdOrName()idsetName(category)fieldsetIdent(id)

MetadataFieldValue value = new MetadataFieldValue()valuesetMetadataString(Insurance)fieldsetValue(value)

docClassgetFields()getField()add(field)requestgetDocClasses()setDocClass(docClass)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 94

Additional features in SOAP

C NET sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqdocClasses = new TemplateServiceSearchTemplatesDocClasses()reqdocClassesdocClass = new TemplateServiceSearchTemplatesDocClassesDocClass()reqdocClassesdocClassident = new TemplateServiceIntegerIdOrName()

reqdocClassesdocClassidentItem = Simple Class

reqdocClassesdocClassfields = new TemplateServiceSearchTemplatesDocClassesDocClassField[1]TemplateServiceSearchTemplatesDocClassesDocClassField field = new TemplateServiceSearchTemplatesDocClassesDocClassField()fieldident = new TemplateServiceIntegerIdOrName()fieldidentItem = category

fieldvalue = new WebServiceTest1TemplateServiceMetadataFieldValue()

fieldvalueItem = InsurancereqdocClassesdocClassfields[0] = fieldreqfilter = CommonServicesSearchFilterDETAILTemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 95

Additional features in SOAP

Write delivery information

Depending on the document delivery channels set up in EngageOne Administration you can configure a channel to accept data input via the document instance file

For example configure Email and Fax delivery channels to accept data input

Write delivery information process

Data inputs are written in the instance file and are identified by a set of valid XPath expressions By default EngageOne provides predefined places in the instance file where this data input or delivery information can be written

The following steps illustrate this process

Steps

1 In the example below a template instance file is defined where the XML nodes relating to the delivery information are highlighted Each node corresponds to configurable data inputs for Email and Fax delivery channels

ltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=80dacb9192c44a81937175f8ac7e0ee7xsdgtz

ltPublicationgt ltString1gtEngageOne System Test String 1ltString1gtltString2gtEngageOne System Test String 2ltString2gtltInteger1gt1ltInteger1gtltInteger2gt2ltInteger2gtltNumber1gt1ltNumber1gtltNumber2gt2ltNumber2gtltDate1gt2008-08-29ltDate1gtltDate2gt2008-08-29ltDate2gtltDeliveryInformationgt

ltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegt

ltDeliveryInformationgtltg1privategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 96

Additional features in SOAP

ltPublicationgtltInteractiveDataModelgt

The application code must parse the instance file and perform reading and writing delivery information using the XPath expression set in EngageOne Administration Delivery details (including XPath expressions) can be retrieved using the DeliveryManagementService searchDeliveryOptions method

2 Create an instance of the DeliveryManagementService client stub Then invoke searchDeliveryOptions

Java sample

DeliveryManagementServiceStub deliveryMgmtService = new DeliveryManagementServiceStub(URL_BASE + DeliveryManagementService)SearchDeliveryOptions request = new SearchDeliveryOptions()requestsetDeliveryOptions(newSearchDeliveryOptionsDeliveryOptions())requestgetDeliveryOptions()setDeliveryOption(newSearchDeliveryOptionsDeliveryOptionsDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(deliveryOptionId)requestgetDeliveryOptions()getDeliveryOption()setIdent(id)SearchDeliveryOptionsResponse response = deliveryMgmtServicesearchDeliveryOptions(request)DeliveryOption option = responsegetDeliveryOptions()getDeliveryOption()get(0)

C NET

DeliveryManagementServiceDeliveryManagementServiceClientdeliveryManagementSvc = new DeliveryManagementServiceDeliveryManagementServiceClient(DeliveryManagementServiceSOAP)

DeliveryManagementServiceSearchDeliveryOptions req = new DeliveryManagementServiceSearchDeliveryOptions()reqdeliveryOptions = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptions()reqdeliveryOptionsdeliveryOption = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptionsDeliveryOption()

reqdeliveryOptionsdeliveryOptionident = new DeliveryManagementServiceIntegerIdOrName()reqdeliveryOptionsdeliveryOptionidentItem = deliveryOptionIdDeliveryManagementServiceSearchDeliveryOptionsResponse resp = deliveryManagementSvcsearchDeliveryOptions(req)DeliveryManagementServiceDeliveryOption option = respdeliveryOptions[0]

In the sample code above the Service accepts a delivery option ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 97

Additional features in SOAP

It returns a DeliveryOption object which holds a list of DeliveryChannels that contain XPath expressions The XPath expressions parse the instance file to retrieve delivery information

3 The Document Server reads delivery information as parameters in the instance file It is important to set the delivery option as well as the delivery information appropriately as this information will be used later in the delivery process

Java sample

for (DeliveryChannel channel optiongetChannels()getChannel())

if (channelgetType()equals(DeliveryChannelTypeEMAIL)) EmailChannelDetail email =

channelgetDetail()getEmailDetail() else if (channelgetType()equals(DeliveryChannelTypeFAX))

FaxChannelDetail fax = channelgetDetail()getFaxDetail()

C NET sample

foreach (DeliveryManagementServiceDeliveryChannel channel inoptionchannels)

switch (channeltype)

case DeliveryManagementServiceDeliveryChannelTypeEMAIL

DeliveryManagementServiceEmailChannelDetail email =

(DeliveryManagementServiceEmailChannelDetail)channeldetailItembreak

case DeliveryManagementServiceDeliveryChannelTypeFAXDeliveryManagementServiceFaxChannelDetail fax =

(DeliveryManagementServiceFaxChannelDetail)channeldetailItembreak

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 98

Additional features in SOAP

Managing the work queue

Managing user work queues is part of EngageOne workflow EngageOne workflow handles assigning a work item or document ownership to a user

Retrieving work items

The WorkItemService searchWorkItems method retrieves a users work queue

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req) WorkItemServiceWorkItem[] workItems= respworkItems

In these examples the service returns a list of active work items associated with the authenticated user

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 99

Additional features in SOAP

Retrieving work items with pagination

The searchWorkItems service of WorkItemService can set the pagination of a work item list result set

To enable this feature create a PaginationControls object and set the required page number and page size

For example the following illustrates how to display the second page of a work item list that contains ten work items per page

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(2)paginationsetPageSize(10)requestsetPagination(pagination)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqpagination = new WorkItemServicePaginationControls()reqpaginationpageNumber = 2reqpaginationpageSize = 10

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 100

Additional features in SOAP

Retrieving work items with sorting

The searchWorkItems service of WorkItemService can set the sort of a work item list result set

To enable this feature create a SortControls object and set the reference column and sorting order in the objects field and order fields

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields()) SortField field = new SortField()fieldsetType(SortFieldTypeSTATUS)fieldsetOrder(SortOrderASCENDING)sortinggetFields()getField()add(field)requestsetSorting(sorting)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqsorting = new WorkItemServiceSortingControls()reqsortingfields = new WorkItemServiceSortField[1]reqsortingfields[0]type = WorkItemServiceSortFieldTypeSTATUSreqsortingfields[0]order = WorkItemServiceSortOrderASCENDING

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 101

Additional features in SOAP

Updating work items

This section covers updating work item properties

Updating the document delivery option

Set the request object with the correct token workItem ID and new deliveryOption ID

Then invoke the setDeliveryOption service of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItem request = new UpdateWorkItem()requestsetWorkItem(new UpdateWorkItemWorkItem())requestgetWorkItem()setId(workItemId)requestsetDeliveryOption(new UpdateWorkItemDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(optionId)requestgetDeliveryOption()setIdent(id)

UpdateWorkItemResponse response = workItemServiceupdateWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqdeliveryOption = new WorkItemServiceUpdateWorkItemDeliveryOption()

reqdeliveryOptionident = new WorkItemServiceIntegerIdOrName()reqdeliveryOptionidentItem = optionId

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 102

Additional features in SOAP

Updating work item status

Update work item status while a document has not completed the workflow process

This applies to the duration of the document life cycle

For example a document can be created and saved even if required fields have not been filled in In this case the work item status would be set to ACTIVE_INCOMPLETE

For example when a user attempts to update a document and has entered all required fields the work item status would be set to ACTIVE_COMPLETE

To perform work item status updates invoke updateWorkItemStatus of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItemStatus request = new UpdateWorkItemStatus()requestsetWorkItem(new UpdateWorkItemStatusWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setStatus(WorkItemStatusACTIVE_COMPLETE)

UpdateWorkItemStatusResponse response = workItemServiceupdateWorkItemStatus(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqworkItemstatus = status

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

Work item status can be set to any of the following

ACTIVE_COMPLETE

ACTIVE_INCOMPLETE

ASSIGNED

FAILED_DELIVERY

FINISHED

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 103

Additional features in SOAP

OPEN

PENDING_APPROVAL

PENDING_DELIVERY

SUBMITTED_APPROVED

SUBMITTED_REJECTED

SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 104

Additional features in SOAP

Updating work item comments

Work items have an comments field that can be updated every time you invoke a transaction that involves the work item

New comments will be added to the previous list of comments and will not overwrite the previous set Work item comments are stored from the work items creation

Invoke the addWorkItemComment service of WorkItemService to add a comment to a work item

Java sample

String comment = Updated document for additional customer information sample user comment WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)AddWorkItemComment request = new AddWorkItemComment()requestsetWorkItem(new AddWorkItemCommentWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setComment(comment)

AddWorkItemCommentResponse response = workItemServiceaddWorkItemComment(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceAddWorkItemComment req = new WorkItemServiceAddWorkItemComment()reqworkItem = new WorkItemServiceAddWorkItemCommentWorkItem()reqworkItemid = workItemIdreqworkItemcomment = comment

WorkItemServiceAddWorkItemCommentResponse resp = workItemSvcaddWorkItemComment(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 105

Additional features in SOAP

Reassigning a work item

Reassigning a document allows the current document owner to assign a document to another userrsquos work queue

bull In order for a document to be reassigned the receiving user must have access to the document template and its storage location

bull Reassigning a document removes it from the current owners work queue bull Reassigning a document ensures that the document is being worked on by one user at a time

For more information see the EngageOne Administration Guide

Retrieving document assignees

Use the WorkItemService getWorkItemAssignees method to retrieve a list of assignees for a document

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)GetWorkItemAssignees request = new GetWorkItemAssignees()requestsetWorkItem(new GetWorkItemAssigneesWorkItem())IntegerIdOrName id = new IntegerIdOrName()idsetId(workItemId)requestgetWorkItem()setIdent(id)

GetWorkItemAssigneesResponse response = workItemServicegetWorkItemAssignees(request)ListltUsergt users = responsegetAssignees()getAssignee()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceGetWorkItemAssignees req = new WorkItemServiceGetWorkItemAssignees()reqworkItem = new WorkItemServiceGetWorkItemAssigneesWorkItem()reqworkItemident = new WorkItemServiceIntegerIdOrName()reqworkItemidentItem = workItemId

WorkItemServiceGetWorkItemAssigneesResponse resp = workItemSvcgetWorkItemAssignees(req)WorkItemServiceUser[] users = respassignees

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 106

Additional features in SOAP

Note Currently the service cannot perform a document access control check for the values it returns You can expect a response exception if the user does not have access to the document template

The service returns a list of User objects which hold the user IDs of document assignees using the user IDs to perform document reassignment The list can be null and the application code needs to handle this condition check

Reassigning a document

Use the WorkItemService reassignWorkItem method to perform document reassignment

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)ReassignWorkItem request = new ReassignWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

requestsetAssignee(new ReassignWorkItemAssignee())requestgetAssignee()setId(csrl)

ReassignWorkItemResponse response = workItemServicereassignWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceReassignWorkItem req = new WorkItemServiceReassignWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

reqassignee = new WorkItemServiceReassignWorkItemAssignee()reqassigneeid = csrl

WorkItemServiceReassignWorkItemResponse resp = workItemSvcreassignWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 107

Additional features in SOAP

Deleting a work item

EngageOne allows a document to be deleted in the repository

When a document is deleted EngageOne Server removes the document files from the repository and terminates the document processing This enables deleting the document at any point during the document life cycle

Perform a document delete

Use the WorkItemService deleteWorkItem method

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)

DeleteWorkItem request = new DeleteWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

DeleteWorkItemResponse response = workItemServicedeleteWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceDeleteWorkItem req = new WorkItemServiceDeleteWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

WorkItemServiceDeleteWorkItemResponse resp = workItemSvcdeleteWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 108

6 - EngageOne notifications EngageOne Notifications is a new capability that enables external systems to be notified of certain events that happen within the EngageOne server Examples of events include Communications being created being sent for review and being completed

In this section

Overview 110 Notification components diagram 111 Topics and queues 113 Configuration settings 114 Messages 118 Communication messages 119 Batch messages 121 Workflow messages 122 Consuming notification messages 123 Using other JMS implementations 126 Sample message consumers 128

EngageOne notifications

Overview

A full list of notification types is provided below

The Notifications mechanism is based on an implementation of the Java Message Service (JMS) standard The chosen JMS implementation is Apache ActiveMQ Detailed information about ActiveMQ can be found at httpactivemqapacheorg

Various components within EngageOne write messages to ActiveMQ so that external applications can consume the messages and process them in whatever way they choose

Note it is possible to use an external JMS-compliant message queue instead of ActviveMQ

A common use case for Notifications is as follows

bull An external system (for example a CRM application) triggers the creation of a communication in EngageOne via the EngageOne web service A unique identifier for the communication is returned to the calling system A communication pending note is added to the customers record so that users of the CRM application can see that the communication is in progress

bull A number of notifications are generated as the communication progresses through its life cycle The CRM system receives these notifications and discards any that are not relevant

bull The CRM system receives a notification that the communication has been completed (delivered) and updates the note on the customer record to indicate that the communication has been sent

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 110

EngageOne notifications

Notification components diagram

The following diagram provides an overview of the components involved in notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 111

EngageOne notifications

Diagram details

The Message Consumer is a custom component that suits the requirements of a particular implementation This Programmers Reference Guide provides information about how to write a message consumer

The JMS Client Library provides a plug-in mechanism to bypass the built-in ActiveMQ implementation to use an external message broker instead

1 A notification message is generated by a component in one of the EngageOne bundles (Core or Batch bundle)

2 The bundle configuration properties (defined in deployproperties at installation or re-configuration time) specify how the message is processed

a The notificationconnectionFactoryclass property specifies which JMS connection factory class to use The default connection factory establishes connections to an ActiveMQ queue or topic Other JMS libraries can be used to send messages to other JMS-compliant queue implementations

For more information see Using other JMS Implementations

b The notificationjmsbrokerurl property specifies the location of the message broker By default this is the ActiveMQ broker embedded in the Notification Bundle

An external ActiveMQ broker can be specified instead or a different JMS providers broker can be specified if a custom JMS connection factory is provided

c The user ID and encrypted password for accessing the queue are also specified in the bundle configuration

d Additional properties enable the notification mechanism to be tuned by disabling specific notification types and by specifying whether messages should be sent to a queue or a topic

3 The JMS Client Library is responsible for sending a JMS-compliant message to the appropriate queue or topic on the specified broker

4 The message broker receives the message on one of its queues or topics Depending on the brokers settings the message might be persisted to a configured persistence provider By default KahaDB is used by the built-in ActiveMQ broker

5 A custom message consumer reads the message from the queue or topic The consumer examines the message and determines whether to process it or discard it

Processing the message might involve sending it to a line of business system (for example a CRM system) or an Enterprise Service Bus (ESB) or Message Queue from where it will be processed by another system

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 112

EngageOne notifications

Topics and queues

JMS has two similar but different mechanisms for delivering messages

bull Topic - implements a publisher-subscriber protocol Each message will be sent to all consumers that are subscribed to that topic at the time that the message is produced

By default topics are not durable so if a consumer is not active at the time that the message is produced it will not receive the message

bull Queue - implements a point to point protocol Each message will be consumed by a maximum of one consumer

By default queues are durable meaning that a message will be held for a consumer if the consumer is not active at the time that the message is produced

ActiveMQ supports a feature called virtual topics Virtual Topics combine the flexibility of topics (multiple consumers) with the durability of a queue When a publisher writes a message to a virtual topic the consumers can choose to read it from a topic or a queue

Virtual topics are described in the ActiveMQ documentation here httpactivemqapacheorgvirtual-destinationshtml

By default EngageOne Notifications uses virtual topics but it is possible to configure it to use standard queues or topics instead This can be controlled through settings in deployproperties as described in Configuration Settings

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 113

EngageOne notifications

Configuration settings

The following settings in deployproperties can be used to configure the notifications feature at installation time or re-configuration time

Property name Default value Purpose

Properties common to all bundles

Location of the installed notification bundle CProgram FilesPitneyBowesEngageOneServernotification

notificationinstalldir

JVM settings for the notification bundle - these should not normally be changed

-Xms1g -Xmx2g-XXMaxPermSize=512m

notificationjvmsettings

The port on which the ActiveMQ web console and EngageOne health monitor can be accessed

8084notificationport

URL where the ActiveMQ web console is deployed

httpsnotification-nodepbeonet8084notificationservicesurl

Set this to true to enable https for the Notification bundle

falsenotificationhttpsenabled

(Empty)notificationtlskeyalias Specifies the name of the key if multiple certificates exist in the key store

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 114

EngageOne notifications

Configuration settings (cont)

Property name Default Purpose value

Global setting to enabledisable the Notifications feature Note that Notifications are disabled by default and must be enabled by settings this property to true

falsenotificationpublisherenabled

Name of the account used to publish messages to ActiveMQ queues and topics

eoPublishernotificationpublisherusername

Password for the publisher account It is encrypted in the deployproperties file

(Encrypted password)

notificationpublisherpassword

Name of the account used to consume messages from ActiveMQ queues and topics

eoSubscribernotificationsubscriberusername

Password for the consumer account It is encrypted in the deployproperties file

(Encrypted password)

notificationsubscriberpassword

(Empty)

This value must only be specified if the system is using an external message broker instead of the ActiveMQ instance in the Notification bundle

An example broker URL is tcpmy-jms-broker61617jmsuseAsyncSend=true

Note that jmsuseAsyncSend=true is recommended for best performance of the publishing mechanism

Time in milliseconds for which messages will be persisted in a queue Default value of zero means that messages do not expire and will be kept in the queue indefinitely

0notificationmessagetimeToLive

Properties specific to the notification bundle

notificationjmsbrokerurl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 115

EngageOne notifications

Property name Default Purpose value

Comma separated list of Communication actions that will be suppressed The available action types are Created StatusChanged DeliveryChanged CommentAdded Deleted Completed

(Empty)notificationtypecommunicationomittedactions

Comma separated list of Accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypeabatchomittedactions

Comma separated list of Non-accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypenabatchomittedactions

Comma separated list of Workflow Task actions that will be suppressed The available action types are Created Assigned Completed

(Empty)notificationtypeworkflowtaskomittedactions

By default EngageOne publishes its notifications to a topic If this property is changed to queue EngageOne create and write to queues instead

topicnotificationmessagedestinationtype

VirtualTopic notificationmessagedestinationbaseName

Each type of Notification message (Communication Batch Workflow) is written to its own topic or queue The topic or queue name is a combination of this base name plus the notification type for example VirtualTopicCommunication The default VitualTopic prefix instructs ActiveMQ to use virtual topics VirtualTopics are not a standard JMS capability so this prefix should be removed when using a JMS implementation other than ActiveMQ

compbnotificationactivemqpoolPooledConnectionFactorynotificationconnectionFactoryclass

Name of the class that implements the JMS connection factory The default implementation uses a pooled connection factory for ActiveMQ

ActiveMQ has its own configuration settings file activemqxml See the ActiveMQ documentation for details

It is not normally necessary to change this file because all relevant properties can be configured via deployproperties

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 116

EngageOne notifications

Note that activemqxml will be overwritten if the Notification bundle is reinstalled or upgraded and any changes to that file will be lost It is therefore strongly recommended not to modify activemqxml

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 117

EngageOne notifications

Messages

Notification messages are available for the following types of entity in EngageOne

bull Communications - also known as Work Items bull Batch - both Accumulated and Non-accumulated batch bull Workflow - task actions

Messages consist of three types of data

bull Headers - created by the underlying JMS implementation The same set of headers exists for all messages

bull Properties - application-specific fields that can be used in selections to filter messages received by a consumer

bull Content - the message body The fields available in the body vary by message type

Notification message common properties

All EngageOne notification messages contain the following common properties

Name Type Description

Type of event (corresponding to an EngageOne action Varies by message type)

PropertyeventType

Community identifier PropertycommunityId

Name of the community PropertycommunityName

Type of entity that the message relates to (Communication Batch or Workflow)

PropertyentityType

entityId Property Identifier for the entity Unique within this type of entity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 118

EngageOne notifications

Communication messages

Communication messages have the following additional properties and content fields

Name

workItemIdentifier

status

statusDescription

templateId

Property

templateName

createdDate

creatorName

updatedDate

deliveryOptionId

ownerName

Content

batchId

Content

Content

Type

Property

Property

Property

Content

Content

Content

Content

Description

Also known as the External Identifier This field is the human-readable identifier for the communication

Status number of the Communication at the time the notification was published

Human-readable form of the status

Identifier of template the communication was based on

Name of template the communication was based on

Time stamp when the communication was created

ID of the user who created the communication

Time stamp when the communication was last updated

ID of delivery option associated with the communication

ID of user who currently owns the communication

This field is present for a communication that completes as part of a batch

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 119

EngageOne notifications

Name Type Description

Status of a delivery item that has changed

Associated with the DeliveryChanged action

ContentdeliveryStatus

ID of a delivery item whose status has changed

Associated with the DeliveryChanged action

ContentdeliveryItemId

Communication published actions

Communication messages are published for the following actions

Action Description

A new communication has been created Created

The status of a communication has changed StatusChanged

The status of a delivery item associated with the communication has changed

DeliveryChanged

A comment has been added to the communication CommentAdded

A communication has been deleted Deleted

A communication has been completed Completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 120

EngageOne notifications

Batch messages

Notification messages are available for both Accumulated and Non-accumulated batch

Accumulated batch messages

Accumulated batch messages have the following additional properties and content

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

Type of batch run (RUN RESTART RESUME) ContentrunType

Comma separated list of delivery channel names used by the batch

ContentchannelNames

Accumulated batch messages are published for the following actions

Action Description

The batch has started Started

The batch has completed The status property indicates whether the batch was successful

Completed

Non accumulated batch messages

Messages for non-accumulated batch notifications have the following additional properties and content fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 121

EngageOne notifications

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

ID of the template associated with this batch ContenttemplateId

Name of the template associated with the batch ContenttemplateName

ID of the delivery option associated with the batch ContentdeliveryOptionId

Name of the delivery option associated with the batch ContentdeliveryOptionName

Comma separated list of delivery channel names used by the batch

ContentchannelNames

ContentnaBatchXmlFilePathType Location of the batch XML file

Non-accumulated batch messages are published for the following actions

Action Description

Started

Completed

The batch has started

The batch has completed The status property indicates whether the batch was successful

Workflow messages

Workflow messages have the following additional properties and content

Name Type Description

Status of the workflow task (UNASSIGNED ASSIGNED APPROVED REJECTED UNKNOWN)

Propertystatus

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 122

EngageOne notifications

Name Type Description

PropertyexternalReferenceIdType

ID of the entity that is referenced by this task When the externalReferenceIdType is ENGAGEONE the externalReferenceId is a Communication ID When the externalReferenceIdType is PROJECT_ASSET the externalReferenceId is a Designer Template ID

PropertyexternalReferenceId

ID of the user to whom the task is assigned if any Contentassignee

Community identifier PropertycommunityId

Type of external reference (ENGAGEONE PROJECT_ASSET)

Workflow messages are published for the following actions

Action Description

The task has been created Created

The task has been assigned to a user or unassigned The assignee field gives the ID of the user

Assigned

The task has been completed The status property indicates whether the task was approved or rejected

Completed

Consuming notification messages

If the deployment environment contains systems that can directly consume messages from an ActiveMQ broker then no further development work is required Integration is simply a matter of configuring the external systems to read from the ActiveMQ queues or topics

Where existing software is not available it is necessary to create a new component to integrate with the queues or topics in ActiveMQ and to consume the Notification messages

This section provides an overview of how to write such a component The ActiveMQ website and community should be consulted for additional details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 123

EngageOne notifications

All JMS implementations have their own specific client libraries The libraries for one implementation (for example ActiveMQ) will not inter-operate with other implementations such as IBMs WebSpere MQ The first step to creating a message consumer is therefore to obtain the appropriate libraries for the JMS implementation and for the programming language of the client

This section assumes the default ActiveMQ implementation is used by the Notifications feature and that the message consumer will be written in Java If the system has been configured to use a different JMS implementation or the client will be written in another language the steps will be similar but different client libraries will be required

There are many client libraries available for ActiveMQ for different programming languages such as Java NET Nodejs and Python See httpactivemqapacheorgcross-language-clientshtml for more information about the available clients and for code samples

A Java client makes use of the following namespaces

bull orgapacheactivemqActiveMQConnectionFactory - ActiveMQ specific classes required for establishing a connection with a message queue or topic

bull javaxjms - JMS classes that can be used with any JMS provider

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 124

EngageOne notifications

Consume messages from an ActiveMQ queue or topic

The basic steps to consume messages from an ActiveMQ queue or topic are as follows

Create a connection factory - the factory is specific to a particular JMS implementation (ActiveMQ) The brokerUrl will be of the form tcpservernameportActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl) Create a connection and start it The userName and password are configured at install time See notificationsubscriberusername andnotificationsubscriberpassword in deployproperties but note that the unencrypted password must be passed into the createConnectioncall below connection = connectionFactorycreateConnection(userName password)connectionstart() Create a session session = connectioncreateSession(false SessionAUTO_ACKNOWLEDGE) Create a destination - either a topic or a queueDestination destination = sessioncreateQueue(ConsumerMyConsumerVirtualTopicCommunication) or Destination destination = sessioncreateTopic(VirtualTopicCommunication) Create a consumer and set its message listener The listener class needs to implement the MessageListener interface consumer = sessioncreateConsumer(destination)consumersetMessageListener(myListener)

To stop receiving messages and close the connection

Close everythingconsumerclose()sessionclose()connectionclose()

The MessageListener interface defines a single method onMessage(Message message) Within that method the consumer can take any appropriate action to deal with the message

The following example outputs some basic information about a Communication message

public void onMessage(Message msg)try

Systemoutprintln(Stringformat(s s s

msggetStringProperty(workItemIdentifier)

msggetStringProperty(EventType)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 125

EngageOne notifications

msggetStringProperty(statusDescription))) catch (Exception ex)

Systemoutprintln(exgetMessage())

In the code above examples are provided for creating a queue destination and a topic destination

The EngageOne Notifications mechanism writes messages to virtual topics Consumers can read these messages from a topic named VirtualTopicEntityType or a queue named ConsumerConsumerNameVirtualTopicEntityType where EntityType is a Communication Batch or Workflow (( to be confirmed )) and ConsumerName is a unique name for the consuming application

Using other JMS implementations

It is possible to integrate the Notifications mechanism with other message queues This might be necessary in situations where there is an existing message queue or Enterprise Service Bus in the target environment

Three different approaches can be considered

bull If the external message queue or ESB can read from ActiveMQ then the two systems can work together

Notification messages are written to the internal ActiveMQ They flow into the external queue from where they are delivered to their ultimate destination

bull Use a bridge to join the two queues

This can either be a third party component or custom code can be written using the techniques outlined in Consuming notification messages on page 123

EngageOne publishes messages to the internal ActiveMQ and it is the responsibility of the bridge to propagate them to the external queue

bull Plug in a different JMS provider to replace the internal ActiveMQ

See Using a custom JMS connection factory on page 126 for more information

Using a custom JMS connection factory

The notificationconnectionFactoryclass property in deployproperties specifies the name of the class that implements the JMS connection factory to be used by the Notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 126

EngageOne notifications

producer By default the ActiveMQ connection factory is used but this can be changed in order to use a different JMS provider such as IBM WebSphere MQ

The class specified by this property must be a custom class that implements the javajmxConnectionFactory interface and also implements an additional constructor that takes a string parameter The Notifications framework will pass a broker URL into this constructor The implementation can choose whether or not to make use of this URL

The following code shows an example of a connection factory that enables notifications to be sent to the Amazon Simple Queue Service (SQS) It wraps the SQSConnectionFactory class provided by AWS

package compbengageonesampleawsimport comamazonsqsjavamessagingSQSConnectionFactoryimport comamazonawsauthEnvironmentVariableCredentialsProviderimport comamazonawsregionsRegionimport comamazonawsregionsRegionsimport javaxjmsConnectionimport javaxjmsConnectionFactoryimport javaxjmsJMSException

public class MySqsConnectionFactory implements ConnectionFactory private SQSConnectionFactory sqsConnectionFactory

public MySqsConnectionFactory(String brokerURL) sqsConnectionFactory =

SQSConnectionFactorybuilder()withRegion(RegiongetRegion(RegionsUS_EAST_1))

withAWSCredentialsProvider(newEnvironmentVariableCredentialsProvider())

build()

public Connection createConnection() throws JMSException return sqsConnectionFactorycreateConnection()

public Connection createConnection(String userName String password)throws JMSException

return sqsConnectionFactorycreateConnection(userName password)

The custom connection factory must be packaged as a jar file and installed on all servers that will run the core or batch bundles To install the jar file at the same time as installing a bundle copy the jar to the pluginsnotification-connection-factory folder of the unzipped bundle distribution media (core or batch depending which one is being installed) then install the bundle as per the instructions in the Installation Guide

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 127

EngageOne notifications

To add or replace a connection factory after the bundle installation copy the jar file to the pluginsnotification-connection-factory folder of the installed bundle

When adding or replacing the connection factory in the core bundle a restart of the core bundle is required

The Notifications mechanism by default sends JMS messages of type ldquoMapMessagerdquo The body of these messages contains a map that allows individual values to be accessed by name MapMessage is part of the JMS standard but not all JMS implementations support it Amazonrsquos SQS is an example of a JMS implementation that does not support MapMessage When the Notifications mechanism detects that a JMS does not support MapMessages it creates TextMessages whose body consists of a set of namevalue pairs serialized into JSON Message consumers need to be certain which type of message is being received so that they can appropriately handle the content of the body Messages have a ldquotyperdquo header which can be used to distinguish them

Sample message consumers

Two sample message consumers are provided on the EngageOne installation media in the samplesnotifications folder These are not intended as production code but are intended to illustrate some techniques for consuming messages from ActiveMQ

Sample 1 is a simple Java client that listens for notification on a particular topic and outputs a summary to the console

Sample 2 is a more comprehensive application with a graphical user interface As well as providing a code sample this application can be used as a diagnostic tool for subscribing to topics and queues and for examining the details of received messages This sample is written in NET (C) and makes use of the NMS library for ActiveMQ (see httpsactivemqapacheorgnms) All the ActiveMQ code is contained in the ActiveMQClient class

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 128

7 - The comparison adapter plug-in The comparison adapter plug-in is the interface which allows for customizing the process of comparing preview PDF files generated by EngageOne Designer during the submission of templates and Active Content for review and approval In addition to the existing optional implementations provided in release distribution media it is also possible to install and configure a third-party comparison tool with custom plug-in implementation

In this section

The custom plug-in implementation 130 Example implementations 131 Plug-in Installation and configuration 135

The comparison adapter plug-in

The custom plug-in implementation

The following java interface is exposed in

ltrelease-distributiongtsamplescomparison-adapterscomparison-adapter-apijar

compbviewpointcomparisonadaptersComparisonEngineAdapter

package compbviewpointcomparisonadaptersimport compbviewpointcomparisonmodelComparisonProfileimport compbviewpointcomparisonmodelJobimport compbviewpointcomparisonmodelJobOutputimport javautilList

public interface ComparisonEngineAdapter boolean comparisonEngineEnabled()boolean comparisonEngineAvailable()ListltComparisonProfilegt getComparisonProfiles()Job startComparison(StartParameters startParameters)Job getJobStatus(Job job)JobOutput getJobOutput(Job job)void terminateJob(Job job)void purgeJob(Job job JobOutput jobOutput)

The custom plug-in implementation class must implement this interface and must have a constructor that takes no parameters A comparison-adapter-apijar file must be added as a dependency to project developing the custom class The implementation of the custom class must be written in non- blockingasynchronous manner to avoid blocking EngageOne Server

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 130

The comparison adapter plug-in

Example implementations

DocBridgereg Delta

An example DocBridge Delta implementation is provided in

ltrelease-distributiongtsamplescomparison-adaptersdocbridge-delta

This implementation uses DocBridgereg Delta server native REST API calls refer to the source code for details

It is important to note that the DocBridgereg Delta plug-in sample distributed with the release media simply provides a starting point from which you may need to make configuration changes to enable proper alignment with your operational requirements

Simple comparison plug-in

This implementation requires

1 get comparison profile names

2 invoke the comparison plug-in and get the PDF containing the results of the comparison

In order to simplify implementation a PdFComparator interface is provided

compbviewpointcomparisonadapterssimplePdFComparator

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonmodelJobOutputimport javaioInputStreamimport javautilList

public interface PdFComparator JobOutput compare(String configurationName InputStream

originalPdfInputStream InputStream changedPdfInputStream)ListltStringgt getConfigurationNames()

A SimplePdFComparator class example implementation of PdFComparator interface is provided in the distribution media at the following location

ltrelease-distributiongtsamplescomparison-adapterssimple-adapter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 131

The comparison adapter plug-in

The SimplePdFComparator implements a pixel-by-pixel page comparison approach refer to the source code in the release media for details

Comparison-adapter-apijar also contains implementations so that the BaseComparisonEngineAdapter base class can be extended The base class already implements non-blocking behavior and only requires the implementation to access the PdFComparator interface

A good example of this approach is presented below

compbviewpointcomparisonadapterssimpleSimpleComparisonEngineAdapter

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonadaptersPdFComparatorimportcompbviewpointcomparisonadaptersimplBaseComparisonEngineAdapter

public class SimpleComparisonEngineAdapter extendsBaseComparisonEngineAdapter

Overrideprotected PdFComparator createPdFComparator()

return new SimplePdFComparator()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 132

The comparison adapter plug-in

Command line adapter implementation

A similar approach is used for CommandLineComparisonEngineAdapter implementation

compbviewpointcomparisonadapterscommandlineCommandLineComparisonEngineAdapter

package compbviewpointcomparisonadapterscommandline

import compbviewpointcomparisonadaptersPdFComparatorimport orgslf4jLoggerimport orgslf4jLoggerFactoryimport javautilList

public class CommandLineComparisonEngineAdapter extendsBaseComparisonEngineAdapter

private static final Logger logger = LoggerFactorygetLogger(CommandLineComparisonEngineAdapterclass)

public static final StringCOMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX =

commandlinecomparisonadapterprofilesprivate static final String

COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED = Commands profiles for comparison plugin not configured

public CommandLineComparisonEngineAdapter() CommandLinePdfComparator commandLinePdfComparator =

(CommandLinePdfComparator) pdFComparator

getCommandsProfiles()forEach(commandLinePdfComparatoraddCommandProfile)

Overrideprotected PdFComparator createPdFComparator()

return new CommandLinePdfComparator()

private ListltCommandProfilegt getCommandsProfiles() try

CommandProfilesReader profilesReader = new CommandProfilesReader(SystemgetProperties()

COMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX)ListltCommandProfilegt commandProfiles =

profilesReadergetCommandProfiles()if (commandProfilessize() == 0)

throw new RuntimeException(COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED)

return commandProfiles

catch (Exception e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 133

The comparison adapter plug-in

loggererror(egetMessage())throw new RuntimeException(e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 134

The comparison adapter plug-in

Plug-in Installation and configuration

Once the custom plug-in implementation has been written you will need to install and configure as follows

Installation

The custom implementation must be packaged as a jar file and installed on all servers that will run the core bundles To install the jar files at the same time as installing a bundle copy

the jar file along with its transient jars to the

ltrelease-distributiongtbundlescorepluginscomparison-engine-adaptersltanyfoldergt

folder of the unzipped core bundle distribution media then install the bundle as per the instructions in the Comparison plug-in support section of the Installation Guide To add or replace a plug-in after the core bundle installation copy the jar files to

ltBundle installation root foldergtcorepluginscomparison-engine-adaptersltany foldergt

folder of the installed core bundle

When adding or replacing the plug-in in the core bundle a restart of the core bundle is required

Configuration

The final configuration requirement is to

1 set the comparisonadapterclass property in deployproperties which specifies the name of the class to be used by the comparison process

2 Run eos groovy script in order to configure core bundle as per the instructions in the Installation Guide

For example a stand alone server

eosgroovy -b core -p deployproperties -t single configure

Along with plug-in jars any java properties files can be copied to plugin folder Note that all properties files will be automatically loaded to system properties and can be retrieved calling SystemgetProperties()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 135

8 - Appendix A - Editor methods The following is a list of editor methods

In this section

LoadContents 137 SaveContents 137 SpellCheck 138 IsComplete 138 IsModified 139 GetVersion 139

Appendix A - Editor methods

LoadContents

LoadContents

Function

Syntax

SaveContents

SaveContents

Function

Syntax

Comments

Instructs the Interactive Editor to load the document files passed in

VOID LoadContents (PropertiesXmlPath PublicationPath HipPath InstanceXMLPath InstanceSchemaPath XFormPath ReviewModeFlag SpellCheckMode ServerUrl SpellerXmlPath)

Allows you to save the current state of a loaded document The collected data will be streamed from a field into the instance file at the location passed via InstanceXMLPath

The document content will be saved back to the publication file PublicationPath The updated Production HIP HipPath will be saved

VOID SaveContents( VOID )

IsComplete() should be called before SaveContents() to ensure all required fields have been completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 137

Appendix A - Editor methods

SpellCheck

SpellCheck

Function

Syntax

IsComplete

IsComplete

Function

Syntax

Comments

Instructs the editor to spell check all user editable content

VOID SpellCheck( VOID )

Checks to see if all required fields have been completed Returns ldquo1rdquo if the document is complete and ldquo0rdquo if not

BOOL IsComplete( VOID )

This method must be called prior to SaveContents to ensure the document is complete

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 138

Appendix A - Editor methods

IsModified

IsModified

Function

Syntax

Comments

GetVersion

GetVersion

Function

Syntax

Note This method will not tell you if any data fields have been modified

Checks to see if any of the documentrsquos editable content has been modified The editable content is saved in the HIP and PUBX file If editable content has not been modified these files will not need saving back to the server

Returns ldquo1rdquo if the document is modified and ldquo0rdquo if not

BOOL IsModified( VOID )

This method can be called to add efficiency to your process It avoids uploading a Publication file and Production HIP file back to the server if no modification has been made

Returns a string containing the current version number of the Interactive Editor For example 5046352

STRING GetVersion( VOID )

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 139

9 - Appendix B - SOAP API This section describes relevant EngageOne Web services that could be utilized for custom application integration

In this section

Identifiers 141 Search filter 142 Promotion service 143 Folder service 164 Data push service 168 Delivery management service 170 Dictionary service 178 Domain service 180 Editor service 182 Keymap service 185 Metadata service 193 Request status update service 196 Security service 198 Template service 204 Workitem service 227 Attachment service 252 Workflow service 264 Delivery service 276

Appendix B - SOAP API

Identifiers

Many of the services accept as part of their requests identifiers for various entities in the system

For example in order to search for templates the TemplateServices searchTemplates operations take in an optional template identifier The identifiers as part of the request are of two forms either an IntegerIdOrName or a StringIdOrName Refer to the listing of inputs for each service below to see which operations take which identifier

Most of the entities in the system are uniquely identified by a unique integer value When searching for those types of entities you would use the IntegerIdOrName On the other hand domains are entities which are uniquely identified by a string identifier so you would need to use a StringIdOrName when searching for those

In either case all entities can be searched by using the name of the entity IntegerIdOrName and StringIdOrName are choice constructs which allow the name of an entity to be specified Please keep in mind that the name of an entity is not necessarily unique in the system and will potentially return more than one entity

The format of the IntegerIdOrName and StringIdOrName elements are as follows

lttemplategtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlttemplategt

The id element is a string for domain entities and an integer otherwise

All service operations that return entities will return the unique identifiers of the entities This way you can obtain the unique identifiers for use in subsequent calls to the services

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 141

Appendix B - SOAP API

Search filter

For most search operations the request message will include the filter element The filter can be LIST or DETAIL

ltcomfiltergtLISTltcomfiltergt

If you specify LIST less information will be returned in the response

DETAIL means the response will contain more detailed information

Consult the documentation below for each search operation to see the exact meaning of LIST versus DETAIL

For example if you want to return a listing of templates you would use the LIST filter in the request

lttemSearchTemplatesgtltcomfiltergtLISTltcomfiltergt

lttemSearchTemplatesgt

On the other hand if you want to retrieve a template with all of the files (returned as attachments) with the response you would use the DETAIL filter in the request

lttemSearchTemplatesgtltcomfiltergtDETAILltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomnamegtSimple Templateltcomnamegtltidentgt

lttemplategtlttemplatesgt

lttemSearchTemplatesgtFile Attachments

All files sent into a service operation request and returned from a service operation response are transferred as MTOM attachments

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 142

Appendix B - SOAP API

Promotion service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSPromotionServicewsdl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 143

Appendix B - SOAP API

createImportAssetsJob()

Description this web service creates an import assets job

Parameters

InputCreateImportAssetsJob

request type CreateImportAssetsJob - extension of type RequestMessage importItems type ImportItem - minOccurs=1 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

priority type boolean - minOccurs=0 maxOccurs=1

OutputCreateImportAssetsJobResponse

response type CreateImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 144

Appendix B - SOAP API

Fault PromotionFault - fault type ServiceFault

Sample request (Open Import)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltfilePathgtDprojectpromotionpreviewfolder1OnezipltfilePathgt

ltdestinationFoldergtfolder1ltdestinationFoldergtltimportItemsgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgt

ltprioritygttrueltprioritygtltpromCreateImportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 145

Appendix B - SOAP API

Sample request (Promotion Bundle)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2promotion-2018-02-08_08_49_23_758-7291assets-descriptorjsonltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgtltprioritygttrueltprioritygt

ltpromCreateImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENV Header xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3CreateImportAssetsJobResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt0e273a8b-321d-4b6d-975a-60357c8aeb50lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_13_49_5983-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtwaitingltns4statusgt

ltimportJobInfogtltns3CreateImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 146

Appendix B - SOAP API

getImportAssetsJob()

Description This Web service gets an import assets job

Parameters

InputGetImportAssetsJob

request type GetImportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

OutputGetImportAssetsJobResponse

response type GetImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 147

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltjobIdgt2017-03-31_12_16_45372-importltjobIdgt

ltpromGetImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 148

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt252feaad-71ef-434e-b50e-b5861e1b3bb7lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_12_16_45372-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtcompleteltns4statusgtltns4overallResultgt

ltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtimportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4relativePathFromDescriptorgt

MyTemplatezipltns4relativePathFromDescriptorgtltns4rootPathgtDTemplatesltns4rootPathgt

ltns4assetgtltns4resultgt

ltns4statusgtcompleteltns4statusgtltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns2resourceIdsgt47730ltns2resourceIdsgt

ltns4resultgtltns4assetsResultsgt

ltimportJobInfogtltns3GetImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 149

Appendix B - SOAP API

createExportAssetsJob()

Description this Web Service operation is used to create an export assets job

Parameters

Input

CreateExportAssetsJob

request type CreateExportAssetsJob - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType type- string with restriction

enum FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTIONminOccurs=1 maxOccurs=1

options type ExportOption - minOccurs=0 maxOccurs=unbounded

name string - with restriction enum includeSubFoldersdeliveryOptionImportStrategy minOccurs=1 maxOccurs=1

value type string - minOccurs=1 maxOccurs=1

option related to FOLDER asset type includeSubFolders true | false

option related to DELIVERY_OPTION asset type deliveryOptionImportStrategyOMIT_IF_ANY_CONFLICT | MERGE_NEW_CHANNELS | OVERWRITE_EVERYTHING

exportDirectory type string - minOccurs=1 maxOccurs=1

Comment use id or assetLogicalPath parameter alternatively in the request

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 150

Appendix B - SOAP API

CreateExportAssetsJobResponse

response type CreateExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 151

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgtltsoapenvHeadergtltsoapenvBodygt

ltpromCreateExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtfolder1ltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportItemsgt

ltmodassetLogicalPathgtmyDeliveryOptionltmodassetLogicalPathgtltmodtypegtDELIVERY_OPTIONltmodtypegtltmodoptionsgt

ltmodnamegtdeliveryOptionImportStrategyltmodnamegtltmodvaluegtOVERWRITE_EVERYTHINGltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromCreateExportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3CreateExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt1001fb8e-183d-405b-b420-7276fb82bee5lttokengtltSessionTokengt

ltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtwaitingltns4statusgt

ltexportJobInfogtltns3CreateExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 152

Appendix B - SOAP API

getExportAssetsJob()

Description this Web service gets an export assets job

Parameters

Input

GetExportAssetsJob

request type GetExportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

Output

GetExportAssetsJobResponse

response type GetExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 153

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtPmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltjobIdgt2017-04-07_11_46_16456-exportltjobIdgtltpromGetExportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 154

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt501a02fe-a29e-474b-8130-dc1549caa48clttokengt

ltSessionTokengtltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtcompletedltns4statusgtltns4overallResultgt

ltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0

ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtexportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4sourceResourceIdgt115ltns4sourceResourceIdgtltns4relativePathFromDescriptorgtassetsasset-0001zip

ltns4relativePathFromDescriptorgtltns4rootPathgtdMyAssetsexportpromotion-2017-04-07_11_46_16_205-9465

ltns4rootPathgtltns4assetgtltns4resultgt

ltns4statusgtCOMPLETEDltns4statusgtltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegt

ltns4resultgtltns4assetsResultsgt

ltexportJobInfogtltns3GetExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 155

Appendix B - SOAP API

getImportPreview()

Description this web Service operation is used to get a preview of the import

Parameters

Input

GetImportPreview

request type GetImportPreview - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 mode type ImportPreviewMode - type string with restriction -

enum PROMOTION ZIPS PARSED_ZIPS- minOccurs=1 maxOccurs=1

openImportRegularExpressionFilter type string - minOccurs=0 maxOccurs=1

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 156

Appendix B - SOAP API

GetImportPreviewResponse

response type GetImportPreviewResponse - extension of type ResponseMessage

importItems type ImportItem - minOccurs=0 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

previewRoot type ImportPreviewFolder - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1

assets type ImportPreviewAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=4 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1 fileName type string - minOccurs=1 maxOccurs=1 eoVersion type string - minOccurs=1 maxOccurs=1

subFolders type ImportPreviewFolder - minOccurs=0 maxOccurs=unbounded

globalAssets type ImportPreviewGlobalAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum ACDOCUMENT_CLASS- minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded fileName type string - minOccurs=1 maxOccurs=1

totalAssetsCount type int - minOccurs=1 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 157

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpreviewltpathgtltmodegtPARSED_ZIPSltmodegt

ltpromGetImportPreviewgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 158

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportPreviewResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtaffff535-b301-4d69-bd61-75c3df400246lttokengtltSessionTokengt

ltauthContextgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder1Onezipltns4filePathgt

ltns4destinationFoldergtfolder1ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder2ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderfolder4Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderfolder4ltns4destinationFoldergt

ltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderPublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewOnezipltns4filePathgtltns4destinationFoldergtltns4destinationFoldergt

ltimportItemsgtltpreviewRootgt

ltns4typegtTEMPLATEltns4typegtltns4namegtrootltns4namegtltns4pathgtltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtOneltns4pathgtltns4fileNamegtDprojectpromotionpreviewOnezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder1ltns4namegtltns4pathgtfolder1ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder1Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder1

Onezipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtACltns4typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 159

Appendix B - SOAP API

ltns4namegtfolder2ltns4namegtltns4pathgtfolder2ltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder2Publishable Active Contentltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder2

PublishableActiveContentzipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder3ltns4namegtltns4pathgtfolder3ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

Onezipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtACltns4typegtltns4namegtac_folderltns4namegtltns4pathgtfolder3ac_folderltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder3ac_folderPublishable Active

Contentltns4pathgt ltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderPublishableActiveContentzipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder4ltns4namegtltns4pathgtfolder3ac_folderfolder4ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3ac_folderfolder4Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderfolder4Onezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4subFoldersgtltns4subFoldersgt

ltpreviewRootgtlttotalAssetsCountgt8lttotalAssetsCountgt

ltns3GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 160

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity2ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser2ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401assets-descriptorjsonltpathgt

ltmodegtPROMOTIONltmodegtltpromGetImportPreviewgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns4GetImportPreviewResponse xmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtd046d82b-c954-42b4-aca7-cd0a6455ee0elttokengt

ltSessionTokengtltauthContextgtltimportItemsgt

ltns2filePathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401

assets-descriptorjsonltns2filePathgtltimportItemsgtltpreviewRootgt

ltns2typegtTEMPLATEltns2typegtltns2namegtrootltns2namegtltns2pathgtltns2pathgtltns2assetsgt

ltns2typegtTEMPLATEltns2typegtltns2namegtTemplate1ltns2namegtltns2pathgtTemplate1ltns2pathgtltns2fileNamegttemplate1zipltns2fileNamegtltns2eoVersiongt10ltns2eoVersiongt

ltns2assetsgtltpreviewRootgtltglobalAssetsgt

ltns2typegtDOCUMENT_CLASSltns2typegtltns2namegtmyDocumentClassltns2namegtltns2fileNamegtdocumentClass1jsonltns2fileNamegt

ltglobalAssetsgtlttotalAssetsCountgt2lttotalAssetsCountgt

ltns4GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 161

Appendix B - SOAP API

getAssetDependencies()

Description this Web Service operation retrieves export assets dependencies

Parameters

Input

GetAssetDependencies

request type GetAssetDependencies - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum

FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTION - minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=unbounded see

CreateExportAssetsJob() operation for ExportOption definition

Comment use id OR assetLogicalPath parameter in request

Output

GetAssetDependenciesResponse

response type GetAssetDependenciesResponse - extension of type ResponseMessage

exportItems type ExportItem - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum AC DOCUMENT_CLASS -

minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 162

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope[

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelope|httpschemasxmlsoaporgsoapenvelope]

xmlnsprom=httppbcomEngageOnewspromotion

xmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetAssetDependenciesgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromGetAssetDependenciesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope[

xmlnssoap=httpschemasxmlsoaporgsoapenvelopegt|httpschemasxmlsoaporgsoapenvelope]

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetAssetDependenciesResponse[

xmlnsns2=httppbcomEngageOnewsmodel|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt86d472c5-fc85-4552-8ed4-a979f9778c6alttokengt

ltSessionTokengtltauthContextgtltexportItemsgt

ltns2idgt357ltns2idgtltns2assetLogicalPathgtmyDocumetClassltns2assetLogicalPathgtltns2typegtDOCUMENT_CLASSltns2typegt

ltexportItemsgtltns4GetAssetDependenciesResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 163

Appendix B - SOAP API

Folder service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSFolderServicewsdl

listFolderContents()

Description

This Web Service operation is used to list folder contents

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 164

Appendix B - SOAP API

Parameters

Input

ListFolderContents

request type ListFolderContents - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 filter type ListFolderContentsFilter - minOccurs=0 maxOccurs=unbounded ListFolderContentsFilter - type string enum

values FOLDER TEMPLATENON-INTERACTIVE-FOLDERNON-INTERACTIVE-TEMPLATEACTIVE-CONTENT-FOLDERACTIVE-CONTENTVERSION

mode type ListFolderContentsMode - minOccurs=1 maxOccurs=1 default=POPULATED ListFolderContentsMode - type string enum values POPULATED ALL

Output

ListFolderContentsResponse

response type ListFolderContentsResponse - extension of type ResponseMessage

folderContent type FolderContent - minOccurs=1 maxOccurs=1 id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded

templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 path type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 interactive type boolean - minOccurs=1 maxOccurs=1 versions type FolderVersion - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 current type boolean - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1

importedBy type string - minOccurs=1 maxOccurs=1 importedDate type string - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1 publishDate type string - minOccurs=1 maxOccurs=1

Fault

FolderFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 165

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsfol=httppbcomEngageOnewsfolder xmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltfolListFolderContentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltpathgtltpathgtlt--Optional--gtltfiltergtACTIVE-CONTENT-FOLDERltfiltergtltfiltergtFOLDERltfiltergtltfiltergtTEMPLATEltfiltergtltmodegtALLltmodegt

ltfolListFolderContentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 166

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3ListFolderContentsResponse xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsfoldergt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9c3d1b67-322b-4091-a850-b17df1fe4f44lttokengtltSessionTokengt

ltauthContextgtltfolderContentgt

ltidgt0ltidgtltfoldersgt

ltidgt547ltidgtltnamegtac_folderltnamegtltdescriptiongtac_folderltdescriptiongtlttypegtactive-contentlttypegt

ltfoldersgtltfoldersgt

ltidgt1012ltidgtltnamegttemplate_folderltnamegtlttypegttemplatelttypegt

ltfoldersgtlttemplatesgt

ltidgt844ltidgtltnamegtOneltnamegtltdescriptiongtOneltdescriptiongtltpathgtltpathgtlttypegttemplatelttypegtltinteractivegttrueltinteractivegtltimportedBygtuser1ltimportedBygtltimportedDategtThu Apr 20 000000 CEST 2017ltimportedDategtltversiongt10ltversiongtltpublishDategt22-Apr-2015ltpublishDategt

lttemplatesgtltfolderContentgt

ltns3ListFolderContentsResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 167

Appendix B - SOAP API

Data push service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDataPushServicewsdl

pushData()

Description

This Web service pushes data into the EngageOne Server

This Web service validates request data then invokes a common framework for mapping or persisting the data passed in by the service request

Parameters

Input

PushDataRequest

request type PushData - extension of type RequestMessage

template type TemplateIdentifier - optionalident type IntegerIDOrName - optionaleffectiveDate type date - optional

pushDataFile type DataPushFile data type base64Binary

mapId type string returnFiles type boolean - optionalpushUserId type string - optionalexternalId type string - optional

Output

PushDataResponse

response type PushDataResponse - extension of type ResponseMessage

workItem type workItem - optional

Fault

DataPushFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 168

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopegtltsoapenvBodygtltns11PushData xmlnsns11=httppbcomEngageOnewsdatapush

xmlnsxsi=httpwwww3org2001XMLSchema-instancexsitype=ns11PushDatagt

ltauthContext xmlns=httppbcomEngageOnewscommongtltUsernameTokengt ltdomaingt ltidentgt ltnamegtEngageOneltnamegt

ltidentgtltdomaingtltuserIdgteosuperltuserIdgtltpasswordgtPassword1ltpasswordgt

ltUsernameTokengtltauthContextgtltpushDataFilegtltdatagtltdatagt

ltpushDataFilegtltmapIdgttestltmapIdgtltpushUserIdgteomanagerltpushUserIdgtltexternalIdgt1234567ltexternalIdgt

ltns11PushDatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns1PushDataResponse

xmlnsns1=httppbcomEngageOnewsdatapushxmlnsns2=httppbcomEngageOnewsmodel

xmlnsns3=httppbcomEngageOnewscommongtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtb9da9e70833f22a93b71ac2671aed830_1275060509093_2lttokengtltSessionTokengt

ltauthContextgtltns1PushDataResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 169

Appendix B - SOAP API

Delivery management service

suspendDeliveryItem()

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryManagementServicewsdl

searchDeliveryOptions()

Description

This Web service retrieves delivery options by delivery option ID or name or the delivery options associated with a given template ID or name

If the search filter is set to LIST a list of delivery options will be returned without their respective delivery channels If the search filter is DETAIL the delivery channels devices and recipients will also be returned

If both template and delivery option details are provided in the request templates will be searched that match both the template and delivery option criteria

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 170

Appendix B - SOAP API

Parameters

Input

SearchDeliveryOptionsRequest

request type SearchDeliveryOptions - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionident type IntegerIdOrName

Output

SearchDeliveryOptionsResponse

response type SearchDeliveryOptionsResponse - extension of type ResponseMessage

deliveryOptions - optionaldeliveryOption - unbounded type DeliveryOption - extension of abstract type Entity id type ID - type int with restriction name type string channels - optional

channel - unbounded type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string

mode type DeliveryChannelMode - type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

Device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 171

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryOptionsgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2119ec197f798916ec4ddaa4eaa50939_1260816474406_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

ltcomidgtltcomidgtltidentgt

ltdeliveryOptiongtltdeliveryOptionsgt

ltdelSearchDeliveryOptionsgtltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 172

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryOptionsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryOptionsgtltdeliveryOptiongt

ltns2idgt1ltns2idgtltns2namegtCHO1ltns2namegt

ltdeliveryOptiongtltdeliveryOptionsgt

ltns4SearchDeliveryOptionsResponsegtltenvBodygt

ltenvEnvelopegt

searchDevices()

Description

This Web service retrieves devices by device ID or name or devices associated with the specified delivery options or templates

The search filter is not used by this service

If device template delivery option details are provided in the request devices will be searched that match all of the provided criteria

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 173

Appendix B - SOAP API

Parameters

Input

SearchDevicesRequest

request type SearchDevices - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionsident type IntegerIdOrName

devices - optionaldevice - unboundedident type IntegerIdOrName preview - optional type boolean

Output

SearchDevicesResponse

response type SearchDevicesResponse extension of type ResponseMessage

devices - optionaldevice - unbounded type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 174

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDevicesgt lt--Optional--gtltcomauthContextgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomUsernameTokengt ltcomdomainNamegtFirstDomainltcomdomainNamegtltcomuserIdgteosuperltcomuserIdgt

lt--Optional--gtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gtltcomfiltergtDETAILltcomfiltergtlt--Optional--gtlttemplatesgt

lttemplategtltidentgt lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 175

Appendix B - SOAP API

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltdeliveryOptiongt

ltdeliveryOptionsgtlt--Optional--gtltdevicesgt lt--1 or more repetitions--gt

ltdevicegt ltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlt--Optional--gtltpreviewgtltpreviewgt

ltdevicegtltdevicesgt

ltdelSearchDevicesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 176

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchDevicesResponsexmlnsns1=httppbcomEngageOnewsdeliveryManagementxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtbfdba5d08d1299b13651c7c6e25df6a1_1260900326187_0lttokengt

ltSessionTokengtltauthContextgt

ltdevicesgt ltdevicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgt

ltns2HIPIdgt110ltns2HIPIdgtltns2metaIdgt111ltns2metaIdgt

ltdevicegtltdevicesgt

ltns1SearchDevicesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 177

Appendix B - SOAP API

Dictionary service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDictionaryServicewsdl

searchSpellerManifest()

Description

This Web service is used to retrieve the speller manifest loaded in the system

The speller manifest contains a listing of all languages supported by the system and is primarily used by EngageOne Interactive Editor (ActiveX component) for loading dictionary resources

A custom application will not need to parse this file directly but make it available for the Interactive Editor to use

For more infromation on how to integrate the Interactive Editor into a custom application see Integrating with EngageOne SOAP

Parameters

Input

SearchSpellerManifestRequest

request type SearchSpellerManifest - extension of type SearchRequestMessage

Output

SearchSpellerManifestResponse

response type SearchSpellerManifestResponse - extension of type ResponseMessage

manifest - optional type SpellerManifest - extension of abstract type Entity id type ID - type int with restriction data - optional type base64Binary

Fault

DictionaryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 178

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdic=httppbcomEngageOnewsdictionaryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdicSearchSpellerManifestgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltdicSearchSpellerManifestgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchSpellerManifestResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdictionaryxmlnsns5=httppbcomEngageOnewskeymapgt

ltmanifestgt ltns2idgt97ltns2idgtltns2datagt

ltxopIncludehref=ciddata-92afb4f2-e02b-41d0-926b-7eb02575fee1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltmanifestgt

ltns4SearchSpellerManifestResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 179

Appendix B - SOAP API

Domain service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDomainServicewsdl

searchDomains()

Description

This Web service can be used to retrieve a list of EngageOne domains A typical use for this operation would be to pass an empty request and retrieve a list of all domains

This Web service operation is the only operation which does not require authentication

Parameters

Input

SearchDomainsRequest

request type SearchDomains - extension of type RequestMessage

domains - optionaldomain ident type StringIdOrName

Output

SearchDomainResponse

response type SearchDomainsResponse - extension of type ResponseMessage

domains - optionaldomain - unbounded type Domain id type string name type string

Fault

DomainFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 180

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdom=httppbcomEngageOnewsdomainxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdomSearchDomainsgt ltdomSearchDomainsgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDomainsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdomainxmlnsns5=httppbcomEngageOnewskeymapgt

ltdomainsgt ltdomaingt ltns2idgtBB81F0DC-AF0A-4318-9398-D37832916DC9ltns2idgt

ltns2namegtA01ltns2namegtltdomaingtltdomaingt ltns2idgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltns2idgt

ltns2namegtFirstDomainltns2namegtltdomaingtltdomaingt ltns2idgt29CAB1A2-586E-4459-977B-C11819A1680Dltns2idgt

ltns2namegtSecondDmainltns2namegtltdomaingtltdomaingt ltns2idgt232CD981-5208-4C4D-A89B-C3B739266C54ltns2idgt

ltns2namegtThirdltns2namegtltdomaingt

ltdomainsgtltns4SearchDomainsResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 181

Appendix B - SOAP API

Editor service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSEditorServicewsdl

Note Some tags have been broken up for formatting purposes

retrieveResources()

Description

This Web service is used to retrieve resources required by the EngageOne Interactive Editor (ActiveX component)

A custom application intending on embedding the Interactive Editor must use this service operation to retrieve files on behalf of the editor

See Integrating with EngageOne SOAP for more information

Parameters

Input

RetrieveResourcesRequest

request type RetrieveResources extension of type RequestMessage

resources resource - unboundedid type ID - type int with restriction

Output

RetrieveResourcesResponse

response type RetrieveResourcesResponse - extension of type ResponseMessage

resources resource - unbounded type EditorResource - extension of abstract type Entity id type ID - type int with restriction data type base64Binary

Fault

EditorFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 182

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsedit=httppbcomEngageOnewseditorxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtlteditRetrieveResourcesgt

ltcomauthContextgt ltcomSessionTokengt

ltcomtokengt13be6dbe35df5bb735401da4d94dc9c0_1261584686465_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltresourcesgt

ltresourcegt ltidgt97ltidgt

ltresourcegtltresourcesgt

lteditRetrieveResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegtltenvHeadergtltenvBodygt

ltns4RetrieveResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewseditorgt

ltresourcesgt ltresourcegt

ltns2idgt97ltns2idgt

lt--The following ltns2datagt tag has been broken up for formattingpurposes--gt

ltns2datagtPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTcGVsbGVycz4NCjxMYW5ndWFnZXM+DQo8TGFuZ3VhZ2UgTmFtZT0iRU5HTElTSCI+DQo8TGV4aWNvbkZpbGUgTmFtZT0iX0VOR0xJU0guTEVYIiBTUklEPSI2Ii8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfRU5HTElTSC5BQkIiIFNSSUQ9IjQiLz4NCjxJbmRleEZpbGUgTmFtZT0iX0VOR0xJU0guSURYIiBTUklEPSI1Ii8+DQo8SGlzdG9yeUZpbGUgTmFtZT0iX0hJU1RPUlkuR0IiIFNSSUQ9IjMyIi8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5HQiIgU1JJRD0iODYiLz4NCjwvTGFuZ3VhZ2U+DQo8TGFuZ3VhZ2UgTmFtZT0iQU1FUklDQU4iPg0KPExleGljb25GaWxlIE5hbWU9I

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 183

Appendix B - SOAP API

l9BTUVSSUNBLkxFWCIgU1JJRD0iMTAwIi8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfQU1FUklDQS5BQkIiIFNSSUQ9Ijk4Ii8+helliphelliphelliphelliphelliphelliphelliphelliphelliphellipDQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfU1dJU1NfTi5BQkIiIFNSSUQ9IjczIi8+DQo8SW5kZXhGaWxlIE5hbWU9Il9TV0lTU19OLklEWCIgU1JJRD0iNzQiLz4NCjxIaXN0b3J5RmlsZSBOYW1lPSJfSElTVE9SWS5DSDIiIFNSSUQ9IjI1Ii8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5DSDIiIFNSSUQ9Ijc5Ii8+DQo8L0xhbmd1YWdlPg0KPC9MYW5ndWFnZXM+DQo8L1NwZWxsZXJzPg0K ltns2datagt

ltresourcegtltresourcesgt

ltns4RetrieveResourcesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 184

Appendix B - SOAP API

Keymap service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSKeymapServicewsdl

ImportKeymap()

Description

This Web service is used to import a key map file into the EngageOne system A key map file is generated using the EngageOne Key Map Generator

The name of the key map and the image path must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

ImportKeymapRequest

request type ImportKeymap - extension of type RequestMessage

keymapname type string imagepath type string archive type base64Binary

Output

ImportKeymapResponse

response type ImportKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePath type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 185

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyImportKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltimagePathgtCltimagePathgtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyImportKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegtltns2imagePagegtCltns2imagePagegt

ltkeymapgtltns4ImportKeymapResponsegt

ltenvBodygtltenvEnvelopegt

searchKeyMaps()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 186

Appendix B - SOAP API

Description

This Web service is used to get key map information key map file and key map image information for a specified key map

This service requires the key map name or ID to be specified in order to return information

If the user wants the key map XML file to be returned the DETAIL filter has to be specified in the request

If searching for a key map image file the key image name or ID needs to be specified in the request in addition to key map ID The files are returned as base64Binary attachments

This service provides additional search capabilities to the HTTP request method of getting key map image files in a conformed way This service is similar to other search services in EngageOne Server

Note You can only search for an image file for the specified key map at a time The service will not return more then one image file per request

There are four scenarios available for requests

bull filter = LIST - the service will return the key map information (name and image path) bull filter = DETAIL - the service will return the key map information and the key map XML file bull filter = LIST and image requested - the service will return the key map information and the requested image bull filter = DETAIL and image requested - the service will return the key map information the key map XML file and the requested image

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 187

Appendix B - SOAP API

Parameters

Input

SearchKeymapRequest

request type Search - extension of type SearchRequestMessage

bull filter = LIST or DETAIL- enumeration has to be specified depending on what information and files has to be returned

bull keymaps

keymapident type IntegerIdOrName - required parameter images - optional inclulded if image file to be returned image - minOccurs=1 maxOccurs=1 (Only on request)ident type IntegerIdOrName

Note image should be used to request a keyed image

Output

SearchKeymapsResponse

response type SearchKeymapResponse - extension of type ResponseMessage

keymapskeymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePage type string data type base64Binary - contains attachment with requested files images - optional include if image file to be returned image type KeyedImage - extension of abstract type Entity name type string data type base64Binary

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 188

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltkeySearchKeymapsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtmydomainltcomnamegt

ltcomidentgtltcomdomaingt

ltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltkeymapsgt

ltkeymapgtltidentgt

ltcomnamegtExternalKeyMapltcomnamegtltidentgtltimagesgt

ltimagegtltidentgt

ltcomnamegtC8643C4EEF874052A2DB4A97B0063690ltcomnamegtltidentgt

ltimagegtltimagesgt

ltkeymapgtltkeymapsgt

ltkeySearchKeymapsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 189

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchKeymapsResponsexmlnsns1=httppbcomEngageOnewskeymapxmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewskeymapxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt96707b532a8348359ac9cb4e6904d79b_132 2713559246_0lttokengt

ltSessionTokengtltauthContextgtltkeymapsgt

ltkeymapgtltns5idgt1ltns5idgtltns5namegtExternalKeyMapltns5namegt

ltns5imagePathgtCEngageOneQAKeyMapltns5imagePathgt

ltns5datagt ltxopInclude

href=ciddata-38d4d706-2281-45c2-96bb-e8e95407d05awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagesgt

ltns5imagegtltns5idgt1ltns5idgt

ltns5namegtC8643C4EEF874052A2DB4A97B0063690ltns5namegtltns5datagt

ltxopIncludehref=ciddata-93da5279-1d5b-4f9c-9a78-c9701ab93e81wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagegt

ltns5imagesgtltkeymapgt

ltkeymapsgtltns1SearchKeymapsResponsegt

ltenvBodygtltenvEnvelopegt

updateKeymap()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 190

Appendix B - SOAP API

Description

This Web service is used to update a key map file into the EngageOne system

The update process adds any new images and updates existing images in the target directory A key map file is generated using the EngageOne Key Map Generator

The name of the key map must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

UpdateKeymapRequest

request type UpdateKeymap - extension of type RequestMessage

keymapname type string archive type base64Binary

Output

UpdateKeymapResponse

response type UpdateKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 191

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyUpdateKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyUpdateKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4UpdateKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegt

ltkeymapgtltns4UpdateKeymapResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 192

Appendix B - SOAP API

Metadata service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSMetadataServicewsdl

searchMetadata()

Description

This Web service is used to search for metadata associated with a document class as specified by the document class identifier (ID or name)

If the search filter is set to LIST only the document class will be returned If the search filter is set to DETAIL the document class and metadata fields and any associated workflow will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 193

Appendix B - SOAP API

Parameters

Input

SearchMetadataRequest

request type SearchMetadata - extension of type SearchRequestMessage

docClasses - optionaldocClass ident type IntegerIdOrName

Output

SearchMetadataResponse

response type SearchMetadataResponse - extension of type ResponseMessage

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optionalfield - unbounded type MetadataField - extension of abstract type Entity id type ID - type int with restriction name type string type MetadataFieldType - type string with restriction - enum STRING DATE NUMBER CHOICE value - optional - type MetadataFieldValue MetadataString type string MetadataDate type date MetadataNumber type decimal MetadataChoice is recursive

workflows - optionalworkflow - unbounded type Workflow - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

MetadataFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 194

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsmet=httppbcomEngageOnewsmetadataxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltmetSearchMetadatagt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltmetSearchMetadatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchMetadataResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmetadataxmlnsns5=httppbcomEngageOnewseditorgt

ltdocClassesgt ltdocClassgt

ltns2idgt11ltns2idgtltns2namegtInvoiceltns2namegtltns2descriptiongt

ltdocClassgtltdocClassgt

ltns2idgt12ltns2idgtltns2namegtClaimltns2namegtltns2descriptiongt

ltdocClassgtltdocClassesgt

ltns4SearchMetadataResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 195

Appendix B - SOAP API

Request status update service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSRequestStatusUpdateServicewsdl

postEvent()

Description

This Web service is used by EngageOne Deliver to provide information requests received from EngageOne

Parameters

Input

RequestStatusUpdateRequest

request type DIJInformation - extension of type RequestMessage

docInstanceID type string code type string message type string

Output

RequestStatusUpdateResponse

response type ResponseMessage

Fault

fault type ServiceFault

result type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 196

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsstat=httppbcomEngageOnewsdeliverystatusupdatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltstatRequestStatusUpdategtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtEngageOneltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtlt--Optional--gtltcompasswordgtPasswordltcompasswordgtlt--Optional--gtltcomtransientSessiongttrueltcomtransientSessiongt

ltcomUsernameTokengtltcomauthContextgtltDIJInformationgt

ltdocInstanceIDgtBBBBBBBltdocInstanceIDgtltcodegtDELIVRDltcodegtlt--Optional--gtltmessagegtThis iem was deliveredltmessagegt

ltDIJInformationgtltstatRequestStatusUpdategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2RequestStatusUpdateResponsexmlnsns2=httppbcomEngageOnewsdeliverystatusupdatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommongt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 197

Appendix B - SOAP API

Security service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSSecurityServicewsdl

searchRoles()

Description

This Web service is used to return the list of roles that associated with the specified user ID

Possible roles returned include

bull Community Administrator bull Delivery Manager bull Document Manager bull Editor bull Editor with saving new templates

bull External File Manager bull Project Manager bull Reviewer bull Template Manager bull Viewer bull Viewer with Reprint bull Workflow Administrator

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 198

Appendix B - SOAP API

Parameters

Input

SearchRolesRequest

request type SearchRoles - extension of type SearchRequestMessage

Users - optionaluser id type string

Output

SearchRolesResponse

response type SearchRolesRequest - extension of type ResponseMessage

roles - optionalrole - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optionaluser - unbounded type User id type string roles - optional is recursive

Fault

SecurityFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltsecSearchRolesgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltusersgt

ltusergt ltidgteosuperltidgt

ltusergtltusersgt

ltsecSearchRolesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 199

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchRolesResponse[xmlnsns2=httppbcomEngageOnewsmodel

|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewssecurityxmlnsns5=httppbcomEngageOnewseditorgt

ltrolesgt ltrolegt

ltns2idgt40ltns2idgtltns2namegtDocument Managerltns2namegt

ltrolegtltrolegt

ltns2idgt41ltns2idgtltns2namegtEditorltns2namegt

ltrolegtltrolesgt

ltns4SearchRolesResponsegtltenvBodygt

ltenvEnvelopegt

invalidateSession()

Description

This Web service is used to invalidate an authenticated session

This is necessary not to hold open sessions against the license limits of your EngageOne system

The session token must be specified in the authentication context of the request

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 200

Appendix B - SOAP API

Input

InvalidateSessionRequest

request type InvalidateSession - extension of type ResponseMessage

Output

InvalidateSessionResponse

response type InvalidateSessionResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

trustedConnectionLogin()

Description

This Web service is used to create Trusted Connection token

Parameters

Input

TrustedConnectionLoginRequest

request type TrustedConnectionLogin - extension of type ResponseMessage

Output

TrustedConnectionLoginResponse

response type TrustedConnectionLoginResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 201

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltsecTrustedConnectionLogingtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegttestltcomnamegt

ltcomidentgtltcomdomaingt

lt--user1(below)- this is the user that requires access to EngageOneand should exist in LDAP This scenario may be encountered whenthe user does not know their own passwordEg to login it uses card biometric etc --gt

ltcomuserIdgtuser1ltcomuserIdgt

lt--abc123(below) is the ApiKey defined in deployproperties undersecuritytrustedconnectionapikey--gt

ltcompasswordgtabc123ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level

--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 202

Appendix B - SOAP API

ltcomcommunitygtltcomcommunitygtltsecTrustedConnectionLogingt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns2TrustedConnectionLoginResponse

xmlnsns2=httppbcomEngageOnewssecurityxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt455e80b3-645c-41a0-91e6-7b355d1932a2lttokengt

ltSessionTokengtltauthContextgt

ltns2TrustedConnectionLoginResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 203

Appendix B - SOAP API

Template service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSTemplateServicewsdl

deleteTemplate()

Description

This Web service is used to delete a template from the system as specified by a template identifier (ID or name)

All versions of the template with the same name are deleted

Parameters

Input

DeleteTemplate

request type DeleteTemplate - extension of type RequestMessage

templateid type IntegerIdOrName

Output

DeleteTemplateResponse

response type DeleteTemplateResponse - extension of type ResponseMessage

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 204

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemDeleteTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplategtltidgt

ltcomidgt222ltcomidgtltidgt

lttemplategtlttemDeleteTemplategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteTemplateResponsexmlnsns2=httppbcomEngageOnewstemplatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

importActiveContent()

Description

This Web service is used to import an Active Content archive into the EngageOne system Active Content items are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 205

Appendix B - SOAP API

Parameters

Input

ImportActiveContent

request type ImportActiveContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportActiveContentResponse

response type ImportActiveContentResponse - extension of type ResponseMessage

activeContents activeContent - unbounded type ActiveContent - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 206

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportActiveContentgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid784040028172ltarchivegtltfoldergt

ltidentgt ltcomidgt240ltcomidgt

ltidentgtltfoldergt

lttemImportActiveContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 207

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportActiveContentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltactiveContentsgt ltactiveContentgt

ltns2idgt260ltns2idgtltns2namegtAC_Textltns2namegtltns2parentgt

ltns2idgt240ltns2idgtltns2parentgt

ltns2pathgtInvoiceActiveCotentFolderAC_Textltns2pathgtltns2versiongt10ltns2versiongt

ltactiveContentgtltactiveContentsgt

ltns4ImportActiveContentResponsegtltenvBodygt

ltenvEnvelopegt

importMessageContent()

Description

This Web service is used to import a Message Content archive into the EngageOne system Message Content is defined using Content Author

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 208

Appendix B - SOAP API

Parameters

Input

ImportMessageContent

request type ImportMessageContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportMessageContentResponse

response type ImportMessageContentResponse - extension of type ResponseMessage

messageContentsmessageContent - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportMessageContentgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcidcid1184235865156ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportMessageContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 209

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1ImportMessageContentResponsexmlnsns1=httppbcomEngageOnewstemplatexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdatapushgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt05a6a80cadcba8cb11c896cceb18ad46_1330033598071_2

lttokengtltSessionTokengt

ltauthContextgtltmessageContentsgt

ltmessageContentgtltns2idgt1ltns2idgtltns2namegtmessage inchesltns2namegtltns2pathgtMCmessage inchesltns2pathgtltns2versiongt10ltns2versiongt

ltmessageContentgtltmessageContentsgt

ltns1ImportMessageContentResponsegtltenvBodygt

ltenvEnvelopegt

importTemplate()

Description

This Web service is used to import a template archive into the EngageOne system Templates are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 210

Appendix B - SOAP API

Parameters

Input

ImportTemplate

request type ImportTemplate - extension of type RequestMessage

archive type base64Binary folder ident type IntegerIdOrName

Output

ImportTemplateResponse

response type ImportTemplateResponse - extension of type ResponseMessage

templatestemplate - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 211

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid1215487361289ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportTemplategtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 212

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportTemplateResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

lttemplatesgtlttemplategt

ltns2idgt231ltns2idgtltns2namegtEngageOne Introductionltns2namegtltns2parentgt

ltns2idgt221ltns2idgtltns2parentgt

ltns2pathgtInvoiceTESTEngageOne Introductionltns2pathgtltns2versiongt10ltns2versiongt

ltns2effectiveDategt2009-12-17-0500ltns2effectiveDategtltns2withdrawnDategt2999-12-31-0500ltns2withdrawnDategt

lttemplategtlttemplatesgt

ltns4ImportTemplateResponsegtltenvBodygt

ltenvEnvelopegt

searchFolders()

Description

This Web service retrieves folders by folder identifier (ID or name)

If the search filter is set to LIST a high-level list of folders will be returned without their respective children

If the search filter is DETAIL the next level of children (templates and folders) will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 213

Appendix B - SOAP API

Parameters

Input

SearchFolders

request type SearchFolders - extension of type SearchRequestMessage

folders - optionalfolder ident type IntegerIdOrName

Output

SearchFoldersResponse

response type SearchFoldersResponse - extension of type ResponseMessage

folders - optionalfolder - unbounded type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional

folder type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withdrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 214

Appendix B - SOAP API

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract

type Entity is recursive docClasses - optional is recursive children - optional is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optional is recursive children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 215

Appendix B - SOAP API

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

Fault

TemplateFault (soapfault use = literal)

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchFoldersgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltfoldersgt

ltfoldergt ltidentgt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltfoldergt

ltfoldersgtlttemSearchFoldersgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 216

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchFoldersResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfoldersgt ltfoldergt

ltns2idgt0ltns2idgtltns2namegtltns2namegtltns2childrengt ltns2foldergt ltns2idgt118ltns2idgt

ltns2namegtInvocesltns2namegtltns2parentgt

ltns2idgt0ltns2idgtltns2parentgt

ltns2foldergtltns2childrengt

ltfoldergtltfoldersgt

ltns4SearchFoldersResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplateResources()

Description

This Web service retrieves template related files by template identifier (ID or name) and file type

The search filter is not used by this service operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 217

Appendix B - SOAP API

Parameters

Input

SearchTemplateResources

request type SearchTemplateResources - extension of type SearchRequestMessage

templateident type integerIdOrName files - optional

file - unbounded is recursive

Output

SearchTemplateResourcesResponse

response type SearchTemplateResourcesResponse - extension of type ResponseMessage

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity id type ID - type int with restriction name type string type type TemplateFileType - type string with restriction - enum ANSWER SCHEMAXFORM PROPERTY PUBX HIP IMAGE OTHER DATAMODEL PREVIEWPROMPTLOGIC THUMBNAIL DATAMODEL PREVIEW PROMPTLOGIC THUMBNAILdata type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 218

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplateResourcesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtPUBXlttypegt

ltfilegtltfilegt

lttypegtHIPlttypegtltfilegt

ltfilesgtlttemplategt

lttemSearchTemplateResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 219

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplateResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfilesgt ltfilegt

ltns2idgt121ltns2idgtltns2typegtPUBXltns2typegt

ltfilegtltfilegt

ltns2idgt120ltns2idgtltns2typegtHIPltns2typegt

ltfilegtltfilesgt

ltns4SearchTemplateResourcesResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplates()

Description

This Web service searches templates by document class

This Web service supports on-demand licensing

If the type element is omitted the system returns INTERACTIVE_ONLY results by default

If returnAttributes is included with the attribute set to DOC_CLASSES the service returns document class information along with template information

You do not need to set the search filter to DETAIL in order to obtain document class information

If the returnAttributes element is omitted the service does not return document class information with template information just as it does with a LIST filter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 220

Appendix B - SOAP API

Parameters

Input

SearchTemplates

request type SearchTemplates - extension of type SearchRequestMessage

returnAttributes - optionalattribute - unbounded type SearchTemplatesReturnAttribute

- type string with restriction - enum DOC_CLASSES

templates - optionaltemplate

ident type IntegerIdOrName effectiveDate - optional type date

docClasses - optionaldocClass

ident type IntegerIdOrName fields - optional is recursive

sorting - optional type SortingControls fields

field - unbounded type SortField type type SortFieldType - type string with restriction -

enum NAME MODIFIED_TIME WORK_ITEM_EXTERNAL_IDOWNER_NAME CREATOR_NAME APPLICATION_NAMEDATE STATUS TEMPLATE_NAME DELIVERY_COUNT

order type SortOrder - type string with restriction - enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

type - optional type SearchTemplateFilterType - type string with restriction - enum

INTERACTIVE_ONLY NON_INTERACTIVE_ONLY BOTH

Output

SearchTemplatesResponse

response type SearchTemplatesResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

templates - optionaltemplate - unbounded type Template - extension of abstract

type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity

id type ID - type int with restriction name type string

type type TemplateFileType - type string with restriction -

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 221

Appendix B - SOAP API

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHERDATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 222

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplatesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltreturnAttributesgt

ltattributegtDOC_CLASSESltattributegtltreturnAttributesgtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltcomnamegtIntroltcomnamegt

ltidentgtlteffectiveDategtlteffectiveDategt

lttemplategtlttemplatesgtltsortinggt

ltfieldsgt ltfieldgt

lttypegtlttypegtltordergtltordergt

ltfieldgtltfieldsgt

ltsortinggtltpaginationgt

ltpageNumbergtltpageNumbergtltpageSizegtltpageSizegt

ltpaginationgtlttypegtINTERACTIVE_ONLYlttypegt

lttemSearchTemplatesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 223

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplatesResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdeliverystatusupdatexmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgt

ltpaginationgtlttemplatesgt

lttemplategtltns3idgt171ltns3idgtltns3namegtASRrequirementsltns3namegtltns3parentgt

ltns3idgt162ltns3idgtltns3namegtTemplatesltns3namegtltns3typegtREGULARltns3typegt

ltns3parentgtltns3descriptiongtASRrequirementsltns3descriptiongtltns3pathgtTemplatesASRrequirementsltns3pathgtltns3versiongt10ltns3versiongtltns3filesgt

ltns3filegt ltns3idgt172ltns3idgtltns3namegttemplatehipltns3namegtltns3typegtHIPltns3typegtltns3datagt

ltxopIncludehref=ciddata-1fa8d44-f187-4c27-a7f4-44e5611e09abwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt173ltns3idgtltns3namegttemplatepubxltns3namegtltns3typegtPUBXltns3typegtltns3datagt

ltxopIncludehref=ciddata-3b3c834e-8603-484a-a450-4e31f60bbd3awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt174ltns3idgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 224

Appendix B - SOAP API

ltns3datagtltns3namegt0DF00BE136E7490D920F999500B4839Cxformltns3namegt

ltns3typegtXFORMltns3typegtltns3datagt

ltxopIncludehref=ciddata-d0c51091-d8ee-427b-b21c-dbb1662936cbwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3filegtltns3filegt ltns3idgt175ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxmlltns3namegtltns3typegtANSWERltns3typegtltns3datagt ltxopInclude

href=ciddata-b2b74571-7fb5-4643-a8ef-57c55fa86744wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt ltns3idgt176ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxsdltns3namegtltns3typegtSCHEMAltns3typegtltxopInclude

href=ciddata-82e3424-bb1d-4f38-99a7-8b7c9965de0wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3datagt ltns3filegtltns3filegt ltns3idgt177ltns3idgt

ltns3namegtProperty_4338420834667219234xmlltns3namegtltns3typegtPROPERTYltns3typegtltns3datagt

ltxopIncludehref=ciddata-aba52bf7-5146-4dba-89d3-d70067a7916fwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt

ltns3filesgtltns3effectiveDateSelectiongt

ltns3versionsHaveEffectivDategtfalseltns3versionsHaveEffectivDategt

ltns3selectionCriteriagtCURRENT_DATEltns3selectionCriteriagtltns3effectiveDateSelectiongtltns3spellCheckgtUSER_CANNOT_CLOSEltns3spellCheckgt

lttemplategtlttemplatesgt

ltns4SearchTemplatesResponsegtltenvBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 225

Appendix B - SOAP API

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 226

Appendix B - SOAP API

Workitem service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkItemServicewsdl

approveWorkItem()

Description

This method is not supported in this release

createWorkItem()

Description

This Web service can be used to create a new work item for a specified template with associated files (for example answer schema etc)

The work item is created for delivery to the specified delivery option

Additional information is required to create the work item

This includes

an external identifier which can be used as a cross-reference into an external system the user ID of the current operator creating the work item the status of the newly created work item and the application name for which the work item is being created

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 227

Appendix B - SOAP API

Parameters

Input

CreateWorkItemRequest

request type CreateWorkItem - extension of type RequestMessage

templateident type integerIdOrName

workItem externalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

applicationName type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

CreateWorkItemResponse

response type CreateWorkItemResponse - extension of type ResponseMessage

workItem type WorkItem - extension of abstract type Entity id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNED

FAILED_DELIVERY FINISHED OPEN PENDING_APPROVAL

PENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

lastModifiedDate type date

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 228

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworCreateWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtlttemplategt

ltworkItemgt ltexternalIdgtFrank001ltexternalIdgtltcurrentOperatorgteosuperltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltapplicationNamegtCommit By Soap UIltapplicationNamegtltfilesgt

ltfilegt ltnamegtAnswerFile_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326563ltdatagt

ltfilegtltfilegt

ltnamegtPUB_16342009033447pubxltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326564ltdatagt

ltfilegtltfilegt

ltnamegtHIP_16342009033447hipltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326565ltdatagt

ltfilegtltfilegt

ltnamegtProperty_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326566ltdatagt

ltfilegtltfilesgt

ltworkItemgtltworCreateWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 229

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1CreateWorkItemResponsexmlnsns1=httppbcomEngageOnewsworkItemxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewskeymapgt

ltworkItemgt ltns2idgt134ltns2idgt

ltworkItemgtltns1CreateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

deleteWorkItem()

Description

This Web service can be used to delete a work item specified by a work item ID

Pameters

Input

DeleteWorkItemRequest

request type DeleteWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

Output

DeleteWorkItemResponse

response type DeleteWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 230

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworDeleteWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt2ltidgtltworkItemgt

ltworDeleteWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

getWorkItemAssignees()

Description

This Web service is used to retrieve the list of potential assignees for an existing work item as specified by a work item identifier (ID or name)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 231

Appendix B - SOAP API

Parameters

Input

GetWorkItemAssigneesRequest

request type GetWorkItemAssignees - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

GetWorkItemAssigneesResponse

response type GetWorkItemAssigneesResponse - extension of type ResponseMessage

assignees - optionalassignee - unbounded type User id type string roles - optional

role - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optional is recursive

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkItemAssigneesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltworGetWorkItemAssigneesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 232

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4GetWorkItemAssigneesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltassigneesgtltassigneegt

ltns2idgtAdministratorltns2idgtltassigneegtltassigneegt

ltns2idgteodeliveryltns2idgtltassigneegtltassigneegt

ltns2idgteomanagerltns2idgtltassigneegt

ltassigneegt ltns2idgteosystemltns2idgt

ltassigneegtltassigneegt

ltns2idgteotemplateltns2idgtltassigneegt

ltassigneegt ltns2idgteouserltns2idgt

ltassigneegtltassigneegt

ltns2idgtpgeron01ltns2idgtltassigneegt

ltassigneesgtltns4GetWorkItemAssigneesResponsegt

ltenvBodygtltenvEnvelopegt

reassignWorkItem()

Description

This Web service is used to reassign a work item as specified by a work item ID to another user by user ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 233

Appendix B - SOAP API

Parameters

Input

ReassignWorkItemRequest

request type ReassignWorkItem - extension of abstract type WorkItemMaintRequest- extension of type RequestMessage

workItem id type ID - type int with restriction

assigneeid type string

Output

ReassignWorkItemResponse

response type ReassignWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworReassignWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt25ltidgtltworkItemgt

ltassigneegtltidgteouserltidgt

ltassigneegtltworReassignWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 234

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ReassignWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

rejectWorkItem()

Description

This method is not supported in this release

searchWorkItem()

Description

This Web service is used to search for work items by combination of work item list status or optionally with a work item identifier (ID or name)

Possible work item list statuses that can be searched for include

bull ACTIVE

bull SUBMITTED

bull ALL_ACTIVE

bull ALL_SUBMITTED

You can optionally filter the work item list by work item status delivery channel mode and delivery channel type The exception to this rule is when workItemListType is equal to ALL_ACTIVE or ACTIVE In this case the work item cannot be filtered with delivery channel type (ARCHIVE PRINT EMAIL FAX) and channel mode (BATCH IMMEDIATE) The list that is returned pertains to the user invoking the service

For example the operation can be used to return the list of active work items for the authenticated user If the search filter is set LIST the list of matching work items is returned If the search filter is set to DETAIL the files associated with the work items are also returned The Web service always returns a list of comments for each work item returned if there are any

If you submit Work Item ID or name in the search criteria the service returns the requested Work Item regardless of the user ID associated with it The service also disregards workItemListType parameter ( ACTIVE SUBMITTED ALL_ACTIVE ALL_SUBMITTED) if such is specified If you do not specify Work Item ID or name in the search parameters the workItemListType parameter is required

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 235

Appendix B - SOAP API

Parameters

Input

SearchWorkItemsRequest

request type SearchWorkItems - extension of type SearchRequestMessage

workItemListType type WorkItemListType - type string with restriction -enum ACTIVE SUBMITTED ALL_ACTIVE

ALL_SUBMITTED workItems - optionalworkItem

ident type IntegerIdOrName

workitemStatuses - optionalworkitemStatus type workitemStatus - type string with restriction -

enum ACTIVE_INCOMPLETE ACTIVE_NEW ACTIVE_COMPLETEASSIGNED FAILED_DELIVERY FINISHED OPENPENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

deliveryChannelModes - optionaldeliveryChannelMode type deliveryChannelMode - type string with restriction -

enum BATCH IMMEDIATE

deliveryChannelTypes - optionaldeliveryChannelType type deliveryChannelType - type string with restriction -

enum ARCHIVE PRINT EMAIL FAX

sorting - optional type SortingControls fields

field - unboundedl type SortField type type SortFieldType - type string with restriction -

enum WORK_ITEM_EXTERNAL_ID OWNER_NAME CREATOR_NAMEAPPLICATION_NAMEDATE STATUSTEMPLATE_NAME

order type SortOrder - type string with restriction -enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

language - optional type string

Output

SearchWorkItemsResponse

response type SearchWorkItemsResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

workItems - optionalworkItem - unbounded type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 236

Appendix B - SOAP API

lastModifiedDate type date

files - optionalfile - unbounded type WorkItemFile - extension of abstract type Entity

id type ID - type int with restriction name type string path type string type type TemplateFileType - type string with restriction -

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHER DATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

comments - optionalcomment - unbounded type WorkItemComment text type string - requireddate type DateTime - required

Note If multiple comments exist for the work item they will be returned sorted by datetime

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 237

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSearchWorkItemsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltcomfiltergtDETAILltcomfiltergtltworkItemListTypegtACTIVEltworkItemListTypegtltworkItemsgt

ltworkItemgt ltidentgt ltcomidgt43ltcomidgt

ltidentgtltworkItemgt

ltworkItemsgtltworkItemStatusesgt

ltworkItemStatusgtACTIVE_INCOMPLETEltworkItemStatusgtltworkItemStatusgtACTIVE_NEWltworkItemStatusgtltworkItemStatusgtACTIVE_COMPLETEltworkItemStatusgtltworkItemStatusgtASSIGNEDltworkItemStatusgtltworkItemStatusgtFAILED_DELIVERYltworkItemStatusgtltworkItemStatusgtFINISHEDltworkItemStatusgtltworkItemStatusgtOPENltworkItemStatusgtltworkItemStatusgtPENDING_APPROVALltworkItemStatusgtltworkItemStatusgtPENDING_DELIVERYltworkItemStatusgtltworkItemStatusgtSUBMITTED_APPROVEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REJECTEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REVIEWltworkItemStatusgt

ltworkItemStatusesgt

ltdeliveryChannelModesgtltdeliveryChannelModegtBATCHltdeliveryChannelModegtltdeliveryChannelModegtIMMEDIATEltdeliveryChannelModegt

ltdeliveryChannelModesgtltdeliveryChannelTypesgt

ltdeliveryChannelTypegtPRINTltdeliveryChannelTypegtltdeliveryChannelTypegtEMAILltdeliveryChannelTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 238

Appendix B - SOAP API

ltdeliveryChannelTypegtFAXltdeliveryChannelTypegtltdeliveryChannelTypegtARCHIVEltdeliveryChannelTypegt

ltdeliveryChannelTypesgtltworSearchWorkItemsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 239

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns3SearchWorkItemsResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsworkItemxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelxmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgtltpaginationgtltworkItemsgt ltworkItemgt ltns5idgt7ltns5idgtltns5externalIdgtWork Item 121634 -

1016803513ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

ltns5lastModifiedDategt2012-11-08T121635080-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt190ltns5idgtltns5namegtAnswerFile_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08162012121634xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-a21abe3f-4f64-4d87-becb-85619d8fc0c3wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt191ltns5idgtltns5namegtPUB_08162012121634pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08162012121634pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-1f28b175-1362-45b7-9717-bf311277cee6wsjbossorg

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 240

Appendix B - SOAP API

xmlnsxop=httpwwww3org200408xopincludegtltns5filegtltns5filegt ltns5idgt192ltns5idgtltns5namegtHIP_08162012121634hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08162012121634hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-a48a81bd-9b61-4140-8d08-292f3c12f47awsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt193ltns5idgtltns5namegtProperty_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08162012121634xmlltns5pathgt

ltns5typegtPROPERTYltns5typegtltns5datagt ltxopInclude

href=ciddata-6f19fa6c-e9a7-435e-94ad-bf84ba41140wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5dataltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTest Spell Check Closeltns5textgtltns5dategt2012-11-08T121635080-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemgt ltns5idgt9ltns5idgtltns5externalIdgtWork Item 121841 -

544723706ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 241

Appendix B - SOAP API

ltns5lastModifiedDategt2012-11-08T121842030-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt198ltns5idgtltns5namegtAnswerFile_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08182012121841xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-8fc4283-e36-4d13-8b38-fe9495dea2bfwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5filegtltns5filegt ltns5idgt199ltns5idgtltns5namegtPUB_08182012121841pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08182012121841pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-f2ebda42-e045-4c3e-a8f8-75fb13fd919dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt200ltns5idgtltns5namegtHIP_08182012121841hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08182012121841hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-9d66a164-c512-4566-aba6-6ef7c375c861wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt201ltns5idgtltns5namegtProperty_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08182012121841xmlltns5pathgt

ltns5typegtPROPERTYltns5typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 242

Appendix B - SOAP API

ltns5datagt ltxopInclude

href=ciddata-e2bb812a-7fa3-43cf-a035-81a3ccc96c6dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTestltns5textgtltns5dategt2012-11-08T121842030-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemsgtltns3SearchWorkItemsResponsegtltenvBodygtltenvEnvelopegt

submitWorkItem()

Description

This Web service is used to submit a work item and deliver the document after creating a work item using the WorkItemService createWorkItem operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 243

Appendix B - SOAP API

Parameters

Input

SubmitWorkItemRequest

request type SubmitWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

comment - optional type string

Output

SubmitWorkItemResponse

response type SubmitWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworSubmitWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltworkItemgt

ltworSubmitWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 244

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SubmitWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateWorkItem()

Description

This Web service is used to update a work item definition This includes the template associated with the work item work item details such as status and the delivery option associated with the work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 245

Appendix B - SOAP API

Parameters

Input

UpdateWorkItemRequest

request type UpdateWorkItem - extension of type RequestMessage

templateident type IntegerIdOrName

workitem id type ID - type int with restrictionexternalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

comment type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

UpdateWorkItemResponse

response type UpdateWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 246

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltcurrentOperatorgteouserltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltcommentgthello worldltcommentgt

ltworkItemgtltdeliveryOptiongt

ltidentgt ltcomidgt1ltcomidgt

ltidentgtltdeliveryOptiongt

ltworUpdateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 247

Appendix B - SOAP API

saveTemplateWorkItem()

Description

This Web service is used to create a new template work item A template work item is distinguished from a document instance work item using the WorkItemService createWorkItem operation The intent of a template work item is to make a new template available for use in document instance creation

Parameters

Input

SaveTemplateWorkItemRequest

request type SaveTemplateWorkItem - extension of type RequestMessage

templateWorkItemident - optional type IntegerIdOrName createdBy type string modelTemplateId type IntegerIdOrName targetTemplateName type string folderIdent type IntegerIdOrName files - optional

file - unbounded is recursive

comment - optional type string overwrite - optional type boolean

Output

SaveTemplateWorkItemResponse

response type SaveTemplateWorkItemResponse - extension of type ResponseMessage

workItem type TemplateWorkItem - extension of type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

lastModifiedDate type date modelTemplateId type ID - type int with restriction templateName type string folderId type ID - type int with restriction

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 248

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSaveTemplateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplateWorkItemgtltidentgt

ltcomidgt30ltcomidgtltidentgtltcreatedBygteosuperltcreatedBygtltmodelTemplateIdgt

ltcomidgt119ltcomidgtltmodelTemplateIdgtlttargetTemplateNamegtIntro_SaveAslttargetTemplateNamegt

ltfolderIdentgt ltcomidgt221ltcomidgt

ltfolderIdentgtltfilesgt

ltfilegt ltnamegtAnswerFile_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

ltnamegtPUB_18152009111556pubxltnamegtltpathgtInstanceFilesltpathgtlttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

ltnamegtHIP_18152009111556hipltnamegtltpathgtInstanceFilesltpathgtlttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

ltnamegtProperty_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtPROPERTYlttypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 249

Appendix B - SOAP API

ltdatagtcid278598095434ltdatagtltfilegt

ltfilesgtlttemplateWorkItemgtltcommentgt789456ltcommentgtltoverwritegttrueltoverwritegt

ltworSaveTemplateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SaveTemplateWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltworkItemgt ltns2idgt30ltns2idgtltns2externalIdgtWF05ltns2externalIdgtltns2createdBygteosuperltns2createdBygtltns2statusgtFINISHEDltns2statusgt

ltns2lastModifiedDategt2009-12-18-0500ltns2lastModifiedDategtltns2modelTemplateIdgt119ltns2modelTemplateIdgtltns2templateNamegtEngageOne

Introductionltns2templateNamegtltns2folderIdgt221ltns2folderIdgt

ltworkItemgtltns4SaveTemplateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

addWorkItemComment()

Description

This Web service is used to add a comment to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 250

Appendix B - SOAP API

Parameters

Input

AddWorkItemCommentRequest

request type AddWorkItemComment - extension of type RequestMessage extension of type RequestMessageworkItem id type ID - type int with restriction comment type string

Output

AddWorkItemCommentResponse

response type AddWorkItemCommentResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

updateWorkItemStatus()

Description

This Web service is used to update the status of an existing work item

Parameters

Input

UpdateWorkItemStatusRequest

request type UpdateWorkItemStatus - extension of type RequestMessage

workItem id type ID - type int with restriction status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

Output

UpdateWorkItemStatusResponse

response type UpdateWorkItemStatusResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 251

Appendix B - SOAP API

Attachment service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSAttachmentServicewsdl

addAttachments()

Description

This Web service adds attachment files to an existing work item

Parameters

Input

AddAttachments

request type AddAttachments - extension of type RequestMessage

attachmentFiles type base64Binary maxOccurs=unbounded workItemId type ID ndash type int with restriction

Output

AddAttachmentsResponse

response type AddAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 252

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt ltcomUsernameTokengt

ltcomdomaingt ltcomidentgt

ltcomnamegtcommunity1ltcomnamegtltcomidentgt

ltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--1 or more repetitions--gtltattachmentFilesgtcid490167285825ltattachmentFilesgtltattachmentFilesgtcid490167285826ltattachmentFilesgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 253

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3AddAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta08351f0-5537-40bc-8baf-b98c5abc196clttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt29ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt30ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltns3AddAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachments()

Description

This Web service is used to get all attachment file metadata added to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 254

Appendix B - SOAP API

Parameters

Input

GetAttachments

request type GetAttachments - extension of type RequestMessage

workItemId type ID ndash type int with restriction

Output

GetAttachmentsResponse

response type getAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 255

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta5506457-f0a1-4ba5-99ed-4a6a6d2925f1lttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt2ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt3ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltns3GetAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachmentFile()

Description

This Web service is used to get attachment file content

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 256

Appendix B - SOAP API

Parameters

Input

GetAttachmentFile

request type GetAttachmentFile - extension of type RequestMessage

workItemId type ID ndash type int with restriction attachmentId type ID ndash type int with restriction

Output

GetAttachmentFileResponse

response type GetAttchmentFileResponse - extension of type ResponseMessage

attachmentFile type base64Binary

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattGetAttachmentFilegt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1ltworkItemIdgt

ltattachmentIdgt8ltattachmentIdgtltattGetAttachmentFilegt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 257

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentFileResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtfd220238-a5eb-46b8-8ac8-4be9366402f2lttokengt

ltSessionTokengtltauthContextgtltattachmentFilegt

ltxopIncludehref=cid1f882a3b-ac19-431d-9a26-d0d169081313-4cxfapacheorgxmlnsxop=httpwwww3org200408xopincludegt

ltattachmentFilegtltns3GetAttachmentFileResponsegt

ltsoapBodygtltsoapEnvelopegt

deleteAttachment()

Description

This Web service is used to delete an attachment from a communication

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 258

Appendix B - SOAP API

Parameters

Input

DeleteAttachment

request type DeleteAttachment - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachmentId ident type ID ndash type int with restriction

Output

DeleteAttachmentResponse

response type DeleteAttchmentResponse - extension of type ResponseMessage

attachmentId ident type ID ndash type int

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattDeleteAttachmentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt7ltworkItemIdgtltattachmentIdgt14ltattachmentIdgt

ltattDeleteAttachmentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 259

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3DeleteAttachmentResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9e079c58-80c7-40a9-86d2-2bea25632413lttokengt

ltSessionTokengtltauthContextgtltattachmentIdgt14ltattachmentIdgt

ltns3DeleteAttachmentResponsegtltsoapBodygt

ltsoapEnvelopegt

updateAttachments()

Description

This Web service is used to update attachmentsrsquo order and name

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 260

Appendix B - SOAP API

Parameters

Input

UpdateAttachments

request type UpdateAttachments - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded

id type ID - type int with restrictionfileName type string fileType type string - optional and ignored on updatesequence type int createdDate type date - optional and ignored on update

Output

UpdateAttachmentsResponse

response type UpdateAttchments - extension of type ResponseMessage

attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 261

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltattUpdateAttachmentsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt20ltworkItemIdgtltattachmentsgt

ltmodidgt4ltmodidgtltmodfileNamegtreportpdfltmodfileNamegtltmodsequencegt2ltmodsequencegt

ltattachmentsgtltattachmentsgt

ltmodidgt5ltmodidgtltmodfileNamegtO55V7PpdfltmodfileNamegtltmodsequencegt1ltmodsequencegt

ltattachmentsgtltattUpdateAttachmentsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 262

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4UpdateAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsattachmentgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt169e9b3e-6d7c-4ec1-929e-ead23c5f9832lttokengt

ltSessionTokengtltauthContextgtltattachmentsgt

ltns3idgt5ltns3idgtltns3fileNamegtO55V7Ppdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt1ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltattachmentsgt

ltns3idgt4ltns3idgtltns3fileNamegtreportpdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt2ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltns4UpdateAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 263

Appendix B - SOAP API

Workflow service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkflowServicewsdl

Note Some tags have been broken up for formatting purposes

getWorkflowTask()

Description

This Web Service operation is used to get workflow task details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 264

Appendix B - SOAP API

Parameters

Input

GetWorkflowTask

request type GetWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1

Output

GetWorkflowTaskResponse

response type GetWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string minOccurs=0 maxOccurs=unbounded potentialGroups type string minOccurs=0 maxOccurs=unbounded potentialUsers type string minOccurs=0 maxOccurs=unbounded allowedActions type string minOccurs=0 maxOccurs=unbounded instanceId type string isActionableByYou type string projectId type string previewBefore type string previewAfter type string previewDiff type string comparisonStatus type string

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 265

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtltworGetWorkflowTaskgt ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt12345lttaskIdgtltworGetWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 266

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengtltSessionTokengtltauthContextgtlttaskgt ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgtltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgtltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgtlttaskgtltns4GetWorkflowTaskResponsegt

ltsoapBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 267

Appendix B - SOAP API

ltsoapEnvelopegt

updateWorkflowTask()

Description

This Web Service operation is used to update workflow task

Parameters

Input

UpdateWorkflowTask

request type UpdateWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1 action type WorkflowTaskAction minOccurs=1 maxOccurs=1

allowed values APPROVE REJECT CLAIMDELEGATE RELEASE RESUBMIT

assignee type string - minOccurs=1 maxOccurs=1 notes type string - minOccurs=1 maxOccurs=1

Output

UpdateWorkflowTaskResponse

response type UpdateWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type stringname type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string - minOccurs=0 maxOccurs=unbounded potentialGroups type string - minOccurs=0 maxOccurs=unbounded potentialUsers type string - minOccurs=0 maxOccurs=unbounded allowedActions type string - minOccurs=0 maxOccurs=unbounded instanceId type string - minOccurs=0 maxOccurs=unbounded isActionableByYou type string - minOccurs=0 maxOccurs=unbounded projectId type string - minOccurs=0 maxOccurs=unbounded previewBefore type string - minOccurs=0 maxOccurs=unbounded previewAfter type string - minOccurs=0 maxOccurs=unbounded previewDiff type string - minOccurs=0 maxOccurs=unbounded comparisonStatus type string - minOccurs=0 maxOccurs=unbounded

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 268

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkflowTaskgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtdesignReviewltcomuserIdgtltcompasswordgtmy passwordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt2543lttaskIdgtltactiongtDELEGATEltactiongtltassigneegtWTOffice2ltassigneegtltnotesgttest_notesltnotesgt

ltworUpdateWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 269

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygt

ltns4UpdateWorkflowTaskResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtc09d7ff6-b1de-4c5c-a59b-6283d9bdd686lttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt2543ltns3idgtltns3namegtmany users Step1ltns3namegtltns3statusgtinActionOtherltns3statusgtltns3actualOwnergtWTOffice2ltns3actualOwnergtltns3externalReferenceNamegtWT_Project -

Simple_Image_Publtns3externalReferenceNamegt

ltns3externalReferenceIdgt5d91acb3-9900-44ab-961e-a40aad831b7eltns3externalReferenceIdgt

ltns3externalReferenceTypegtPROJECT_ASSETltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtSimple_Image_Publtns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt15f3cebd-3f09-4ebb-a988-0f32588ee6d2ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-27T120905797Zltns3createdgtltns3stepgtStep1ltns3stepgtltns3submittergtadminltns3submittergtltns3typegtdesignReviewltns3typegt

ltns3uriToGetTaskDetailsgthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1Community1tasks25432543ltns3uriToGetTaskDetailsgt

ltns3instanceIdgt2527ltns3instanceIdgt

ltns3isActionableByYougtfalseltns3isActionableByYougt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 270

Appendix B - SOAP API

ltns3onBehalfOfGroupsgtltns3potentialUsersgtWTProjReviewerltns3potentialUsersgt

ltns3potentialUsersgtWTOffice1ltns3potentialUsersgt

ltns3projectIdgtb960f0bc-ce8e-4f71-9077-a98054c25a79ltns3projectIdgt

ltns3previewBeforegthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesbfbc379f-fddf-49d1-bdff-28ac75f70683ltns3previewBeforegt

ltns3previewAftergthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesa205c38c-7d99-4075-aa48-327315331897ltns3previewAftergt

ltns3comparisonStatusgtsubmitltns3comparisonStatusgtlttaskgt

ltns4UpdateWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

getWorkflowTasks()

Description

This Web Service operation is used to get the list of existing workflow tasks

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 271

Appendix B - SOAP API

Parameters

Input

GetWorkflowTasks

request type GetWorkflowTasks - extension of type RequestMessage

query type string - minOccurs=0 maxOccurs=1 assignedUser type string - minOccurs=0 maxOccurs=1 searchType type string enum values all user unassigned - minOccurs=1 maxOccurs=1 submitters type string - minOccurs=0 maxOccurs=unbounded subjects type string - minOccurs=0 maxOccurs=unbounded types type string - minOccurs=0 maxOccurs=unbounded statuses type string - minOccurs=0 maxOccurs=unbounded earliestCreationTime type date - minOccurs=0 maxOccurs=1 latestCreationTime type date - minOccurs=0 maxOccurs=1 order type string - minOccurs=0 maxOccurs=1 pagination type PaginationControls - minOccurs=0 maxOccurs=1

Output

GetWorkflowTasksResponse

response type GetWorkflowTasksResponse - extension of type ResponseMessage

WorkflowTask - minOccurs=0 maxOccurs=unbounded id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string

PaginationControls - minOccurs=0 maxOccurs=1 pageNumber type int - minOccurs=0 pageSize type int - minOccurs=0 totalPages type int - minOccurs=0

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 272

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkflowTasksgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltsearchTypegtallltsearchTypegt

ltworGetWorkflowTasksgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 273

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgt

ltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgt

ltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgt

lttaskgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 274

Appendix B - SOAP API

ltns4GetWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 275

Appendix B - SOAP API

Delivery service

suspendDeliveryItem

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryServicewsdl

Note Some tags have been broken up for formatting purposes

deleteDeliveryItem()

Description

This Web service deletes a delivery item as specified by a work item or delivery item

Parameters

Input

DeleteDeliveryItemRequest

request type DeleteDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

DeleteDeliveryItemResponse

response type DeleteDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 276

Appendix B - SOAP API

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelDeleteDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt501ltidgtltdeliveryItemgtltcommentgtSoapUI Testltcommentgt

ltdelDeleteDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

deliverDocument()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 277

Appendix B - SOAP API

Description

This Web service delivers a document to the specified delivery option

The input is a template identifier along with the document files (for example answer HIP content properties)

A delivery request is created in the system and returned from the service The status field indicates the status of the delivery request

If the mode of any of the delivery channel associated with the delivery option is IMMEDIATE the document data is also returned for that delivery channel

A SOAP request sample is provided that shows how to pass a file to the deliverDocument Web service as an MTOM attachment using a standard client tool

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 278

Appendix B - SOAP API

Parameters

Input

DeliverDocumentRequest

request type DeliverDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

delilveryOptionident type IntegerIdOrName

Output

DeliverDocumentResponse

response type DeliverDocumentResponse - extension of type ResponseMessage

deliveryRequest type DeliveryRequest - extension of abstract type Entity id type ID - type int with restriction status type DeliveryStatus - type string with restriction - enum NEW PROCESSING

COMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS Note ERROR status code is returned when the delivery channel fails because of an attachment conversion issue (For example a document attached to a publication is broken and conversion services fail to process it) This status is different from a normal document composition failure which occurs when the main document generation fails

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restriction

deliveryChannel type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX device type Device - extension of abstract type Entity

id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS document - optional type ComposedDocument

data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 279

Appendix B - SOAP API

Sample request

POST httplocalhost8080EngageOneWSDeliveryService HTTP11Accept-Encoding gzipdeflateSOAPAction httppbcomEngageOnewsdeliveryDeliverDocumentContent-Type multipartrelated type=applicationxop+xmlstart=ltrootpartsoapuiorggt start-info=textxmlboundary=----=_Part_0_2998042411322083558307MIME-Version 10 User-Agent Jakarta Commons-HttpClient31Host localhost8080 Content-Length 2239

------=_Part_0_2998042411322083558307 Content-Type applicationxop+xml charset=UTF-8 type=textxmlContent-Transfer-Encoding 8bitContent-ID ltrootpartsoapuiorggt

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelDeliverDocumentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgt1234ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongtltcomondemandgtfalseltcomondemandgt

ltcomUsernameTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomnamegt4933ltcomnamegt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtltincInclude href=cid1276245679229

xmlnsinc=httpwwww3org200408xopincludegtltdatagtltfilegt

ltfilesgtlttemplategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 280

Appendix B - SOAP API

ltdeliveryOptiongtltidentgt

ltcomnamegtlpltcomnamegtltidentgt

ltdeliveryOptiongtltdelDeliverDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt------=_Part_0_2998042411322083558307 Content-Type textxml charset=us-asciiContent-Transfer-Encoding 7bitContent-ID lt1276245679229gt

ltxml version=10 encoding=UTF-8 standalone=yesgtltInteractiveDataModel version=11 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=c10478fe6de8490ea462a64e518751c9xsdgt

ltPublicationgt ltInteractiveFieldgtTest dataltInteractiveFieldgtltDeliveryInformationgtltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegtltDocumentSelector xsinil=truegt

ltDeliveryInformationgtltg1privategt

ltPublicationgtltInteractiveDataModelgt------=_Part_0_2998042411322083558307--

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 281

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4DeliverDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdeliveryRequestgtltns2idgt137ltns2idgtltns2statusgtPROCESSINGltns2statusgtltns2deliveryItemsgt

ltns2deliveryItemgtltns2idgt3252ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2modegtIMMEDIATEltns2modegtltns2typegtPRINTltns2typegtltns2devicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgtltns2HIPIdgt312ltns2HIPIdgtltns2metaIdgt313ltns2metaIdgt

ltns2devicegtltns2recipientgt

ltns2idgt1ltns2idgtltns2namegtRRRRRRRRRRltns2namegt

ltns2xpathgtInteractiveDataModelPublicationDeliveryInformationReceipientltns2xpathgt

ltns2recipientgtltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgtltns2documentgt

ltns2datagt ltxopInclude

href=ciddata-639c053e-ee64-4630-8ada-5091966c518awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltns2documentgt

ltns2deliveryItemgtltns2deliveryItemsgt

ltdeliveryRequestgtltns4DeliverDocumentResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 282

Appendix B - SOAP API

previewDocument()

Description

This Web service returns a preview of the document specified in the request

The request includes the template identifier along with the document files (for example answer HIP property) In order for this operation to work successfully the preview device needs to be defined in EngageOne Administration

The preview document data is returned in the response as an attachment

Parameters

Input

PreviewDocumentRequest

request type PreviewDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

Output

PreviewDocumentResponse

response type PreviewDocumentResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

Deliveryfault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 283

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewDocumentgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtAQIC5wM2LY4SfcybfdGzpUvpFf4fVau4XU-w7VEHi9SLx_MAAJTSQACMDEAAlNLABM3MzUxMTg2ODM5MTcwNTUwNzM1defaultltcomtokengt

ltcomSessionTokengt

ltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

lttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

lttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

lttypegtPROPERTYlttypegtltdatagtcid278598095434ltdatagt

ltfilegtltfilesgt

lttemplategtltdelPreviewDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 284

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-bdd85045-1de1-42c2-b0b1-865ea9045a52wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewDocumentResponsegtltenvBodygt

ltenvEnvelopegt

previewWorkItem()

Description

This Web service previews a document associated with a work item

The request includes a work item identifier (id or name) obtained from a previous call to the WorkItemService createWorkItem service operation

The preview device is assumed to be defined through EngageOne Administration

The preview document data is returned in the response as an attachment

Note In order to preview a work item with Web services the work item status must not be Active New or Active Incomplete

The work item can be previewed after the required work is completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 285

Appendix B - SOAP API

Parameters

Input

PreviewWorkItemRequest

request type PreviewWorkItem - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

PreviewWorkItemResponse

response type PreviewWorkItemResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtc42356d8ec312e4b471399896cc44e77_1261063384968_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltdelPreviewWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 286

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-121f00b4-7d2d-4c75-a20a-1c5ed92563c1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewWorkItemResponsegtltenvBodygt

ltenvEnvelopegt

resumeDeliveryItem()

Description

This Web service resumes a delivery item which has been previously suspended via a call to the DeliveryService suspendDeliveryItem operation

The request must contain either the work item identifier (ID or name) or the delivery item ID An optional comment can be specified as well

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 287

Appendix B - SOAP API

Parameters

Input

ResumeDeliveryItemRequest

request type ResumeDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

ResumeDeliveryItemResponse

response type ResumeDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelResumeDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtResume by soupUIltcommentgt

ltdelResumeDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 288

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ResumeDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

searchDeliveryItems()

Description

This Web service retrieves delivery items associated with a work item or as specified by a delivery item ID

If the search filter is set to DETAIL the composed document associated with the delivery item is also returned if it exists (it may not have been composed)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 289

Appendix B - SOAP API

Parameters

Input

SearchDeliveryItemsRequest

request type SearchDeliveryItems - extension of type SearchRequestMessage

workItems - optionalworkItem

ident type IntegerIdOrName

deliveryItems - optionaldeliveryItem

id type ID - type int with restriction

Output

SearchDeliveryItemsResponse

response type SearchDeliveryItemsResponse - extension of type ResponseMessage

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restrictiondeliveryChannel type DeliveryChannel - extension of abstract type Entity

id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 290

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryItemsgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltworkItemsgt

ltworkItemgt ltidentgt

ltcomidgt27ltcomidgtltidentgt

ltworkItemgtltworkItemsgt

ltdelSearchDeliveryItemsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 291

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryItemsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryItemsgtltdeliveryItemgt

ltns2idgt501ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2typegtPRINTltns2typegt

ltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgt

ltdeliveryItemgtltdeliveryItemsgt

ltns4SearchDeliveryItemsResponsegtltenvBodygt

ltenvEnvelopegt

suspendDeliveryItem()

Description

This Web service suspends a delivery item specified in the request by a work item identifier (ID or name) or delivery item ID

A suspended delivery item will not be delivered

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 292

Appendix B - SOAP API

Parameters

Input

SuspendDeliveryItemRequest

request type SuspendDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

SuspendDeliveryItemResponse

response type SuspendDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelSuspendDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtsoapUIltcommentgt

ltdelSuspendDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 293

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SuspendDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateDeliveryItem()

Description

This Web service can be used to update the status of a delivery item as specified in the request by a work item identifier (ID or name) or delivery item ID

Parameters

Input

UpdateDeliveryItemRequest

request type UpdateDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS

Output

UpdateDeliveryItemResponse

response type UpdateDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 294

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelUpdateDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt38ltcomidgt

ltidentgtltworkItemgtltcommentgt123456ltcommentgtltstatusgtDELIVEREDltstatusgt

ltdelUpdateDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 295

10 - Upgrading 3X to 4X SOAP services This section details the difference between EngageOne 3X and 4X SOAP services

Note this section does not cover Gen1 SOAP services These services are no longer available

In this section

Licensing changes 297 Security changes 298 WorkItem approval process not supported 300 DataPushServicemapData not supported 300

Upgrading 3X to 4X SOAP services

Licensing changes

EngageOne Server 4X no longer requires a license file at installation time

The license file restricted the

bull Total number of communities bull Total number of concurrent sessions bull Use of OnDemand services

These restrictions are no longer enforced at runtime As a result the following fields in the AuthContext element are ignored but must be included in your request

bull ondemand

bull transientsession

In addition the following services do not have the OnDemand licensing requirement as was the case in 3X

bull DeliverDocument

bull SearchDeliveryOptionsbull SearchTemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 297

Upgrading 3X to 4X SOAP services

Security changes

The following section details security changes that are part of the upgrade to EngageOne 4X

Authentication with WS-Security

In EngageOne 3X a custom AuthContext SOAP element is used to send credential information to the server This authentication mechanism is still supported but should no longer be used in new development

To improve and modernize the authentication mechanisms of EngageOne Server the SOAP services now support WS-Security authentication

WS-Security (Web services security) is an industry standard that addresses security when data is exchanged as part of a Web service This type of authentication is implemented on all EngageOne Server services at the useridpassword level

WS-Security specifies enhancements to SOAP messaging that protect the integrity and confidentiality of a message and authenticate the sender WS-Security specifies how to associate a security token with a message without specifying what kind of token that is to be used

To use WS-Security you must specify the additional SOAP header elements in all requests

Role and access right enforcement

EngageOne version 4X introduces new Role and Access Rights restrictions in SOAP services Users are now required to have the necessary permissions to work with server resources

The following permissions are enforced in 4X

bull Role assignments - methods have been restricted by roles to align with permissions granted in EngageOne Interactive and EngageOne Admin

bull Template access rights - when working with resources in the TemplateActive ContentMessage Content folder structure the user must have access via an LDAP group specified in EngageOne Admin

For example SearchTemplates will return templates to which the user has permissions Some special roles have unrestricted access where this does not apply

bull WorkItem assignment rights- when working with a Work Item a user must either be an owner of the Work Item or have unrestricted access

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 298

Upgrading 3X to 4X SOAP services

For example to call DeleteWorkItem the user must be the owner of the Work Item

bull Unrestricted access - these roles are not restricted by Template Access and WorkItem Assignment Rights

Role and access rights by service

The following table describes the required roles and additional access rights that are enforced

Roles are abbreviated as follows

bull Interactive Roles

bull Editor bull Editor with Saving New Templates

bull CA - Community Administrator bull DM - Document Manager bull TM - Template Manager bull EFM - External File Manager

Service Required Roles Additional Access Enforced

Template Access Rights Interactive Roles DataPush

None (unrestricted access) DM CA

Template Access Rights Interactive Roles DeliveryManagement

None (unrestricted access) DM CA

WorkItem Assignment Rights Interactive Roles Delivery

None (unrestricted access) DM CA

NANo roles required Domain

Template Access Rights Interactive Roles Editor

None (unrestricted access) CA

Keymap EFM CA NA

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 299

Upgrading 3X to 4X SOAP services

Service Required Roles Additional Access Enforced

Security

None (unrestricted access) Interactive Roles Metadata

No roles required

WorkItem Assignment Rights Interactive Roles Template (Interactive features)

None (unrestricted access) DM CA

NATM CA SA Template (Admin features)

WorkItem Assignment Rights Interactive Roles WorkItem

None (unrestricted access) DM CA

WorkItem approval process not supported

The following methods are not currently supported in EngageOne 43 and will return a not supported fault message when called

bull WorkItemServicerejectWorkItembull WorkItemServiceapproveWorkItem

In addition WorkItemServicesubmitWorkItem will only submit work items for delivery If the work item triggers a workflow approval process an error will be thrown

DataPushServicemapData not supported

mapDatamethod of DataPushservice is no longer supported In earlier releases this method mapped pushed data from the pushData method to a template

In this release the pushData method performs this operation in advance and creates a corresponding communication in Interactive for an end-user

If you are using the out-of-the-box Interactive application the pushData call may exclude the specific template In this case the Interactive user will be prompted to select a Template

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 300

Upgrading 3X to 4X SOAP services

If you have developed your own Interactive application and opt to use the pushData method you must specify the template in advance to ensure data is mapped correctly

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 301

Notices

Copyright

Copyright copy2018 Pitney Bowes Inc All rights reserved

This publication and the software described in it is supplied under license and may only be used or copied in accordance with the terms of such license The information in this publication is provided for information only is subject to change without notice and should not be construed as a commitment by Pitney Bowes Inc (PBS) To the fullest extent permitted by applicable laws PBS excludes all warranties representations and undertakings (express or implied) in relation to this publication and assumes no liability or responsibility for any errors or inaccuracies that may appear in this publication and shall not be liable for loss or damage of any kind arising from its use

Except as permitted by such license reproduction of any part of this publication by mechanicalelectronic recording means or otherwise including fax transmission without the express permissionof PBS is prohibited to the fullest extent permitted by applicable laws

Nothing in this notice shall limit or exclude PBS liability in respect of fraud or for death or personal injury arising from its negligence Statutory rights of the user if any are unaffected

TALO Hyphenators and Spellers are used Developed by TALO BV Bussum Netherlands Copyright copy 1998 TALO BV Bussum NL TALO is a registered trademark reg

Encryption algorithms licensed from Unisys Corp under US Patent No 4558302 and foreign counterparts

Security algorithms Copyright copy 1991-1992 RSA Data Security Inc

Copyright copy DL Technology Ltd 1992-2010

Barcode fonts Copyright copy 1997 Terrapin Solutions Ltd with NRB Systems Ltd

This product includes software developed by the Apache Software Foundation (httpwwwapacheorg)

Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex Software Inc

This product contains the Regex++ library Copyright copy 1998-2000 Dr John Maddock

PostScript is a trademark of Adobe Systems Incorporated

PCL is a trademark of Hewlett Packard Company

Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc (httpwwwbouncycastleorg)

ICU License - ICU 181 and later Copyright (c) 1995-2006 International Business Machines Corporation and others All rights reserved

Permission is hereby granted free of charge to any person obtaining a copy of this software andassociated documentation files (the Software) to deal in the Software without restriction includingwithout limitation the rights to use copy modify merge publish distribute andor sell copies of theSoftware and to permit persons to whom the Software is furnished to do so provided that the abovecopyright notice(s) and this permission notice appear in all copies of the Software and that both theabove copyright notice(s) and this permission notice appear in supporting documentation

Matra 08b (httpmatrasourceforgenet) The contents of this documentation are subject to the Mozilla Public License Version 11 (the License) you may not use this documentation except in

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 303

Copyright

compliance with the License You may obtain a copy of the License at httpwwwmozillaorgMPL Software distributed under the License is distributed on an AS IS basis WITHOUT WARRANTY OF ANY KIND either express or implied See the License for the specific language governing rights and limitations under the License Otherwise all product names are trademarks or registered trademarks of their respective holders

This product contains Sycamore version number 039 which is licensed under the MIT license The license can be downloaded from httpsgithubcomryexleysycamoreblobmasterdistrequesterjs The source code for this software is available from httpsgithubcomryexleysycamore

This product contains Underscore version number 152 which is licensed under the MIT license The license can be downloaded from httpsgithubcomjashkenasunderscoreblobmasterLICENSE The source code for this software is available from httpunderscorejsorg

This product contains Activiti version number 5170 which is licensed under the Apache license The license can be downloaded from httpactivitiorgfaqhtmlWhyApacheLicense The source code for this software is available from httpactivitiorgdownloadhtml

This product contains Bootstrap version number 336 which is licensed under the MIT license The license can be downloaded from httpgetbootstrapcomgetting-startedlicense-faqs The source code for this software is available from httpgetbootstrapcomgetting-starteddownload

This product contains Commons-Configuration version number 110 which is licensed under the Apache license The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpcommonsapacheorgpropercommons-configuration

This product contains jQuery version number 1102 which is licensed under the MIT license The license can be downloaded from httpsjqueryorglicense The source code for this software is available from httpjquerycomdownload

This product contains Json2JSON-js 2015-05-03 The source code for this software is available from httpsgithubcomdouglascrockfordJSON-js

This product contains Kendo UI Core version number 20141318 which is licensed under the Apache2 license The license can be downloaded from httpsgithubcomtelerikkendo-ui-core The source code for this software is available from httpwwwtelerikcomdownloadkendo-ui-core

This product contains Knockout-AMD-Helpers version number 074 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-amd-helpersblobmasterLICENSE The source code for this software is available from httpsgithubcomrniemeyerknockout-amd-helpers

This product contains Knockout version number 340 which is licensed under the MIT license The license can be downloaded from httpsgithubcomknockoutknockoutblobmasterLICENSE The source code for this software is available from httpknockoutjscomdownloads

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 304

Copyright

This product contains Knockout-DelegatedEvents version number 050 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-delegatedEventslicense The source code for this software is available from httpsgithubcomrniemeyerknockout-delegatedEvents

This product contains Knockout-Kendo version number 081 which is licensed under the Apache2 license The license can be downloaded from httprniemeyergithubioknockout-kendoindexhtml The source code for this software is available from httprniemeyergithubioknockout-kendo

This product contains LDAP Synchornization Connector version number 210 which is licensed under the BSD license The license can be downloaded from httptoolslsc-projectorgprojectslscrepositoryentrylsctrunkLICENSEtxt The source code for this software is available from httplsc-projectorgwikidownload

This product contains Momentjs version 2120 which is licensed under the MIT license The license can be downloaded from httpsgithubcommomentmomentblobdevelopLICENSE The source code for this software is available from httpmomentjscom

This product contains Quartz-Scheduler version number 221 which is licensed under the Apache license The license can be downloaded from httpquartz-schedulerorg The source code for this software is available from httpquartz-schedulerorg

This product contains RequireJS-Text version number 2014 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomrequirejstextblobmasterLICENSE The source code for this software is available from httpsgithubcomrequirejstext This product contains Solr-Solrj version number 472 which is licensed under the Apache LicenseThe license can be downloaded from httpsmaven-repositorycomartifactorgapachesolrsolr-solrj472pom The source code for this software is available from httpwikiapacheorgsolrSolrj This product contains RequireJS version number 220 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomjrburkerequirejsblobmasterLICENSE The source code for this software is available from httprequirejsorgdocsdownloadhtml

This product contains Apache ActiveMQ version number 5132 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorg

This product contains Apache NMS version 172 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorgnms

This product contains Apache Commons DBCP version number 122 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpscommonsapacheorgpropercommons-dbcp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 305

Copyright

This product contains OWASP Encoder version number 12 which is licensed under the BSD license The license can be downloaded from httpsopensourceorglicensesBSD-3-Clause The source code for this software is available from httpswwwowasporgindexphpOWASP_Java_Encoder_Project

This product contains Narayan version number 5213Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpnarayanaio 0

This product contains Logback version number 113 which is licensed under the EPL and LGPL licenses version numbers 10 and 21 The license can be downloaded from httplogbackqoschlicensehtml The source code for this software is available from httplogbackqosch

This product contains JBoss Weld version number 233Final which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20The source code for this software is available from httpweldcdi-specorg

This product contains IronJacamar version number 132Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpwwwironjacamarorg

This product contains Hibernate version number 507Final which is licensed under the Apache and LGPL license version numbers 20 and 21 The license can be downloaded from httphibernateorgcommunitylicense The source code for this software is available from httphibernateorgorm

This product contains Apache Tomcat version number 8030 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20 The source code for this software is available from httptomcatapacheorg

This product contains Apache Procrun version number 1015 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpcommonsapacheorgpropercommons-daemonprocrunhtml

This product contains URLRewriterFilter version number 403 which is licensed under the BSD 2-Clause license The license can be downloaded from httpcdnrawgitcompaultuckeyurlrewritefiltermastersrcdocmanual40introductionhtmllicenseThe source code for this software is available from httpwwwtuckeyorgurlrewrite

This product contains FasterXML Jackson version number 266 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpsgithubcomFasterXMLjackson

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 306

Copyright

This product contains Log4net The license for log4net can be downloaded from httpswwwapacheorglicensesLICENSE-20 The source code for this software is available from httpsloggingapacheorglog4netdownload_log4netcgi

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 307

pitney bowes 0 3001 Summer Street Stamford CT 06926-0700

USA

wwwpitneybowescomus

copy 2018 Pitney Bowes Software Inc All rights reserved

  • Table of Contents
  • Overview
    • Overview
    • Template designer
      • About the template
        • Resources
            • EngageOne Server components
              • About Web services
              • Web service descriptions
                • EngageOne administration
                • EngageOne Interactive
                • Interactive document process flow
                  • Selecting a template
                  • Save and submit
                  • Delivering a document
                      • Integrating with EngageOne SOAP
                        • OnDemand
                        • Interactive
                        • Data push processing in EngageOne Interactive
                          • Mapping options
                          • Data push parameters
                          • Accessing services
                          • How mapping works
                          • Data map XML schema and examples
                            • XPath
                              • ElementMap example
                              • ListMap example
                              • RepeatMap example
                                  • EngageOne domains
                                    • User authentication
                                      • WS-Security
                                      • Legacy AuthContext
                                        • Code example
                                          • Obsolete flags
                                              • Data Push error handling
                                                • Code element error types
                                                  • Web services scenario medical insurance data integration
                                                    • Coordinate with template designer
                                                    • Define data push mapping
                                                    • Import data push map
                                                    • Creating the Web services
                                                        • Interactive Document Delivery
                                                        • Sample application
                                                          • Implement Deliver Document sample application
                                                          • Customize sample application
                                                          • Run sample application
                                                            • Notes
                                                                • OnDemand Document Delivery
                                                                  • Ways to authenticate
                                                                    • WS-Security
                                                                    • Legacy AuthContext
                                                                      • XForms
                                                                        • About XForms
                                                                        • XForms processors
                                                                        • XFormSDI Flow
                                                                        • XForms standard files
                                                                          • XHTML presentation file
                                                                          • XML instance file
                                                                          • XML schema file for the interactive data model
                                                                          • XML schema file for the non-interactive Designer data model
                                                                            • Data definition type and attributes
                                                                              • System Data Integration
                                                                                • SDI General Configuration
                                                                                • Using an XML file as a data source
                                                                                  • XML data source diagram
                                                                                  • XMLSystemDataLoader tasks
                                                                                    • Using the Java callback interface
                                                                                      • Java callback interface process flow
                                                                                        • Feature support for System Data Integration
                                                                                          • XForms model example
                                                                                            • Integration option 1 ndash XML data source
                                                                                              • Enabling the default system data loader
                                                                                              • Designing the template for System Data Integration
                                                                                                • Configure system data load user confirmation
                                                                                                • Configure system data load user confirmation read-only
                                                                                                • Configure system data load without user confirmation
                                                                                                • Preparing the system data XML
                                                                                                  • Example XML answer file
                                                                                                  • InteractiveDataModel element
                                                                                                    • Loading the system data XML
                                                                                                        • Integration option 2 ndash callback interface
                                                                                                          • Configure EngageOne Interactive to use custom system data loader
                                                                                                          • Implement a custom system data loader
                                                                                                            • Steps
                                                                                                            • Notes
                                                                                                              • Custom system data loader
                                                                                                                • Custom data loader interface
                                                                                                                • loadToSchema function
                                                                                                                • loadToView function
                                                                                                                • loadToInstance function
                                                                                                                  • Error handling
                                                                                                                    • SystemDataLoaderException class ndash custom fields
                                                                                                                      • errorcode
                                                                                                                        • systemDataLoaderMessagesproperties sample
                                                                                                                          • params
                                                                                                                          • result
                                                                                                                          • message and cause
                                                                                                                            • SystemDataLoaderException constructor signature
                                                                                                                              • Sample implementation
                                                                                                                                • Compiling and packaging custom system data loader
                                                                                                                                • Configuring EngageOne Interactive system data settings
                                                                                                                                  • Additional features in SOAP
                                                                                                                                    • Trusted Connection
                                                                                                                                    • Template search
                                                                                                                                      • Searching templates by template property
                                                                                                                                        • Java sample
                                                                                                                                        • C sample
                                                                                                                                          • Searching templates with sorting and pagination
                                                                                                                                            • Java sample
                                                                                                                                            • C sample
                                                                                                                                              • Searching templates by template metadata
                                                                                                                                                • Java sample
                                                                                                                                                • C NET sample
                                                                                                                                                • Supported metadata field types
                                                                                                                                                  • Java sample
                                                                                                                                                  • C NET sample
                                                                                                                                                    • Write delivery information
                                                                                                                                                      • Write delivery information process
                                                                                                                                                        • Steps
                                                                                                                                                            • Managing the work queue
                                                                                                                                                              • Retrieving work items
                                                                                                                                                              • Retrieving work items with pagination
                                                                                                                                                              • Retrieving work items with sorting
                                                                                                                                                                • Updating work items
                                                                                                                                                                  • Updating the document delivery option
                                                                                                                                                                  • Updating work item status
                                                                                                                                                                  • Updating work item comments
                                                                                                                                                                    • Reassigning a work item
                                                                                                                                                                      • Retrieving document assignees
                                                                                                                                                                      • Reassigning a document
                                                                                                                                                                        • Deleting a work item
                                                                                                                                                                          • Perform a document delete
                                                                                                                                                                              • EngageOne notifications
                                                                                                                                                                                • Overview
                                                                                                                                                                                • Notification components diagram
                                                                                                                                                                                  • Diagram details
                                                                                                                                                                                    • Topics and queues
                                                                                                                                                                                    • Configuration settings
                                                                                                                                                                                      • Configuration settings (cont)
                                                                                                                                                                                        • Messages
                                                                                                                                                                                          • Notification message common properties
                                                                                                                                                                                            • Communication messages
                                                                                                                                                                                              • Communication published actions
                                                                                                                                                                                                • Batch messages
                                                                                                                                                                                                  • Accumulated batch messages
                                                                                                                                                                                                  • Non accumulated batch messages
                                                                                                                                                                                                    • Workflow messages
                                                                                                                                                                                                    • Consuming notification messages
                                                                                                                                                                                                      • Consume messages from an ActiveMQ queue or topic
                                                                                                                                                                                                        • Using other JMS implementations
                                                                                                                                                                                                          • Using a custom JMS connection factory
                                                                                                                                                                                                            • Sample message consumers
                                                                                                                                                                                                              • The comparison adapter plug-in
                                                                                                                                                                                                                • The custom plug-in implementation
                                                                                                                                                                                                                • Example implementations
                                                                                                                                                                                                                  • DocBridgereg Delta
                                                                                                                                                                                                                  • Simple comparison plug-in
                                                                                                                                                                                                                  • Command line adapter implementation
                                                                                                                                                                                                                    • Plug-in Installation and configuration
                                                                                                                                                                                                                      • Appendix A - Editor methods
                                                                                                                                                                                                                        • LoadContents
                                                                                                                                                                                                                        • SaveContents
                                                                                                                                                                                                                        • SpellCheck
                                                                                                                                                                                                                        • IsComplete
                                                                                                                                                                                                                        • IsModified
                                                                                                                                                                                                                        • GetVersion
                                                                                                                                                                                                                          • Appendix B - SOAP API
                                                                                                                                                                                                                            • Identifiers
                                                                                                                                                                                                                            • Search filter
                                                                                                                                                                                                                            • Promotion service
                                                                                                                                                                                                                              • createImportAssetsJob()
                                                                                                                                                                                                                              • getImportAssetsJob()
                                                                                                                                                                                                                              • createExportAssetsJob()
                                                                                                                                                                                                                              • getExportAssetsJob()
                                                                                                                                                                                                                              • getImportPreview()
                                                                                                                                                                                                                              • getAssetDependencies()
                                                                                                                                                                                                                                • Folder service
                                                                                                                                                                                                                                • Data push service
                                                                                                                                                                                                                                • Delivery management service
                                                                                                                                                                                                                                • Dictionary service
                                                                                                                                                                                                                                • Domain service
                                                                                                                                                                                                                                • Editor service
                                                                                                                                                                                                                                • Keymap service
                                                                                                                                                                                                                                • Metadata service
                                                                                                                                                                                                                                • Request status update service
                                                                                                                                                                                                                                • Security service
                                                                                                                                                                                                                                • Template service
                                                                                                                                                                                                                                • Workitem service
                                                                                                                                                                                                                                • Attachment service
                                                                                                                                                                                                                                • Workflow service
                                                                                                                                                                                                                                • Delivery service
                                                                                                                                                                                                                                  • Upgrading 3X to 4X SOAP services
                                                                                                                                                                                                                                    • Licensing changes
                                                                                                                                                                                                                                    • Security changes
                                                                                                                                                                                                                                      • Authentication with WS-Security
                                                                                                                                                                                                                                      • Role and access right enforcement
                                                                                                                                                                                                                                      • Role and access rights by service
                                                                                                                                                                                                                                        • WorkItem approval process not supported
                                                                                                                                                                                                                                        • DataPushServicemapData not supported
Page 2: EngageOne v4.4.8 Programmer's Reference Guide

Table of Contents

1 - Overview

Overview 5

Template designer 5

EngageOne Server components 10

EngageOne administration 13

EngageOne Interactive 14

Interactive document process flow 14

2 - Integrating with EngageOne

SOAP

OnDemand 18

Interactive 18

Data push processing in EngageOne

Interactive 18

Interactive Document Delivery 32

Sample application 33

OnDemand Document Delivery 36

3 - XForms

About XForms 39

XForms processors 41

XFormSDI Flow 42

XForms standard files 43

Data definition type and attributes 62

4 - System Data Integration

SDI General Configuration 66

Using an XML file as a data source 67

Using the Java callback interface 68

Feature support for System Data Integration 69

Integration option 1 ndash XML data source 71

Integration option 2 ndash callback interface 75

5 - Additional features in SOAP

Trusted Connection 87

Template search 87

Write delivery information 96

Managing the work queue 99

Updating work items 102

Reassigning a work item 106

Deleting a work item 108

6 - EngageOne notifications

Overview 110

Notification components diagram 111

Topics and queues 113

Configuration settings 114

Messages 118

Communication messages 119

Batch messages 121

Workflow messages 122

Consuming notification messages 123

Using other JMS implementations 126

Sample message consumers 128

7 - The comparison adapter plug-in

The custom plug-in implementation 130

Example implementations 131

Plug-in Installation and configuration 135

8 - Appendix A - Editor methods

LoadContents 137

SaveContents 137

SpellCheck 138

IsComplete 138

IsModified 139

GetVersion 139

9 - Appendix B - SOAP API

Identifiers 141

Search filter 142

Promotion service 143

Folder service 164

Data push service 168

Delivery management service 170

Dictionary service 178

Domain service 180

Editor service 182

Keymap service 185

Metadata service 193

Request status update service 196

Security service 198

Template service 204

Workitem service 227

Attachment service 252

Workflow service 264

Delivery service 276

10 - Upgrading 3X to 4X SOAP

services

Licensing changes 297

Security changes 298

WorkItem approval process not supported 300

DataPushServicemapData not supported 300

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 3

1 - Overview EngageOne is an interactive document production system enabling the creation and delivery of high volume on demand and interactive customer correspondence

In this section

Overview 5 Template designer 5 EngageOne Server components 10 EngageOne administration 13 EngageOne Interactive 14 Interactive document process flow 14

Overview

Overview

Document templates and optional content objects are defined by the template designer in a core application called Designer and managed in the content repository These programs are made available to front-office users through a Web-based interface This interface allows users to create and modify a document in a controlled manner and distribute documents through various delivery channels as required

The EngageOne Interactive Web application uses the services provided by the EngageOne Web services interface to access the server functions of EngageOne

Template designer

Document templates are created by a template designer a user who defines the document and its interactions in Designer

A template consists of a traditional publication design along with interactive data definitions which describe the front office user interactions required to complete a document from that template

This involves designing the overall template and defining

bull The data prompts included in the document using the Interactive Editor bull Paragraph and content selection using optional content selections (Active Content) bull Free-form text to override content protection using editable paragraphs

For more information about these functions see the Designer Userrsquos Guide

The template designer allows the user to edit or enter free text as required in an EngageOne document design by selecting a section of text in a paragraph object and defining the text as editable Any text marked as editable can be changed by the user Text that is not marked as editable will be protected

In addition to the basic template the template designer can create optional content Property values are defined enabling them to be conditionally placed in an Active Content Group When Active Content is marked as interactive the user is dynamically presented with content choices to help them complete their document

Once the EngageOne template has been designed and data fields defined the template is named and published for EngageOne The XForm files that define the documents data model are included in the templatersquos Zip file

The process of importing these files into the EngageOne content repository using the EngageOne Administration client is called Template deployment

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 5

Overview

The interactive data model is defined and exposed using the W3C XForm standard The XForm can be used by the system integrator to push system data into the interactive document

Content repository

The content repository provides file storage and version control for EngageOne It houses the templates used to create documents supporting files needed for document composition and the document instances waiting for delivery

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 6

Overview

About the template

The template manifest (template_masterxml) describes template attributes and contents

The template manifest is made up of the following

Subfiles

The Subfiles section contains a list of files in the template Zip file and specifies each file type

Template composition

HIP files contain design layout logic and other resources required for generating publications These files are used by Generate

There are two types of HIP file publications and independently publishable active content

HIP

Publication files contain design layout and logic These files are used by the Interactive Editor

There are two types of PUB file template publications and independently publishable active content

PUB

XForms define electronic forms for collecting general purpose information XFRM

Instance data file

Initially this file contains default field values All values entered by the user will be saved in this file Free form text is stored in the HIP and PUB files not the instance file

INST

The instance file schema contains standard schema nodes and attributes The schema ensures data returned in the instance file is well-formed the right type and meets defined field criteria

SCHEMA

Image file required by the editor for display in the template IMG

XML representation of the Designer Publication ldquoSample Datardquo whether the original data is keyed data (for example single value decomposition) delimited (for example comma separated values) or on-demand XML The DATAMODEL file type appears only for non-interactive templates

DATAMODEL

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 7

Overview

Template composition

PREVIEW

PROMPTLOGIC

THUMBNAIL

PDF file appears for both interactive and non-interactive templates where Designer Publish for EngageOne has successfully generated a PDF ldquopreviewrdquo example of the Designer Publication

The PREVIEW file is generated using ldquoemergency replacementrdquo data where the Designer Publication data is incomplete and may not reflect the completed document PREVIEW file is available for the Interactive user to view a ldquoPreviewrdquo of the Template Document at the start of the ldquoEdit Communicationrdquo process

Files containing information used to prompt for and validate interactive template data when the ActiveX editor is not used

Scaled image representation of the first document Intended as a rough guide to the layout and content of the first document

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 8

Overview

Resources

The Resources section lists the dependencies of the template These can be of the following types

ACTCONT Active content

IMAGE Image used in the template

FONT Font used in the template

The following fragment demonstrates the structure of the template manifest

ltxml version=10 encoding=utf-8gtlt--XML meta file for EngageOne Template--gtltdocument ocmmetafile-vers=ocm-metafile10 ocm-vers=OCM TemplateV10gt ltOcmMetadatagt ltdocumentClassgt ltmetadata-field fieldName=Publish Date fieldValue=05-May-2009

defaultValue= fieldType=text gtltmetadata-field fieldName=Published By fieldValue=Administrator

defaultValue= fieldType=text gtltmetadata-field fieldName=Design Publication Name fieldValue=Basic

defaultValue= fieldType=text gtltdocumentClassgtltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=PUBgttemplatepubxltFilegtltFile type=XFRMgtd79f96b60b2a48ee9f59c8bed5655f86xformltFilegtltFile type=INSTgtd79f96b60b2a48ee9f59c8bed5655f86xmlltFilegtltFile type=SCHEMAgtd79f96b60b2a48ee9f59c8bed5655f86xsdltFilegtltFile type=IMGgtc52767b2d1824366b522589d550cb297pngltFilegtltSubfilesgtltResourcesgt ltRes type=ACTCONT name=Basic

guid=e06d8fc2009642ddb2740495af6bf785 gtltRes type=FONT name=Arial 11pt

guid=24e474cc2baa434cb7239457b6b90443 gtltRes type=IMAGE name=logobmp

guid=c52767b2d1824366b522589d550cb297 gtltResourcesgtltInputsgtltHIP path= gtltActiveContent path= gtltInputsgtltOcmMetadatagtltdocumentgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 9

Overview

EngageOne Server components

The Web services layer

bull Exposes EngageOne communication services to a custom built front office Web application or to the EngageOne Web application

The Business layer

bull Document management - template storage and retrieval (including version control) and work queues (document instance storage and retrieval)

bull Security management - supports direct integration with LDAP and Active Directory for user and group lists

bull Delivery Services - defines delivery channels and provides services to generate draft and final copy output

bull Event Monitor - monitors system health and tracks system activities Tracking information can be used for reporting

For example a report can specify how many times a template is used or how quickly a template is processed

bull Delivery channels - EngageOne delivery channels include print fax email SMS and archive

Document instances can be submitted for real-time delivery to a local printer

Output can be queued for EngageOne batch processing

About Web services

The EngageOne server exposes most of its API via Web services EngageOne Web services enable custom application integration with EngageOne server on any development platform supporting Web services

Components Requirements

Support for various bindings (SOAP 11) SOAP and Web services

Axis 2 or JAX-WS (recommended)

At least custom XML

Java clients

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 10

Overview

Components Requirements

Microsoft Windows Communication Foundation Framework

NET clients

Note Not all EngageOne Server Web services are WS-I compliant

bull There is an issue with MTOM attachments support using Axis2 as a client

In order to work around this issue updated client stubs are provided on the installation media under the samples folder These client stubs accommodate and correctly parse MTOM attachments If you use Axis2 and wish to use MTOM attachments you may opt to use these stubs

bull The services will continue to work without MTOM attachments The advantage to MTOM attachments is they can work with larger file sizes

Web services are backward compatible and client code should not need to be changed Any auto-generated client stub code based on a previous Web service release should be regenerated against the new Web services definitions (WSDLs)

Services are provided that allow a third part application to complete document flow starting from creation up to delivery

The diagram below shows the server components exposed as a Web service via an adapter The diagram details the exposed Web services a custom application could use to integrate with EngageOne

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 11

Overview

Web service descriptions

The following details EngageOne Web services

Delivery Management Service - search delivery channels and devices

Delivery service - work item preview and work item distribution

Dictionary service - search speller XML file

Domain service - search domain information

Editor service - transfer files from the content repository server by resource file ID

Keymap service - import keymaps

Metadata service - manage and retrieve document classes or metadata and configure metadata definitions

Security service - search user roles

Template service - template creation retrieval and search support

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 12

Overview

WorkItem service - work queue related functions

For example retrieve work items work item creation work item assignment approval and rejection functional support

In the EngageOne Web service runtime environment EngageOne Web services work with EngageOne applications using Simple Object Access Protocols (SOAP) In the application server environment a SOAP servlet is deployed as the requestresponse gateway

All EngageOne Web services are published in Web service Description Language (WSDL) format and are described by the following namespaces

Note Namespaces are used to avoid naming conflicts in XML tags ensuring uniqueness

bull httppbcomEngageOnewscommon bull httppbcomEngageOnewsmodel bull httppbcomEngageOnewsdeliveryManagement bull httppbcomEngageOnewsdelivery bull httppbcomEngageOnewsdictionary bull httppbcomEngageOnewsdomain bull httppbcomEngageOnewseditor bull httppbcomEngageOnewskeymap bull httppbcomEngageOnewsmetadata bull httppbcomEngageOnewssecurity bull httppbcomEngageOnewstemplate bull httppbcomEngageOnewsworkItem

EngageOne WSDL files are generated from the EngageOne Web service Java Interface

WSDL example files are included in the distribution media ltrelease-distributiongtsamplessoapwsdl

EngageOne administration

The EngageOne administrator uses a Web application to set up and configure the EngageOne environment

The Web application is delivered as part of the standard EngageOne server install

The EngageOne Administration Web interface supports managing folders templates and delivery channels

For security purposes role-based access and user roles are defined in EngageOne Administration Roles can be assigned to individual or a group of LDAP users

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 13

Overview

The EngageOne administer handles domain management license management and system diagnostics

For more details see the EngageOne Administration Guide

EngageOne Interactive

EngageOne Interactive is delivered with the EngageOne Server It provides a browser based interface for front-office workers to create customized documents EngageOne Interactive supports a widely distributed user base including remote users

For more information about working with EngageOne documents see the EngageOne Interactive Userrsquos Guide

In many cases a custom designed application might be more appropriate for addressing your business needs

If preferable to a fully featured implementation the Web services interface allows integration between EngageOne and your existing business systems

For more information about building your own interactive application see Integrating with EngageOne SOAP

Interactive document process flow

Note integration is not supported in this version of EngageOne Server workflow

The process flow starts with EngageOne fulfilling a request for a document in real time requiring user interaction to complete the request Data definitions are embedded in a template and create an underlying XForm The XForm is used to drive the prompts which gather data required to complete the document

Business driven data is retrieved or provided by your system integration program from the appropriate source

For more information see Integrating with EngageOne SOAP and System Data Integration

The following diagram illustrates the process flow

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 14

Overview

Selecting a template

A custom application would use the TemplateService Web service

The template service collects a list of templates from the content repository and presents the templates to the user All templates have a template ID which is used by all other calls

Templates can be identified by name Keep in mind that the template name is not unique and a search by name could return multiple templates

bull A document instance is created from a template by the editor The XForm is pushed to the custom system integration program which parses system attributes and populates system fields

For example the system may have executed an address lookup and populated form information The XForm is returned to the calling application for user interaction

Note a custom built Web application must adhere to the specification for interactive data prompt display Front end users can manually enter data for document completion

Editing is handled through

bull Form fields (generated from XForms or by the system integrator) bull The Interactive Editor component (supplied with EngageOne server)

Edits are stored in the answer file where they can be accessed by Generate when composing the final output documents Edits can be sent to the delivery process automatically without being saved

For more information see Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 15

Overview

Save and submit

When a document instance is saved the system data interactive input delivery channel selections and any other relevant information is saved in an answer file

The answer file is passed back to the EngageOne repository by the WorkItemService and saved as a new revision of a permanent document instance

The completed document is submitted

The reference to the permanent document instance and version is sent to the Document Server for final delivery

The document revision and template revision are referenced by the Document Server and any change will not affect what is delivered to the user The user may choose from the templates delivery options

Delivering a document

The Document Server receives delivery requests

The requests are queued and a job number is returned to the calling application The job number can be used for future requests about job status error tracking and audit information

The system queries the EngageOne server for available delivery channels

Available delivery channels are returned by the DeliveryManagementService Web service call

Returned data is filtered by available channels set up in the template configuration and by EngageOne Document server permissions

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 16

2 - Integrating with EngageOne SOAP This section provides an overview of using EngageOne Server Web services to integrate with other business systems

In this section

OnDemand 18 Interactive 18 Data push processing in EngageOne Interactive 18 Interactive Document Delivery 32 Sample application 33 OnDemand Document Delivery 36

Integrating with EngageOne SOAP

OnDemand

Isolated services called by customer systems without an end user

Interactive

Graphical interfaces supporting stage by stage integration of EngageOne Server into existing tools and workflows

Data push processing in EngageOne Interactive

EngageOne Server includes an optional data push method This method can provide customer data that can be used to generate interactive documents

Data push works by pushing an XML data structure from your business systems to the EngageOne Server where it is ready for document instance creation The XML data structure is pushed to EngageOne Interactive using a Web service request

Data push can be used in conjunction with system data integration or in its place if the following requirements are met

bull You have no data to populate for drop-down lists free form text fields and any associated fields specified as key fields or visible on the XForm in your template

bull The data you push is complete bull Mapping is complete

To accomplish this create map files in an XML editor then import to EngageOne Server

Data push passes the data in any defined format then maps with one of the following options

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 18

Integrating with EngageOne SOAP

Mapping options

With a Push User

Without a Push User

Data push parameters

The parameters are

bull userId - user name

With a Template

bull Task set to ACTIVE_NEW status

bull User is automatically assigned

bull Work item is automatically created

bull Task set to ACTIVE_NEW status

bull Interactive prompts for user assignment

bull Work item is automatically created

Without a Template

bull Task set to NEW status bull User is automatically assigned bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull Task set to NEW status bull Interactive prompts for user assignment bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull password - userId password bull pushUserId - ID used to assign the task (optional) bull domainName - EngageOne domain name bull pushDataXML - source XML pushed data pushed bull mapId - data map identifier bull Template identifier - EngageOne Interactive template identifier (optional)

You can also pass authentication data for a user ID to push data on behalf of another user In this case the pushed data is associated with a Work Item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 19

Integrating with EngageOne SOAP

Accessing services

To create an instance of the stub you will need to know the Web service endpoint

Typically an EngageOne Web service endpoint is in the following format

httpltengageone-server-hostgtltserver-portgtEngageOneWSltweb-service-namegt

Where

bull ltengageone-server-hostgt the host name where EngageOne server is deployed

bull ltserver-portgt the port where the EngageOne Server Web services are accessible

bull ltweb-service-namegt the EngageOne Web service to invoke

How mapping works

The data map XML schema depends on your business data structure

Data maps are based on XML files that are loaded in EngageOne Server These data maps describe the data element associations in business data during a data push event to the corresponding answer file entries The data mapper uses data maps to map element names from a single data map for multiple EngageOne data formats However a single element name can only be mapped in one way

There are three methods for mapping data element mapping list mapping and repeat mapping

Important information about data maps

bull Map names are independent of the XML file used to import the XML structure bull Map files can be stored anywhere on your network and imported using the Data Map tab bull Data map names are unique due to the way map IDs are formed and must be unique within a domain

The diagram below shows how the data mapper works with data maps and answer files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 20

ltPubllcaliongt

lt lrs ~am gtltlrs ~ m gt

ltL slh ~egtltL s t amegt

ltmiddotr1 Llegtlt11 tlegt

ltPu lie tlongt

ltdat gt

Data Pust XML Mapper

le

ltEublicacion

ltvar name foo gtbarltvargt

ltvar name= blah gtduhltvargt

ltvar n me= huh gtltv rgt

Map File

(xyuml)

ltFirstNam gtbarltFirstNamegt lt~astNarn gtduhlt~ascNamegt

ltTitlegtltTi l gt

ltddtdgt ltPublicationgt

ltJaLaP sh 1 p ma p d=~xyzbullgt ltL slMap am = daLadaL xpaLh=lt na n gt

ltE menu-iap srcxraL = var- r1am = roo La~~ LXPaL = F rsLNam gt ltF m nLMap srcXPaL = va- am= lc1h larg tXPaL = LclSL Nam gt ltEemencMap srcXPa h var ~amec h middoth arge xea h l~ _e gt

ltla a stMapgt

Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 21

Integrating with EngageOne SOAP

Data map XML schema and examples

A good understanding of the data map XML schema is key to integrating data push methods between your business systems custom applications EngageOne Interactive and EngageOne Server

The data map XML schema uses XPath annotation for determining source and target elements in pushed XML data

The data map XML schema is located in

ltrelease-distributiongtsamplesdata-map-schema

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 22

Integrating with EngageOne SOAP

XPath

XPath is a language designed for finding information in an XML document

There are three ways to use XPath to determine the source and target elements for data mapping The source element comes from the pushed XML data specified to the Web service or the EngageOne Interactive URL The target element is the template answer XML file

The three types of mapping in the XML schema are ElementMap ListMap and RepeatMap

bull ElementMap maps a single data element from pushed XML data to a single element in an answer XML file

bull ListMap maps multiple data elements from pushed XML data to multiple elements in an answer XML file

bull RepeatMap maps repeating data elements from pushed XML data to repeating elements in an answer XML file

A single map XML file can have zero or more element maps zero or more list maps and zero or more repeat maps

Nest ElementMap ListMap and RepeatMap elements to define the source and targe file hierarchy

Using XPath annotation you can write expressions for the source element in the pushed XML data and the target element in the answer XML file

Note If you use namespaces in your pushed XML data you must declare standard XML namespaces in your data map

ElementMap example

ltpElementMap srcXPath=datadatum[name=String 1]targetXPath=InteractiveDataModelPublicationString2gt

The srcXPath attribute contains the XPath expression that identifies the source element in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination element in the answer XML file

In this example the source element is identified as the ltdatumgt tag where the name attribute has the value lsquoString1rsquo

The target element is identified as the ltString2gt element under the ltPublicationgt section of the answer XML file

ListMap example

ListMap is more complex

For example

ltpListMap name=datadatum xpath=name gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 23

Integrating with EngageOne SOAP

In this example the XPath expression ldquodatadatumrdquo identifies multiple elements in the pushed XML data For each of these elements the name attribute identifies the target element name in the answer XML file

For example if the pushed XML data had the following

ltdatagt ltdatum name=rdquoString1rdquogtFredltdatumgtltdatum name=rdquoString2rdquogtJonesltdatumgt

ltdatagt

The above example would identify both ltdatumgt elements from the pushed XML data It would copy ldquoFredrdquo into the ltString1gt element of the ltInteractiveDataModelgt of the answer XML file and copy ldquoJonesrdquo into the ltString2gt element of the ltInteractiveDataModelgt

Using a single ListMap you can copy over multiple pieces of data

RepeatMap example

The third approach is to use RepeatMap The RepeatMap element allows you to define a set of repeating elements from the source XML file and copy them to repeating elements in the target XML file

For example

ltRepeatMap srcXPath=mydatadata1targetXPath=InteractiveDataModelPublicationNestedRepeatingGroupParentgt

ltElementMap srcXPath=name targetXPath=NamegtltRepeatMap srcXPath=data2 targetXPath=NestedRepeatingGroupChildgtltElementMap srcXPath=time targetXPath=TimegtltElementMap srcXPath=num targetXPath=NumbergtltRepeatMapgt

ltRepeatMapgt

The srcXPath attribute contains the XPath expression that identifies the source repeating elements in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination repeating elements in the answer XML file

Inside RepeatMap nested ElementMap and ListMap are used to map data elements RepeatMapcan be nested as well Typically the XPath expressions used by a nested map are relative

In this example in the srcXPath of the first ElementMap name is relative to the srcXPath of its parent RepeatMap mydatadata1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 24

Integrating with EngageOne SOAP

EngageOne domains

Note as of the 4X version of the software domains are known as communities

EngageOne separates data into domains A domain represents a line of business department or section in a business environment

Domains are configured by a system administrator at installation time Once installed they can be managed and adjusted System users will be assigned various roles on a per-domain basis

When integrating with SOAP services the domain the username and password must be included in the request

User authentication

EngageOne Server supports two authentication mechanisms

bull WS-Security - industry and SOAP standard

The recommended authentication method

bull AuthContext - custom element in the SOAP request

This authentication method has been deprecated It is used for backwards compatibility with previous versions of the software

WS-Security

WS-Security (Web Services Security) is an industry standard that addresses security when data is exchanged as part of a Web service This authentication is implemented on all EngageOne Server SOAP services at the userid and password level

Legacy applications may choose not to use this type of authentication authenticating instead through the backwards-compatible AuthContext mechanism described below

New applications should leverage this authentication and disable the AuthContext mechanism

With WS-Security use the ltcomcommunitygtltcomcommunitygt element for the domain request

Legacy AuthContext

Every operation will include the AuthContext element AuthContext needs to contain UsernameToken or SessionToken elements

UsernameToken and SessionToken are mutually exclusive If the request contains SessionToken UserNameToken cannot be specified

Note When a request does not include the SessionToken element the server will expect the UsernameToken element to check authentication If the UsernameToken is valid the

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 25

Integrating with EngageOne SOAP

server will generate a new SessionToken that will be passed back to the client Subsequent requests can use the returned SessionToken instead of the UsernameToken

By default the SessionToken will expire after 30 minutes The timeout length can be configured via the session_timeout tag of the ltinstallation_rootgtcoreconfconfig-settingsxml file after EngageOne has been installed

If the SessionToken has expired a SOAP fault will occur with error code -6 Repeating the call that failed with a valid UsernameToken will allow the call to succeed and generate a new SessionToken The new SessionToken will be valid for an additional 30 minutes

Code example

ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongt optionalltcomondemandgtfalseltcomondemandgt optional

ltcomUsernameTokengtltcomauthContextgt

Obsolete flags

onDemand

The onDemand element was used to control licensing options in previous versions of the software We recommend non-legacy customers treat this element as optional and avoid using it

transientSession

The transientSession element was used to indicate the current call should not create a persistent session We recommend non-legacy customers treat this element as optional and avoid using it

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 26

Integrating with EngageOne SOAP

Data Push error handling

Error messages are contained in the SOAP Web service detail response Error messages are localized based on the server locale

To support localized error messages the SOAP details contains an errorCode element the client application can use to translate the error message This is based on the error code returned

Following is an example of a SOAP response from the server containing an error

ltxml version=10 encoding=UTF-8gtltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeader gtltenvBodygtltenvFaultgt ltfaultcodegtenvServerltfaultcodegtltfaultstringgtAuthentication failureltfaultstringgtltdetailgt ltServiceFault xmlns=httppbcomEngageOnewscommongtltcodegt-1ltcodegtltmessagegtAuthentication failureltmessagegtltServiceFaultgt

ltdetailgtltenvFaultgtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 27

Integrating with EngageOne SOAP

Code element error types

The code element in the SOAP fault is mapped to the following error types

Code Error Type

-1 General failure

-2

-3

Illegal argument

Invalid identifier

-4 Missing required argument

-5

-6

Unsupported operation

Session timeout

Message

bull failed to find Delivery Item

bull failed to deliver document bull failed to delete Delivery Item

bull failed to preview Template

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to resume Delivery Item

bull failed to suspend Delivery Item

bull failed to update Delivery Item

Never returned

bull failed to load subfiles (for example HIP) bull failed to find template

bull failed to find workItem

bull failed to find workItem preview

bull failed to preview because of current status (active-new or active-incomplete)

bull empty request bull missing delivery item identifier delivery options identifier template authContext workItemID HIP Property answer

Never returned

expired userContext

The message element is a string that explains the error details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 28

Integrating with EngageOne SOAP

Web services scenario medical insurance data integration

You work for an insurance provider as a data integration analyst You have been tasked with developing a custom system data integration program that collects key information about clients and additional client data from various back-end systems

This information populates an XML instance that is passed to the EngageOne server for document composition When data is pushed to the server the template and other identifiers are specified When the end-user launches EngageOne Interactive the work item based on the specified template is available

The first document composition activity that will be supported is email notification to plan members or their dependents who may be subject to coordination of benefit requirements

The following is a sample of data from the data source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 29

Integrating with EngageOne SOAP

Coordinate with template designer

The next step is to coordinate with the template designer and define the Interactive Data Model field names for associated document composition template

Typically either the data integration analyst provides the field names to the template designer or the template designer provides a list of field names to the analyst You will also need authentication information for the EngageOne server

Define data push mapping

Based on field name assignments the next step is to map the fields from your data source to the Interactive Data Model field names

The mapping is defined in a data push map file The mapping function allows any valid XML input structure to be mapped to the Interactive Data Model XML structure

Because of the structure of your input data and design of the template you decide to use ElementMap to map a single data element from the pushed XML data to a single element in an answer XML file

The field names received from the template designer are the same as the field names in the source data except the template designer is using a field named COB to represent the Coordination_of_Benefits data from the source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 30

Integrating with EngageOne SOAP

Import data push map

Name the map file MyDataPush_COBxml

You import the mapping file into EngageOne Administration

For more information see the EngageOne Administration Guide

Creating the Web services

Using Data Push Web services you can build a custom integration application and create thefollowing

1 Use any JAX-WS compliant client framework such as Axis2 to create Web service client stubs based on the pushData Web service

2 Use the client stubs to formulate a pushData request to pass the Data Push XML data to EngageOne Server with the template identifier and map name (mapId in the service definition)

3 Invoke the Web service using the client stubs you created 4 Handle the response from the Web service invocation 5 Test the custom system data integration application by passing a test XML instance Ask the

template designer or an EngageOne Interactive user to log in and verify that the work item is available

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 31

Integrating with EngageOne SOAP

Interactive Document Delivery

The most important feature of any interactive document delivery application is the ActiveX editor The ActiveX editor allows free form communication editing with a high degree of fidelity between the view presented while editing and the finished communication The editor is embedded in EngageOne Interactive and is available on the installation media

bull The ActiveX editor requires services to retrieve and save the associated files

The deliver-document sample application demonstrates how this can be achieved

bull If you build deploy and run the sample application you will progress through a series of pages

The first page prompts you to choose a lsquothemersquo for the pages

bull Then a login prompt displays

Once logged in choose a template and a delivery option from the two lists

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 32

Integrating with EngageOne SOAP

Sample application

The sample application included in the release distribution is a simple Java Server Faces application

This application uses the Mojarra implementation PrimeFaces for the UI components and a Java servlet to interact with the ActiveX control

The sample application is made up of two parts

1 The view (XHTML files) define the display elements

Included with the view files are controllers (java files) that define the interaction between the user and the views

2 The Java servlet provides the ActiveX editor with the required content then saves changes This functionality is provided by GET and PUT methods respectively

bull In the sample application the EditorServletjava file defines the servlet and its GET and PUT methods

bull The GET method takes templateId WorkItemId and domain name as URL parameters

These parameters are used to make SOAP calls to the EngageOne Server and retrieve the required files The retrieved files are zipped and passed to the ActiveX control

bull The PUT method takes the modified files as a Zip and passes the contained file to the EngageOne SOAP services These are written back to the EngageOne Server

bull The BaseURL and serverURLs will need to be defined for your implementation of the servlet

You can implement the servlet for your application in the way shown in the sample file or you can select a different approach In either case you will need to provide service end-points for the PUT and GET methods when launching the ActiveX control

Implement Deliver Document sample application

The sample application provides an example using EngageOnes SOAP services to query existing objects such as templates and delivery options These objects will be used with user input to generate documents that can be viewed or download through a browser

Note

bull These instructions are taken from a READMEtxt file located in the installation files in the samplesdeliver-document directory

bull The deliver_documentwar file is included in the installation files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 33

Integrating with EngageOne SOAP

Quick start

Use the deliver_documentwar file

Copy deliver_documentwar to the webapps directory of your Tomcat server

Note

bull deliver_documentwar may work with other servers It has been tested on Tomcat bull For best results use a clean copy of Tomcat with no other Web applications installed

Customize sample application

1 Edit the webWEB-INFdeliver-documentproperties file Replace compbsamplessoapurl with the server URL The Web application may be run from any server

2 Build the package with mvn clean package See httpsmavenapacheorgguidesintroductionintroduction-to-the-lifecyclehtml for more information about using Maven A deployable WAR file will be located targetdeliver_documentwar

3 Copy the WAR file to the webapps directory of the Tomcat server

Run sample application

1 Restart the Tomcat server Access the sample application httplthostname8080gtdeliver-documentLoginxhtml

bull Change lthostname8080gt above to match the correct hostname bull The Settings page displays

2 If appropriate choose a theme 3 Log in to the application

The sample application is ready to be used

Notes

bull You may set the property compbsamplessoapurl as a JVM property (-D) to override the server location

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 34

Integrating with EngageOne SOAP

bull This sample application reference shows how to use EngageOne services in a modern application environment Improvements can be made in the area of session management security etc Please follow your own best practices

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 35

Integrating with EngageOne SOAP

OnDemand Document Delivery

The most common goal for this use case is to create a single communication from a template This is illustrated by walking through an example for generating a PDF

At the highest level the steps are load a template load a delivery option deliver the document

At a slightly lower level the programmer will need to manage

bull Authentication for all calls bull Manipulation of the template files on disk bull A mechanism for the customization of a template into a document bull Any post-delivery activities (for example saving a delivered PDF to disk)

Before a document can be delivered the following must exist a domain a template and a delivery option

Note These prerequisites are not covered in the sample application

Ways to authenticate

There are two ways to authenticate

WS-Security

The recommended authentication method This type of authentication is implemented in all EngageOne Server SOAP services at the userid and password level

Legacy AuthContext

This authentication method has been deprecated

For details on authentication see User authentication

Typically a template will be retrieved for instantiation via the templateServicesearchTemplates call This object contains the files for a communication based on that template All data will necessarily be empty or set to defaults

Data entry in a communication can be customized in many ways

For the included sample application the files are saved to disk and a user is instructed to edit them manually Then the files are loaded (in this example from disk) into the Template field of a DeliverDocument object

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 36

Integrating with EngageOne SOAP

While it is not feasible to reproduce all relevant code from the sample project in this document what follows is a short excerpt edited for clarity It demonstrates the calls to deliver a document and save the PDF generated once the template customer data and delivery option have been prepared

response = deliverydeliverDocument(doc)getDeliveryRequest()items = responsegetDeliveryItems()getDeliveryItem()item = itemsget(0)saveFile(path item)

The DeliveryItem object passed here to saveFile will return an InputStream via getInputStream and can be saved to a file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 37

3 - XForms EngageOne defines the data model for a template using the World Wide Web Consortium (W3C) XForms standard It is intended to provide a flexible device-independent mechanism for collecting information from users in a primarily Web-based environment

In this section

About XForms 39 XForms processors 41 XFormSDI Flow 42 XForms standard files 43 Data definition type and attributes 62

XForms

About XForms

The following are primary benefits of XForm ndash for more details see wwww3orgMarkUpForms2003xforms-faqhtml

bull XForms has been designed to allow much to be checked by the browser such as types of fields being filled in that a particular field is required or that one date is later than another This reduces the need for round trips to the server or for extensive script-based solutions and improves the user experience by giving immediate feedback to what is being filled in

bull All dates in the WSDLs should be using the XML Schema date datatype which defines a standard date format YYYY-MM-DD This is not a propriety implementation For more information you can refer to the specification at wwww3orgTRxmlschema-2date

bull XForms is properly integrated into XML it is in XML the data it collects in the form is XML it can load external XML documents as initial data and can submit the results as XML Including the user in the XML pipeline means you can have end-to-end XML right up to the users desktop

bull XForms uses a number of existing XML technologies such as XPath for addressing and calculating values and XML Schema for defining data types This has a dual benefit ease of learning for people who already know these technologies and the ability for implementation to use off-the-shelf components to build their systems

bull The same form can be delivered without change to a traditional browser a PDA a mobile phone a voice browser and even Instant Messenger This greatly eases providing forms to a wide audience since forms only need to be authored once

bull It is much easier for the author to create complicated adaptive forms without having to resort to scripting because XForms uses declarative markup to declare properties of values and to build relationships between values

bull XForms has been designed so that it will work equally well with accessible technologies as with traditional visual browsers

XForms greatly improves on the HTML form approach by separating the purpose from the presentation specifically what the form does and how it looks It achieves this separation of concerns by adopting the Model-View-Controller (MVC) pattern

The data to be collected by the form is known as instance data and the XForms model describes the structure of the instance data in addition to constraints on that data and submissions Document navigation workflow auto-fill and pre-fill form applications are supported through the use of instance data The view of the XForm describes the controls to be used and which items of data they are bound to The controller is the XForms processor in use which coordinates events in the system

The fragment below is an XForm page which demonstrates these different entities

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 39

XForms

The instance element serves as a container for the initial instance data These are the fields which the form controls will be bound to When the form is first displayed the values in this XML will be presented as the default values When the form is submitted this XML structure will be updated to contain the new values supplied by the user and the XML posted or otherwise handled accordingly

As an alternative to embedding the instance XML directly into the XForm file the instance element may simply refer to an external XML file using the src attribute XForms originating in EngageOne always point to an external instance XML file

The model element contains bind elements which define constraints on mappings to the instance data and a submission element which defines the action that will be taken when the form is submitted by the user

The presentation elements within the XForm page body contain the controls each of which possess references to the instance data

For more information on XForm technology see the W3C XForm wiki page httpwwww3orgMarkUpFormswiki The XForm Institute also provides an online book containing a comprehensive discussion of this technology at httpxformsinstitutecomessentialsbrowseindexphp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 40

XForms

XForms processors

To integrate with XForms you need to choose an appropriate XForms processor for your application Here is a short list of XForms processors both free and commercial that you may wish to investigate Please refer to their respective sites for specific installation and integration instructions

Orbeon Forms Orbeon Forms (formerly Orbeon Presentation Server (OPS)) is an open source forms solution that handles the complexity of forms typical of the enterprise or government It is brought to standard Web browsers (including Internet Explorer Firefox Safari and Opera) via the Ajax technology with no need for client-side software or plug-ins Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation optional and repeated sections always up-to-date error summaries PDF output full internationalization and controls like auto-completion tabs dialogs trees and menus Orbeon Forms already supports part of the XForms 11 specification

Jadu XForms allows you create accessible and XML enabled online forms for integration with payment and CRM systems

Open Office XForms is integrated in Open Office

Libre Office XForms is integrated in Libre Office

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 41

XForms

XFormSDI Flow

KEYFIELD NON-KEYFIELD

visible visible 1stXForm 2nd XForm

F F F F SDI is invoked then editor displays

F T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

T F T F User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then editor displays

T T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

Rules

1 If any visible fields then display 1st Xform with any keyfields displayed (even if there are no visible keyfields) 2 SDI is always invoked 3 If any visible non-key fields then display 2nd XForm

Data push rules

1 If SDI has not been invoked on a work item created via DP (ie status = Active New) then SDI processing must occur

2 If all key fields are populated via DP then skip 1st Xform (overrides rule 1 above)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 42

XForms

XForms standard files

The XForms standard main components are the files used by the Interactive Editor to drive all user interactions These include an XHTML presentation file XML instance file and an XSD schema definition file These files are used by the Interactive Editor to drive all user interactions and can be used for integration purposes to collect system data from a front-end business system The XForms files can also be opened by a standard XForms processor in order to present a more traditional Web-based eForm data capture interface as part of an application

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 43

XForms

XHTML presentation file

The XHTML presentation file contains the defined fields together with related attributes of the interactive data presented in the EngageOne Interactive Editor during document completion Since this file conforms to the W3C XHTML standard the defined data types and the available attributes are included in the XHTML standards For more information on XHTML visit the W3C Web site

The following is an example of an XHTML presentation file

lt-- XForms and Orbeon Namespaces --gt ltxhtmlhtml xmlnsxhtml=httpwwww3org1999xhtmlxmlnsev=httpwwww3org2001xml-eventsxmlnsf=httporbeonorgoxfxmlformattingxmlnswidget=httporbeonorgoxfxmlwidgetxmlnsxforms=httpwwww3org2002xformsxmlnsxs=httpwwww3org2001XMLSchemaxmlnsxxforms=httporbeonorgoxfxmlxformsgt

lt-- Header section --gt ltxhtmlheadgt ltxhtmltitlegtInteractiveDataModelltxhtmltitlegt

lt-- Xform model section --gt ltxformsmodelgt

lt-- Specifies actual instance fileReplace with actual Instance filename --gt ltxformsinstance src=57861025010e462fa5acbde4fe0ecf90xmlgt

ltndash- This specifies how the results of the form are to be submitted By default it specifies the put mechanism andthename of theinstance file as the action (target file) In addition a submit control must always be added to the view referencing the ID of thesubmission elementReplace with actual instance filename --gt ltxformssubmission action=57861025010e462fa5acbde4fe0ecf90xml id=main_submission method=putgt

lt-- Bind section These bind the interactive data definition to a set of attributes --gt ltxformsbind nodeset=InteractiveDataModelPublicationCustomerName

readonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerAddressreadonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerCity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 44

XForms

readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerStatereadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerZip readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationPolicyNumberreadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationClaimantNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceSourcereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceDatereadonly=false() required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationPhysicialNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationServiceDatereadonly=false()required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentNamereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentTitlereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationRecipientreadonly=true() required=false() type=xsstringgt

ltxformsbind

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 45

XForms

nodeset=InteractiveDataModelPublicationDeliveryInformationEmailToAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailFromAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailSubjectreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailBodyreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationFaxNumberreadonly=false() required=false() type=xsstringgt

ltxformsmodelgtltxhtmlheadgt

lt-- XForms View section(XHTML body) --gt ltxhtmlbodygt

ltndash- User interface control for the Interactive Data Definition in the

Model section ndash-gt span style=displaynonegt

ltndash- User interface control for the Interactive Data Definition in the Model section ndash-gt

ltxformsinput ref=InteractiveDataModelPublicationCustomerNamegtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangt

ltndash- Separates controls in XForms browsers or processors for layout purposesndash-gtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegt

ltxformsinput ref=InteractiveDataModelPublicationCustomerAddressgt

ltxformslabelgtltxformslabelgtlt xformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 46

XForms

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerCitygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerStategtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegtltndash- May contain the followingsections Input ndash choice validation is not specified it is only applied to FieldGroup Field and Delivery Information

Select1 ndash used for Single Selection attribute for the specifieddefinition

Select ndash used for Multi-Selection attribute for the specified Definition ndash-gt

ltxformsinputref=InteractiveDataModelPublicationCustomerZipgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPolicyNumbergt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationClaimantNamegt

ltxformslabelgtSelect the claimantltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 47

XForms

ltxformslabelgtFredltxformslabelgtltxformsvaluegtFredltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMarthaltxformslabelgtltxformsvaluegtMarthaltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTylerltxformslabelgtltxformsvaluegtTylerltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtWilmaltxformslabelgtltxformsvaluegtWilmaltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationCorrespondenceSourcegtltxformslabelgtSelect the correspondence sourceltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt ltxformslabelgtEmailltxformslabelgtltxformsvaluegtEmailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtFaxltxformslabelgtltxformsvaluegtFaxltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMailltxformslabelgtltxformsvaluegtMailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTelephoneltxformslabelgtltxformsvaluegtTelephoneltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondenceDategtltxformslabelgtSelect the correspondence dateltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 48

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPhysicialNamegtltxformslabelgtType the physician nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationServiceDategtltxformslabelgtSelect the date of serviceltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentNamegtltxformslabelgtType your nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentTitlegtltxformslabelgtType your titleltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationRecipientgtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailToAddressgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 49

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailFromAddressgt ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailSubjectgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailBodygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationFaxNumbergtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltxformssubmit submission=main_submissiongt ltxformslabelgtSubmitltxformslabelgtltxformssubmitgt

lt-- This specifies the submit control for the XForms --gt ltxhtmlbodygtltxhtmlhtmlgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 50

XForms

XML instance file

The XML file is referred to as the instance file because it contains the instance node of the XForms file This file contains the values for the definitions (fields repeating group fields group fields and IDE group fields) ndash see Data definition type and attributes on page 62 This file may initially contain only empty elements for each of the defined fields since values are only written if default values have been specified in the Interactive Data Editor After an eForm has been completed or the Interactive Editor has been used the values the user supplied for each field will be saved to the instance file (Note freeform text is stored in the pub and hip files not the instance file) Since this file conforms to the W3C XML standard the defined data types and the available attributes are included in the XML standards For more information on XML visit the W3C Web site

ltndash- This specifies the IDD title version number of schemaused Namespaces actual Schema fileReplace with actual Schema filename--gt ltxml version=10 encoding=UTF-8 standalone=yes gt- ltInteractiveDataModel xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=57861025010e462fa5acbde4fe0ecf90xsdgt

ltndash- Publication --gt - ltPublicationgt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt ltCustomerNamegtFred JonesltCustomerNamegtltCustomerAddressgt123 High StreetltCustomerAddressgtltCustomerCitygtBelguimltCustomerCitygtltCustomerStategtWIltCustomerStategtltCustomerZipgt53021ltCustomerZipgtltPolicyNumbergt254320982ltPolicyNumbergtltClaimantNamegtFredltClaimantNamegtltCorrespondenceSourcegtFaxltCorrespondenceSourcegtltCorrespondenceDategt2007-12-22ltCorrespondenceDategtltPhysicialNamegtDr JamesltPhysicialNamegtltServiceDategt2007-12-02ltServiceDategtltCorrespondentNamegtyour nameltCorrespondentNamegtltCorrespondentTitlegtyour titleltCorrespondentTitlegt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt -ltDeliveryInformationgtltRecipient gtltEmailToAddress gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 51

XForms

ltEmailFromAddress gtltEmailSubject gtltEmailBody gtltFaxNumber gt

ltDeliveryInformationgtltg1private gtltPublicationgtltInteractiveDataModelgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 52

XForms

XML schema file for the interactive data model

The XML schema definition or XSD describes the format of the XML document containing the data This is the file used to generate the Data Format and allows the final document to be generated from the updated instance file The XSD is also a W3C standard For more information on XML schema files visit the W3C Web site

The following is an example of an XML schema definition file

lt-- Namespace and version number of schema and default namespaces --gt ltxml version=10 encoding=UTF-8 standalone=yes gtltxsschema xmlnsxs=httpwwww3org2001XMLSchemaelementFormDefault=qualifiedxmlnsg1=httpwwwg1comOCMSchemagt

lt-- Interactive Data Model --gt lt-- Interactive Data Definition in Schema element format --gt ltxselement name=InteractiveDataModelgt ltxscomplexTypegtltxssequencegtltxselement name=Publicationgt ltxscomplexTypegt

ltxssequencegtltxselement g1keyfield=true g1sysdata=true

g1visible=false minOccurs=0 name=CustomerNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerAddressgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerCitygt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerStategt

ltxssimpleTypegtltxsrestriction base=xsstringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 53

XForms

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerZipgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=PolicyNumbergt

ltxssimpleTypegt

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ClaimantNamegtltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Fredgtltxsenumeration value=Martha ltxsenumeration value=Tylergtltxsenumeration value=Wilmagtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=CorrespondenceSourcegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Emailgtltxsenumeration value=Faxgtltxsenumeration value=Mailgtltxsenumeration value=Telephonegtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondenceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=PhysicialNamegt

ltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 54

XForms

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ServiceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentTitlegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement minOccurs=0 name=DeliveryInformationgtltxscomplexTypegtltxssequence maxOccurs=1gtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=Recipientgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailToAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailFromAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailSubjectgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 55

XForms

ltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailBodygtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=FaxNumbergt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxssequencegt

ltxsattribute name=Delivery use=optionalgtltxscomplexTypegtltxselementgtltxselement name=g1privategtltxssequencegt

ltxsattribute name=DOC1TREATASSOP type=xsboolean use=optionalgtltxscomplexTypegtltxselementgtltxssequencegtltxscomplexTypegtltxselementgtltxsschemagt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 56

XForms

XML schema file for the non-interactive Designer data model

XML schema file for the non-interactive Designer data model

The Designer file formats supported are

bull Keyed Record bull CSV Data Format bull Custom XML

Keyed Record

EngageOnerequires that Designer provides data format information when publishing a template where the publication implements a keyed record data format A data model file in the form of an XML structure is published with this type of publication along with the XML schema for the data model XML

For Example consider the following keyed record data block

CUSTOMER01001012831MrJohn Lawrence Lawrence 311Bellview Drive Gloucester VA 23061 VAMLIEPO CUSTOMER0207021999080119990831199909031999000178750000000000017875000000 0000020845 MOBILE0100009900000011210000000000011021 LONGDIST0100000495000003500000398400004829 INTERNET0100000000000049950000000000004995NADSL 384k 128k SUMMEND DETAIL00Mobile Service DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000 DETAIL00Long Distance ServiceDETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000

TheXML structure is generated by Designer to represent this data model Note the XML in this example is not complete

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegt

ltSource createdBy=DOC1Data Format Editor version=11date=2011-04-28gt

ltSchemaDefgt ltFileInfogt ltFileFormatgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 57

XForms

ltFixedWidthgt ltRecordDelimitergtCR+LFltRecordDelimitergt

ltFixedWidthgtltFileFormatgtltDefaultHandlinggtltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggtltFileInfogtltDataHierarchygtltRecordKeykey=MOBILE01gt

SVD data is represented by the ltFixedWidthgt tag in above XML structure

CSV Data Format

EngageOne will require that Designer provides data format information when publishing a template where the publication implements a CSV data format The following approach would address the requirements for EngageOne with regard to this format

A data model file in the form of an XML structure would be published with this type of publication along with the XML schema for the data model XML

For example consider the following CSV data block

Key Name Address Zip DRAmountRemarks001Smith101 Princes StreetED1 4DH DR8901Cash charges apply

001 Manish102 Princes StreetWD17 1UE CR5000Transport charges

Thefollowing XML structure would be generated by Designer to represent this data model

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltSource createdBy=DOC1Data Format Editor version=11date=2011-03-25gtltSchemaDefgt ltFileInfogt

ltFileFormatgt ltDelimitedgt ltFieldDelimitergtltFieldDelimitergtltQuotegtltQuotegtltFirstRowHeadingsgttrueltFirstRowHeadingsgtltRecordDelimitergtCR+LFltRecordDelimitergt

ltDelimitedgtltFileFormatgtltDefaultHandlinggt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 58

XForms

ltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggt

ltFileInfogtltDataHierarchygtltRecordKeykey=001gt

ltDataHierarchygtltDataStructuregt ltRecordkey=Key descr= hideRecord=true repeatType=Group

maxOccurs=0 minOccurs=0gt ltField name=Key Definition Field import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt07D6A8A528A9964C8E6E9F9075F5649CltFieldKeygt

ltFieldgtltField name= Name import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt0974502326B53548A3BE1BA86E85735BltFieldKeygt

ltFieldgtltField name= Address import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt8B33038F15BB5345B82D8148C562C27DltFieldKeygt

ltFieldgtltField name= Zip import=true required=truegtltStringgt

ltStrLengthgt0ltStrLengthgtltStringgtltFieldKeygt9D0E2B9C4C95F948B7BB829C7A91039FltFieldKeygt

ltFieldgtltField name= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt68AED90F9271A3448AA932EF84B42B59ltFieldKeygt

ltFieldgtltField name= Amount import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtF57F5D798949A54D929E796225CD726EltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 59

XForms

ltStrLengthgt8ltStrLengthgtltStringgtltFieldKeygtEBCC0E4E8CCD9347948694BC21C5A248ltFieldKeygt

ltFieldgtltRecordgt

ltRecordkey=001 descr=KeygtltFieldiskey=true name=Key Definition Field import=true

required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt7C8C32E0EC913D41A608D56E24443B82ltFieldKeygt

ltFieldgtltFieldname= Name import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtC246A928E5A4FF4D966541199954779FltFieldKeygt

ltFieldgtltFieldname= Address import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt15B78234DB357343BB72751CC638A5F3ltFieldKeygt

ltFieldgtltFieldname= Zip import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtE7E1245888D5E54794F9B8C6FE12B131ltFieldKeygt

ltFieldgtltFieldname= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt964879FB55944D40BD3E22568350333AltFieldKeygt

ltFieldgtltFieldname= Amount import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt4975636D567F594A88AEF96EDEE1C538ltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgtltStrLengthgt21ltStrLengthgt

ltStringgtltFieldKeygt2D2B4AB6EFFF1D42B66EB63FB3BAED04ltFieldKeygt

ltFieldgtltRecordgtltDataStructuregt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 60

XForms

ltSchemaDefgtltFileDescriptiongt

SVD data is represented by the ltDelimitedgt tag in this XML structure

Custom XML

Designer generates an XML schema that represents the custom XML structure that you may create

for any given publication EngageOne supports the custom XML data model by having access to this

XML schema file When Designer publishes a template for EngageOne the following files appear in

the archive file

template_masterxml includes a SCHEMA tag in ltSubfilesgt and there will be no DATAMODEL

tag

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modelxsdltFilegtltSubfilesgt

In Designer user can create custom xml sample data using

bull XSD schema file bull DTD schema file

Depending on the schema file the SCHEMA entry in template_masterxml will change For XSD ltSubfilesgt will be as above for SCHEMA tag For DTD schema ltSubfilesgt will be

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modeldtdltFilegtltSubfilesgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 61

XForms

Data definition type and attributes

The EngageOne XForms data definition types and attributes follow the standard XForms specifications Below is a diagram of the structure of the data definition node types

The configurable attributes available are listed below

This attribute specifies the name of the interactive data element Naming conventions follow XML standards They can only contain alphanumeric characters and underscores and must start with a letter

Name

This attribute specifies the data type of the value of the interactive data

Type

This attribute specifies the initial value

This value is set directly in the XForms Instance (XML) as the inner node value

Default Value

This text appears in both the Interactive Editor and on a traditional eForm to tell the user what to enter

The Prompt value is set in the XForms View (XHTML body node) using the label node

Prompt

This attribute is used to provide an extended message or explanation of the Prompt attribute

Help Text

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 62

XForms

This attribute marks the interactive field for compulsory completion When filling out a template a value must be provided for this field in order to progress to the next interactive field or generate the document

This is set in XForms Model using the required attribute of the bind node

This dictates whether the field value is user changeable or not This property is frequently set for definitions requiring system-supplied data from mainline business systems

This is set in XHTML using the read-only attribute of the bind node

This specifies whether the interactive field for the definition should be displayed on the form The Visible property only impacts the display of an interactive field on a traditional eForm presentation All fields needed to complete a document or used in document are always prompted for in the Interactive Editor unless they are defined in the document as read-only

This property value is set in the XSD schema file using g1visible attribute of the element node

The System Data attribute identifies elements whose values are expected to be supplied by system data integration with the front end business system

This flag is set in the XSD schema using the g1sysdata attribute of the element node

The xml structure of supplied system data should be the same as the xml structure of the answer file Thus repeating groups of answer file-like XML structure should be put in under the system data tag For a sample system data xml structure see XML instance file on page 51

The Key Field denotes whether a definition is the unique identifier for the template or not This attribute is used by EngageOne to order and manage the template instances

Key fields are also used by the system data integration program to identify the correct data to collect

This flag is set in the XSD schema file using the g1keyfield attribute of the element node

Mandatory

Read-Only

Visible

System Data

Key Field

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 63

XForms

Expression Validation

Max Length Validation

This property defines input value constraints to ensure valid entries are accepted for the definition during data capture

These rules are set in the XForms Model using the constraint attribute of the bind node

In the XSD schema file they are set using the value attribute of minInclusivemaxInclusive minExclusive or maxExclusive node

This attribute specifies the maximum number of characters a user may input for a string-type field

The value is set in the XForms View (XHTML body node) using the maxlength attribute of the input node In the XSD schema file it is set using the value attribute of the maxLength node

For more information on how these fields are populated and used during data integration see System Data Integration on page 65

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 64

4 - System Data Integration System Data Integration (SDI) enables loading system data into the EngageOne Interactive This data can be extracted from different sources

For example Web service message queues databases etc

In this section

SDI General Configuration 66 Using an XML file as a data source 67 Using the Java callback interface 68 Feature support for System Data Integration 69 Integration option 1 ndash XML data source 71 Integration option 2 ndash callback interface 75

System Data Integration

SDI General Configuration

EngageOne Interactive uses XForms to support external SDI and user prompts before the document editing session is launched in the EngageOne editor The modular design of XForms detaches the model (data rendered by the view) from viewable content This allows the SDI handler to work in isolation with the XForms model and modify it depending on the requirements

In this section two SDI methods are explained along with the features provided by the EngageOne system to support System Data Integration

This section assumes that the integration programmer has XForm knowledge and experience

EngageOne Interactive provides two methods for integrating documents with external system data

bull An XML data source (for demonstration and proof of concept purposes only) which the application reads and parses to identify and load data to a target document

For more information see Using an XML file as a data source

bull A Java callback interface invoked during the System Data Integration process

See Using the Java callback interface on page 68

EngageOne provides a generic XForm (included in the document subfiles) This XForm can be used with both integration methods to allow user interaction with the system by providing inputs that control loading of system data into the document

SDI configuration is controlled by settings in deploylocalproperties When the path to sysdataxml is missing (default setting) the system bypasses the SDI call and uses the answer file in the template When the path is defined the SDI call is made to sysdataxml If the path to sysdataxml is specified but the system cannot find the file an error message displays

If the path to sysdataxml is not specified but a custom class is specified the custom SDI class will be used If both the path to the default XML and the custom SDI class are specified the custom class is used

Note This method is provided for demonstration and proof of concept It is not intended for production purposes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 66

System Data Integration

Using an XML file as a data source

This method is provided for demonstration and proof of concept It is not intended for production purposes

An external XML data file sysdataxml contains system data needed to populate a documentrsquos sysdata fields By default System Data Integration is not enabled To enable sysdataxml set the location in deploylocalproperties

The system data loading process occurs during document creation An XForm is displayed once SysdataAction detects there is a keyfield referenced in its schema definition The XForm prompts the user to provide input which serves as the key to retrieve the corresponding line item from the XML data

XML data source diagram

This is illustrated in the following diagram

The user submits the input form and SysdataAction (action controller) attempts to load the SystemDataLoader specified in systemdataproperties The system data loader class is empty by default allowing the default SystemDataLoader class implementation (XMLSystemDataLoader)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 67

System Data Integration

XMLSystemDataLoader tasks

XMLSystemDataLoader performs the following tasks to render the XForm page that will be sent to the user

bull Loads the system data XML from the location specified in systemdataproperties

bull Parses the system data XML bull Transfers the selected line item to the document answer XML file bull Returns the modified document subfiles back to the SysdataAction class

The XForms page shows the system data input fields populated with data from the system data XML

You can also use the Visible attribute for fields to display in the XForm after system data loading has completed The Visible attribute is configured by the template designer in Designer by enabling the schema definition (set to True)

Using the Java callback interface

The second option incorporating System Data Integration is via a Java callback interface During System Data Integration you can configure the EngageOne Interactive application to invoke a custom implementation This implements a callback interface (system data loader) and allows access to references of document subfiles

The XMLSystemDataLoader (default system data loader) implements the system data loader interface The default system data loader will be replaced by your custom system data loader One system data loader can be plugged into the application at a time

Note Multiple system data loaders can be used in the application employing various object oriented patterns

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 68

System Data Integration

Java callback interface process flow

The process flow and interaction discussed in the previous section Using an XML file as a data source applies to the process flow implemented with a custom system data loader

The process starts when EngageOne Interactive detects that a document has keyfields EngageOne Interactive will delegate SysdataAction to retrieve and collate the document subfiles and wrap them in an XFormsContext object SysdataAction will invoke the custom system data loader class and pass the XFormsContext object The XForms page will be rendered and which will contain the modifications in the document subfiles

When implementing System Data Integration be aware that document subfiles should be retrieved from the document repository via Web services to incorporate your System Data Integration requirements

Feature support for System Data Integration

EngageOne provides custom XML attributes for defining the document schema subfile (XSD)

These attributes are available through the following namespace httpwwwg1comOCMSchema

Each custom attribute is attached to the element definition on the schema subfile

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

Where

bull visible ndash XForm user interface element which references this node This should be visible when the XForms page is rendered

bull keyfield ndash Instance data value that should be used as a look-up field for retrieving external system data The corresponding user interface element should be visible if data will be provided by the user

bull sysdata ndash Instance data value should be populated with external system data look-up results

There are attributes in the XForms subfile that work with the custom attributes defined for System Data Integration

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 69

System Data Integration

XForms model example

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

In this example

bull required attribute - Required instance data value Should contain a value bull read only attribute - Read only attribute Should not change its value The XForms user interface element which references this node is rendered as a non-editable form element

Note When implementing the system data loader where you need to modify the XForms page ensure that the attribute values are properly set

It is important that the above attributes are set with appropriate values so the XForms page will render properly

The values of those attributes are set visually in the document templates

For more information see Designing the template for System Data Integration on page 71

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 70

System Data Integration

Integration option 1 ndash XML data source

Loading the data from an XML data source is the default mode when performing System DataIntegration

Enabling the default system data loader

Note On a fresh system install this is the default configuration for EngageOne Interactive This step is necessary only overriding this setting

For example you develop a custom system data loader and plug it in to the application

To enable the default system data loader

In EngageOne Interactive modify the system data configuration settings deploylocalproperties

This involves

1 Set the sdicallbackclassname to blank 2 Set the sdicallbackjarpath to blank

Designing the template for System Data Integration

In Designer the Interactive Data Editor allows configuring the XForms page for System DataIntegration This process works with XForms and custom schema attributes

Following are some processes showing variations on configuring the system data attributes of your template

For more information about designing templates for EngageOne see the Designer Userrsquos Guide

Configure system data load with a user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Disable the read-only attribute in the XForms design page for user interaction fields

The required attribute can be enabled for users to provide data before document authoring This is for fields not populated with system data

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 71

System Data Integration

Configure system data load with the user confirmation page read-only

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Enable the read-only attribute in the XForms design page for user interaction fields

Configure system data load without the user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Disable the visible attribute for fields the user will interact with

This loads system data to the answer XML file and launches EngageOne editor with the document displayed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 72

System Data Integration

Preparing the system data XML

In order for system data to be loaded by EngageOne Interactive your system must create the sysdataxml file

The following schema constraints are enforced for sysdataxml

ltxselement name=system-datagtltxscomplexTypegt

ltxssequencegt answer XML file schema constraint applies hereltxssequencegt

ltxscomplexTypegtltxselementgt

bull The sysdataxml file must be enclosed by a system data element bull There should be a list of XML nodes in the system data element

These nodes will refer to a system data line item which has the same format as the answer XML file and complies with the schema defined for the answer XML file

Example XML answer file

The following example illustrates a defined answer XML file followed by a corresponding system data XML

Defined answer XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=d3dc1f5adc034110914418efcb2bcb07xsdgt

ltPublicationgt ltAccountNamegtltAccountNamegtltAccountNumbergtltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtltBillingAddressgt

ltg1private gtltPublicationgt

System data XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltsystem-datagt

ltInteractiveDataModelgt ltPublicationgt

ltAccountNamegtJohn XltAccountNamegtltAccountNumbergtEA343ADF-DDltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtJohn X ResidencesltBillingAddress

ltPublicationgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 73

System Data Integration

ltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn YltAccountNamegtltAccountNumbergtY1343ADF-YYltAccountNumbergtltDateCreatedgt2008-11-08ltDateCreatedgtltBillingAddressgtltBillingAddress

ltPublicationgtltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn ZltAccountNamegtltAccountNumbergtZ04A3ADF-ZZltAccountNumbergtltDateCreatedgt2008-10-11ltDateCreatedgt

ltPublicationgtltInteractiveDataModelgt

lt-- more system data line item can be appended here --gt ltsystem-datagt

InteractiveDataModel element

The InteractiveDataModel element represents a single data line item where each line should have the same XML structure as its answer file

The g1private element is not present in any line item in the system data XML Any nodes under g1private are used for EngageOne internal processing If appropriate nodes can be excluded from a line item

For example BillingAddress is not included in the line item John Z

EngageOne Interactive transfers a selected line item from the system data file to the answer file Missing information line item information will be skipped during transfer

EngageOne Interactive uses the schema definition to determine which elements are key and sysdata fields

For each sysdata element the element should be populated with system data

Loading the system data XML

Plug in the system data XML to EngageOne Interactive

1 Modify the system data configuration settings in deploylocalproperties 2 Modify the sdisysdatapath property and set it to the absolute path of the system data

XML file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 74

System Data Integration

Integration option 2 ndash callback interface

Configure EngageOne Interactive to use a custom system data loader implementation

Configure EngageOne Interactive to use a custom system data loader implementation

1 Create the custom system data loader implementation 2 Compile and package the custom system data loader implementation class to a JAR file 3 Configure EngageOne Interactive system data settings to load and invoke the custom system

data loader class

Implement a custom system data loader

To implement a custom system data loader

Steps

1 Create a custom system data loader class which implements the compbocmclientxformSystemDataLoader Java interface This must be plugged into EngageOne Interactive at runtime The System Data Integration API classes are bundled in sdi-client-apijar located in the samples folder of the EngageOne distribution folder This houses the main interface of the System Data Integration that the custom system data loader class needs to implement

For example

public interface SystemDataLoader

Loads system data into the given XML document param xmlDocument the given XML document param context throws Exception if an error occurs while loading system

data void loadSystemData(XFormsContext context) throws Exception

2 Import the project classpath to reference the System Data Integration API classes When packaging the custom system data loader you may not need to put the sdi-client-apijar

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 75

System Data Integration

file on the project classpath as those classes are available in the EngageOne Interactive Web application archive The following guidelines must be observed when developing a custom system data loader

bull Create the custom system data loader implementation bull The custom system data loader should implement the compbocmclientxformSystemDataLoader interface

bull An XFormsContext object is passed to the custom system data loader when invoked during System Data Integration The object provides access to the document subfiles answer file XForm file and answer file schema file

bull If an XForms file is altered it should conform to the W3C XForms 11 standard

If an answer XML file is altered it should conform to its XML schema file

Any structural change in the answer XML file should be cascaded to its XML schema file When loading EngageOne Editor validates the answer XML using the XML schema

bull Do not change the g1private XML element in the answer XML file or the corresponding constraint in the XML schema

Notes

bull Altering custom EngageOne XForms attributes will affect how the XForms page is rendered in EngageOne Interactive Incorrect settings might cause the page to be incorrectly displayed or lead to loss of data

bull Set keyfields to visible bull System data can be set to visible or non-visible bull It is recommended that Required fields in the XForms file be set to visible bull It is recommended that you do not amend a field marked as System data before invoking the custom system data loader

bull Any change made to document subfiles cannot be reversed bull Do not change XML namespaces in document subfiles bull Removal of existing XML elements from document subfiles is not allowed bull Any other changes can be made to document subfiles except for the constraints mentioned above

For example you can add XForms UI elements XML data in the answer XML file as well as make schema and XForms constraint modifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 76

System Data Integration

Custom system data loader

Following is a sample custom system data loader This adds a visible input element in the document

These changes include

bull Addition of schema definition in the XML schema file bull Addition of XForms mapping in the XForms file bull Addition of XML nodes in the answer XML file which maps to the XForms element

Custom data loader interface

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception loadToSchema(context)loadToView(context) loadToInstance(context)

private void loadToSchema(XFormsContext context) throws Exception private void loadToView(XFormsContext context) throws XMLStreamException

FactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException private void loadToInstance(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException public void loadSystemDataWithXpath(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException JaxenException SAXException IOExceptionParserConfigurationException TransformerFactoryConfigurationErrorTransformerException

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 77

System Data Integration

loadToSchema function

private void loadToSchema(XFormsContext context) throws Exception add simple element to schema XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetSchemaAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement schema

= buildergetDocumentElement() OMElement root = schemagetFirstElement() OMElement complexType = rootgetFirstChildWithName(new QName(httpwwww3org2001XMLSchema complexType)) QNamesequenceIndicator = new QName(httpwwww3org2001XMLSchemasequence) OMElement complexTypeChild = complexTypegetFirstChildWithName(sequenceIndicator) if(complexTypeChild == null) QName allIndicator = new QName(httpwwww3org2001XMLSchema

all) complexTypeChild = complexTypegetFirstChildWithName(allIndicator) OMFactory factory = OMAbstractFactorygetOMFactory() OMNamespace

xmlSchemaNamespace = factorycreateOMNamespace(httpwwww3org2001XMLSchemaxs)OMNamespace group1Namespace =

factorycreateOMNamespace(httpwwwg1comOCMSchema g1)

OMElement comment = factorycreateOMElement(elementxmlSchemaNamespace complexTypeChild) commentaddAttribute(visibletrue group1Namespace)commentaddAttribute(minOccurs 0 null)

commentaddAttribute(name Comment null)OMElement simpleType = factorycreateOMElement(simpleType

xmlSchemaNamespace comment) OMElement restriction = factorycreateOMElement(restriction xmlSchemaNamespace simpleType)restrictionaddAttribute(base xsstring null)

ByteArrayOutputStream bos = new ByteArrayOutputStream()schemaserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)

Document newSchema = docBuilderfactorynewDocumentBuilder()parse(new ByteArrayInputStream(bostoByteArray()))

contextsetSchemaAsDocument(newSchema)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 78

System Data Integration

loadToView function

private void loadToView(XFormsContext context) throws XMLStreamExceptionFactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException

XMLStreamReader parser1 = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))StAXOMBuilder builder1 = new StAXOMBuilder(parser1) OMElement

instanceData = builder1getDocumentElement() String firstNodeName = instanceDatagetLocalName()

XMLStreamReader parser = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetXFormsViewAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement xhtml = buildergetDocumentElement()

OMFactory factory = OMAbstractFactorygetOMFactory()OMNamespace xformsNamespace =

factorycreateOMNamespace(httpwwww3org2002xforms xforms)

AXIOMXPath modelExpr = new AXIOMXPath(xformsmodel)modelExpraddNamespace(xforms httpwwww3org2002xforms)OMElement model = (OMElement) modelExprselectSingleNode(xhtml)

OMElement bind = factorycreateOMElement(bind xformsNamespacemodel) bindaddAttribute(nodeset+firstNodeName+PublicationComment null)bindaddAttribute(readonly false() null)bindaddAttribute(required false() null)

bindaddAttribute(type xsstring null)

AXIOMXPath bodyExpr = new AXIOMXPath(xhtmlbody)bodyExpraddNamespace(xhtml httpwwww3org1999xhtml) OMElementbody = (OMElement) bodyExprselectSingleNode(xhtml)

OMElement input = factorycreateOMElement(input xformsNamespacebody) inputaddAttribute(ref+firstNodeName+PublicationComment null) OMElement label = factorycreateOMElement(label xformsNamespace input)factorycreateOMText(label Comment)OMElement help = factorycreateOMElement(help xformsNamespace

input) factorycreateOMText(help Observations)

ByteArrayOutputStream bos = new ByteArrayOutputStream()xhtmlserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 79

System Data Integration

docBuilderfactorysetNamespaceAware(true)Document newView = docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))contextsetXFormsViewAsDocument(newView)

loadToInstance function

private void loadToInstance(XFormsContext context)throws XMLStreamException FactoryConfigurationError

XFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))tAXOMBuilder builder = new StAXOMBuilder(parser) OMElement

instanceData = buildergetDocumentElement() AXIOMXPath bodyExpr = new AXIOMXPath(Publication)OMElement publication = (OMElement)

bodyExprselectSingleNode(instanceData) OMFactory factory = OMAbstractFactorygetOMFactory()OMElement e = factorycreateOMElement(Comment null publication)factorycreateOMText(e contextgetTemplateName())

ByteArrayOutputStream bos = new ByteArrayOutputStream()instanceDataserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)Document newInstanceData =

docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))

contextsetInstanceAsDocument(newInstanceData)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 80

System Data Integration

Error handling

You can configure the custom system data loader to determine the required error handling scheme during system data retrieval in EngageOne Interactive

To enable this feature you must throw a SystemDataLoaderException object from the loadSystemData (XFormsContext context) implementation of the custom system data loader class

SystemDataLoaderException class ndash custom fields

The SystemDataLoaderException class has custom fields that can be set by either passing required values to the SystemDataLoaderException objects constructor or by the individual setter methods

errorcode

A string field that maps the SystemDataLoaderException object to a localized error message which will display on the XForms page

All error codes that EngageOne Interactive to use should be enumerated in the systemDataLoaderErrorCodesproperties file located in the Engage One install directory in the Interactive folder The properties file should contain the complete mapping of error codes to their corresponding message keys

A sample systemDataLoaderErrorCodesproperties file follows

local error code for system data loader exceptions

001=systemdataloaderdataNotFound 001 and 002 are 002=systemdataloaderunknown default entries 003=systemdataloaderincorrectKey004=systemdataloaderinternalError005=systemdataloaderhostUnreachable

Note any number of error codes may be mapped to the same message key Error codes must be unique

These keys are mapped to error messages that EngageOne Interactive can display on the XForms page The mapping of keys to their respective messages must be specified in the systemDataLoaderMessagesproperties file located in the Engage One install directory in the Interactive folder

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 81

System Data Integration

systemDataLoaderMessagesproperties sample

Following is a systemDataLoaderMessagesproperties resource bundle sample

-- System Data Loader custom messagessystemdataloaderdataNotFound=Data not found for the entered key Please try again

systemdataloaderunknown=Unknown error encountered during system dataretrieval Please try again

systemdataloaderincorrectKey=The entered key 0 is incorrect or missing Please try again

systemdataloaderinternalError=Error encountered during system dataretrieval Please cancel the creation of this document and contact yoursystem administrator

systemdataloaderhostUnreachable=The host of the system data isunreachable Please try again later If the problem persists pleasecontact your system administrator

Error messages can be localized and are dependent on the language settings of the Internet browser

To enable localization for the custom system data loader error messages follow the localization (L10N) standards and append the correct suffix to the resource base name (systemDataLoaderMessages)

For example

systemDataLoaderMessages_en for English

systemDataLoaderMessages_de for German

systemDataLoaderMessages_zh for Chinese etc

All resource bundles must be placed in the same directory with the base resource bundle (systemDataLoaderMessagesproperties) The default value of this field is 001 (ldquoData not found for the entered key Please try againrdquo)

params

An optional field that accepts an array of strings (casted to Object[])

The value of this field will be passed to the resource bundle handler of EngageOne Interactive to replace placeholders (0 1 etc) in error messages in the systemDataLoaderMessagesproperties file This field will be ignored if the errorCode field of the SystemDataLoaderException object points to an error message that does not contain placeholders The default value of this field is null

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 82

System Data Integration

result

An enum field that determines the page EngageOne Interactive will load if a SystemDataLoaderException is thrown during system data retrieval

It has two values

bull SystemDataLoaderResultDEFAULT ndash forces EngageOne Interactive to ignore the caught error and allow the user to manually input data to the user prompt fields The error message (specified by the errorCode field) will not be visible on the XForms page

bull SystemDataLoaderResultREPROMPT ndash forces EngageOne Interactive to allow the user to re-enter key field data and retrieve system data The error message (specified by the errorCode field) will display on top of the XForms page

The default value of this field is SystemDataLoaderResultDEFAULT

message and cause

message (String) and cause (Throwable)

Implicit fields that can be set by including any or both constructor arguments of the SystemDataLoaderException object These fields are inherited from the of SystemDataLoaderException parent class If these are set the stack trace of the wrapped Throwable or the value of the given message will be logged on the application server logs

SystemDataLoaderException constructor signature

The following is a complete list of constructor signatures of the SystemDataLoaderException

Note the errorCode params and result fields can be set via their setter methods

SystemDataLoaderException constructor signatures

public SystemDataLoaderException()public SystemDataLoaderException(Throwable cause) publicSystemDataLoaderException(String errorCode)public SystemDataLoaderException(String errorCode Object[] params)public SystemDataLoaderException(SystemDataLoaderResult result)public SystemDataLoaderException(String errorCodeSystemDataLoaderResultsystemDataLoaderResultresult)public SystemDataLoaderException(String errorCode Object[] paramsSystemDataLoaderResult result) public SystemDataLoaderException(Stringmessage String errorCode SystemDataLoaderResult result) publicSystemDataLoaderException(String message String errorCode Object[]params SystemDataLoaderResult result)public SystemDataLoaderException(String message String errorCode)public SystemDataLoaderException(String message String errorCodeObject[] params) public SystemDataLoaderException(Throwable cause StringerrorCode)public SystemDataLoaderException(Throwable cause String errorCode

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 83

System Data Integration

Object[] params)public SystemDataLoaderException(Throwable cause String errorCodeSystemDataLoaderResult result) public SystemDataLoaderException(Throwablecause String errorCode Object[] params SystemDataLoaderResult result)public SystemDataLoaderException(String message Throwable cause StringerrorCode)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params) public SystemDataLoaderException(Stringmessage Throwable cause String errorCode SystemDataLoaderResultresult)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params SystemDataLoaderResult result)

Sample implementation

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception try

your custom code which loads the system data to the XForm files goes here You will need to use XFormsContext object to retrieve the XForm files rendered in the EngageOne Interactive application Depending on your implementation you may need to modify the XForm schema instance XML file as necessary

catch (Exception e) wrap all Exceptions encountered to a SystemDataLoaderException

SystemDataLoaderException exception = new SystemDataLoaderException(e)

if (e instanceof RemoteException) set the error code exceptionsetErrorCode(110)

set the error message parameters if applicable exceptionsetParams(new String[]contextgetTemplateName())

set the result action exceptionsetResult(SystemDataLoaderResultREPROMPT)

else simply set the result action since the error messages wont be

displayed exceptionsetResult(SystemDataLoaderResultDEFAULT)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 84

System Data Integration

finally throw the exception throw exception

Compiling and packaging custom system data loader

Prepare the custom system data loader class to be plugged into EngageOne Interactive

1 Compile the custom system data loader implementation by including the sdi-client-apijarfile on the project classpath This file is located in the EngageOne install directory under the active-drive (content repository) config folder

2 Package the custom system data loader on the same JAR file System Data Integration API classes are included in the EngageOne Interactive Web application archive You can assemble the custom system data loader class without the sdi-client-apijar on the project classpath

Configuring EngageOne Interactive system data settings

Plug the custom system data loader into EngageOne Interactive

1 Modify the system data configuration settings deploylocalproperties located in the EngageOne install directory under the active-drive (content repository) config folder

2 Modify the sdicallbackclassname property and set it to the fully-qualified name (FQN) of the custom system data loader class For example commycompanyengageonesdiApplicationSystemDataLoader

3 Modify the sdicallbackjarpath property and set the path to the JAR file containing the custom system data loader class For example EngageOnesdicustom-sdi-10jar

This configuration setting can accept a valid Java classpath allowing multiple JAR files to be specified

Note The following rule applies when defining the value for this property

If a relative path is used the system assumes the location of the custom system data loader class is relative to the value path set in the customSdidefaultclasspath property in config-settingsxml By default this path is set to the EngageOne install directory

For example sdi-testCustomLoaderjar where sdi-test is a directory under the path specified in the property

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 85

5 - Additional features in SOAP

In this section

Trusted Connection 87 Template search 87 Write delivery information 96 Managing the work queue 99 Updating work items 102 Reassigning a work item 106 Deleting a work item 108

Additional features in SOAP

Trusted Connection

Where there is a higher level of trust between EngageOne and a custom application you can use the

trusted connection feature This method establishes an authorized session token based on the valid

userID trusted connection apli key(defined in deployproperties under key securitytrustedconnectionapikey) and domainID only meaning regular userpassword authentication is not required (as with the connect

service)

The related configuration setting is checked to determine whether this service should be made available to the system or not This is done by examine securitytrustedconnectionpassword property defined in deployproperties

Trusted connection is defaulted to off during EngageOne installation

To activate the feature securitytrustedconnectionpassword should be set

To perform trustedConnection use the SecurityService trustedConnectionLoginmethods

Template search

As the document repository increases in size retrieving all templates can consume a large amount of memory EngageOne Server provides an optimized service for searching templates based on a given criteria This service can sort and provide a subset of the search result set also known as pagination

To perform a template search against the document repository use the TemplateService searchTemplates method

Searching templates by template property

This service enables searching templates by template property (for example template name and ID) It also enables searching by template metadata attributes as well as a wildcard search

Note a wild card search can be performed only for certain search criteria fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 87

Additional features in SOAP

Create an instance of the client stub for the TemplateService then invoke the searchForTemplates service where you pass in the search criteria

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService) SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate() IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter) templatesetIdent(id)requestgetTemplates()setTemplate(template)

SearchTemplatesResponse response = templateServicesearchTemplates(request) ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 88

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Note

bull The searchTemplates service makes use of other classes

Use these classes to compose the template search criteria and pass it to the service invocation

This service returns a list of templates that match the search criteria

For example if the template search key is set to Insurance Policy Letter the result set will contain all template names containing Insurance Policy Letter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 89

Additional features in SOAP

Searching templates with sorting and pagination

Perform a template search with a sorted and paginated result set and add additional search criteria values to pass to the searchTemplates service

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate()IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter)templatesetIdent(id) requestgetTemplates()setTemplate(template)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(1)paginationsetPageSize(10)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields())SortField field = new SortField()fieldsetType(SortFieldTypeNAME)fieldsetOrder(SortOrderASCENDING)

requestsetPagination(pagination) requestsetSorting(sorting)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

The SortingControls class accepts sort fields and sort ordering values

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 90

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

reqpagination = new TemplateServicePaginationControls()reqpaginationpageNumber = 1reqpaginationpageSize = 10

reqsorting = new TemplateServiceSortingControls()reqsortingfields = new TemplateServiceSortField[1]reqsortingfields[0] = new WebServiceTest1TemplateServiceSortField()

reqsortingfields[0]type = TemplateServiceSortFieldTypeNAMEreqsortingfields[0]order = TemplateServiceSortOrderASCENDING

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Use the PaginationControls and SortingControls classes to compose a sorted and paginated template search The PaginationControls class accepts pageNumber and pageSize values which control the page size and the result retrieved by the set page snapshot

In the example above the result set is sorted by template name and displays the first ten template matches

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 91

Additional features in SOAP

Searching templates by template metadata

You can perform a metadata search to retrieve a list of metadata or document classes available in EngageOne Server This information can be presented to an end-user who can choose which metadata they want to use to perform a more detailed search

To retrieve all metadata from the server

1 Use the MetadataService searchMetadata service 2 Create an instance of the client stub for MetadataService 3 Invoke the searchMetadata method

Java sample

MetadataServiceStub metadataService = new MetadataServiceStub(URL_BASE+ MetadataService)SearchMetadata request = new SearchMetadata()requestsetFilter(SearchFilterDETAIL)

SearchMetadataResponse response = metadataServicesearchMetadata(request)ListltDocumentClassgt docClasses = responsegetDocClasses()getDocClass()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 92

Additional features in SOAP

C NET sample

MetadataServiceMetadataServiceClient metadataSvc = new MetadataServiceMetadataServiceClient(MetadataServiceSOAP)

MetadataServiceSearchMetadata req = new WebServiceTest1MetadataServiceSearchMetadata()reqfilter = CommonServicesSearchFilterDETAIL

MetadataServiceSearchMetadataResponse resp = metadataSvcsearchMetadata(req)MetadataServiceDocumentClass[] classes = respdocClasses

This service returns a list of document class objects

This service introduces some new classes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 93

Additional features in SOAP

Supported metadata field types

Currently EngageOne supports only the following metadata field data types

Data type Description

Text Alphanumeric string

Date Date

Number Numeric integral and floating

You can perform template searches using metadata

The following example illustrates how to search for all templates that belong to a particular document class with the insurance category

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetDocClasses(new SearchTemplatesDocClasses())

SearchTemplatesDocClassesDocClass docClass = new SearchTemplatesDocClassesDocClass()IntegerIdOrName id = new IntegerIdOrName()idsetName(SimpleClass) docClasssetIdent(id)

docClasssetFields(new SearchTemplatesDocClassesDocClassFields())

SearchTemplatesDocClassesDocClassFieldsField field = new SearchTemplatesDocClassesDocClassFieldsField()id = new IntegerIdOrName()idsetName(category)fieldsetIdent(id)

MetadataFieldValue value = new MetadataFieldValue()valuesetMetadataString(Insurance)fieldsetValue(value)

docClassgetFields()getField()add(field)requestgetDocClasses()setDocClass(docClass)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 94

Additional features in SOAP

C NET sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqdocClasses = new TemplateServiceSearchTemplatesDocClasses()reqdocClassesdocClass = new TemplateServiceSearchTemplatesDocClassesDocClass()reqdocClassesdocClassident = new TemplateServiceIntegerIdOrName()

reqdocClassesdocClassidentItem = Simple Class

reqdocClassesdocClassfields = new TemplateServiceSearchTemplatesDocClassesDocClassField[1]TemplateServiceSearchTemplatesDocClassesDocClassField field = new TemplateServiceSearchTemplatesDocClassesDocClassField()fieldident = new TemplateServiceIntegerIdOrName()fieldidentItem = category

fieldvalue = new WebServiceTest1TemplateServiceMetadataFieldValue()

fieldvalueItem = InsurancereqdocClassesdocClassfields[0] = fieldreqfilter = CommonServicesSearchFilterDETAILTemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 95

Additional features in SOAP

Write delivery information

Depending on the document delivery channels set up in EngageOne Administration you can configure a channel to accept data input via the document instance file

For example configure Email and Fax delivery channels to accept data input

Write delivery information process

Data inputs are written in the instance file and are identified by a set of valid XPath expressions By default EngageOne provides predefined places in the instance file where this data input or delivery information can be written

The following steps illustrate this process

Steps

1 In the example below a template instance file is defined where the XML nodes relating to the delivery information are highlighted Each node corresponds to configurable data inputs for Email and Fax delivery channels

ltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=80dacb9192c44a81937175f8ac7e0ee7xsdgtz

ltPublicationgt ltString1gtEngageOne System Test String 1ltString1gtltString2gtEngageOne System Test String 2ltString2gtltInteger1gt1ltInteger1gtltInteger2gt2ltInteger2gtltNumber1gt1ltNumber1gtltNumber2gt2ltNumber2gtltDate1gt2008-08-29ltDate1gtltDate2gt2008-08-29ltDate2gtltDeliveryInformationgt

ltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegt

ltDeliveryInformationgtltg1privategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 96

Additional features in SOAP

ltPublicationgtltInteractiveDataModelgt

The application code must parse the instance file and perform reading and writing delivery information using the XPath expression set in EngageOne Administration Delivery details (including XPath expressions) can be retrieved using the DeliveryManagementService searchDeliveryOptions method

2 Create an instance of the DeliveryManagementService client stub Then invoke searchDeliveryOptions

Java sample

DeliveryManagementServiceStub deliveryMgmtService = new DeliveryManagementServiceStub(URL_BASE + DeliveryManagementService)SearchDeliveryOptions request = new SearchDeliveryOptions()requestsetDeliveryOptions(newSearchDeliveryOptionsDeliveryOptions())requestgetDeliveryOptions()setDeliveryOption(newSearchDeliveryOptionsDeliveryOptionsDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(deliveryOptionId)requestgetDeliveryOptions()getDeliveryOption()setIdent(id)SearchDeliveryOptionsResponse response = deliveryMgmtServicesearchDeliveryOptions(request)DeliveryOption option = responsegetDeliveryOptions()getDeliveryOption()get(0)

C NET

DeliveryManagementServiceDeliveryManagementServiceClientdeliveryManagementSvc = new DeliveryManagementServiceDeliveryManagementServiceClient(DeliveryManagementServiceSOAP)

DeliveryManagementServiceSearchDeliveryOptions req = new DeliveryManagementServiceSearchDeliveryOptions()reqdeliveryOptions = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptions()reqdeliveryOptionsdeliveryOption = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptionsDeliveryOption()

reqdeliveryOptionsdeliveryOptionident = new DeliveryManagementServiceIntegerIdOrName()reqdeliveryOptionsdeliveryOptionidentItem = deliveryOptionIdDeliveryManagementServiceSearchDeliveryOptionsResponse resp = deliveryManagementSvcsearchDeliveryOptions(req)DeliveryManagementServiceDeliveryOption option = respdeliveryOptions[0]

In the sample code above the Service accepts a delivery option ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 97

Additional features in SOAP

It returns a DeliveryOption object which holds a list of DeliveryChannels that contain XPath expressions The XPath expressions parse the instance file to retrieve delivery information

3 The Document Server reads delivery information as parameters in the instance file It is important to set the delivery option as well as the delivery information appropriately as this information will be used later in the delivery process

Java sample

for (DeliveryChannel channel optiongetChannels()getChannel())

if (channelgetType()equals(DeliveryChannelTypeEMAIL)) EmailChannelDetail email =

channelgetDetail()getEmailDetail() else if (channelgetType()equals(DeliveryChannelTypeFAX))

FaxChannelDetail fax = channelgetDetail()getFaxDetail()

C NET sample

foreach (DeliveryManagementServiceDeliveryChannel channel inoptionchannels)

switch (channeltype)

case DeliveryManagementServiceDeliveryChannelTypeEMAIL

DeliveryManagementServiceEmailChannelDetail email =

(DeliveryManagementServiceEmailChannelDetail)channeldetailItembreak

case DeliveryManagementServiceDeliveryChannelTypeFAXDeliveryManagementServiceFaxChannelDetail fax =

(DeliveryManagementServiceFaxChannelDetail)channeldetailItembreak

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 98

Additional features in SOAP

Managing the work queue

Managing user work queues is part of EngageOne workflow EngageOne workflow handles assigning a work item or document ownership to a user

Retrieving work items

The WorkItemService searchWorkItems method retrieves a users work queue

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req) WorkItemServiceWorkItem[] workItems= respworkItems

In these examples the service returns a list of active work items associated with the authenticated user

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 99

Additional features in SOAP

Retrieving work items with pagination

The searchWorkItems service of WorkItemService can set the pagination of a work item list result set

To enable this feature create a PaginationControls object and set the required page number and page size

For example the following illustrates how to display the second page of a work item list that contains ten work items per page

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(2)paginationsetPageSize(10)requestsetPagination(pagination)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqpagination = new WorkItemServicePaginationControls()reqpaginationpageNumber = 2reqpaginationpageSize = 10

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 100

Additional features in SOAP

Retrieving work items with sorting

The searchWorkItems service of WorkItemService can set the sort of a work item list result set

To enable this feature create a SortControls object and set the reference column and sorting order in the objects field and order fields

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields()) SortField field = new SortField()fieldsetType(SortFieldTypeSTATUS)fieldsetOrder(SortOrderASCENDING)sortinggetFields()getField()add(field)requestsetSorting(sorting)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqsorting = new WorkItemServiceSortingControls()reqsortingfields = new WorkItemServiceSortField[1]reqsortingfields[0]type = WorkItemServiceSortFieldTypeSTATUSreqsortingfields[0]order = WorkItemServiceSortOrderASCENDING

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 101

Additional features in SOAP

Updating work items

This section covers updating work item properties

Updating the document delivery option

Set the request object with the correct token workItem ID and new deliveryOption ID

Then invoke the setDeliveryOption service of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItem request = new UpdateWorkItem()requestsetWorkItem(new UpdateWorkItemWorkItem())requestgetWorkItem()setId(workItemId)requestsetDeliveryOption(new UpdateWorkItemDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(optionId)requestgetDeliveryOption()setIdent(id)

UpdateWorkItemResponse response = workItemServiceupdateWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqdeliveryOption = new WorkItemServiceUpdateWorkItemDeliveryOption()

reqdeliveryOptionident = new WorkItemServiceIntegerIdOrName()reqdeliveryOptionidentItem = optionId

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 102

Additional features in SOAP

Updating work item status

Update work item status while a document has not completed the workflow process

This applies to the duration of the document life cycle

For example a document can be created and saved even if required fields have not been filled in In this case the work item status would be set to ACTIVE_INCOMPLETE

For example when a user attempts to update a document and has entered all required fields the work item status would be set to ACTIVE_COMPLETE

To perform work item status updates invoke updateWorkItemStatus of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItemStatus request = new UpdateWorkItemStatus()requestsetWorkItem(new UpdateWorkItemStatusWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setStatus(WorkItemStatusACTIVE_COMPLETE)

UpdateWorkItemStatusResponse response = workItemServiceupdateWorkItemStatus(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqworkItemstatus = status

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

Work item status can be set to any of the following

ACTIVE_COMPLETE

ACTIVE_INCOMPLETE

ASSIGNED

FAILED_DELIVERY

FINISHED

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 103

Additional features in SOAP

OPEN

PENDING_APPROVAL

PENDING_DELIVERY

SUBMITTED_APPROVED

SUBMITTED_REJECTED

SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 104

Additional features in SOAP

Updating work item comments

Work items have an comments field that can be updated every time you invoke a transaction that involves the work item

New comments will be added to the previous list of comments and will not overwrite the previous set Work item comments are stored from the work items creation

Invoke the addWorkItemComment service of WorkItemService to add a comment to a work item

Java sample

String comment = Updated document for additional customer information sample user comment WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)AddWorkItemComment request = new AddWorkItemComment()requestsetWorkItem(new AddWorkItemCommentWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setComment(comment)

AddWorkItemCommentResponse response = workItemServiceaddWorkItemComment(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceAddWorkItemComment req = new WorkItemServiceAddWorkItemComment()reqworkItem = new WorkItemServiceAddWorkItemCommentWorkItem()reqworkItemid = workItemIdreqworkItemcomment = comment

WorkItemServiceAddWorkItemCommentResponse resp = workItemSvcaddWorkItemComment(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 105

Additional features in SOAP

Reassigning a work item

Reassigning a document allows the current document owner to assign a document to another userrsquos work queue

bull In order for a document to be reassigned the receiving user must have access to the document template and its storage location

bull Reassigning a document removes it from the current owners work queue bull Reassigning a document ensures that the document is being worked on by one user at a time

For more information see the EngageOne Administration Guide

Retrieving document assignees

Use the WorkItemService getWorkItemAssignees method to retrieve a list of assignees for a document

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)GetWorkItemAssignees request = new GetWorkItemAssignees()requestsetWorkItem(new GetWorkItemAssigneesWorkItem())IntegerIdOrName id = new IntegerIdOrName()idsetId(workItemId)requestgetWorkItem()setIdent(id)

GetWorkItemAssigneesResponse response = workItemServicegetWorkItemAssignees(request)ListltUsergt users = responsegetAssignees()getAssignee()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceGetWorkItemAssignees req = new WorkItemServiceGetWorkItemAssignees()reqworkItem = new WorkItemServiceGetWorkItemAssigneesWorkItem()reqworkItemident = new WorkItemServiceIntegerIdOrName()reqworkItemidentItem = workItemId

WorkItemServiceGetWorkItemAssigneesResponse resp = workItemSvcgetWorkItemAssignees(req)WorkItemServiceUser[] users = respassignees

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 106

Additional features in SOAP

Note Currently the service cannot perform a document access control check for the values it returns You can expect a response exception if the user does not have access to the document template

The service returns a list of User objects which hold the user IDs of document assignees using the user IDs to perform document reassignment The list can be null and the application code needs to handle this condition check

Reassigning a document

Use the WorkItemService reassignWorkItem method to perform document reassignment

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)ReassignWorkItem request = new ReassignWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

requestsetAssignee(new ReassignWorkItemAssignee())requestgetAssignee()setId(csrl)

ReassignWorkItemResponse response = workItemServicereassignWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceReassignWorkItem req = new WorkItemServiceReassignWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

reqassignee = new WorkItemServiceReassignWorkItemAssignee()reqassigneeid = csrl

WorkItemServiceReassignWorkItemResponse resp = workItemSvcreassignWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 107

Additional features in SOAP

Deleting a work item

EngageOne allows a document to be deleted in the repository

When a document is deleted EngageOne Server removes the document files from the repository and terminates the document processing This enables deleting the document at any point during the document life cycle

Perform a document delete

Use the WorkItemService deleteWorkItem method

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)

DeleteWorkItem request = new DeleteWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

DeleteWorkItemResponse response = workItemServicedeleteWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceDeleteWorkItem req = new WorkItemServiceDeleteWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

WorkItemServiceDeleteWorkItemResponse resp = workItemSvcdeleteWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 108

6 - EngageOne notifications EngageOne Notifications is a new capability that enables external systems to be notified of certain events that happen within the EngageOne server Examples of events include Communications being created being sent for review and being completed

In this section

Overview 110 Notification components diagram 111 Topics and queues 113 Configuration settings 114 Messages 118 Communication messages 119 Batch messages 121 Workflow messages 122 Consuming notification messages 123 Using other JMS implementations 126 Sample message consumers 128

EngageOne notifications

Overview

A full list of notification types is provided below

The Notifications mechanism is based on an implementation of the Java Message Service (JMS) standard The chosen JMS implementation is Apache ActiveMQ Detailed information about ActiveMQ can be found at httpactivemqapacheorg

Various components within EngageOne write messages to ActiveMQ so that external applications can consume the messages and process them in whatever way they choose

Note it is possible to use an external JMS-compliant message queue instead of ActviveMQ

A common use case for Notifications is as follows

bull An external system (for example a CRM application) triggers the creation of a communication in EngageOne via the EngageOne web service A unique identifier for the communication is returned to the calling system A communication pending note is added to the customers record so that users of the CRM application can see that the communication is in progress

bull A number of notifications are generated as the communication progresses through its life cycle The CRM system receives these notifications and discards any that are not relevant

bull The CRM system receives a notification that the communication has been completed (delivered) and updates the note on the customer record to indicate that the communication has been sent

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 110

EngageOne notifications

Notification components diagram

The following diagram provides an overview of the components involved in notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 111

EngageOne notifications

Diagram details

The Message Consumer is a custom component that suits the requirements of a particular implementation This Programmers Reference Guide provides information about how to write a message consumer

The JMS Client Library provides a plug-in mechanism to bypass the built-in ActiveMQ implementation to use an external message broker instead

1 A notification message is generated by a component in one of the EngageOne bundles (Core or Batch bundle)

2 The bundle configuration properties (defined in deployproperties at installation or re-configuration time) specify how the message is processed

a The notificationconnectionFactoryclass property specifies which JMS connection factory class to use The default connection factory establishes connections to an ActiveMQ queue or topic Other JMS libraries can be used to send messages to other JMS-compliant queue implementations

For more information see Using other JMS Implementations

b The notificationjmsbrokerurl property specifies the location of the message broker By default this is the ActiveMQ broker embedded in the Notification Bundle

An external ActiveMQ broker can be specified instead or a different JMS providers broker can be specified if a custom JMS connection factory is provided

c The user ID and encrypted password for accessing the queue are also specified in the bundle configuration

d Additional properties enable the notification mechanism to be tuned by disabling specific notification types and by specifying whether messages should be sent to a queue or a topic

3 The JMS Client Library is responsible for sending a JMS-compliant message to the appropriate queue or topic on the specified broker

4 The message broker receives the message on one of its queues or topics Depending on the brokers settings the message might be persisted to a configured persistence provider By default KahaDB is used by the built-in ActiveMQ broker

5 A custom message consumer reads the message from the queue or topic The consumer examines the message and determines whether to process it or discard it

Processing the message might involve sending it to a line of business system (for example a CRM system) or an Enterprise Service Bus (ESB) or Message Queue from where it will be processed by another system

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 112

EngageOne notifications

Topics and queues

JMS has two similar but different mechanisms for delivering messages

bull Topic - implements a publisher-subscriber protocol Each message will be sent to all consumers that are subscribed to that topic at the time that the message is produced

By default topics are not durable so if a consumer is not active at the time that the message is produced it will not receive the message

bull Queue - implements a point to point protocol Each message will be consumed by a maximum of one consumer

By default queues are durable meaning that a message will be held for a consumer if the consumer is not active at the time that the message is produced

ActiveMQ supports a feature called virtual topics Virtual Topics combine the flexibility of topics (multiple consumers) with the durability of a queue When a publisher writes a message to a virtual topic the consumers can choose to read it from a topic or a queue

Virtual topics are described in the ActiveMQ documentation here httpactivemqapacheorgvirtual-destinationshtml

By default EngageOne Notifications uses virtual topics but it is possible to configure it to use standard queues or topics instead This can be controlled through settings in deployproperties as described in Configuration Settings

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 113

EngageOne notifications

Configuration settings

The following settings in deployproperties can be used to configure the notifications feature at installation time or re-configuration time

Property name Default value Purpose

Properties common to all bundles

Location of the installed notification bundle CProgram FilesPitneyBowesEngageOneServernotification

notificationinstalldir

JVM settings for the notification bundle - these should not normally be changed

-Xms1g -Xmx2g-XXMaxPermSize=512m

notificationjvmsettings

The port on which the ActiveMQ web console and EngageOne health monitor can be accessed

8084notificationport

URL where the ActiveMQ web console is deployed

httpsnotification-nodepbeonet8084notificationservicesurl

Set this to true to enable https for the Notification bundle

falsenotificationhttpsenabled

(Empty)notificationtlskeyalias Specifies the name of the key if multiple certificates exist in the key store

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 114

EngageOne notifications

Configuration settings (cont)

Property name Default Purpose value

Global setting to enabledisable the Notifications feature Note that Notifications are disabled by default and must be enabled by settings this property to true

falsenotificationpublisherenabled

Name of the account used to publish messages to ActiveMQ queues and topics

eoPublishernotificationpublisherusername

Password for the publisher account It is encrypted in the deployproperties file

(Encrypted password)

notificationpublisherpassword

Name of the account used to consume messages from ActiveMQ queues and topics

eoSubscribernotificationsubscriberusername

Password for the consumer account It is encrypted in the deployproperties file

(Encrypted password)

notificationsubscriberpassword

(Empty)

This value must only be specified if the system is using an external message broker instead of the ActiveMQ instance in the Notification bundle

An example broker URL is tcpmy-jms-broker61617jmsuseAsyncSend=true

Note that jmsuseAsyncSend=true is recommended for best performance of the publishing mechanism

Time in milliseconds for which messages will be persisted in a queue Default value of zero means that messages do not expire and will be kept in the queue indefinitely

0notificationmessagetimeToLive

Properties specific to the notification bundle

notificationjmsbrokerurl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 115

EngageOne notifications

Property name Default Purpose value

Comma separated list of Communication actions that will be suppressed The available action types are Created StatusChanged DeliveryChanged CommentAdded Deleted Completed

(Empty)notificationtypecommunicationomittedactions

Comma separated list of Accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypeabatchomittedactions

Comma separated list of Non-accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypenabatchomittedactions

Comma separated list of Workflow Task actions that will be suppressed The available action types are Created Assigned Completed

(Empty)notificationtypeworkflowtaskomittedactions

By default EngageOne publishes its notifications to a topic If this property is changed to queue EngageOne create and write to queues instead

topicnotificationmessagedestinationtype

VirtualTopic notificationmessagedestinationbaseName

Each type of Notification message (Communication Batch Workflow) is written to its own topic or queue The topic or queue name is a combination of this base name plus the notification type for example VirtualTopicCommunication The default VitualTopic prefix instructs ActiveMQ to use virtual topics VirtualTopics are not a standard JMS capability so this prefix should be removed when using a JMS implementation other than ActiveMQ

compbnotificationactivemqpoolPooledConnectionFactorynotificationconnectionFactoryclass

Name of the class that implements the JMS connection factory The default implementation uses a pooled connection factory for ActiveMQ

ActiveMQ has its own configuration settings file activemqxml See the ActiveMQ documentation for details

It is not normally necessary to change this file because all relevant properties can be configured via deployproperties

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 116

EngageOne notifications

Note that activemqxml will be overwritten if the Notification bundle is reinstalled or upgraded and any changes to that file will be lost It is therefore strongly recommended not to modify activemqxml

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 117

EngageOne notifications

Messages

Notification messages are available for the following types of entity in EngageOne

bull Communications - also known as Work Items bull Batch - both Accumulated and Non-accumulated batch bull Workflow - task actions

Messages consist of three types of data

bull Headers - created by the underlying JMS implementation The same set of headers exists for all messages

bull Properties - application-specific fields that can be used in selections to filter messages received by a consumer

bull Content - the message body The fields available in the body vary by message type

Notification message common properties

All EngageOne notification messages contain the following common properties

Name Type Description

Type of event (corresponding to an EngageOne action Varies by message type)

PropertyeventType

Community identifier PropertycommunityId

Name of the community PropertycommunityName

Type of entity that the message relates to (Communication Batch or Workflow)

PropertyentityType

entityId Property Identifier for the entity Unique within this type of entity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 118

EngageOne notifications

Communication messages

Communication messages have the following additional properties and content fields

Name

workItemIdentifier

status

statusDescription

templateId

Property

templateName

createdDate

creatorName

updatedDate

deliveryOptionId

ownerName

Content

batchId

Content

Content

Type

Property

Property

Property

Content

Content

Content

Content

Description

Also known as the External Identifier This field is the human-readable identifier for the communication

Status number of the Communication at the time the notification was published

Human-readable form of the status

Identifier of template the communication was based on

Name of template the communication was based on

Time stamp when the communication was created

ID of the user who created the communication

Time stamp when the communication was last updated

ID of delivery option associated with the communication

ID of user who currently owns the communication

This field is present for a communication that completes as part of a batch

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 119

EngageOne notifications

Name Type Description

Status of a delivery item that has changed

Associated with the DeliveryChanged action

ContentdeliveryStatus

ID of a delivery item whose status has changed

Associated with the DeliveryChanged action

ContentdeliveryItemId

Communication published actions

Communication messages are published for the following actions

Action Description

A new communication has been created Created

The status of a communication has changed StatusChanged

The status of a delivery item associated with the communication has changed

DeliveryChanged

A comment has been added to the communication CommentAdded

A communication has been deleted Deleted

A communication has been completed Completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 120

EngageOne notifications

Batch messages

Notification messages are available for both Accumulated and Non-accumulated batch

Accumulated batch messages

Accumulated batch messages have the following additional properties and content

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

Type of batch run (RUN RESTART RESUME) ContentrunType

Comma separated list of delivery channel names used by the batch

ContentchannelNames

Accumulated batch messages are published for the following actions

Action Description

The batch has started Started

The batch has completed The status property indicates whether the batch was successful

Completed

Non accumulated batch messages

Messages for non-accumulated batch notifications have the following additional properties and content fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 121

EngageOne notifications

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

ID of the template associated with this batch ContenttemplateId

Name of the template associated with the batch ContenttemplateName

ID of the delivery option associated with the batch ContentdeliveryOptionId

Name of the delivery option associated with the batch ContentdeliveryOptionName

Comma separated list of delivery channel names used by the batch

ContentchannelNames

ContentnaBatchXmlFilePathType Location of the batch XML file

Non-accumulated batch messages are published for the following actions

Action Description

Started

Completed

The batch has started

The batch has completed The status property indicates whether the batch was successful

Workflow messages

Workflow messages have the following additional properties and content

Name Type Description

Status of the workflow task (UNASSIGNED ASSIGNED APPROVED REJECTED UNKNOWN)

Propertystatus

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 122

EngageOne notifications

Name Type Description

PropertyexternalReferenceIdType

ID of the entity that is referenced by this task When the externalReferenceIdType is ENGAGEONE the externalReferenceId is a Communication ID When the externalReferenceIdType is PROJECT_ASSET the externalReferenceId is a Designer Template ID

PropertyexternalReferenceId

ID of the user to whom the task is assigned if any Contentassignee

Community identifier PropertycommunityId

Type of external reference (ENGAGEONE PROJECT_ASSET)

Workflow messages are published for the following actions

Action Description

The task has been created Created

The task has been assigned to a user or unassigned The assignee field gives the ID of the user

Assigned

The task has been completed The status property indicates whether the task was approved or rejected

Completed

Consuming notification messages

If the deployment environment contains systems that can directly consume messages from an ActiveMQ broker then no further development work is required Integration is simply a matter of configuring the external systems to read from the ActiveMQ queues or topics

Where existing software is not available it is necessary to create a new component to integrate with the queues or topics in ActiveMQ and to consume the Notification messages

This section provides an overview of how to write such a component The ActiveMQ website and community should be consulted for additional details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 123

EngageOne notifications

All JMS implementations have their own specific client libraries The libraries for one implementation (for example ActiveMQ) will not inter-operate with other implementations such as IBMs WebSpere MQ The first step to creating a message consumer is therefore to obtain the appropriate libraries for the JMS implementation and for the programming language of the client

This section assumes the default ActiveMQ implementation is used by the Notifications feature and that the message consumer will be written in Java If the system has been configured to use a different JMS implementation or the client will be written in another language the steps will be similar but different client libraries will be required

There are many client libraries available for ActiveMQ for different programming languages such as Java NET Nodejs and Python See httpactivemqapacheorgcross-language-clientshtml for more information about the available clients and for code samples

A Java client makes use of the following namespaces

bull orgapacheactivemqActiveMQConnectionFactory - ActiveMQ specific classes required for establishing a connection with a message queue or topic

bull javaxjms - JMS classes that can be used with any JMS provider

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 124

EngageOne notifications

Consume messages from an ActiveMQ queue or topic

The basic steps to consume messages from an ActiveMQ queue or topic are as follows

Create a connection factory - the factory is specific to a particular JMS implementation (ActiveMQ) The brokerUrl will be of the form tcpservernameportActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl) Create a connection and start it The userName and password are configured at install time See notificationsubscriberusername andnotificationsubscriberpassword in deployproperties but note that the unencrypted password must be passed into the createConnectioncall below connection = connectionFactorycreateConnection(userName password)connectionstart() Create a session session = connectioncreateSession(false SessionAUTO_ACKNOWLEDGE) Create a destination - either a topic or a queueDestination destination = sessioncreateQueue(ConsumerMyConsumerVirtualTopicCommunication) or Destination destination = sessioncreateTopic(VirtualTopicCommunication) Create a consumer and set its message listener The listener class needs to implement the MessageListener interface consumer = sessioncreateConsumer(destination)consumersetMessageListener(myListener)

To stop receiving messages and close the connection

Close everythingconsumerclose()sessionclose()connectionclose()

The MessageListener interface defines a single method onMessage(Message message) Within that method the consumer can take any appropriate action to deal with the message

The following example outputs some basic information about a Communication message

public void onMessage(Message msg)try

Systemoutprintln(Stringformat(s s s

msggetStringProperty(workItemIdentifier)

msggetStringProperty(EventType)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 125

EngageOne notifications

msggetStringProperty(statusDescription))) catch (Exception ex)

Systemoutprintln(exgetMessage())

In the code above examples are provided for creating a queue destination and a topic destination

The EngageOne Notifications mechanism writes messages to virtual topics Consumers can read these messages from a topic named VirtualTopicEntityType or a queue named ConsumerConsumerNameVirtualTopicEntityType where EntityType is a Communication Batch or Workflow (( to be confirmed )) and ConsumerName is a unique name for the consuming application

Using other JMS implementations

It is possible to integrate the Notifications mechanism with other message queues This might be necessary in situations where there is an existing message queue or Enterprise Service Bus in the target environment

Three different approaches can be considered

bull If the external message queue or ESB can read from ActiveMQ then the two systems can work together

Notification messages are written to the internal ActiveMQ They flow into the external queue from where they are delivered to their ultimate destination

bull Use a bridge to join the two queues

This can either be a third party component or custom code can be written using the techniques outlined in Consuming notification messages on page 123

EngageOne publishes messages to the internal ActiveMQ and it is the responsibility of the bridge to propagate them to the external queue

bull Plug in a different JMS provider to replace the internal ActiveMQ

See Using a custom JMS connection factory on page 126 for more information

Using a custom JMS connection factory

The notificationconnectionFactoryclass property in deployproperties specifies the name of the class that implements the JMS connection factory to be used by the Notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 126

EngageOne notifications

producer By default the ActiveMQ connection factory is used but this can be changed in order to use a different JMS provider such as IBM WebSphere MQ

The class specified by this property must be a custom class that implements the javajmxConnectionFactory interface and also implements an additional constructor that takes a string parameter The Notifications framework will pass a broker URL into this constructor The implementation can choose whether or not to make use of this URL

The following code shows an example of a connection factory that enables notifications to be sent to the Amazon Simple Queue Service (SQS) It wraps the SQSConnectionFactory class provided by AWS

package compbengageonesampleawsimport comamazonsqsjavamessagingSQSConnectionFactoryimport comamazonawsauthEnvironmentVariableCredentialsProviderimport comamazonawsregionsRegionimport comamazonawsregionsRegionsimport javaxjmsConnectionimport javaxjmsConnectionFactoryimport javaxjmsJMSException

public class MySqsConnectionFactory implements ConnectionFactory private SQSConnectionFactory sqsConnectionFactory

public MySqsConnectionFactory(String brokerURL) sqsConnectionFactory =

SQSConnectionFactorybuilder()withRegion(RegiongetRegion(RegionsUS_EAST_1))

withAWSCredentialsProvider(newEnvironmentVariableCredentialsProvider())

build()

public Connection createConnection() throws JMSException return sqsConnectionFactorycreateConnection()

public Connection createConnection(String userName String password)throws JMSException

return sqsConnectionFactorycreateConnection(userName password)

The custom connection factory must be packaged as a jar file and installed on all servers that will run the core or batch bundles To install the jar file at the same time as installing a bundle copy the jar to the pluginsnotification-connection-factory folder of the unzipped bundle distribution media (core or batch depending which one is being installed) then install the bundle as per the instructions in the Installation Guide

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 127

EngageOne notifications

To add or replace a connection factory after the bundle installation copy the jar file to the pluginsnotification-connection-factory folder of the installed bundle

When adding or replacing the connection factory in the core bundle a restart of the core bundle is required

The Notifications mechanism by default sends JMS messages of type ldquoMapMessagerdquo The body of these messages contains a map that allows individual values to be accessed by name MapMessage is part of the JMS standard but not all JMS implementations support it Amazonrsquos SQS is an example of a JMS implementation that does not support MapMessage When the Notifications mechanism detects that a JMS does not support MapMessages it creates TextMessages whose body consists of a set of namevalue pairs serialized into JSON Message consumers need to be certain which type of message is being received so that they can appropriately handle the content of the body Messages have a ldquotyperdquo header which can be used to distinguish them

Sample message consumers

Two sample message consumers are provided on the EngageOne installation media in the samplesnotifications folder These are not intended as production code but are intended to illustrate some techniques for consuming messages from ActiveMQ

Sample 1 is a simple Java client that listens for notification on a particular topic and outputs a summary to the console

Sample 2 is a more comprehensive application with a graphical user interface As well as providing a code sample this application can be used as a diagnostic tool for subscribing to topics and queues and for examining the details of received messages This sample is written in NET (C) and makes use of the NMS library for ActiveMQ (see httpsactivemqapacheorgnms) All the ActiveMQ code is contained in the ActiveMQClient class

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 128

7 - The comparison adapter plug-in The comparison adapter plug-in is the interface which allows for customizing the process of comparing preview PDF files generated by EngageOne Designer during the submission of templates and Active Content for review and approval In addition to the existing optional implementations provided in release distribution media it is also possible to install and configure a third-party comparison tool with custom plug-in implementation

In this section

The custom plug-in implementation 130 Example implementations 131 Plug-in Installation and configuration 135

The comparison adapter plug-in

The custom plug-in implementation

The following java interface is exposed in

ltrelease-distributiongtsamplescomparison-adapterscomparison-adapter-apijar

compbviewpointcomparisonadaptersComparisonEngineAdapter

package compbviewpointcomparisonadaptersimport compbviewpointcomparisonmodelComparisonProfileimport compbviewpointcomparisonmodelJobimport compbviewpointcomparisonmodelJobOutputimport javautilList

public interface ComparisonEngineAdapter boolean comparisonEngineEnabled()boolean comparisonEngineAvailable()ListltComparisonProfilegt getComparisonProfiles()Job startComparison(StartParameters startParameters)Job getJobStatus(Job job)JobOutput getJobOutput(Job job)void terminateJob(Job job)void purgeJob(Job job JobOutput jobOutput)

The custom plug-in implementation class must implement this interface and must have a constructor that takes no parameters A comparison-adapter-apijar file must be added as a dependency to project developing the custom class The implementation of the custom class must be written in non- blockingasynchronous manner to avoid blocking EngageOne Server

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 130

The comparison adapter plug-in

Example implementations

DocBridgereg Delta

An example DocBridge Delta implementation is provided in

ltrelease-distributiongtsamplescomparison-adaptersdocbridge-delta

This implementation uses DocBridgereg Delta server native REST API calls refer to the source code for details

It is important to note that the DocBridgereg Delta plug-in sample distributed with the release media simply provides a starting point from which you may need to make configuration changes to enable proper alignment with your operational requirements

Simple comparison plug-in

This implementation requires

1 get comparison profile names

2 invoke the comparison plug-in and get the PDF containing the results of the comparison

In order to simplify implementation a PdFComparator interface is provided

compbviewpointcomparisonadapterssimplePdFComparator

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonmodelJobOutputimport javaioInputStreamimport javautilList

public interface PdFComparator JobOutput compare(String configurationName InputStream

originalPdfInputStream InputStream changedPdfInputStream)ListltStringgt getConfigurationNames()

A SimplePdFComparator class example implementation of PdFComparator interface is provided in the distribution media at the following location

ltrelease-distributiongtsamplescomparison-adapterssimple-adapter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 131

The comparison adapter plug-in

The SimplePdFComparator implements a pixel-by-pixel page comparison approach refer to the source code in the release media for details

Comparison-adapter-apijar also contains implementations so that the BaseComparisonEngineAdapter base class can be extended The base class already implements non-blocking behavior and only requires the implementation to access the PdFComparator interface

A good example of this approach is presented below

compbviewpointcomparisonadapterssimpleSimpleComparisonEngineAdapter

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonadaptersPdFComparatorimportcompbviewpointcomparisonadaptersimplBaseComparisonEngineAdapter

public class SimpleComparisonEngineAdapter extendsBaseComparisonEngineAdapter

Overrideprotected PdFComparator createPdFComparator()

return new SimplePdFComparator()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 132

The comparison adapter plug-in

Command line adapter implementation

A similar approach is used for CommandLineComparisonEngineAdapter implementation

compbviewpointcomparisonadapterscommandlineCommandLineComparisonEngineAdapter

package compbviewpointcomparisonadapterscommandline

import compbviewpointcomparisonadaptersPdFComparatorimport orgslf4jLoggerimport orgslf4jLoggerFactoryimport javautilList

public class CommandLineComparisonEngineAdapter extendsBaseComparisonEngineAdapter

private static final Logger logger = LoggerFactorygetLogger(CommandLineComparisonEngineAdapterclass)

public static final StringCOMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX =

commandlinecomparisonadapterprofilesprivate static final String

COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED = Commands profiles for comparison plugin not configured

public CommandLineComparisonEngineAdapter() CommandLinePdfComparator commandLinePdfComparator =

(CommandLinePdfComparator) pdFComparator

getCommandsProfiles()forEach(commandLinePdfComparatoraddCommandProfile)

Overrideprotected PdFComparator createPdFComparator()

return new CommandLinePdfComparator()

private ListltCommandProfilegt getCommandsProfiles() try

CommandProfilesReader profilesReader = new CommandProfilesReader(SystemgetProperties()

COMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX)ListltCommandProfilegt commandProfiles =

profilesReadergetCommandProfiles()if (commandProfilessize() == 0)

throw new RuntimeException(COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED)

return commandProfiles

catch (Exception e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 133

The comparison adapter plug-in

loggererror(egetMessage())throw new RuntimeException(e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 134

The comparison adapter plug-in

Plug-in Installation and configuration

Once the custom plug-in implementation has been written you will need to install and configure as follows

Installation

The custom implementation must be packaged as a jar file and installed on all servers that will run the core bundles To install the jar files at the same time as installing a bundle copy

the jar file along with its transient jars to the

ltrelease-distributiongtbundlescorepluginscomparison-engine-adaptersltanyfoldergt

folder of the unzipped core bundle distribution media then install the bundle as per the instructions in the Comparison plug-in support section of the Installation Guide To add or replace a plug-in after the core bundle installation copy the jar files to

ltBundle installation root foldergtcorepluginscomparison-engine-adaptersltany foldergt

folder of the installed core bundle

When adding or replacing the plug-in in the core bundle a restart of the core bundle is required

Configuration

The final configuration requirement is to

1 set the comparisonadapterclass property in deployproperties which specifies the name of the class to be used by the comparison process

2 Run eos groovy script in order to configure core bundle as per the instructions in the Installation Guide

For example a stand alone server

eosgroovy -b core -p deployproperties -t single configure

Along with plug-in jars any java properties files can be copied to plugin folder Note that all properties files will be automatically loaded to system properties and can be retrieved calling SystemgetProperties()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 135

8 - Appendix A - Editor methods The following is a list of editor methods

In this section

LoadContents 137 SaveContents 137 SpellCheck 138 IsComplete 138 IsModified 139 GetVersion 139

Appendix A - Editor methods

LoadContents

LoadContents

Function

Syntax

SaveContents

SaveContents

Function

Syntax

Comments

Instructs the Interactive Editor to load the document files passed in

VOID LoadContents (PropertiesXmlPath PublicationPath HipPath InstanceXMLPath InstanceSchemaPath XFormPath ReviewModeFlag SpellCheckMode ServerUrl SpellerXmlPath)

Allows you to save the current state of a loaded document The collected data will be streamed from a field into the instance file at the location passed via InstanceXMLPath

The document content will be saved back to the publication file PublicationPath The updated Production HIP HipPath will be saved

VOID SaveContents( VOID )

IsComplete() should be called before SaveContents() to ensure all required fields have been completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 137

Appendix A - Editor methods

SpellCheck

SpellCheck

Function

Syntax

IsComplete

IsComplete

Function

Syntax

Comments

Instructs the editor to spell check all user editable content

VOID SpellCheck( VOID )

Checks to see if all required fields have been completed Returns ldquo1rdquo if the document is complete and ldquo0rdquo if not

BOOL IsComplete( VOID )

This method must be called prior to SaveContents to ensure the document is complete

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 138

Appendix A - Editor methods

IsModified

IsModified

Function

Syntax

Comments

GetVersion

GetVersion

Function

Syntax

Note This method will not tell you if any data fields have been modified

Checks to see if any of the documentrsquos editable content has been modified The editable content is saved in the HIP and PUBX file If editable content has not been modified these files will not need saving back to the server

Returns ldquo1rdquo if the document is modified and ldquo0rdquo if not

BOOL IsModified( VOID )

This method can be called to add efficiency to your process It avoids uploading a Publication file and Production HIP file back to the server if no modification has been made

Returns a string containing the current version number of the Interactive Editor For example 5046352

STRING GetVersion( VOID )

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 139

9 - Appendix B - SOAP API This section describes relevant EngageOne Web services that could be utilized for custom application integration

In this section

Identifiers 141 Search filter 142 Promotion service 143 Folder service 164 Data push service 168 Delivery management service 170 Dictionary service 178 Domain service 180 Editor service 182 Keymap service 185 Metadata service 193 Request status update service 196 Security service 198 Template service 204 Workitem service 227 Attachment service 252 Workflow service 264 Delivery service 276

Appendix B - SOAP API

Identifiers

Many of the services accept as part of their requests identifiers for various entities in the system

For example in order to search for templates the TemplateServices searchTemplates operations take in an optional template identifier The identifiers as part of the request are of two forms either an IntegerIdOrName or a StringIdOrName Refer to the listing of inputs for each service below to see which operations take which identifier

Most of the entities in the system are uniquely identified by a unique integer value When searching for those types of entities you would use the IntegerIdOrName On the other hand domains are entities which are uniquely identified by a string identifier so you would need to use a StringIdOrName when searching for those

In either case all entities can be searched by using the name of the entity IntegerIdOrName and StringIdOrName are choice constructs which allow the name of an entity to be specified Please keep in mind that the name of an entity is not necessarily unique in the system and will potentially return more than one entity

The format of the IntegerIdOrName and StringIdOrName elements are as follows

lttemplategtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlttemplategt

The id element is a string for domain entities and an integer otherwise

All service operations that return entities will return the unique identifiers of the entities This way you can obtain the unique identifiers for use in subsequent calls to the services

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 141

Appendix B - SOAP API

Search filter

For most search operations the request message will include the filter element The filter can be LIST or DETAIL

ltcomfiltergtLISTltcomfiltergt

If you specify LIST less information will be returned in the response

DETAIL means the response will contain more detailed information

Consult the documentation below for each search operation to see the exact meaning of LIST versus DETAIL

For example if you want to return a listing of templates you would use the LIST filter in the request

lttemSearchTemplatesgtltcomfiltergtLISTltcomfiltergt

lttemSearchTemplatesgt

On the other hand if you want to retrieve a template with all of the files (returned as attachments) with the response you would use the DETAIL filter in the request

lttemSearchTemplatesgtltcomfiltergtDETAILltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomnamegtSimple Templateltcomnamegtltidentgt

lttemplategtlttemplatesgt

lttemSearchTemplatesgtFile Attachments

All files sent into a service operation request and returned from a service operation response are transferred as MTOM attachments

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 142

Appendix B - SOAP API

Promotion service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSPromotionServicewsdl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 143

Appendix B - SOAP API

createImportAssetsJob()

Description this web service creates an import assets job

Parameters

InputCreateImportAssetsJob

request type CreateImportAssetsJob - extension of type RequestMessage importItems type ImportItem - minOccurs=1 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

priority type boolean - minOccurs=0 maxOccurs=1

OutputCreateImportAssetsJobResponse

response type CreateImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 144

Appendix B - SOAP API

Fault PromotionFault - fault type ServiceFault

Sample request (Open Import)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltfilePathgtDprojectpromotionpreviewfolder1OnezipltfilePathgt

ltdestinationFoldergtfolder1ltdestinationFoldergtltimportItemsgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgt

ltprioritygttrueltprioritygtltpromCreateImportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 145

Appendix B - SOAP API

Sample request (Promotion Bundle)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2promotion-2018-02-08_08_49_23_758-7291assets-descriptorjsonltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgtltprioritygttrueltprioritygt

ltpromCreateImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENV Header xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3CreateImportAssetsJobResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt0e273a8b-321d-4b6d-975a-60357c8aeb50lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_13_49_5983-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtwaitingltns4statusgt

ltimportJobInfogtltns3CreateImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 146

Appendix B - SOAP API

getImportAssetsJob()

Description This Web service gets an import assets job

Parameters

InputGetImportAssetsJob

request type GetImportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

OutputGetImportAssetsJobResponse

response type GetImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 147

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltjobIdgt2017-03-31_12_16_45372-importltjobIdgt

ltpromGetImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 148

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt252feaad-71ef-434e-b50e-b5861e1b3bb7lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_12_16_45372-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtcompleteltns4statusgtltns4overallResultgt

ltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtimportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4relativePathFromDescriptorgt

MyTemplatezipltns4relativePathFromDescriptorgtltns4rootPathgtDTemplatesltns4rootPathgt

ltns4assetgtltns4resultgt

ltns4statusgtcompleteltns4statusgtltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns2resourceIdsgt47730ltns2resourceIdsgt

ltns4resultgtltns4assetsResultsgt

ltimportJobInfogtltns3GetImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 149

Appendix B - SOAP API

createExportAssetsJob()

Description this Web Service operation is used to create an export assets job

Parameters

Input

CreateExportAssetsJob

request type CreateExportAssetsJob - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType type- string with restriction

enum FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTIONminOccurs=1 maxOccurs=1

options type ExportOption - minOccurs=0 maxOccurs=unbounded

name string - with restriction enum includeSubFoldersdeliveryOptionImportStrategy minOccurs=1 maxOccurs=1

value type string - minOccurs=1 maxOccurs=1

option related to FOLDER asset type includeSubFolders true | false

option related to DELIVERY_OPTION asset type deliveryOptionImportStrategyOMIT_IF_ANY_CONFLICT | MERGE_NEW_CHANNELS | OVERWRITE_EVERYTHING

exportDirectory type string - minOccurs=1 maxOccurs=1

Comment use id or assetLogicalPath parameter alternatively in the request

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 150

Appendix B - SOAP API

CreateExportAssetsJobResponse

response type CreateExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 151

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgtltsoapenvHeadergtltsoapenvBodygt

ltpromCreateExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtfolder1ltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportItemsgt

ltmodassetLogicalPathgtmyDeliveryOptionltmodassetLogicalPathgtltmodtypegtDELIVERY_OPTIONltmodtypegtltmodoptionsgt

ltmodnamegtdeliveryOptionImportStrategyltmodnamegtltmodvaluegtOVERWRITE_EVERYTHINGltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromCreateExportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3CreateExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt1001fb8e-183d-405b-b420-7276fb82bee5lttokengtltSessionTokengt

ltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtwaitingltns4statusgt

ltexportJobInfogtltns3CreateExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 152

Appendix B - SOAP API

getExportAssetsJob()

Description this Web service gets an export assets job

Parameters

Input

GetExportAssetsJob

request type GetExportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

Output

GetExportAssetsJobResponse

response type GetExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 153

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtPmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltjobIdgt2017-04-07_11_46_16456-exportltjobIdgtltpromGetExportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 154

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt501a02fe-a29e-474b-8130-dc1549caa48clttokengt

ltSessionTokengtltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtcompletedltns4statusgtltns4overallResultgt

ltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0

ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtexportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4sourceResourceIdgt115ltns4sourceResourceIdgtltns4relativePathFromDescriptorgtassetsasset-0001zip

ltns4relativePathFromDescriptorgtltns4rootPathgtdMyAssetsexportpromotion-2017-04-07_11_46_16_205-9465

ltns4rootPathgtltns4assetgtltns4resultgt

ltns4statusgtCOMPLETEDltns4statusgtltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegt

ltns4resultgtltns4assetsResultsgt

ltexportJobInfogtltns3GetExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 155

Appendix B - SOAP API

getImportPreview()

Description this web Service operation is used to get a preview of the import

Parameters

Input

GetImportPreview

request type GetImportPreview - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 mode type ImportPreviewMode - type string with restriction -

enum PROMOTION ZIPS PARSED_ZIPS- minOccurs=1 maxOccurs=1

openImportRegularExpressionFilter type string - minOccurs=0 maxOccurs=1

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 156

Appendix B - SOAP API

GetImportPreviewResponse

response type GetImportPreviewResponse - extension of type ResponseMessage

importItems type ImportItem - minOccurs=0 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

previewRoot type ImportPreviewFolder - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1

assets type ImportPreviewAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=4 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1 fileName type string - minOccurs=1 maxOccurs=1 eoVersion type string - minOccurs=1 maxOccurs=1

subFolders type ImportPreviewFolder - minOccurs=0 maxOccurs=unbounded

globalAssets type ImportPreviewGlobalAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum ACDOCUMENT_CLASS- minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded fileName type string - minOccurs=1 maxOccurs=1

totalAssetsCount type int - minOccurs=1 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 157

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpreviewltpathgtltmodegtPARSED_ZIPSltmodegt

ltpromGetImportPreviewgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 158

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportPreviewResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtaffff535-b301-4d69-bd61-75c3df400246lttokengtltSessionTokengt

ltauthContextgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder1Onezipltns4filePathgt

ltns4destinationFoldergtfolder1ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder2ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderfolder4Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderfolder4ltns4destinationFoldergt

ltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderPublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewOnezipltns4filePathgtltns4destinationFoldergtltns4destinationFoldergt

ltimportItemsgtltpreviewRootgt

ltns4typegtTEMPLATEltns4typegtltns4namegtrootltns4namegtltns4pathgtltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtOneltns4pathgtltns4fileNamegtDprojectpromotionpreviewOnezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder1ltns4namegtltns4pathgtfolder1ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder1Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder1

Onezipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtACltns4typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 159

Appendix B - SOAP API

ltns4namegtfolder2ltns4namegtltns4pathgtfolder2ltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder2Publishable Active Contentltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder2

PublishableActiveContentzipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder3ltns4namegtltns4pathgtfolder3ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

Onezipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtACltns4typegtltns4namegtac_folderltns4namegtltns4pathgtfolder3ac_folderltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder3ac_folderPublishable Active

Contentltns4pathgt ltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderPublishableActiveContentzipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder4ltns4namegtltns4pathgtfolder3ac_folderfolder4ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3ac_folderfolder4Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderfolder4Onezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4subFoldersgtltns4subFoldersgt

ltpreviewRootgtlttotalAssetsCountgt8lttotalAssetsCountgt

ltns3GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 160

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity2ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser2ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401assets-descriptorjsonltpathgt

ltmodegtPROMOTIONltmodegtltpromGetImportPreviewgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns4GetImportPreviewResponse xmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtd046d82b-c954-42b4-aca7-cd0a6455ee0elttokengt

ltSessionTokengtltauthContextgtltimportItemsgt

ltns2filePathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401

assets-descriptorjsonltns2filePathgtltimportItemsgtltpreviewRootgt

ltns2typegtTEMPLATEltns2typegtltns2namegtrootltns2namegtltns2pathgtltns2pathgtltns2assetsgt

ltns2typegtTEMPLATEltns2typegtltns2namegtTemplate1ltns2namegtltns2pathgtTemplate1ltns2pathgtltns2fileNamegttemplate1zipltns2fileNamegtltns2eoVersiongt10ltns2eoVersiongt

ltns2assetsgtltpreviewRootgtltglobalAssetsgt

ltns2typegtDOCUMENT_CLASSltns2typegtltns2namegtmyDocumentClassltns2namegtltns2fileNamegtdocumentClass1jsonltns2fileNamegt

ltglobalAssetsgtlttotalAssetsCountgt2lttotalAssetsCountgt

ltns4GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 161

Appendix B - SOAP API

getAssetDependencies()

Description this Web Service operation retrieves export assets dependencies

Parameters

Input

GetAssetDependencies

request type GetAssetDependencies - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum

FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTION - minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=unbounded see

CreateExportAssetsJob() operation for ExportOption definition

Comment use id OR assetLogicalPath parameter in request

Output

GetAssetDependenciesResponse

response type GetAssetDependenciesResponse - extension of type ResponseMessage

exportItems type ExportItem - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum AC DOCUMENT_CLASS -

minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 162

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope[

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelope|httpschemasxmlsoaporgsoapenvelope]

xmlnsprom=httppbcomEngageOnewspromotion

xmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetAssetDependenciesgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromGetAssetDependenciesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope[

xmlnssoap=httpschemasxmlsoaporgsoapenvelopegt|httpschemasxmlsoaporgsoapenvelope]

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetAssetDependenciesResponse[

xmlnsns2=httppbcomEngageOnewsmodel|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt86d472c5-fc85-4552-8ed4-a979f9778c6alttokengt

ltSessionTokengtltauthContextgtltexportItemsgt

ltns2idgt357ltns2idgtltns2assetLogicalPathgtmyDocumetClassltns2assetLogicalPathgtltns2typegtDOCUMENT_CLASSltns2typegt

ltexportItemsgtltns4GetAssetDependenciesResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 163

Appendix B - SOAP API

Folder service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSFolderServicewsdl

listFolderContents()

Description

This Web Service operation is used to list folder contents

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 164

Appendix B - SOAP API

Parameters

Input

ListFolderContents

request type ListFolderContents - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 filter type ListFolderContentsFilter - minOccurs=0 maxOccurs=unbounded ListFolderContentsFilter - type string enum

values FOLDER TEMPLATENON-INTERACTIVE-FOLDERNON-INTERACTIVE-TEMPLATEACTIVE-CONTENT-FOLDERACTIVE-CONTENTVERSION

mode type ListFolderContentsMode - minOccurs=1 maxOccurs=1 default=POPULATED ListFolderContentsMode - type string enum values POPULATED ALL

Output

ListFolderContentsResponse

response type ListFolderContentsResponse - extension of type ResponseMessage

folderContent type FolderContent - minOccurs=1 maxOccurs=1 id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded

templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 path type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 interactive type boolean - minOccurs=1 maxOccurs=1 versions type FolderVersion - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 current type boolean - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1

importedBy type string - minOccurs=1 maxOccurs=1 importedDate type string - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1 publishDate type string - minOccurs=1 maxOccurs=1

Fault

FolderFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 165

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsfol=httppbcomEngageOnewsfolder xmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltfolListFolderContentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltpathgtltpathgtlt--Optional--gtltfiltergtACTIVE-CONTENT-FOLDERltfiltergtltfiltergtFOLDERltfiltergtltfiltergtTEMPLATEltfiltergtltmodegtALLltmodegt

ltfolListFolderContentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 166

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3ListFolderContentsResponse xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsfoldergt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9c3d1b67-322b-4091-a850-b17df1fe4f44lttokengtltSessionTokengt

ltauthContextgtltfolderContentgt

ltidgt0ltidgtltfoldersgt

ltidgt547ltidgtltnamegtac_folderltnamegtltdescriptiongtac_folderltdescriptiongtlttypegtactive-contentlttypegt

ltfoldersgtltfoldersgt

ltidgt1012ltidgtltnamegttemplate_folderltnamegtlttypegttemplatelttypegt

ltfoldersgtlttemplatesgt

ltidgt844ltidgtltnamegtOneltnamegtltdescriptiongtOneltdescriptiongtltpathgtltpathgtlttypegttemplatelttypegtltinteractivegttrueltinteractivegtltimportedBygtuser1ltimportedBygtltimportedDategtThu Apr 20 000000 CEST 2017ltimportedDategtltversiongt10ltversiongtltpublishDategt22-Apr-2015ltpublishDategt

lttemplatesgtltfolderContentgt

ltns3ListFolderContentsResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 167

Appendix B - SOAP API

Data push service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDataPushServicewsdl

pushData()

Description

This Web service pushes data into the EngageOne Server

This Web service validates request data then invokes a common framework for mapping or persisting the data passed in by the service request

Parameters

Input

PushDataRequest

request type PushData - extension of type RequestMessage

template type TemplateIdentifier - optionalident type IntegerIDOrName - optionaleffectiveDate type date - optional

pushDataFile type DataPushFile data type base64Binary

mapId type string returnFiles type boolean - optionalpushUserId type string - optionalexternalId type string - optional

Output

PushDataResponse

response type PushDataResponse - extension of type ResponseMessage

workItem type workItem - optional

Fault

DataPushFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 168

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopegtltsoapenvBodygtltns11PushData xmlnsns11=httppbcomEngageOnewsdatapush

xmlnsxsi=httpwwww3org2001XMLSchema-instancexsitype=ns11PushDatagt

ltauthContext xmlns=httppbcomEngageOnewscommongtltUsernameTokengt ltdomaingt ltidentgt ltnamegtEngageOneltnamegt

ltidentgtltdomaingtltuserIdgteosuperltuserIdgtltpasswordgtPassword1ltpasswordgt

ltUsernameTokengtltauthContextgtltpushDataFilegtltdatagtltdatagt

ltpushDataFilegtltmapIdgttestltmapIdgtltpushUserIdgteomanagerltpushUserIdgtltexternalIdgt1234567ltexternalIdgt

ltns11PushDatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns1PushDataResponse

xmlnsns1=httppbcomEngageOnewsdatapushxmlnsns2=httppbcomEngageOnewsmodel

xmlnsns3=httppbcomEngageOnewscommongtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtb9da9e70833f22a93b71ac2671aed830_1275060509093_2lttokengtltSessionTokengt

ltauthContextgtltns1PushDataResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 169

Appendix B - SOAP API

Delivery management service

suspendDeliveryItem()

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryManagementServicewsdl

searchDeliveryOptions()

Description

This Web service retrieves delivery options by delivery option ID or name or the delivery options associated with a given template ID or name

If the search filter is set to LIST a list of delivery options will be returned without their respective delivery channels If the search filter is DETAIL the delivery channels devices and recipients will also be returned

If both template and delivery option details are provided in the request templates will be searched that match both the template and delivery option criteria

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 170

Appendix B - SOAP API

Parameters

Input

SearchDeliveryOptionsRequest

request type SearchDeliveryOptions - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionident type IntegerIdOrName

Output

SearchDeliveryOptionsResponse

response type SearchDeliveryOptionsResponse - extension of type ResponseMessage

deliveryOptions - optionaldeliveryOption - unbounded type DeliveryOption - extension of abstract type Entity id type ID - type int with restriction name type string channels - optional

channel - unbounded type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string

mode type DeliveryChannelMode - type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

Device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 171

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryOptionsgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2119ec197f798916ec4ddaa4eaa50939_1260816474406_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

ltcomidgtltcomidgtltidentgt

ltdeliveryOptiongtltdeliveryOptionsgt

ltdelSearchDeliveryOptionsgtltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 172

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryOptionsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryOptionsgtltdeliveryOptiongt

ltns2idgt1ltns2idgtltns2namegtCHO1ltns2namegt

ltdeliveryOptiongtltdeliveryOptionsgt

ltns4SearchDeliveryOptionsResponsegtltenvBodygt

ltenvEnvelopegt

searchDevices()

Description

This Web service retrieves devices by device ID or name or devices associated with the specified delivery options or templates

The search filter is not used by this service

If device template delivery option details are provided in the request devices will be searched that match all of the provided criteria

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 173

Appendix B - SOAP API

Parameters

Input

SearchDevicesRequest

request type SearchDevices - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionsident type IntegerIdOrName

devices - optionaldevice - unboundedident type IntegerIdOrName preview - optional type boolean

Output

SearchDevicesResponse

response type SearchDevicesResponse extension of type ResponseMessage

devices - optionaldevice - unbounded type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 174

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDevicesgt lt--Optional--gtltcomauthContextgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomUsernameTokengt ltcomdomainNamegtFirstDomainltcomdomainNamegtltcomuserIdgteosuperltcomuserIdgt

lt--Optional--gtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gtltcomfiltergtDETAILltcomfiltergtlt--Optional--gtlttemplatesgt

lttemplategtltidentgt lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 175

Appendix B - SOAP API

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltdeliveryOptiongt

ltdeliveryOptionsgtlt--Optional--gtltdevicesgt lt--1 or more repetitions--gt

ltdevicegt ltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlt--Optional--gtltpreviewgtltpreviewgt

ltdevicegtltdevicesgt

ltdelSearchDevicesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 176

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchDevicesResponsexmlnsns1=httppbcomEngageOnewsdeliveryManagementxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtbfdba5d08d1299b13651c7c6e25df6a1_1260900326187_0lttokengt

ltSessionTokengtltauthContextgt

ltdevicesgt ltdevicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgt

ltns2HIPIdgt110ltns2HIPIdgtltns2metaIdgt111ltns2metaIdgt

ltdevicegtltdevicesgt

ltns1SearchDevicesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 177

Appendix B - SOAP API

Dictionary service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDictionaryServicewsdl

searchSpellerManifest()

Description

This Web service is used to retrieve the speller manifest loaded in the system

The speller manifest contains a listing of all languages supported by the system and is primarily used by EngageOne Interactive Editor (ActiveX component) for loading dictionary resources

A custom application will not need to parse this file directly but make it available for the Interactive Editor to use

For more infromation on how to integrate the Interactive Editor into a custom application see Integrating with EngageOne SOAP

Parameters

Input

SearchSpellerManifestRequest

request type SearchSpellerManifest - extension of type SearchRequestMessage

Output

SearchSpellerManifestResponse

response type SearchSpellerManifestResponse - extension of type ResponseMessage

manifest - optional type SpellerManifest - extension of abstract type Entity id type ID - type int with restriction data - optional type base64Binary

Fault

DictionaryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 178

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdic=httppbcomEngageOnewsdictionaryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdicSearchSpellerManifestgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltdicSearchSpellerManifestgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchSpellerManifestResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdictionaryxmlnsns5=httppbcomEngageOnewskeymapgt

ltmanifestgt ltns2idgt97ltns2idgtltns2datagt

ltxopIncludehref=ciddata-92afb4f2-e02b-41d0-926b-7eb02575fee1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltmanifestgt

ltns4SearchSpellerManifestResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 179

Appendix B - SOAP API

Domain service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDomainServicewsdl

searchDomains()

Description

This Web service can be used to retrieve a list of EngageOne domains A typical use for this operation would be to pass an empty request and retrieve a list of all domains

This Web service operation is the only operation which does not require authentication

Parameters

Input

SearchDomainsRequest

request type SearchDomains - extension of type RequestMessage

domains - optionaldomain ident type StringIdOrName

Output

SearchDomainResponse

response type SearchDomainsResponse - extension of type ResponseMessage

domains - optionaldomain - unbounded type Domain id type string name type string

Fault

DomainFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 180

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdom=httppbcomEngageOnewsdomainxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdomSearchDomainsgt ltdomSearchDomainsgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDomainsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdomainxmlnsns5=httppbcomEngageOnewskeymapgt

ltdomainsgt ltdomaingt ltns2idgtBB81F0DC-AF0A-4318-9398-D37832916DC9ltns2idgt

ltns2namegtA01ltns2namegtltdomaingtltdomaingt ltns2idgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltns2idgt

ltns2namegtFirstDomainltns2namegtltdomaingtltdomaingt ltns2idgt29CAB1A2-586E-4459-977B-C11819A1680Dltns2idgt

ltns2namegtSecondDmainltns2namegtltdomaingtltdomaingt ltns2idgt232CD981-5208-4C4D-A89B-C3B739266C54ltns2idgt

ltns2namegtThirdltns2namegtltdomaingt

ltdomainsgtltns4SearchDomainsResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 181

Appendix B - SOAP API

Editor service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSEditorServicewsdl

Note Some tags have been broken up for formatting purposes

retrieveResources()

Description

This Web service is used to retrieve resources required by the EngageOne Interactive Editor (ActiveX component)

A custom application intending on embedding the Interactive Editor must use this service operation to retrieve files on behalf of the editor

See Integrating with EngageOne SOAP for more information

Parameters

Input

RetrieveResourcesRequest

request type RetrieveResources extension of type RequestMessage

resources resource - unboundedid type ID - type int with restriction

Output

RetrieveResourcesResponse

response type RetrieveResourcesResponse - extension of type ResponseMessage

resources resource - unbounded type EditorResource - extension of abstract type Entity id type ID - type int with restriction data type base64Binary

Fault

EditorFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 182

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsedit=httppbcomEngageOnewseditorxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtlteditRetrieveResourcesgt

ltcomauthContextgt ltcomSessionTokengt

ltcomtokengt13be6dbe35df5bb735401da4d94dc9c0_1261584686465_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltresourcesgt

ltresourcegt ltidgt97ltidgt

ltresourcegtltresourcesgt

lteditRetrieveResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegtltenvHeadergtltenvBodygt

ltns4RetrieveResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewseditorgt

ltresourcesgt ltresourcegt

ltns2idgt97ltns2idgt

lt--The following ltns2datagt tag has been broken up for formattingpurposes--gt

ltns2datagtPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTcGVsbGVycz4NCjxMYW5ndWFnZXM+DQo8TGFuZ3VhZ2UgTmFtZT0iRU5HTElTSCI+DQo8TGV4aWNvbkZpbGUgTmFtZT0iX0VOR0xJU0guTEVYIiBTUklEPSI2Ii8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfRU5HTElTSC5BQkIiIFNSSUQ9IjQiLz4NCjxJbmRleEZpbGUgTmFtZT0iX0VOR0xJU0guSURYIiBTUklEPSI1Ii8+DQo8SGlzdG9yeUZpbGUgTmFtZT0iX0hJU1RPUlkuR0IiIFNSSUQ9IjMyIi8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5HQiIgU1JJRD0iODYiLz4NCjwvTGFuZ3VhZ2U+DQo8TGFuZ3VhZ2UgTmFtZT0iQU1FUklDQU4iPg0KPExleGljb25GaWxlIE5hbWU9I

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 183

Appendix B - SOAP API

l9BTUVSSUNBLkxFWCIgU1JJRD0iMTAwIi8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfQU1FUklDQS5BQkIiIFNSSUQ9Ijk4Ii8+helliphelliphelliphelliphelliphelliphelliphelliphelliphellipDQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfU1dJU1NfTi5BQkIiIFNSSUQ9IjczIi8+DQo8SW5kZXhGaWxlIE5hbWU9Il9TV0lTU19OLklEWCIgU1JJRD0iNzQiLz4NCjxIaXN0b3J5RmlsZSBOYW1lPSJfSElTVE9SWS5DSDIiIFNSSUQ9IjI1Ii8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5DSDIiIFNSSUQ9Ijc5Ii8+DQo8L0xhbmd1YWdlPg0KPC9MYW5ndWFnZXM+DQo8L1NwZWxsZXJzPg0K ltns2datagt

ltresourcegtltresourcesgt

ltns4RetrieveResourcesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 184

Appendix B - SOAP API

Keymap service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSKeymapServicewsdl

ImportKeymap()

Description

This Web service is used to import a key map file into the EngageOne system A key map file is generated using the EngageOne Key Map Generator

The name of the key map and the image path must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

ImportKeymapRequest

request type ImportKeymap - extension of type RequestMessage

keymapname type string imagepath type string archive type base64Binary

Output

ImportKeymapResponse

response type ImportKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePath type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 185

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyImportKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltimagePathgtCltimagePathgtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyImportKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegtltns2imagePagegtCltns2imagePagegt

ltkeymapgtltns4ImportKeymapResponsegt

ltenvBodygtltenvEnvelopegt

searchKeyMaps()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 186

Appendix B - SOAP API

Description

This Web service is used to get key map information key map file and key map image information for a specified key map

This service requires the key map name or ID to be specified in order to return information

If the user wants the key map XML file to be returned the DETAIL filter has to be specified in the request

If searching for a key map image file the key image name or ID needs to be specified in the request in addition to key map ID The files are returned as base64Binary attachments

This service provides additional search capabilities to the HTTP request method of getting key map image files in a conformed way This service is similar to other search services in EngageOne Server

Note You can only search for an image file for the specified key map at a time The service will not return more then one image file per request

There are four scenarios available for requests

bull filter = LIST - the service will return the key map information (name and image path) bull filter = DETAIL - the service will return the key map information and the key map XML file bull filter = LIST and image requested - the service will return the key map information and the requested image bull filter = DETAIL and image requested - the service will return the key map information the key map XML file and the requested image

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 187

Appendix B - SOAP API

Parameters

Input

SearchKeymapRequest

request type Search - extension of type SearchRequestMessage

bull filter = LIST or DETAIL- enumeration has to be specified depending on what information and files has to be returned

bull keymaps

keymapident type IntegerIdOrName - required parameter images - optional inclulded if image file to be returned image - minOccurs=1 maxOccurs=1 (Only on request)ident type IntegerIdOrName

Note image should be used to request a keyed image

Output

SearchKeymapsResponse

response type SearchKeymapResponse - extension of type ResponseMessage

keymapskeymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePage type string data type base64Binary - contains attachment with requested files images - optional include if image file to be returned image type KeyedImage - extension of abstract type Entity name type string data type base64Binary

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 188

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltkeySearchKeymapsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtmydomainltcomnamegt

ltcomidentgtltcomdomaingt

ltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltkeymapsgt

ltkeymapgtltidentgt

ltcomnamegtExternalKeyMapltcomnamegtltidentgtltimagesgt

ltimagegtltidentgt

ltcomnamegtC8643C4EEF874052A2DB4A97B0063690ltcomnamegtltidentgt

ltimagegtltimagesgt

ltkeymapgtltkeymapsgt

ltkeySearchKeymapsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 189

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchKeymapsResponsexmlnsns1=httppbcomEngageOnewskeymapxmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewskeymapxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt96707b532a8348359ac9cb4e6904d79b_132 2713559246_0lttokengt

ltSessionTokengtltauthContextgtltkeymapsgt

ltkeymapgtltns5idgt1ltns5idgtltns5namegtExternalKeyMapltns5namegt

ltns5imagePathgtCEngageOneQAKeyMapltns5imagePathgt

ltns5datagt ltxopInclude

href=ciddata-38d4d706-2281-45c2-96bb-e8e95407d05awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagesgt

ltns5imagegtltns5idgt1ltns5idgt

ltns5namegtC8643C4EEF874052A2DB4A97B0063690ltns5namegtltns5datagt

ltxopIncludehref=ciddata-93da5279-1d5b-4f9c-9a78-c9701ab93e81wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagegt

ltns5imagesgtltkeymapgt

ltkeymapsgtltns1SearchKeymapsResponsegt

ltenvBodygtltenvEnvelopegt

updateKeymap()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 190

Appendix B - SOAP API

Description

This Web service is used to update a key map file into the EngageOne system

The update process adds any new images and updates existing images in the target directory A key map file is generated using the EngageOne Key Map Generator

The name of the key map must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

UpdateKeymapRequest

request type UpdateKeymap - extension of type RequestMessage

keymapname type string archive type base64Binary

Output

UpdateKeymapResponse

response type UpdateKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 191

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyUpdateKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyUpdateKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4UpdateKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegt

ltkeymapgtltns4UpdateKeymapResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 192

Appendix B - SOAP API

Metadata service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSMetadataServicewsdl

searchMetadata()

Description

This Web service is used to search for metadata associated with a document class as specified by the document class identifier (ID or name)

If the search filter is set to LIST only the document class will be returned If the search filter is set to DETAIL the document class and metadata fields and any associated workflow will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 193

Appendix B - SOAP API

Parameters

Input

SearchMetadataRequest

request type SearchMetadata - extension of type SearchRequestMessage

docClasses - optionaldocClass ident type IntegerIdOrName

Output

SearchMetadataResponse

response type SearchMetadataResponse - extension of type ResponseMessage

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optionalfield - unbounded type MetadataField - extension of abstract type Entity id type ID - type int with restriction name type string type MetadataFieldType - type string with restriction - enum STRING DATE NUMBER CHOICE value - optional - type MetadataFieldValue MetadataString type string MetadataDate type date MetadataNumber type decimal MetadataChoice is recursive

workflows - optionalworkflow - unbounded type Workflow - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

MetadataFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 194

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsmet=httppbcomEngageOnewsmetadataxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltmetSearchMetadatagt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltmetSearchMetadatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchMetadataResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmetadataxmlnsns5=httppbcomEngageOnewseditorgt

ltdocClassesgt ltdocClassgt

ltns2idgt11ltns2idgtltns2namegtInvoiceltns2namegtltns2descriptiongt

ltdocClassgtltdocClassgt

ltns2idgt12ltns2idgtltns2namegtClaimltns2namegtltns2descriptiongt

ltdocClassgtltdocClassesgt

ltns4SearchMetadataResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 195

Appendix B - SOAP API

Request status update service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSRequestStatusUpdateServicewsdl

postEvent()

Description

This Web service is used by EngageOne Deliver to provide information requests received from EngageOne

Parameters

Input

RequestStatusUpdateRequest

request type DIJInformation - extension of type RequestMessage

docInstanceID type string code type string message type string

Output

RequestStatusUpdateResponse

response type ResponseMessage

Fault

fault type ServiceFault

result type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 196

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsstat=httppbcomEngageOnewsdeliverystatusupdatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltstatRequestStatusUpdategtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtEngageOneltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtlt--Optional--gtltcompasswordgtPasswordltcompasswordgtlt--Optional--gtltcomtransientSessiongttrueltcomtransientSessiongt

ltcomUsernameTokengtltcomauthContextgtltDIJInformationgt

ltdocInstanceIDgtBBBBBBBltdocInstanceIDgtltcodegtDELIVRDltcodegtlt--Optional--gtltmessagegtThis iem was deliveredltmessagegt

ltDIJInformationgtltstatRequestStatusUpdategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2RequestStatusUpdateResponsexmlnsns2=httppbcomEngageOnewsdeliverystatusupdatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommongt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 197

Appendix B - SOAP API

Security service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSSecurityServicewsdl

searchRoles()

Description

This Web service is used to return the list of roles that associated with the specified user ID

Possible roles returned include

bull Community Administrator bull Delivery Manager bull Document Manager bull Editor bull Editor with saving new templates

bull External File Manager bull Project Manager bull Reviewer bull Template Manager bull Viewer bull Viewer with Reprint bull Workflow Administrator

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 198

Appendix B - SOAP API

Parameters

Input

SearchRolesRequest

request type SearchRoles - extension of type SearchRequestMessage

Users - optionaluser id type string

Output

SearchRolesResponse

response type SearchRolesRequest - extension of type ResponseMessage

roles - optionalrole - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optionaluser - unbounded type User id type string roles - optional is recursive

Fault

SecurityFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltsecSearchRolesgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltusersgt

ltusergt ltidgteosuperltidgt

ltusergtltusersgt

ltsecSearchRolesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 199

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchRolesResponse[xmlnsns2=httppbcomEngageOnewsmodel

|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewssecurityxmlnsns5=httppbcomEngageOnewseditorgt

ltrolesgt ltrolegt

ltns2idgt40ltns2idgtltns2namegtDocument Managerltns2namegt

ltrolegtltrolegt

ltns2idgt41ltns2idgtltns2namegtEditorltns2namegt

ltrolegtltrolesgt

ltns4SearchRolesResponsegtltenvBodygt

ltenvEnvelopegt

invalidateSession()

Description

This Web service is used to invalidate an authenticated session

This is necessary not to hold open sessions against the license limits of your EngageOne system

The session token must be specified in the authentication context of the request

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 200

Appendix B - SOAP API

Input

InvalidateSessionRequest

request type InvalidateSession - extension of type ResponseMessage

Output

InvalidateSessionResponse

response type InvalidateSessionResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

trustedConnectionLogin()

Description

This Web service is used to create Trusted Connection token

Parameters

Input

TrustedConnectionLoginRequest

request type TrustedConnectionLogin - extension of type ResponseMessage

Output

TrustedConnectionLoginResponse

response type TrustedConnectionLoginResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 201

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltsecTrustedConnectionLogingtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegttestltcomnamegt

ltcomidentgtltcomdomaingt

lt--user1(below)- this is the user that requires access to EngageOneand should exist in LDAP This scenario may be encountered whenthe user does not know their own passwordEg to login it uses card biometric etc --gt

ltcomuserIdgtuser1ltcomuserIdgt

lt--abc123(below) is the ApiKey defined in deployproperties undersecuritytrustedconnectionapikey--gt

ltcompasswordgtabc123ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level

--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 202

Appendix B - SOAP API

ltcomcommunitygtltcomcommunitygtltsecTrustedConnectionLogingt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns2TrustedConnectionLoginResponse

xmlnsns2=httppbcomEngageOnewssecurityxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt455e80b3-645c-41a0-91e6-7b355d1932a2lttokengt

ltSessionTokengtltauthContextgt

ltns2TrustedConnectionLoginResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 203

Appendix B - SOAP API

Template service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSTemplateServicewsdl

deleteTemplate()

Description

This Web service is used to delete a template from the system as specified by a template identifier (ID or name)

All versions of the template with the same name are deleted

Parameters

Input

DeleteTemplate

request type DeleteTemplate - extension of type RequestMessage

templateid type IntegerIdOrName

Output

DeleteTemplateResponse

response type DeleteTemplateResponse - extension of type ResponseMessage

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 204

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemDeleteTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplategtltidgt

ltcomidgt222ltcomidgtltidgt

lttemplategtlttemDeleteTemplategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteTemplateResponsexmlnsns2=httppbcomEngageOnewstemplatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

importActiveContent()

Description

This Web service is used to import an Active Content archive into the EngageOne system Active Content items are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 205

Appendix B - SOAP API

Parameters

Input

ImportActiveContent

request type ImportActiveContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportActiveContentResponse

response type ImportActiveContentResponse - extension of type ResponseMessage

activeContents activeContent - unbounded type ActiveContent - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 206

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportActiveContentgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid784040028172ltarchivegtltfoldergt

ltidentgt ltcomidgt240ltcomidgt

ltidentgtltfoldergt

lttemImportActiveContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 207

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportActiveContentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltactiveContentsgt ltactiveContentgt

ltns2idgt260ltns2idgtltns2namegtAC_Textltns2namegtltns2parentgt

ltns2idgt240ltns2idgtltns2parentgt

ltns2pathgtInvoiceActiveCotentFolderAC_Textltns2pathgtltns2versiongt10ltns2versiongt

ltactiveContentgtltactiveContentsgt

ltns4ImportActiveContentResponsegtltenvBodygt

ltenvEnvelopegt

importMessageContent()

Description

This Web service is used to import a Message Content archive into the EngageOne system Message Content is defined using Content Author

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 208

Appendix B - SOAP API

Parameters

Input

ImportMessageContent

request type ImportMessageContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportMessageContentResponse

response type ImportMessageContentResponse - extension of type ResponseMessage

messageContentsmessageContent - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportMessageContentgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcidcid1184235865156ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportMessageContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 209

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1ImportMessageContentResponsexmlnsns1=httppbcomEngageOnewstemplatexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdatapushgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt05a6a80cadcba8cb11c896cceb18ad46_1330033598071_2

lttokengtltSessionTokengt

ltauthContextgtltmessageContentsgt

ltmessageContentgtltns2idgt1ltns2idgtltns2namegtmessage inchesltns2namegtltns2pathgtMCmessage inchesltns2pathgtltns2versiongt10ltns2versiongt

ltmessageContentgtltmessageContentsgt

ltns1ImportMessageContentResponsegtltenvBodygt

ltenvEnvelopegt

importTemplate()

Description

This Web service is used to import a template archive into the EngageOne system Templates are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 210

Appendix B - SOAP API

Parameters

Input

ImportTemplate

request type ImportTemplate - extension of type RequestMessage

archive type base64Binary folder ident type IntegerIdOrName

Output

ImportTemplateResponse

response type ImportTemplateResponse - extension of type ResponseMessage

templatestemplate - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 211

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid1215487361289ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportTemplategtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 212

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportTemplateResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

lttemplatesgtlttemplategt

ltns2idgt231ltns2idgtltns2namegtEngageOne Introductionltns2namegtltns2parentgt

ltns2idgt221ltns2idgtltns2parentgt

ltns2pathgtInvoiceTESTEngageOne Introductionltns2pathgtltns2versiongt10ltns2versiongt

ltns2effectiveDategt2009-12-17-0500ltns2effectiveDategtltns2withdrawnDategt2999-12-31-0500ltns2withdrawnDategt

lttemplategtlttemplatesgt

ltns4ImportTemplateResponsegtltenvBodygt

ltenvEnvelopegt

searchFolders()

Description

This Web service retrieves folders by folder identifier (ID or name)

If the search filter is set to LIST a high-level list of folders will be returned without their respective children

If the search filter is DETAIL the next level of children (templates and folders) will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 213

Appendix B - SOAP API

Parameters

Input

SearchFolders

request type SearchFolders - extension of type SearchRequestMessage

folders - optionalfolder ident type IntegerIdOrName

Output

SearchFoldersResponse

response type SearchFoldersResponse - extension of type ResponseMessage

folders - optionalfolder - unbounded type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional

folder type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withdrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 214

Appendix B - SOAP API

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract

type Entity is recursive docClasses - optional is recursive children - optional is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optional is recursive children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 215

Appendix B - SOAP API

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

Fault

TemplateFault (soapfault use = literal)

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchFoldersgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltfoldersgt

ltfoldergt ltidentgt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltfoldergt

ltfoldersgtlttemSearchFoldersgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 216

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchFoldersResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfoldersgt ltfoldergt

ltns2idgt0ltns2idgtltns2namegtltns2namegtltns2childrengt ltns2foldergt ltns2idgt118ltns2idgt

ltns2namegtInvocesltns2namegtltns2parentgt

ltns2idgt0ltns2idgtltns2parentgt

ltns2foldergtltns2childrengt

ltfoldergtltfoldersgt

ltns4SearchFoldersResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplateResources()

Description

This Web service retrieves template related files by template identifier (ID or name) and file type

The search filter is not used by this service operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 217

Appendix B - SOAP API

Parameters

Input

SearchTemplateResources

request type SearchTemplateResources - extension of type SearchRequestMessage

templateident type integerIdOrName files - optional

file - unbounded is recursive

Output

SearchTemplateResourcesResponse

response type SearchTemplateResourcesResponse - extension of type ResponseMessage

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity id type ID - type int with restriction name type string type type TemplateFileType - type string with restriction - enum ANSWER SCHEMAXFORM PROPERTY PUBX HIP IMAGE OTHER DATAMODEL PREVIEWPROMPTLOGIC THUMBNAIL DATAMODEL PREVIEW PROMPTLOGIC THUMBNAILdata type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 218

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplateResourcesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtPUBXlttypegt

ltfilegtltfilegt

lttypegtHIPlttypegtltfilegt

ltfilesgtlttemplategt

lttemSearchTemplateResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 219

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplateResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfilesgt ltfilegt

ltns2idgt121ltns2idgtltns2typegtPUBXltns2typegt

ltfilegtltfilegt

ltns2idgt120ltns2idgtltns2typegtHIPltns2typegt

ltfilegtltfilesgt

ltns4SearchTemplateResourcesResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplates()

Description

This Web service searches templates by document class

This Web service supports on-demand licensing

If the type element is omitted the system returns INTERACTIVE_ONLY results by default

If returnAttributes is included with the attribute set to DOC_CLASSES the service returns document class information along with template information

You do not need to set the search filter to DETAIL in order to obtain document class information

If the returnAttributes element is omitted the service does not return document class information with template information just as it does with a LIST filter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 220

Appendix B - SOAP API

Parameters

Input

SearchTemplates

request type SearchTemplates - extension of type SearchRequestMessage

returnAttributes - optionalattribute - unbounded type SearchTemplatesReturnAttribute

- type string with restriction - enum DOC_CLASSES

templates - optionaltemplate

ident type IntegerIdOrName effectiveDate - optional type date

docClasses - optionaldocClass

ident type IntegerIdOrName fields - optional is recursive

sorting - optional type SortingControls fields

field - unbounded type SortField type type SortFieldType - type string with restriction -

enum NAME MODIFIED_TIME WORK_ITEM_EXTERNAL_IDOWNER_NAME CREATOR_NAME APPLICATION_NAMEDATE STATUS TEMPLATE_NAME DELIVERY_COUNT

order type SortOrder - type string with restriction - enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

type - optional type SearchTemplateFilterType - type string with restriction - enum

INTERACTIVE_ONLY NON_INTERACTIVE_ONLY BOTH

Output

SearchTemplatesResponse

response type SearchTemplatesResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

templates - optionaltemplate - unbounded type Template - extension of abstract

type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity

id type ID - type int with restriction name type string

type type TemplateFileType - type string with restriction -

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 221

Appendix B - SOAP API

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHERDATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 222

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplatesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltreturnAttributesgt

ltattributegtDOC_CLASSESltattributegtltreturnAttributesgtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltcomnamegtIntroltcomnamegt

ltidentgtlteffectiveDategtlteffectiveDategt

lttemplategtlttemplatesgtltsortinggt

ltfieldsgt ltfieldgt

lttypegtlttypegtltordergtltordergt

ltfieldgtltfieldsgt

ltsortinggtltpaginationgt

ltpageNumbergtltpageNumbergtltpageSizegtltpageSizegt

ltpaginationgtlttypegtINTERACTIVE_ONLYlttypegt

lttemSearchTemplatesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 223

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplatesResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdeliverystatusupdatexmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgt

ltpaginationgtlttemplatesgt

lttemplategtltns3idgt171ltns3idgtltns3namegtASRrequirementsltns3namegtltns3parentgt

ltns3idgt162ltns3idgtltns3namegtTemplatesltns3namegtltns3typegtREGULARltns3typegt

ltns3parentgtltns3descriptiongtASRrequirementsltns3descriptiongtltns3pathgtTemplatesASRrequirementsltns3pathgtltns3versiongt10ltns3versiongtltns3filesgt

ltns3filegt ltns3idgt172ltns3idgtltns3namegttemplatehipltns3namegtltns3typegtHIPltns3typegtltns3datagt

ltxopIncludehref=ciddata-1fa8d44-f187-4c27-a7f4-44e5611e09abwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt173ltns3idgtltns3namegttemplatepubxltns3namegtltns3typegtPUBXltns3typegtltns3datagt

ltxopIncludehref=ciddata-3b3c834e-8603-484a-a450-4e31f60bbd3awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt174ltns3idgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 224

Appendix B - SOAP API

ltns3datagtltns3namegt0DF00BE136E7490D920F999500B4839Cxformltns3namegt

ltns3typegtXFORMltns3typegtltns3datagt

ltxopIncludehref=ciddata-d0c51091-d8ee-427b-b21c-dbb1662936cbwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3filegtltns3filegt ltns3idgt175ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxmlltns3namegtltns3typegtANSWERltns3typegtltns3datagt ltxopInclude

href=ciddata-b2b74571-7fb5-4643-a8ef-57c55fa86744wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt ltns3idgt176ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxsdltns3namegtltns3typegtSCHEMAltns3typegtltxopInclude

href=ciddata-82e3424-bb1d-4f38-99a7-8b7c9965de0wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3datagt ltns3filegtltns3filegt ltns3idgt177ltns3idgt

ltns3namegtProperty_4338420834667219234xmlltns3namegtltns3typegtPROPERTYltns3typegtltns3datagt

ltxopIncludehref=ciddata-aba52bf7-5146-4dba-89d3-d70067a7916fwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt

ltns3filesgtltns3effectiveDateSelectiongt

ltns3versionsHaveEffectivDategtfalseltns3versionsHaveEffectivDategt

ltns3selectionCriteriagtCURRENT_DATEltns3selectionCriteriagtltns3effectiveDateSelectiongtltns3spellCheckgtUSER_CANNOT_CLOSEltns3spellCheckgt

lttemplategtlttemplatesgt

ltns4SearchTemplatesResponsegtltenvBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 225

Appendix B - SOAP API

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 226

Appendix B - SOAP API

Workitem service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkItemServicewsdl

approveWorkItem()

Description

This method is not supported in this release

createWorkItem()

Description

This Web service can be used to create a new work item for a specified template with associated files (for example answer schema etc)

The work item is created for delivery to the specified delivery option

Additional information is required to create the work item

This includes

an external identifier which can be used as a cross-reference into an external system the user ID of the current operator creating the work item the status of the newly created work item and the application name for which the work item is being created

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 227

Appendix B - SOAP API

Parameters

Input

CreateWorkItemRequest

request type CreateWorkItem - extension of type RequestMessage

templateident type integerIdOrName

workItem externalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

applicationName type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

CreateWorkItemResponse

response type CreateWorkItemResponse - extension of type ResponseMessage

workItem type WorkItem - extension of abstract type Entity id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNED

FAILED_DELIVERY FINISHED OPEN PENDING_APPROVAL

PENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

lastModifiedDate type date

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 228

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworCreateWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtlttemplategt

ltworkItemgt ltexternalIdgtFrank001ltexternalIdgtltcurrentOperatorgteosuperltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltapplicationNamegtCommit By Soap UIltapplicationNamegtltfilesgt

ltfilegt ltnamegtAnswerFile_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326563ltdatagt

ltfilegtltfilegt

ltnamegtPUB_16342009033447pubxltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326564ltdatagt

ltfilegtltfilegt

ltnamegtHIP_16342009033447hipltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326565ltdatagt

ltfilegtltfilegt

ltnamegtProperty_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326566ltdatagt

ltfilegtltfilesgt

ltworkItemgtltworCreateWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 229

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1CreateWorkItemResponsexmlnsns1=httppbcomEngageOnewsworkItemxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewskeymapgt

ltworkItemgt ltns2idgt134ltns2idgt

ltworkItemgtltns1CreateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

deleteWorkItem()

Description

This Web service can be used to delete a work item specified by a work item ID

Pameters

Input

DeleteWorkItemRequest

request type DeleteWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

Output

DeleteWorkItemResponse

response type DeleteWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 230

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworDeleteWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt2ltidgtltworkItemgt

ltworDeleteWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

getWorkItemAssignees()

Description

This Web service is used to retrieve the list of potential assignees for an existing work item as specified by a work item identifier (ID or name)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 231

Appendix B - SOAP API

Parameters

Input

GetWorkItemAssigneesRequest

request type GetWorkItemAssignees - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

GetWorkItemAssigneesResponse

response type GetWorkItemAssigneesResponse - extension of type ResponseMessage

assignees - optionalassignee - unbounded type User id type string roles - optional

role - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optional is recursive

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkItemAssigneesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltworGetWorkItemAssigneesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 232

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4GetWorkItemAssigneesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltassigneesgtltassigneegt

ltns2idgtAdministratorltns2idgtltassigneegtltassigneegt

ltns2idgteodeliveryltns2idgtltassigneegtltassigneegt

ltns2idgteomanagerltns2idgtltassigneegt

ltassigneegt ltns2idgteosystemltns2idgt

ltassigneegtltassigneegt

ltns2idgteotemplateltns2idgtltassigneegt

ltassigneegt ltns2idgteouserltns2idgt

ltassigneegtltassigneegt

ltns2idgtpgeron01ltns2idgtltassigneegt

ltassigneesgtltns4GetWorkItemAssigneesResponsegt

ltenvBodygtltenvEnvelopegt

reassignWorkItem()

Description

This Web service is used to reassign a work item as specified by a work item ID to another user by user ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 233

Appendix B - SOAP API

Parameters

Input

ReassignWorkItemRequest

request type ReassignWorkItem - extension of abstract type WorkItemMaintRequest- extension of type RequestMessage

workItem id type ID - type int with restriction

assigneeid type string

Output

ReassignWorkItemResponse

response type ReassignWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworReassignWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt25ltidgtltworkItemgt

ltassigneegtltidgteouserltidgt

ltassigneegtltworReassignWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 234

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ReassignWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

rejectWorkItem()

Description

This method is not supported in this release

searchWorkItem()

Description

This Web service is used to search for work items by combination of work item list status or optionally with a work item identifier (ID or name)

Possible work item list statuses that can be searched for include

bull ACTIVE

bull SUBMITTED

bull ALL_ACTIVE

bull ALL_SUBMITTED

You can optionally filter the work item list by work item status delivery channel mode and delivery channel type The exception to this rule is when workItemListType is equal to ALL_ACTIVE or ACTIVE In this case the work item cannot be filtered with delivery channel type (ARCHIVE PRINT EMAIL FAX) and channel mode (BATCH IMMEDIATE) The list that is returned pertains to the user invoking the service

For example the operation can be used to return the list of active work items for the authenticated user If the search filter is set LIST the list of matching work items is returned If the search filter is set to DETAIL the files associated with the work items are also returned The Web service always returns a list of comments for each work item returned if there are any

If you submit Work Item ID or name in the search criteria the service returns the requested Work Item regardless of the user ID associated with it The service also disregards workItemListType parameter ( ACTIVE SUBMITTED ALL_ACTIVE ALL_SUBMITTED) if such is specified If you do not specify Work Item ID or name in the search parameters the workItemListType parameter is required

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 235

Appendix B - SOAP API

Parameters

Input

SearchWorkItemsRequest

request type SearchWorkItems - extension of type SearchRequestMessage

workItemListType type WorkItemListType - type string with restriction -enum ACTIVE SUBMITTED ALL_ACTIVE

ALL_SUBMITTED workItems - optionalworkItem

ident type IntegerIdOrName

workitemStatuses - optionalworkitemStatus type workitemStatus - type string with restriction -

enum ACTIVE_INCOMPLETE ACTIVE_NEW ACTIVE_COMPLETEASSIGNED FAILED_DELIVERY FINISHED OPENPENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

deliveryChannelModes - optionaldeliveryChannelMode type deliveryChannelMode - type string with restriction -

enum BATCH IMMEDIATE

deliveryChannelTypes - optionaldeliveryChannelType type deliveryChannelType - type string with restriction -

enum ARCHIVE PRINT EMAIL FAX

sorting - optional type SortingControls fields

field - unboundedl type SortField type type SortFieldType - type string with restriction -

enum WORK_ITEM_EXTERNAL_ID OWNER_NAME CREATOR_NAMEAPPLICATION_NAMEDATE STATUSTEMPLATE_NAME

order type SortOrder - type string with restriction -enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

language - optional type string

Output

SearchWorkItemsResponse

response type SearchWorkItemsResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

workItems - optionalworkItem - unbounded type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 236

Appendix B - SOAP API

lastModifiedDate type date

files - optionalfile - unbounded type WorkItemFile - extension of abstract type Entity

id type ID - type int with restriction name type string path type string type type TemplateFileType - type string with restriction -

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHER DATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

comments - optionalcomment - unbounded type WorkItemComment text type string - requireddate type DateTime - required

Note If multiple comments exist for the work item they will be returned sorted by datetime

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 237

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSearchWorkItemsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltcomfiltergtDETAILltcomfiltergtltworkItemListTypegtACTIVEltworkItemListTypegtltworkItemsgt

ltworkItemgt ltidentgt ltcomidgt43ltcomidgt

ltidentgtltworkItemgt

ltworkItemsgtltworkItemStatusesgt

ltworkItemStatusgtACTIVE_INCOMPLETEltworkItemStatusgtltworkItemStatusgtACTIVE_NEWltworkItemStatusgtltworkItemStatusgtACTIVE_COMPLETEltworkItemStatusgtltworkItemStatusgtASSIGNEDltworkItemStatusgtltworkItemStatusgtFAILED_DELIVERYltworkItemStatusgtltworkItemStatusgtFINISHEDltworkItemStatusgtltworkItemStatusgtOPENltworkItemStatusgtltworkItemStatusgtPENDING_APPROVALltworkItemStatusgtltworkItemStatusgtPENDING_DELIVERYltworkItemStatusgtltworkItemStatusgtSUBMITTED_APPROVEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REJECTEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REVIEWltworkItemStatusgt

ltworkItemStatusesgt

ltdeliveryChannelModesgtltdeliveryChannelModegtBATCHltdeliveryChannelModegtltdeliveryChannelModegtIMMEDIATEltdeliveryChannelModegt

ltdeliveryChannelModesgtltdeliveryChannelTypesgt

ltdeliveryChannelTypegtPRINTltdeliveryChannelTypegtltdeliveryChannelTypegtEMAILltdeliveryChannelTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 238

Appendix B - SOAP API

ltdeliveryChannelTypegtFAXltdeliveryChannelTypegtltdeliveryChannelTypegtARCHIVEltdeliveryChannelTypegt

ltdeliveryChannelTypesgtltworSearchWorkItemsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 239

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns3SearchWorkItemsResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsworkItemxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelxmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgtltpaginationgtltworkItemsgt ltworkItemgt ltns5idgt7ltns5idgtltns5externalIdgtWork Item 121634 -

1016803513ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

ltns5lastModifiedDategt2012-11-08T121635080-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt190ltns5idgtltns5namegtAnswerFile_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08162012121634xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-a21abe3f-4f64-4d87-becb-85619d8fc0c3wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt191ltns5idgtltns5namegtPUB_08162012121634pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08162012121634pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-1f28b175-1362-45b7-9717-bf311277cee6wsjbossorg

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 240

Appendix B - SOAP API

xmlnsxop=httpwwww3org200408xopincludegtltns5filegtltns5filegt ltns5idgt192ltns5idgtltns5namegtHIP_08162012121634hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08162012121634hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-a48a81bd-9b61-4140-8d08-292f3c12f47awsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt193ltns5idgtltns5namegtProperty_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08162012121634xmlltns5pathgt

ltns5typegtPROPERTYltns5typegtltns5datagt ltxopInclude

href=ciddata-6f19fa6c-e9a7-435e-94ad-bf84ba41140wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5dataltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTest Spell Check Closeltns5textgtltns5dategt2012-11-08T121635080-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemgt ltns5idgt9ltns5idgtltns5externalIdgtWork Item 121841 -

544723706ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 241

Appendix B - SOAP API

ltns5lastModifiedDategt2012-11-08T121842030-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt198ltns5idgtltns5namegtAnswerFile_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08182012121841xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-8fc4283-e36-4d13-8b38-fe9495dea2bfwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5filegtltns5filegt ltns5idgt199ltns5idgtltns5namegtPUB_08182012121841pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08182012121841pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-f2ebda42-e045-4c3e-a8f8-75fb13fd919dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt200ltns5idgtltns5namegtHIP_08182012121841hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08182012121841hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-9d66a164-c512-4566-aba6-6ef7c375c861wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt201ltns5idgtltns5namegtProperty_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08182012121841xmlltns5pathgt

ltns5typegtPROPERTYltns5typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 242

Appendix B - SOAP API

ltns5datagt ltxopInclude

href=ciddata-e2bb812a-7fa3-43cf-a035-81a3ccc96c6dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTestltns5textgtltns5dategt2012-11-08T121842030-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemsgtltns3SearchWorkItemsResponsegtltenvBodygtltenvEnvelopegt

submitWorkItem()

Description

This Web service is used to submit a work item and deliver the document after creating a work item using the WorkItemService createWorkItem operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 243

Appendix B - SOAP API

Parameters

Input

SubmitWorkItemRequest

request type SubmitWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

comment - optional type string

Output

SubmitWorkItemResponse

response type SubmitWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworSubmitWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltworkItemgt

ltworSubmitWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 244

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SubmitWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateWorkItem()

Description

This Web service is used to update a work item definition This includes the template associated with the work item work item details such as status and the delivery option associated with the work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 245

Appendix B - SOAP API

Parameters

Input

UpdateWorkItemRequest

request type UpdateWorkItem - extension of type RequestMessage

templateident type IntegerIdOrName

workitem id type ID - type int with restrictionexternalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

comment type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

UpdateWorkItemResponse

response type UpdateWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 246

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltcurrentOperatorgteouserltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltcommentgthello worldltcommentgt

ltworkItemgtltdeliveryOptiongt

ltidentgt ltcomidgt1ltcomidgt

ltidentgtltdeliveryOptiongt

ltworUpdateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 247

Appendix B - SOAP API

saveTemplateWorkItem()

Description

This Web service is used to create a new template work item A template work item is distinguished from a document instance work item using the WorkItemService createWorkItem operation The intent of a template work item is to make a new template available for use in document instance creation

Parameters

Input

SaveTemplateWorkItemRequest

request type SaveTemplateWorkItem - extension of type RequestMessage

templateWorkItemident - optional type IntegerIdOrName createdBy type string modelTemplateId type IntegerIdOrName targetTemplateName type string folderIdent type IntegerIdOrName files - optional

file - unbounded is recursive

comment - optional type string overwrite - optional type boolean

Output

SaveTemplateWorkItemResponse

response type SaveTemplateWorkItemResponse - extension of type ResponseMessage

workItem type TemplateWorkItem - extension of type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

lastModifiedDate type date modelTemplateId type ID - type int with restriction templateName type string folderId type ID - type int with restriction

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 248

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSaveTemplateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplateWorkItemgtltidentgt

ltcomidgt30ltcomidgtltidentgtltcreatedBygteosuperltcreatedBygtltmodelTemplateIdgt

ltcomidgt119ltcomidgtltmodelTemplateIdgtlttargetTemplateNamegtIntro_SaveAslttargetTemplateNamegt

ltfolderIdentgt ltcomidgt221ltcomidgt

ltfolderIdentgtltfilesgt

ltfilegt ltnamegtAnswerFile_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

ltnamegtPUB_18152009111556pubxltnamegtltpathgtInstanceFilesltpathgtlttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

ltnamegtHIP_18152009111556hipltnamegtltpathgtInstanceFilesltpathgtlttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

ltnamegtProperty_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtPROPERTYlttypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 249

Appendix B - SOAP API

ltdatagtcid278598095434ltdatagtltfilegt

ltfilesgtlttemplateWorkItemgtltcommentgt789456ltcommentgtltoverwritegttrueltoverwritegt

ltworSaveTemplateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SaveTemplateWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltworkItemgt ltns2idgt30ltns2idgtltns2externalIdgtWF05ltns2externalIdgtltns2createdBygteosuperltns2createdBygtltns2statusgtFINISHEDltns2statusgt

ltns2lastModifiedDategt2009-12-18-0500ltns2lastModifiedDategtltns2modelTemplateIdgt119ltns2modelTemplateIdgtltns2templateNamegtEngageOne

Introductionltns2templateNamegtltns2folderIdgt221ltns2folderIdgt

ltworkItemgtltns4SaveTemplateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

addWorkItemComment()

Description

This Web service is used to add a comment to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 250

Appendix B - SOAP API

Parameters

Input

AddWorkItemCommentRequest

request type AddWorkItemComment - extension of type RequestMessage extension of type RequestMessageworkItem id type ID - type int with restriction comment type string

Output

AddWorkItemCommentResponse

response type AddWorkItemCommentResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

updateWorkItemStatus()

Description

This Web service is used to update the status of an existing work item

Parameters

Input

UpdateWorkItemStatusRequest

request type UpdateWorkItemStatus - extension of type RequestMessage

workItem id type ID - type int with restriction status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

Output

UpdateWorkItemStatusResponse

response type UpdateWorkItemStatusResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 251

Appendix B - SOAP API

Attachment service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSAttachmentServicewsdl

addAttachments()

Description

This Web service adds attachment files to an existing work item

Parameters

Input

AddAttachments

request type AddAttachments - extension of type RequestMessage

attachmentFiles type base64Binary maxOccurs=unbounded workItemId type ID ndash type int with restriction

Output

AddAttachmentsResponse

response type AddAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 252

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt ltcomUsernameTokengt

ltcomdomaingt ltcomidentgt

ltcomnamegtcommunity1ltcomnamegtltcomidentgt

ltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--1 or more repetitions--gtltattachmentFilesgtcid490167285825ltattachmentFilesgtltattachmentFilesgtcid490167285826ltattachmentFilesgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 253

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3AddAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta08351f0-5537-40bc-8baf-b98c5abc196clttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt29ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt30ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltns3AddAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachments()

Description

This Web service is used to get all attachment file metadata added to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 254

Appendix B - SOAP API

Parameters

Input

GetAttachments

request type GetAttachments - extension of type RequestMessage

workItemId type ID ndash type int with restriction

Output

GetAttachmentsResponse

response type getAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 255

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta5506457-f0a1-4ba5-99ed-4a6a6d2925f1lttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt2ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt3ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltns3GetAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachmentFile()

Description

This Web service is used to get attachment file content

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 256

Appendix B - SOAP API

Parameters

Input

GetAttachmentFile

request type GetAttachmentFile - extension of type RequestMessage

workItemId type ID ndash type int with restriction attachmentId type ID ndash type int with restriction

Output

GetAttachmentFileResponse

response type GetAttchmentFileResponse - extension of type ResponseMessage

attachmentFile type base64Binary

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattGetAttachmentFilegt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1ltworkItemIdgt

ltattachmentIdgt8ltattachmentIdgtltattGetAttachmentFilegt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 257

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentFileResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtfd220238-a5eb-46b8-8ac8-4be9366402f2lttokengt

ltSessionTokengtltauthContextgtltattachmentFilegt

ltxopIncludehref=cid1f882a3b-ac19-431d-9a26-d0d169081313-4cxfapacheorgxmlnsxop=httpwwww3org200408xopincludegt

ltattachmentFilegtltns3GetAttachmentFileResponsegt

ltsoapBodygtltsoapEnvelopegt

deleteAttachment()

Description

This Web service is used to delete an attachment from a communication

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 258

Appendix B - SOAP API

Parameters

Input

DeleteAttachment

request type DeleteAttachment - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachmentId ident type ID ndash type int with restriction

Output

DeleteAttachmentResponse

response type DeleteAttchmentResponse - extension of type ResponseMessage

attachmentId ident type ID ndash type int

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattDeleteAttachmentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt7ltworkItemIdgtltattachmentIdgt14ltattachmentIdgt

ltattDeleteAttachmentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 259

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3DeleteAttachmentResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9e079c58-80c7-40a9-86d2-2bea25632413lttokengt

ltSessionTokengtltauthContextgtltattachmentIdgt14ltattachmentIdgt

ltns3DeleteAttachmentResponsegtltsoapBodygt

ltsoapEnvelopegt

updateAttachments()

Description

This Web service is used to update attachmentsrsquo order and name

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 260

Appendix B - SOAP API

Parameters

Input

UpdateAttachments

request type UpdateAttachments - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded

id type ID - type int with restrictionfileName type string fileType type string - optional and ignored on updatesequence type int createdDate type date - optional and ignored on update

Output

UpdateAttachmentsResponse

response type UpdateAttchments - extension of type ResponseMessage

attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 261

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltattUpdateAttachmentsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt20ltworkItemIdgtltattachmentsgt

ltmodidgt4ltmodidgtltmodfileNamegtreportpdfltmodfileNamegtltmodsequencegt2ltmodsequencegt

ltattachmentsgtltattachmentsgt

ltmodidgt5ltmodidgtltmodfileNamegtO55V7PpdfltmodfileNamegtltmodsequencegt1ltmodsequencegt

ltattachmentsgtltattUpdateAttachmentsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 262

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4UpdateAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsattachmentgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt169e9b3e-6d7c-4ec1-929e-ead23c5f9832lttokengt

ltSessionTokengtltauthContextgtltattachmentsgt

ltns3idgt5ltns3idgtltns3fileNamegtO55V7Ppdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt1ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltattachmentsgt

ltns3idgt4ltns3idgtltns3fileNamegtreportpdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt2ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltns4UpdateAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 263

Appendix B - SOAP API

Workflow service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkflowServicewsdl

Note Some tags have been broken up for formatting purposes

getWorkflowTask()

Description

This Web Service operation is used to get workflow task details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 264

Appendix B - SOAP API

Parameters

Input

GetWorkflowTask

request type GetWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1

Output

GetWorkflowTaskResponse

response type GetWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string minOccurs=0 maxOccurs=unbounded potentialGroups type string minOccurs=0 maxOccurs=unbounded potentialUsers type string minOccurs=0 maxOccurs=unbounded allowedActions type string minOccurs=0 maxOccurs=unbounded instanceId type string isActionableByYou type string projectId type string previewBefore type string previewAfter type string previewDiff type string comparisonStatus type string

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 265

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtltworGetWorkflowTaskgt ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt12345lttaskIdgtltworGetWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 266

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengtltSessionTokengtltauthContextgtlttaskgt ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgtltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgtltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgtlttaskgtltns4GetWorkflowTaskResponsegt

ltsoapBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 267

Appendix B - SOAP API

ltsoapEnvelopegt

updateWorkflowTask()

Description

This Web Service operation is used to update workflow task

Parameters

Input

UpdateWorkflowTask

request type UpdateWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1 action type WorkflowTaskAction minOccurs=1 maxOccurs=1

allowed values APPROVE REJECT CLAIMDELEGATE RELEASE RESUBMIT

assignee type string - minOccurs=1 maxOccurs=1 notes type string - minOccurs=1 maxOccurs=1

Output

UpdateWorkflowTaskResponse

response type UpdateWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type stringname type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string - minOccurs=0 maxOccurs=unbounded potentialGroups type string - minOccurs=0 maxOccurs=unbounded potentialUsers type string - minOccurs=0 maxOccurs=unbounded allowedActions type string - minOccurs=0 maxOccurs=unbounded instanceId type string - minOccurs=0 maxOccurs=unbounded isActionableByYou type string - minOccurs=0 maxOccurs=unbounded projectId type string - minOccurs=0 maxOccurs=unbounded previewBefore type string - minOccurs=0 maxOccurs=unbounded previewAfter type string - minOccurs=0 maxOccurs=unbounded previewDiff type string - minOccurs=0 maxOccurs=unbounded comparisonStatus type string - minOccurs=0 maxOccurs=unbounded

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 268

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkflowTaskgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtdesignReviewltcomuserIdgtltcompasswordgtmy passwordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt2543lttaskIdgtltactiongtDELEGATEltactiongtltassigneegtWTOffice2ltassigneegtltnotesgttest_notesltnotesgt

ltworUpdateWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 269

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygt

ltns4UpdateWorkflowTaskResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtc09d7ff6-b1de-4c5c-a59b-6283d9bdd686lttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt2543ltns3idgtltns3namegtmany users Step1ltns3namegtltns3statusgtinActionOtherltns3statusgtltns3actualOwnergtWTOffice2ltns3actualOwnergtltns3externalReferenceNamegtWT_Project -

Simple_Image_Publtns3externalReferenceNamegt

ltns3externalReferenceIdgt5d91acb3-9900-44ab-961e-a40aad831b7eltns3externalReferenceIdgt

ltns3externalReferenceTypegtPROJECT_ASSETltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtSimple_Image_Publtns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt15f3cebd-3f09-4ebb-a988-0f32588ee6d2ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-27T120905797Zltns3createdgtltns3stepgtStep1ltns3stepgtltns3submittergtadminltns3submittergtltns3typegtdesignReviewltns3typegt

ltns3uriToGetTaskDetailsgthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1Community1tasks25432543ltns3uriToGetTaskDetailsgt

ltns3instanceIdgt2527ltns3instanceIdgt

ltns3isActionableByYougtfalseltns3isActionableByYougt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 270

Appendix B - SOAP API

ltns3onBehalfOfGroupsgtltns3potentialUsersgtWTProjReviewerltns3potentialUsersgt

ltns3potentialUsersgtWTOffice1ltns3potentialUsersgt

ltns3projectIdgtb960f0bc-ce8e-4f71-9077-a98054c25a79ltns3projectIdgt

ltns3previewBeforegthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesbfbc379f-fddf-49d1-bdff-28ac75f70683ltns3previewBeforegt

ltns3previewAftergthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesa205c38c-7d99-4075-aa48-327315331897ltns3previewAftergt

ltns3comparisonStatusgtsubmitltns3comparisonStatusgtlttaskgt

ltns4UpdateWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

getWorkflowTasks()

Description

This Web Service operation is used to get the list of existing workflow tasks

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 271

Appendix B - SOAP API

Parameters

Input

GetWorkflowTasks

request type GetWorkflowTasks - extension of type RequestMessage

query type string - minOccurs=0 maxOccurs=1 assignedUser type string - minOccurs=0 maxOccurs=1 searchType type string enum values all user unassigned - minOccurs=1 maxOccurs=1 submitters type string - minOccurs=0 maxOccurs=unbounded subjects type string - minOccurs=0 maxOccurs=unbounded types type string - minOccurs=0 maxOccurs=unbounded statuses type string - minOccurs=0 maxOccurs=unbounded earliestCreationTime type date - minOccurs=0 maxOccurs=1 latestCreationTime type date - minOccurs=0 maxOccurs=1 order type string - minOccurs=0 maxOccurs=1 pagination type PaginationControls - minOccurs=0 maxOccurs=1

Output

GetWorkflowTasksResponse

response type GetWorkflowTasksResponse - extension of type ResponseMessage

WorkflowTask - minOccurs=0 maxOccurs=unbounded id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string

PaginationControls - minOccurs=0 maxOccurs=1 pageNumber type int - minOccurs=0 pageSize type int - minOccurs=0 totalPages type int - minOccurs=0

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 272

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkflowTasksgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltsearchTypegtallltsearchTypegt

ltworGetWorkflowTasksgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 273

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgt

ltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgt

ltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgt

lttaskgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 274

Appendix B - SOAP API

ltns4GetWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 275

Appendix B - SOAP API

Delivery service

suspendDeliveryItem

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryServicewsdl

Note Some tags have been broken up for formatting purposes

deleteDeliveryItem()

Description

This Web service deletes a delivery item as specified by a work item or delivery item

Parameters

Input

DeleteDeliveryItemRequest

request type DeleteDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

DeleteDeliveryItemResponse

response type DeleteDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 276

Appendix B - SOAP API

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelDeleteDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt501ltidgtltdeliveryItemgtltcommentgtSoapUI Testltcommentgt

ltdelDeleteDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

deliverDocument()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 277

Appendix B - SOAP API

Description

This Web service delivers a document to the specified delivery option

The input is a template identifier along with the document files (for example answer HIP content properties)

A delivery request is created in the system and returned from the service The status field indicates the status of the delivery request

If the mode of any of the delivery channel associated with the delivery option is IMMEDIATE the document data is also returned for that delivery channel

A SOAP request sample is provided that shows how to pass a file to the deliverDocument Web service as an MTOM attachment using a standard client tool

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 278

Appendix B - SOAP API

Parameters

Input

DeliverDocumentRequest

request type DeliverDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

delilveryOptionident type IntegerIdOrName

Output

DeliverDocumentResponse

response type DeliverDocumentResponse - extension of type ResponseMessage

deliveryRequest type DeliveryRequest - extension of abstract type Entity id type ID - type int with restriction status type DeliveryStatus - type string with restriction - enum NEW PROCESSING

COMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS Note ERROR status code is returned when the delivery channel fails because of an attachment conversion issue (For example a document attached to a publication is broken and conversion services fail to process it) This status is different from a normal document composition failure which occurs when the main document generation fails

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restriction

deliveryChannel type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX device type Device - extension of abstract type Entity

id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS document - optional type ComposedDocument

data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 279

Appendix B - SOAP API

Sample request

POST httplocalhost8080EngageOneWSDeliveryService HTTP11Accept-Encoding gzipdeflateSOAPAction httppbcomEngageOnewsdeliveryDeliverDocumentContent-Type multipartrelated type=applicationxop+xmlstart=ltrootpartsoapuiorggt start-info=textxmlboundary=----=_Part_0_2998042411322083558307MIME-Version 10 User-Agent Jakarta Commons-HttpClient31Host localhost8080 Content-Length 2239

------=_Part_0_2998042411322083558307 Content-Type applicationxop+xml charset=UTF-8 type=textxmlContent-Transfer-Encoding 8bitContent-ID ltrootpartsoapuiorggt

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelDeliverDocumentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgt1234ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongtltcomondemandgtfalseltcomondemandgt

ltcomUsernameTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomnamegt4933ltcomnamegt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtltincInclude href=cid1276245679229

xmlnsinc=httpwwww3org200408xopincludegtltdatagtltfilegt

ltfilesgtlttemplategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 280

Appendix B - SOAP API

ltdeliveryOptiongtltidentgt

ltcomnamegtlpltcomnamegtltidentgt

ltdeliveryOptiongtltdelDeliverDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt------=_Part_0_2998042411322083558307 Content-Type textxml charset=us-asciiContent-Transfer-Encoding 7bitContent-ID lt1276245679229gt

ltxml version=10 encoding=UTF-8 standalone=yesgtltInteractiveDataModel version=11 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=c10478fe6de8490ea462a64e518751c9xsdgt

ltPublicationgt ltInteractiveFieldgtTest dataltInteractiveFieldgtltDeliveryInformationgtltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegtltDocumentSelector xsinil=truegt

ltDeliveryInformationgtltg1privategt

ltPublicationgtltInteractiveDataModelgt------=_Part_0_2998042411322083558307--

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 281

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4DeliverDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdeliveryRequestgtltns2idgt137ltns2idgtltns2statusgtPROCESSINGltns2statusgtltns2deliveryItemsgt

ltns2deliveryItemgtltns2idgt3252ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2modegtIMMEDIATEltns2modegtltns2typegtPRINTltns2typegtltns2devicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgtltns2HIPIdgt312ltns2HIPIdgtltns2metaIdgt313ltns2metaIdgt

ltns2devicegtltns2recipientgt

ltns2idgt1ltns2idgtltns2namegtRRRRRRRRRRltns2namegt

ltns2xpathgtInteractiveDataModelPublicationDeliveryInformationReceipientltns2xpathgt

ltns2recipientgtltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgtltns2documentgt

ltns2datagt ltxopInclude

href=ciddata-639c053e-ee64-4630-8ada-5091966c518awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltns2documentgt

ltns2deliveryItemgtltns2deliveryItemsgt

ltdeliveryRequestgtltns4DeliverDocumentResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 282

Appendix B - SOAP API

previewDocument()

Description

This Web service returns a preview of the document specified in the request

The request includes the template identifier along with the document files (for example answer HIP property) In order for this operation to work successfully the preview device needs to be defined in EngageOne Administration

The preview document data is returned in the response as an attachment

Parameters

Input

PreviewDocumentRequest

request type PreviewDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

Output

PreviewDocumentResponse

response type PreviewDocumentResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

Deliveryfault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 283

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewDocumentgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtAQIC5wM2LY4SfcybfdGzpUvpFf4fVau4XU-w7VEHi9SLx_MAAJTSQACMDEAAlNLABM3MzUxMTg2ODM5MTcwNTUwNzM1defaultltcomtokengt

ltcomSessionTokengt

ltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

lttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

lttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

lttypegtPROPERTYlttypegtltdatagtcid278598095434ltdatagt

ltfilegtltfilesgt

lttemplategtltdelPreviewDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 284

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-bdd85045-1de1-42c2-b0b1-865ea9045a52wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewDocumentResponsegtltenvBodygt

ltenvEnvelopegt

previewWorkItem()

Description

This Web service previews a document associated with a work item

The request includes a work item identifier (id or name) obtained from a previous call to the WorkItemService createWorkItem service operation

The preview device is assumed to be defined through EngageOne Administration

The preview document data is returned in the response as an attachment

Note In order to preview a work item with Web services the work item status must not be Active New or Active Incomplete

The work item can be previewed after the required work is completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 285

Appendix B - SOAP API

Parameters

Input

PreviewWorkItemRequest

request type PreviewWorkItem - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

PreviewWorkItemResponse

response type PreviewWorkItemResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtc42356d8ec312e4b471399896cc44e77_1261063384968_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltdelPreviewWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 286

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-121f00b4-7d2d-4c75-a20a-1c5ed92563c1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewWorkItemResponsegtltenvBodygt

ltenvEnvelopegt

resumeDeliveryItem()

Description

This Web service resumes a delivery item which has been previously suspended via a call to the DeliveryService suspendDeliveryItem operation

The request must contain either the work item identifier (ID or name) or the delivery item ID An optional comment can be specified as well

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 287

Appendix B - SOAP API

Parameters

Input

ResumeDeliveryItemRequest

request type ResumeDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

ResumeDeliveryItemResponse

response type ResumeDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelResumeDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtResume by soupUIltcommentgt

ltdelResumeDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 288

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ResumeDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

searchDeliveryItems()

Description

This Web service retrieves delivery items associated with a work item or as specified by a delivery item ID

If the search filter is set to DETAIL the composed document associated with the delivery item is also returned if it exists (it may not have been composed)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 289

Appendix B - SOAP API

Parameters

Input

SearchDeliveryItemsRequest

request type SearchDeliveryItems - extension of type SearchRequestMessage

workItems - optionalworkItem

ident type IntegerIdOrName

deliveryItems - optionaldeliveryItem

id type ID - type int with restriction

Output

SearchDeliveryItemsResponse

response type SearchDeliveryItemsResponse - extension of type ResponseMessage

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restrictiondeliveryChannel type DeliveryChannel - extension of abstract type Entity

id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 290

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryItemsgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltworkItemsgt

ltworkItemgt ltidentgt

ltcomidgt27ltcomidgtltidentgt

ltworkItemgtltworkItemsgt

ltdelSearchDeliveryItemsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 291

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryItemsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryItemsgtltdeliveryItemgt

ltns2idgt501ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2typegtPRINTltns2typegt

ltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgt

ltdeliveryItemgtltdeliveryItemsgt

ltns4SearchDeliveryItemsResponsegtltenvBodygt

ltenvEnvelopegt

suspendDeliveryItem()

Description

This Web service suspends a delivery item specified in the request by a work item identifier (ID or name) or delivery item ID

A suspended delivery item will not be delivered

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 292

Appendix B - SOAP API

Parameters

Input

SuspendDeliveryItemRequest

request type SuspendDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

SuspendDeliveryItemResponse

response type SuspendDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelSuspendDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtsoapUIltcommentgt

ltdelSuspendDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 293

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SuspendDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateDeliveryItem()

Description

This Web service can be used to update the status of a delivery item as specified in the request by a work item identifier (ID or name) or delivery item ID

Parameters

Input

UpdateDeliveryItemRequest

request type UpdateDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS

Output

UpdateDeliveryItemResponse

response type UpdateDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 294

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelUpdateDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt38ltcomidgt

ltidentgtltworkItemgtltcommentgt123456ltcommentgtltstatusgtDELIVEREDltstatusgt

ltdelUpdateDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 295

10 - Upgrading 3X to 4X SOAP services This section details the difference between EngageOne 3X and 4X SOAP services

Note this section does not cover Gen1 SOAP services These services are no longer available

In this section

Licensing changes 297 Security changes 298 WorkItem approval process not supported 300 DataPushServicemapData not supported 300

Upgrading 3X to 4X SOAP services

Licensing changes

EngageOne Server 4X no longer requires a license file at installation time

The license file restricted the

bull Total number of communities bull Total number of concurrent sessions bull Use of OnDemand services

These restrictions are no longer enforced at runtime As a result the following fields in the AuthContext element are ignored but must be included in your request

bull ondemand

bull transientsession

In addition the following services do not have the OnDemand licensing requirement as was the case in 3X

bull DeliverDocument

bull SearchDeliveryOptionsbull SearchTemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 297

Upgrading 3X to 4X SOAP services

Security changes

The following section details security changes that are part of the upgrade to EngageOne 4X

Authentication with WS-Security

In EngageOne 3X a custom AuthContext SOAP element is used to send credential information to the server This authentication mechanism is still supported but should no longer be used in new development

To improve and modernize the authentication mechanisms of EngageOne Server the SOAP services now support WS-Security authentication

WS-Security (Web services security) is an industry standard that addresses security when data is exchanged as part of a Web service This type of authentication is implemented on all EngageOne Server services at the useridpassword level

WS-Security specifies enhancements to SOAP messaging that protect the integrity and confidentiality of a message and authenticate the sender WS-Security specifies how to associate a security token with a message without specifying what kind of token that is to be used

To use WS-Security you must specify the additional SOAP header elements in all requests

Role and access right enforcement

EngageOne version 4X introduces new Role and Access Rights restrictions in SOAP services Users are now required to have the necessary permissions to work with server resources

The following permissions are enforced in 4X

bull Role assignments - methods have been restricted by roles to align with permissions granted in EngageOne Interactive and EngageOne Admin

bull Template access rights - when working with resources in the TemplateActive ContentMessage Content folder structure the user must have access via an LDAP group specified in EngageOne Admin

For example SearchTemplates will return templates to which the user has permissions Some special roles have unrestricted access where this does not apply

bull WorkItem assignment rights- when working with a Work Item a user must either be an owner of the Work Item or have unrestricted access

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 298

Upgrading 3X to 4X SOAP services

For example to call DeleteWorkItem the user must be the owner of the Work Item

bull Unrestricted access - these roles are not restricted by Template Access and WorkItem Assignment Rights

Role and access rights by service

The following table describes the required roles and additional access rights that are enforced

Roles are abbreviated as follows

bull Interactive Roles

bull Editor bull Editor with Saving New Templates

bull CA - Community Administrator bull DM - Document Manager bull TM - Template Manager bull EFM - External File Manager

Service Required Roles Additional Access Enforced

Template Access Rights Interactive Roles DataPush

None (unrestricted access) DM CA

Template Access Rights Interactive Roles DeliveryManagement

None (unrestricted access) DM CA

WorkItem Assignment Rights Interactive Roles Delivery

None (unrestricted access) DM CA

NANo roles required Domain

Template Access Rights Interactive Roles Editor

None (unrestricted access) CA

Keymap EFM CA NA

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 299

Upgrading 3X to 4X SOAP services

Service Required Roles Additional Access Enforced

Security

None (unrestricted access) Interactive Roles Metadata

No roles required

WorkItem Assignment Rights Interactive Roles Template (Interactive features)

None (unrestricted access) DM CA

NATM CA SA Template (Admin features)

WorkItem Assignment Rights Interactive Roles WorkItem

None (unrestricted access) DM CA

WorkItem approval process not supported

The following methods are not currently supported in EngageOne 43 and will return a not supported fault message when called

bull WorkItemServicerejectWorkItembull WorkItemServiceapproveWorkItem

In addition WorkItemServicesubmitWorkItem will only submit work items for delivery If the work item triggers a workflow approval process an error will be thrown

DataPushServicemapData not supported

mapDatamethod of DataPushservice is no longer supported In earlier releases this method mapped pushed data from the pushData method to a template

In this release the pushData method performs this operation in advance and creates a corresponding communication in Interactive for an end-user

If you are using the out-of-the-box Interactive application the pushData call may exclude the specific template In this case the Interactive user will be prompted to select a Template

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 300

Upgrading 3X to 4X SOAP services

If you have developed your own Interactive application and opt to use the pushData method you must specify the template in advance to ensure data is mapped correctly

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 301

Notices

Copyright

Copyright copy2018 Pitney Bowes Inc All rights reserved

This publication and the software described in it is supplied under license and may only be used or copied in accordance with the terms of such license The information in this publication is provided for information only is subject to change without notice and should not be construed as a commitment by Pitney Bowes Inc (PBS) To the fullest extent permitted by applicable laws PBS excludes all warranties representations and undertakings (express or implied) in relation to this publication and assumes no liability or responsibility for any errors or inaccuracies that may appear in this publication and shall not be liable for loss or damage of any kind arising from its use

Except as permitted by such license reproduction of any part of this publication by mechanicalelectronic recording means or otherwise including fax transmission without the express permissionof PBS is prohibited to the fullest extent permitted by applicable laws

Nothing in this notice shall limit or exclude PBS liability in respect of fraud or for death or personal injury arising from its negligence Statutory rights of the user if any are unaffected

TALO Hyphenators and Spellers are used Developed by TALO BV Bussum Netherlands Copyright copy 1998 TALO BV Bussum NL TALO is a registered trademark reg

Encryption algorithms licensed from Unisys Corp under US Patent No 4558302 and foreign counterparts

Security algorithms Copyright copy 1991-1992 RSA Data Security Inc

Copyright copy DL Technology Ltd 1992-2010

Barcode fonts Copyright copy 1997 Terrapin Solutions Ltd with NRB Systems Ltd

This product includes software developed by the Apache Software Foundation (httpwwwapacheorg)

Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex Software Inc

This product contains the Regex++ library Copyright copy 1998-2000 Dr John Maddock

PostScript is a trademark of Adobe Systems Incorporated

PCL is a trademark of Hewlett Packard Company

Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc (httpwwwbouncycastleorg)

ICU License - ICU 181 and later Copyright (c) 1995-2006 International Business Machines Corporation and others All rights reserved

Permission is hereby granted free of charge to any person obtaining a copy of this software andassociated documentation files (the Software) to deal in the Software without restriction includingwithout limitation the rights to use copy modify merge publish distribute andor sell copies of theSoftware and to permit persons to whom the Software is furnished to do so provided that the abovecopyright notice(s) and this permission notice appear in all copies of the Software and that both theabove copyright notice(s) and this permission notice appear in supporting documentation

Matra 08b (httpmatrasourceforgenet) The contents of this documentation are subject to the Mozilla Public License Version 11 (the License) you may not use this documentation except in

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 303

Copyright

compliance with the License You may obtain a copy of the License at httpwwwmozillaorgMPL Software distributed under the License is distributed on an AS IS basis WITHOUT WARRANTY OF ANY KIND either express or implied See the License for the specific language governing rights and limitations under the License Otherwise all product names are trademarks or registered trademarks of their respective holders

This product contains Sycamore version number 039 which is licensed under the MIT license The license can be downloaded from httpsgithubcomryexleysycamoreblobmasterdistrequesterjs The source code for this software is available from httpsgithubcomryexleysycamore

This product contains Underscore version number 152 which is licensed under the MIT license The license can be downloaded from httpsgithubcomjashkenasunderscoreblobmasterLICENSE The source code for this software is available from httpunderscorejsorg

This product contains Activiti version number 5170 which is licensed under the Apache license The license can be downloaded from httpactivitiorgfaqhtmlWhyApacheLicense The source code for this software is available from httpactivitiorgdownloadhtml

This product contains Bootstrap version number 336 which is licensed under the MIT license The license can be downloaded from httpgetbootstrapcomgetting-startedlicense-faqs The source code for this software is available from httpgetbootstrapcomgetting-starteddownload

This product contains Commons-Configuration version number 110 which is licensed under the Apache license The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpcommonsapacheorgpropercommons-configuration

This product contains jQuery version number 1102 which is licensed under the MIT license The license can be downloaded from httpsjqueryorglicense The source code for this software is available from httpjquerycomdownload

This product contains Json2JSON-js 2015-05-03 The source code for this software is available from httpsgithubcomdouglascrockfordJSON-js

This product contains Kendo UI Core version number 20141318 which is licensed under the Apache2 license The license can be downloaded from httpsgithubcomtelerikkendo-ui-core The source code for this software is available from httpwwwtelerikcomdownloadkendo-ui-core

This product contains Knockout-AMD-Helpers version number 074 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-amd-helpersblobmasterLICENSE The source code for this software is available from httpsgithubcomrniemeyerknockout-amd-helpers

This product contains Knockout version number 340 which is licensed under the MIT license The license can be downloaded from httpsgithubcomknockoutknockoutblobmasterLICENSE The source code for this software is available from httpknockoutjscomdownloads

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 304

Copyright

This product contains Knockout-DelegatedEvents version number 050 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-delegatedEventslicense The source code for this software is available from httpsgithubcomrniemeyerknockout-delegatedEvents

This product contains Knockout-Kendo version number 081 which is licensed under the Apache2 license The license can be downloaded from httprniemeyergithubioknockout-kendoindexhtml The source code for this software is available from httprniemeyergithubioknockout-kendo

This product contains LDAP Synchornization Connector version number 210 which is licensed under the BSD license The license can be downloaded from httptoolslsc-projectorgprojectslscrepositoryentrylsctrunkLICENSEtxt The source code for this software is available from httplsc-projectorgwikidownload

This product contains Momentjs version 2120 which is licensed under the MIT license The license can be downloaded from httpsgithubcommomentmomentblobdevelopLICENSE The source code for this software is available from httpmomentjscom

This product contains Quartz-Scheduler version number 221 which is licensed under the Apache license The license can be downloaded from httpquartz-schedulerorg The source code for this software is available from httpquartz-schedulerorg

This product contains RequireJS-Text version number 2014 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomrequirejstextblobmasterLICENSE The source code for this software is available from httpsgithubcomrequirejstext This product contains Solr-Solrj version number 472 which is licensed under the Apache LicenseThe license can be downloaded from httpsmaven-repositorycomartifactorgapachesolrsolr-solrj472pom The source code for this software is available from httpwikiapacheorgsolrSolrj This product contains RequireJS version number 220 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomjrburkerequirejsblobmasterLICENSE The source code for this software is available from httprequirejsorgdocsdownloadhtml

This product contains Apache ActiveMQ version number 5132 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorg

This product contains Apache NMS version 172 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorgnms

This product contains Apache Commons DBCP version number 122 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpscommonsapacheorgpropercommons-dbcp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 305

Copyright

This product contains OWASP Encoder version number 12 which is licensed under the BSD license The license can be downloaded from httpsopensourceorglicensesBSD-3-Clause The source code for this software is available from httpswwwowasporgindexphpOWASP_Java_Encoder_Project

This product contains Narayan version number 5213Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpnarayanaio 0

This product contains Logback version number 113 which is licensed under the EPL and LGPL licenses version numbers 10 and 21 The license can be downloaded from httplogbackqoschlicensehtml The source code for this software is available from httplogbackqosch

This product contains JBoss Weld version number 233Final which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20The source code for this software is available from httpweldcdi-specorg

This product contains IronJacamar version number 132Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpwwwironjacamarorg

This product contains Hibernate version number 507Final which is licensed under the Apache and LGPL license version numbers 20 and 21 The license can be downloaded from httphibernateorgcommunitylicense The source code for this software is available from httphibernateorgorm

This product contains Apache Tomcat version number 8030 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20 The source code for this software is available from httptomcatapacheorg

This product contains Apache Procrun version number 1015 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpcommonsapacheorgpropercommons-daemonprocrunhtml

This product contains URLRewriterFilter version number 403 which is licensed under the BSD 2-Clause license The license can be downloaded from httpcdnrawgitcompaultuckeyurlrewritefiltermastersrcdocmanual40introductionhtmllicenseThe source code for this software is available from httpwwwtuckeyorgurlrewrite

This product contains FasterXML Jackson version number 266 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpsgithubcomFasterXMLjackson

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 306

Copyright

This product contains Log4net The license for log4net can be downloaded from httpswwwapacheorglicensesLICENSE-20 The source code for this software is available from httpsloggingapacheorglog4netdownload_log4netcgi

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 307

pitney bowes 0 3001 Summer Street Stamford CT 06926-0700

USA

wwwpitneybowescomus

copy 2018 Pitney Bowes Software Inc All rights reserved

  • Table of Contents
  • Overview
    • Overview
    • Template designer
      • About the template
        • Resources
            • EngageOne Server components
              • About Web services
              • Web service descriptions
                • EngageOne administration
                • EngageOne Interactive
                • Interactive document process flow
                  • Selecting a template
                  • Save and submit
                  • Delivering a document
                      • Integrating with EngageOne SOAP
                        • OnDemand
                        • Interactive
                        • Data push processing in EngageOne Interactive
                          • Mapping options
                          • Data push parameters
                          • Accessing services
                          • How mapping works
                          • Data map XML schema and examples
                            • XPath
                              • ElementMap example
                              • ListMap example
                              • RepeatMap example
                                  • EngageOne domains
                                    • User authentication
                                      • WS-Security
                                      • Legacy AuthContext
                                        • Code example
                                          • Obsolete flags
                                              • Data Push error handling
                                                • Code element error types
                                                  • Web services scenario medical insurance data integration
                                                    • Coordinate with template designer
                                                    • Define data push mapping
                                                    • Import data push map
                                                    • Creating the Web services
                                                        • Interactive Document Delivery
                                                        • Sample application
                                                          • Implement Deliver Document sample application
                                                          • Customize sample application
                                                          • Run sample application
                                                            • Notes
                                                                • OnDemand Document Delivery
                                                                  • Ways to authenticate
                                                                    • WS-Security
                                                                    • Legacy AuthContext
                                                                      • XForms
                                                                        • About XForms
                                                                        • XForms processors
                                                                        • XFormSDI Flow
                                                                        • XForms standard files
                                                                          • XHTML presentation file
                                                                          • XML instance file
                                                                          • XML schema file for the interactive data model
                                                                          • XML schema file for the non-interactive Designer data model
                                                                            • Data definition type and attributes
                                                                              • System Data Integration
                                                                                • SDI General Configuration
                                                                                • Using an XML file as a data source
                                                                                  • XML data source diagram
                                                                                  • XMLSystemDataLoader tasks
                                                                                    • Using the Java callback interface
                                                                                      • Java callback interface process flow
                                                                                        • Feature support for System Data Integration
                                                                                          • XForms model example
                                                                                            • Integration option 1 ndash XML data source
                                                                                              • Enabling the default system data loader
                                                                                              • Designing the template for System Data Integration
                                                                                                • Configure system data load user confirmation
                                                                                                • Configure system data load user confirmation read-only
                                                                                                • Configure system data load without user confirmation
                                                                                                • Preparing the system data XML
                                                                                                  • Example XML answer file
                                                                                                  • InteractiveDataModel element
                                                                                                    • Loading the system data XML
                                                                                                        • Integration option 2 ndash callback interface
                                                                                                          • Configure EngageOne Interactive to use custom system data loader
                                                                                                          • Implement a custom system data loader
                                                                                                            • Steps
                                                                                                            • Notes
                                                                                                              • Custom system data loader
                                                                                                                • Custom data loader interface
                                                                                                                • loadToSchema function
                                                                                                                • loadToView function
                                                                                                                • loadToInstance function
                                                                                                                  • Error handling
                                                                                                                    • SystemDataLoaderException class ndash custom fields
                                                                                                                      • errorcode
                                                                                                                        • systemDataLoaderMessagesproperties sample
                                                                                                                          • params
                                                                                                                          • result
                                                                                                                          • message and cause
                                                                                                                            • SystemDataLoaderException constructor signature
                                                                                                                              • Sample implementation
                                                                                                                                • Compiling and packaging custom system data loader
                                                                                                                                • Configuring EngageOne Interactive system data settings
                                                                                                                                  • Additional features in SOAP
                                                                                                                                    • Trusted Connection
                                                                                                                                    • Template search
                                                                                                                                      • Searching templates by template property
                                                                                                                                        • Java sample
                                                                                                                                        • C sample
                                                                                                                                          • Searching templates with sorting and pagination
                                                                                                                                            • Java sample
                                                                                                                                            • C sample
                                                                                                                                              • Searching templates by template metadata
                                                                                                                                                • Java sample
                                                                                                                                                • C NET sample
                                                                                                                                                • Supported metadata field types
                                                                                                                                                  • Java sample
                                                                                                                                                  • C NET sample
                                                                                                                                                    • Write delivery information
                                                                                                                                                      • Write delivery information process
                                                                                                                                                        • Steps
                                                                                                                                                            • Managing the work queue
                                                                                                                                                              • Retrieving work items
                                                                                                                                                              • Retrieving work items with pagination
                                                                                                                                                              • Retrieving work items with sorting
                                                                                                                                                                • Updating work items
                                                                                                                                                                  • Updating the document delivery option
                                                                                                                                                                  • Updating work item status
                                                                                                                                                                  • Updating work item comments
                                                                                                                                                                    • Reassigning a work item
                                                                                                                                                                      • Retrieving document assignees
                                                                                                                                                                      • Reassigning a document
                                                                                                                                                                        • Deleting a work item
                                                                                                                                                                          • Perform a document delete
                                                                                                                                                                              • EngageOne notifications
                                                                                                                                                                                • Overview
                                                                                                                                                                                • Notification components diagram
                                                                                                                                                                                  • Diagram details
                                                                                                                                                                                    • Topics and queues
                                                                                                                                                                                    • Configuration settings
                                                                                                                                                                                      • Configuration settings (cont)
                                                                                                                                                                                        • Messages
                                                                                                                                                                                          • Notification message common properties
                                                                                                                                                                                            • Communication messages
                                                                                                                                                                                              • Communication published actions
                                                                                                                                                                                                • Batch messages
                                                                                                                                                                                                  • Accumulated batch messages
                                                                                                                                                                                                  • Non accumulated batch messages
                                                                                                                                                                                                    • Workflow messages
                                                                                                                                                                                                    • Consuming notification messages
                                                                                                                                                                                                      • Consume messages from an ActiveMQ queue or topic
                                                                                                                                                                                                        • Using other JMS implementations
                                                                                                                                                                                                          • Using a custom JMS connection factory
                                                                                                                                                                                                            • Sample message consumers
                                                                                                                                                                                                              • The comparison adapter plug-in
                                                                                                                                                                                                                • The custom plug-in implementation
                                                                                                                                                                                                                • Example implementations
                                                                                                                                                                                                                  • DocBridgereg Delta
                                                                                                                                                                                                                  • Simple comparison plug-in
                                                                                                                                                                                                                  • Command line adapter implementation
                                                                                                                                                                                                                    • Plug-in Installation and configuration
                                                                                                                                                                                                                      • Appendix A - Editor methods
                                                                                                                                                                                                                        • LoadContents
                                                                                                                                                                                                                        • SaveContents
                                                                                                                                                                                                                        • SpellCheck
                                                                                                                                                                                                                        • IsComplete
                                                                                                                                                                                                                        • IsModified
                                                                                                                                                                                                                        • GetVersion
                                                                                                                                                                                                                          • Appendix B - SOAP API
                                                                                                                                                                                                                            • Identifiers
                                                                                                                                                                                                                            • Search filter
                                                                                                                                                                                                                            • Promotion service
                                                                                                                                                                                                                              • createImportAssetsJob()
                                                                                                                                                                                                                              • getImportAssetsJob()
                                                                                                                                                                                                                              • createExportAssetsJob()
                                                                                                                                                                                                                              • getExportAssetsJob()
                                                                                                                                                                                                                              • getImportPreview()
                                                                                                                                                                                                                              • getAssetDependencies()
                                                                                                                                                                                                                                • Folder service
                                                                                                                                                                                                                                • Data push service
                                                                                                                                                                                                                                • Delivery management service
                                                                                                                                                                                                                                • Dictionary service
                                                                                                                                                                                                                                • Domain service
                                                                                                                                                                                                                                • Editor service
                                                                                                                                                                                                                                • Keymap service
                                                                                                                                                                                                                                • Metadata service
                                                                                                                                                                                                                                • Request status update service
                                                                                                                                                                                                                                • Security service
                                                                                                                                                                                                                                • Template service
                                                                                                                                                                                                                                • Workitem service
                                                                                                                                                                                                                                • Attachment service
                                                                                                                                                                                                                                • Workflow service
                                                                                                                                                                                                                                • Delivery service
                                                                                                                                                                                                                                  • Upgrading 3X to 4X SOAP services
                                                                                                                                                                                                                                    • Licensing changes
                                                                                                                                                                                                                                    • Security changes
                                                                                                                                                                                                                                      • Authentication with WS-Security
                                                                                                                                                                                                                                      • Role and access right enforcement
                                                                                                                                                                                                                                      • Role and access rights by service
                                                                                                                                                                                                                                        • WorkItem approval process not supported
                                                                                                                                                                                                                                        • DataPushServicemapData not supported
Page 3: EngageOne v4.4.8 Programmer's Reference Guide

8 - Appendix A - Editor methods

LoadContents 137

SaveContents 137

SpellCheck 138

IsComplete 138

IsModified 139

GetVersion 139

9 - Appendix B - SOAP API

Identifiers 141

Search filter 142

Promotion service 143

Folder service 164

Data push service 168

Delivery management service 170

Dictionary service 178

Domain service 180

Editor service 182

Keymap service 185

Metadata service 193

Request status update service 196

Security service 198

Template service 204

Workitem service 227

Attachment service 252

Workflow service 264

Delivery service 276

10 - Upgrading 3X to 4X SOAP

services

Licensing changes 297

Security changes 298

WorkItem approval process not supported 300

DataPushServicemapData not supported 300

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 3

1 - Overview EngageOne is an interactive document production system enabling the creation and delivery of high volume on demand and interactive customer correspondence

In this section

Overview 5 Template designer 5 EngageOne Server components 10 EngageOne administration 13 EngageOne Interactive 14 Interactive document process flow 14

Overview

Overview

Document templates and optional content objects are defined by the template designer in a core application called Designer and managed in the content repository These programs are made available to front-office users through a Web-based interface This interface allows users to create and modify a document in a controlled manner and distribute documents through various delivery channels as required

The EngageOne Interactive Web application uses the services provided by the EngageOne Web services interface to access the server functions of EngageOne

Template designer

Document templates are created by a template designer a user who defines the document and its interactions in Designer

A template consists of a traditional publication design along with interactive data definitions which describe the front office user interactions required to complete a document from that template

This involves designing the overall template and defining

bull The data prompts included in the document using the Interactive Editor bull Paragraph and content selection using optional content selections (Active Content) bull Free-form text to override content protection using editable paragraphs

For more information about these functions see the Designer Userrsquos Guide

The template designer allows the user to edit or enter free text as required in an EngageOne document design by selecting a section of text in a paragraph object and defining the text as editable Any text marked as editable can be changed by the user Text that is not marked as editable will be protected

In addition to the basic template the template designer can create optional content Property values are defined enabling them to be conditionally placed in an Active Content Group When Active Content is marked as interactive the user is dynamically presented with content choices to help them complete their document

Once the EngageOne template has been designed and data fields defined the template is named and published for EngageOne The XForm files that define the documents data model are included in the templatersquos Zip file

The process of importing these files into the EngageOne content repository using the EngageOne Administration client is called Template deployment

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 5

Overview

The interactive data model is defined and exposed using the W3C XForm standard The XForm can be used by the system integrator to push system data into the interactive document

Content repository

The content repository provides file storage and version control for EngageOne It houses the templates used to create documents supporting files needed for document composition and the document instances waiting for delivery

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 6

Overview

About the template

The template manifest (template_masterxml) describes template attributes and contents

The template manifest is made up of the following

Subfiles

The Subfiles section contains a list of files in the template Zip file and specifies each file type

Template composition

HIP files contain design layout logic and other resources required for generating publications These files are used by Generate

There are two types of HIP file publications and independently publishable active content

HIP

Publication files contain design layout and logic These files are used by the Interactive Editor

There are two types of PUB file template publications and independently publishable active content

PUB

XForms define electronic forms for collecting general purpose information XFRM

Instance data file

Initially this file contains default field values All values entered by the user will be saved in this file Free form text is stored in the HIP and PUB files not the instance file

INST

The instance file schema contains standard schema nodes and attributes The schema ensures data returned in the instance file is well-formed the right type and meets defined field criteria

SCHEMA

Image file required by the editor for display in the template IMG

XML representation of the Designer Publication ldquoSample Datardquo whether the original data is keyed data (for example single value decomposition) delimited (for example comma separated values) or on-demand XML The DATAMODEL file type appears only for non-interactive templates

DATAMODEL

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 7

Overview

Template composition

PREVIEW

PROMPTLOGIC

THUMBNAIL

PDF file appears for both interactive and non-interactive templates where Designer Publish for EngageOne has successfully generated a PDF ldquopreviewrdquo example of the Designer Publication

The PREVIEW file is generated using ldquoemergency replacementrdquo data where the Designer Publication data is incomplete and may not reflect the completed document PREVIEW file is available for the Interactive user to view a ldquoPreviewrdquo of the Template Document at the start of the ldquoEdit Communicationrdquo process

Files containing information used to prompt for and validate interactive template data when the ActiveX editor is not used

Scaled image representation of the first document Intended as a rough guide to the layout and content of the first document

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 8

Overview

Resources

The Resources section lists the dependencies of the template These can be of the following types

ACTCONT Active content

IMAGE Image used in the template

FONT Font used in the template

The following fragment demonstrates the structure of the template manifest

ltxml version=10 encoding=utf-8gtlt--XML meta file for EngageOne Template--gtltdocument ocmmetafile-vers=ocm-metafile10 ocm-vers=OCM TemplateV10gt ltOcmMetadatagt ltdocumentClassgt ltmetadata-field fieldName=Publish Date fieldValue=05-May-2009

defaultValue= fieldType=text gtltmetadata-field fieldName=Published By fieldValue=Administrator

defaultValue= fieldType=text gtltmetadata-field fieldName=Design Publication Name fieldValue=Basic

defaultValue= fieldType=text gtltdocumentClassgtltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=PUBgttemplatepubxltFilegtltFile type=XFRMgtd79f96b60b2a48ee9f59c8bed5655f86xformltFilegtltFile type=INSTgtd79f96b60b2a48ee9f59c8bed5655f86xmlltFilegtltFile type=SCHEMAgtd79f96b60b2a48ee9f59c8bed5655f86xsdltFilegtltFile type=IMGgtc52767b2d1824366b522589d550cb297pngltFilegtltSubfilesgtltResourcesgt ltRes type=ACTCONT name=Basic

guid=e06d8fc2009642ddb2740495af6bf785 gtltRes type=FONT name=Arial 11pt

guid=24e474cc2baa434cb7239457b6b90443 gtltRes type=IMAGE name=logobmp

guid=c52767b2d1824366b522589d550cb297 gtltResourcesgtltInputsgtltHIP path= gtltActiveContent path= gtltInputsgtltOcmMetadatagtltdocumentgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 9

Overview

EngageOne Server components

The Web services layer

bull Exposes EngageOne communication services to a custom built front office Web application or to the EngageOne Web application

The Business layer

bull Document management - template storage and retrieval (including version control) and work queues (document instance storage and retrieval)

bull Security management - supports direct integration with LDAP and Active Directory for user and group lists

bull Delivery Services - defines delivery channels and provides services to generate draft and final copy output

bull Event Monitor - monitors system health and tracks system activities Tracking information can be used for reporting

For example a report can specify how many times a template is used or how quickly a template is processed

bull Delivery channels - EngageOne delivery channels include print fax email SMS and archive

Document instances can be submitted for real-time delivery to a local printer

Output can be queued for EngageOne batch processing

About Web services

The EngageOne server exposes most of its API via Web services EngageOne Web services enable custom application integration with EngageOne server on any development platform supporting Web services

Components Requirements

Support for various bindings (SOAP 11) SOAP and Web services

Axis 2 or JAX-WS (recommended)

At least custom XML

Java clients

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 10

Overview

Components Requirements

Microsoft Windows Communication Foundation Framework

NET clients

Note Not all EngageOne Server Web services are WS-I compliant

bull There is an issue with MTOM attachments support using Axis2 as a client

In order to work around this issue updated client stubs are provided on the installation media under the samples folder These client stubs accommodate and correctly parse MTOM attachments If you use Axis2 and wish to use MTOM attachments you may opt to use these stubs

bull The services will continue to work without MTOM attachments The advantage to MTOM attachments is they can work with larger file sizes

Web services are backward compatible and client code should not need to be changed Any auto-generated client stub code based on a previous Web service release should be regenerated against the new Web services definitions (WSDLs)

Services are provided that allow a third part application to complete document flow starting from creation up to delivery

The diagram below shows the server components exposed as a Web service via an adapter The diagram details the exposed Web services a custom application could use to integrate with EngageOne

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 11

Overview

Web service descriptions

The following details EngageOne Web services

Delivery Management Service - search delivery channels and devices

Delivery service - work item preview and work item distribution

Dictionary service - search speller XML file

Domain service - search domain information

Editor service - transfer files from the content repository server by resource file ID

Keymap service - import keymaps

Metadata service - manage and retrieve document classes or metadata and configure metadata definitions

Security service - search user roles

Template service - template creation retrieval and search support

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 12

Overview

WorkItem service - work queue related functions

For example retrieve work items work item creation work item assignment approval and rejection functional support

In the EngageOne Web service runtime environment EngageOne Web services work with EngageOne applications using Simple Object Access Protocols (SOAP) In the application server environment a SOAP servlet is deployed as the requestresponse gateway

All EngageOne Web services are published in Web service Description Language (WSDL) format and are described by the following namespaces

Note Namespaces are used to avoid naming conflicts in XML tags ensuring uniqueness

bull httppbcomEngageOnewscommon bull httppbcomEngageOnewsmodel bull httppbcomEngageOnewsdeliveryManagement bull httppbcomEngageOnewsdelivery bull httppbcomEngageOnewsdictionary bull httppbcomEngageOnewsdomain bull httppbcomEngageOnewseditor bull httppbcomEngageOnewskeymap bull httppbcomEngageOnewsmetadata bull httppbcomEngageOnewssecurity bull httppbcomEngageOnewstemplate bull httppbcomEngageOnewsworkItem

EngageOne WSDL files are generated from the EngageOne Web service Java Interface

WSDL example files are included in the distribution media ltrelease-distributiongtsamplessoapwsdl

EngageOne administration

The EngageOne administrator uses a Web application to set up and configure the EngageOne environment

The Web application is delivered as part of the standard EngageOne server install

The EngageOne Administration Web interface supports managing folders templates and delivery channels

For security purposes role-based access and user roles are defined in EngageOne Administration Roles can be assigned to individual or a group of LDAP users

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 13

Overview

The EngageOne administer handles domain management license management and system diagnostics

For more details see the EngageOne Administration Guide

EngageOne Interactive

EngageOne Interactive is delivered with the EngageOne Server It provides a browser based interface for front-office workers to create customized documents EngageOne Interactive supports a widely distributed user base including remote users

For more information about working with EngageOne documents see the EngageOne Interactive Userrsquos Guide

In many cases a custom designed application might be more appropriate for addressing your business needs

If preferable to a fully featured implementation the Web services interface allows integration between EngageOne and your existing business systems

For more information about building your own interactive application see Integrating with EngageOne SOAP

Interactive document process flow

Note integration is not supported in this version of EngageOne Server workflow

The process flow starts with EngageOne fulfilling a request for a document in real time requiring user interaction to complete the request Data definitions are embedded in a template and create an underlying XForm The XForm is used to drive the prompts which gather data required to complete the document

Business driven data is retrieved or provided by your system integration program from the appropriate source

For more information see Integrating with EngageOne SOAP and System Data Integration

The following diagram illustrates the process flow

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 14

Overview

Selecting a template

A custom application would use the TemplateService Web service

The template service collects a list of templates from the content repository and presents the templates to the user All templates have a template ID which is used by all other calls

Templates can be identified by name Keep in mind that the template name is not unique and a search by name could return multiple templates

bull A document instance is created from a template by the editor The XForm is pushed to the custom system integration program which parses system attributes and populates system fields

For example the system may have executed an address lookup and populated form information The XForm is returned to the calling application for user interaction

Note a custom built Web application must adhere to the specification for interactive data prompt display Front end users can manually enter data for document completion

Editing is handled through

bull Form fields (generated from XForms or by the system integrator) bull The Interactive Editor component (supplied with EngageOne server)

Edits are stored in the answer file where they can be accessed by Generate when composing the final output documents Edits can be sent to the delivery process automatically without being saved

For more information see Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 15

Overview

Save and submit

When a document instance is saved the system data interactive input delivery channel selections and any other relevant information is saved in an answer file

The answer file is passed back to the EngageOne repository by the WorkItemService and saved as a new revision of a permanent document instance

The completed document is submitted

The reference to the permanent document instance and version is sent to the Document Server for final delivery

The document revision and template revision are referenced by the Document Server and any change will not affect what is delivered to the user The user may choose from the templates delivery options

Delivering a document

The Document Server receives delivery requests

The requests are queued and a job number is returned to the calling application The job number can be used for future requests about job status error tracking and audit information

The system queries the EngageOne server for available delivery channels

Available delivery channels are returned by the DeliveryManagementService Web service call

Returned data is filtered by available channels set up in the template configuration and by EngageOne Document server permissions

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 16

2 - Integrating with EngageOne SOAP This section provides an overview of using EngageOne Server Web services to integrate with other business systems

In this section

OnDemand 18 Interactive 18 Data push processing in EngageOne Interactive 18 Interactive Document Delivery 32 Sample application 33 OnDemand Document Delivery 36

Integrating with EngageOne SOAP

OnDemand

Isolated services called by customer systems without an end user

Interactive

Graphical interfaces supporting stage by stage integration of EngageOne Server into existing tools and workflows

Data push processing in EngageOne Interactive

EngageOne Server includes an optional data push method This method can provide customer data that can be used to generate interactive documents

Data push works by pushing an XML data structure from your business systems to the EngageOne Server where it is ready for document instance creation The XML data structure is pushed to EngageOne Interactive using a Web service request

Data push can be used in conjunction with system data integration or in its place if the following requirements are met

bull You have no data to populate for drop-down lists free form text fields and any associated fields specified as key fields or visible on the XForm in your template

bull The data you push is complete bull Mapping is complete

To accomplish this create map files in an XML editor then import to EngageOne Server

Data push passes the data in any defined format then maps with one of the following options

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 18

Integrating with EngageOne SOAP

Mapping options

With a Push User

Without a Push User

Data push parameters

The parameters are

bull userId - user name

With a Template

bull Task set to ACTIVE_NEW status

bull User is automatically assigned

bull Work item is automatically created

bull Task set to ACTIVE_NEW status

bull Interactive prompts for user assignment

bull Work item is automatically created

Without a Template

bull Task set to NEW status bull User is automatically assigned bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull Task set to NEW status bull Interactive prompts for user assignment bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull password - userId password bull pushUserId - ID used to assign the task (optional) bull domainName - EngageOne domain name bull pushDataXML - source XML pushed data pushed bull mapId - data map identifier bull Template identifier - EngageOne Interactive template identifier (optional)

You can also pass authentication data for a user ID to push data on behalf of another user In this case the pushed data is associated with a Work Item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 19

Integrating with EngageOne SOAP

Accessing services

To create an instance of the stub you will need to know the Web service endpoint

Typically an EngageOne Web service endpoint is in the following format

httpltengageone-server-hostgtltserver-portgtEngageOneWSltweb-service-namegt

Where

bull ltengageone-server-hostgt the host name where EngageOne server is deployed

bull ltserver-portgt the port where the EngageOne Server Web services are accessible

bull ltweb-service-namegt the EngageOne Web service to invoke

How mapping works

The data map XML schema depends on your business data structure

Data maps are based on XML files that are loaded in EngageOne Server These data maps describe the data element associations in business data during a data push event to the corresponding answer file entries The data mapper uses data maps to map element names from a single data map for multiple EngageOne data formats However a single element name can only be mapped in one way

There are three methods for mapping data element mapping list mapping and repeat mapping

Important information about data maps

bull Map names are independent of the XML file used to import the XML structure bull Map files can be stored anywhere on your network and imported using the Data Map tab bull Data map names are unique due to the way map IDs are formed and must be unique within a domain

The diagram below shows how the data mapper works with data maps and answer files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 20

ltPubllcaliongt

lt lrs ~am gtltlrs ~ m gt

ltL slh ~egtltL s t amegt

ltmiddotr1 Llegtlt11 tlegt

ltPu lie tlongt

ltdat gt

Data Pust XML Mapper

le

ltEublicacion

ltvar name foo gtbarltvargt

ltvar name= blah gtduhltvargt

ltvar n me= huh gtltv rgt

Map File

(xyuml)

ltFirstNam gtbarltFirstNamegt lt~astNarn gtduhlt~ascNamegt

ltTitlegtltTi l gt

ltddtdgt ltPublicationgt

ltJaLaP sh 1 p ma p d=~xyzbullgt ltL slMap am = daLadaL xpaLh=lt na n gt

ltE menu-iap srcxraL = var- r1am = roo La~~ LXPaL = F rsLNam gt ltF m nLMap srcXPaL = va- am= lc1h larg tXPaL = LclSL Nam gt ltEemencMap srcXPa h var ~amec h middoth arge xea h l~ _e gt

ltla a stMapgt

Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 21

Integrating with EngageOne SOAP

Data map XML schema and examples

A good understanding of the data map XML schema is key to integrating data push methods between your business systems custom applications EngageOne Interactive and EngageOne Server

The data map XML schema uses XPath annotation for determining source and target elements in pushed XML data

The data map XML schema is located in

ltrelease-distributiongtsamplesdata-map-schema

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 22

Integrating with EngageOne SOAP

XPath

XPath is a language designed for finding information in an XML document

There are three ways to use XPath to determine the source and target elements for data mapping The source element comes from the pushed XML data specified to the Web service or the EngageOne Interactive URL The target element is the template answer XML file

The three types of mapping in the XML schema are ElementMap ListMap and RepeatMap

bull ElementMap maps a single data element from pushed XML data to a single element in an answer XML file

bull ListMap maps multiple data elements from pushed XML data to multiple elements in an answer XML file

bull RepeatMap maps repeating data elements from pushed XML data to repeating elements in an answer XML file

A single map XML file can have zero or more element maps zero or more list maps and zero or more repeat maps

Nest ElementMap ListMap and RepeatMap elements to define the source and targe file hierarchy

Using XPath annotation you can write expressions for the source element in the pushed XML data and the target element in the answer XML file

Note If you use namespaces in your pushed XML data you must declare standard XML namespaces in your data map

ElementMap example

ltpElementMap srcXPath=datadatum[name=String 1]targetXPath=InteractiveDataModelPublicationString2gt

The srcXPath attribute contains the XPath expression that identifies the source element in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination element in the answer XML file

In this example the source element is identified as the ltdatumgt tag where the name attribute has the value lsquoString1rsquo

The target element is identified as the ltString2gt element under the ltPublicationgt section of the answer XML file

ListMap example

ListMap is more complex

For example

ltpListMap name=datadatum xpath=name gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 23

Integrating with EngageOne SOAP

In this example the XPath expression ldquodatadatumrdquo identifies multiple elements in the pushed XML data For each of these elements the name attribute identifies the target element name in the answer XML file

For example if the pushed XML data had the following

ltdatagt ltdatum name=rdquoString1rdquogtFredltdatumgtltdatum name=rdquoString2rdquogtJonesltdatumgt

ltdatagt

The above example would identify both ltdatumgt elements from the pushed XML data It would copy ldquoFredrdquo into the ltString1gt element of the ltInteractiveDataModelgt of the answer XML file and copy ldquoJonesrdquo into the ltString2gt element of the ltInteractiveDataModelgt

Using a single ListMap you can copy over multiple pieces of data

RepeatMap example

The third approach is to use RepeatMap The RepeatMap element allows you to define a set of repeating elements from the source XML file and copy them to repeating elements in the target XML file

For example

ltRepeatMap srcXPath=mydatadata1targetXPath=InteractiveDataModelPublicationNestedRepeatingGroupParentgt

ltElementMap srcXPath=name targetXPath=NamegtltRepeatMap srcXPath=data2 targetXPath=NestedRepeatingGroupChildgtltElementMap srcXPath=time targetXPath=TimegtltElementMap srcXPath=num targetXPath=NumbergtltRepeatMapgt

ltRepeatMapgt

The srcXPath attribute contains the XPath expression that identifies the source repeating elements in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination repeating elements in the answer XML file

Inside RepeatMap nested ElementMap and ListMap are used to map data elements RepeatMapcan be nested as well Typically the XPath expressions used by a nested map are relative

In this example in the srcXPath of the first ElementMap name is relative to the srcXPath of its parent RepeatMap mydatadata1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 24

Integrating with EngageOne SOAP

EngageOne domains

Note as of the 4X version of the software domains are known as communities

EngageOne separates data into domains A domain represents a line of business department or section in a business environment

Domains are configured by a system administrator at installation time Once installed they can be managed and adjusted System users will be assigned various roles on a per-domain basis

When integrating with SOAP services the domain the username and password must be included in the request

User authentication

EngageOne Server supports two authentication mechanisms

bull WS-Security - industry and SOAP standard

The recommended authentication method

bull AuthContext - custom element in the SOAP request

This authentication method has been deprecated It is used for backwards compatibility with previous versions of the software

WS-Security

WS-Security (Web Services Security) is an industry standard that addresses security when data is exchanged as part of a Web service This authentication is implemented on all EngageOne Server SOAP services at the userid and password level

Legacy applications may choose not to use this type of authentication authenticating instead through the backwards-compatible AuthContext mechanism described below

New applications should leverage this authentication and disable the AuthContext mechanism

With WS-Security use the ltcomcommunitygtltcomcommunitygt element for the domain request

Legacy AuthContext

Every operation will include the AuthContext element AuthContext needs to contain UsernameToken or SessionToken elements

UsernameToken and SessionToken are mutually exclusive If the request contains SessionToken UserNameToken cannot be specified

Note When a request does not include the SessionToken element the server will expect the UsernameToken element to check authentication If the UsernameToken is valid the

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 25

Integrating with EngageOne SOAP

server will generate a new SessionToken that will be passed back to the client Subsequent requests can use the returned SessionToken instead of the UsernameToken

By default the SessionToken will expire after 30 minutes The timeout length can be configured via the session_timeout tag of the ltinstallation_rootgtcoreconfconfig-settingsxml file after EngageOne has been installed

If the SessionToken has expired a SOAP fault will occur with error code -6 Repeating the call that failed with a valid UsernameToken will allow the call to succeed and generate a new SessionToken The new SessionToken will be valid for an additional 30 minutes

Code example

ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongt optionalltcomondemandgtfalseltcomondemandgt optional

ltcomUsernameTokengtltcomauthContextgt

Obsolete flags

onDemand

The onDemand element was used to control licensing options in previous versions of the software We recommend non-legacy customers treat this element as optional and avoid using it

transientSession

The transientSession element was used to indicate the current call should not create a persistent session We recommend non-legacy customers treat this element as optional and avoid using it

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 26

Integrating with EngageOne SOAP

Data Push error handling

Error messages are contained in the SOAP Web service detail response Error messages are localized based on the server locale

To support localized error messages the SOAP details contains an errorCode element the client application can use to translate the error message This is based on the error code returned

Following is an example of a SOAP response from the server containing an error

ltxml version=10 encoding=UTF-8gtltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeader gtltenvBodygtltenvFaultgt ltfaultcodegtenvServerltfaultcodegtltfaultstringgtAuthentication failureltfaultstringgtltdetailgt ltServiceFault xmlns=httppbcomEngageOnewscommongtltcodegt-1ltcodegtltmessagegtAuthentication failureltmessagegtltServiceFaultgt

ltdetailgtltenvFaultgtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 27

Integrating with EngageOne SOAP

Code element error types

The code element in the SOAP fault is mapped to the following error types

Code Error Type

-1 General failure

-2

-3

Illegal argument

Invalid identifier

-4 Missing required argument

-5

-6

Unsupported operation

Session timeout

Message

bull failed to find Delivery Item

bull failed to deliver document bull failed to delete Delivery Item

bull failed to preview Template

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to resume Delivery Item

bull failed to suspend Delivery Item

bull failed to update Delivery Item

Never returned

bull failed to load subfiles (for example HIP) bull failed to find template

bull failed to find workItem

bull failed to find workItem preview

bull failed to preview because of current status (active-new or active-incomplete)

bull empty request bull missing delivery item identifier delivery options identifier template authContext workItemID HIP Property answer

Never returned

expired userContext

The message element is a string that explains the error details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 28

Integrating with EngageOne SOAP

Web services scenario medical insurance data integration

You work for an insurance provider as a data integration analyst You have been tasked with developing a custom system data integration program that collects key information about clients and additional client data from various back-end systems

This information populates an XML instance that is passed to the EngageOne server for document composition When data is pushed to the server the template and other identifiers are specified When the end-user launches EngageOne Interactive the work item based on the specified template is available

The first document composition activity that will be supported is email notification to plan members or their dependents who may be subject to coordination of benefit requirements

The following is a sample of data from the data source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 29

Integrating with EngageOne SOAP

Coordinate with template designer

The next step is to coordinate with the template designer and define the Interactive Data Model field names for associated document composition template

Typically either the data integration analyst provides the field names to the template designer or the template designer provides a list of field names to the analyst You will also need authentication information for the EngageOne server

Define data push mapping

Based on field name assignments the next step is to map the fields from your data source to the Interactive Data Model field names

The mapping is defined in a data push map file The mapping function allows any valid XML input structure to be mapped to the Interactive Data Model XML structure

Because of the structure of your input data and design of the template you decide to use ElementMap to map a single data element from the pushed XML data to a single element in an answer XML file

The field names received from the template designer are the same as the field names in the source data except the template designer is using a field named COB to represent the Coordination_of_Benefits data from the source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 30

Integrating with EngageOne SOAP

Import data push map

Name the map file MyDataPush_COBxml

You import the mapping file into EngageOne Administration

For more information see the EngageOne Administration Guide

Creating the Web services

Using Data Push Web services you can build a custom integration application and create thefollowing

1 Use any JAX-WS compliant client framework such as Axis2 to create Web service client stubs based on the pushData Web service

2 Use the client stubs to formulate a pushData request to pass the Data Push XML data to EngageOne Server with the template identifier and map name (mapId in the service definition)

3 Invoke the Web service using the client stubs you created 4 Handle the response from the Web service invocation 5 Test the custom system data integration application by passing a test XML instance Ask the

template designer or an EngageOne Interactive user to log in and verify that the work item is available

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 31

Integrating with EngageOne SOAP

Interactive Document Delivery

The most important feature of any interactive document delivery application is the ActiveX editor The ActiveX editor allows free form communication editing with a high degree of fidelity between the view presented while editing and the finished communication The editor is embedded in EngageOne Interactive and is available on the installation media

bull The ActiveX editor requires services to retrieve and save the associated files

The deliver-document sample application demonstrates how this can be achieved

bull If you build deploy and run the sample application you will progress through a series of pages

The first page prompts you to choose a lsquothemersquo for the pages

bull Then a login prompt displays

Once logged in choose a template and a delivery option from the two lists

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 32

Integrating with EngageOne SOAP

Sample application

The sample application included in the release distribution is a simple Java Server Faces application

This application uses the Mojarra implementation PrimeFaces for the UI components and a Java servlet to interact with the ActiveX control

The sample application is made up of two parts

1 The view (XHTML files) define the display elements

Included with the view files are controllers (java files) that define the interaction between the user and the views

2 The Java servlet provides the ActiveX editor with the required content then saves changes This functionality is provided by GET and PUT methods respectively

bull In the sample application the EditorServletjava file defines the servlet and its GET and PUT methods

bull The GET method takes templateId WorkItemId and domain name as URL parameters

These parameters are used to make SOAP calls to the EngageOne Server and retrieve the required files The retrieved files are zipped and passed to the ActiveX control

bull The PUT method takes the modified files as a Zip and passes the contained file to the EngageOne SOAP services These are written back to the EngageOne Server

bull The BaseURL and serverURLs will need to be defined for your implementation of the servlet

You can implement the servlet for your application in the way shown in the sample file or you can select a different approach In either case you will need to provide service end-points for the PUT and GET methods when launching the ActiveX control

Implement Deliver Document sample application

The sample application provides an example using EngageOnes SOAP services to query existing objects such as templates and delivery options These objects will be used with user input to generate documents that can be viewed or download through a browser

Note

bull These instructions are taken from a READMEtxt file located in the installation files in the samplesdeliver-document directory

bull The deliver_documentwar file is included in the installation files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 33

Integrating with EngageOne SOAP

Quick start

Use the deliver_documentwar file

Copy deliver_documentwar to the webapps directory of your Tomcat server

Note

bull deliver_documentwar may work with other servers It has been tested on Tomcat bull For best results use a clean copy of Tomcat with no other Web applications installed

Customize sample application

1 Edit the webWEB-INFdeliver-documentproperties file Replace compbsamplessoapurl with the server URL The Web application may be run from any server

2 Build the package with mvn clean package See httpsmavenapacheorgguidesintroductionintroduction-to-the-lifecyclehtml for more information about using Maven A deployable WAR file will be located targetdeliver_documentwar

3 Copy the WAR file to the webapps directory of the Tomcat server

Run sample application

1 Restart the Tomcat server Access the sample application httplthostname8080gtdeliver-documentLoginxhtml

bull Change lthostname8080gt above to match the correct hostname bull The Settings page displays

2 If appropriate choose a theme 3 Log in to the application

The sample application is ready to be used

Notes

bull You may set the property compbsamplessoapurl as a JVM property (-D) to override the server location

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 34

Integrating with EngageOne SOAP

bull This sample application reference shows how to use EngageOne services in a modern application environment Improvements can be made in the area of session management security etc Please follow your own best practices

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 35

Integrating with EngageOne SOAP

OnDemand Document Delivery

The most common goal for this use case is to create a single communication from a template This is illustrated by walking through an example for generating a PDF

At the highest level the steps are load a template load a delivery option deliver the document

At a slightly lower level the programmer will need to manage

bull Authentication for all calls bull Manipulation of the template files on disk bull A mechanism for the customization of a template into a document bull Any post-delivery activities (for example saving a delivered PDF to disk)

Before a document can be delivered the following must exist a domain a template and a delivery option

Note These prerequisites are not covered in the sample application

Ways to authenticate

There are two ways to authenticate

WS-Security

The recommended authentication method This type of authentication is implemented in all EngageOne Server SOAP services at the userid and password level

Legacy AuthContext

This authentication method has been deprecated

For details on authentication see User authentication

Typically a template will be retrieved for instantiation via the templateServicesearchTemplates call This object contains the files for a communication based on that template All data will necessarily be empty or set to defaults

Data entry in a communication can be customized in many ways

For the included sample application the files are saved to disk and a user is instructed to edit them manually Then the files are loaded (in this example from disk) into the Template field of a DeliverDocument object

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 36

Integrating with EngageOne SOAP

While it is not feasible to reproduce all relevant code from the sample project in this document what follows is a short excerpt edited for clarity It demonstrates the calls to deliver a document and save the PDF generated once the template customer data and delivery option have been prepared

response = deliverydeliverDocument(doc)getDeliveryRequest()items = responsegetDeliveryItems()getDeliveryItem()item = itemsget(0)saveFile(path item)

The DeliveryItem object passed here to saveFile will return an InputStream via getInputStream and can be saved to a file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 37

3 - XForms EngageOne defines the data model for a template using the World Wide Web Consortium (W3C) XForms standard It is intended to provide a flexible device-independent mechanism for collecting information from users in a primarily Web-based environment

In this section

About XForms 39 XForms processors 41 XFormSDI Flow 42 XForms standard files 43 Data definition type and attributes 62

XForms

About XForms

The following are primary benefits of XForm ndash for more details see wwww3orgMarkUpForms2003xforms-faqhtml

bull XForms has been designed to allow much to be checked by the browser such as types of fields being filled in that a particular field is required or that one date is later than another This reduces the need for round trips to the server or for extensive script-based solutions and improves the user experience by giving immediate feedback to what is being filled in

bull All dates in the WSDLs should be using the XML Schema date datatype which defines a standard date format YYYY-MM-DD This is not a propriety implementation For more information you can refer to the specification at wwww3orgTRxmlschema-2date

bull XForms is properly integrated into XML it is in XML the data it collects in the form is XML it can load external XML documents as initial data and can submit the results as XML Including the user in the XML pipeline means you can have end-to-end XML right up to the users desktop

bull XForms uses a number of existing XML technologies such as XPath for addressing and calculating values and XML Schema for defining data types This has a dual benefit ease of learning for people who already know these technologies and the ability for implementation to use off-the-shelf components to build their systems

bull The same form can be delivered without change to a traditional browser a PDA a mobile phone a voice browser and even Instant Messenger This greatly eases providing forms to a wide audience since forms only need to be authored once

bull It is much easier for the author to create complicated adaptive forms without having to resort to scripting because XForms uses declarative markup to declare properties of values and to build relationships between values

bull XForms has been designed so that it will work equally well with accessible technologies as with traditional visual browsers

XForms greatly improves on the HTML form approach by separating the purpose from the presentation specifically what the form does and how it looks It achieves this separation of concerns by adopting the Model-View-Controller (MVC) pattern

The data to be collected by the form is known as instance data and the XForms model describes the structure of the instance data in addition to constraints on that data and submissions Document navigation workflow auto-fill and pre-fill form applications are supported through the use of instance data The view of the XForm describes the controls to be used and which items of data they are bound to The controller is the XForms processor in use which coordinates events in the system

The fragment below is an XForm page which demonstrates these different entities

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 39

XForms

The instance element serves as a container for the initial instance data These are the fields which the form controls will be bound to When the form is first displayed the values in this XML will be presented as the default values When the form is submitted this XML structure will be updated to contain the new values supplied by the user and the XML posted or otherwise handled accordingly

As an alternative to embedding the instance XML directly into the XForm file the instance element may simply refer to an external XML file using the src attribute XForms originating in EngageOne always point to an external instance XML file

The model element contains bind elements which define constraints on mappings to the instance data and a submission element which defines the action that will be taken when the form is submitted by the user

The presentation elements within the XForm page body contain the controls each of which possess references to the instance data

For more information on XForm technology see the W3C XForm wiki page httpwwww3orgMarkUpFormswiki The XForm Institute also provides an online book containing a comprehensive discussion of this technology at httpxformsinstitutecomessentialsbrowseindexphp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 40

XForms

XForms processors

To integrate with XForms you need to choose an appropriate XForms processor for your application Here is a short list of XForms processors both free and commercial that you may wish to investigate Please refer to their respective sites for specific installation and integration instructions

Orbeon Forms Orbeon Forms (formerly Orbeon Presentation Server (OPS)) is an open source forms solution that handles the complexity of forms typical of the enterprise or government It is brought to standard Web browsers (including Internet Explorer Firefox Safari and Opera) via the Ajax technology with no need for client-side software or plug-ins Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation optional and repeated sections always up-to-date error summaries PDF output full internationalization and controls like auto-completion tabs dialogs trees and menus Orbeon Forms already supports part of the XForms 11 specification

Jadu XForms allows you create accessible and XML enabled online forms for integration with payment and CRM systems

Open Office XForms is integrated in Open Office

Libre Office XForms is integrated in Libre Office

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 41

XForms

XFormSDI Flow

KEYFIELD NON-KEYFIELD

visible visible 1stXForm 2nd XForm

F F F F SDI is invoked then editor displays

F T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

T F T F User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then editor displays

T T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

Rules

1 If any visible fields then display 1st Xform with any keyfields displayed (even if there are no visible keyfields) 2 SDI is always invoked 3 If any visible non-key fields then display 2nd XForm

Data push rules

1 If SDI has not been invoked on a work item created via DP (ie status = Active New) then SDI processing must occur

2 If all key fields are populated via DP then skip 1st Xform (overrides rule 1 above)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 42

XForms

XForms standard files

The XForms standard main components are the files used by the Interactive Editor to drive all user interactions These include an XHTML presentation file XML instance file and an XSD schema definition file These files are used by the Interactive Editor to drive all user interactions and can be used for integration purposes to collect system data from a front-end business system The XForms files can also be opened by a standard XForms processor in order to present a more traditional Web-based eForm data capture interface as part of an application

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 43

XForms

XHTML presentation file

The XHTML presentation file contains the defined fields together with related attributes of the interactive data presented in the EngageOne Interactive Editor during document completion Since this file conforms to the W3C XHTML standard the defined data types and the available attributes are included in the XHTML standards For more information on XHTML visit the W3C Web site

The following is an example of an XHTML presentation file

lt-- XForms and Orbeon Namespaces --gt ltxhtmlhtml xmlnsxhtml=httpwwww3org1999xhtmlxmlnsev=httpwwww3org2001xml-eventsxmlnsf=httporbeonorgoxfxmlformattingxmlnswidget=httporbeonorgoxfxmlwidgetxmlnsxforms=httpwwww3org2002xformsxmlnsxs=httpwwww3org2001XMLSchemaxmlnsxxforms=httporbeonorgoxfxmlxformsgt

lt-- Header section --gt ltxhtmlheadgt ltxhtmltitlegtInteractiveDataModelltxhtmltitlegt

lt-- Xform model section --gt ltxformsmodelgt

lt-- Specifies actual instance fileReplace with actual Instance filename --gt ltxformsinstance src=57861025010e462fa5acbde4fe0ecf90xmlgt

ltndash- This specifies how the results of the form are to be submitted By default it specifies the put mechanism andthename of theinstance file as the action (target file) In addition a submit control must always be added to the view referencing the ID of thesubmission elementReplace with actual instance filename --gt ltxformssubmission action=57861025010e462fa5acbde4fe0ecf90xml id=main_submission method=putgt

lt-- Bind section These bind the interactive data definition to a set of attributes --gt ltxformsbind nodeset=InteractiveDataModelPublicationCustomerName

readonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerAddressreadonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerCity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 44

XForms

readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerStatereadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerZip readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationPolicyNumberreadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationClaimantNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceSourcereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceDatereadonly=false() required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationPhysicialNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationServiceDatereadonly=false()required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentNamereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentTitlereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationRecipientreadonly=true() required=false() type=xsstringgt

ltxformsbind

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 45

XForms

nodeset=InteractiveDataModelPublicationDeliveryInformationEmailToAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailFromAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailSubjectreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailBodyreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationFaxNumberreadonly=false() required=false() type=xsstringgt

ltxformsmodelgtltxhtmlheadgt

lt-- XForms View section(XHTML body) --gt ltxhtmlbodygt

ltndash- User interface control for the Interactive Data Definition in the

Model section ndash-gt span style=displaynonegt

ltndash- User interface control for the Interactive Data Definition in the Model section ndash-gt

ltxformsinput ref=InteractiveDataModelPublicationCustomerNamegtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangt

ltndash- Separates controls in XForms browsers or processors for layout purposesndash-gtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegt

ltxformsinput ref=InteractiveDataModelPublicationCustomerAddressgt

ltxformslabelgtltxformslabelgtlt xformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 46

XForms

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerCitygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerStategtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegtltndash- May contain the followingsections Input ndash choice validation is not specified it is only applied to FieldGroup Field and Delivery Information

Select1 ndash used for Single Selection attribute for the specifieddefinition

Select ndash used for Multi-Selection attribute for the specified Definition ndash-gt

ltxformsinputref=InteractiveDataModelPublicationCustomerZipgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPolicyNumbergt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationClaimantNamegt

ltxformslabelgtSelect the claimantltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 47

XForms

ltxformslabelgtFredltxformslabelgtltxformsvaluegtFredltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMarthaltxformslabelgtltxformsvaluegtMarthaltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTylerltxformslabelgtltxformsvaluegtTylerltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtWilmaltxformslabelgtltxformsvaluegtWilmaltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationCorrespondenceSourcegtltxformslabelgtSelect the correspondence sourceltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt ltxformslabelgtEmailltxformslabelgtltxformsvaluegtEmailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtFaxltxformslabelgtltxformsvaluegtFaxltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMailltxformslabelgtltxformsvaluegtMailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTelephoneltxformslabelgtltxformsvaluegtTelephoneltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondenceDategtltxformslabelgtSelect the correspondence dateltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 48

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPhysicialNamegtltxformslabelgtType the physician nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationServiceDategtltxformslabelgtSelect the date of serviceltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentNamegtltxformslabelgtType your nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentTitlegtltxformslabelgtType your titleltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationRecipientgtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailToAddressgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 49

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailFromAddressgt ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailSubjectgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailBodygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationFaxNumbergtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltxformssubmit submission=main_submissiongt ltxformslabelgtSubmitltxformslabelgtltxformssubmitgt

lt-- This specifies the submit control for the XForms --gt ltxhtmlbodygtltxhtmlhtmlgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 50

XForms

XML instance file

The XML file is referred to as the instance file because it contains the instance node of the XForms file This file contains the values for the definitions (fields repeating group fields group fields and IDE group fields) ndash see Data definition type and attributes on page 62 This file may initially contain only empty elements for each of the defined fields since values are only written if default values have been specified in the Interactive Data Editor After an eForm has been completed or the Interactive Editor has been used the values the user supplied for each field will be saved to the instance file (Note freeform text is stored in the pub and hip files not the instance file) Since this file conforms to the W3C XML standard the defined data types and the available attributes are included in the XML standards For more information on XML visit the W3C Web site

ltndash- This specifies the IDD title version number of schemaused Namespaces actual Schema fileReplace with actual Schema filename--gt ltxml version=10 encoding=UTF-8 standalone=yes gt- ltInteractiveDataModel xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=57861025010e462fa5acbde4fe0ecf90xsdgt

ltndash- Publication --gt - ltPublicationgt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt ltCustomerNamegtFred JonesltCustomerNamegtltCustomerAddressgt123 High StreetltCustomerAddressgtltCustomerCitygtBelguimltCustomerCitygtltCustomerStategtWIltCustomerStategtltCustomerZipgt53021ltCustomerZipgtltPolicyNumbergt254320982ltPolicyNumbergtltClaimantNamegtFredltClaimantNamegtltCorrespondenceSourcegtFaxltCorrespondenceSourcegtltCorrespondenceDategt2007-12-22ltCorrespondenceDategtltPhysicialNamegtDr JamesltPhysicialNamegtltServiceDategt2007-12-02ltServiceDategtltCorrespondentNamegtyour nameltCorrespondentNamegtltCorrespondentTitlegtyour titleltCorrespondentTitlegt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt -ltDeliveryInformationgtltRecipient gtltEmailToAddress gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 51

XForms

ltEmailFromAddress gtltEmailSubject gtltEmailBody gtltFaxNumber gt

ltDeliveryInformationgtltg1private gtltPublicationgtltInteractiveDataModelgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 52

XForms

XML schema file for the interactive data model

The XML schema definition or XSD describes the format of the XML document containing the data This is the file used to generate the Data Format and allows the final document to be generated from the updated instance file The XSD is also a W3C standard For more information on XML schema files visit the W3C Web site

The following is an example of an XML schema definition file

lt-- Namespace and version number of schema and default namespaces --gt ltxml version=10 encoding=UTF-8 standalone=yes gtltxsschema xmlnsxs=httpwwww3org2001XMLSchemaelementFormDefault=qualifiedxmlnsg1=httpwwwg1comOCMSchemagt

lt-- Interactive Data Model --gt lt-- Interactive Data Definition in Schema element format --gt ltxselement name=InteractiveDataModelgt ltxscomplexTypegtltxssequencegtltxselement name=Publicationgt ltxscomplexTypegt

ltxssequencegtltxselement g1keyfield=true g1sysdata=true

g1visible=false minOccurs=0 name=CustomerNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerAddressgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerCitygt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerStategt

ltxssimpleTypegtltxsrestriction base=xsstringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 53

XForms

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerZipgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=PolicyNumbergt

ltxssimpleTypegt

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ClaimantNamegtltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Fredgtltxsenumeration value=Martha ltxsenumeration value=Tylergtltxsenumeration value=Wilmagtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=CorrespondenceSourcegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Emailgtltxsenumeration value=Faxgtltxsenumeration value=Mailgtltxsenumeration value=Telephonegtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondenceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=PhysicialNamegt

ltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 54

XForms

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ServiceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentTitlegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement minOccurs=0 name=DeliveryInformationgtltxscomplexTypegtltxssequence maxOccurs=1gtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=Recipientgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailToAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailFromAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailSubjectgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 55

XForms

ltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailBodygtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=FaxNumbergt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxssequencegt

ltxsattribute name=Delivery use=optionalgtltxscomplexTypegtltxselementgtltxselement name=g1privategtltxssequencegt

ltxsattribute name=DOC1TREATASSOP type=xsboolean use=optionalgtltxscomplexTypegtltxselementgtltxssequencegtltxscomplexTypegtltxselementgtltxsschemagt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 56

XForms

XML schema file for the non-interactive Designer data model

XML schema file for the non-interactive Designer data model

The Designer file formats supported are

bull Keyed Record bull CSV Data Format bull Custom XML

Keyed Record

EngageOnerequires that Designer provides data format information when publishing a template where the publication implements a keyed record data format A data model file in the form of an XML structure is published with this type of publication along with the XML schema for the data model XML

For Example consider the following keyed record data block

CUSTOMER01001012831MrJohn Lawrence Lawrence 311Bellview Drive Gloucester VA 23061 VAMLIEPO CUSTOMER0207021999080119990831199909031999000178750000000000017875000000 0000020845 MOBILE0100009900000011210000000000011021 LONGDIST0100000495000003500000398400004829 INTERNET0100000000000049950000000000004995NADSL 384k 128k SUMMEND DETAIL00Mobile Service DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000 DETAIL00Long Distance ServiceDETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000

TheXML structure is generated by Designer to represent this data model Note the XML in this example is not complete

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegt

ltSource createdBy=DOC1Data Format Editor version=11date=2011-04-28gt

ltSchemaDefgt ltFileInfogt ltFileFormatgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 57

XForms

ltFixedWidthgt ltRecordDelimitergtCR+LFltRecordDelimitergt

ltFixedWidthgtltFileFormatgtltDefaultHandlinggtltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggtltFileInfogtltDataHierarchygtltRecordKeykey=MOBILE01gt

SVD data is represented by the ltFixedWidthgt tag in above XML structure

CSV Data Format

EngageOne will require that Designer provides data format information when publishing a template where the publication implements a CSV data format The following approach would address the requirements for EngageOne with regard to this format

A data model file in the form of an XML structure would be published with this type of publication along with the XML schema for the data model XML

For example consider the following CSV data block

Key Name Address Zip DRAmountRemarks001Smith101 Princes StreetED1 4DH DR8901Cash charges apply

001 Manish102 Princes StreetWD17 1UE CR5000Transport charges

Thefollowing XML structure would be generated by Designer to represent this data model

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltSource createdBy=DOC1Data Format Editor version=11date=2011-03-25gtltSchemaDefgt ltFileInfogt

ltFileFormatgt ltDelimitedgt ltFieldDelimitergtltFieldDelimitergtltQuotegtltQuotegtltFirstRowHeadingsgttrueltFirstRowHeadingsgtltRecordDelimitergtCR+LFltRecordDelimitergt

ltDelimitedgtltFileFormatgtltDefaultHandlinggt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 58

XForms

ltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggt

ltFileInfogtltDataHierarchygtltRecordKeykey=001gt

ltDataHierarchygtltDataStructuregt ltRecordkey=Key descr= hideRecord=true repeatType=Group

maxOccurs=0 minOccurs=0gt ltField name=Key Definition Field import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt07D6A8A528A9964C8E6E9F9075F5649CltFieldKeygt

ltFieldgtltField name= Name import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt0974502326B53548A3BE1BA86E85735BltFieldKeygt

ltFieldgtltField name= Address import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt8B33038F15BB5345B82D8148C562C27DltFieldKeygt

ltFieldgtltField name= Zip import=true required=truegtltStringgt

ltStrLengthgt0ltStrLengthgtltStringgtltFieldKeygt9D0E2B9C4C95F948B7BB829C7A91039FltFieldKeygt

ltFieldgtltField name= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt68AED90F9271A3448AA932EF84B42B59ltFieldKeygt

ltFieldgtltField name= Amount import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtF57F5D798949A54D929E796225CD726EltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 59

XForms

ltStrLengthgt8ltStrLengthgtltStringgtltFieldKeygtEBCC0E4E8CCD9347948694BC21C5A248ltFieldKeygt

ltFieldgtltRecordgt

ltRecordkey=001 descr=KeygtltFieldiskey=true name=Key Definition Field import=true

required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt7C8C32E0EC913D41A608D56E24443B82ltFieldKeygt

ltFieldgtltFieldname= Name import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtC246A928E5A4FF4D966541199954779FltFieldKeygt

ltFieldgtltFieldname= Address import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt15B78234DB357343BB72751CC638A5F3ltFieldKeygt

ltFieldgtltFieldname= Zip import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtE7E1245888D5E54794F9B8C6FE12B131ltFieldKeygt

ltFieldgtltFieldname= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt964879FB55944D40BD3E22568350333AltFieldKeygt

ltFieldgtltFieldname= Amount import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt4975636D567F594A88AEF96EDEE1C538ltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgtltStrLengthgt21ltStrLengthgt

ltStringgtltFieldKeygt2D2B4AB6EFFF1D42B66EB63FB3BAED04ltFieldKeygt

ltFieldgtltRecordgtltDataStructuregt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 60

XForms

ltSchemaDefgtltFileDescriptiongt

SVD data is represented by the ltDelimitedgt tag in this XML structure

Custom XML

Designer generates an XML schema that represents the custom XML structure that you may create

for any given publication EngageOne supports the custom XML data model by having access to this

XML schema file When Designer publishes a template for EngageOne the following files appear in

the archive file

template_masterxml includes a SCHEMA tag in ltSubfilesgt and there will be no DATAMODEL

tag

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modelxsdltFilegtltSubfilesgt

In Designer user can create custom xml sample data using

bull XSD schema file bull DTD schema file

Depending on the schema file the SCHEMA entry in template_masterxml will change For XSD ltSubfilesgt will be as above for SCHEMA tag For DTD schema ltSubfilesgt will be

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modeldtdltFilegtltSubfilesgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 61

XForms

Data definition type and attributes

The EngageOne XForms data definition types and attributes follow the standard XForms specifications Below is a diagram of the structure of the data definition node types

The configurable attributes available are listed below

This attribute specifies the name of the interactive data element Naming conventions follow XML standards They can only contain alphanumeric characters and underscores and must start with a letter

Name

This attribute specifies the data type of the value of the interactive data

Type

This attribute specifies the initial value

This value is set directly in the XForms Instance (XML) as the inner node value

Default Value

This text appears in both the Interactive Editor and on a traditional eForm to tell the user what to enter

The Prompt value is set in the XForms View (XHTML body node) using the label node

Prompt

This attribute is used to provide an extended message or explanation of the Prompt attribute

Help Text

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 62

XForms

This attribute marks the interactive field for compulsory completion When filling out a template a value must be provided for this field in order to progress to the next interactive field or generate the document

This is set in XForms Model using the required attribute of the bind node

This dictates whether the field value is user changeable or not This property is frequently set for definitions requiring system-supplied data from mainline business systems

This is set in XHTML using the read-only attribute of the bind node

This specifies whether the interactive field for the definition should be displayed on the form The Visible property only impacts the display of an interactive field on a traditional eForm presentation All fields needed to complete a document or used in document are always prompted for in the Interactive Editor unless they are defined in the document as read-only

This property value is set in the XSD schema file using g1visible attribute of the element node

The System Data attribute identifies elements whose values are expected to be supplied by system data integration with the front end business system

This flag is set in the XSD schema using the g1sysdata attribute of the element node

The xml structure of supplied system data should be the same as the xml structure of the answer file Thus repeating groups of answer file-like XML structure should be put in under the system data tag For a sample system data xml structure see XML instance file on page 51

The Key Field denotes whether a definition is the unique identifier for the template or not This attribute is used by EngageOne to order and manage the template instances

Key fields are also used by the system data integration program to identify the correct data to collect

This flag is set in the XSD schema file using the g1keyfield attribute of the element node

Mandatory

Read-Only

Visible

System Data

Key Field

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 63

XForms

Expression Validation

Max Length Validation

This property defines input value constraints to ensure valid entries are accepted for the definition during data capture

These rules are set in the XForms Model using the constraint attribute of the bind node

In the XSD schema file they are set using the value attribute of minInclusivemaxInclusive minExclusive or maxExclusive node

This attribute specifies the maximum number of characters a user may input for a string-type field

The value is set in the XForms View (XHTML body node) using the maxlength attribute of the input node In the XSD schema file it is set using the value attribute of the maxLength node

For more information on how these fields are populated and used during data integration see System Data Integration on page 65

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 64

4 - System Data Integration System Data Integration (SDI) enables loading system data into the EngageOne Interactive This data can be extracted from different sources

For example Web service message queues databases etc

In this section

SDI General Configuration 66 Using an XML file as a data source 67 Using the Java callback interface 68 Feature support for System Data Integration 69 Integration option 1 ndash XML data source 71 Integration option 2 ndash callback interface 75

System Data Integration

SDI General Configuration

EngageOne Interactive uses XForms to support external SDI and user prompts before the document editing session is launched in the EngageOne editor The modular design of XForms detaches the model (data rendered by the view) from viewable content This allows the SDI handler to work in isolation with the XForms model and modify it depending on the requirements

In this section two SDI methods are explained along with the features provided by the EngageOne system to support System Data Integration

This section assumes that the integration programmer has XForm knowledge and experience

EngageOne Interactive provides two methods for integrating documents with external system data

bull An XML data source (for demonstration and proof of concept purposes only) which the application reads and parses to identify and load data to a target document

For more information see Using an XML file as a data source

bull A Java callback interface invoked during the System Data Integration process

See Using the Java callback interface on page 68

EngageOne provides a generic XForm (included in the document subfiles) This XForm can be used with both integration methods to allow user interaction with the system by providing inputs that control loading of system data into the document

SDI configuration is controlled by settings in deploylocalproperties When the path to sysdataxml is missing (default setting) the system bypasses the SDI call and uses the answer file in the template When the path is defined the SDI call is made to sysdataxml If the path to sysdataxml is specified but the system cannot find the file an error message displays

If the path to sysdataxml is not specified but a custom class is specified the custom SDI class will be used If both the path to the default XML and the custom SDI class are specified the custom class is used

Note This method is provided for demonstration and proof of concept It is not intended for production purposes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 66

System Data Integration

Using an XML file as a data source

This method is provided for demonstration and proof of concept It is not intended for production purposes

An external XML data file sysdataxml contains system data needed to populate a documentrsquos sysdata fields By default System Data Integration is not enabled To enable sysdataxml set the location in deploylocalproperties

The system data loading process occurs during document creation An XForm is displayed once SysdataAction detects there is a keyfield referenced in its schema definition The XForm prompts the user to provide input which serves as the key to retrieve the corresponding line item from the XML data

XML data source diagram

This is illustrated in the following diagram

The user submits the input form and SysdataAction (action controller) attempts to load the SystemDataLoader specified in systemdataproperties The system data loader class is empty by default allowing the default SystemDataLoader class implementation (XMLSystemDataLoader)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 67

System Data Integration

XMLSystemDataLoader tasks

XMLSystemDataLoader performs the following tasks to render the XForm page that will be sent to the user

bull Loads the system data XML from the location specified in systemdataproperties

bull Parses the system data XML bull Transfers the selected line item to the document answer XML file bull Returns the modified document subfiles back to the SysdataAction class

The XForms page shows the system data input fields populated with data from the system data XML

You can also use the Visible attribute for fields to display in the XForm after system data loading has completed The Visible attribute is configured by the template designer in Designer by enabling the schema definition (set to True)

Using the Java callback interface

The second option incorporating System Data Integration is via a Java callback interface During System Data Integration you can configure the EngageOne Interactive application to invoke a custom implementation This implements a callback interface (system data loader) and allows access to references of document subfiles

The XMLSystemDataLoader (default system data loader) implements the system data loader interface The default system data loader will be replaced by your custom system data loader One system data loader can be plugged into the application at a time

Note Multiple system data loaders can be used in the application employing various object oriented patterns

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 68

System Data Integration

Java callback interface process flow

The process flow and interaction discussed in the previous section Using an XML file as a data source applies to the process flow implemented with a custom system data loader

The process starts when EngageOne Interactive detects that a document has keyfields EngageOne Interactive will delegate SysdataAction to retrieve and collate the document subfiles and wrap them in an XFormsContext object SysdataAction will invoke the custom system data loader class and pass the XFormsContext object The XForms page will be rendered and which will contain the modifications in the document subfiles

When implementing System Data Integration be aware that document subfiles should be retrieved from the document repository via Web services to incorporate your System Data Integration requirements

Feature support for System Data Integration

EngageOne provides custom XML attributes for defining the document schema subfile (XSD)

These attributes are available through the following namespace httpwwwg1comOCMSchema

Each custom attribute is attached to the element definition on the schema subfile

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

Where

bull visible ndash XForm user interface element which references this node This should be visible when the XForms page is rendered

bull keyfield ndash Instance data value that should be used as a look-up field for retrieving external system data The corresponding user interface element should be visible if data will be provided by the user

bull sysdata ndash Instance data value should be populated with external system data look-up results

There are attributes in the XForms subfile that work with the custom attributes defined for System Data Integration

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 69

System Data Integration

XForms model example

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

In this example

bull required attribute - Required instance data value Should contain a value bull read only attribute - Read only attribute Should not change its value The XForms user interface element which references this node is rendered as a non-editable form element

Note When implementing the system data loader where you need to modify the XForms page ensure that the attribute values are properly set

It is important that the above attributes are set with appropriate values so the XForms page will render properly

The values of those attributes are set visually in the document templates

For more information see Designing the template for System Data Integration on page 71

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 70

System Data Integration

Integration option 1 ndash XML data source

Loading the data from an XML data source is the default mode when performing System DataIntegration

Enabling the default system data loader

Note On a fresh system install this is the default configuration for EngageOne Interactive This step is necessary only overriding this setting

For example you develop a custom system data loader and plug it in to the application

To enable the default system data loader

In EngageOne Interactive modify the system data configuration settings deploylocalproperties

This involves

1 Set the sdicallbackclassname to blank 2 Set the sdicallbackjarpath to blank

Designing the template for System Data Integration

In Designer the Interactive Data Editor allows configuring the XForms page for System DataIntegration This process works with XForms and custom schema attributes

Following are some processes showing variations on configuring the system data attributes of your template

For more information about designing templates for EngageOne see the Designer Userrsquos Guide

Configure system data load with a user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Disable the read-only attribute in the XForms design page for user interaction fields

The required attribute can be enabled for users to provide data before document authoring This is for fields not populated with system data

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 71

System Data Integration

Configure system data load with the user confirmation page read-only

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Enable the read-only attribute in the XForms design page for user interaction fields

Configure system data load without the user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Disable the visible attribute for fields the user will interact with

This loads system data to the answer XML file and launches EngageOne editor with the document displayed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 72

System Data Integration

Preparing the system data XML

In order for system data to be loaded by EngageOne Interactive your system must create the sysdataxml file

The following schema constraints are enforced for sysdataxml

ltxselement name=system-datagtltxscomplexTypegt

ltxssequencegt answer XML file schema constraint applies hereltxssequencegt

ltxscomplexTypegtltxselementgt

bull The sysdataxml file must be enclosed by a system data element bull There should be a list of XML nodes in the system data element

These nodes will refer to a system data line item which has the same format as the answer XML file and complies with the schema defined for the answer XML file

Example XML answer file

The following example illustrates a defined answer XML file followed by a corresponding system data XML

Defined answer XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=d3dc1f5adc034110914418efcb2bcb07xsdgt

ltPublicationgt ltAccountNamegtltAccountNamegtltAccountNumbergtltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtltBillingAddressgt

ltg1private gtltPublicationgt

System data XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltsystem-datagt

ltInteractiveDataModelgt ltPublicationgt

ltAccountNamegtJohn XltAccountNamegtltAccountNumbergtEA343ADF-DDltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtJohn X ResidencesltBillingAddress

ltPublicationgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 73

System Data Integration

ltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn YltAccountNamegtltAccountNumbergtY1343ADF-YYltAccountNumbergtltDateCreatedgt2008-11-08ltDateCreatedgtltBillingAddressgtltBillingAddress

ltPublicationgtltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn ZltAccountNamegtltAccountNumbergtZ04A3ADF-ZZltAccountNumbergtltDateCreatedgt2008-10-11ltDateCreatedgt

ltPublicationgtltInteractiveDataModelgt

lt-- more system data line item can be appended here --gt ltsystem-datagt

InteractiveDataModel element

The InteractiveDataModel element represents a single data line item where each line should have the same XML structure as its answer file

The g1private element is not present in any line item in the system data XML Any nodes under g1private are used for EngageOne internal processing If appropriate nodes can be excluded from a line item

For example BillingAddress is not included in the line item John Z

EngageOne Interactive transfers a selected line item from the system data file to the answer file Missing information line item information will be skipped during transfer

EngageOne Interactive uses the schema definition to determine which elements are key and sysdata fields

For each sysdata element the element should be populated with system data

Loading the system data XML

Plug in the system data XML to EngageOne Interactive

1 Modify the system data configuration settings in deploylocalproperties 2 Modify the sdisysdatapath property and set it to the absolute path of the system data

XML file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 74

System Data Integration

Integration option 2 ndash callback interface

Configure EngageOne Interactive to use a custom system data loader implementation

Configure EngageOne Interactive to use a custom system data loader implementation

1 Create the custom system data loader implementation 2 Compile and package the custom system data loader implementation class to a JAR file 3 Configure EngageOne Interactive system data settings to load and invoke the custom system

data loader class

Implement a custom system data loader

To implement a custom system data loader

Steps

1 Create a custom system data loader class which implements the compbocmclientxformSystemDataLoader Java interface This must be plugged into EngageOne Interactive at runtime The System Data Integration API classes are bundled in sdi-client-apijar located in the samples folder of the EngageOne distribution folder This houses the main interface of the System Data Integration that the custom system data loader class needs to implement

For example

public interface SystemDataLoader

Loads system data into the given XML document param xmlDocument the given XML document param context throws Exception if an error occurs while loading system

data void loadSystemData(XFormsContext context) throws Exception

2 Import the project classpath to reference the System Data Integration API classes When packaging the custom system data loader you may not need to put the sdi-client-apijar

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 75

System Data Integration

file on the project classpath as those classes are available in the EngageOne Interactive Web application archive The following guidelines must be observed when developing a custom system data loader

bull Create the custom system data loader implementation bull The custom system data loader should implement the compbocmclientxformSystemDataLoader interface

bull An XFormsContext object is passed to the custom system data loader when invoked during System Data Integration The object provides access to the document subfiles answer file XForm file and answer file schema file

bull If an XForms file is altered it should conform to the W3C XForms 11 standard

If an answer XML file is altered it should conform to its XML schema file

Any structural change in the answer XML file should be cascaded to its XML schema file When loading EngageOne Editor validates the answer XML using the XML schema

bull Do not change the g1private XML element in the answer XML file or the corresponding constraint in the XML schema

Notes

bull Altering custom EngageOne XForms attributes will affect how the XForms page is rendered in EngageOne Interactive Incorrect settings might cause the page to be incorrectly displayed or lead to loss of data

bull Set keyfields to visible bull System data can be set to visible or non-visible bull It is recommended that Required fields in the XForms file be set to visible bull It is recommended that you do not amend a field marked as System data before invoking the custom system data loader

bull Any change made to document subfiles cannot be reversed bull Do not change XML namespaces in document subfiles bull Removal of existing XML elements from document subfiles is not allowed bull Any other changes can be made to document subfiles except for the constraints mentioned above

For example you can add XForms UI elements XML data in the answer XML file as well as make schema and XForms constraint modifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 76

System Data Integration

Custom system data loader

Following is a sample custom system data loader This adds a visible input element in the document

These changes include

bull Addition of schema definition in the XML schema file bull Addition of XForms mapping in the XForms file bull Addition of XML nodes in the answer XML file which maps to the XForms element

Custom data loader interface

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception loadToSchema(context)loadToView(context) loadToInstance(context)

private void loadToSchema(XFormsContext context) throws Exception private void loadToView(XFormsContext context) throws XMLStreamException

FactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException private void loadToInstance(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException public void loadSystemDataWithXpath(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException JaxenException SAXException IOExceptionParserConfigurationException TransformerFactoryConfigurationErrorTransformerException

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 77

System Data Integration

loadToSchema function

private void loadToSchema(XFormsContext context) throws Exception add simple element to schema XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetSchemaAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement schema

= buildergetDocumentElement() OMElement root = schemagetFirstElement() OMElement complexType = rootgetFirstChildWithName(new QName(httpwwww3org2001XMLSchema complexType)) QNamesequenceIndicator = new QName(httpwwww3org2001XMLSchemasequence) OMElement complexTypeChild = complexTypegetFirstChildWithName(sequenceIndicator) if(complexTypeChild == null) QName allIndicator = new QName(httpwwww3org2001XMLSchema

all) complexTypeChild = complexTypegetFirstChildWithName(allIndicator) OMFactory factory = OMAbstractFactorygetOMFactory() OMNamespace

xmlSchemaNamespace = factorycreateOMNamespace(httpwwww3org2001XMLSchemaxs)OMNamespace group1Namespace =

factorycreateOMNamespace(httpwwwg1comOCMSchema g1)

OMElement comment = factorycreateOMElement(elementxmlSchemaNamespace complexTypeChild) commentaddAttribute(visibletrue group1Namespace)commentaddAttribute(minOccurs 0 null)

commentaddAttribute(name Comment null)OMElement simpleType = factorycreateOMElement(simpleType

xmlSchemaNamespace comment) OMElement restriction = factorycreateOMElement(restriction xmlSchemaNamespace simpleType)restrictionaddAttribute(base xsstring null)

ByteArrayOutputStream bos = new ByteArrayOutputStream()schemaserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)

Document newSchema = docBuilderfactorynewDocumentBuilder()parse(new ByteArrayInputStream(bostoByteArray()))

contextsetSchemaAsDocument(newSchema)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 78

System Data Integration

loadToView function

private void loadToView(XFormsContext context) throws XMLStreamExceptionFactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException

XMLStreamReader parser1 = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))StAXOMBuilder builder1 = new StAXOMBuilder(parser1) OMElement

instanceData = builder1getDocumentElement() String firstNodeName = instanceDatagetLocalName()

XMLStreamReader parser = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetXFormsViewAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement xhtml = buildergetDocumentElement()

OMFactory factory = OMAbstractFactorygetOMFactory()OMNamespace xformsNamespace =

factorycreateOMNamespace(httpwwww3org2002xforms xforms)

AXIOMXPath modelExpr = new AXIOMXPath(xformsmodel)modelExpraddNamespace(xforms httpwwww3org2002xforms)OMElement model = (OMElement) modelExprselectSingleNode(xhtml)

OMElement bind = factorycreateOMElement(bind xformsNamespacemodel) bindaddAttribute(nodeset+firstNodeName+PublicationComment null)bindaddAttribute(readonly false() null)bindaddAttribute(required false() null)

bindaddAttribute(type xsstring null)

AXIOMXPath bodyExpr = new AXIOMXPath(xhtmlbody)bodyExpraddNamespace(xhtml httpwwww3org1999xhtml) OMElementbody = (OMElement) bodyExprselectSingleNode(xhtml)

OMElement input = factorycreateOMElement(input xformsNamespacebody) inputaddAttribute(ref+firstNodeName+PublicationComment null) OMElement label = factorycreateOMElement(label xformsNamespace input)factorycreateOMText(label Comment)OMElement help = factorycreateOMElement(help xformsNamespace

input) factorycreateOMText(help Observations)

ByteArrayOutputStream bos = new ByteArrayOutputStream()xhtmlserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 79

System Data Integration

docBuilderfactorysetNamespaceAware(true)Document newView = docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))contextsetXFormsViewAsDocument(newView)

loadToInstance function

private void loadToInstance(XFormsContext context)throws XMLStreamException FactoryConfigurationError

XFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))tAXOMBuilder builder = new StAXOMBuilder(parser) OMElement

instanceData = buildergetDocumentElement() AXIOMXPath bodyExpr = new AXIOMXPath(Publication)OMElement publication = (OMElement)

bodyExprselectSingleNode(instanceData) OMFactory factory = OMAbstractFactorygetOMFactory()OMElement e = factorycreateOMElement(Comment null publication)factorycreateOMText(e contextgetTemplateName())

ByteArrayOutputStream bos = new ByteArrayOutputStream()instanceDataserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)Document newInstanceData =

docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))

contextsetInstanceAsDocument(newInstanceData)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 80

System Data Integration

Error handling

You can configure the custom system data loader to determine the required error handling scheme during system data retrieval in EngageOne Interactive

To enable this feature you must throw a SystemDataLoaderException object from the loadSystemData (XFormsContext context) implementation of the custom system data loader class

SystemDataLoaderException class ndash custom fields

The SystemDataLoaderException class has custom fields that can be set by either passing required values to the SystemDataLoaderException objects constructor or by the individual setter methods

errorcode

A string field that maps the SystemDataLoaderException object to a localized error message which will display on the XForms page

All error codes that EngageOne Interactive to use should be enumerated in the systemDataLoaderErrorCodesproperties file located in the Engage One install directory in the Interactive folder The properties file should contain the complete mapping of error codes to their corresponding message keys

A sample systemDataLoaderErrorCodesproperties file follows

local error code for system data loader exceptions

001=systemdataloaderdataNotFound 001 and 002 are 002=systemdataloaderunknown default entries 003=systemdataloaderincorrectKey004=systemdataloaderinternalError005=systemdataloaderhostUnreachable

Note any number of error codes may be mapped to the same message key Error codes must be unique

These keys are mapped to error messages that EngageOne Interactive can display on the XForms page The mapping of keys to their respective messages must be specified in the systemDataLoaderMessagesproperties file located in the Engage One install directory in the Interactive folder

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 81

System Data Integration

systemDataLoaderMessagesproperties sample

Following is a systemDataLoaderMessagesproperties resource bundle sample

-- System Data Loader custom messagessystemdataloaderdataNotFound=Data not found for the entered key Please try again

systemdataloaderunknown=Unknown error encountered during system dataretrieval Please try again

systemdataloaderincorrectKey=The entered key 0 is incorrect or missing Please try again

systemdataloaderinternalError=Error encountered during system dataretrieval Please cancel the creation of this document and contact yoursystem administrator

systemdataloaderhostUnreachable=The host of the system data isunreachable Please try again later If the problem persists pleasecontact your system administrator

Error messages can be localized and are dependent on the language settings of the Internet browser

To enable localization for the custom system data loader error messages follow the localization (L10N) standards and append the correct suffix to the resource base name (systemDataLoaderMessages)

For example

systemDataLoaderMessages_en for English

systemDataLoaderMessages_de for German

systemDataLoaderMessages_zh for Chinese etc

All resource bundles must be placed in the same directory with the base resource bundle (systemDataLoaderMessagesproperties) The default value of this field is 001 (ldquoData not found for the entered key Please try againrdquo)

params

An optional field that accepts an array of strings (casted to Object[])

The value of this field will be passed to the resource bundle handler of EngageOne Interactive to replace placeholders (0 1 etc) in error messages in the systemDataLoaderMessagesproperties file This field will be ignored if the errorCode field of the SystemDataLoaderException object points to an error message that does not contain placeholders The default value of this field is null

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 82

System Data Integration

result

An enum field that determines the page EngageOne Interactive will load if a SystemDataLoaderException is thrown during system data retrieval

It has two values

bull SystemDataLoaderResultDEFAULT ndash forces EngageOne Interactive to ignore the caught error and allow the user to manually input data to the user prompt fields The error message (specified by the errorCode field) will not be visible on the XForms page

bull SystemDataLoaderResultREPROMPT ndash forces EngageOne Interactive to allow the user to re-enter key field data and retrieve system data The error message (specified by the errorCode field) will display on top of the XForms page

The default value of this field is SystemDataLoaderResultDEFAULT

message and cause

message (String) and cause (Throwable)

Implicit fields that can be set by including any or both constructor arguments of the SystemDataLoaderException object These fields are inherited from the of SystemDataLoaderException parent class If these are set the stack trace of the wrapped Throwable or the value of the given message will be logged on the application server logs

SystemDataLoaderException constructor signature

The following is a complete list of constructor signatures of the SystemDataLoaderException

Note the errorCode params and result fields can be set via their setter methods

SystemDataLoaderException constructor signatures

public SystemDataLoaderException()public SystemDataLoaderException(Throwable cause) publicSystemDataLoaderException(String errorCode)public SystemDataLoaderException(String errorCode Object[] params)public SystemDataLoaderException(SystemDataLoaderResult result)public SystemDataLoaderException(String errorCodeSystemDataLoaderResultsystemDataLoaderResultresult)public SystemDataLoaderException(String errorCode Object[] paramsSystemDataLoaderResult result) public SystemDataLoaderException(Stringmessage String errorCode SystemDataLoaderResult result) publicSystemDataLoaderException(String message String errorCode Object[]params SystemDataLoaderResult result)public SystemDataLoaderException(String message String errorCode)public SystemDataLoaderException(String message String errorCodeObject[] params) public SystemDataLoaderException(Throwable cause StringerrorCode)public SystemDataLoaderException(Throwable cause String errorCode

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 83

System Data Integration

Object[] params)public SystemDataLoaderException(Throwable cause String errorCodeSystemDataLoaderResult result) public SystemDataLoaderException(Throwablecause String errorCode Object[] params SystemDataLoaderResult result)public SystemDataLoaderException(String message Throwable cause StringerrorCode)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params) public SystemDataLoaderException(Stringmessage Throwable cause String errorCode SystemDataLoaderResultresult)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params SystemDataLoaderResult result)

Sample implementation

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception try

your custom code which loads the system data to the XForm files goes here You will need to use XFormsContext object to retrieve the XForm files rendered in the EngageOne Interactive application Depending on your implementation you may need to modify the XForm schema instance XML file as necessary

catch (Exception e) wrap all Exceptions encountered to a SystemDataLoaderException

SystemDataLoaderException exception = new SystemDataLoaderException(e)

if (e instanceof RemoteException) set the error code exceptionsetErrorCode(110)

set the error message parameters if applicable exceptionsetParams(new String[]contextgetTemplateName())

set the result action exceptionsetResult(SystemDataLoaderResultREPROMPT)

else simply set the result action since the error messages wont be

displayed exceptionsetResult(SystemDataLoaderResultDEFAULT)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 84

System Data Integration

finally throw the exception throw exception

Compiling and packaging custom system data loader

Prepare the custom system data loader class to be plugged into EngageOne Interactive

1 Compile the custom system data loader implementation by including the sdi-client-apijarfile on the project classpath This file is located in the EngageOne install directory under the active-drive (content repository) config folder

2 Package the custom system data loader on the same JAR file System Data Integration API classes are included in the EngageOne Interactive Web application archive You can assemble the custom system data loader class without the sdi-client-apijar on the project classpath

Configuring EngageOne Interactive system data settings

Plug the custom system data loader into EngageOne Interactive

1 Modify the system data configuration settings deploylocalproperties located in the EngageOne install directory under the active-drive (content repository) config folder

2 Modify the sdicallbackclassname property and set it to the fully-qualified name (FQN) of the custom system data loader class For example commycompanyengageonesdiApplicationSystemDataLoader

3 Modify the sdicallbackjarpath property and set the path to the JAR file containing the custom system data loader class For example EngageOnesdicustom-sdi-10jar

This configuration setting can accept a valid Java classpath allowing multiple JAR files to be specified

Note The following rule applies when defining the value for this property

If a relative path is used the system assumes the location of the custom system data loader class is relative to the value path set in the customSdidefaultclasspath property in config-settingsxml By default this path is set to the EngageOne install directory

For example sdi-testCustomLoaderjar where sdi-test is a directory under the path specified in the property

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 85

5 - Additional features in SOAP

In this section

Trusted Connection 87 Template search 87 Write delivery information 96 Managing the work queue 99 Updating work items 102 Reassigning a work item 106 Deleting a work item 108

Additional features in SOAP

Trusted Connection

Where there is a higher level of trust between EngageOne and a custom application you can use the

trusted connection feature This method establishes an authorized session token based on the valid

userID trusted connection apli key(defined in deployproperties under key securitytrustedconnectionapikey) and domainID only meaning regular userpassword authentication is not required (as with the connect

service)

The related configuration setting is checked to determine whether this service should be made available to the system or not This is done by examine securitytrustedconnectionpassword property defined in deployproperties

Trusted connection is defaulted to off during EngageOne installation

To activate the feature securitytrustedconnectionpassword should be set

To perform trustedConnection use the SecurityService trustedConnectionLoginmethods

Template search

As the document repository increases in size retrieving all templates can consume a large amount of memory EngageOne Server provides an optimized service for searching templates based on a given criteria This service can sort and provide a subset of the search result set also known as pagination

To perform a template search against the document repository use the TemplateService searchTemplates method

Searching templates by template property

This service enables searching templates by template property (for example template name and ID) It also enables searching by template metadata attributes as well as a wildcard search

Note a wild card search can be performed only for certain search criteria fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 87

Additional features in SOAP

Create an instance of the client stub for the TemplateService then invoke the searchForTemplates service where you pass in the search criteria

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService) SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate() IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter) templatesetIdent(id)requestgetTemplates()setTemplate(template)

SearchTemplatesResponse response = templateServicesearchTemplates(request) ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 88

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Note

bull The searchTemplates service makes use of other classes

Use these classes to compose the template search criteria and pass it to the service invocation

This service returns a list of templates that match the search criteria

For example if the template search key is set to Insurance Policy Letter the result set will contain all template names containing Insurance Policy Letter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 89

Additional features in SOAP

Searching templates with sorting and pagination

Perform a template search with a sorted and paginated result set and add additional search criteria values to pass to the searchTemplates service

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate()IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter)templatesetIdent(id) requestgetTemplates()setTemplate(template)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(1)paginationsetPageSize(10)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields())SortField field = new SortField()fieldsetType(SortFieldTypeNAME)fieldsetOrder(SortOrderASCENDING)

requestsetPagination(pagination) requestsetSorting(sorting)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

The SortingControls class accepts sort fields and sort ordering values

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 90

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

reqpagination = new TemplateServicePaginationControls()reqpaginationpageNumber = 1reqpaginationpageSize = 10

reqsorting = new TemplateServiceSortingControls()reqsortingfields = new TemplateServiceSortField[1]reqsortingfields[0] = new WebServiceTest1TemplateServiceSortField()

reqsortingfields[0]type = TemplateServiceSortFieldTypeNAMEreqsortingfields[0]order = TemplateServiceSortOrderASCENDING

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Use the PaginationControls and SortingControls classes to compose a sorted and paginated template search The PaginationControls class accepts pageNumber and pageSize values which control the page size and the result retrieved by the set page snapshot

In the example above the result set is sorted by template name and displays the first ten template matches

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 91

Additional features in SOAP

Searching templates by template metadata

You can perform a metadata search to retrieve a list of metadata or document classes available in EngageOne Server This information can be presented to an end-user who can choose which metadata they want to use to perform a more detailed search

To retrieve all metadata from the server

1 Use the MetadataService searchMetadata service 2 Create an instance of the client stub for MetadataService 3 Invoke the searchMetadata method

Java sample

MetadataServiceStub metadataService = new MetadataServiceStub(URL_BASE+ MetadataService)SearchMetadata request = new SearchMetadata()requestsetFilter(SearchFilterDETAIL)

SearchMetadataResponse response = metadataServicesearchMetadata(request)ListltDocumentClassgt docClasses = responsegetDocClasses()getDocClass()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 92

Additional features in SOAP

C NET sample

MetadataServiceMetadataServiceClient metadataSvc = new MetadataServiceMetadataServiceClient(MetadataServiceSOAP)

MetadataServiceSearchMetadata req = new WebServiceTest1MetadataServiceSearchMetadata()reqfilter = CommonServicesSearchFilterDETAIL

MetadataServiceSearchMetadataResponse resp = metadataSvcsearchMetadata(req)MetadataServiceDocumentClass[] classes = respdocClasses

This service returns a list of document class objects

This service introduces some new classes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 93

Additional features in SOAP

Supported metadata field types

Currently EngageOne supports only the following metadata field data types

Data type Description

Text Alphanumeric string

Date Date

Number Numeric integral and floating

You can perform template searches using metadata

The following example illustrates how to search for all templates that belong to a particular document class with the insurance category

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetDocClasses(new SearchTemplatesDocClasses())

SearchTemplatesDocClassesDocClass docClass = new SearchTemplatesDocClassesDocClass()IntegerIdOrName id = new IntegerIdOrName()idsetName(SimpleClass) docClasssetIdent(id)

docClasssetFields(new SearchTemplatesDocClassesDocClassFields())

SearchTemplatesDocClassesDocClassFieldsField field = new SearchTemplatesDocClassesDocClassFieldsField()id = new IntegerIdOrName()idsetName(category)fieldsetIdent(id)

MetadataFieldValue value = new MetadataFieldValue()valuesetMetadataString(Insurance)fieldsetValue(value)

docClassgetFields()getField()add(field)requestgetDocClasses()setDocClass(docClass)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 94

Additional features in SOAP

C NET sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqdocClasses = new TemplateServiceSearchTemplatesDocClasses()reqdocClassesdocClass = new TemplateServiceSearchTemplatesDocClassesDocClass()reqdocClassesdocClassident = new TemplateServiceIntegerIdOrName()

reqdocClassesdocClassidentItem = Simple Class

reqdocClassesdocClassfields = new TemplateServiceSearchTemplatesDocClassesDocClassField[1]TemplateServiceSearchTemplatesDocClassesDocClassField field = new TemplateServiceSearchTemplatesDocClassesDocClassField()fieldident = new TemplateServiceIntegerIdOrName()fieldidentItem = category

fieldvalue = new WebServiceTest1TemplateServiceMetadataFieldValue()

fieldvalueItem = InsurancereqdocClassesdocClassfields[0] = fieldreqfilter = CommonServicesSearchFilterDETAILTemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 95

Additional features in SOAP

Write delivery information

Depending on the document delivery channels set up in EngageOne Administration you can configure a channel to accept data input via the document instance file

For example configure Email and Fax delivery channels to accept data input

Write delivery information process

Data inputs are written in the instance file and are identified by a set of valid XPath expressions By default EngageOne provides predefined places in the instance file where this data input or delivery information can be written

The following steps illustrate this process

Steps

1 In the example below a template instance file is defined where the XML nodes relating to the delivery information are highlighted Each node corresponds to configurable data inputs for Email and Fax delivery channels

ltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=80dacb9192c44a81937175f8ac7e0ee7xsdgtz

ltPublicationgt ltString1gtEngageOne System Test String 1ltString1gtltString2gtEngageOne System Test String 2ltString2gtltInteger1gt1ltInteger1gtltInteger2gt2ltInteger2gtltNumber1gt1ltNumber1gtltNumber2gt2ltNumber2gtltDate1gt2008-08-29ltDate1gtltDate2gt2008-08-29ltDate2gtltDeliveryInformationgt

ltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegt

ltDeliveryInformationgtltg1privategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 96

Additional features in SOAP

ltPublicationgtltInteractiveDataModelgt

The application code must parse the instance file and perform reading and writing delivery information using the XPath expression set in EngageOne Administration Delivery details (including XPath expressions) can be retrieved using the DeliveryManagementService searchDeliveryOptions method

2 Create an instance of the DeliveryManagementService client stub Then invoke searchDeliveryOptions

Java sample

DeliveryManagementServiceStub deliveryMgmtService = new DeliveryManagementServiceStub(URL_BASE + DeliveryManagementService)SearchDeliveryOptions request = new SearchDeliveryOptions()requestsetDeliveryOptions(newSearchDeliveryOptionsDeliveryOptions())requestgetDeliveryOptions()setDeliveryOption(newSearchDeliveryOptionsDeliveryOptionsDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(deliveryOptionId)requestgetDeliveryOptions()getDeliveryOption()setIdent(id)SearchDeliveryOptionsResponse response = deliveryMgmtServicesearchDeliveryOptions(request)DeliveryOption option = responsegetDeliveryOptions()getDeliveryOption()get(0)

C NET

DeliveryManagementServiceDeliveryManagementServiceClientdeliveryManagementSvc = new DeliveryManagementServiceDeliveryManagementServiceClient(DeliveryManagementServiceSOAP)

DeliveryManagementServiceSearchDeliveryOptions req = new DeliveryManagementServiceSearchDeliveryOptions()reqdeliveryOptions = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptions()reqdeliveryOptionsdeliveryOption = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptionsDeliveryOption()

reqdeliveryOptionsdeliveryOptionident = new DeliveryManagementServiceIntegerIdOrName()reqdeliveryOptionsdeliveryOptionidentItem = deliveryOptionIdDeliveryManagementServiceSearchDeliveryOptionsResponse resp = deliveryManagementSvcsearchDeliveryOptions(req)DeliveryManagementServiceDeliveryOption option = respdeliveryOptions[0]

In the sample code above the Service accepts a delivery option ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 97

Additional features in SOAP

It returns a DeliveryOption object which holds a list of DeliveryChannels that contain XPath expressions The XPath expressions parse the instance file to retrieve delivery information

3 The Document Server reads delivery information as parameters in the instance file It is important to set the delivery option as well as the delivery information appropriately as this information will be used later in the delivery process

Java sample

for (DeliveryChannel channel optiongetChannels()getChannel())

if (channelgetType()equals(DeliveryChannelTypeEMAIL)) EmailChannelDetail email =

channelgetDetail()getEmailDetail() else if (channelgetType()equals(DeliveryChannelTypeFAX))

FaxChannelDetail fax = channelgetDetail()getFaxDetail()

C NET sample

foreach (DeliveryManagementServiceDeliveryChannel channel inoptionchannels)

switch (channeltype)

case DeliveryManagementServiceDeliveryChannelTypeEMAIL

DeliveryManagementServiceEmailChannelDetail email =

(DeliveryManagementServiceEmailChannelDetail)channeldetailItembreak

case DeliveryManagementServiceDeliveryChannelTypeFAXDeliveryManagementServiceFaxChannelDetail fax =

(DeliveryManagementServiceFaxChannelDetail)channeldetailItembreak

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 98

Additional features in SOAP

Managing the work queue

Managing user work queues is part of EngageOne workflow EngageOne workflow handles assigning a work item or document ownership to a user

Retrieving work items

The WorkItemService searchWorkItems method retrieves a users work queue

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req) WorkItemServiceWorkItem[] workItems= respworkItems

In these examples the service returns a list of active work items associated with the authenticated user

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 99

Additional features in SOAP

Retrieving work items with pagination

The searchWorkItems service of WorkItemService can set the pagination of a work item list result set

To enable this feature create a PaginationControls object and set the required page number and page size

For example the following illustrates how to display the second page of a work item list that contains ten work items per page

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(2)paginationsetPageSize(10)requestsetPagination(pagination)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqpagination = new WorkItemServicePaginationControls()reqpaginationpageNumber = 2reqpaginationpageSize = 10

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 100

Additional features in SOAP

Retrieving work items with sorting

The searchWorkItems service of WorkItemService can set the sort of a work item list result set

To enable this feature create a SortControls object and set the reference column and sorting order in the objects field and order fields

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields()) SortField field = new SortField()fieldsetType(SortFieldTypeSTATUS)fieldsetOrder(SortOrderASCENDING)sortinggetFields()getField()add(field)requestsetSorting(sorting)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqsorting = new WorkItemServiceSortingControls()reqsortingfields = new WorkItemServiceSortField[1]reqsortingfields[0]type = WorkItemServiceSortFieldTypeSTATUSreqsortingfields[0]order = WorkItemServiceSortOrderASCENDING

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 101

Additional features in SOAP

Updating work items

This section covers updating work item properties

Updating the document delivery option

Set the request object with the correct token workItem ID and new deliveryOption ID

Then invoke the setDeliveryOption service of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItem request = new UpdateWorkItem()requestsetWorkItem(new UpdateWorkItemWorkItem())requestgetWorkItem()setId(workItemId)requestsetDeliveryOption(new UpdateWorkItemDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(optionId)requestgetDeliveryOption()setIdent(id)

UpdateWorkItemResponse response = workItemServiceupdateWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqdeliveryOption = new WorkItemServiceUpdateWorkItemDeliveryOption()

reqdeliveryOptionident = new WorkItemServiceIntegerIdOrName()reqdeliveryOptionidentItem = optionId

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 102

Additional features in SOAP

Updating work item status

Update work item status while a document has not completed the workflow process

This applies to the duration of the document life cycle

For example a document can be created and saved even if required fields have not been filled in In this case the work item status would be set to ACTIVE_INCOMPLETE

For example when a user attempts to update a document and has entered all required fields the work item status would be set to ACTIVE_COMPLETE

To perform work item status updates invoke updateWorkItemStatus of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItemStatus request = new UpdateWorkItemStatus()requestsetWorkItem(new UpdateWorkItemStatusWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setStatus(WorkItemStatusACTIVE_COMPLETE)

UpdateWorkItemStatusResponse response = workItemServiceupdateWorkItemStatus(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqworkItemstatus = status

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

Work item status can be set to any of the following

ACTIVE_COMPLETE

ACTIVE_INCOMPLETE

ASSIGNED

FAILED_DELIVERY

FINISHED

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 103

Additional features in SOAP

OPEN

PENDING_APPROVAL

PENDING_DELIVERY

SUBMITTED_APPROVED

SUBMITTED_REJECTED

SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 104

Additional features in SOAP

Updating work item comments

Work items have an comments field that can be updated every time you invoke a transaction that involves the work item

New comments will be added to the previous list of comments and will not overwrite the previous set Work item comments are stored from the work items creation

Invoke the addWorkItemComment service of WorkItemService to add a comment to a work item

Java sample

String comment = Updated document for additional customer information sample user comment WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)AddWorkItemComment request = new AddWorkItemComment()requestsetWorkItem(new AddWorkItemCommentWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setComment(comment)

AddWorkItemCommentResponse response = workItemServiceaddWorkItemComment(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceAddWorkItemComment req = new WorkItemServiceAddWorkItemComment()reqworkItem = new WorkItemServiceAddWorkItemCommentWorkItem()reqworkItemid = workItemIdreqworkItemcomment = comment

WorkItemServiceAddWorkItemCommentResponse resp = workItemSvcaddWorkItemComment(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 105

Additional features in SOAP

Reassigning a work item

Reassigning a document allows the current document owner to assign a document to another userrsquos work queue

bull In order for a document to be reassigned the receiving user must have access to the document template and its storage location

bull Reassigning a document removes it from the current owners work queue bull Reassigning a document ensures that the document is being worked on by one user at a time

For more information see the EngageOne Administration Guide

Retrieving document assignees

Use the WorkItemService getWorkItemAssignees method to retrieve a list of assignees for a document

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)GetWorkItemAssignees request = new GetWorkItemAssignees()requestsetWorkItem(new GetWorkItemAssigneesWorkItem())IntegerIdOrName id = new IntegerIdOrName()idsetId(workItemId)requestgetWorkItem()setIdent(id)

GetWorkItemAssigneesResponse response = workItemServicegetWorkItemAssignees(request)ListltUsergt users = responsegetAssignees()getAssignee()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceGetWorkItemAssignees req = new WorkItemServiceGetWorkItemAssignees()reqworkItem = new WorkItemServiceGetWorkItemAssigneesWorkItem()reqworkItemident = new WorkItemServiceIntegerIdOrName()reqworkItemidentItem = workItemId

WorkItemServiceGetWorkItemAssigneesResponse resp = workItemSvcgetWorkItemAssignees(req)WorkItemServiceUser[] users = respassignees

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 106

Additional features in SOAP

Note Currently the service cannot perform a document access control check for the values it returns You can expect a response exception if the user does not have access to the document template

The service returns a list of User objects which hold the user IDs of document assignees using the user IDs to perform document reassignment The list can be null and the application code needs to handle this condition check

Reassigning a document

Use the WorkItemService reassignWorkItem method to perform document reassignment

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)ReassignWorkItem request = new ReassignWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

requestsetAssignee(new ReassignWorkItemAssignee())requestgetAssignee()setId(csrl)

ReassignWorkItemResponse response = workItemServicereassignWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceReassignWorkItem req = new WorkItemServiceReassignWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

reqassignee = new WorkItemServiceReassignWorkItemAssignee()reqassigneeid = csrl

WorkItemServiceReassignWorkItemResponse resp = workItemSvcreassignWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 107

Additional features in SOAP

Deleting a work item

EngageOne allows a document to be deleted in the repository

When a document is deleted EngageOne Server removes the document files from the repository and terminates the document processing This enables deleting the document at any point during the document life cycle

Perform a document delete

Use the WorkItemService deleteWorkItem method

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)

DeleteWorkItem request = new DeleteWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

DeleteWorkItemResponse response = workItemServicedeleteWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceDeleteWorkItem req = new WorkItemServiceDeleteWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

WorkItemServiceDeleteWorkItemResponse resp = workItemSvcdeleteWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 108

6 - EngageOne notifications EngageOne Notifications is a new capability that enables external systems to be notified of certain events that happen within the EngageOne server Examples of events include Communications being created being sent for review and being completed

In this section

Overview 110 Notification components diagram 111 Topics and queues 113 Configuration settings 114 Messages 118 Communication messages 119 Batch messages 121 Workflow messages 122 Consuming notification messages 123 Using other JMS implementations 126 Sample message consumers 128

EngageOne notifications

Overview

A full list of notification types is provided below

The Notifications mechanism is based on an implementation of the Java Message Service (JMS) standard The chosen JMS implementation is Apache ActiveMQ Detailed information about ActiveMQ can be found at httpactivemqapacheorg

Various components within EngageOne write messages to ActiveMQ so that external applications can consume the messages and process them in whatever way they choose

Note it is possible to use an external JMS-compliant message queue instead of ActviveMQ

A common use case for Notifications is as follows

bull An external system (for example a CRM application) triggers the creation of a communication in EngageOne via the EngageOne web service A unique identifier for the communication is returned to the calling system A communication pending note is added to the customers record so that users of the CRM application can see that the communication is in progress

bull A number of notifications are generated as the communication progresses through its life cycle The CRM system receives these notifications and discards any that are not relevant

bull The CRM system receives a notification that the communication has been completed (delivered) and updates the note on the customer record to indicate that the communication has been sent

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 110

EngageOne notifications

Notification components diagram

The following diagram provides an overview of the components involved in notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 111

EngageOne notifications

Diagram details

The Message Consumer is a custom component that suits the requirements of a particular implementation This Programmers Reference Guide provides information about how to write a message consumer

The JMS Client Library provides a plug-in mechanism to bypass the built-in ActiveMQ implementation to use an external message broker instead

1 A notification message is generated by a component in one of the EngageOne bundles (Core or Batch bundle)

2 The bundle configuration properties (defined in deployproperties at installation or re-configuration time) specify how the message is processed

a The notificationconnectionFactoryclass property specifies which JMS connection factory class to use The default connection factory establishes connections to an ActiveMQ queue or topic Other JMS libraries can be used to send messages to other JMS-compliant queue implementations

For more information see Using other JMS Implementations

b The notificationjmsbrokerurl property specifies the location of the message broker By default this is the ActiveMQ broker embedded in the Notification Bundle

An external ActiveMQ broker can be specified instead or a different JMS providers broker can be specified if a custom JMS connection factory is provided

c The user ID and encrypted password for accessing the queue are also specified in the bundle configuration

d Additional properties enable the notification mechanism to be tuned by disabling specific notification types and by specifying whether messages should be sent to a queue or a topic

3 The JMS Client Library is responsible for sending a JMS-compliant message to the appropriate queue or topic on the specified broker

4 The message broker receives the message on one of its queues or topics Depending on the brokers settings the message might be persisted to a configured persistence provider By default KahaDB is used by the built-in ActiveMQ broker

5 A custom message consumer reads the message from the queue or topic The consumer examines the message and determines whether to process it or discard it

Processing the message might involve sending it to a line of business system (for example a CRM system) or an Enterprise Service Bus (ESB) or Message Queue from where it will be processed by another system

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 112

EngageOne notifications

Topics and queues

JMS has two similar but different mechanisms for delivering messages

bull Topic - implements a publisher-subscriber protocol Each message will be sent to all consumers that are subscribed to that topic at the time that the message is produced

By default topics are not durable so if a consumer is not active at the time that the message is produced it will not receive the message

bull Queue - implements a point to point protocol Each message will be consumed by a maximum of one consumer

By default queues are durable meaning that a message will be held for a consumer if the consumer is not active at the time that the message is produced

ActiveMQ supports a feature called virtual topics Virtual Topics combine the flexibility of topics (multiple consumers) with the durability of a queue When a publisher writes a message to a virtual topic the consumers can choose to read it from a topic or a queue

Virtual topics are described in the ActiveMQ documentation here httpactivemqapacheorgvirtual-destinationshtml

By default EngageOne Notifications uses virtual topics but it is possible to configure it to use standard queues or topics instead This can be controlled through settings in deployproperties as described in Configuration Settings

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 113

EngageOne notifications

Configuration settings

The following settings in deployproperties can be used to configure the notifications feature at installation time or re-configuration time

Property name Default value Purpose

Properties common to all bundles

Location of the installed notification bundle CProgram FilesPitneyBowesEngageOneServernotification

notificationinstalldir

JVM settings for the notification bundle - these should not normally be changed

-Xms1g -Xmx2g-XXMaxPermSize=512m

notificationjvmsettings

The port on which the ActiveMQ web console and EngageOne health monitor can be accessed

8084notificationport

URL where the ActiveMQ web console is deployed

httpsnotification-nodepbeonet8084notificationservicesurl

Set this to true to enable https for the Notification bundle

falsenotificationhttpsenabled

(Empty)notificationtlskeyalias Specifies the name of the key if multiple certificates exist in the key store

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 114

EngageOne notifications

Configuration settings (cont)

Property name Default Purpose value

Global setting to enabledisable the Notifications feature Note that Notifications are disabled by default and must be enabled by settings this property to true

falsenotificationpublisherenabled

Name of the account used to publish messages to ActiveMQ queues and topics

eoPublishernotificationpublisherusername

Password for the publisher account It is encrypted in the deployproperties file

(Encrypted password)

notificationpublisherpassword

Name of the account used to consume messages from ActiveMQ queues and topics

eoSubscribernotificationsubscriberusername

Password for the consumer account It is encrypted in the deployproperties file

(Encrypted password)

notificationsubscriberpassword

(Empty)

This value must only be specified if the system is using an external message broker instead of the ActiveMQ instance in the Notification bundle

An example broker URL is tcpmy-jms-broker61617jmsuseAsyncSend=true

Note that jmsuseAsyncSend=true is recommended for best performance of the publishing mechanism

Time in milliseconds for which messages will be persisted in a queue Default value of zero means that messages do not expire and will be kept in the queue indefinitely

0notificationmessagetimeToLive

Properties specific to the notification bundle

notificationjmsbrokerurl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 115

EngageOne notifications

Property name Default Purpose value

Comma separated list of Communication actions that will be suppressed The available action types are Created StatusChanged DeliveryChanged CommentAdded Deleted Completed

(Empty)notificationtypecommunicationomittedactions

Comma separated list of Accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypeabatchomittedactions

Comma separated list of Non-accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypenabatchomittedactions

Comma separated list of Workflow Task actions that will be suppressed The available action types are Created Assigned Completed

(Empty)notificationtypeworkflowtaskomittedactions

By default EngageOne publishes its notifications to a topic If this property is changed to queue EngageOne create and write to queues instead

topicnotificationmessagedestinationtype

VirtualTopic notificationmessagedestinationbaseName

Each type of Notification message (Communication Batch Workflow) is written to its own topic or queue The topic or queue name is a combination of this base name plus the notification type for example VirtualTopicCommunication The default VitualTopic prefix instructs ActiveMQ to use virtual topics VirtualTopics are not a standard JMS capability so this prefix should be removed when using a JMS implementation other than ActiveMQ

compbnotificationactivemqpoolPooledConnectionFactorynotificationconnectionFactoryclass

Name of the class that implements the JMS connection factory The default implementation uses a pooled connection factory for ActiveMQ

ActiveMQ has its own configuration settings file activemqxml See the ActiveMQ documentation for details

It is not normally necessary to change this file because all relevant properties can be configured via deployproperties

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 116

EngageOne notifications

Note that activemqxml will be overwritten if the Notification bundle is reinstalled or upgraded and any changes to that file will be lost It is therefore strongly recommended not to modify activemqxml

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 117

EngageOne notifications

Messages

Notification messages are available for the following types of entity in EngageOne

bull Communications - also known as Work Items bull Batch - both Accumulated and Non-accumulated batch bull Workflow - task actions

Messages consist of three types of data

bull Headers - created by the underlying JMS implementation The same set of headers exists for all messages

bull Properties - application-specific fields that can be used in selections to filter messages received by a consumer

bull Content - the message body The fields available in the body vary by message type

Notification message common properties

All EngageOne notification messages contain the following common properties

Name Type Description

Type of event (corresponding to an EngageOne action Varies by message type)

PropertyeventType

Community identifier PropertycommunityId

Name of the community PropertycommunityName

Type of entity that the message relates to (Communication Batch or Workflow)

PropertyentityType

entityId Property Identifier for the entity Unique within this type of entity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 118

EngageOne notifications

Communication messages

Communication messages have the following additional properties and content fields

Name

workItemIdentifier

status

statusDescription

templateId

Property

templateName

createdDate

creatorName

updatedDate

deliveryOptionId

ownerName

Content

batchId

Content

Content

Type

Property

Property

Property

Content

Content

Content

Content

Description

Also known as the External Identifier This field is the human-readable identifier for the communication

Status number of the Communication at the time the notification was published

Human-readable form of the status

Identifier of template the communication was based on

Name of template the communication was based on

Time stamp when the communication was created

ID of the user who created the communication

Time stamp when the communication was last updated

ID of delivery option associated with the communication

ID of user who currently owns the communication

This field is present for a communication that completes as part of a batch

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 119

EngageOne notifications

Name Type Description

Status of a delivery item that has changed

Associated with the DeliveryChanged action

ContentdeliveryStatus

ID of a delivery item whose status has changed

Associated with the DeliveryChanged action

ContentdeliveryItemId

Communication published actions

Communication messages are published for the following actions

Action Description

A new communication has been created Created

The status of a communication has changed StatusChanged

The status of a delivery item associated with the communication has changed

DeliveryChanged

A comment has been added to the communication CommentAdded

A communication has been deleted Deleted

A communication has been completed Completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 120

EngageOne notifications

Batch messages

Notification messages are available for both Accumulated and Non-accumulated batch

Accumulated batch messages

Accumulated batch messages have the following additional properties and content

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

Type of batch run (RUN RESTART RESUME) ContentrunType

Comma separated list of delivery channel names used by the batch

ContentchannelNames

Accumulated batch messages are published for the following actions

Action Description

The batch has started Started

The batch has completed The status property indicates whether the batch was successful

Completed

Non accumulated batch messages

Messages for non-accumulated batch notifications have the following additional properties and content fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 121

EngageOne notifications

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

ID of the template associated with this batch ContenttemplateId

Name of the template associated with the batch ContenttemplateName

ID of the delivery option associated with the batch ContentdeliveryOptionId

Name of the delivery option associated with the batch ContentdeliveryOptionName

Comma separated list of delivery channel names used by the batch

ContentchannelNames

ContentnaBatchXmlFilePathType Location of the batch XML file

Non-accumulated batch messages are published for the following actions

Action Description

Started

Completed

The batch has started

The batch has completed The status property indicates whether the batch was successful

Workflow messages

Workflow messages have the following additional properties and content

Name Type Description

Status of the workflow task (UNASSIGNED ASSIGNED APPROVED REJECTED UNKNOWN)

Propertystatus

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 122

EngageOne notifications

Name Type Description

PropertyexternalReferenceIdType

ID of the entity that is referenced by this task When the externalReferenceIdType is ENGAGEONE the externalReferenceId is a Communication ID When the externalReferenceIdType is PROJECT_ASSET the externalReferenceId is a Designer Template ID

PropertyexternalReferenceId

ID of the user to whom the task is assigned if any Contentassignee

Community identifier PropertycommunityId

Type of external reference (ENGAGEONE PROJECT_ASSET)

Workflow messages are published for the following actions

Action Description

The task has been created Created

The task has been assigned to a user or unassigned The assignee field gives the ID of the user

Assigned

The task has been completed The status property indicates whether the task was approved or rejected

Completed

Consuming notification messages

If the deployment environment contains systems that can directly consume messages from an ActiveMQ broker then no further development work is required Integration is simply a matter of configuring the external systems to read from the ActiveMQ queues or topics

Where existing software is not available it is necessary to create a new component to integrate with the queues or topics in ActiveMQ and to consume the Notification messages

This section provides an overview of how to write such a component The ActiveMQ website and community should be consulted for additional details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 123

EngageOne notifications

All JMS implementations have their own specific client libraries The libraries for one implementation (for example ActiveMQ) will not inter-operate with other implementations such as IBMs WebSpere MQ The first step to creating a message consumer is therefore to obtain the appropriate libraries for the JMS implementation and for the programming language of the client

This section assumes the default ActiveMQ implementation is used by the Notifications feature and that the message consumer will be written in Java If the system has been configured to use a different JMS implementation or the client will be written in another language the steps will be similar but different client libraries will be required

There are many client libraries available for ActiveMQ for different programming languages such as Java NET Nodejs and Python See httpactivemqapacheorgcross-language-clientshtml for more information about the available clients and for code samples

A Java client makes use of the following namespaces

bull orgapacheactivemqActiveMQConnectionFactory - ActiveMQ specific classes required for establishing a connection with a message queue or topic

bull javaxjms - JMS classes that can be used with any JMS provider

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 124

EngageOne notifications

Consume messages from an ActiveMQ queue or topic

The basic steps to consume messages from an ActiveMQ queue or topic are as follows

Create a connection factory - the factory is specific to a particular JMS implementation (ActiveMQ) The brokerUrl will be of the form tcpservernameportActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl) Create a connection and start it The userName and password are configured at install time See notificationsubscriberusername andnotificationsubscriberpassword in deployproperties but note that the unencrypted password must be passed into the createConnectioncall below connection = connectionFactorycreateConnection(userName password)connectionstart() Create a session session = connectioncreateSession(false SessionAUTO_ACKNOWLEDGE) Create a destination - either a topic or a queueDestination destination = sessioncreateQueue(ConsumerMyConsumerVirtualTopicCommunication) or Destination destination = sessioncreateTopic(VirtualTopicCommunication) Create a consumer and set its message listener The listener class needs to implement the MessageListener interface consumer = sessioncreateConsumer(destination)consumersetMessageListener(myListener)

To stop receiving messages and close the connection

Close everythingconsumerclose()sessionclose()connectionclose()

The MessageListener interface defines a single method onMessage(Message message) Within that method the consumer can take any appropriate action to deal with the message

The following example outputs some basic information about a Communication message

public void onMessage(Message msg)try

Systemoutprintln(Stringformat(s s s

msggetStringProperty(workItemIdentifier)

msggetStringProperty(EventType)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 125

EngageOne notifications

msggetStringProperty(statusDescription))) catch (Exception ex)

Systemoutprintln(exgetMessage())

In the code above examples are provided for creating a queue destination and a topic destination

The EngageOne Notifications mechanism writes messages to virtual topics Consumers can read these messages from a topic named VirtualTopicEntityType or a queue named ConsumerConsumerNameVirtualTopicEntityType where EntityType is a Communication Batch or Workflow (( to be confirmed )) and ConsumerName is a unique name for the consuming application

Using other JMS implementations

It is possible to integrate the Notifications mechanism with other message queues This might be necessary in situations where there is an existing message queue or Enterprise Service Bus in the target environment

Three different approaches can be considered

bull If the external message queue or ESB can read from ActiveMQ then the two systems can work together

Notification messages are written to the internal ActiveMQ They flow into the external queue from where they are delivered to their ultimate destination

bull Use a bridge to join the two queues

This can either be a third party component or custom code can be written using the techniques outlined in Consuming notification messages on page 123

EngageOne publishes messages to the internal ActiveMQ and it is the responsibility of the bridge to propagate them to the external queue

bull Plug in a different JMS provider to replace the internal ActiveMQ

See Using a custom JMS connection factory on page 126 for more information

Using a custom JMS connection factory

The notificationconnectionFactoryclass property in deployproperties specifies the name of the class that implements the JMS connection factory to be used by the Notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 126

EngageOne notifications

producer By default the ActiveMQ connection factory is used but this can be changed in order to use a different JMS provider such as IBM WebSphere MQ

The class specified by this property must be a custom class that implements the javajmxConnectionFactory interface and also implements an additional constructor that takes a string parameter The Notifications framework will pass a broker URL into this constructor The implementation can choose whether or not to make use of this URL

The following code shows an example of a connection factory that enables notifications to be sent to the Amazon Simple Queue Service (SQS) It wraps the SQSConnectionFactory class provided by AWS

package compbengageonesampleawsimport comamazonsqsjavamessagingSQSConnectionFactoryimport comamazonawsauthEnvironmentVariableCredentialsProviderimport comamazonawsregionsRegionimport comamazonawsregionsRegionsimport javaxjmsConnectionimport javaxjmsConnectionFactoryimport javaxjmsJMSException

public class MySqsConnectionFactory implements ConnectionFactory private SQSConnectionFactory sqsConnectionFactory

public MySqsConnectionFactory(String brokerURL) sqsConnectionFactory =

SQSConnectionFactorybuilder()withRegion(RegiongetRegion(RegionsUS_EAST_1))

withAWSCredentialsProvider(newEnvironmentVariableCredentialsProvider())

build()

public Connection createConnection() throws JMSException return sqsConnectionFactorycreateConnection()

public Connection createConnection(String userName String password)throws JMSException

return sqsConnectionFactorycreateConnection(userName password)

The custom connection factory must be packaged as a jar file and installed on all servers that will run the core or batch bundles To install the jar file at the same time as installing a bundle copy the jar to the pluginsnotification-connection-factory folder of the unzipped bundle distribution media (core or batch depending which one is being installed) then install the bundle as per the instructions in the Installation Guide

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 127

EngageOne notifications

To add or replace a connection factory after the bundle installation copy the jar file to the pluginsnotification-connection-factory folder of the installed bundle

When adding or replacing the connection factory in the core bundle a restart of the core bundle is required

The Notifications mechanism by default sends JMS messages of type ldquoMapMessagerdquo The body of these messages contains a map that allows individual values to be accessed by name MapMessage is part of the JMS standard but not all JMS implementations support it Amazonrsquos SQS is an example of a JMS implementation that does not support MapMessage When the Notifications mechanism detects that a JMS does not support MapMessages it creates TextMessages whose body consists of a set of namevalue pairs serialized into JSON Message consumers need to be certain which type of message is being received so that they can appropriately handle the content of the body Messages have a ldquotyperdquo header which can be used to distinguish them

Sample message consumers

Two sample message consumers are provided on the EngageOne installation media in the samplesnotifications folder These are not intended as production code but are intended to illustrate some techniques for consuming messages from ActiveMQ

Sample 1 is a simple Java client that listens for notification on a particular topic and outputs a summary to the console

Sample 2 is a more comprehensive application with a graphical user interface As well as providing a code sample this application can be used as a diagnostic tool for subscribing to topics and queues and for examining the details of received messages This sample is written in NET (C) and makes use of the NMS library for ActiveMQ (see httpsactivemqapacheorgnms) All the ActiveMQ code is contained in the ActiveMQClient class

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 128

7 - The comparison adapter plug-in The comparison adapter plug-in is the interface which allows for customizing the process of comparing preview PDF files generated by EngageOne Designer during the submission of templates and Active Content for review and approval In addition to the existing optional implementations provided in release distribution media it is also possible to install and configure a third-party comparison tool with custom plug-in implementation

In this section

The custom plug-in implementation 130 Example implementations 131 Plug-in Installation and configuration 135

The comparison adapter plug-in

The custom plug-in implementation

The following java interface is exposed in

ltrelease-distributiongtsamplescomparison-adapterscomparison-adapter-apijar

compbviewpointcomparisonadaptersComparisonEngineAdapter

package compbviewpointcomparisonadaptersimport compbviewpointcomparisonmodelComparisonProfileimport compbviewpointcomparisonmodelJobimport compbviewpointcomparisonmodelJobOutputimport javautilList

public interface ComparisonEngineAdapter boolean comparisonEngineEnabled()boolean comparisonEngineAvailable()ListltComparisonProfilegt getComparisonProfiles()Job startComparison(StartParameters startParameters)Job getJobStatus(Job job)JobOutput getJobOutput(Job job)void terminateJob(Job job)void purgeJob(Job job JobOutput jobOutput)

The custom plug-in implementation class must implement this interface and must have a constructor that takes no parameters A comparison-adapter-apijar file must be added as a dependency to project developing the custom class The implementation of the custom class must be written in non- blockingasynchronous manner to avoid blocking EngageOne Server

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 130

The comparison adapter plug-in

Example implementations

DocBridgereg Delta

An example DocBridge Delta implementation is provided in

ltrelease-distributiongtsamplescomparison-adaptersdocbridge-delta

This implementation uses DocBridgereg Delta server native REST API calls refer to the source code for details

It is important to note that the DocBridgereg Delta plug-in sample distributed with the release media simply provides a starting point from which you may need to make configuration changes to enable proper alignment with your operational requirements

Simple comparison plug-in

This implementation requires

1 get comparison profile names

2 invoke the comparison plug-in and get the PDF containing the results of the comparison

In order to simplify implementation a PdFComparator interface is provided

compbviewpointcomparisonadapterssimplePdFComparator

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonmodelJobOutputimport javaioInputStreamimport javautilList

public interface PdFComparator JobOutput compare(String configurationName InputStream

originalPdfInputStream InputStream changedPdfInputStream)ListltStringgt getConfigurationNames()

A SimplePdFComparator class example implementation of PdFComparator interface is provided in the distribution media at the following location

ltrelease-distributiongtsamplescomparison-adapterssimple-adapter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 131

The comparison adapter plug-in

The SimplePdFComparator implements a pixel-by-pixel page comparison approach refer to the source code in the release media for details

Comparison-adapter-apijar also contains implementations so that the BaseComparisonEngineAdapter base class can be extended The base class already implements non-blocking behavior and only requires the implementation to access the PdFComparator interface

A good example of this approach is presented below

compbviewpointcomparisonadapterssimpleSimpleComparisonEngineAdapter

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonadaptersPdFComparatorimportcompbviewpointcomparisonadaptersimplBaseComparisonEngineAdapter

public class SimpleComparisonEngineAdapter extendsBaseComparisonEngineAdapter

Overrideprotected PdFComparator createPdFComparator()

return new SimplePdFComparator()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 132

The comparison adapter plug-in

Command line adapter implementation

A similar approach is used for CommandLineComparisonEngineAdapter implementation

compbviewpointcomparisonadapterscommandlineCommandLineComparisonEngineAdapter

package compbviewpointcomparisonadapterscommandline

import compbviewpointcomparisonadaptersPdFComparatorimport orgslf4jLoggerimport orgslf4jLoggerFactoryimport javautilList

public class CommandLineComparisonEngineAdapter extendsBaseComparisonEngineAdapter

private static final Logger logger = LoggerFactorygetLogger(CommandLineComparisonEngineAdapterclass)

public static final StringCOMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX =

commandlinecomparisonadapterprofilesprivate static final String

COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED = Commands profiles for comparison plugin not configured

public CommandLineComparisonEngineAdapter() CommandLinePdfComparator commandLinePdfComparator =

(CommandLinePdfComparator) pdFComparator

getCommandsProfiles()forEach(commandLinePdfComparatoraddCommandProfile)

Overrideprotected PdFComparator createPdFComparator()

return new CommandLinePdfComparator()

private ListltCommandProfilegt getCommandsProfiles() try

CommandProfilesReader profilesReader = new CommandProfilesReader(SystemgetProperties()

COMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX)ListltCommandProfilegt commandProfiles =

profilesReadergetCommandProfiles()if (commandProfilessize() == 0)

throw new RuntimeException(COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED)

return commandProfiles

catch (Exception e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 133

The comparison adapter plug-in

loggererror(egetMessage())throw new RuntimeException(e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 134

The comparison adapter plug-in

Plug-in Installation and configuration

Once the custom plug-in implementation has been written you will need to install and configure as follows

Installation

The custom implementation must be packaged as a jar file and installed on all servers that will run the core bundles To install the jar files at the same time as installing a bundle copy

the jar file along with its transient jars to the

ltrelease-distributiongtbundlescorepluginscomparison-engine-adaptersltanyfoldergt

folder of the unzipped core bundle distribution media then install the bundle as per the instructions in the Comparison plug-in support section of the Installation Guide To add or replace a plug-in after the core bundle installation copy the jar files to

ltBundle installation root foldergtcorepluginscomparison-engine-adaptersltany foldergt

folder of the installed core bundle

When adding or replacing the plug-in in the core bundle a restart of the core bundle is required

Configuration

The final configuration requirement is to

1 set the comparisonadapterclass property in deployproperties which specifies the name of the class to be used by the comparison process

2 Run eos groovy script in order to configure core bundle as per the instructions in the Installation Guide

For example a stand alone server

eosgroovy -b core -p deployproperties -t single configure

Along with plug-in jars any java properties files can be copied to plugin folder Note that all properties files will be automatically loaded to system properties and can be retrieved calling SystemgetProperties()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 135

8 - Appendix A - Editor methods The following is a list of editor methods

In this section

LoadContents 137 SaveContents 137 SpellCheck 138 IsComplete 138 IsModified 139 GetVersion 139

Appendix A - Editor methods

LoadContents

LoadContents

Function

Syntax

SaveContents

SaveContents

Function

Syntax

Comments

Instructs the Interactive Editor to load the document files passed in

VOID LoadContents (PropertiesXmlPath PublicationPath HipPath InstanceXMLPath InstanceSchemaPath XFormPath ReviewModeFlag SpellCheckMode ServerUrl SpellerXmlPath)

Allows you to save the current state of a loaded document The collected data will be streamed from a field into the instance file at the location passed via InstanceXMLPath

The document content will be saved back to the publication file PublicationPath The updated Production HIP HipPath will be saved

VOID SaveContents( VOID )

IsComplete() should be called before SaveContents() to ensure all required fields have been completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 137

Appendix A - Editor methods

SpellCheck

SpellCheck

Function

Syntax

IsComplete

IsComplete

Function

Syntax

Comments

Instructs the editor to spell check all user editable content

VOID SpellCheck( VOID )

Checks to see if all required fields have been completed Returns ldquo1rdquo if the document is complete and ldquo0rdquo if not

BOOL IsComplete( VOID )

This method must be called prior to SaveContents to ensure the document is complete

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 138

Appendix A - Editor methods

IsModified

IsModified

Function

Syntax

Comments

GetVersion

GetVersion

Function

Syntax

Note This method will not tell you if any data fields have been modified

Checks to see if any of the documentrsquos editable content has been modified The editable content is saved in the HIP and PUBX file If editable content has not been modified these files will not need saving back to the server

Returns ldquo1rdquo if the document is modified and ldquo0rdquo if not

BOOL IsModified( VOID )

This method can be called to add efficiency to your process It avoids uploading a Publication file and Production HIP file back to the server if no modification has been made

Returns a string containing the current version number of the Interactive Editor For example 5046352

STRING GetVersion( VOID )

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 139

9 - Appendix B - SOAP API This section describes relevant EngageOne Web services that could be utilized for custom application integration

In this section

Identifiers 141 Search filter 142 Promotion service 143 Folder service 164 Data push service 168 Delivery management service 170 Dictionary service 178 Domain service 180 Editor service 182 Keymap service 185 Metadata service 193 Request status update service 196 Security service 198 Template service 204 Workitem service 227 Attachment service 252 Workflow service 264 Delivery service 276

Appendix B - SOAP API

Identifiers

Many of the services accept as part of their requests identifiers for various entities in the system

For example in order to search for templates the TemplateServices searchTemplates operations take in an optional template identifier The identifiers as part of the request are of two forms either an IntegerIdOrName or a StringIdOrName Refer to the listing of inputs for each service below to see which operations take which identifier

Most of the entities in the system are uniquely identified by a unique integer value When searching for those types of entities you would use the IntegerIdOrName On the other hand domains are entities which are uniquely identified by a string identifier so you would need to use a StringIdOrName when searching for those

In either case all entities can be searched by using the name of the entity IntegerIdOrName and StringIdOrName are choice constructs which allow the name of an entity to be specified Please keep in mind that the name of an entity is not necessarily unique in the system and will potentially return more than one entity

The format of the IntegerIdOrName and StringIdOrName elements are as follows

lttemplategtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlttemplategt

The id element is a string for domain entities and an integer otherwise

All service operations that return entities will return the unique identifiers of the entities This way you can obtain the unique identifiers for use in subsequent calls to the services

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 141

Appendix B - SOAP API

Search filter

For most search operations the request message will include the filter element The filter can be LIST or DETAIL

ltcomfiltergtLISTltcomfiltergt

If you specify LIST less information will be returned in the response

DETAIL means the response will contain more detailed information

Consult the documentation below for each search operation to see the exact meaning of LIST versus DETAIL

For example if you want to return a listing of templates you would use the LIST filter in the request

lttemSearchTemplatesgtltcomfiltergtLISTltcomfiltergt

lttemSearchTemplatesgt

On the other hand if you want to retrieve a template with all of the files (returned as attachments) with the response you would use the DETAIL filter in the request

lttemSearchTemplatesgtltcomfiltergtDETAILltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomnamegtSimple Templateltcomnamegtltidentgt

lttemplategtlttemplatesgt

lttemSearchTemplatesgtFile Attachments

All files sent into a service operation request and returned from a service operation response are transferred as MTOM attachments

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 142

Appendix B - SOAP API

Promotion service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSPromotionServicewsdl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 143

Appendix B - SOAP API

createImportAssetsJob()

Description this web service creates an import assets job

Parameters

InputCreateImportAssetsJob

request type CreateImportAssetsJob - extension of type RequestMessage importItems type ImportItem - minOccurs=1 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

priority type boolean - minOccurs=0 maxOccurs=1

OutputCreateImportAssetsJobResponse

response type CreateImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 144

Appendix B - SOAP API

Fault PromotionFault - fault type ServiceFault

Sample request (Open Import)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltfilePathgtDprojectpromotionpreviewfolder1OnezipltfilePathgt

ltdestinationFoldergtfolder1ltdestinationFoldergtltimportItemsgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgt

ltprioritygttrueltprioritygtltpromCreateImportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 145

Appendix B - SOAP API

Sample request (Promotion Bundle)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2promotion-2018-02-08_08_49_23_758-7291assets-descriptorjsonltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgtltprioritygttrueltprioritygt

ltpromCreateImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENV Header xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3CreateImportAssetsJobResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt0e273a8b-321d-4b6d-975a-60357c8aeb50lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_13_49_5983-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtwaitingltns4statusgt

ltimportJobInfogtltns3CreateImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 146

Appendix B - SOAP API

getImportAssetsJob()

Description This Web service gets an import assets job

Parameters

InputGetImportAssetsJob

request type GetImportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

OutputGetImportAssetsJobResponse

response type GetImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 147

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltjobIdgt2017-03-31_12_16_45372-importltjobIdgt

ltpromGetImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 148

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt252feaad-71ef-434e-b50e-b5861e1b3bb7lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_12_16_45372-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtcompleteltns4statusgtltns4overallResultgt

ltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtimportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4relativePathFromDescriptorgt

MyTemplatezipltns4relativePathFromDescriptorgtltns4rootPathgtDTemplatesltns4rootPathgt

ltns4assetgtltns4resultgt

ltns4statusgtcompleteltns4statusgtltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns2resourceIdsgt47730ltns2resourceIdsgt

ltns4resultgtltns4assetsResultsgt

ltimportJobInfogtltns3GetImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 149

Appendix B - SOAP API

createExportAssetsJob()

Description this Web Service operation is used to create an export assets job

Parameters

Input

CreateExportAssetsJob

request type CreateExportAssetsJob - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType type- string with restriction

enum FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTIONminOccurs=1 maxOccurs=1

options type ExportOption - minOccurs=0 maxOccurs=unbounded

name string - with restriction enum includeSubFoldersdeliveryOptionImportStrategy minOccurs=1 maxOccurs=1

value type string - minOccurs=1 maxOccurs=1

option related to FOLDER asset type includeSubFolders true | false

option related to DELIVERY_OPTION asset type deliveryOptionImportStrategyOMIT_IF_ANY_CONFLICT | MERGE_NEW_CHANNELS | OVERWRITE_EVERYTHING

exportDirectory type string - minOccurs=1 maxOccurs=1

Comment use id or assetLogicalPath parameter alternatively in the request

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 150

Appendix B - SOAP API

CreateExportAssetsJobResponse

response type CreateExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 151

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgtltsoapenvHeadergtltsoapenvBodygt

ltpromCreateExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtfolder1ltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportItemsgt

ltmodassetLogicalPathgtmyDeliveryOptionltmodassetLogicalPathgtltmodtypegtDELIVERY_OPTIONltmodtypegtltmodoptionsgt

ltmodnamegtdeliveryOptionImportStrategyltmodnamegtltmodvaluegtOVERWRITE_EVERYTHINGltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromCreateExportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3CreateExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt1001fb8e-183d-405b-b420-7276fb82bee5lttokengtltSessionTokengt

ltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtwaitingltns4statusgt

ltexportJobInfogtltns3CreateExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 152

Appendix B - SOAP API

getExportAssetsJob()

Description this Web service gets an export assets job

Parameters

Input

GetExportAssetsJob

request type GetExportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

Output

GetExportAssetsJobResponse

response type GetExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 153

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtPmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltjobIdgt2017-04-07_11_46_16456-exportltjobIdgtltpromGetExportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 154

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt501a02fe-a29e-474b-8130-dc1549caa48clttokengt

ltSessionTokengtltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtcompletedltns4statusgtltns4overallResultgt

ltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0

ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtexportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4sourceResourceIdgt115ltns4sourceResourceIdgtltns4relativePathFromDescriptorgtassetsasset-0001zip

ltns4relativePathFromDescriptorgtltns4rootPathgtdMyAssetsexportpromotion-2017-04-07_11_46_16_205-9465

ltns4rootPathgtltns4assetgtltns4resultgt

ltns4statusgtCOMPLETEDltns4statusgtltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegt

ltns4resultgtltns4assetsResultsgt

ltexportJobInfogtltns3GetExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 155

Appendix B - SOAP API

getImportPreview()

Description this web Service operation is used to get a preview of the import

Parameters

Input

GetImportPreview

request type GetImportPreview - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 mode type ImportPreviewMode - type string with restriction -

enum PROMOTION ZIPS PARSED_ZIPS- minOccurs=1 maxOccurs=1

openImportRegularExpressionFilter type string - minOccurs=0 maxOccurs=1

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 156

Appendix B - SOAP API

GetImportPreviewResponse

response type GetImportPreviewResponse - extension of type ResponseMessage

importItems type ImportItem - minOccurs=0 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

previewRoot type ImportPreviewFolder - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1

assets type ImportPreviewAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=4 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1 fileName type string - minOccurs=1 maxOccurs=1 eoVersion type string - minOccurs=1 maxOccurs=1

subFolders type ImportPreviewFolder - minOccurs=0 maxOccurs=unbounded

globalAssets type ImportPreviewGlobalAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum ACDOCUMENT_CLASS- minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded fileName type string - minOccurs=1 maxOccurs=1

totalAssetsCount type int - minOccurs=1 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 157

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpreviewltpathgtltmodegtPARSED_ZIPSltmodegt

ltpromGetImportPreviewgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 158

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportPreviewResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtaffff535-b301-4d69-bd61-75c3df400246lttokengtltSessionTokengt

ltauthContextgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder1Onezipltns4filePathgt

ltns4destinationFoldergtfolder1ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder2ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderfolder4Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderfolder4ltns4destinationFoldergt

ltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderPublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewOnezipltns4filePathgtltns4destinationFoldergtltns4destinationFoldergt

ltimportItemsgtltpreviewRootgt

ltns4typegtTEMPLATEltns4typegtltns4namegtrootltns4namegtltns4pathgtltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtOneltns4pathgtltns4fileNamegtDprojectpromotionpreviewOnezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder1ltns4namegtltns4pathgtfolder1ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder1Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder1

Onezipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtACltns4typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 159

Appendix B - SOAP API

ltns4namegtfolder2ltns4namegtltns4pathgtfolder2ltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder2Publishable Active Contentltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder2

PublishableActiveContentzipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder3ltns4namegtltns4pathgtfolder3ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

Onezipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtACltns4typegtltns4namegtac_folderltns4namegtltns4pathgtfolder3ac_folderltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder3ac_folderPublishable Active

Contentltns4pathgt ltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderPublishableActiveContentzipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder4ltns4namegtltns4pathgtfolder3ac_folderfolder4ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3ac_folderfolder4Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderfolder4Onezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4subFoldersgtltns4subFoldersgt

ltpreviewRootgtlttotalAssetsCountgt8lttotalAssetsCountgt

ltns3GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 160

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity2ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser2ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401assets-descriptorjsonltpathgt

ltmodegtPROMOTIONltmodegtltpromGetImportPreviewgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns4GetImportPreviewResponse xmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtd046d82b-c954-42b4-aca7-cd0a6455ee0elttokengt

ltSessionTokengtltauthContextgtltimportItemsgt

ltns2filePathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401

assets-descriptorjsonltns2filePathgtltimportItemsgtltpreviewRootgt

ltns2typegtTEMPLATEltns2typegtltns2namegtrootltns2namegtltns2pathgtltns2pathgtltns2assetsgt

ltns2typegtTEMPLATEltns2typegtltns2namegtTemplate1ltns2namegtltns2pathgtTemplate1ltns2pathgtltns2fileNamegttemplate1zipltns2fileNamegtltns2eoVersiongt10ltns2eoVersiongt

ltns2assetsgtltpreviewRootgtltglobalAssetsgt

ltns2typegtDOCUMENT_CLASSltns2typegtltns2namegtmyDocumentClassltns2namegtltns2fileNamegtdocumentClass1jsonltns2fileNamegt

ltglobalAssetsgtlttotalAssetsCountgt2lttotalAssetsCountgt

ltns4GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 161

Appendix B - SOAP API

getAssetDependencies()

Description this Web Service operation retrieves export assets dependencies

Parameters

Input

GetAssetDependencies

request type GetAssetDependencies - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum

FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTION - minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=unbounded see

CreateExportAssetsJob() operation for ExportOption definition

Comment use id OR assetLogicalPath parameter in request

Output

GetAssetDependenciesResponse

response type GetAssetDependenciesResponse - extension of type ResponseMessage

exportItems type ExportItem - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum AC DOCUMENT_CLASS -

minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 162

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope[

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelope|httpschemasxmlsoaporgsoapenvelope]

xmlnsprom=httppbcomEngageOnewspromotion

xmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetAssetDependenciesgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromGetAssetDependenciesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope[

xmlnssoap=httpschemasxmlsoaporgsoapenvelopegt|httpschemasxmlsoaporgsoapenvelope]

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetAssetDependenciesResponse[

xmlnsns2=httppbcomEngageOnewsmodel|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt86d472c5-fc85-4552-8ed4-a979f9778c6alttokengt

ltSessionTokengtltauthContextgtltexportItemsgt

ltns2idgt357ltns2idgtltns2assetLogicalPathgtmyDocumetClassltns2assetLogicalPathgtltns2typegtDOCUMENT_CLASSltns2typegt

ltexportItemsgtltns4GetAssetDependenciesResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 163

Appendix B - SOAP API

Folder service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSFolderServicewsdl

listFolderContents()

Description

This Web Service operation is used to list folder contents

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 164

Appendix B - SOAP API

Parameters

Input

ListFolderContents

request type ListFolderContents - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 filter type ListFolderContentsFilter - minOccurs=0 maxOccurs=unbounded ListFolderContentsFilter - type string enum

values FOLDER TEMPLATENON-INTERACTIVE-FOLDERNON-INTERACTIVE-TEMPLATEACTIVE-CONTENT-FOLDERACTIVE-CONTENTVERSION

mode type ListFolderContentsMode - minOccurs=1 maxOccurs=1 default=POPULATED ListFolderContentsMode - type string enum values POPULATED ALL

Output

ListFolderContentsResponse

response type ListFolderContentsResponse - extension of type ResponseMessage

folderContent type FolderContent - minOccurs=1 maxOccurs=1 id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded

templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 path type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 interactive type boolean - minOccurs=1 maxOccurs=1 versions type FolderVersion - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 current type boolean - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1

importedBy type string - minOccurs=1 maxOccurs=1 importedDate type string - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1 publishDate type string - minOccurs=1 maxOccurs=1

Fault

FolderFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 165

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsfol=httppbcomEngageOnewsfolder xmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltfolListFolderContentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltpathgtltpathgtlt--Optional--gtltfiltergtACTIVE-CONTENT-FOLDERltfiltergtltfiltergtFOLDERltfiltergtltfiltergtTEMPLATEltfiltergtltmodegtALLltmodegt

ltfolListFolderContentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 166

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3ListFolderContentsResponse xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsfoldergt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9c3d1b67-322b-4091-a850-b17df1fe4f44lttokengtltSessionTokengt

ltauthContextgtltfolderContentgt

ltidgt0ltidgtltfoldersgt

ltidgt547ltidgtltnamegtac_folderltnamegtltdescriptiongtac_folderltdescriptiongtlttypegtactive-contentlttypegt

ltfoldersgtltfoldersgt

ltidgt1012ltidgtltnamegttemplate_folderltnamegtlttypegttemplatelttypegt

ltfoldersgtlttemplatesgt

ltidgt844ltidgtltnamegtOneltnamegtltdescriptiongtOneltdescriptiongtltpathgtltpathgtlttypegttemplatelttypegtltinteractivegttrueltinteractivegtltimportedBygtuser1ltimportedBygtltimportedDategtThu Apr 20 000000 CEST 2017ltimportedDategtltversiongt10ltversiongtltpublishDategt22-Apr-2015ltpublishDategt

lttemplatesgtltfolderContentgt

ltns3ListFolderContentsResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 167

Appendix B - SOAP API

Data push service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDataPushServicewsdl

pushData()

Description

This Web service pushes data into the EngageOne Server

This Web service validates request data then invokes a common framework for mapping or persisting the data passed in by the service request

Parameters

Input

PushDataRequest

request type PushData - extension of type RequestMessage

template type TemplateIdentifier - optionalident type IntegerIDOrName - optionaleffectiveDate type date - optional

pushDataFile type DataPushFile data type base64Binary

mapId type string returnFiles type boolean - optionalpushUserId type string - optionalexternalId type string - optional

Output

PushDataResponse

response type PushDataResponse - extension of type ResponseMessage

workItem type workItem - optional

Fault

DataPushFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 168

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopegtltsoapenvBodygtltns11PushData xmlnsns11=httppbcomEngageOnewsdatapush

xmlnsxsi=httpwwww3org2001XMLSchema-instancexsitype=ns11PushDatagt

ltauthContext xmlns=httppbcomEngageOnewscommongtltUsernameTokengt ltdomaingt ltidentgt ltnamegtEngageOneltnamegt

ltidentgtltdomaingtltuserIdgteosuperltuserIdgtltpasswordgtPassword1ltpasswordgt

ltUsernameTokengtltauthContextgtltpushDataFilegtltdatagtltdatagt

ltpushDataFilegtltmapIdgttestltmapIdgtltpushUserIdgteomanagerltpushUserIdgtltexternalIdgt1234567ltexternalIdgt

ltns11PushDatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns1PushDataResponse

xmlnsns1=httppbcomEngageOnewsdatapushxmlnsns2=httppbcomEngageOnewsmodel

xmlnsns3=httppbcomEngageOnewscommongtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtb9da9e70833f22a93b71ac2671aed830_1275060509093_2lttokengtltSessionTokengt

ltauthContextgtltns1PushDataResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 169

Appendix B - SOAP API

Delivery management service

suspendDeliveryItem()

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryManagementServicewsdl

searchDeliveryOptions()

Description

This Web service retrieves delivery options by delivery option ID or name or the delivery options associated with a given template ID or name

If the search filter is set to LIST a list of delivery options will be returned without their respective delivery channels If the search filter is DETAIL the delivery channels devices and recipients will also be returned

If both template and delivery option details are provided in the request templates will be searched that match both the template and delivery option criteria

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 170

Appendix B - SOAP API

Parameters

Input

SearchDeliveryOptionsRequest

request type SearchDeliveryOptions - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionident type IntegerIdOrName

Output

SearchDeliveryOptionsResponse

response type SearchDeliveryOptionsResponse - extension of type ResponseMessage

deliveryOptions - optionaldeliveryOption - unbounded type DeliveryOption - extension of abstract type Entity id type ID - type int with restriction name type string channels - optional

channel - unbounded type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string

mode type DeliveryChannelMode - type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

Device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 171

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryOptionsgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2119ec197f798916ec4ddaa4eaa50939_1260816474406_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

ltcomidgtltcomidgtltidentgt

ltdeliveryOptiongtltdeliveryOptionsgt

ltdelSearchDeliveryOptionsgtltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 172

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryOptionsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryOptionsgtltdeliveryOptiongt

ltns2idgt1ltns2idgtltns2namegtCHO1ltns2namegt

ltdeliveryOptiongtltdeliveryOptionsgt

ltns4SearchDeliveryOptionsResponsegtltenvBodygt

ltenvEnvelopegt

searchDevices()

Description

This Web service retrieves devices by device ID or name or devices associated with the specified delivery options or templates

The search filter is not used by this service

If device template delivery option details are provided in the request devices will be searched that match all of the provided criteria

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 173

Appendix B - SOAP API

Parameters

Input

SearchDevicesRequest

request type SearchDevices - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionsident type IntegerIdOrName

devices - optionaldevice - unboundedident type IntegerIdOrName preview - optional type boolean

Output

SearchDevicesResponse

response type SearchDevicesResponse extension of type ResponseMessage

devices - optionaldevice - unbounded type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 174

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDevicesgt lt--Optional--gtltcomauthContextgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomUsernameTokengt ltcomdomainNamegtFirstDomainltcomdomainNamegtltcomuserIdgteosuperltcomuserIdgt

lt--Optional--gtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gtltcomfiltergtDETAILltcomfiltergtlt--Optional--gtlttemplatesgt

lttemplategtltidentgt lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 175

Appendix B - SOAP API

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltdeliveryOptiongt

ltdeliveryOptionsgtlt--Optional--gtltdevicesgt lt--1 or more repetitions--gt

ltdevicegt ltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlt--Optional--gtltpreviewgtltpreviewgt

ltdevicegtltdevicesgt

ltdelSearchDevicesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 176

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchDevicesResponsexmlnsns1=httppbcomEngageOnewsdeliveryManagementxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtbfdba5d08d1299b13651c7c6e25df6a1_1260900326187_0lttokengt

ltSessionTokengtltauthContextgt

ltdevicesgt ltdevicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgt

ltns2HIPIdgt110ltns2HIPIdgtltns2metaIdgt111ltns2metaIdgt

ltdevicegtltdevicesgt

ltns1SearchDevicesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 177

Appendix B - SOAP API

Dictionary service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDictionaryServicewsdl

searchSpellerManifest()

Description

This Web service is used to retrieve the speller manifest loaded in the system

The speller manifest contains a listing of all languages supported by the system and is primarily used by EngageOne Interactive Editor (ActiveX component) for loading dictionary resources

A custom application will not need to parse this file directly but make it available for the Interactive Editor to use

For more infromation on how to integrate the Interactive Editor into a custom application see Integrating with EngageOne SOAP

Parameters

Input

SearchSpellerManifestRequest

request type SearchSpellerManifest - extension of type SearchRequestMessage

Output

SearchSpellerManifestResponse

response type SearchSpellerManifestResponse - extension of type ResponseMessage

manifest - optional type SpellerManifest - extension of abstract type Entity id type ID - type int with restriction data - optional type base64Binary

Fault

DictionaryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 178

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdic=httppbcomEngageOnewsdictionaryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdicSearchSpellerManifestgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltdicSearchSpellerManifestgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchSpellerManifestResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdictionaryxmlnsns5=httppbcomEngageOnewskeymapgt

ltmanifestgt ltns2idgt97ltns2idgtltns2datagt

ltxopIncludehref=ciddata-92afb4f2-e02b-41d0-926b-7eb02575fee1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltmanifestgt

ltns4SearchSpellerManifestResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 179

Appendix B - SOAP API

Domain service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDomainServicewsdl

searchDomains()

Description

This Web service can be used to retrieve a list of EngageOne domains A typical use for this operation would be to pass an empty request and retrieve a list of all domains

This Web service operation is the only operation which does not require authentication

Parameters

Input

SearchDomainsRequest

request type SearchDomains - extension of type RequestMessage

domains - optionaldomain ident type StringIdOrName

Output

SearchDomainResponse

response type SearchDomainsResponse - extension of type ResponseMessage

domains - optionaldomain - unbounded type Domain id type string name type string

Fault

DomainFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 180

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdom=httppbcomEngageOnewsdomainxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdomSearchDomainsgt ltdomSearchDomainsgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDomainsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdomainxmlnsns5=httppbcomEngageOnewskeymapgt

ltdomainsgt ltdomaingt ltns2idgtBB81F0DC-AF0A-4318-9398-D37832916DC9ltns2idgt

ltns2namegtA01ltns2namegtltdomaingtltdomaingt ltns2idgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltns2idgt

ltns2namegtFirstDomainltns2namegtltdomaingtltdomaingt ltns2idgt29CAB1A2-586E-4459-977B-C11819A1680Dltns2idgt

ltns2namegtSecondDmainltns2namegtltdomaingtltdomaingt ltns2idgt232CD981-5208-4C4D-A89B-C3B739266C54ltns2idgt

ltns2namegtThirdltns2namegtltdomaingt

ltdomainsgtltns4SearchDomainsResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 181

Appendix B - SOAP API

Editor service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSEditorServicewsdl

Note Some tags have been broken up for formatting purposes

retrieveResources()

Description

This Web service is used to retrieve resources required by the EngageOne Interactive Editor (ActiveX component)

A custom application intending on embedding the Interactive Editor must use this service operation to retrieve files on behalf of the editor

See Integrating with EngageOne SOAP for more information

Parameters

Input

RetrieveResourcesRequest

request type RetrieveResources extension of type RequestMessage

resources resource - unboundedid type ID - type int with restriction

Output

RetrieveResourcesResponse

response type RetrieveResourcesResponse - extension of type ResponseMessage

resources resource - unbounded type EditorResource - extension of abstract type Entity id type ID - type int with restriction data type base64Binary

Fault

EditorFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 182

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsedit=httppbcomEngageOnewseditorxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtlteditRetrieveResourcesgt

ltcomauthContextgt ltcomSessionTokengt

ltcomtokengt13be6dbe35df5bb735401da4d94dc9c0_1261584686465_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltresourcesgt

ltresourcegt ltidgt97ltidgt

ltresourcegtltresourcesgt

lteditRetrieveResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegtltenvHeadergtltenvBodygt

ltns4RetrieveResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewseditorgt

ltresourcesgt ltresourcegt

ltns2idgt97ltns2idgt

lt--The following ltns2datagt tag has been broken up for formattingpurposes--gt

ltns2datagtPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTcGVsbGVycz4NCjxMYW5ndWFnZXM+DQo8TGFuZ3VhZ2UgTmFtZT0iRU5HTElTSCI+DQo8TGV4aWNvbkZpbGUgTmFtZT0iX0VOR0xJU0guTEVYIiBTUklEPSI2Ii8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfRU5HTElTSC5BQkIiIFNSSUQ9IjQiLz4NCjxJbmRleEZpbGUgTmFtZT0iX0VOR0xJU0guSURYIiBTUklEPSI1Ii8+DQo8SGlzdG9yeUZpbGUgTmFtZT0iX0hJU1RPUlkuR0IiIFNSSUQ9IjMyIi8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5HQiIgU1JJRD0iODYiLz4NCjwvTGFuZ3VhZ2U+DQo8TGFuZ3VhZ2UgTmFtZT0iQU1FUklDQU4iPg0KPExleGljb25GaWxlIE5hbWU9I

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 183

Appendix B - SOAP API

l9BTUVSSUNBLkxFWCIgU1JJRD0iMTAwIi8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfQU1FUklDQS5BQkIiIFNSSUQ9Ijk4Ii8+helliphelliphelliphelliphelliphelliphelliphelliphelliphellipDQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfU1dJU1NfTi5BQkIiIFNSSUQ9IjczIi8+DQo8SW5kZXhGaWxlIE5hbWU9Il9TV0lTU19OLklEWCIgU1JJRD0iNzQiLz4NCjxIaXN0b3J5RmlsZSBOYW1lPSJfSElTVE9SWS5DSDIiIFNSSUQ9IjI1Ii8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5DSDIiIFNSSUQ9Ijc5Ii8+DQo8L0xhbmd1YWdlPg0KPC9MYW5ndWFnZXM+DQo8L1NwZWxsZXJzPg0K ltns2datagt

ltresourcegtltresourcesgt

ltns4RetrieveResourcesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 184

Appendix B - SOAP API

Keymap service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSKeymapServicewsdl

ImportKeymap()

Description

This Web service is used to import a key map file into the EngageOne system A key map file is generated using the EngageOne Key Map Generator

The name of the key map and the image path must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

ImportKeymapRequest

request type ImportKeymap - extension of type RequestMessage

keymapname type string imagepath type string archive type base64Binary

Output

ImportKeymapResponse

response type ImportKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePath type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 185

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyImportKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltimagePathgtCltimagePathgtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyImportKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegtltns2imagePagegtCltns2imagePagegt

ltkeymapgtltns4ImportKeymapResponsegt

ltenvBodygtltenvEnvelopegt

searchKeyMaps()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 186

Appendix B - SOAP API

Description

This Web service is used to get key map information key map file and key map image information for a specified key map

This service requires the key map name or ID to be specified in order to return information

If the user wants the key map XML file to be returned the DETAIL filter has to be specified in the request

If searching for a key map image file the key image name or ID needs to be specified in the request in addition to key map ID The files are returned as base64Binary attachments

This service provides additional search capabilities to the HTTP request method of getting key map image files in a conformed way This service is similar to other search services in EngageOne Server

Note You can only search for an image file for the specified key map at a time The service will not return more then one image file per request

There are four scenarios available for requests

bull filter = LIST - the service will return the key map information (name and image path) bull filter = DETAIL - the service will return the key map information and the key map XML file bull filter = LIST and image requested - the service will return the key map information and the requested image bull filter = DETAIL and image requested - the service will return the key map information the key map XML file and the requested image

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 187

Appendix B - SOAP API

Parameters

Input

SearchKeymapRequest

request type Search - extension of type SearchRequestMessage

bull filter = LIST or DETAIL- enumeration has to be specified depending on what information and files has to be returned

bull keymaps

keymapident type IntegerIdOrName - required parameter images - optional inclulded if image file to be returned image - minOccurs=1 maxOccurs=1 (Only on request)ident type IntegerIdOrName

Note image should be used to request a keyed image

Output

SearchKeymapsResponse

response type SearchKeymapResponse - extension of type ResponseMessage

keymapskeymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePage type string data type base64Binary - contains attachment with requested files images - optional include if image file to be returned image type KeyedImage - extension of abstract type Entity name type string data type base64Binary

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 188

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltkeySearchKeymapsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtmydomainltcomnamegt

ltcomidentgtltcomdomaingt

ltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltkeymapsgt

ltkeymapgtltidentgt

ltcomnamegtExternalKeyMapltcomnamegtltidentgtltimagesgt

ltimagegtltidentgt

ltcomnamegtC8643C4EEF874052A2DB4A97B0063690ltcomnamegtltidentgt

ltimagegtltimagesgt

ltkeymapgtltkeymapsgt

ltkeySearchKeymapsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 189

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchKeymapsResponsexmlnsns1=httppbcomEngageOnewskeymapxmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewskeymapxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt96707b532a8348359ac9cb4e6904d79b_132 2713559246_0lttokengt

ltSessionTokengtltauthContextgtltkeymapsgt

ltkeymapgtltns5idgt1ltns5idgtltns5namegtExternalKeyMapltns5namegt

ltns5imagePathgtCEngageOneQAKeyMapltns5imagePathgt

ltns5datagt ltxopInclude

href=ciddata-38d4d706-2281-45c2-96bb-e8e95407d05awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagesgt

ltns5imagegtltns5idgt1ltns5idgt

ltns5namegtC8643C4EEF874052A2DB4A97B0063690ltns5namegtltns5datagt

ltxopIncludehref=ciddata-93da5279-1d5b-4f9c-9a78-c9701ab93e81wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagegt

ltns5imagesgtltkeymapgt

ltkeymapsgtltns1SearchKeymapsResponsegt

ltenvBodygtltenvEnvelopegt

updateKeymap()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 190

Appendix B - SOAP API

Description

This Web service is used to update a key map file into the EngageOne system

The update process adds any new images and updates existing images in the target directory A key map file is generated using the EngageOne Key Map Generator

The name of the key map must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

UpdateKeymapRequest

request type UpdateKeymap - extension of type RequestMessage

keymapname type string archive type base64Binary

Output

UpdateKeymapResponse

response type UpdateKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 191

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyUpdateKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyUpdateKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4UpdateKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegt

ltkeymapgtltns4UpdateKeymapResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 192

Appendix B - SOAP API

Metadata service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSMetadataServicewsdl

searchMetadata()

Description

This Web service is used to search for metadata associated with a document class as specified by the document class identifier (ID or name)

If the search filter is set to LIST only the document class will be returned If the search filter is set to DETAIL the document class and metadata fields and any associated workflow will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 193

Appendix B - SOAP API

Parameters

Input

SearchMetadataRequest

request type SearchMetadata - extension of type SearchRequestMessage

docClasses - optionaldocClass ident type IntegerIdOrName

Output

SearchMetadataResponse

response type SearchMetadataResponse - extension of type ResponseMessage

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optionalfield - unbounded type MetadataField - extension of abstract type Entity id type ID - type int with restriction name type string type MetadataFieldType - type string with restriction - enum STRING DATE NUMBER CHOICE value - optional - type MetadataFieldValue MetadataString type string MetadataDate type date MetadataNumber type decimal MetadataChoice is recursive

workflows - optionalworkflow - unbounded type Workflow - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

MetadataFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 194

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsmet=httppbcomEngageOnewsmetadataxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltmetSearchMetadatagt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltmetSearchMetadatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchMetadataResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmetadataxmlnsns5=httppbcomEngageOnewseditorgt

ltdocClassesgt ltdocClassgt

ltns2idgt11ltns2idgtltns2namegtInvoiceltns2namegtltns2descriptiongt

ltdocClassgtltdocClassgt

ltns2idgt12ltns2idgtltns2namegtClaimltns2namegtltns2descriptiongt

ltdocClassgtltdocClassesgt

ltns4SearchMetadataResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 195

Appendix B - SOAP API

Request status update service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSRequestStatusUpdateServicewsdl

postEvent()

Description

This Web service is used by EngageOne Deliver to provide information requests received from EngageOne

Parameters

Input

RequestStatusUpdateRequest

request type DIJInformation - extension of type RequestMessage

docInstanceID type string code type string message type string

Output

RequestStatusUpdateResponse

response type ResponseMessage

Fault

fault type ServiceFault

result type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 196

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsstat=httppbcomEngageOnewsdeliverystatusupdatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltstatRequestStatusUpdategtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtEngageOneltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtlt--Optional--gtltcompasswordgtPasswordltcompasswordgtlt--Optional--gtltcomtransientSessiongttrueltcomtransientSessiongt

ltcomUsernameTokengtltcomauthContextgtltDIJInformationgt

ltdocInstanceIDgtBBBBBBBltdocInstanceIDgtltcodegtDELIVRDltcodegtlt--Optional--gtltmessagegtThis iem was deliveredltmessagegt

ltDIJInformationgtltstatRequestStatusUpdategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2RequestStatusUpdateResponsexmlnsns2=httppbcomEngageOnewsdeliverystatusupdatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommongt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 197

Appendix B - SOAP API

Security service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSSecurityServicewsdl

searchRoles()

Description

This Web service is used to return the list of roles that associated with the specified user ID

Possible roles returned include

bull Community Administrator bull Delivery Manager bull Document Manager bull Editor bull Editor with saving new templates

bull External File Manager bull Project Manager bull Reviewer bull Template Manager bull Viewer bull Viewer with Reprint bull Workflow Administrator

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 198

Appendix B - SOAP API

Parameters

Input

SearchRolesRequest

request type SearchRoles - extension of type SearchRequestMessage

Users - optionaluser id type string

Output

SearchRolesResponse

response type SearchRolesRequest - extension of type ResponseMessage

roles - optionalrole - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optionaluser - unbounded type User id type string roles - optional is recursive

Fault

SecurityFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltsecSearchRolesgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltusersgt

ltusergt ltidgteosuperltidgt

ltusergtltusersgt

ltsecSearchRolesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 199

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchRolesResponse[xmlnsns2=httppbcomEngageOnewsmodel

|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewssecurityxmlnsns5=httppbcomEngageOnewseditorgt

ltrolesgt ltrolegt

ltns2idgt40ltns2idgtltns2namegtDocument Managerltns2namegt

ltrolegtltrolegt

ltns2idgt41ltns2idgtltns2namegtEditorltns2namegt

ltrolegtltrolesgt

ltns4SearchRolesResponsegtltenvBodygt

ltenvEnvelopegt

invalidateSession()

Description

This Web service is used to invalidate an authenticated session

This is necessary not to hold open sessions against the license limits of your EngageOne system

The session token must be specified in the authentication context of the request

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 200

Appendix B - SOAP API

Input

InvalidateSessionRequest

request type InvalidateSession - extension of type ResponseMessage

Output

InvalidateSessionResponse

response type InvalidateSessionResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

trustedConnectionLogin()

Description

This Web service is used to create Trusted Connection token

Parameters

Input

TrustedConnectionLoginRequest

request type TrustedConnectionLogin - extension of type ResponseMessage

Output

TrustedConnectionLoginResponse

response type TrustedConnectionLoginResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 201

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltsecTrustedConnectionLogingtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegttestltcomnamegt

ltcomidentgtltcomdomaingt

lt--user1(below)- this is the user that requires access to EngageOneand should exist in LDAP This scenario may be encountered whenthe user does not know their own passwordEg to login it uses card biometric etc --gt

ltcomuserIdgtuser1ltcomuserIdgt

lt--abc123(below) is the ApiKey defined in deployproperties undersecuritytrustedconnectionapikey--gt

ltcompasswordgtabc123ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level

--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 202

Appendix B - SOAP API

ltcomcommunitygtltcomcommunitygtltsecTrustedConnectionLogingt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns2TrustedConnectionLoginResponse

xmlnsns2=httppbcomEngageOnewssecurityxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt455e80b3-645c-41a0-91e6-7b355d1932a2lttokengt

ltSessionTokengtltauthContextgt

ltns2TrustedConnectionLoginResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 203

Appendix B - SOAP API

Template service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSTemplateServicewsdl

deleteTemplate()

Description

This Web service is used to delete a template from the system as specified by a template identifier (ID or name)

All versions of the template with the same name are deleted

Parameters

Input

DeleteTemplate

request type DeleteTemplate - extension of type RequestMessage

templateid type IntegerIdOrName

Output

DeleteTemplateResponse

response type DeleteTemplateResponse - extension of type ResponseMessage

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 204

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemDeleteTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplategtltidgt

ltcomidgt222ltcomidgtltidgt

lttemplategtlttemDeleteTemplategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteTemplateResponsexmlnsns2=httppbcomEngageOnewstemplatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

importActiveContent()

Description

This Web service is used to import an Active Content archive into the EngageOne system Active Content items are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 205

Appendix B - SOAP API

Parameters

Input

ImportActiveContent

request type ImportActiveContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportActiveContentResponse

response type ImportActiveContentResponse - extension of type ResponseMessage

activeContents activeContent - unbounded type ActiveContent - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 206

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportActiveContentgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid784040028172ltarchivegtltfoldergt

ltidentgt ltcomidgt240ltcomidgt

ltidentgtltfoldergt

lttemImportActiveContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 207

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportActiveContentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltactiveContentsgt ltactiveContentgt

ltns2idgt260ltns2idgtltns2namegtAC_Textltns2namegtltns2parentgt

ltns2idgt240ltns2idgtltns2parentgt

ltns2pathgtInvoiceActiveCotentFolderAC_Textltns2pathgtltns2versiongt10ltns2versiongt

ltactiveContentgtltactiveContentsgt

ltns4ImportActiveContentResponsegtltenvBodygt

ltenvEnvelopegt

importMessageContent()

Description

This Web service is used to import a Message Content archive into the EngageOne system Message Content is defined using Content Author

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 208

Appendix B - SOAP API

Parameters

Input

ImportMessageContent

request type ImportMessageContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportMessageContentResponse

response type ImportMessageContentResponse - extension of type ResponseMessage

messageContentsmessageContent - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportMessageContentgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcidcid1184235865156ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportMessageContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 209

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1ImportMessageContentResponsexmlnsns1=httppbcomEngageOnewstemplatexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdatapushgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt05a6a80cadcba8cb11c896cceb18ad46_1330033598071_2

lttokengtltSessionTokengt

ltauthContextgtltmessageContentsgt

ltmessageContentgtltns2idgt1ltns2idgtltns2namegtmessage inchesltns2namegtltns2pathgtMCmessage inchesltns2pathgtltns2versiongt10ltns2versiongt

ltmessageContentgtltmessageContentsgt

ltns1ImportMessageContentResponsegtltenvBodygt

ltenvEnvelopegt

importTemplate()

Description

This Web service is used to import a template archive into the EngageOne system Templates are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 210

Appendix B - SOAP API

Parameters

Input

ImportTemplate

request type ImportTemplate - extension of type RequestMessage

archive type base64Binary folder ident type IntegerIdOrName

Output

ImportTemplateResponse

response type ImportTemplateResponse - extension of type ResponseMessage

templatestemplate - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 211

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid1215487361289ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportTemplategtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 212

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportTemplateResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

lttemplatesgtlttemplategt

ltns2idgt231ltns2idgtltns2namegtEngageOne Introductionltns2namegtltns2parentgt

ltns2idgt221ltns2idgtltns2parentgt

ltns2pathgtInvoiceTESTEngageOne Introductionltns2pathgtltns2versiongt10ltns2versiongt

ltns2effectiveDategt2009-12-17-0500ltns2effectiveDategtltns2withdrawnDategt2999-12-31-0500ltns2withdrawnDategt

lttemplategtlttemplatesgt

ltns4ImportTemplateResponsegtltenvBodygt

ltenvEnvelopegt

searchFolders()

Description

This Web service retrieves folders by folder identifier (ID or name)

If the search filter is set to LIST a high-level list of folders will be returned without their respective children

If the search filter is DETAIL the next level of children (templates and folders) will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 213

Appendix B - SOAP API

Parameters

Input

SearchFolders

request type SearchFolders - extension of type SearchRequestMessage

folders - optionalfolder ident type IntegerIdOrName

Output

SearchFoldersResponse

response type SearchFoldersResponse - extension of type ResponseMessage

folders - optionalfolder - unbounded type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional

folder type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withdrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 214

Appendix B - SOAP API

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract

type Entity is recursive docClasses - optional is recursive children - optional is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optional is recursive children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 215

Appendix B - SOAP API

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

Fault

TemplateFault (soapfault use = literal)

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchFoldersgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltfoldersgt

ltfoldergt ltidentgt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltfoldergt

ltfoldersgtlttemSearchFoldersgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 216

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchFoldersResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfoldersgt ltfoldergt

ltns2idgt0ltns2idgtltns2namegtltns2namegtltns2childrengt ltns2foldergt ltns2idgt118ltns2idgt

ltns2namegtInvocesltns2namegtltns2parentgt

ltns2idgt0ltns2idgtltns2parentgt

ltns2foldergtltns2childrengt

ltfoldergtltfoldersgt

ltns4SearchFoldersResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplateResources()

Description

This Web service retrieves template related files by template identifier (ID or name) and file type

The search filter is not used by this service operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 217

Appendix B - SOAP API

Parameters

Input

SearchTemplateResources

request type SearchTemplateResources - extension of type SearchRequestMessage

templateident type integerIdOrName files - optional

file - unbounded is recursive

Output

SearchTemplateResourcesResponse

response type SearchTemplateResourcesResponse - extension of type ResponseMessage

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity id type ID - type int with restriction name type string type type TemplateFileType - type string with restriction - enum ANSWER SCHEMAXFORM PROPERTY PUBX HIP IMAGE OTHER DATAMODEL PREVIEWPROMPTLOGIC THUMBNAIL DATAMODEL PREVIEW PROMPTLOGIC THUMBNAILdata type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 218

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplateResourcesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtPUBXlttypegt

ltfilegtltfilegt

lttypegtHIPlttypegtltfilegt

ltfilesgtlttemplategt

lttemSearchTemplateResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 219

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplateResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfilesgt ltfilegt

ltns2idgt121ltns2idgtltns2typegtPUBXltns2typegt

ltfilegtltfilegt

ltns2idgt120ltns2idgtltns2typegtHIPltns2typegt

ltfilegtltfilesgt

ltns4SearchTemplateResourcesResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplates()

Description

This Web service searches templates by document class

This Web service supports on-demand licensing

If the type element is omitted the system returns INTERACTIVE_ONLY results by default

If returnAttributes is included with the attribute set to DOC_CLASSES the service returns document class information along with template information

You do not need to set the search filter to DETAIL in order to obtain document class information

If the returnAttributes element is omitted the service does not return document class information with template information just as it does with a LIST filter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 220

Appendix B - SOAP API

Parameters

Input

SearchTemplates

request type SearchTemplates - extension of type SearchRequestMessage

returnAttributes - optionalattribute - unbounded type SearchTemplatesReturnAttribute

- type string with restriction - enum DOC_CLASSES

templates - optionaltemplate

ident type IntegerIdOrName effectiveDate - optional type date

docClasses - optionaldocClass

ident type IntegerIdOrName fields - optional is recursive

sorting - optional type SortingControls fields

field - unbounded type SortField type type SortFieldType - type string with restriction -

enum NAME MODIFIED_TIME WORK_ITEM_EXTERNAL_IDOWNER_NAME CREATOR_NAME APPLICATION_NAMEDATE STATUS TEMPLATE_NAME DELIVERY_COUNT

order type SortOrder - type string with restriction - enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

type - optional type SearchTemplateFilterType - type string with restriction - enum

INTERACTIVE_ONLY NON_INTERACTIVE_ONLY BOTH

Output

SearchTemplatesResponse

response type SearchTemplatesResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

templates - optionaltemplate - unbounded type Template - extension of abstract

type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity

id type ID - type int with restriction name type string

type type TemplateFileType - type string with restriction -

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 221

Appendix B - SOAP API

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHERDATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 222

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplatesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltreturnAttributesgt

ltattributegtDOC_CLASSESltattributegtltreturnAttributesgtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltcomnamegtIntroltcomnamegt

ltidentgtlteffectiveDategtlteffectiveDategt

lttemplategtlttemplatesgtltsortinggt

ltfieldsgt ltfieldgt

lttypegtlttypegtltordergtltordergt

ltfieldgtltfieldsgt

ltsortinggtltpaginationgt

ltpageNumbergtltpageNumbergtltpageSizegtltpageSizegt

ltpaginationgtlttypegtINTERACTIVE_ONLYlttypegt

lttemSearchTemplatesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 223

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplatesResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdeliverystatusupdatexmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgt

ltpaginationgtlttemplatesgt

lttemplategtltns3idgt171ltns3idgtltns3namegtASRrequirementsltns3namegtltns3parentgt

ltns3idgt162ltns3idgtltns3namegtTemplatesltns3namegtltns3typegtREGULARltns3typegt

ltns3parentgtltns3descriptiongtASRrequirementsltns3descriptiongtltns3pathgtTemplatesASRrequirementsltns3pathgtltns3versiongt10ltns3versiongtltns3filesgt

ltns3filegt ltns3idgt172ltns3idgtltns3namegttemplatehipltns3namegtltns3typegtHIPltns3typegtltns3datagt

ltxopIncludehref=ciddata-1fa8d44-f187-4c27-a7f4-44e5611e09abwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt173ltns3idgtltns3namegttemplatepubxltns3namegtltns3typegtPUBXltns3typegtltns3datagt

ltxopIncludehref=ciddata-3b3c834e-8603-484a-a450-4e31f60bbd3awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt174ltns3idgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 224

Appendix B - SOAP API

ltns3datagtltns3namegt0DF00BE136E7490D920F999500B4839Cxformltns3namegt

ltns3typegtXFORMltns3typegtltns3datagt

ltxopIncludehref=ciddata-d0c51091-d8ee-427b-b21c-dbb1662936cbwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3filegtltns3filegt ltns3idgt175ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxmlltns3namegtltns3typegtANSWERltns3typegtltns3datagt ltxopInclude

href=ciddata-b2b74571-7fb5-4643-a8ef-57c55fa86744wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt ltns3idgt176ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxsdltns3namegtltns3typegtSCHEMAltns3typegtltxopInclude

href=ciddata-82e3424-bb1d-4f38-99a7-8b7c9965de0wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3datagt ltns3filegtltns3filegt ltns3idgt177ltns3idgt

ltns3namegtProperty_4338420834667219234xmlltns3namegtltns3typegtPROPERTYltns3typegtltns3datagt

ltxopIncludehref=ciddata-aba52bf7-5146-4dba-89d3-d70067a7916fwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt

ltns3filesgtltns3effectiveDateSelectiongt

ltns3versionsHaveEffectivDategtfalseltns3versionsHaveEffectivDategt

ltns3selectionCriteriagtCURRENT_DATEltns3selectionCriteriagtltns3effectiveDateSelectiongtltns3spellCheckgtUSER_CANNOT_CLOSEltns3spellCheckgt

lttemplategtlttemplatesgt

ltns4SearchTemplatesResponsegtltenvBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 225

Appendix B - SOAP API

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 226

Appendix B - SOAP API

Workitem service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkItemServicewsdl

approveWorkItem()

Description

This method is not supported in this release

createWorkItem()

Description

This Web service can be used to create a new work item for a specified template with associated files (for example answer schema etc)

The work item is created for delivery to the specified delivery option

Additional information is required to create the work item

This includes

an external identifier which can be used as a cross-reference into an external system the user ID of the current operator creating the work item the status of the newly created work item and the application name for which the work item is being created

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 227

Appendix B - SOAP API

Parameters

Input

CreateWorkItemRequest

request type CreateWorkItem - extension of type RequestMessage

templateident type integerIdOrName

workItem externalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

applicationName type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

CreateWorkItemResponse

response type CreateWorkItemResponse - extension of type ResponseMessage

workItem type WorkItem - extension of abstract type Entity id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNED

FAILED_DELIVERY FINISHED OPEN PENDING_APPROVAL

PENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

lastModifiedDate type date

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 228

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworCreateWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtlttemplategt

ltworkItemgt ltexternalIdgtFrank001ltexternalIdgtltcurrentOperatorgteosuperltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltapplicationNamegtCommit By Soap UIltapplicationNamegtltfilesgt

ltfilegt ltnamegtAnswerFile_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326563ltdatagt

ltfilegtltfilegt

ltnamegtPUB_16342009033447pubxltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326564ltdatagt

ltfilegtltfilegt

ltnamegtHIP_16342009033447hipltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326565ltdatagt

ltfilegtltfilegt

ltnamegtProperty_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326566ltdatagt

ltfilegtltfilesgt

ltworkItemgtltworCreateWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 229

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1CreateWorkItemResponsexmlnsns1=httppbcomEngageOnewsworkItemxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewskeymapgt

ltworkItemgt ltns2idgt134ltns2idgt

ltworkItemgtltns1CreateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

deleteWorkItem()

Description

This Web service can be used to delete a work item specified by a work item ID

Pameters

Input

DeleteWorkItemRequest

request type DeleteWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

Output

DeleteWorkItemResponse

response type DeleteWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 230

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworDeleteWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt2ltidgtltworkItemgt

ltworDeleteWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

getWorkItemAssignees()

Description

This Web service is used to retrieve the list of potential assignees for an existing work item as specified by a work item identifier (ID or name)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 231

Appendix B - SOAP API

Parameters

Input

GetWorkItemAssigneesRequest

request type GetWorkItemAssignees - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

GetWorkItemAssigneesResponse

response type GetWorkItemAssigneesResponse - extension of type ResponseMessage

assignees - optionalassignee - unbounded type User id type string roles - optional

role - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optional is recursive

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkItemAssigneesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltworGetWorkItemAssigneesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 232

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4GetWorkItemAssigneesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltassigneesgtltassigneegt

ltns2idgtAdministratorltns2idgtltassigneegtltassigneegt

ltns2idgteodeliveryltns2idgtltassigneegtltassigneegt

ltns2idgteomanagerltns2idgtltassigneegt

ltassigneegt ltns2idgteosystemltns2idgt

ltassigneegtltassigneegt

ltns2idgteotemplateltns2idgtltassigneegt

ltassigneegt ltns2idgteouserltns2idgt

ltassigneegtltassigneegt

ltns2idgtpgeron01ltns2idgtltassigneegt

ltassigneesgtltns4GetWorkItemAssigneesResponsegt

ltenvBodygtltenvEnvelopegt

reassignWorkItem()

Description

This Web service is used to reassign a work item as specified by a work item ID to another user by user ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 233

Appendix B - SOAP API

Parameters

Input

ReassignWorkItemRequest

request type ReassignWorkItem - extension of abstract type WorkItemMaintRequest- extension of type RequestMessage

workItem id type ID - type int with restriction

assigneeid type string

Output

ReassignWorkItemResponse

response type ReassignWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworReassignWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt25ltidgtltworkItemgt

ltassigneegtltidgteouserltidgt

ltassigneegtltworReassignWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 234

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ReassignWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

rejectWorkItem()

Description

This method is not supported in this release

searchWorkItem()

Description

This Web service is used to search for work items by combination of work item list status or optionally with a work item identifier (ID or name)

Possible work item list statuses that can be searched for include

bull ACTIVE

bull SUBMITTED

bull ALL_ACTIVE

bull ALL_SUBMITTED

You can optionally filter the work item list by work item status delivery channel mode and delivery channel type The exception to this rule is when workItemListType is equal to ALL_ACTIVE or ACTIVE In this case the work item cannot be filtered with delivery channel type (ARCHIVE PRINT EMAIL FAX) and channel mode (BATCH IMMEDIATE) The list that is returned pertains to the user invoking the service

For example the operation can be used to return the list of active work items for the authenticated user If the search filter is set LIST the list of matching work items is returned If the search filter is set to DETAIL the files associated with the work items are also returned The Web service always returns a list of comments for each work item returned if there are any

If you submit Work Item ID or name in the search criteria the service returns the requested Work Item regardless of the user ID associated with it The service also disregards workItemListType parameter ( ACTIVE SUBMITTED ALL_ACTIVE ALL_SUBMITTED) if such is specified If you do not specify Work Item ID or name in the search parameters the workItemListType parameter is required

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 235

Appendix B - SOAP API

Parameters

Input

SearchWorkItemsRequest

request type SearchWorkItems - extension of type SearchRequestMessage

workItemListType type WorkItemListType - type string with restriction -enum ACTIVE SUBMITTED ALL_ACTIVE

ALL_SUBMITTED workItems - optionalworkItem

ident type IntegerIdOrName

workitemStatuses - optionalworkitemStatus type workitemStatus - type string with restriction -

enum ACTIVE_INCOMPLETE ACTIVE_NEW ACTIVE_COMPLETEASSIGNED FAILED_DELIVERY FINISHED OPENPENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

deliveryChannelModes - optionaldeliveryChannelMode type deliveryChannelMode - type string with restriction -

enum BATCH IMMEDIATE

deliveryChannelTypes - optionaldeliveryChannelType type deliveryChannelType - type string with restriction -

enum ARCHIVE PRINT EMAIL FAX

sorting - optional type SortingControls fields

field - unboundedl type SortField type type SortFieldType - type string with restriction -

enum WORK_ITEM_EXTERNAL_ID OWNER_NAME CREATOR_NAMEAPPLICATION_NAMEDATE STATUSTEMPLATE_NAME

order type SortOrder - type string with restriction -enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

language - optional type string

Output

SearchWorkItemsResponse

response type SearchWorkItemsResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

workItems - optionalworkItem - unbounded type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 236

Appendix B - SOAP API

lastModifiedDate type date

files - optionalfile - unbounded type WorkItemFile - extension of abstract type Entity

id type ID - type int with restriction name type string path type string type type TemplateFileType - type string with restriction -

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHER DATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

comments - optionalcomment - unbounded type WorkItemComment text type string - requireddate type DateTime - required

Note If multiple comments exist for the work item they will be returned sorted by datetime

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 237

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSearchWorkItemsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltcomfiltergtDETAILltcomfiltergtltworkItemListTypegtACTIVEltworkItemListTypegtltworkItemsgt

ltworkItemgt ltidentgt ltcomidgt43ltcomidgt

ltidentgtltworkItemgt

ltworkItemsgtltworkItemStatusesgt

ltworkItemStatusgtACTIVE_INCOMPLETEltworkItemStatusgtltworkItemStatusgtACTIVE_NEWltworkItemStatusgtltworkItemStatusgtACTIVE_COMPLETEltworkItemStatusgtltworkItemStatusgtASSIGNEDltworkItemStatusgtltworkItemStatusgtFAILED_DELIVERYltworkItemStatusgtltworkItemStatusgtFINISHEDltworkItemStatusgtltworkItemStatusgtOPENltworkItemStatusgtltworkItemStatusgtPENDING_APPROVALltworkItemStatusgtltworkItemStatusgtPENDING_DELIVERYltworkItemStatusgtltworkItemStatusgtSUBMITTED_APPROVEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REJECTEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REVIEWltworkItemStatusgt

ltworkItemStatusesgt

ltdeliveryChannelModesgtltdeliveryChannelModegtBATCHltdeliveryChannelModegtltdeliveryChannelModegtIMMEDIATEltdeliveryChannelModegt

ltdeliveryChannelModesgtltdeliveryChannelTypesgt

ltdeliveryChannelTypegtPRINTltdeliveryChannelTypegtltdeliveryChannelTypegtEMAILltdeliveryChannelTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 238

Appendix B - SOAP API

ltdeliveryChannelTypegtFAXltdeliveryChannelTypegtltdeliveryChannelTypegtARCHIVEltdeliveryChannelTypegt

ltdeliveryChannelTypesgtltworSearchWorkItemsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 239

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns3SearchWorkItemsResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsworkItemxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelxmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgtltpaginationgtltworkItemsgt ltworkItemgt ltns5idgt7ltns5idgtltns5externalIdgtWork Item 121634 -

1016803513ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

ltns5lastModifiedDategt2012-11-08T121635080-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt190ltns5idgtltns5namegtAnswerFile_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08162012121634xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-a21abe3f-4f64-4d87-becb-85619d8fc0c3wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt191ltns5idgtltns5namegtPUB_08162012121634pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08162012121634pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-1f28b175-1362-45b7-9717-bf311277cee6wsjbossorg

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 240

Appendix B - SOAP API

xmlnsxop=httpwwww3org200408xopincludegtltns5filegtltns5filegt ltns5idgt192ltns5idgtltns5namegtHIP_08162012121634hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08162012121634hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-a48a81bd-9b61-4140-8d08-292f3c12f47awsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt193ltns5idgtltns5namegtProperty_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08162012121634xmlltns5pathgt

ltns5typegtPROPERTYltns5typegtltns5datagt ltxopInclude

href=ciddata-6f19fa6c-e9a7-435e-94ad-bf84ba41140wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5dataltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTest Spell Check Closeltns5textgtltns5dategt2012-11-08T121635080-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemgt ltns5idgt9ltns5idgtltns5externalIdgtWork Item 121841 -

544723706ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 241

Appendix B - SOAP API

ltns5lastModifiedDategt2012-11-08T121842030-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt198ltns5idgtltns5namegtAnswerFile_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08182012121841xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-8fc4283-e36-4d13-8b38-fe9495dea2bfwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5filegtltns5filegt ltns5idgt199ltns5idgtltns5namegtPUB_08182012121841pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08182012121841pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-f2ebda42-e045-4c3e-a8f8-75fb13fd919dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt200ltns5idgtltns5namegtHIP_08182012121841hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08182012121841hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-9d66a164-c512-4566-aba6-6ef7c375c861wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt201ltns5idgtltns5namegtProperty_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08182012121841xmlltns5pathgt

ltns5typegtPROPERTYltns5typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 242

Appendix B - SOAP API

ltns5datagt ltxopInclude

href=ciddata-e2bb812a-7fa3-43cf-a035-81a3ccc96c6dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTestltns5textgtltns5dategt2012-11-08T121842030-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemsgtltns3SearchWorkItemsResponsegtltenvBodygtltenvEnvelopegt

submitWorkItem()

Description

This Web service is used to submit a work item and deliver the document after creating a work item using the WorkItemService createWorkItem operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 243

Appendix B - SOAP API

Parameters

Input

SubmitWorkItemRequest

request type SubmitWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

comment - optional type string

Output

SubmitWorkItemResponse

response type SubmitWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworSubmitWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltworkItemgt

ltworSubmitWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 244

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SubmitWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateWorkItem()

Description

This Web service is used to update a work item definition This includes the template associated with the work item work item details such as status and the delivery option associated with the work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 245

Appendix B - SOAP API

Parameters

Input

UpdateWorkItemRequest

request type UpdateWorkItem - extension of type RequestMessage

templateident type IntegerIdOrName

workitem id type ID - type int with restrictionexternalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

comment type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

UpdateWorkItemResponse

response type UpdateWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 246

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltcurrentOperatorgteouserltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltcommentgthello worldltcommentgt

ltworkItemgtltdeliveryOptiongt

ltidentgt ltcomidgt1ltcomidgt

ltidentgtltdeliveryOptiongt

ltworUpdateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 247

Appendix B - SOAP API

saveTemplateWorkItem()

Description

This Web service is used to create a new template work item A template work item is distinguished from a document instance work item using the WorkItemService createWorkItem operation The intent of a template work item is to make a new template available for use in document instance creation

Parameters

Input

SaveTemplateWorkItemRequest

request type SaveTemplateWorkItem - extension of type RequestMessage

templateWorkItemident - optional type IntegerIdOrName createdBy type string modelTemplateId type IntegerIdOrName targetTemplateName type string folderIdent type IntegerIdOrName files - optional

file - unbounded is recursive

comment - optional type string overwrite - optional type boolean

Output

SaveTemplateWorkItemResponse

response type SaveTemplateWorkItemResponse - extension of type ResponseMessage

workItem type TemplateWorkItem - extension of type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

lastModifiedDate type date modelTemplateId type ID - type int with restriction templateName type string folderId type ID - type int with restriction

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 248

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSaveTemplateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplateWorkItemgtltidentgt

ltcomidgt30ltcomidgtltidentgtltcreatedBygteosuperltcreatedBygtltmodelTemplateIdgt

ltcomidgt119ltcomidgtltmodelTemplateIdgtlttargetTemplateNamegtIntro_SaveAslttargetTemplateNamegt

ltfolderIdentgt ltcomidgt221ltcomidgt

ltfolderIdentgtltfilesgt

ltfilegt ltnamegtAnswerFile_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

ltnamegtPUB_18152009111556pubxltnamegtltpathgtInstanceFilesltpathgtlttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

ltnamegtHIP_18152009111556hipltnamegtltpathgtInstanceFilesltpathgtlttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

ltnamegtProperty_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtPROPERTYlttypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 249

Appendix B - SOAP API

ltdatagtcid278598095434ltdatagtltfilegt

ltfilesgtlttemplateWorkItemgtltcommentgt789456ltcommentgtltoverwritegttrueltoverwritegt

ltworSaveTemplateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SaveTemplateWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltworkItemgt ltns2idgt30ltns2idgtltns2externalIdgtWF05ltns2externalIdgtltns2createdBygteosuperltns2createdBygtltns2statusgtFINISHEDltns2statusgt

ltns2lastModifiedDategt2009-12-18-0500ltns2lastModifiedDategtltns2modelTemplateIdgt119ltns2modelTemplateIdgtltns2templateNamegtEngageOne

Introductionltns2templateNamegtltns2folderIdgt221ltns2folderIdgt

ltworkItemgtltns4SaveTemplateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

addWorkItemComment()

Description

This Web service is used to add a comment to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 250

Appendix B - SOAP API

Parameters

Input

AddWorkItemCommentRequest

request type AddWorkItemComment - extension of type RequestMessage extension of type RequestMessageworkItem id type ID - type int with restriction comment type string

Output

AddWorkItemCommentResponse

response type AddWorkItemCommentResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

updateWorkItemStatus()

Description

This Web service is used to update the status of an existing work item

Parameters

Input

UpdateWorkItemStatusRequest

request type UpdateWorkItemStatus - extension of type RequestMessage

workItem id type ID - type int with restriction status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

Output

UpdateWorkItemStatusResponse

response type UpdateWorkItemStatusResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 251

Appendix B - SOAP API

Attachment service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSAttachmentServicewsdl

addAttachments()

Description

This Web service adds attachment files to an existing work item

Parameters

Input

AddAttachments

request type AddAttachments - extension of type RequestMessage

attachmentFiles type base64Binary maxOccurs=unbounded workItemId type ID ndash type int with restriction

Output

AddAttachmentsResponse

response type AddAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 252

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt ltcomUsernameTokengt

ltcomdomaingt ltcomidentgt

ltcomnamegtcommunity1ltcomnamegtltcomidentgt

ltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--1 or more repetitions--gtltattachmentFilesgtcid490167285825ltattachmentFilesgtltattachmentFilesgtcid490167285826ltattachmentFilesgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 253

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3AddAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta08351f0-5537-40bc-8baf-b98c5abc196clttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt29ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt30ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltns3AddAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachments()

Description

This Web service is used to get all attachment file metadata added to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 254

Appendix B - SOAP API

Parameters

Input

GetAttachments

request type GetAttachments - extension of type RequestMessage

workItemId type ID ndash type int with restriction

Output

GetAttachmentsResponse

response type getAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 255

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta5506457-f0a1-4ba5-99ed-4a6a6d2925f1lttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt2ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt3ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltns3GetAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachmentFile()

Description

This Web service is used to get attachment file content

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 256

Appendix B - SOAP API

Parameters

Input

GetAttachmentFile

request type GetAttachmentFile - extension of type RequestMessage

workItemId type ID ndash type int with restriction attachmentId type ID ndash type int with restriction

Output

GetAttachmentFileResponse

response type GetAttchmentFileResponse - extension of type ResponseMessage

attachmentFile type base64Binary

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattGetAttachmentFilegt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1ltworkItemIdgt

ltattachmentIdgt8ltattachmentIdgtltattGetAttachmentFilegt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 257

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentFileResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtfd220238-a5eb-46b8-8ac8-4be9366402f2lttokengt

ltSessionTokengtltauthContextgtltattachmentFilegt

ltxopIncludehref=cid1f882a3b-ac19-431d-9a26-d0d169081313-4cxfapacheorgxmlnsxop=httpwwww3org200408xopincludegt

ltattachmentFilegtltns3GetAttachmentFileResponsegt

ltsoapBodygtltsoapEnvelopegt

deleteAttachment()

Description

This Web service is used to delete an attachment from a communication

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 258

Appendix B - SOAP API

Parameters

Input

DeleteAttachment

request type DeleteAttachment - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachmentId ident type ID ndash type int with restriction

Output

DeleteAttachmentResponse

response type DeleteAttchmentResponse - extension of type ResponseMessage

attachmentId ident type ID ndash type int

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattDeleteAttachmentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt7ltworkItemIdgtltattachmentIdgt14ltattachmentIdgt

ltattDeleteAttachmentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 259

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3DeleteAttachmentResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9e079c58-80c7-40a9-86d2-2bea25632413lttokengt

ltSessionTokengtltauthContextgtltattachmentIdgt14ltattachmentIdgt

ltns3DeleteAttachmentResponsegtltsoapBodygt

ltsoapEnvelopegt

updateAttachments()

Description

This Web service is used to update attachmentsrsquo order and name

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 260

Appendix B - SOAP API

Parameters

Input

UpdateAttachments

request type UpdateAttachments - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded

id type ID - type int with restrictionfileName type string fileType type string - optional and ignored on updatesequence type int createdDate type date - optional and ignored on update

Output

UpdateAttachmentsResponse

response type UpdateAttchments - extension of type ResponseMessage

attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 261

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltattUpdateAttachmentsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt20ltworkItemIdgtltattachmentsgt

ltmodidgt4ltmodidgtltmodfileNamegtreportpdfltmodfileNamegtltmodsequencegt2ltmodsequencegt

ltattachmentsgtltattachmentsgt

ltmodidgt5ltmodidgtltmodfileNamegtO55V7PpdfltmodfileNamegtltmodsequencegt1ltmodsequencegt

ltattachmentsgtltattUpdateAttachmentsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 262

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4UpdateAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsattachmentgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt169e9b3e-6d7c-4ec1-929e-ead23c5f9832lttokengt

ltSessionTokengtltauthContextgtltattachmentsgt

ltns3idgt5ltns3idgtltns3fileNamegtO55V7Ppdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt1ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltattachmentsgt

ltns3idgt4ltns3idgtltns3fileNamegtreportpdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt2ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltns4UpdateAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 263

Appendix B - SOAP API

Workflow service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkflowServicewsdl

Note Some tags have been broken up for formatting purposes

getWorkflowTask()

Description

This Web Service operation is used to get workflow task details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 264

Appendix B - SOAP API

Parameters

Input

GetWorkflowTask

request type GetWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1

Output

GetWorkflowTaskResponse

response type GetWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string minOccurs=0 maxOccurs=unbounded potentialGroups type string minOccurs=0 maxOccurs=unbounded potentialUsers type string minOccurs=0 maxOccurs=unbounded allowedActions type string minOccurs=0 maxOccurs=unbounded instanceId type string isActionableByYou type string projectId type string previewBefore type string previewAfter type string previewDiff type string comparisonStatus type string

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 265

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtltworGetWorkflowTaskgt ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt12345lttaskIdgtltworGetWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 266

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengtltSessionTokengtltauthContextgtlttaskgt ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgtltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgtltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgtlttaskgtltns4GetWorkflowTaskResponsegt

ltsoapBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 267

Appendix B - SOAP API

ltsoapEnvelopegt

updateWorkflowTask()

Description

This Web Service operation is used to update workflow task

Parameters

Input

UpdateWorkflowTask

request type UpdateWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1 action type WorkflowTaskAction minOccurs=1 maxOccurs=1

allowed values APPROVE REJECT CLAIMDELEGATE RELEASE RESUBMIT

assignee type string - minOccurs=1 maxOccurs=1 notes type string - minOccurs=1 maxOccurs=1

Output

UpdateWorkflowTaskResponse

response type UpdateWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type stringname type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string - minOccurs=0 maxOccurs=unbounded potentialGroups type string - minOccurs=0 maxOccurs=unbounded potentialUsers type string - minOccurs=0 maxOccurs=unbounded allowedActions type string - minOccurs=0 maxOccurs=unbounded instanceId type string - minOccurs=0 maxOccurs=unbounded isActionableByYou type string - minOccurs=0 maxOccurs=unbounded projectId type string - minOccurs=0 maxOccurs=unbounded previewBefore type string - minOccurs=0 maxOccurs=unbounded previewAfter type string - minOccurs=0 maxOccurs=unbounded previewDiff type string - minOccurs=0 maxOccurs=unbounded comparisonStatus type string - minOccurs=0 maxOccurs=unbounded

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 268

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkflowTaskgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtdesignReviewltcomuserIdgtltcompasswordgtmy passwordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt2543lttaskIdgtltactiongtDELEGATEltactiongtltassigneegtWTOffice2ltassigneegtltnotesgttest_notesltnotesgt

ltworUpdateWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 269

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygt

ltns4UpdateWorkflowTaskResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtc09d7ff6-b1de-4c5c-a59b-6283d9bdd686lttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt2543ltns3idgtltns3namegtmany users Step1ltns3namegtltns3statusgtinActionOtherltns3statusgtltns3actualOwnergtWTOffice2ltns3actualOwnergtltns3externalReferenceNamegtWT_Project -

Simple_Image_Publtns3externalReferenceNamegt

ltns3externalReferenceIdgt5d91acb3-9900-44ab-961e-a40aad831b7eltns3externalReferenceIdgt

ltns3externalReferenceTypegtPROJECT_ASSETltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtSimple_Image_Publtns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt15f3cebd-3f09-4ebb-a988-0f32588ee6d2ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-27T120905797Zltns3createdgtltns3stepgtStep1ltns3stepgtltns3submittergtadminltns3submittergtltns3typegtdesignReviewltns3typegt

ltns3uriToGetTaskDetailsgthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1Community1tasks25432543ltns3uriToGetTaskDetailsgt

ltns3instanceIdgt2527ltns3instanceIdgt

ltns3isActionableByYougtfalseltns3isActionableByYougt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 270

Appendix B - SOAP API

ltns3onBehalfOfGroupsgtltns3potentialUsersgtWTProjReviewerltns3potentialUsersgt

ltns3potentialUsersgtWTOffice1ltns3potentialUsersgt

ltns3projectIdgtb960f0bc-ce8e-4f71-9077-a98054c25a79ltns3projectIdgt

ltns3previewBeforegthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesbfbc379f-fddf-49d1-bdff-28ac75f70683ltns3previewBeforegt

ltns3previewAftergthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesa205c38c-7d99-4075-aa48-327315331897ltns3previewAftergt

ltns3comparisonStatusgtsubmitltns3comparisonStatusgtlttaskgt

ltns4UpdateWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

getWorkflowTasks()

Description

This Web Service operation is used to get the list of existing workflow tasks

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 271

Appendix B - SOAP API

Parameters

Input

GetWorkflowTasks

request type GetWorkflowTasks - extension of type RequestMessage

query type string - minOccurs=0 maxOccurs=1 assignedUser type string - minOccurs=0 maxOccurs=1 searchType type string enum values all user unassigned - minOccurs=1 maxOccurs=1 submitters type string - minOccurs=0 maxOccurs=unbounded subjects type string - minOccurs=0 maxOccurs=unbounded types type string - minOccurs=0 maxOccurs=unbounded statuses type string - minOccurs=0 maxOccurs=unbounded earliestCreationTime type date - minOccurs=0 maxOccurs=1 latestCreationTime type date - minOccurs=0 maxOccurs=1 order type string - minOccurs=0 maxOccurs=1 pagination type PaginationControls - minOccurs=0 maxOccurs=1

Output

GetWorkflowTasksResponse

response type GetWorkflowTasksResponse - extension of type ResponseMessage

WorkflowTask - minOccurs=0 maxOccurs=unbounded id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string

PaginationControls - minOccurs=0 maxOccurs=1 pageNumber type int - minOccurs=0 pageSize type int - minOccurs=0 totalPages type int - minOccurs=0

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 272

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkflowTasksgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltsearchTypegtallltsearchTypegt

ltworGetWorkflowTasksgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 273

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgt

ltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgt

ltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgt

lttaskgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 274

Appendix B - SOAP API

ltns4GetWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 275

Appendix B - SOAP API

Delivery service

suspendDeliveryItem

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryServicewsdl

Note Some tags have been broken up for formatting purposes

deleteDeliveryItem()

Description

This Web service deletes a delivery item as specified by a work item or delivery item

Parameters

Input

DeleteDeliveryItemRequest

request type DeleteDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

DeleteDeliveryItemResponse

response type DeleteDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 276

Appendix B - SOAP API

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelDeleteDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt501ltidgtltdeliveryItemgtltcommentgtSoapUI Testltcommentgt

ltdelDeleteDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

deliverDocument()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 277

Appendix B - SOAP API

Description

This Web service delivers a document to the specified delivery option

The input is a template identifier along with the document files (for example answer HIP content properties)

A delivery request is created in the system and returned from the service The status field indicates the status of the delivery request

If the mode of any of the delivery channel associated with the delivery option is IMMEDIATE the document data is also returned for that delivery channel

A SOAP request sample is provided that shows how to pass a file to the deliverDocument Web service as an MTOM attachment using a standard client tool

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 278

Appendix B - SOAP API

Parameters

Input

DeliverDocumentRequest

request type DeliverDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

delilveryOptionident type IntegerIdOrName

Output

DeliverDocumentResponse

response type DeliverDocumentResponse - extension of type ResponseMessage

deliveryRequest type DeliveryRequest - extension of abstract type Entity id type ID - type int with restriction status type DeliveryStatus - type string with restriction - enum NEW PROCESSING

COMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS Note ERROR status code is returned when the delivery channel fails because of an attachment conversion issue (For example a document attached to a publication is broken and conversion services fail to process it) This status is different from a normal document composition failure which occurs when the main document generation fails

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restriction

deliveryChannel type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX device type Device - extension of abstract type Entity

id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS document - optional type ComposedDocument

data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 279

Appendix B - SOAP API

Sample request

POST httplocalhost8080EngageOneWSDeliveryService HTTP11Accept-Encoding gzipdeflateSOAPAction httppbcomEngageOnewsdeliveryDeliverDocumentContent-Type multipartrelated type=applicationxop+xmlstart=ltrootpartsoapuiorggt start-info=textxmlboundary=----=_Part_0_2998042411322083558307MIME-Version 10 User-Agent Jakarta Commons-HttpClient31Host localhost8080 Content-Length 2239

------=_Part_0_2998042411322083558307 Content-Type applicationxop+xml charset=UTF-8 type=textxmlContent-Transfer-Encoding 8bitContent-ID ltrootpartsoapuiorggt

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelDeliverDocumentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgt1234ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongtltcomondemandgtfalseltcomondemandgt

ltcomUsernameTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomnamegt4933ltcomnamegt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtltincInclude href=cid1276245679229

xmlnsinc=httpwwww3org200408xopincludegtltdatagtltfilegt

ltfilesgtlttemplategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 280

Appendix B - SOAP API

ltdeliveryOptiongtltidentgt

ltcomnamegtlpltcomnamegtltidentgt

ltdeliveryOptiongtltdelDeliverDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt------=_Part_0_2998042411322083558307 Content-Type textxml charset=us-asciiContent-Transfer-Encoding 7bitContent-ID lt1276245679229gt

ltxml version=10 encoding=UTF-8 standalone=yesgtltInteractiveDataModel version=11 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=c10478fe6de8490ea462a64e518751c9xsdgt

ltPublicationgt ltInteractiveFieldgtTest dataltInteractiveFieldgtltDeliveryInformationgtltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegtltDocumentSelector xsinil=truegt

ltDeliveryInformationgtltg1privategt

ltPublicationgtltInteractiveDataModelgt------=_Part_0_2998042411322083558307--

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 281

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4DeliverDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdeliveryRequestgtltns2idgt137ltns2idgtltns2statusgtPROCESSINGltns2statusgtltns2deliveryItemsgt

ltns2deliveryItemgtltns2idgt3252ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2modegtIMMEDIATEltns2modegtltns2typegtPRINTltns2typegtltns2devicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgtltns2HIPIdgt312ltns2HIPIdgtltns2metaIdgt313ltns2metaIdgt

ltns2devicegtltns2recipientgt

ltns2idgt1ltns2idgtltns2namegtRRRRRRRRRRltns2namegt

ltns2xpathgtInteractiveDataModelPublicationDeliveryInformationReceipientltns2xpathgt

ltns2recipientgtltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgtltns2documentgt

ltns2datagt ltxopInclude

href=ciddata-639c053e-ee64-4630-8ada-5091966c518awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltns2documentgt

ltns2deliveryItemgtltns2deliveryItemsgt

ltdeliveryRequestgtltns4DeliverDocumentResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 282

Appendix B - SOAP API

previewDocument()

Description

This Web service returns a preview of the document specified in the request

The request includes the template identifier along with the document files (for example answer HIP property) In order for this operation to work successfully the preview device needs to be defined in EngageOne Administration

The preview document data is returned in the response as an attachment

Parameters

Input

PreviewDocumentRequest

request type PreviewDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

Output

PreviewDocumentResponse

response type PreviewDocumentResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

Deliveryfault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 283

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewDocumentgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtAQIC5wM2LY4SfcybfdGzpUvpFf4fVau4XU-w7VEHi9SLx_MAAJTSQACMDEAAlNLABM3MzUxMTg2ODM5MTcwNTUwNzM1defaultltcomtokengt

ltcomSessionTokengt

ltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

lttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

lttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

lttypegtPROPERTYlttypegtltdatagtcid278598095434ltdatagt

ltfilegtltfilesgt

lttemplategtltdelPreviewDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 284

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-bdd85045-1de1-42c2-b0b1-865ea9045a52wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewDocumentResponsegtltenvBodygt

ltenvEnvelopegt

previewWorkItem()

Description

This Web service previews a document associated with a work item

The request includes a work item identifier (id or name) obtained from a previous call to the WorkItemService createWorkItem service operation

The preview device is assumed to be defined through EngageOne Administration

The preview document data is returned in the response as an attachment

Note In order to preview a work item with Web services the work item status must not be Active New or Active Incomplete

The work item can be previewed after the required work is completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 285

Appendix B - SOAP API

Parameters

Input

PreviewWorkItemRequest

request type PreviewWorkItem - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

PreviewWorkItemResponse

response type PreviewWorkItemResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtc42356d8ec312e4b471399896cc44e77_1261063384968_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltdelPreviewWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 286

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-121f00b4-7d2d-4c75-a20a-1c5ed92563c1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewWorkItemResponsegtltenvBodygt

ltenvEnvelopegt

resumeDeliveryItem()

Description

This Web service resumes a delivery item which has been previously suspended via a call to the DeliveryService suspendDeliveryItem operation

The request must contain either the work item identifier (ID or name) or the delivery item ID An optional comment can be specified as well

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 287

Appendix B - SOAP API

Parameters

Input

ResumeDeliveryItemRequest

request type ResumeDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

ResumeDeliveryItemResponse

response type ResumeDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelResumeDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtResume by soupUIltcommentgt

ltdelResumeDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 288

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ResumeDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

searchDeliveryItems()

Description

This Web service retrieves delivery items associated with a work item or as specified by a delivery item ID

If the search filter is set to DETAIL the composed document associated with the delivery item is also returned if it exists (it may not have been composed)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 289

Appendix B - SOAP API

Parameters

Input

SearchDeliveryItemsRequest

request type SearchDeliveryItems - extension of type SearchRequestMessage

workItems - optionalworkItem

ident type IntegerIdOrName

deliveryItems - optionaldeliveryItem

id type ID - type int with restriction

Output

SearchDeliveryItemsResponse

response type SearchDeliveryItemsResponse - extension of type ResponseMessage

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restrictiondeliveryChannel type DeliveryChannel - extension of abstract type Entity

id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 290

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryItemsgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltworkItemsgt

ltworkItemgt ltidentgt

ltcomidgt27ltcomidgtltidentgt

ltworkItemgtltworkItemsgt

ltdelSearchDeliveryItemsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 291

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryItemsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryItemsgtltdeliveryItemgt

ltns2idgt501ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2typegtPRINTltns2typegt

ltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgt

ltdeliveryItemgtltdeliveryItemsgt

ltns4SearchDeliveryItemsResponsegtltenvBodygt

ltenvEnvelopegt

suspendDeliveryItem()

Description

This Web service suspends a delivery item specified in the request by a work item identifier (ID or name) or delivery item ID

A suspended delivery item will not be delivered

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 292

Appendix B - SOAP API

Parameters

Input

SuspendDeliveryItemRequest

request type SuspendDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

SuspendDeliveryItemResponse

response type SuspendDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelSuspendDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtsoapUIltcommentgt

ltdelSuspendDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 293

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SuspendDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateDeliveryItem()

Description

This Web service can be used to update the status of a delivery item as specified in the request by a work item identifier (ID or name) or delivery item ID

Parameters

Input

UpdateDeliveryItemRequest

request type UpdateDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS

Output

UpdateDeliveryItemResponse

response type UpdateDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 294

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelUpdateDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt38ltcomidgt

ltidentgtltworkItemgtltcommentgt123456ltcommentgtltstatusgtDELIVEREDltstatusgt

ltdelUpdateDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 295

10 - Upgrading 3X to 4X SOAP services This section details the difference between EngageOne 3X and 4X SOAP services

Note this section does not cover Gen1 SOAP services These services are no longer available

In this section

Licensing changes 297 Security changes 298 WorkItem approval process not supported 300 DataPushServicemapData not supported 300

Upgrading 3X to 4X SOAP services

Licensing changes

EngageOne Server 4X no longer requires a license file at installation time

The license file restricted the

bull Total number of communities bull Total number of concurrent sessions bull Use of OnDemand services

These restrictions are no longer enforced at runtime As a result the following fields in the AuthContext element are ignored but must be included in your request

bull ondemand

bull transientsession

In addition the following services do not have the OnDemand licensing requirement as was the case in 3X

bull DeliverDocument

bull SearchDeliveryOptionsbull SearchTemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 297

Upgrading 3X to 4X SOAP services

Security changes

The following section details security changes that are part of the upgrade to EngageOne 4X

Authentication with WS-Security

In EngageOne 3X a custom AuthContext SOAP element is used to send credential information to the server This authentication mechanism is still supported but should no longer be used in new development

To improve and modernize the authentication mechanisms of EngageOne Server the SOAP services now support WS-Security authentication

WS-Security (Web services security) is an industry standard that addresses security when data is exchanged as part of a Web service This type of authentication is implemented on all EngageOne Server services at the useridpassword level

WS-Security specifies enhancements to SOAP messaging that protect the integrity and confidentiality of a message and authenticate the sender WS-Security specifies how to associate a security token with a message without specifying what kind of token that is to be used

To use WS-Security you must specify the additional SOAP header elements in all requests

Role and access right enforcement

EngageOne version 4X introduces new Role and Access Rights restrictions in SOAP services Users are now required to have the necessary permissions to work with server resources

The following permissions are enforced in 4X

bull Role assignments - methods have been restricted by roles to align with permissions granted in EngageOne Interactive and EngageOne Admin

bull Template access rights - when working with resources in the TemplateActive ContentMessage Content folder structure the user must have access via an LDAP group specified in EngageOne Admin

For example SearchTemplates will return templates to which the user has permissions Some special roles have unrestricted access where this does not apply

bull WorkItem assignment rights- when working with a Work Item a user must either be an owner of the Work Item or have unrestricted access

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 298

Upgrading 3X to 4X SOAP services

For example to call DeleteWorkItem the user must be the owner of the Work Item

bull Unrestricted access - these roles are not restricted by Template Access and WorkItem Assignment Rights

Role and access rights by service

The following table describes the required roles and additional access rights that are enforced

Roles are abbreviated as follows

bull Interactive Roles

bull Editor bull Editor with Saving New Templates

bull CA - Community Administrator bull DM - Document Manager bull TM - Template Manager bull EFM - External File Manager

Service Required Roles Additional Access Enforced

Template Access Rights Interactive Roles DataPush

None (unrestricted access) DM CA

Template Access Rights Interactive Roles DeliveryManagement

None (unrestricted access) DM CA

WorkItem Assignment Rights Interactive Roles Delivery

None (unrestricted access) DM CA

NANo roles required Domain

Template Access Rights Interactive Roles Editor

None (unrestricted access) CA

Keymap EFM CA NA

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 299

Upgrading 3X to 4X SOAP services

Service Required Roles Additional Access Enforced

Security

None (unrestricted access) Interactive Roles Metadata

No roles required

WorkItem Assignment Rights Interactive Roles Template (Interactive features)

None (unrestricted access) DM CA

NATM CA SA Template (Admin features)

WorkItem Assignment Rights Interactive Roles WorkItem

None (unrestricted access) DM CA

WorkItem approval process not supported

The following methods are not currently supported in EngageOne 43 and will return a not supported fault message when called

bull WorkItemServicerejectWorkItembull WorkItemServiceapproveWorkItem

In addition WorkItemServicesubmitWorkItem will only submit work items for delivery If the work item triggers a workflow approval process an error will be thrown

DataPushServicemapData not supported

mapDatamethod of DataPushservice is no longer supported In earlier releases this method mapped pushed data from the pushData method to a template

In this release the pushData method performs this operation in advance and creates a corresponding communication in Interactive for an end-user

If you are using the out-of-the-box Interactive application the pushData call may exclude the specific template In this case the Interactive user will be prompted to select a Template

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 300

Upgrading 3X to 4X SOAP services

If you have developed your own Interactive application and opt to use the pushData method you must specify the template in advance to ensure data is mapped correctly

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 301

Notices

Copyright

Copyright copy2018 Pitney Bowes Inc All rights reserved

This publication and the software described in it is supplied under license and may only be used or copied in accordance with the terms of such license The information in this publication is provided for information only is subject to change without notice and should not be construed as a commitment by Pitney Bowes Inc (PBS) To the fullest extent permitted by applicable laws PBS excludes all warranties representations and undertakings (express or implied) in relation to this publication and assumes no liability or responsibility for any errors or inaccuracies that may appear in this publication and shall not be liable for loss or damage of any kind arising from its use

Except as permitted by such license reproduction of any part of this publication by mechanicalelectronic recording means or otherwise including fax transmission without the express permissionof PBS is prohibited to the fullest extent permitted by applicable laws

Nothing in this notice shall limit or exclude PBS liability in respect of fraud or for death or personal injury arising from its negligence Statutory rights of the user if any are unaffected

TALO Hyphenators and Spellers are used Developed by TALO BV Bussum Netherlands Copyright copy 1998 TALO BV Bussum NL TALO is a registered trademark reg

Encryption algorithms licensed from Unisys Corp under US Patent No 4558302 and foreign counterparts

Security algorithms Copyright copy 1991-1992 RSA Data Security Inc

Copyright copy DL Technology Ltd 1992-2010

Barcode fonts Copyright copy 1997 Terrapin Solutions Ltd with NRB Systems Ltd

This product includes software developed by the Apache Software Foundation (httpwwwapacheorg)

Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex Software Inc

This product contains the Regex++ library Copyright copy 1998-2000 Dr John Maddock

PostScript is a trademark of Adobe Systems Incorporated

PCL is a trademark of Hewlett Packard Company

Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc (httpwwwbouncycastleorg)

ICU License - ICU 181 and later Copyright (c) 1995-2006 International Business Machines Corporation and others All rights reserved

Permission is hereby granted free of charge to any person obtaining a copy of this software andassociated documentation files (the Software) to deal in the Software without restriction includingwithout limitation the rights to use copy modify merge publish distribute andor sell copies of theSoftware and to permit persons to whom the Software is furnished to do so provided that the abovecopyright notice(s) and this permission notice appear in all copies of the Software and that both theabove copyright notice(s) and this permission notice appear in supporting documentation

Matra 08b (httpmatrasourceforgenet) The contents of this documentation are subject to the Mozilla Public License Version 11 (the License) you may not use this documentation except in

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 303

Copyright

compliance with the License You may obtain a copy of the License at httpwwwmozillaorgMPL Software distributed under the License is distributed on an AS IS basis WITHOUT WARRANTY OF ANY KIND either express or implied See the License for the specific language governing rights and limitations under the License Otherwise all product names are trademarks or registered trademarks of their respective holders

This product contains Sycamore version number 039 which is licensed under the MIT license The license can be downloaded from httpsgithubcomryexleysycamoreblobmasterdistrequesterjs The source code for this software is available from httpsgithubcomryexleysycamore

This product contains Underscore version number 152 which is licensed under the MIT license The license can be downloaded from httpsgithubcomjashkenasunderscoreblobmasterLICENSE The source code for this software is available from httpunderscorejsorg

This product contains Activiti version number 5170 which is licensed under the Apache license The license can be downloaded from httpactivitiorgfaqhtmlWhyApacheLicense The source code for this software is available from httpactivitiorgdownloadhtml

This product contains Bootstrap version number 336 which is licensed under the MIT license The license can be downloaded from httpgetbootstrapcomgetting-startedlicense-faqs The source code for this software is available from httpgetbootstrapcomgetting-starteddownload

This product contains Commons-Configuration version number 110 which is licensed under the Apache license The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpcommonsapacheorgpropercommons-configuration

This product contains jQuery version number 1102 which is licensed under the MIT license The license can be downloaded from httpsjqueryorglicense The source code for this software is available from httpjquerycomdownload

This product contains Json2JSON-js 2015-05-03 The source code for this software is available from httpsgithubcomdouglascrockfordJSON-js

This product contains Kendo UI Core version number 20141318 which is licensed under the Apache2 license The license can be downloaded from httpsgithubcomtelerikkendo-ui-core The source code for this software is available from httpwwwtelerikcomdownloadkendo-ui-core

This product contains Knockout-AMD-Helpers version number 074 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-amd-helpersblobmasterLICENSE The source code for this software is available from httpsgithubcomrniemeyerknockout-amd-helpers

This product contains Knockout version number 340 which is licensed under the MIT license The license can be downloaded from httpsgithubcomknockoutknockoutblobmasterLICENSE The source code for this software is available from httpknockoutjscomdownloads

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 304

Copyright

This product contains Knockout-DelegatedEvents version number 050 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-delegatedEventslicense The source code for this software is available from httpsgithubcomrniemeyerknockout-delegatedEvents

This product contains Knockout-Kendo version number 081 which is licensed under the Apache2 license The license can be downloaded from httprniemeyergithubioknockout-kendoindexhtml The source code for this software is available from httprniemeyergithubioknockout-kendo

This product contains LDAP Synchornization Connector version number 210 which is licensed under the BSD license The license can be downloaded from httptoolslsc-projectorgprojectslscrepositoryentrylsctrunkLICENSEtxt The source code for this software is available from httplsc-projectorgwikidownload

This product contains Momentjs version 2120 which is licensed under the MIT license The license can be downloaded from httpsgithubcommomentmomentblobdevelopLICENSE The source code for this software is available from httpmomentjscom

This product contains Quartz-Scheduler version number 221 which is licensed under the Apache license The license can be downloaded from httpquartz-schedulerorg The source code for this software is available from httpquartz-schedulerorg

This product contains RequireJS-Text version number 2014 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomrequirejstextblobmasterLICENSE The source code for this software is available from httpsgithubcomrequirejstext This product contains Solr-Solrj version number 472 which is licensed under the Apache LicenseThe license can be downloaded from httpsmaven-repositorycomartifactorgapachesolrsolr-solrj472pom The source code for this software is available from httpwikiapacheorgsolrSolrj This product contains RequireJS version number 220 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomjrburkerequirejsblobmasterLICENSE The source code for this software is available from httprequirejsorgdocsdownloadhtml

This product contains Apache ActiveMQ version number 5132 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorg

This product contains Apache NMS version 172 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorgnms

This product contains Apache Commons DBCP version number 122 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpscommonsapacheorgpropercommons-dbcp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 305

Copyright

This product contains OWASP Encoder version number 12 which is licensed under the BSD license The license can be downloaded from httpsopensourceorglicensesBSD-3-Clause The source code for this software is available from httpswwwowasporgindexphpOWASP_Java_Encoder_Project

This product contains Narayan version number 5213Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpnarayanaio 0

This product contains Logback version number 113 which is licensed under the EPL and LGPL licenses version numbers 10 and 21 The license can be downloaded from httplogbackqoschlicensehtml The source code for this software is available from httplogbackqosch

This product contains JBoss Weld version number 233Final which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20The source code for this software is available from httpweldcdi-specorg

This product contains IronJacamar version number 132Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpwwwironjacamarorg

This product contains Hibernate version number 507Final which is licensed under the Apache and LGPL license version numbers 20 and 21 The license can be downloaded from httphibernateorgcommunitylicense The source code for this software is available from httphibernateorgorm

This product contains Apache Tomcat version number 8030 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20 The source code for this software is available from httptomcatapacheorg

This product contains Apache Procrun version number 1015 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpcommonsapacheorgpropercommons-daemonprocrunhtml

This product contains URLRewriterFilter version number 403 which is licensed under the BSD 2-Clause license The license can be downloaded from httpcdnrawgitcompaultuckeyurlrewritefiltermastersrcdocmanual40introductionhtmllicenseThe source code for this software is available from httpwwwtuckeyorgurlrewrite

This product contains FasterXML Jackson version number 266 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpsgithubcomFasterXMLjackson

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 306

Copyright

This product contains Log4net The license for log4net can be downloaded from httpswwwapacheorglicensesLICENSE-20 The source code for this software is available from httpsloggingapacheorglog4netdownload_log4netcgi

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 307

pitney bowes 0 3001 Summer Street Stamford CT 06926-0700

USA

wwwpitneybowescomus

copy 2018 Pitney Bowes Software Inc All rights reserved

  • Table of Contents
  • Overview
    • Overview
    • Template designer
      • About the template
        • Resources
            • EngageOne Server components
              • About Web services
              • Web service descriptions
                • EngageOne administration
                • EngageOne Interactive
                • Interactive document process flow
                  • Selecting a template
                  • Save and submit
                  • Delivering a document
                      • Integrating with EngageOne SOAP
                        • OnDemand
                        • Interactive
                        • Data push processing in EngageOne Interactive
                          • Mapping options
                          • Data push parameters
                          • Accessing services
                          • How mapping works
                          • Data map XML schema and examples
                            • XPath
                              • ElementMap example
                              • ListMap example
                              • RepeatMap example
                                  • EngageOne domains
                                    • User authentication
                                      • WS-Security
                                      • Legacy AuthContext
                                        • Code example
                                          • Obsolete flags
                                              • Data Push error handling
                                                • Code element error types
                                                  • Web services scenario medical insurance data integration
                                                    • Coordinate with template designer
                                                    • Define data push mapping
                                                    • Import data push map
                                                    • Creating the Web services
                                                        • Interactive Document Delivery
                                                        • Sample application
                                                          • Implement Deliver Document sample application
                                                          • Customize sample application
                                                          • Run sample application
                                                            • Notes
                                                                • OnDemand Document Delivery
                                                                  • Ways to authenticate
                                                                    • WS-Security
                                                                    • Legacy AuthContext
                                                                      • XForms
                                                                        • About XForms
                                                                        • XForms processors
                                                                        • XFormSDI Flow
                                                                        • XForms standard files
                                                                          • XHTML presentation file
                                                                          • XML instance file
                                                                          • XML schema file for the interactive data model
                                                                          • XML schema file for the non-interactive Designer data model
                                                                            • Data definition type and attributes
                                                                              • System Data Integration
                                                                                • SDI General Configuration
                                                                                • Using an XML file as a data source
                                                                                  • XML data source diagram
                                                                                  • XMLSystemDataLoader tasks
                                                                                    • Using the Java callback interface
                                                                                      • Java callback interface process flow
                                                                                        • Feature support for System Data Integration
                                                                                          • XForms model example
                                                                                            • Integration option 1 ndash XML data source
                                                                                              • Enabling the default system data loader
                                                                                              • Designing the template for System Data Integration
                                                                                                • Configure system data load user confirmation
                                                                                                • Configure system data load user confirmation read-only
                                                                                                • Configure system data load without user confirmation
                                                                                                • Preparing the system data XML
                                                                                                  • Example XML answer file
                                                                                                  • InteractiveDataModel element
                                                                                                    • Loading the system data XML
                                                                                                        • Integration option 2 ndash callback interface
                                                                                                          • Configure EngageOne Interactive to use custom system data loader
                                                                                                          • Implement a custom system data loader
                                                                                                            • Steps
                                                                                                            • Notes
                                                                                                              • Custom system data loader
                                                                                                                • Custom data loader interface
                                                                                                                • loadToSchema function
                                                                                                                • loadToView function
                                                                                                                • loadToInstance function
                                                                                                                  • Error handling
                                                                                                                    • SystemDataLoaderException class ndash custom fields
                                                                                                                      • errorcode
                                                                                                                        • systemDataLoaderMessagesproperties sample
                                                                                                                          • params
                                                                                                                          • result
                                                                                                                          • message and cause
                                                                                                                            • SystemDataLoaderException constructor signature
                                                                                                                              • Sample implementation
                                                                                                                                • Compiling and packaging custom system data loader
                                                                                                                                • Configuring EngageOne Interactive system data settings
                                                                                                                                  • Additional features in SOAP
                                                                                                                                    • Trusted Connection
                                                                                                                                    • Template search
                                                                                                                                      • Searching templates by template property
                                                                                                                                        • Java sample
                                                                                                                                        • C sample
                                                                                                                                          • Searching templates with sorting and pagination
                                                                                                                                            • Java sample
                                                                                                                                            • C sample
                                                                                                                                              • Searching templates by template metadata
                                                                                                                                                • Java sample
                                                                                                                                                • C NET sample
                                                                                                                                                • Supported metadata field types
                                                                                                                                                  • Java sample
                                                                                                                                                  • C NET sample
                                                                                                                                                    • Write delivery information
                                                                                                                                                      • Write delivery information process
                                                                                                                                                        • Steps
                                                                                                                                                            • Managing the work queue
                                                                                                                                                              • Retrieving work items
                                                                                                                                                              • Retrieving work items with pagination
                                                                                                                                                              • Retrieving work items with sorting
                                                                                                                                                                • Updating work items
                                                                                                                                                                  • Updating the document delivery option
                                                                                                                                                                  • Updating work item status
                                                                                                                                                                  • Updating work item comments
                                                                                                                                                                    • Reassigning a work item
                                                                                                                                                                      • Retrieving document assignees
                                                                                                                                                                      • Reassigning a document
                                                                                                                                                                        • Deleting a work item
                                                                                                                                                                          • Perform a document delete
                                                                                                                                                                              • EngageOne notifications
                                                                                                                                                                                • Overview
                                                                                                                                                                                • Notification components diagram
                                                                                                                                                                                  • Diagram details
                                                                                                                                                                                    • Topics and queues
                                                                                                                                                                                    • Configuration settings
                                                                                                                                                                                      • Configuration settings (cont)
                                                                                                                                                                                        • Messages
                                                                                                                                                                                          • Notification message common properties
                                                                                                                                                                                            • Communication messages
                                                                                                                                                                                              • Communication published actions
                                                                                                                                                                                                • Batch messages
                                                                                                                                                                                                  • Accumulated batch messages
                                                                                                                                                                                                  • Non accumulated batch messages
                                                                                                                                                                                                    • Workflow messages
                                                                                                                                                                                                    • Consuming notification messages
                                                                                                                                                                                                      • Consume messages from an ActiveMQ queue or topic
                                                                                                                                                                                                        • Using other JMS implementations
                                                                                                                                                                                                          • Using a custom JMS connection factory
                                                                                                                                                                                                            • Sample message consumers
                                                                                                                                                                                                              • The comparison adapter plug-in
                                                                                                                                                                                                                • The custom plug-in implementation
                                                                                                                                                                                                                • Example implementations
                                                                                                                                                                                                                  • DocBridgereg Delta
                                                                                                                                                                                                                  • Simple comparison plug-in
                                                                                                                                                                                                                  • Command line adapter implementation
                                                                                                                                                                                                                    • Plug-in Installation and configuration
                                                                                                                                                                                                                      • Appendix A - Editor methods
                                                                                                                                                                                                                        • LoadContents
                                                                                                                                                                                                                        • SaveContents
                                                                                                                                                                                                                        • SpellCheck
                                                                                                                                                                                                                        • IsComplete
                                                                                                                                                                                                                        • IsModified
                                                                                                                                                                                                                        • GetVersion
                                                                                                                                                                                                                          • Appendix B - SOAP API
                                                                                                                                                                                                                            • Identifiers
                                                                                                                                                                                                                            • Search filter
                                                                                                                                                                                                                            • Promotion service
                                                                                                                                                                                                                              • createImportAssetsJob()
                                                                                                                                                                                                                              • getImportAssetsJob()
                                                                                                                                                                                                                              • createExportAssetsJob()
                                                                                                                                                                                                                              • getExportAssetsJob()
                                                                                                                                                                                                                              • getImportPreview()
                                                                                                                                                                                                                              • getAssetDependencies()
                                                                                                                                                                                                                                • Folder service
                                                                                                                                                                                                                                • Data push service
                                                                                                                                                                                                                                • Delivery management service
                                                                                                                                                                                                                                • Dictionary service
                                                                                                                                                                                                                                • Domain service
                                                                                                                                                                                                                                • Editor service
                                                                                                                                                                                                                                • Keymap service
                                                                                                                                                                                                                                • Metadata service
                                                                                                                                                                                                                                • Request status update service
                                                                                                                                                                                                                                • Security service
                                                                                                                                                                                                                                • Template service
                                                                                                                                                                                                                                • Workitem service
                                                                                                                                                                                                                                • Attachment service
                                                                                                                                                                                                                                • Workflow service
                                                                                                                                                                                                                                • Delivery service
                                                                                                                                                                                                                                  • Upgrading 3X to 4X SOAP services
                                                                                                                                                                                                                                    • Licensing changes
                                                                                                                                                                                                                                    • Security changes
                                                                                                                                                                                                                                      • Authentication with WS-Security
                                                                                                                                                                                                                                      • Role and access right enforcement
                                                                                                                                                                                                                                      • Role and access rights by service
                                                                                                                                                                                                                                        • WorkItem approval process not supported
                                                                                                                                                                                                                                        • DataPushServicemapData not supported
Page 4: EngageOne v4.4.8 Programmer's Reference Guide

1 - Overview EngageOne is an interactive document production system enabling the creation and delivery of high volume on demand and interactive customer correspondence

In this section

Overview 5 Template designer 5 EngageOne Server components 10 EngageOne administration 13 EngageOne Interactive 14 Interactive document process flow 14

Overview

Overview

Document templates and optional content objects are defined by the template designer in a core application called Designer and managed in the content repository These programs are made available to front-office users through a Web-based interface This interface allows users to create and modify a document in a controlled manner and distribute documents through various delivery channels as required

The EngageOne Interactive Web application uses the services provided by the EngageOne Web services interface to access the server functions of EngageOne

Template designer

Document templates are created by a template designer a user who defines the document and its interactions in Designer

A template consists of a traditional publication design along with interactive data definitions which describe the front office user interactions required to complete a document from that template

This involves designing the overall template and defining

bull The data prompts included in the document using the Interactive Editor bull Paragraph and content selection using optional content selections (Active Content) bull Free-form text to override content protection using editable paragraphs

For more information about these functions see the Designer Userrsquos Guide

The template designer allows the user to edit or enter free text as required in an EngageOne document design by selecting a section of text in a paragraph object and defining the text as editable Any text marked as editable can be changed by the user Text that is not marked as editable will be protected

In addition to the basic template the template designer can create optional content Property values are defined enabling them to be conditionally placed in an Active Content Group When Active Content is marked as interactive the user is dynamically presented with content choices to help them complete their document

Once the EngageOne template has been designed and data fields defined the template is named and published for EngageOne The XForm files that define the documents data model are included in the templatersquos Zip file

The process of importing these files into the EngageOne content repository using the EngageOne Administration client is called Template deployment

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 5

Overview

The interactive data model is defined and exposed using the W3C XForm standard The XForm can be used by the system integrator to push system data into the interactive document

Content repository

The content repository provides file storage and version control for EngageOne It houses the templates used to create documents supporting files needed for document composition and the document instances waiting for delivery

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 6

Overview

About the template

The template manifest (template_masterxml) describes template attributes and contents

The template manifest is made up of the following

Subfiles

The Subfiles section contains a list of files in the template Zip file and specifies each file type

Template composition

HIP files contain design layout logic and other resources required for generating publications These files are used by Generate

There are two types of HIP file publications and independently publishable active content

HIP

Publication files contain design layout and logic These files are used by the Interactive Editor

There are two types of PUB file template publications and independently publishable active content

PUB

XForms define electronic forms for collecting general purpose information XFRM

Instance data file

Initially this file contains default field values All values entered by the user will be saved in this file Free form text is stored in the HIP and PUB files not the instance file

INST

The instance file schema contains standard schema nodes and attributes The schema ensures data returned in the instance file is well-formed the right type and meets defined field criteria

SCHEMA

Image file required by the editor for display in the template IMG

XML representation of the Designer Publication ldquoSample Datardquo whether the original data is keyed data (for example single value decomposition) delimited (for example comma separated values) or on-demand XML The DATAMODEL file type appears only for non-interactive templates

DATAMODEL

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 7

Overview

Template composition

PREVIEW

PROMPTLOGIC

THUMBNAIL

PDF file appears for both interactive and non-interactive templates where Designer Publish for EngageOne has successfully generated a PDF ldquopreviewrdquo example of the Designer Publication

The PREVIEW file is generated using ldquoemergency replacementrdquo data where the Designer Publication data is incomplete and may not reflect the completed document PREVIEW file is available for the Interactive user to view a ldquoPreviewrdquo of the Template Document at the start of the ldquoEdit Communicationrdquo process

Files containing information used to prompt for and validate interactive template data when the ActiveX editor is not used

Scaled image representation of the first document Intended as a rough guide to the layout and content of the first document

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 8

Overview

Resources

The Resources section lists the dependencies of the template These can be of the following types

ACTCONT Active content

IMAGE Image used in the template

FONT Font used in the template

The following fragment demonstrates the structure of the template manifest

ltxml version=10 encoding=utf-8gtlt--XML meta file for EngageOne Template--gtltdocument ocmmetafile-vers=ocm-metafile10 ocm-vers=OCM TemplateV10gt ltOcmMetadatagt ltdocumentClassgt ltmetadata-field fieldName=Publish Date fieldValue=05-May-2009

defaultValue= fieldType=text gtltmetadata-field fieldName=Published By fieldValue=Administrator

defaultValue= fieldType=text gtltmetadata-field fieldName=Design Publication Name fieldValue=Basic

defaultValue= fieldType=text gtltdocumentClassgtltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=PUBgttemplatepubxltFilegtltFile type=XFRMgtd79f96b60b2a48ee9f59c8bed5655f86xformltFilegtltFile type=INSTgtd79f96b60b2a48ee9f59c8bed5655f86xmlltFilegtltFile type=SCHEMAgtd79f96b60b2a48ee9f59c8bed5655f86xsdltFilegtltFile type=IMGgtc52767b2d1824366b522589d550cb297pngltFilegtltSubfilesgtltResourcesgt ltRes type=ACTCONT name=Basic

guid=e06d8fc2009642ddb2740495af6bf785 gtltRes type=FONT name=Arial 11pt

guid=24e474cc2baa434cb7239457b6b90443 gtltRes type=IMAGE name=logobmp

guid=c52767b2d1824366b522589d550cb297 gtltResourcesgtltInputsgtltHIP path= gtltActiveContent path= gtltInputsgtltOcmMetadatagtltdocumentgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 9

Overview

EngageOne Server components

The Web services layer

bull Exposes EngageOne communication services to a custom built front office Web application or to the EngageOne Web application

The Business layer

bull Document management - template storage and retrieval (including version control) and work queues (document instance storage and retrieval)

bull Security management - supports direct integration with LDAP and Active Directory for user and group lists

bull Delivery Services - defines delivery channels and provides services to generate draft and final copy output

bull Event Monitor - monitors system health and tracks system activities Tracking information can be used for reporting

For example a report can specify how many times a template is used or how quickly a template is processed

bull Delivery channels - EngageOne delivery channels include print fax email SMS and archive

Document instances can be submitted for real-time delivery to a local printer

Output can be queued for EngageOne batch processing

About Web services

The EngageOne server exposes most of its API via Web services EngageOne Web services enable custom application integration with EngageOne server on any development platform supporting Web services

Components Requirements

Support for various bindings (SOAP 11) SOAP and Web services

Axis 2 or JAX-WS (recommended)

At least custom XML

Java clients

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 10

Overview

Components Requirements

Microsoft Windows Communication Foundation Framework

NET clients

Note Not all EngageOne Server Web services are WS-I compliant

bull There is an issue with MTOM attachments support using Axis2 as a client

In order to work around this issue updated client stubs are provided on the installation media under the samples folder These client stubs accommodate and correctly parse MTOM attachments If you use Axis2 and wish to use MTOM attachments you may opt to use these stubs

bull The services will continue to work without MTOM attachments The advantage to MTOM attachments is they can work with larger file sizes

Web services are backward compatible and client code should not need to be changed Any auto-generated client stub code based on a previous Web service release should be regenerated against the new Web services definitions (WSDLs)

Services are provided that allow a third part application to complete document flow starting from creation up to delivery

The diagram below shows the server components exposed as a Web service via an adapter The diagram details the exposed Web services a custom application could use to integrate with EngageOne

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 11

Overview

Web service descriptions

The following details EngageOne Web services

Delivery Management Service - search delivery channels and devices

Delivery service - work item preview and work item distribution

Dictionary service - search speller XML file

Domain service - search domain information

Editor service - transfer files from the content repository server by resource file ID

Keymap service - import keymaps

Metadata service - manage and retrieve document classes or metadata and configure metadata definitions

Security service - search user roles

Template service - template creation retrieval and search support

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 12

Overview

WorkItem service - work queue related functions

For example retrieve work items work item creation work item assignment approval and rejection functional support

In the EngageOne Web service runtime environment EngageOne Web services work with EngageOne applications using Simple Object Access Protocols (SOAP) In the application server environment a SOAP servlet is deployed as the requestresponse gateway

All EngageOne Web services are published in Web service Description Language (WSDL) format and are described by the following namespaces

Note Namespaces are used to avoid naming conflicts in XML tags ensuring uniqueness

bull httppbcomEngageOnewscommon bull httppbcomEngageOnewsmodel bull httppbcomEngageOnewsdeliveryManagement bull httppbcomEngageOnewsdelivery bull httppbcomEngageOnewsdictionary bull httppbcomEngageOnewsdomain bull httppbcomEngageOnewseditor bull httppbcomEngageOnewskeymap bull httppbcomEngageOnewsmetadata bull httppbcomEngageOnewssecurity bull httppbcomEngageOnewstemplate bull httppbcomEngageOnewsworkItem

EngageOne WSDL files are generated from the EngageOne Web service Java Interface

WSDL example files are included in the distribution media ltrelease-distributiongtsamplessoapwsdl

EngageOne administration

The EngageOne administrator uses a Web application to set up and configure the EngageOne environment

The Web application is delivered as part of the standard EngageOne server install

The EngageOne Administration Web interface supports managing folders templates and delivery channels

For security purposes role-based access and user roles are defined in EngageOne Administration Roles can be assigned to individual or a group of LDAP users

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 13

Overview

The EngageOne administer handles domain management license management and system diagnostics

For more details see the EngageOne Administration Guide

EngageOne Interactive

EngageOne Interactive is delivered with the EngageOne Server It provides a browser based interface for front-office workers to create customized documents EngageOne Interactive supports a widely distributed user base including remote users

For more information about working with EngageOne documents see the EngageOne Interactive Userrsquos Guide

In many cases a custom designed application might be more appropriate for addressing your business needs

If preferable to a fully featured implementation the Web services interface allows integration between EngageOne and your existing business systems

For more information about building your own interactive application see Integrating with EngageOne SOAP

Interactive document process flow

Note integration is not supported in this version of EngageOne Server workflow

The process flow starts with EngageOne fulfilling a request for a document in real time requiring user interaction to complete the request Data definitions are embedded in a template and create an underlying XForm The XForm is used to drive the prompts which gather data required to complete the document

Business driven data is retrieved or provided by your system integration program from the appropriate source

For more information see Integrating with EngageOne SOAP and System Data Integration

The following diagram illustrates the process flow

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 14

Overview

Selecting a template

A custom application would use the TemplateService Web service

The template service collects a list of templates from the content repository and presents the templates to the user All templates have a template ID which is used by all other calls

Templates can be identified by name Keep in mind that the template name is not unique and a search by name could return multiple templates

bull A document instance is created from a template by the editor The XForm is pushed to the custom system integration program which parses system attributes and populates system fields

For example the system may have executed an address lookup and populated form information The XForm is returned to the calling application for user interaction

Note a custom built Web application must adhere to the specification for interactive data prompt display Front end users can manually enter data for document completion

Editing is handled through

bull Form fields (generated from XForms or by the system integrator) bull The Interactive Editor component (supplied with EngageOne server)

Edits are stored in the answer file where they can be accessed by Generate when composing the final output documents Edits can be sent to the delivery process automatically without being saved

For more information see Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 15

Overview

Save and submit

When a document instance is saved the system data interactive input delivery channel selections and any other relevant information is saved in an answer file

The answer file is passed back to the EngageOne repository by the WorkItemService and saved as a new revision of a permanent document instance

The completed document is submitted

The reference to the permanent document instance and version is sent to the Document Server for final delivery

The document revision and template revision are referenced by the Document Server and any change will not affect what is delivered to the user The user may choose from the templates delivery options

Delivering a document

The Document Server receives delivery requests

The requests are queued and a job number is returned to the calling application The job number can be used for future requests about job status error tracking and audit information

The system queries the EngageOne server for available delivery channels

Available delivery channels are returned by the DeliveryManagementService Web service call

Returned data is filtered by available channels set up in the template configuration and by EngageOne Document server permissions

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 16

2 - Integrating with EngageOne SOAP This section provides an overview of using EngageOne Server Web services to integrate with other business systems

In this section

OnDemand 18 Interactive 18 Data push processing in EngageOne Interactive 18 Interactive Document Delivery 32 Sample application 33 OnDemand Document Delivery 36

Integrating with EngageOne SOAP

OnDemand

Isolated services called by customer systems without an end user

Interactive

Graphical interfaces supporting stage by stage integration of EngageOne Server into existing tools and workflows

Data push processing in EngageOne Interactive

EngageOne Server includes an optional data push method This method can provide customer data that can be used to generate interactive documents

Data push works by pushing an XML data structure from your business systems to the EngageOne Server where it is ready for document instance creation The XML data structure is pushed to EngageOne Interactive using a Web service request

Data push can be used in conjunction with system data integration or in its place if the following requirements are met

bull You have no data to populate for drop-down lists free form text fields and any associated fields specified as key fields or visible on the XForm in your template

bull The data you push is complete bull Mapping is complete

To accomplish this create map files in an XML editor then import to EngageOne Server

Data push passes the data in any defined format then maps with one of the following options

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 18

Integrating with EngageOne SOAP

Mapping options

With a Push User

Without a Push User

Data push parameters

The parameters are

bull userId - user name

With a Template

bull Task set to ACTIVE_NEW status

bull User is automatically assigned

bull Work item is automatically created

bull Task set to ACTIVE_NEW status

bull Interactive prompts for user assignment

bull Work item is automatically created

Without a Template

bull Task set to NEW status bull User is automatically assigned bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull Task set to NEW status bull Interactive prompts for user assignment bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull password - userId password bull pushUserId - ID used to assign the task (optional) bull domainName - EngageOne domain name bull pushDataXML - source XML pushed data pushed bull mapId - data map identifier bull Template identifier - EngageOne Interactive template identifier (optional)

You can also pass authentication data for a user ID to push data on behalf of another user In this case the pushed data is associated with a Work Item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 19

Integrating with EngageOne SOAP

Accessing services

To create an instance of the stub you will need to know the Web service endpoint

Typically an EngageOne Web service endpoint is in the following format

httpltengageone-server-hostgtltserver-portgtEngageOneWSltweb-service-namegt

Where

bull ltengageone-server-hostgt the host name where EngageOne server is deployed

bull ltserver-portgt the port where the EngageOne Server Web services are accessible

bull ltweb-service-namegt the EngageOne Web service to invoke

How mapping works

The data map XML schema depends on your business data structure

Data maps are based on XML files that are loaded in EngageOne Server These data maps describe the data element associations in business data during a data push event to the corresponding answer file entries The data mapper uses data maps to map element names from a single data map for multiple EngageOne data formats However a single element name can only be mapped in one way

There are three methods for mapping data element mapping list mapping and repeat mapping

Important information about data maps

bull Map names are independent of the XML file used to import the XML structure bull Map files can be stored anywhere on your network and imported using the Data Map tab bull Data map names are unique due to the way map IDs are formed and must be unique within a domain

The diagram below shows how the data mapper works with data maps and answer files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 20

ltPubllcaliongt

lt lrs ~am gtltlrs ~ m gt

ltL slh ~egtltL s t amegt

ltmiddotr1 Llegtlt11 tlegt

ltPu lie tlongt

ltdat gt

Data Pust XML Mapper

le

ltEublicacion

ltvar name foo gtbarltvargt

ltvar name= blah gtduhltvargt

ltvar n me= huh gtltv rgt

Map File

(xyuml)

ltFirstNam gtbarltFirstNamegt lt~astNarn gtduhlt~ascNamegt

ltTitlegtltTi l gt

ltddtdgt ltPublicationgt

ltJaLaP sh 1 p ma p d=~xyzbullgt ltL slMap am = daLadaL xpaLh=lt na n gt

ltE menu-iap srcxraL = var- r1am = roo La~~ LXPaL = F rsLNam gt ltF m nLMap srcXPaL = va- am= lc1h larg tXPaL = LclSL Nam gt ltEemencMap srcXPa h var ~amec h middoth arge xea h l~ _e gt

ltla a stMapgt

Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 21

Integrating with EngageOne SOAP

Data map XML schema and examples

A good understanding of the data map XML schema is key to integrating data push methods between your business systems custom applications EngageOne Interactive and EngageOne Server

The data map XML schema uses XPath annotation for determining source and target elements in pushed XML data

The data map XML schema is located in

ltrelease-distributiongtsamplesdata-map-schema

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 22

Integrating with EngageOne SOAP

XPath

XPath is a language designed for finding information in an XML document

There are three ways to use XPath to determine the source and target elements for data mapping The source element comes from the pushed XML data specified to the Web service or the EngageOne Interactive URL The target element is the template answer XML file

The three types of mapping in the XML schema are ElementMap ListMap and RepeatMap

bull ElementMap maps a single data element from pushed XML data to a single element in an answer XML file

bull ListMap maps multiple data elements from pushed XML data to multiple elements in an answer XML file

bull RepeatMap maps repeating data elements from pushed XML data to repeating elements in an answer XML file

A single map XML file can have zero or more element maps zero or more list maps and zero or more repeat maps

Nest ElementMap ListMap and RepeatMap elements to define the source and targe file hierarchy

Using XPath annotation you can write expressions for the source element in the pushed XML data and the target element in the answer XML file

Note If you use namespaces in your pushed XML data you must declare standard XML namespaces in your data map

ElementMap example

ltpElementMap srcXPath=datadatum[name=String 1]targetXPath=InteractiveDataModelPublicationString2gt

The srcXPath attribute contains the XPath expression that identifies the source element in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination element in the answer XML file

In this example the source element is identified as the ltdatumgt tag where the name attribute has the value lsquoString1rsquo

The target element is identified as the ltString2gt element under the ltPublicationgt section of the answer XML file

ListMap example

ListMap is more complex

For example

ltpListMap name=datadatum xpath=name gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 23

Integrating with EngageOne SOAP

In this example the XPath expression ldquodatadatumrdquo identifies multiple elements in the pushed XML data For each of these elements the name attribute identifies the target element name in the answer XML file

For example if the pushed XML data had the following

ltdatagt ltdatum name=rdquoString1rdquogtFredltdatumgtltdatum name=rdquoString2rdquogtJonesltdatumgt

ltdatagt

The above example would identify both ltdatumgt elements from the pushed XML data It would copy ldquoFredrdquo into the ltString1gt element of the ltInteractiveDataModelgt of the answer XML file and copy ldquoJonesrdquo into the ltString2gt element of the ltInteractiveDataModelgt

Using a single ListMap you can copy over multiple pieces of data

RepeatMap example

The third approach is to use RepeatMap The RepeatMap element allows you to define a set of repeating elements from the source XML file and copy them to repeating elements in the target XML file

For example

ltRepeatMap srcXPath=mydatadata1targetXPath=InteractiveDataModelPublicationNestedRepeatingGroupParentgt

ltElementMap srcXPath=name targetXPath=NamegtltRepeatMap srcXPath=data2 targetXPath=NestedRepeatingGroupChildgtltElementMap srcXPath=time targetXPath=TimegtltElementMap srcXPath=num targetXPath=NumbergtltRepeatMapgt

ltRepeatMapgt

The srcXPath attribute contains the XPath expression that identifies the source repeating elements in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination repeating elements in the answer XML file

Inside RepeatMap nested ElementMap and ListMap are used to map data elements RepeatMapcan be nested as well Typically the XPath expressions used by a nested map are relative

In this example in the srcXPath of the first ElementMap name is relative to the srcXPath of its parent RepeatMap mydatadata1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 24

Integrating with EngageOne SOAP

EngageOne domains

Note as of the 4X version of the software domains are known as communities

EngageOne separates data into domains A domain represents a line of business department or section in a business environment

Domains are configured by a system administrator at installation time Once installed they can be managed and adjusted System users will be assigned various roles on a per-domain basis

When integrating with SOAP services the domain the username and password must be included in the request

User authentication

EngageOne Server supports two authentication mechanisms

bull WS-Security - industry and SOAP standard

The recommended authentication method

bull AuthContext - custom element in the SOAP request

This authentication method has been deprecated It is used for backwards compatibility with previous versions of the software

WS-Security

WS-Security (Web Services Security) is an industry standard that addresses security when data is exchanged as part of a Web service This authentication is implemented on all EngageOne Server SOAP services at the userid and password level

Legacy applications may choose not to use this type of authentication authenticating instead through the backwards-compatible AuthContext mechanism described below

New applications should leverage this authentication and disable the AuthContext mechanism

With WS-Security use the ltcomcommunitygtltcomcommunitygt element for the domain request

Legacy AuthContext

Every operation will include the AuthContext element AuthContext needs to contain UsernameToken or SessionToken elements

UsernameToken and SessionToken are mutually exclusive If the request contains SessionToken UserNameToken cannot be specified

Note When a request does not include the SessionToken element the server will expect the UsernameToken element to check authentication If the UsernameToken is valid the

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 25

Integrating with EngageOne SOAP

server will generate a new SessionToken that will be passed back to the client Subsequent requests can use the returned SessionToken instead of the UsernameToken

By default the SessionToken will expire after 30 minutes The timeout length can be configured via the session_timeout tag of the ltinstallation_rootgtcoreconfconfig-settingsxml file after EngageOne has been installed

If the SessionToken has expired a SOAP fault will occur with error code -6 Repeating the call that failed with a valid UsernameToken will allow the call to succeed and generate a new SessionToken The new SessionToken will be valid for an additional 30 minutes

Code example

ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongt optionalltcomondemandgtfalseltcomondemandgt optional

ltcomUsernameTokengtltcomauthContextgt

Obsolete flags

onDemand

The onDemand element was used to control licensing options in previous versions of the software We recommend non-legacy customers treat this element as optional and avoid using it

transientSession

The transientSession element was used to indicate the current call should not create a persistent session We recommend non-legacy customers treat this element as optional and avoid using it

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 26

Integrating with EngageOne SOAP

Data Push error handling

Error messages are contained in the SOAP Web service detail response Error messages are localized based on the server locale

To support localized error messages the SOAP details contains an errorCode element the client application can use to translate the error message This is based on the error code returned

Following is an example of a SOAP response from the server containing an error

ltxml version=10 encoding=UTF-8gtltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeader gtltenvBodygtltenvFaultgt ltfaultcodegtenvServerltfaultcodegtltfaultstringgtAuthentication failureltfaultstringgtltdetailgt ltServiceFault xmlns=httppbcomEngageOnewscommongtltcodegt-1ltcodegtltmessagegtAuthentication failureltmessagegtltServiceFaultgt

ltdetailgtltenvFaultgtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 27

Integrating with EngageOne SOAP

Code element error types

The code element in the SOAP fault is mapped to the following error types

Code Error Type

-1 General failure

-2

-3

Illegal argument

Invalid identifier

-4 Missing required argument

-5

-6

Unsupported operation

Session timeout

Message

bull failed to find Delivery Item

bull failed to deliver document bull failed to delete Delivery Item

bull failed to preview Template

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to resume Delivery Item

bull failed to suspend Delivery Item

bull failed to update Delivery Item

Never returned

bull failed to load subfiles (for example HIP) bull failed to find template

bull failed to find workItem

bull failed to find workItem preview

bull failed to preview because of current status (active-new or active-incomplete)

bull empty request bull missing delivery item identifier delivery options identifier template authContext workItemID HIP Property answer

Never returned

expired userContext

The message element is a string that explains the error details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 28

Integrating with EngageOne SOAP

Web services scenario medical insurance data integration

You work for an insurance provider as a data integration analyst You have been tasked with developing a custom system data integration program that collects key information about clients and additional client data from various back-end systems

This information populates an XML instance that is passed to the EngageOne server for document composition When data is pushed to the server the template and other identifiers are specified When the end-user launches EngageOne Interactive the work item based on the specified template is available

The first document composition activity that will be supported is email notification to plan members or their dependents who may be subject to coordination of benefit requirements

The following is a sample of data from the data source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 29

Integrating with EngageOne SOAP

Coordinate with template designer

The next step is to coordinate with the template designer and define the Interactive Data Model field names for associated document composition template

Typically either the data integration analyst provides the field names to the template designer or the template designer provides a list of field names to the analyst You will also need authentication information for the EngageOne server

Define data push mapping

Based on field name assignments the next step is to map the fields from your data source to the Interactive Data Model field names

The mapping is defined in a data push map file The mapping function allows any valid XML input structure to be mapped to the Interactive Data Model XML structure

Because of the structure of your input data and design of the template you decide to use ElementMap to map a single data element from the pushed XML data to a single element in an answer XML file

The field names received from the template designer are the same as the field names in the source data except the template designer is using a field named COB to represent the Coordination_of_Benefits data from the source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 30

Integrating with EngageOne SOAP

Import data push map

Name the map file MyDataPush_COBxml

You import the mapping file into EngageOne Administration

For more information see the EngageOne Administration Guide

Creating the Web services

Using Data Push Web services you can build a custom integration application and create thefollowing

1 Use any JAX-WS compliant client framework such as Axis2 to create Web service client stubs based on the pushData Web service

2 Use the client stubs to formulate a pushData request to pass the Data Push XML data to EngageOne Server with the template identifier and map name (mapId in the service definition)

3 Invoke the Web service using the client stubs you created 4 Handle the response from the Web service invocation 5 Test the custom system data integration application by passing a test XML instance Ask the

template designer or an EngageOne Interactive user to log in and verify that the work item is available

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 31

Integrating with EngageOne SOAP

Interactive Document Delivery

The most important feature of any interactive document delivery application is the ActiveX editor The ActiveX editor allows free form communication editing with a high degree of fidelity between the view presented while editing and the finished communication The editor is embedded in EngageOne Interactive and is available on the installation media

bull The ActiveX editor requires services to retrieve and save the associated files

The deliver-document sample application demonstrates how this can be achieved

bull If you build deploy and run the sample application you will progress through a series of pages

The first page prompts you to choose a lsquothemersquo for the pages

bull Then a login prompt displays

Once logged in choose a template and a delivery option from the two lists

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 32

Integrating with EngageOne SOAP

Sample application

The sample application included in the release distribution is a simple Java Server Faces application

This application uses the Mojarra implementation PrimeFaces for the UI components and a Java servlet to interact with the ActiveX control

The sample application is made up of two parts

1 The view (XHTML files) define the display elements

Included with the view files are controllers (java files) that define the interaction between the user and the views

2 The Java servlet provides the ActiveX editor with the required content then saves changes This functionality is provided by GET and PUT methods respectively

bull In the sample application the EditorServletjava file defines the servlet and its GET and PUT methods

bull The GET method takes templateId WorkItemId and domain name as URL parameters

These parameters are used to make SOAP calls to the EngageOne Server and retrieve the required files The retrieved files are zipped and passed to the ActiveX control

bull The PUT method takes the modified files as a Zip and passes the contained file to the EngageOne SOAP services These are written back to the EngageOne Server

bull The BaseURL and serverURLs will need to be defined for your implementation of the servlet

You can implement the servlet for your application in the way shown in the sample file or you can select a different approach In either case you will need to provide service end-points for the PUT and GET methods when launching the ActiveX control

Implement Deliver Document sample application

The sample application provides an example using EngageOnes SOAP services to query existing objects such as templates and delivery options These objects will be used with user input to generate documents that can be viewed or download through a browser

Note

bull These instructions are taken from a READMEtxt file located in the installation files in the samplesdeliver-document directory

bull The deliver_documentwar file is included in the installation files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 33

Integrating with EngageOne SOAP

Quick start

Use the deliver_documentwar file

Copy deliver_documentwar to the webapps directory of your Tomcat server

Note

bull deliver_documentwar may work with other servers It has been tested on Tomcat bull For best results use a clean copy of Tomcat with no other Web applications installed

Customize sample application

1 Edit the webWEB-INFdeliver-documentproperties file Replace compbsamplessoapurl with the server URL The Web application may be run from any server

2 Build the package with mvn clean package See httpsmavenapacheorgguidesintroductionintroduction-to-the-lifecyclehtml for more information about using Maven A deployable WAR file will be located targetdeliver_documentwar

3 Copy the WAR file to the webapps directory of the Tomcat server

Run sample application

1 Restart the Tomcat server Access the sample application httplthostname8080gtdeliver-documentLoginxhtml

bull Change lthostname8080gt above to match the correct hostname bull The Settings page displays

2 If appropriate choose a theme 3 Log in to the application

The sample application is ready to be used

Notes

bull You may set the property compbsamplessoapurl as a JVM property (-D) to override the server location

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 34

Integrating with EngageOne SOAP

bull This sample application reference shows how to use EngageOne services in a modern application environment Improvements can be made in the area of session management security etc Please follow your own best practices

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 35

Integrating with EngageOne SOAP

OnDemand Document Delivery

The most common goal for this use case is to create a single communication from a template This is illustrated by walking through an example for generating a PDF

At the highest level the steps are load a template load a delivery option deliver the document

At a slightly lower level the programmer will need to manage

bull Authentication for all calls bull Manipulation of the template files on disk bull A mechanism for the customization of a template into a document bull Any post-delivery activities (for example saving a delivered PDF to disk)

Before a document can be delivered the following must exist a domain a template and a delivery option

Note These prerequisites are not covered in the sample application

Ways to authenticate

There are two ways to authenticate

WS-Security

The recommended authentication method This type of authentication is implemented in all EngageOne Server SOAP services at the userid and password level

Legacy AuthContext

This authentication method has been deprecated

For details on authentication see User authentication

Typically a template will be retrieved for instantiation via the templateServicesearchTemplates call This object contains the files for a communication based on that template All data will necessarily be empty or set to defaults

Data entry in a communication can be customized in many ways

For the included sample application the files are saved to disk and a user is instructed to edit them manually Then the files are loaded (in this example from disk) into the Template field of a DeliverDocument object

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 36

Integrating with EngageOne SOAP

While it is not feasible to reproduce all relevant code from the sample project in this document what follows is a short excerpt edited for clarity It demonstrates the calls to deliver a document and save the PDF generated once the template customer data and delivery option have been prepared

response = deliverydeliverDocument(doc)getDeliveryRequest()items = responsegetDeliveryItems()getDeliveryItem()item = itemsget(0)saveFile(path item)

The DeliveryItem object passed here to saveFile will return an InputStream via getInputStream and can be saved to a file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 37

3 - XForms EngageOne defines the data model for a template using the World Wide Web Consortium (W3C) XForms standard It is intended to provide a flexible device-independent mechanism for collecting information from users in a primarily Web-based environment

In this section

About XForms 39 XForms processors 41 XFormSDI Flow 42 XForms standard files 43 Data definition type and attributes 62

XForms

About XForms

The following are primary benefits of XForm ndash for more details see wwww3orgMarkUpForms2003xforms-faqhtml

bull XForms has been designed to allow much to be checked by the browser such as types of fields being filled in that a particular field is required or that one date is later than another This reduces the need for round trips to the server or for extensive script-based solutions and improves the user experience by giving immediate feedback to what is being filled in

bull All dates in the WSDLs should be using the XML Schema date datatype which defines a standard date format YYYY-MM-DD This is not a propriety implementation For more information you can refer to the specification at wwww3orgTRxmlschema-2date

bull XForms is properly integrated into XML it is in XML the data it collects in the form is XML it can load external XML documents as initial data and can submit the results as XML Including the user in the XML pipeline means you can have end-to-end XML right up to the users desktop

bull XForms uses a number of existing XML technologies such as XPath for addressing and calculating values and XML Schema for defining data types This has a dual benefit ease of learning for people who already know these technologies and the ability for implementation to use off-the-shelf components to build their systems

bull The same form can be delivered without change to a traditional browser a PDA a mobile phone a voice browser and even Instant Messenger This greatly eases providing forms to a wide audience since forms only need to be authored once

bull It is much easier for the author to create complicated adaptive forms without having to resort to scripting because XForms uses declarative markup to declare properties of values and to build relationships between values

bull XForms has been designed so that it will work equally well with accessible technologies as with traditional visual browsers

XForms greatly improves on the HTML form approach by separating the purpose from the presentation specifically what the form does and how it looks It achieves this separation of concerns by adopting the Model-View-Controller (MVC) pattern

The data to be collected by the form is known as instance data and the XForms model describes the structure of the instance data in addition to constraints on that data and submissions Document navigation workflow auto-fill and pre-fill form applications are supported through the use of instance data The view of the XForm describes the controls to be used and which items of data they are bound to The controller is the XForms processor in use which coordinates events in the system

The fragment below is an XForm page which demonstrates these different entities

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 39

XForms

The instance element serves as a container for the initial instance data These are the fields which the form controls will be bound to When the form is first displayed the values in this XML will be presented as the default values When the form is submitted this XML structure will be updated to contain the new values supplied by the user and the XML posted or otherwise handled accordingly

As an alternative to embedding the instance XML directly into the XForm file the instance element may simply refer to an external XML file using the src attribute XForms originating in EngageOne always point to an external instance XML file

The model element contains bind elements which define constraints on mappings to the instance data and a submission element which defines the action that will be taken when the form is submitted by the user

The presentation elements within the XForm page body contain the controls each of which possess references to the instance data

For more information on XForm technology see the W3C XForm wiki page httpwwww3orgMarkUpFormswiki The XForm Institute also provides an online book containing a comprehensive discussion of this technology at httpxformsinstitutecomessentialsbrowseindexphp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 40

XForms

XForms processors

To integrate with XForms you need to choose an appropriate XForms processor for your application Here is a short list of XForms processors both free and commercial that you may wish to investigate Please refer to their respective sites for specific installation and integration instructions

Orbeon Forms Orbeon Forms (formerly Orbeon Presentation Server (OPS)) is an open source forms solution that handles the complexity of forms typical of the enterprise or government It is brought to standard Web browsers (including Internet Explorer Firefox Safari and Opera) via the Ajax technology with no need for client-side software or plug-ins Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation optional and repeated sections always up-to-date error summaries PDF output full internationalization and controls like auto-completion tabs dialogs trees and menus Orbeon Forms already supports part of the XForms 11 specification

Jadu XForms allows you create accessible and XML enabled online forms for integration with payment and CRM systems

Open Office XForms is integrated in Open Office

Libre Office XForms is integrated in Libre Office

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 41

XForms

XFormSDI Flow

KEYFIELD NON-KEYFIELD

visible visible 1stXForm 2nd XForm

F F F F SDI is invoked then editor displays

F T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

T F T F User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then editor displays

T T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

Rules

1 If any visible fields then display 1st Xform with any keyfields displayed (even if there are no visible keyfields) 2 SDI is always invoked 3 If any visible non-key fields then display 2nd XForm

Data push rules

1 If SDI has not been invoked on a work item created via DP (ie status = Active New) then SDI processing must occur

2 If all key fields are populated via DP then skip 1st Xform (overrides rule 1 above)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 42

XForms

XForms standard files

The XForms standard main components are the files used by the Interactive Editor to drive all user interactions These include an XHTML presentation file XML instance file and an XSD schema definition file These files are used by the Interactive Editor to drive all user interactions and can be used for integration purposes to collect system data from a front-end business system The XForms files can also be opened by a standard XForms processor in order to present a more traditional Web-based eForm data capture interface as part of an application

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 43

XForms

XHTML presentation file

The XHTML presentation file contains the defined fields together with related attributes of the interactive data presented in the EngageOne Interactive Editor during document completion Since this file conforms to the W3C XHTML standard the defined data types and the available attributes are included in the XHTML standards For more information on XHTML visit the W3C Web site

The following is an example of an XHTML presentation file

lt-- XForms and Orbeon Namespaces --gt ltxhtmlhtml xmlnsxhtml=httpwwww3org1999xhtmlxmlnsev=httpwwww3org2001xml-eventsxmlnsf=httporbeonorgoxfxmlformattingxmlnswidget=httporbeonorgoxfxmlwidgetxmlnsxforms=httpwwww3org2002xformsxmlnsxs=httpwwww3org2001XMLSchemaxmlnsxxforms=httporbeonorgoxfxmlxformsgt

lt-- Header section --gt ltxhtmlheadgt ltxhtmltitlegtInteractiveDataModelltxhtmltitlegt

lt-- Xform model section --gt ltxformsmodelgt

lt-- Specifies actual instance fileReplace with actual Instance filename --gt ltxformsinstance src=57861025010e462fa5acbde4fe0ecf90xmlgt

ltndash- This specifies how the results of the form are to be submitted By default it specifies the put mechanism andthename of theinstance file as the action (target file) In addition a submit control must always be added to the view referencing the ID of thesubmission elementReplace with actual instance filename --gt ltxformssubmission action=57861025010e462fa5acbde4fe0ecf90xml id=main_submission method=putgt

lt-- Bind section These bind the interactive data definition to a set of attributes --gt ltxformsbind nodeset=InteractiveDataModelPublicationCustomerName

readonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerAddressreadonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerCity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 44

XForms

readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerStatereadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerZip readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationPolicyNumberreadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationClaimantNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceSourcereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceDatereadonly=false() required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationPhysicialNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationServiceDatereadonly=false()required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentNamereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentTitlereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationRecipientreadonly=true() required=false() type=xsstringgt

ltxformsbind

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 45

XForms

nodeset=InteractiveDataModelPublicationDeliveryInformationEmailToAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailFromAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailSubjectreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailBodyreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationFaxNumberreadonly=false() required=false() type=xsstringgt

ltxformsmodelgtltxhtmlheadgt

lt-- XForms View section(XHTML body) --gt ltxhtmlbodygt

ltndash- User interface control for the Interactive Data Definition in the

Model section ndash-gt span style=displaynonegt

ltndash- User interface control for the Interactive Data Definition in the Model section ndash-gt

ltxformsinput ref=InteractiveDataModelPublicationCustomerNamegtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangt

ltndash- Separates controls in XForms browsers or processors for layout purposesndash-gtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegt

ltxformsinput ref=InteractiveDataModelPublicationCustomerAddressgt

ltxformslabelgtltxformslabelgtlt xformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 46

XForms

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerCitygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerStategtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegtltndash- May contain the followingsections Input ndash choice validation is not specified it is only applied to FieldGroup Field and Delivery Information

Select1 ndash used for Single Selection attribute for the specifieddefinition

Select ndash used for Multi-Selection attribute for the specified Definition ndash-gt

ltxformsinputref=InteractiveDataModelPublicationCustomerZipgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPolicyNumbergt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationClaimantNamegt

ltxformslabelgtSelect the claimantltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 47

XForms

ltxformslabelgtFredltxformslabelgtltxformsvaluegtFredltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMarthaltxformslabelgtltxformsvaluegtMarthaltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTylerltxformslabelgtltxformsvaluegtTylerltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtWilmaltxformslabelgtltxformsvaluegtWilmaltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationCorrespondenceSourcegtltxformslabelgtSelect the correspondence sourceltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt ltxformslabelgtEmailltxformslabelgtltxformsvaluegtEmailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtFaxltxformslabelgtltxformsvaluegtFaxltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMailltxformslabelgtltxformsvaluegtMailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTelephoneltxformslabelgtltxformsvaluegtTelephoneltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondenceDategtltxformslabelgtSelect the correspondence dateltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 48

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPhysicialNamegtltxformslabelgtType the physician nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationServiceDategtltxformslabelgtSelect the date of serviceltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentNamegtltxformslabelgtType your nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentTitlegtltxformslabelgtType your titleltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationRecipientgtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailToAddressgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 49

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailFromAddressgt ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailSubjectgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailBodygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationFaxNumbergtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltxformssubmit submission=main_submissiongt ltxformslabelgtSubmitltxformslabelgtltxformssubmitgt

lt-- This specifies the submit control for the XForms --gt ltxhtmlbodygtltxhtmlhtmlgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 50

XForms

XML instance file

The XML file is referred to as the instance file because it contains the instance node of the XForms file This file contains the values for the definitions (fields repeating group fields group fields and IDE group fields) ndash see Data definition type and attributes on page 62 This file may initially contain only empty elements for each of the defined fields since values are only written if default values have been specified in the Interactive Data Editor After an eForm has been completed or the Interactive Editor has been used the values the user supplied for each field will be saved to the instance file (Note freeform text is stored in the pub and hip files not the instance file) Since this file conforms to the W3C XML standard the defined data types and the available attributes are included in the XML standards For more information on XML visit the W3C Web site

ltndash- This specifies the IDD title version number of schemaused Namespaces actual Schema fileReplace with actual Schema filename--gt ltxml version=10 encoding=UTF-8 standalone=yes gt- ltInteractiveDataModel xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=57861025010e462fa5acbde4fe0ecf90xsdgt

ltndash- Publication --gt - ltPublicationgt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt ltCustomerNamegtFred JonesltCustomerNamegtltCustomerAddressgt123 High StreetltCustomerAddressgtltCustomerCitygtBelguimltCustomerCitygtltCustomerStategtWIltCustomerStategtltCustomerZipgt53021ltCustomerZipgtltPolicyNumbergt254320982ltPolicyNumbergtltClaimantNamegtFredltClaimantNamegtltCorrespondenceSourcegtFaxltCorrespondenceSourcegtltCorrespondenceDategt2007-12-22ltCorrespondenceDategtltPhysicialNamegtDr JamesltPhysicialNamegtltServiceDategt2007-12-02ltServiceDategtltCorrespondentNamegtyour nameltCorrespondentNamegtltCorrespondentTitlegtyour titleltCorrespondentTitlegt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt -ltDeliveryInformationgtltRecipient gtltEmailToAddress gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 51

XForms

ltEmailFromAddress gtltEmailSubject gtltEmailBody gtltFaxNumber gt

ltDeliveryInformationgtltg1private gtltPublicationgtltInteractiveDataModelgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 52

XForms

XML schema file for the interactive data model

The XML schema definition or XSD describes the format of the XML document containing the data This is the file used to generate the Data Format and allows the final document to be generated from the updated instance file The XSD is also a W3C standard For more information on XML schema files visit the W3C Web site

The following is an example of an XML schema definition file

lt-- Namespace and version number of schema and default namespaces --gt ltxml version=10 encoding=UTF-8 standalone=yes gtltxsschema xmlnsxs=httpwwww3org2001XMLSchemaelementFormDefault=qualifiedxmlnsg1=httpwwwg1comOCMSchemagt

lt-- Interactive Data Model --gt lt-- Interactive Data Definition in Schema element format --gt ltxselement name=InteractiveDataModelgt ltxscomplexTypegtltxssequencegtltxselement name=Publicationgt ltxscomplexTypegt

ltxssequencegtltxselement g1keyfield=true g1sysdata=true

g1visible=false minOccurs=0 name=CustomerNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerAddressgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerCitygt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerStategt

ltxssimpleTypegtltxsrestriction base=xsstringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 53

XForms

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerZipgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=PolicyNumbergt

ltxssimpleTypegt

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ClaimantNamegtltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Fredgtltxsenumeration value=Martha ltxsenumeration value=Tylergtltxsenumeration value=Wilmagtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=CorrespondenceSourcegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Emailgtltxsenumeration value=Faxgtltxsenumeration value=Mailgtltxsenumeration value=Telephonegtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondenceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=PhysicialNamegt

ltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 54

XForms

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ServiceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentTitlegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement minOccurs=0 name=DeliveryInformationgtltxscomplexTypegtltxssequence maxOccurs=1gtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=Recipientgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailToAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailFromAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailSubjectgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 55

XForms

ltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailBodygtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=FaxNumbergt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxssequencegt

ltxsattribute name=Delivery use=optionalgtltxscomplexTypegtltxselementgtltxselement name=g1privategtltxssequencegt

ltxsattribute name=DOC1TREATASSOP type=xsboolean use=optionalgtltxscomplexTypegtltxselementgtltxssequencegtltxscomplexTypegtltxselementgtltxsschemagt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 56

XForms

XML schema file for the non-interactive Designer data model

XML schema file for the non-interactive Designer data model

The Designer file formats supported are

bull Keyed Record bull CSV Data Format bull Custom XML

Keyed Record

EngageOnerequires that Designer provides data format information when publishing a template where the publication implements a keyed record data format A data model file in the form of an XML structure is published with this type of publication along with the XML schema for the data model XML

For Example consider the following keyed record data block

CUSTOMER01001012831MrJohn Lawrence Lawrence 311Bellview Drive Gloucester VA 23061 VAMLIEPO CUSTOMER0207021999080119990831199909031999000178750000000000017875000000 0000020845 MOBILE0100009900000011210000000000011021 LONGDIST0100000495000003500000398400004829 INTERNET0100000000000049950000000000004995NADSL 384k 128k SUMMEND DETAIL00Mobile Service DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000 DETAIL00Long Distance ServiceDETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000

TheXML structure is generated by Designer to represent this data model Note the XML in this example is not complete

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegt

ltSource createdBy=DOC1Data Format Editor version=11date=2011-04-28gt

ltSchemaDefgt ltFileInfogt ltFileFormatgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 57

XForms

ltFixedWidthgt ltRecordDelimitergtCR+LFltRecordDelimitergt

ltFixedWidthgtltFileFormatgtltDefaultHandlinggtltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggtltFileInfogtltDataHierarchygtltRecordKeykey=MOBILE01gt

SVD data is represented by the ltFixedWidthgt tag in above XML structure

CSV Data Format

EngageOne will require that Designer provides data format information when publishing a template where the publication implements a CSV data format The following approach would address the requirements for EngageOne with regard to this format

A data model file in the form of an XML structure would be published with this type of publication along with the XML schema for the data model XML

For example consider the following CSV data block

Key Name Address Zip DRAmountRemarks001Smith101 Princes StreetED1 4DH DR8901Cash charges apply

001 Manish102 Princes StreetWD17 1UE CR5000Transport charges

Thefollowing XML structure would be generated by Designer to represent this data model

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltSource createdBy=DOC1Data Format Editor version=11date=2011-03-25gtltSchemaDefgt ltFileInfogt

ltFileFormatgt ltDelimitedgt ltFieldDelimitergtltFieldDelimitergtltQuotegtltQuotegtltFirstRowHeadingsgttrueltFirstRowHeadingsgtltRecordDelimitergtCR+LFltRecordDelimitergt

ltDelimitedgtltFileFormatgtltDefaultHandlinggt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 58

XForms

ltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggt

ltFileInfogtltDataHierarchygtltRecordKeykey=001gt

ltDataHierarchygtltDataStructuregt ltRecordkey=Key descr= hideRecord=true repeatType=Group

maxOccurs=0 minOccurs=0gt ltField name=Key Definition Field import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt07D6A8A528A9964C8E6E9F9075F5649CltFieldKeygt

ltFieldgtltField name= Name import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt0974502326B53548A3BE1BA86E85735BltFieldKeygt

ltFieldgtltField name= Address import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt8B33038F15BB5345B82D8148C562C27DltFieldKeygt

ltFieldgtltField name= Zip import=true required=truegtltStringgt

ltStrLengthgt0ltStrLengthgtltStringgtltFieldKeygt9D0E2B9C4C95F948B7BB829C7A91039FltFieldKeygt

ltFieldgtltField name= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt68AED90F9271A3448AA932EF84B42B59ltFieldKeygt

ltFieldgtltField name= Amount import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtF57F5D798949A54D929E796225CD726EltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 59

XForms

ltStrLengthgt8ltStrLengthgtltStringgtltFieldKeygtEBCC0E4E8CCD9347948694BC21C5A248ltFieldKeygt

ltFieldgtltRecordgt

ltRecordkey=001 descr=KeygtltFieldiskey=true name=Key Definition Field import=true

required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt7C8C32E0EC913D41A608D56E24443B82ltFieldKeygt

ltFieldgtltFieldname= Name import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtC246A928E5A4FF4D966541199954779FltFieldKeygt

ltFieldgtltFieldname= Address import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt15B78234DB357343BB72751CC638A5F3ltFieldKeygt

ltFieldgtltFieldname= Zip import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtE7E1245888D5E54794F9B8C6FE12B131ltFieldKeygt

ltFieldgtltFieldname= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt964879FB55944D40BD3E22568350333AltFieldKeygt

ltFieldgtltFieldname= Amount import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt4975636D567F594A88AEF96EDEE1C538ltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgtltStrLengthgt21ltStrLengthgt

ltStringgtltFieldKeygt2D2B4AB6EFFF1D42B66EB63FB3BAED04ltFieldKeygt

ltFieldgtltRecordgtltDataStructuregt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 60

XForms

ltSchemaDefgtltFileDescriptiongt

SVD data is represented by the ltDelimitedgt tag in this XML structure

Custom XML

Designer generates an XML schema that represents the custom XML structure that you may create

for any given publication EngageOne supports the custom XML data model by having access to this

XML schema file When Designer publishes a template for EngageOne the following files appear in

the archive file

template_masterxml includes a SCHEMA tag in ltSubfilesgt and there will be no DATAMODEL

tag

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modelxsdltFilegtltSubfilesgt

In Designer user can create custom xml sample data using

bull XSD schema file bull DTD schema file

Depending on the schema file the SCHEMA entry in template_masterxml will change For XSD ltSubfilesgt will be as above for SCHEMA tag For DTD schema ltSubfilesgt will be

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modeldtdltFilegtltSubfilesgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 61

XForms

Data definition type and attributes

The EngageOne XForms data definition types and attributes follow the standard XForms specifications Below is a diagram of the structure of the data definition node types

The configurable attributes available are listed below

This attribute specifies the name of the interactive data element Naming conventions follow XML standards They can only contain alphanumeric characters and underscores and must start with a letter

Name

This attribute specifies the data type of the value of the interactive data

Type

This attribute specifies the initial value

This value is set directly in the XForms Instance (XML) as the inner node value

Default Value

This text appears in both the Interactive Editor and on a traditional eForm to tell the user what to enter

The Prompt value is set in the XForms View (XHTML body node) using the label node

Prompt

This attribute is used to provide an extended message or explanation of the Prompt attribute

Help Text

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 62

XForms

This attribute marks the interactive field for compulsory completion When filling out a template a value must be provided for this field in order to progress to the next interactive field or generate the document

This is set in XForms Model using the required attribute of the bind node

This dictates whether the field value is user changeable or not This property is frequently set for definitions requiring system-supplied data from mainline business systems

This is set in XHTML using the read-only attribute of the bind node

This specifies whether the interactive field for the definition should be displayed on the form The Visible property only impacts the display of an interactive field on a traditional eForm presentation All fields needed to complete a document or used in document are always prompted for in the Interactive Editor unless they are defined in the document as read-only

This property value is set in the XSD schema file using g1visible attribute of the element node

The System Data attribute identifies elements whose values are expected to be supplied by system data integration with the front end business system

This flag is set in the XSD schema using the g1sysdata attribute of the element node

The xml structure of supplied system data should be the same as the xml structure of the answer file Thus repeating groups of answer file-like XML structure should be put in under the system data tag For a sample system data xml structure see XML instance file on page 51

The Key Field denotes whether a definition is the unique identifier for the template or not This attribute is used by EngageOne to order and manage the template instances

Key fields are also used by the system data integration program to identify the correct data to collect

This flag is set in the XSD schema file using the g1keyfield attribute of the element node

Mandatory

Read-Only

Visible

System Data

Key Field

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 63

XForms

Expression Validation

Max Length Validation

This property defines input value constraints to ensure valid entries are accepted for the definition during data capture

These rules are set in the XForms Model using the constraint attribute of the bind node

In the XSD schema file they are set using the value attribute of minInclusivemaxInclusive minExclusive or maxExclusive node

This attribute specifies the maximum number of characters a user may input for a string-type field

The value is set in the XForms View (XHTML body node) using the maxlength attribute of the input node In the XSD schema file it is set using the value attribute of the maxLength node

For more information on how these fields are populated and used during data integration see System Data Integration on page 65

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 64

4 - System Data Integration System Data Integration (SDI) enables loading system data into the EngageOne Interactive This data can be extracted from different sources

For example Web service message queues databases etc

In this section

SDI General Configuration 66 Using an XML file as a data source 67 Using the Java callback interface 68 Feature support for System Data Integration 69 Integration option 1 ndash XML data source 71 Integration option 2 ndash callback interface 75

System Data Integration

SDI General Configuration

EngageOne Interactive uses XForms to support external SDI and user prompts before the document editing session is launched in the EngageOne editor The modular design of XForms detaches the model (data rendered by the view) from viewable content This allows the SDI handler to work in isolation with the XForms model and modify it depending on the requirements

In this section two SDI methods are explained along with the features provided by the EngageOne system to support System Data Integration

This section assumes that the integration programmer has XForm knowledge and experience

EngageOne Interactive provides two methods for integrating documents with external system data

bull An XML data source (for demonstration and proof of concept purposes only) which the application reads and parses to identify and load data to a target document

For more information see Using an XML file as a data source

bull A Java callback interface invoked during the System Data Integration process

See Using the Java callback interface on page 68

EngageOne provides a generic XForm (included in the document subfiles) This XForm can be used with both integration methods to allow user interaction with the system by providing inputs that control loading of system data into the document

SDI configuration is controlled by settings in deploylocalproperties When the path to sysdataxml is missing (default setting) the system bypasses the SDI call and uses the answer file in the template When the path is defined the SDI call is made to sysdataxml If the path to sysdataxml is specified but the system cannot find the file an error message displays

If the path to sysdataxml is not specified but a custom class is specified the custom SDI class will be used If both the path to the default XML and the custom SDI class are specified the custom class is used

Note This method is provided for demonstration and proof of concept It is not intended for production purposes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 66

System Data Integration

Using an XML file as a data source

This method is provided for demonstration and proof of concept It is not intended for production purposes

An external XML data file sysdataxml contains system data needed to populate a documentrsquos sysdata fields By default System Data Integration is not enabled To enable sysdataxml set the location in deploylocalproperties

The system data loading process occurs during document creation An XForm is displayed once SysdataAction detects there is a keyfield referenced in its schema definition The XForm prompts the user to provide input which serves as the key to retrieve the corresponding line item from the XML data

XML data source diagram

This is illustrated in the following diagram

The user submits the input form and SysdataAction (action controller) attempts to load the SystemDataLoader specified in systemdataproperties The system data loader class is empty by default allowing the default SystemDataLoader class implementation (XMLSystemDataLoader)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 67

System Data Integration

XMLSystemDataLoader tasks

XMLSystemDataLoader performs the following tasks to render the XForm page that will be sent to the user

bull Loads the system data XML from the location specified in systemdataproperties

bull Parses the system data XML bull Transfers the selected line item to the document answer XML file bull Returns the modified document subfiles back to the SysdataAction class

The XForms page shows the system data input fields populated with data from the system data XML

You can also use the Visible attribute for fields to display in the XForm after system data loading has completed The Visible attribute is configured by the template designer in Designer by enabling the schema definition (set to True)

Using the Java callback interface

The second option incorporating System Data Integration is via a Java callback interface During System Data Integration you can configure the EngageOne Interactive application to invoke a custom implementation This implements a callback interface (system data loader) and allows access to references of document subfiles

The XMLSystemDataLoader (default system data loader) implements the system data loader interface The default system data loader will be replaced by your custom system data loader One system data loader can be plugged into the application at a time

Note Multiple system data loaders can be used in the application employing various object oriented patterns

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 68

System Data Integration

Java callback interface process flow

The process flow and interaction discussed in the previous section Using an XML file as a data source applies to the process flow implemented with a custom system data loader

The process starts when EngageOne Interactive detects that a document has keyfields EngageOne Interactive will delegate SysdataAction to retrieve and collate the document subfiles and wrap them in an XFormsContext object SysdataAction will invoke the custom system data loader class and pass the XFormsContext object The XForms page will be rendered and which will contain the modifications in the document subfiles

When implementing System Data Integration be aware that document subfiles should be retrieved from the document repository via Web services to incorporate your System Data Integration requirements

Feature support for System Data Integration

EngageOne provides custom XML attributes for defining the document schema subfile (XSD)

These attributes are available through the following namespace httpwwwg1comOCMSchema

Each custom attribute is attached to the element definition on the schema subfile

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

Where

bull visible ndash XForm user interface element which references this node This should be visible when the XForms page is rendered

bull keyfield ndash Instance data value that should be used as a look-up field for retrieving external system data The corresponding user interface element should be visible if data will be provided by the user

bull sysdata ndash Instance data value should be populated with external system data look-up results

There are attributes in the XForms subfile that work with the custom attributes defined for System Data Integration

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 69

System Data Integration

XForms model example

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

In this example

bull required attribute - Required instance data value Should contain a value bull read only attribute - Read only attribute Should not change its value The XForms user interface element which references this node is rendered as a non-editable form element

Note When implementing the system data loader where you need to modify the XForms page ensure that the attribute values are properly set

It is important that the above attributes are set with appropriate values so the XForms page will render properly

The values of those attributes are set visually in the document templates

For more information see Designing the template for System Data Integration on page 71

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 70

System Data Integration

Integration option 1 ndash XML data source

Loading the data from an XML data source is the default mode when performing System DataIntegration

Enabling the default system data loader

Note On a fresh system install this is the default configuration for EngageOne Interactive This step is necessary only overriding this setting

For example you develop a custom system data loader and plug it in to the application

To enable the default system data loader

In EngageOne Interactive modify the system data configuration settings deploylocalproperties

This involves

1 Set the sdicallbackclassname to blank 2 Set the sdicallbackjarpath to blank

Designing the template for System Data Integration

In Designer the Interactive Data Editor allows configuring the XForms page for System DataIntegration This process works with XForms and custom schema attributes

Following are some processes showing variations on configuring the system data attributes of your template

For more information about designing templates for EngageOne see the Designer Userrsquos Guide

Configure system data load with a user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Disable the read-only attribute in the XForms design page for user interaction fields

The required attribute can be enabled for users to provide data before document authoring This is for fields not populated with system data

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 71

System Data Integration

Configure system data load with the user confirmation page read-only

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Enable the read-only attribute in the XForms design page for user interaction fields

Configure system data load without the user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Disable the visible attribute for fields the user will interact with

This loads system data to the answer XML file and launches EngageOne editor with the document displayed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 72

System Data Integration

Preparing the system data XML

In order for system data to be loaded by EngageOne Interactive your system must create the sysdataxml file

The following schema constraints are enforced for sysdataxml

ltxselement name=system-datagtltxscomplexTypegt

ltxssequencegt answer XML file schema constraint applies hereltxssequencegt

ltxscomplexTypegtltxselementgt

bull The sysdataxml file must be enclosed by a system data element bull There should be a list of XML nodes in the system data element

These nodes will refer to a system data line item which has the same format as the answer XML file and complies with the schema defined for the answer XML file

Example XML answer file

The following example illustrates a defined answer XML file followed by a corresponding system data XML

Defined answer XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=d3dc1f5adc034110914418efcb2bcb07xsdgt

ltPublicationgt ltAccountNamegtltAccountNamegtltAccountNumbergtltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtltBillingAddressgt

ltg1private gtltPublicationgt

System data XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltsystem-datagt

ltInteractiveDataModelgt ltPublicationgt

ltAccountNamegtJohn XltAccountNamegtltAccountNumbergtEA343ADF-DDltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtJohn X ResidencesltBillingAddress

ltPublicationgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 73

System Data Integration

ltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn YltAccountNamegtltAccountNumbergtY1343ADF-YYltAccountNumbergtltDateCreatedgt2008-11-08ltDateCreatedgtltBillingAddressgtltBillingAddress

ltPublicationgtltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn ZltAccountNamegtltAccountNumbergtZ04A3ADF-ZZltAccountNumbergtltDateCreatedgt2008-10-11ltDateCreatedgt

ltPublicationgtltInteractiveDataModelgt

lt-- more system data line item can be appended here --gt ltsystem-datagt

InteractiveDataModel element

The InteractiveDataModel element represents a single data line item where each line should have the same XML structure as its answer file

The g1private element is not present in any line item in the system data XML Any nodes under g1private are used for EngageOne internal processing If appropriate nodes can be excluded from a line item

For example BillingAddress is not included in the line item John Z

EngageOne Interactive transfers a selected line item from the system data file to the answer file Missing information line item information will be skipped during transfer

EngageOne Interactive uses the schema definition to determine which elements are key and sysdata fields

For each sysdata element the element should be populated with system data

Loading the system data XML

Plug in the system data XML to EngageOne Interactive

1 Modify the system data configuration settings in deploylocalproperties 2 Modify the sdisysdatapath property and set it to the absolute path of the system data

XML file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 74

System Data Integration

Integration option 2 ndash callback interface

Configure EngageOne Interactive to use a custom system data loader implementation

Configure EngageOne Interactive to use a custom system data loader implementation

1 Create the custom system data loader implementation 2 Compile and package the custom system data loader implementation class to a JAR file 3 Configure EngageOne Interactive system data settings to load and invoke the custom system

data loader class

Implement a custom system data loader

To implement a custom system data loader

Steps

1 Create a custom system data loader class which implements the compbocmclientxformSystemDataLoader Java interface This must be plugged into EngageOne Interactive at runtime The System Data Integration API classes are bundled in sdi-client-apijar located in the samples folder of the EngageOne distribution folder This houses the main interface of the System Data Integration that the custom system data loader class needs to implement

For example

public interface SystemDataLoader

Loads system data into the given XML document param xmlDocument the given XML document param context throws Exception if an error occurs while loading system

data void loadSystemData(XFormsContext context) throws Exception

2 Import the project classpath to reference the System Data Integration API classes When packaging the custom system data loader you may not need to put the sdi-client-apijar

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 75

System Data Integration

file on the project classpath as those classes are available in the EngageOne Interactive Web application archive The following guidelines must be observed when developing a custom system data loader

bull Create the custom system data loader implementation bull The custom system data loader should implement the compbocmclientxformSystemDataLoader interface

bull An XFormsContext object is passed to the custom system data loader when invoked during System Data Integration The object provides access to the document subfiles answer file XForm file and answer file schema file

bull If an XForms file is altered it should conform to the W3C XForms 11 standard

If an answer XML file is altered it should conform to its XML schema file

Any structural change in the answer XML file should be cascaded to its XML schema file When loading EngageOne Editor validates the answer XML using the XML schema

bull Do not change the g1private XML element in the answer XML file or the corresponding constraint in the XML schema

Notes

bull Altering custom EngageOne XForms attributes will affect how the XForms page is rendered in EngageOne Interactive Incorrect settings might cause the page to be incorrectly displayed or lead to loss of data

bull Set keyfields to visible bull System data can be set to visible or non-visible bull It is recommended that Required fields in the XForms file be set to visible bull It is recommended that you do not amend a field marked as System data before invoking the custom system data loader

bull Any change made to document subfiles cannot be reversed bull Do not change XML namespaces in document subfiles bull Removal of existing XML elements from document subfiles is not allowed bull Any other changes can be made to document subfiles except for the constraints mentioned above

For example you can add XForms UI elements XML data in the answer XML file as well as make schema and XForms constraint modifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 76

System Data Integration

Custom system data loader

Following is a sample custom system data loader This adds a visible input element in the document

These changes include

bull Addition of schema definition in the XML schema file bull Addition of XForms mapping in the XForms file bull Addition of XML nodes in the answer XML file which maps to the XForms element

Custom data loader interface

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception loadToSchema(context)loadToView(context) loadToInstance(context)

private void loadToSchema(XFormsContext context) throws Exception private void loadToView(XFormsContext context) throws XMLStreamException

FactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException private void loadToInstance(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException public void loadSystemDataWithXpath(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException JaxenException SAXException IOExceptionParserConfigurationException TransformerFactoryConfigurationErrorTransformerException

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 77

System Data Integration

loadToSchema function

private void loadToSchema(XFormsContext context) throws Exception add simple element to schema XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetSchemaAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement schema

= buildergetDocumentElement() OMElement root = schemagetFirstElement() OMElement complexType = rootgetFirstChildWithName(new QName(httpwwww3org2001XMLSchema complexType)) QNamesequenceIndicator = new QName(httpwwww3org2001XMLSchemasequence) OMElement complexTypeChild = complexTypegetFirstChildWithName(sequenceIndicator) if(complexTypeChild == null) QName allIndicator = new QName(httpwwww3org2001XMLSchema

all) complexTypeChild = complexTypegetFirstChildWithName(allIndicator) OMFactory factory = OMAbstractFactorygetOMFactory() OMNamespace

xmlSchemaNamespace = factorycreateOMNamespace(httpwwww3org2001XMLSchemaxs)OMNamespace group1Namespace =

factorycreateOMNamespace(httpwwwg1comOCMSchema g1)

OMElement comment = factorycreateOMElement(elementxmlSchemaNamespace complexTypeChild) commentaddAttribute(visibletrue group1Namespace)commentaddAttribute(minOccurs 0 null)

commentaddAttribute(name Comment null)OMElement simpleType = factorycreateOMElement(simpleType

xmlSchemaNamespace comment) OMElement restriction = factorycreateOMElement(restriction xmlSchemaNamespace simpleType)restrictionaddAttribute(base xsstring null)

ByteArrayOutputStream bos = new ByteArrayOutputStream()schemaserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)

Document newSchema = docBuilderfactorynewDocumentBuilder()parse(new ByteArrayInputStream(bostoByteArray()))

contextsetSchemaAsDocument(newSchema)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 78

System Data Integration

loadToView function

private void loadToView(XFormsContext context) throws XMLStreamExceptionFactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException

XMLStreamReader parser1 = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))StAXOMBuilder builder1 = new StAXOMBuilder(parser1) OMElement

instanceData = builder1getDocumentElement() String firstNodeName = instanceDatagetLocalName()

XMLStreamReader parser = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetXFormsViewAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement xhtml = buildergetDocumentElement()

OMFactory factory = OMAbstractFactorygetOMFactory()OMNamespace xformsNamespace =

factorycreateOMNamespace(httpwwww3org2002xforms xforms)

AXIOMXPath modelExpr = new AXIOMXPath(xformsmodel)modelExpraddNamespace(xforms httpwwww3org2002xforms)OMElement model = (OMElement) modelExprselectSingleNode(xhtml)

OMElement bind = factorycreateOMElement(bind xformsNamespacemodel) bindaddAttribute(nodeset+firstNodeName+PublicationComment null)bindaddAttribute(readonly false() null)bindaddAttribute(required false() null)

bindaddAttribute(type xsstring null)

AXIOMXPath bodyExpr = new AXIOMXPath(xhtmlbody)bodyExpraddNamespace(xhtml httpwwww3org1999xhtml) OMElementbody = (OMElement) bodyExprselectSingleNode(xhtml)

OMElement input = factorycreateOMElement(input xformsNamespacebody) inputaddAttribute(ref+firstNodeName+PublicationComment null) OMElement label = factorycreateOMElement(label xformsNamespace input)factorycreateOMText(label Comment)OMElement help = factorycreateOMElement(help xformsNamespace

input) factorycreateOMText(help Observations)

ByteArrayOutputStream bos = new ByteArrayOutputStream()xhtmlserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 79

System Data Integration

docBuilderfactorysetNamespaceAware(true)Document newView = docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))contextsetXFormsViewAsDocument(newView)

loadToInstance function

private void loadToInstance(XFormsContext context)throws XMLStreamException FactoryConfigurationError

XFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))tAXOMBuilder builder = new StAXOMBuilder(parser) OMElement

instanceData = buildergetDocumentElement() AXIOMXPath bodyExpr = new AXIOMXPath(Publication)OMElement publication = (OMElement)

bodyExprselectSingleNode(instanceData) OMFactory factory = OMAbstractFactorygetOMFactory()OMElement e = factorycreateOMElement(Comment null publication)factorycreateOMText(e contextgetTemplateName())

ByteArrayOutputStream bos = new ByteArrayOutputStream()instanceDataserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)Document newInstanceData =

docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))

contextsetInstanceAsDocument(newInstanceData)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 80

System Data Integration

Error handling

You can configure the custom system data loader to determine the required error handling scheme during system data retrieval in EngageOne Interactive

To enable this feature you must throw a SystemDataLoaderException object from the loadSystemData (XFormsContext context) implementation of the custom system data loader class

SystemDataLoaderException class ndash custom fields

The SystemDataLoaderException class has custom fields that can be set by either passing required values to the SystemDataLoaderException objects constructor or by the individual setter methods

errorcode

A string field that maps the SystemDataLoaderException object to a localized error message which will display on the XForms page

All error codes that EngageOne Interactive to use should be enumerated in the systemDataLoaderErrorCodesproperties file located in the Engage One install directory in the Interactive folder The properties file should contain the complete mapping of error codes to their corresponding message keys

A sample systemDataLoaderErrorCodesproperties file follows

local error code for system data loader exceptions

001=systemdataloaderdataNotFound 001 and 002 are 002=systemdataloaderunknown default entries 003=systemdataloaderincorrectKey004=systemdataloaderinternalError005=systemdataloaderhostUnreachable

Note any number of error codes may be mapped to the same message key Error codes must be unique

These keys are mapped to error messages that EngageOne Interactive can display on the XForms page The mapping of keys to their respective messages must be specified in the systemDataLoaderMessagesproperties file located in the Engage One install directory in the Interactive folder

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 81

System Data Integration

systemDataLoaderMessagesproperties sample

Following is a systemDataLoaderMessagesproperties resource bundle sample

-- System Data Loader custom messagessystemdataloaderdataNotFound=Data not found for the entered key Please try again

systemdataloaderunknown=Unknown error encountered during system dataretrieval Please try again

systemdataloaderincorrectKey=The entered key 0 is incorrect or missing Please try again

systemdataloaderinternalError=Error encountered during system dataretrieval Please cancel the creation of this document and contact yoursystem administrator

systemdataloaderhostUnreachable=The host of the system data isunreachable Please try again later If the problem persists pleasecontact your system administrator

Error messages can be localized and are dependent on the language settings of the Internet browser

To enable localization for the custom system data loader error messages follow the localization (L10N) standards and append the correct suffix to the resource base name (systemDataLoaderMessages)

For example

systemDataLoaderMessages_en for English

systemDataLoaderMessages_de for German

systemDataLoaderMessages_zh for Chinese etc

All resource bundles must be placed in the same directory with the base resource bundle (systemDataLoaderMessagesproperties) The default value of this field is 001 (ldquoData not found for the entered key Please try againrdquo)

params

An optional field that accepts an array of strings (casted to Object[])

The value of this field will be passed to the resource bundle handler of EngageOne Interactive to replace placeholders (0 1 etc) in error messages in the systemDataLoaderMessagesproperties file This field will be ignored if the errorCode field of the SystemDataLoaderException object points to an error message that does not contain placeholders The default value of this field is null

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 82

System Data Integration

result

An enum field that determines the page EngageOne Interactive will load if a SystemDataLoaderException is thrown during system data retrieval

It has two values

bull SystemDataLoaderResultDEFAULT ndash forces EngageOne Interactive to ignore the caught error and allow the user to manually input data to the user prompt fields The error message (specified by the errorCode field) will not be visible on the XForms page

bull SystemDataLoaderResultREPROMPT ndash forces EngageOne Interactive to allow the user to re-enter key field data and retrieve system data The error message (specified by the errorCode field) will display on top of the XForms page

The default value of this field is SystemDataLoaderResultDEFAULT

message and cause

message (String) and cause (Throwable)

Implicit fields that can be set by including any or both constructor arguments of the SystemDataLoaderException object These fields are inherited from the of SystemDataLoaderException parent class If these are set the stack trace of the wrapped Throwable or the value of the given message will be logged on the application server logs

SystemDataLoaderException constructor signature

The following is a complete list of constructor signatures of the SystemDataLoaderException

Note the errorCode params and result fields can be set via their setter methods

SystemDataLoaderException constructor signatures

public SystemDataLoaderException()public SystemDataLoaderException(Throwable cause) publicSystemDataLoaderException(String errorCode)public SystemDataLoaderException(String errorCode Object[] params)public SystemDataLoaderException(SystemDataLoaderResult result)public SystemDataLoaderException(String errorCodeSystemDataLoaderResultsystemDataLoaderResultresult)public SystemDataLoaderException(String errorCode Object[] paramsSystemDataLoaderResult result) public SystemDataLoaderException(Stringmessage String errorCode SystemDataLoaderResult result) publicSystemDataLoaderException(String message String errorCode Object[]params SystemDataLoaderResult result)public SystemDataLoaderException(String message String errorCode)public SystemDataLoaderException(String message String errorCodeObject[] params) public SystemDataLoaderException(Throwable cause StringerrorCode)public SystemDataLoaderException(Throwable cause String errorCode

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 83

System Data Integration

Object[] params)public SystemDataLoaderException(Throwable cause String errorCodeSystemDataLoaderResult result) public SystemDataLoaderException(Throwablecause String errorCode Object[] params SystemDataLoaderResult result)public SystemDataLoaderException(String message Throwable cause StringerrorCode)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params) public SystemDataLoaderException(Stringmessage Throwable cause String errorCode SystemDataLoaderResultresult)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params SystemDataLoaderResult result)

Sample implementation

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception try

your custom code which loads the system data to the XForm files goes here You will need to use XFormsContext object to retrieve the XForm files rendered in the EngageOne Interactive application Depending on your implementation you may need to modify the XForm schema instance XML file as necessary

catch (Exception e) wrap all Exceptions encountered to a SystemDataLoaderException

SystemDataLoaderException exception = new SystemDataLoaderException(e)

if (e instanceof RemoteException) set the error code exceptionsetErrorCode(110)

set the error message parameters if applicable exceptionsetParams(new String[]contextgetTemplateName())

set the result action exceptionsetResult(SystemDataLoaderResultREPROMPT)

else simply set the result action since the error messages wont be

displayed exceptionsetResult(SystemDataLoaderResultDEFAULT)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 84

System Data Integration

finally throw the exception throw exception

Compiling and packaging custom system data loader

Prepare the custom system data loader class to be plugged into EngageOne Interactive

1 Compile the custom system data loader implementation by including the sdi-client-apijarfile on the project classpath This file is located in the EngageOne install directory under the active-drive (content repository) config folder

2 Package the custom system data loader on the same JAR file System Data Integration API classes are included in the EngageOne Interactive Web application archive You can assemble the custom system data loader class without the sdi-client-apijar on the project classpath

Configuring EngageOne Interactive system data settings

Plug the custom system data loader into EngageOne Interactive

1 Modify the system data configuration settings deploylocalproperties located in the EngageOne install directory under the active-drive (content repository) config folder

2 Modify the sdicallbackclassname property and set it to the fully-qualified name (FQN) of the custom system data loader class For example commycompanyengageonesdiApplicationSystemDataLoader

3 Modify the sdicallbackjarpath property and set the path to the JAR file containing the custom system data loader class For example EngageOnesdicustom-sdi-10jar

This configuration setting can accept a valid Java classpath allowing multiple JAR files to be specified

Note The following rule applies when defining the value for this property

If a relative path is used the system assumes the location of the custom system data loader class is relative to the value path set in the customSdidefaultclasspath property in config-settingsxml By default this path is set to the EngageOne install directory

For example sdi-testCustomLoaderjar where sdi-test is a directory under the path specified in the property

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 85

5 - Additional features in SOAP

In this section

Trusted Connection 87 Template search 87 Write delivery information 96 Managing the work queue 99 Updating work items 102 Reassigning a work item 106 Deleting a work item 108

Additional features in SOAP

Trusted Connection

Where there is a higher level of trust between EngageOne and a custom application you can use the

trusted connection feature This method establishes an authorized session token based on the valid

userID trusted connection apli key(defined in deployproperties under key securitytrustedconnectionapikey) and domainID only meaning regular userpassword authentication is not required (as with the connect

service)

The related configuration setting is checked to determine whether this service should be made available to the system or not This is done by examine securitytrustedconnectionpassword property defined in deployproperties

Trusted connection is defaulted to off during EngageOne installation

To activate the feature securitytrustedconnectionpassword should be set

To perform trustedConnection use the SecurityService trustedConnectionLoginmethods

Template search

As the document repository increases in size retrieving all templates can consume a large amount of memory EngageOne Server provides an optimized service for searching templates based on a given criteria This service can sort and provide a subset of the search result set also known as pagination

To perform a template search against the document repository use the TemplateService searchTemplates method

Searching templates by template property

This service enables searching templates by template property (for example template name and ID) It also enables searching by template metadata attributes as well as a wildcard search

Note a wild card search can be performed only for certain search criteria fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 87

Additional features in SOAP

Create an instance of the client stub for the TemplateService then invoke the searchForTemplates service where you pass in the search criteria

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService) SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate() IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter) templatesetIdent(id)requestgetTemplates()setTemplate(template)

SearchTemplatesResponse response = templateServicesearchTemplates(request) ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 88

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Note

bull The searchTemplates service makes use of other classes

Use these classes to compose the template search criteria and pass it to the service invocation

This service returns a list of templates that match the search criteria

For example if the template search key is set to Insurance Policy Letter the result set will contain all template names containing Insurance Policy Letter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 89

Additional features in SOAP

Searching templates with sorting and pagination

Perform a template search with a sorted and paginated result set and add additional search criteria values to pass to the searchTemplates service

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate()IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter)templatesetIdent(id) requestgetTemplates()setTemplate(template)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(1)paginationsetPageSize(10)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields())SortField field = new SortField()fieldsetType(SortFieldTypeNAME)fieldsetOrder(SortOrderASCENDING)

requestsetPagination(pagination) requestsetSorting(sorting)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

The SortingControls class accepts sort fields and sort ordering values

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 90

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

reqpagination = new TemplateServicePaginationControls()reqpaginationpageNumber = 1reqpaginationpageSize = 10

reqsorting = new TemplateServiceSortingControls()reqsortingfields = new TemplateServiceSortField[1]reqsortingfields[0] = new WebServiceTest1TemplateServiceSortField()

reqsortingfields[0]type = TemplateServiceSortFieldTypeNAMEreqsortingfields[0]order = TemplateServiceSortOrderASCENDING

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Use the PaginationControls and SortingControls classes to compose a sorted and paginated template search The PaginationControls class accepts pageNumber and pageSize values which control the page size and the result retrieved by the set page snapshot

In the example above the result set is sorted by template name and displays the first ten template matches

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 91

Additional features in SOAP

Searching templates by template metadata

You can perform a metadata search to retrieve a list of metadata or document classes available in EngageOne Server This information can be presented to an end-user who can choose which metadata they want to use to perform a more detailed search

To retrieve all metadata from the server

1 Use the MetadataService searchMetadata service 2 Create an instance of the client stub for MetadataService 3 Invoke the searchMetadata method

Java sample

MetadataServiceStub metadataService = new MetadataServiceStub(URL_BASE+ MetadataService)SearchMetadata request = new SearchMetadata()requestsetFilter(SearchFilterDETAIL)

SearchMetadataResponse response = metadataServicesearchMetadata(request)ListltDocumentClassgt docClasses = responsegetDocClasses()getDocClass()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 92

Additional features in SOAP

C NET sample

MetadataServiceMetadataServiceClient metadataSvc = new MetadataServiceMetadataServiceClient(MetadataServiceSOAP)

MetadataServiceSearchMetadata req = new WebServiceTest1MetadataServiceSearchMetadata()reqfilter = CommonServicesSearchFilterDETAIL

MetadataServiceSearchMetadataResponse resp = metadataSvcsearchMetadata(req)MetadataServiceDocumentClass[] classes = respdocClasses

This service returns a list of document class objects

This service introduces some new classes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 93

Additional features in SOAP

Supported metadata field types

Currently EngageOne supports only the following metadata field data types

Data type Description

Text Alphanumeric string

Date Date

Number Numeric integral and floating

You can perform template searches using metadata

The following example illustrates how to search for all templates that belong to a particular document class with the insurance category

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetDocClasses(new SearchTemplatesDocClasses())

SearchTemplatesDocClassesDocClass docClass = new SearchTemplatesDocClassesDocClass()IntegerIdOrName id = new IntegerIdOrName()idsetName(SimpleClass) docClasssetIdent(id)

docClasssetFields(new SearchTemplatesDocClassesDocClassFields())

SearchTemplatesDocClassesDocClassFieldsField field = new SearchTemplatesDocClassesDocClassFieldsField()id = new IntegerIdOrName()idsetName(category)fieldsetIdent(id)

MetadataFieldValue value = new MetadataFieldValue()valuesetMetadataString(Insurance)fieldsetValue(value)

docClassgetFields()getField()add(field)requestgetDocClasses()setDocClass(docClass)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 94

Additional features in SOAP

C NET sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqdocClasses = new TemplateServiceSearchTemplatesDocClasses()reqdocClassesdocClass = new TemplateServiceSearchTemplatesDocClassesDocClass()reqdocClassesdocClassident = new TemplateServiceIntegerIdOrName()

reqdocClassesdocClassidentItem = Simple Class

reqdocClassesdocClassfields = new TemplateServiceSearchTemplatesDocClassesDocClassField[1]TemplateServiceSearchTemplatesDocClassesDocClassField field = new TemplateServiceSearchTemplatesDocClassesDocClassField()fieldident = new TemplateServiceIntegerIdOrName()fieldidentItem = category

fieldvalue = new WebServiceTest1TemplateServiceMetadataFieldValue()

fieldvalueItem = InsurancereqdocClassesdocClassfields[0] = fieldreqfilter = CommonServicesSearchFilterDETAILTemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 95

Additional features in SOAP

Write delivery information

Depending on the document delivery channels set up in EngageOne Administration you can configure a channel to accept data input via the document instance file

For example configure Email and Fax delivery channels to accept data input

Write delivery information process

Data inputs are written in the instance file and are identified by a set of valid XPath expressions By default EngageOne provides predefined places in the instance file where this data input or delivery information can be written

The following steps illustrate this process

Steps

1 In the example below a template instance file is defined where the XML nodes relating to the delivery information are highlighted Each node corresponds to configurable data inputs for Email and Fax delivery channels

ltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=80dacb9192c44a81937175f8ac7e0ee7xsdgtz

ltPublicationgt ltString1gtEngageOne System Test String 1ltString1gtltString2gtEngageOne System Test String 2ltString2gtltInteger1gt1ltInteger1gtltInteger2gt2ltInteger2gtltNumber1gt1ltNumber1gtltNumber2gt2ltNumber2gtltDate1gt2008-08-29ltDate1gtltDate2gt2008-08-29ltDate2gtltDeliveryInformationgt

ltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegt

ltDeliveryInformationgtltg1privategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 96

Additional features in SOAP

ltPublicationgtltInteractiveDataModelgt

The application code must parse the instance file and perform reading and writing delivery information using the XPath expression set in EngageOne Administration Delivery details (including XPath expressions) can be retrieved using the DeliveryManagementService searchDeliveryOptions method

2 Create an instance of the DeliveryManagementService client stub Then invoke searchDeliveryOptions

Java sample

DeliveryManagementServiceStub deliveryMgmtService = new DeliveryManagementServiceStub(URL_BASE + DeliveryManagementService)SearchDeliveryOptions request = new SearchDeliveryOptions()requestsetDeliveryOptions(newSearchDeliveryOptionsDeliveryOptions())requestgetDeliveryOptions()setDeliveryOption(newSearchDeliveryOptionsDeliveryOptionsDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(deliveryOptionId)requestgetDeliveryOptions()getDeliveryOption()setIdent(id)SearchDeliveryOptionsResponse response = deliveryMgmtServicesearchDeliveryOptions(request)DeliveryOption option = responsegetDeliveryOptions()getDeliveryOption()get(0)

C NET

DeliveryManagementServiceDeliveryManagementServiceClientdeliveryManagementSvc = new DeliveryManagementServiceDeliveryManagementServiceClient(DeliveryManagementServiceSOAP)

DeliveryManagementServiceSearchDeliveryOptions req = new DeliveryManagementServiceSearchDeliveryOptions()reqdeliveryOptions = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptions()reqdeliveryOptionsdeliveryOption = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptionsDeliveryOption()

reqdeliveryOptionsdeliveryOptionident = new DeliveryManagementServiceIntegerIdOrName()reqdeliveryOptionsdeliveryOptionidentItem = deliveryOptionIdDeliveryManagementServiceSearchDeliveryOptionsResponse resp = deliveryManagementSvcsearchDeliveryOptions(req)DeliveryManagementServiceDeliveryOption option = respdeliveryOptions[0]

In the sample code above the Service accepts a delivery option ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 97

Additional features in SOAP

It returns a DeliveryOption object which holds a list of DeliveryChannels that contain XPath expressions The XPath expressions parse the instance file to retrieve delivery information

3 The Document Server reads delivery information as parameters in the instance file It is important to set the delivery option as well as the delivery information appropriately as this information will be used later in the delivery process

Java sample

for (DeliveryChannel channel optiongetChannels()getChannel())

if (channelgetType()equals(DeliveryChannelTypeEMAIL)) EmailChannelDetail email =

channelgetDetail()getEmailDetail() else if (channelgetType()equals(DeliveryChannelTypeFAX))

FaxChannelDetail fax = channelgetDetail()getFaxDetail()

C NET sample

foreach (DeliveryManagementServiceDeliveryChannel channel inoptionchannels)

switch (channeltype)

case DeliveryManagementServiceDeliveryChannelTypeEMAIL

DeliveryManagementServiceEmailChannelDetail email =

(DeliveryManagementServiceEmailChannelDetail)channeldetailItembreak

case DeliveryManagementServiceDeliveryChannelTypeFAXDeliveryManagementServiceFaxChannelDetail fax =

(DeliveryManagementServiceFaxChannelDetail)channeldetailItembreak

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 98

Additional features in SOAP

Managing the work queue

Managing user work queues is part of EngageOne workflow EngageOne workflow handles assigning a work item or document ownership to a user

Retrieving work items

The WorkItemService searchWorkItems method retrieves a users work queue

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req) WorkItemServiceWorkItem[] workItems= respworkItems

In these examples the service returns a list of active work items associated with the authenticated user

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 99

Additional features in SOAP

Retrieving work items with pagination

The searchWorkItems service of WorkItemService can set the pagination of a work item list result set

To enable this feature create a PaginationControls object and set the required page number and page size

For example the following illustrates how to display the second page of a work item list that contains ten work items per page

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(2)paginationsetPageSize(10)requestsetPagination(pagination)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqpagination = new WorkItemServicePaginationControls()reqpaginationpageNumber = 2reqpaginationpageSize = 10

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 100

Additional features in SOAP

Retrieving work items with sorting

The searchWorkItems service of WorkItemService can set the sort of a work item list result set

To enable this feature create a SortControls object and set the reference column and sorting order in the objects field and order fields

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields()) SortField field = new SortField()fieldsetType(SortFieldTypeSTATUS)fieldsetOrder(SortOrderASCENDING)sortinggetFields()getField()add(field)requestsetSorting(sorting)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqsorting = new WorkItemServiceSortingControls()reqsortingfields = new WorkItemServiceSortField[1]reqsortingfields[0]type = WorkItemServiceSortFieldTypeSTATUSreqsortingfields[0]order = WorkItemServiceSortOrderASCENDING

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 101

Additional features in SOAP

Updating work items

This section covers updating work item properties

Updating the document delivery option

Set the request object with the correct token workItem ID and new deliveryOption ID

Then invoke the setDeliveryOption service of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItem request = new UpdateWorkItem()requestsetWorkItem(new UpdateWorkItemWorkItem())requestgetWorkItem()setId(workItemId)requestsetDeliveryOption(new UpdateWorkItemDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(optionId)requestgetDeliveryOption()setIdent(id)

UpdateWorkItemResponse response = workItemServiceupdateWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqdeliveryOption = new WorkItemServiceUpdateWorkItemDeliveryOption()

reqdeliveryOptionident = new WorkItemServiceIntegerIdOrName()reqdeliveryOptionidentItem = optionId

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 102

Additional features in SOAP

Updating work item status

Update work item status while a document has not completed the workflow process

This applies to the duration of the document life cycle

For example a document can be created and saved even if required fields have not been filled in In this case the work item status would be set to ACTIVE_INCOMPLETE

For example when a user attempts to update a document and has entered all required fields the work item status would be set to ACTIVE_COMPLETE

To perform work item status updates invoke updateWorkItemStatus of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItemStatus request = new UpdateWorkItemStatus()requestsetWorkItem(new UpdateWorkItemStatusWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setStatus(WorkItemStatusACTIVE_COMPLETE)

UpdateWorkItemStatusResponse response = workItemServiceupdateWorkItemStatus(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqworkItemstatus = status

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

Work item status can be set to any of the following

ACTIVE_COMPLETE

ACTIVE_INCOMPLETE

ASSIGNED

FAILED_DELIVERY

FINISHED

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 103

Additional features in SOAP

OPEN

PENDING_APPROVAL

PENDING_DELIVERY

SUBMITTED_APPROVED

SUBMITTED_REJECTED

SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 104

Additional features in SOAP

Updating work item comments

Work items have an comments field that can be updated every time you invoke a transaction that involves the work item

New comments will be added to the previous list of comments and will not overwrite the previous set Work item comments are stored from the work items creation

Invoke the addWorkItemComment service of WorkItemService to add a comment to a work item

Java sample

String comment = Updated document for additional customer information sample user comment WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)AddWorkItemComment request = new AddWorkItemComment()requestsetWorkItem(new AddWorkItemCommentWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setComment(comment)

AddWorkItemCommentResponse response = workItemServiceaddWorkItemComment(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceAddWorkItemComment req = new WorkItemServiceAddWorkItemComment()reqworkItem = new WorkItemServiceAddWorkItemCommentWorkItem()reqworkItemid = workItemIdreqworkItemcomment = comment

WorkItemServiceAddWorkItemCommentResponse resp = workItemSvcaddWorkItemComment(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 105

Additional features in SOAP

Reassigning a work item

Reassigning a document allows the current document owner to assign a document to another userrsquos work queue

bull In order for a document to be reassigned the receiving user must have access to the document template and its storage location

bull Reassigning a document removes it from the current owners work queue bull Reassigning a document ensures that the document is being worked on by one user at a time

For more information see the EngageOne Administration Guide

Retrieving document assignees

Use the WorkItemService getWorkItemAssignees method to retrieve a list of assignees for a document

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)GetWorkItemAssignees request = new GetWorkItemAssignees()requestsetWorkItem(new GetWorkItemAssigneesWorkItem())IntegerIdOrName id = new IntegerIdOrName()idsetId(workItemId)requestgetWorkItem()setIdent(id)

GetWorkItemAssigneesResponse response = workItemServicegetWorkItemAssignees(request)ListltUsergt users = responsegetAssignees()getAssignee()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceGetWorkItemAssignees req = new WorkItemServiceGetWorkItemAssignees()reqworkItem = new WorkItemServiceGetWorkItemAssigneesWorkItem()reqworkItemident = new WorkItemServiceIntegerIdOrName()reqworkItemidentItem = workItemId

WorkItemServiceGetWorkItemAssigneesResponse resp = workItemSvcgetWorkItemAssignees(req)WorkItemServiceUser[] users = respassignees

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 106

Additional features in SOAP

Note Currently the service cannot perform a document access control check for the values it returns You can expect a response exception if the user does not have access to the document template

The service returns a list of User objects which hold the user IDs of document assignees using the user IDs to perform document reassignment The list can be null and the application code needs to handle this condition check

Reassigning a document

Use the WorkItemService reassignWorkItem method to perform document reassignment

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)ReassignWorkItem request = new ReassignWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

requestsetAssignee(new ReassignWorkItemAssignee())requestgetAssignee()setId(csrl)

ReassignWorkItemResponse response = workItemServicereassignWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceReassignWorkItem req = new WorkItemServiceReassignWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

reqassignee = new WorkItemServiceReassignWorkItemAssignee()reqassigneeid = csrl

WorkItemServiceReassignWorkItemResponse resp = workItemSvcreassignWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 107

Additional features in SOAP

Deleting a work item

EngageOne allows a document to be deleted in the repository

When a document is deleted EngageOne Server removes the document files from the repository and terminates the document processing This enables deleting the document at any point during the document life cycle

Perform a document delete

Use the WorkItemService deleteWorkItem method

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)

DeleteWorkItem request = new DeleteWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

DeleteWorkItemResponse response = workItemServicedeleteWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceDeleteWorkItem req = new WorkItemServiceDeleteWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

WorkItemServiceDeleteWorkItemResponse resp = workItemSvcdeleteWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 108

6 - EngageOne notifications EngageOne Notifications is a new capability that enables external systems to be notified of certain events that happen within the EngageOne server Examples of events include Communications being created being sent for review and being completed

In this section

Overview 110 Notification components diagram 111 Topics and queues 113 Configuration settings 114 Messages 118 Communication messages 119 Batch messages 121 Workflow messages 122 Consuming notification messages 123 Using other JMS implementations 126 Sample message consumers 128

EngageOne notifications

Overview

A full list of notification types is provided below

The Notifications mechanism is based on an implementation of the Java Message Service (JMS) standard The chosen JMS implementation is Apache ActiveMQ Detailed information about ActiveMQ can be found at httpactivemqapacheorg

Various components within EngageOne write messages to ActiveMQ so that external applications can consume the messages and process them in whatever way they choose

Note it is possible to use an external JMS-compliant message queue instead of ActviveMQ

A common use case for Notifications is as follows

bull An external system (for example a CRM application) triggers the creation of a communication in EngageOne via the EngageOne web service A unique identifier for the communication is returned to the calling system A communication pending note is added to the customers record so that users of the CRM application can see that the communication is in progress

bull A number of notifications are generated as the communication progresses through its life cycle The CRM system receives these notifications and discards any that are not relevant

bull The CRM system receives a notification that the communication has been completed (delivered) and updates the note on the customer record to indicate that the communication has been sent

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 110

EngageOne notifications

Notification components diagram

The following diagram provides an overview of the components involved in notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 111

EngageOne notifications

Diagram details

The Message Consumer is a custom component that suits the requirements of a particular implementation This Programmers Reference Guide provides information about how to write a message consumer

The JMS Client Library provides a plug-in mechanism to bypass the built-in ActiveMQ implementation to use an external message broker instead

1 A notification message is generated by a component in one of the EngageOne bundles (Core or Batch bundle)

2 The bundle configuration properties (defined in deployproperties at installation or re-configuration time) specify how the message is processed

a The notificationconnectionFactoryclass property specifies which JMS connection factory class to use The default connection factory establishes connections to an ActiveMQ queue or topic Other JMS libraries can be used to send messages to other JMS-compliant queue implementations

For more information see Using other JMS Implementations

b The notificationjmsbrokerurl property specifies the location of the message broker By default this is the ActiveMQ broker embedded in the Notification Bundle

An external ActiveMQ broker can be specified instead or a different JMS providers broker can be specified if a custom JMS connection factory is provided

c The user ID and encrypted password for accessing the queue are also specified in the bundle configuration

d Additional properties enable the notification mechanism to be tuned by disabling specific notification types and by specifying whether messages should be sent to a queue or a topic

3 The JMS Client Library is responsible for sending a JMS-compliant message to the appropriate queue or topic on the specified broker

4 The message broker receives the message on one of its queues or topics Depending on the brokers settings the message might be persisted to a configured persistence provider By default KahaDB is used by the built-in ActiveMQ broker

5 A custom message consumer reads the message from the queue or topic The consumer examines the message and determines whether to process it or discard it

Processing the message might involve sending it to a line of business system (for example a CRM system) or an Enterprise Service Bus (ESB) or Message Queue from where it will be processed by another system

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 112

EngageOne notifications

Topics and queues

JMS has two similar but different mechanisms for delivering messages

bull Topic - implements a publisher-subscriber protocol Each message will be sent to all consumers that are subscribed to that topic at the time that the message is produced

By default topics are not durable so if a consumer is not active at the time that the message is produced it will not receive the message

bull Queue - implements a point to point protocol Each message will be consumed by a maximum of one consumer

By default queues are durable meaning that a message will be held for a consumer if the consumer is not active at the time that the message is produced

ActiveMQ supports a feature called virtual topics Virtual Topics combine the flexibility of topics (multiple consumers) with the durability of a queue When a publisher writes a message to a virtual topic the consumers can choose to read it from a topic or a queue

Virtual topics are described in the ActiveMQ documentation here httpactivemqapacheorgvirtual-destinationshtml

By default EngageOne Notifications uses virtual topics but it is possible to configure it to use standard queues or topics instead This can be controlled through settings in deployproperties as described in Configuration Settings

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 113

EngageOne notifications

Configuration settings

The following settings in deployproperties can be used to configure the notifications feature at installation time or re-configuration time

Property name Default value Purpose

Properties common to all bundles

Location of the installed notification bundle CProgram FilesPitneyBowesEngageOneServernotification

notificationinstalldir

JVM settings for the notification bundle - these should not normally be changed

-Xms1g -Xmx2g-XXMaxPermSize=512m

notificationjvmsettings

The port on which the ActiveMQ web console and EngageOne health monitor can be accessed

8084notificationport

URL where the ActiveMQ web console is deployed

httpsnotification-nodepbeonet8084notificationservicesurl

Set this to true to enable https for the Notification bundle

falsenotificationhttpsenabled

(Empty)notificationtlskeyalias Specifies the name of the key if multiple certificates exist in the key store

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 114

EngageOne notifications

Configuration settings (cont)

Property name Default Purpose value

Global setting to enabledisable the Notifications feature Note that Notifications are disabled by default and must be enabled by settings this property to true

falsenotificationpublisherenabled

Name of the account used to publish messages to ActiveMQ queues and topics

eoPublishernotificationpublisherusername

Password for the publisher account It is encrypted in the deployproperties file

(Encrypted password)

notificationpublisherpassword

Name of the account used to consume messages from ActiveMQ queues and topics

eoSubscribernotificationsubscriberusername

Password for the consumer account It is encrypted in the deployproperties file

(Encrypted password)

notificationsubscriberpassword

(Empty)

This value must only be specified if the system is using an external message broker instead of the ActiveMQ instance in the Notification bundle

An example broker URL is tcpmy-jms-broker61617jmsuseAsyncSend=true

Note that jmsuseAsyncSend=true is recommended for best performance of the publishing mechanism

Time in milliseconds for which messages will be persisted in a queue Default value of zero means that messages do not expire and will be kept in the queue indefinitely

0notificationmessagetimeToLive

Properties specific to the notification bundle

notificationjmsbrokerurl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 115

EngageOne notifications

Property name Default Purpose value

Comma separated list of Communication actions that will be suppressed The available action types are Created StatusChanged DeliveryChanged CommentAdded Deleted Completed

(Empty)notificationtypecommunicationomittedactions

Comma separated list of Accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypeabatchomittedactions

Comma separated list of Non-accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypenabatchomittedactions

Comma separated list of Workflow Task actions that will be suppressed The available action types are Created Assigned Completed

(Empty)notificationtypeworkflowtaskomittedactions

By default EngageOne publishes its notifications to a topic If this property is changed to queue EngageOne create and write to queues instead

topicnotificationmessagedestinationtype

VirtualTopic notificationmessagedestinationbaseName

Each type of Notification message (Communication Batch Workflow) is written to its own topic or queue The topic or queue name is a combination of this base name plus the notification type for example VirtualTopicCommunication The default VitualTopic prefix instructs ActiveMQ to use virtual topics VirtualTopics are not a standard JMS capability so this prefix should be removed when using a JMS implementation other than ActiveMQ

compbnotificationactivemqpoolPooledConnectionFactorynotificationconnectionFactoryclass

Name of the class that implements the JMS connection factory The default implementation uses a pooled connection factory for ActiveMQ

ActiveMQ has its own configuration settings file activemqxml See the ActiveMQ documentation for details

It is not normally necessary to change this file because all relevant properties can be configured via deployproperties

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 116

EngageOne notifications

Note that activemqxml will be overwritten if the Notification bundle is reinstalled or upgraded and any changes to that file will be lost It is therefore strongly recommended not to modify activemqxml

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 117

EngageOne notifications

Messages

Notification messages are available for the following types of entity in EngageOne

bull Communications - also known as Work Items bull Batch - both Accumulated and Non-accumulated batch bull Workflow - task actions

Messages consist of three types of data

bull Headers - created by the underlying JMS implementation The same set of headers exists for all messages

bull Properties - application-specific fields that can be used in selections to filter messages received by a consumer

bull Content - the message body The fields available in the body vary by message type

Notification message common properties

All EngageOne notification messages contain the following common properties

Name Type Description

Type of event (corresponding to an EngageOne action Varies by message type)

PropertyeventType

Community identifier PropertycommunityId

Name of the community PropertycommunityName

Type of entity that the message relates to (Communication Batch or Workflow)

PropertyentityType

entityId Property Identifier for the entity Unique within this type of entity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 118

EngageOne notifications

Communication messages

Communication messages have the following additional properties and content fields

Name

workItemIdentifier

status

statusDescription

templateId

Property

templateName

createdDate

creatorName

updatedDate

deliveryOptionId

ownerName

Content

batchId

Content

Content

Type

Property

Property

Property

Content

Content

Content

Content

Description

Also known as the External Identifier This field is the human-readable identifier for the communication

Status number of the Communication at the time the notification was published

Human-readable form of the status

Identifier of template the communication was based on

Name of template the communication was based on

Time stamp when the communication was created

ID of the user who created the communication

Time stamp when the communication was last updated

ID of delivery option associated with the communication

ID of user who currently owns the communication

This field is present for a communication that completes as part of a batch

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 119

EngageOne notifications

Name Type Description

Status of a delivery item that has changed

Associated with the DeliveryChanged action

ContentdeliveryStatus

ID of a delivery item whose status has changed

Associated with the DeliveryChanged action

ContentdeliveryItemId

Communication published actions

Communication messages are published for the following actions

Action Description

A new communication has been created Created

The status of a communication has changed StatusChanged

The status of a delivery item associated with the communication has changed

DeliveryChanged

A comment has been added to the communication CommentAdded

A communication has been deleted Deleted

A communication has been completed Completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 120

EngageOne notifications

Batch messages

Notification messages are available for both Accumulated and Non-accumulated batch

Accumulated batch messages

Accumulated batch messages have the following additional properties and content

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

Type of batch run (RUN RESTART RESUME) ContentrunType

Comma separated list of delivery channel names used by the batch

ContentchannelNames

Accumulated batch messages are published for the following actions

Action Description

The batch has started Started

The batch has completed The status property indicates whether the batch was successful

Completed

Non accumulated batch messages

Messages for non-accumulated batch notifications have the following additional properties and content fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 121

EngageOne notifications

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

ID of the template associated with this batch ContenttemplateId

Name of the template associated with the batch ContenttemplateName

ID of the delivery option associated with the batch ContentdeliveryOptionId

Name of the delivery option associated with the batch ContentdeliveryOptionName

Comma separated list of delivery channel names used by the batch

ContentchannelNames

ContentnaBatchXmlFilePathType Location of the batch XML file

Non-accumulated batch messages are published for the following actions

Action Description

Started

Completed

The batch has started

The batch has completed The status property indicates whether the batch was successful

Workflow messages

Workflow messages have the following additional properties and content

Name Type Description

Status of the workflow task (UNASSIGNED ASSIGNED APPROVED REJECTED UNKNOWN)

Propertystatus

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 122

EngageOne notifications

Name Type Description

PropertyexternalReferenceIdType

ID of the entity that is referenced by this task When the externalReferenceIdType is ENGAGEONE the externalReferenceId is a Communication ID When the externalReferenceIdType is PROJECT_ASSET the externalReferenceId is a Designer Template ID

PropertyexternalReferenceId

ID of the user to whom the task is assigned if any Contentassignee

Community identifier PropertycommunityId

Type of external reference (ENGAGEONE PROJECT_ASSET)

Workflow messages are published for the following actions

Action Description

The task has been created Created

The task has been assigned to a user or unassigned The assignee field gives the ID of the user

Assigned

The task has been completed The status property indicates whether the task was approved or rejected

Completed

Consuming notification messages

If the deployment environment contains systems that can directly consume messages from an ActiveMQ broker then no further development work is required Integration is simply a matter of configuring the external systems to read from the ActiveMQ queues or topics

Where existing software is not available it is necessary to create a new component to integrate with the queues or topics in ActiveMQ and to consume the Notification messages

This section provides an overview of how to write such a component The ActiveMQ website and community should be consulted for additional details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 123

EngageOne notifications

All JMS implementations have their own specific client libraries The libraries for one implementation (for example ActiveMQ) will not inter-operate with other implementations such as IBMs WebSpere MQ The first step to creating a message consumer is therefore to obtain the appropriate libraries for the JMS implementation and for the programming language of the client

This section assumes the default ActiveMQ implementation is used by the Notifications feature and that the message consumer will be written in Java If the system has been configured to use a different JMS implementation or the client will be written in another language the steps will be similar but different client libraries will be required

There are many client libraries available for ActiveMQ for different programming languages such as Java NET Nodejs and Python See httpactivemqapacheorgcross-language-clientshtml for more information about the available clients and for code samples

A Java client makes use of the following namespaces

bull orgapacheactivemqActiveMQConnectionFactory - ActiveMQ specific classes required for establishing a connection with a message queue or topic

bull javaxjms - JMS classes that can be used with any JMS provider

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 124

EngageOne notifications

Consume messages from an ActiveMQ queue or topic

The basic steps to consume messages from an ActiveMQ queue or topic are as follows

Create a connection factory - the factory is specific to a particular JMS implementation (ActiveMQ) The brokerUrl will be of the form tcpservernameportActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl) Create a connection and start it The userName and password are configured at install time See notificationsubscriberusername andnotificationsubscriberpassword in deployproperties but note that the unencrypted password must be passed into the createConnectioncall below connection = connectionFactorycreateConnection(userName password)connectionstart() Create a session session = connectioncreateSession(false SessionAUTO_ACKNOWLEDGE) Create a destination - either a topic or a queueDestination destination = sessioncreateQueue(ConsumerMyConsumerVirtualTopicCommunication) or Destination destination = sessioncreateTopic(VirtualTopicCommunication) Create a consumer and set its message listener The listener class needs to implement the MessageListener interface consumer = sessioncreateConsumer(destination)consumersetMessageListener(myListener)

To stop receiving messages and close the connection

Close everythingconsumerclose()sessionclose()connectionclose()

The MessageListener interface defines a single method onMessage(Message message) Within that method the consumer can take any appropriate action to deal with the message

The following example outputs some basic information about a Communication message

public void onMessage(Message msg)try

Systemoutprintln(Stringformat(s s s

msggetStringProperty(workItemIdentifier)

msggetStringProperty(EventType)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 125

EngageOne notifications

msggetStringProperty(statusDescription))) catch (Exception ex)

Systemoutprintln(exgetMessage())

In the code above examples are provided for creating a queue destination and a topic destination

The EngageOne Notifications mechanism writes messages to virtual topics Consumers can read these messages from a topic named VirtualTopicEntityType or a queue named ConsumerConsumerNameVirtualTopicEntityType where EntityType is a Communication Batch or Workflow (( to be confirmed )) and ConsumerName is a unique name for the consuming application

Using other JMS implementations

It is possible to integrate the Notifications mechanism with other message queues This might be necessary in situations where there is an existing message queue or Enterprise Service Bus in the target environment

Three different approaches can be considered

bull If the external message queue or ESB can read from ActiveMQ then the two systems can work together

Notification messages are written to the internal ActiveMQ They flow into the external queue from where they are delivered to their ultimate destination

bull Use a bridge to join the two queues

This can either be a third party component or custom code can be written using the techniques outlined in Consuming notification messages on page 123

EngageOne publishes messages to the internal ActiveMQ and it is the responsibility of the bridge to propagate them to the external queue

bull Plug in a different JMS provider to replace the internal ActiveMQ

See Using a custom JMS connection factory on page 126 for more information

Using a custom JMS connection factory

The notificationconnectionFactoryclass property in deployproperties specifies the name of the class that implements the JMS connection factory to be used by the Notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 126

EngageOne notifications

producer By default the ActiveMQ connection factory is used but this can be changed in order to use a different JMS provider such as IBM WebSphere MQ

The class specified by this property must be a custom class that implements the javajmxConnectionFactory interface and also implements an additional constructor that takes a string parameter The Notifications framework will pass a broker URL into this constructor The implementation can choose whether or not to make use of this URL

The following code shows an example of a connection factory that enables notifications to be sent to the Amazon Simple Queue Service (SQS) It wraps the SQSConnectionFactory class provided by AWS

package compbengageonesampleawsimport comamazonsqsjavamessagingSQSConnectionFactoryimport comamazonawsauthEnvironmentVariableCredentialsProviderimport comamazonawsregionsRegionimport comamazonawsregionsRegionsimport javaxjmsConnectionimport javaxjmsConnectionFactoryimport javaxjmsJMSException

public class MySqsConnectionFactory implements ConnectionFactory private SQSConnectionFactory sqsConnectionFactory

public MySqsConnectionFactory(String brokerURL) sqsConnectionFactory =

SQSConnectionFactorybuilder()withRegion(RegiongetRegion(RegionsUS_EAST_1))

withAWSCredentialsProvider(newEnvironmentVariableCredentialsProvider())

build()

public Connection createConnection() throws JMSException return sqsConnectionFactorycreateConnection()

public Connection createConnection(String userName String password)throws JMSException

return sqsConnectionFactorycreateConnection(userName password)

The custom connection factory must be packaged as a jar file and installed on all servers that will run the core or batch bundles To install the jar file at the same time as installing a bundle copy the jar to the pluginsnotification-connection-factory folder of the unzipped bundle distribution media (core or batch depending which one is being installed) then install the bundle as per the instructions in the Installation Guide

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 127

EngageOne notifications

To add or replace a connection factory after the bundle installation copy the jar file to the pluginsnotification-connection-factory folder of the installed bundle

When adding or replacing the connection factory in the core bundle a restart of the core bundle is required

The Notifications mechanism by default sends JMS messages of type ldquoMapMessagerdquo The body of these messages contains a map that allows individual values to be accessed by name MapMessage is part of the JMS standard but not all JMS implementations support it Amazonrsquos SQS is an example of a JMS implementation that does not support MapMessage When the Notifications mechanism detects that a JMS does not support MapMessages it creates TextMessages whose body consists of a set of namevalue pairs serialized into JSON Message consumers need to be certain which type of message is being received so that they can appropriately handle the content of the body Messages have a ldquotyperdquo header which can be used to distinguish them

Sample message consumers

Two sample message consumers are provided on the EngageOne installation media in the samplesnotifications folder These are not intended as production code but are intended to illustrate some techniques for consuming messages from ActiveMQ

Sample 1 is a simple Java client that listens for notification on a particular topic and outputs a summary to the console

Sample 2 is a more comprehensive application with a graphical user interface As well as providing a code sample this application can be used as a diagnostic tool for subscribing to topics and queues and for examining the details of received messages This sample is written in NET (C) and makes use of the NMS library for ActiveMQ (see httpsactivemqapacheorgnms) All the ActiveMQ code is contained in the ActiveMQClient class

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 128

7 - The comparison adapter plug-in The comparison adapter plug-in is the interface which allows for customizing the process of comparing preview PDF files generated by EngageOne Designer during the submission of templates and Active Content for review and approval In addition to the existing optional implementations provided in release distribution media it is also possible to install and configure a third-party comparison tool with custom plug-in implementation

In this section

The custom plug-in implementation 130 Example implementations 131 Plug-in Installation and configuration 135

The comparison adapter plug-in

The custom plug-in implementation

The following java interface is exposed in

ltrelease-distributiongtsamplescomparison-adapterscomparison-adapter-apijar

compbviewpointcomparisonadaptersComparisonEngineAdapter

package compbviewpointcomparisonadaptersimport compbviewpointcomparisonmodelComparisonProfileimport compbviewpointcomparisonmodelJobimport compbviewpointcomparisonmodelJobOutputimport javautilList

public interface ComparisonEngineAdapter boolean comparisonEngineEnabled()boolean comparisonEngineAvailable()ListltComparisonProfilegt getComparisonProfiles()Job startComparison(StartParameters startParameters)Job getJobStatus(Job job)JobOutput getJobOutput(Job job)void terminateJob(Job job)void purgeJob(Job job JobOutput jobOutput)

The custom plug-in implementation class must implement this interface and must have a constructor that takes no parameters A comparison-adapter-apijar file must be added as a dependency to project developing the custom class The implementation of the custom class must be written in non- blockingasynchronous manner to avoid blocking EngageOne Server

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 130

The comparison adapter plug-in

Example implementations

DocBridgereg Delta

An example DocBridge Delta implementation is provided in

ltrelease-distributiongtsamplescomparison-adaptersdocbridge-delta

This implementation uses DocBridgereg Delta server native REST API calls refer to the source code for details

It is important to note that the DocBridgereg Delta plug-in sample distributed with the release media simply provides a starting point from which you may need to make configuration changes to enable proper alignment with your operational requirements

Simple comparison plug-in

This implementation requires

1 get comparison profile names

2 invoke the comparison plug-in and get the PDF containing the results of the comparison

In order to simplify implementation a PdFComparator interface is provided

compbviewpointcomparisonadapterssimplePdFComparator

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonmodelJobOutputimport javaioInputStreamimport javautilList

public interface PdFComparator JobOutput compare(String configurationName InputStream

originalPdfInputStream InputStream changedPdfInputStream)ListltStringgt getConfigurationNames()

A SimplePdFComparator class example implementation of PdFComparator interface is provided in the distribution media at the following location

ltrelease-distributiongtsamplescomparison-adapterssimple-adapter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 131

The comparison adapter plug-in

The SimplePdFComparator implements a pixel-by-pixel page comparison approach refer to the source code in the release media for details

Comparison-adapter-apijar also contains implementations so that the BaseComparisonEngineAdapter base class can be extended The base class already implements non-blocking behavior and only requires the implementation to access the PdFComparator interface

A good example of this approach is presented below

compbviewpointcomparisonadapterssimpleSimpleComparisonEngineAdapter

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonadaptersPdFComparatorimportcompbviewpointcomparisonadaptersimplBaseComparisonEngineAdapter

public class SimpleComparisonEngineAdapter extendsBaseComparisonEngineAdapter

Overrideprotected PdFComparator createPdFComparator()

return new SimplePdFComparator()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 132

The comparison adapter plug-in

Command line adapter implementation

A similar approach is used for CommandLineComparisonEngineAdapter implementation

compbviewpointcomparisonadapterscommandlineCommandLineComparisonEngineAdapter

package compbviewpointcomparisonadapterscommandline

import compbviewpointcomparisonadaptersPdFComparatorimport orgslf4jLoggerimport orgslf4jLoggerFactoryimport javautilList

public class CommandLineComparisonEngineAdapter extendsBaseComparisonEngineAdapter

private static final Logger logger = LoggerFactorygetLogger(CommandLineComparisonEngineAdapterclass)

public static final StringCOMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX =

commandlinecomparisonadapterprofilesprivate static final String

COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED = Commands profiles for comparison plugin not configured

public CommandLineComparisonEngineAdapter() CommandLinePdfComparator commandLinePdfComparator =

(CommandLinePdfComparator) pdFComparator

getCommandsProfiles()forEach(commandLinePdfComparatoraddCommandProfile)

Overrideprotected PdFComparator createPdFComparator()

return new CommandLinePdfComparator()

private ListltCommandProfilegt getCommandsProfiles() try

CommandProfilesReader profilesReader = new CommandProfilesReader(SystemgetProperties()

COMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX)ListltCommandProfilegt commandProfiles =

profilesReadergetCommandProfiles()if (commandProfilessize() == 0)

throw new RuntimeException(COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED)

return commandProfiles

catch (Exception e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 133

The comparison adapter plug-in

loggererror(egetMessage())throw new RuntimeException(e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 134

The comparison adapter plug-in

Plug-in Installation and configuration

Once the custom plug-in implementation has been written you will need to install and configure as follows

Installation

The custom implementation must be packaged as a jar file and installed on all servers that will run the core bundles To install the jar files at the same time as installing a bundle copy

the jar file along with its transient jars to the

ltrelease-distributiongtbundlescorepluginscomparison-engine-adaptersltanyfoldergt

folder of the unzipped core bundle distribution media then install the bundle as per the instructions in the Comparison plug-in support section of the Installation Guide To add or replace a plug-in after the core bundle installation copy the jar files to

ltBundle installation root foldergtcorepluginscomparison-engine-adaptersltany foldergt

folder of the installed core bundle

When adding or replacing the plug-in in the core bundle a restart of the core bundle is required

Configuration

The final configuration requirement is to

1 set the comparisonadapterclass property in deployproperties which specifies the name of the class to be used by the comparison process

2 Run eos groovy script in order to configure core bundle as per the instructions in the Installation Guide

For example a stand alone server

eosgroovy -b core -p deployproperties -t single configure

Along with plug-in jars any java properties files can be copied to plugin folder Note that all properties files will be automatically loaded to system properties and can be retrieved calling SystemgetProperties()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 135

8 - Appendix A - Editor methods The following is a list of editor methods

In this section

LoadContents 137 SaveContents 137 SpellCheck 138 IsComplete 138 IsModified 139 GetVersion 139

Appendix A - Editor methods

LoadContents

LoadContents

Function

Syntax

SaveContents

SaveContents

Function

Syntax

Comments

Instructs the Interactive Editor to load the document files passed in

VOID LoadContents (PropertiesXmlPath PublicationPath HipPath InstanceXMLPath InstanceSchemaPath XFormPath ReviewModeFlag SpellCheckMode ServerUrl SpellerXmlPath)

Allows you to save the current state of a loaded document The collected data will be streamed from a field into the instance file at the location passed via InstanceXMLPath

The document content will be saved back to the publication file PublicationPath The updated Production HIP HipPath will be saved

VOID SaveContents( VOID )

IsComplete() should be called before SaveContents() to ensure all required fields have been completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 137

Appendix A - Editor methods

SpellCheck

SpellCheck

Function

Syntax

IsComplete

IsComplete

Function

Syntax

Comments

Instructs the editor to spell check all user editable content

VOID SpellCheck( VOID )

Checks to see if all required fields have been completed Returns ldquo1rdquo if the document is complete and ldquo0rdquo if not

BOOL IsComplete( VOID )

This method must be called prior to SaveContents to ensure the document is complete

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 138

Appendix A - Editor methods

IsModified

IsModified

Function

Syntax

Comments

GetVersion

GetVersion

Function

Syntax

Note This method will not tell you if any data fields have been modified

Checks to see if any of the documentrsquos editable content has been modified The editable content is saved in the HIP and PUBX file If editable content has not been modified these files will not need saving back to the server

Returns ldquo1rdquo if the document is modified and ldquo0rdquo if not

BOOL IsModified( VOID )

This method can be called to add efficiency to your process It avoids uploading a Publication file and Production HIP file back to the server if no modification has been made

Returns a string containing the current version number of the Interactive Editor For example 5046352

STRING GetVersion( VOID )

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 139

9 - Appendix B - SOAP API This section describes relevant EngageOne Web services that could be utilized for custom application integration

In this section

Identifiers 141 Search filter 142 Promotion service 143 Folder service 164 Data push service 168 Delivery management service 170 Dictionary service 178 Domain service 180 Editor service 182 Keymap service 185 Metadata service 193 Request status update service 196 Security service 198 Template service 204 Workitem service 227 Attachment service 252 Workflow service 264 Delivery service 276

Appendix B - SOAP API

Identifiers

Many of the services accept as part of their requests identifiers for various entities in the system

For example in order to search for templates the TemplateServices searchTemplates operations take in an optional template identifier The identifiers as part of the request are of two forms either an IntegerIdOrName or a StringIdOrName Refer to the listing of inputs for each service below to see which operations take which identifier

Most of the entities in the system are uniquely identified by a unique integer value When searching for those types of entities you would use the IntegerIdOrName On the other hand domains are entities which are uniquely identified by a string identifier so you would need to use a StringIdOrName when searching for those

In either case all entities can be searched by using the name of the entity IntegerIdOrName and StringIdOrName are choice constructs which allow the name of an entity to be specified Please keep in mind that the name of an entity is not necessarily unique in the system and will potentially return more than one entity

The format of the IntegerIdOrName and StringIdOrName elements are as follows

lttemplategtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlttemplategt

The id element is a string for domain entities and an integer otherwise

All service operations that return entities will return the unique identifiers of the entities This way you can obtain the unique identifiers for use in subsequent calls to the services

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 141

Appendix B - SOAP API

Search filter

For most search operations the request message will include the filter element The filter can be LIST or DETAIL

ltcomfiltergtLISTltcomfiltergt

If you specify LIST less information will be returned in the response

DETAIL means the response will contain more detailed information

Consult the documentation below for each search operation to see the exact meaning of LIST versus DETAIL

For example if you want to return a listing of templates you would use the LIST filter in the request

lttemSearchTemplatesgtltcomfiltergtLISTltcomfiltergt

lttemSearchTemplatesgt

On the other hand if you want to retrieve a template with all of the files (returned as attachments) with the response you would use the DETAIL filter in the request

lttemSearchTemplatesgtltcomfiltergtDETAILltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomnamegtSimple Templateltcomnamegtltidentgt

lttemplategtlttemplatesgt

lttemSearchTemplatesgtFile Attachments

All files sent into a service operation request and returned from a service operation response are transferred as MTOM attachments

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 142

Appendix B - SOAP API

Promotion service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSPromotionServicewsdl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 143

Appendix B - SOAP API

createImportAssetsJob()

Description this web service creates an import assets job

Parameters

InputCreateImportAssetsJob

request type CreateImportAssetsJob - extension of type RequestMessage importItems type ImportItem - minOccurs=1 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

priority type boolean - minOccurs=0 maxOccurs=1

OutputCreateImportAssetsJobResponse

response type CreateImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 144

Appendix B - SOAP API

Fault PromotionFault - fault type ServiceFault

Sample request (Open Import)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltfilePathgtDprojectpromotionpreviewfolder1OnezipltfilePathgt

ltdestinationFoldergtfolder1ltdestinationFoldergtltimportItemsgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgt

ltprioritygttrueltprioritygtltpromCreateImportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 145

Appendix B - SOAP API

Sample request (Promotion Bundle)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2promotion-2018-02-08_08_49_23_758-7291assets-descriptorjsonltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgtltprioritygttrueltprioritygt

ltpromCreateImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENV Header xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3CreateImportAssetsJobResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt0e273a8b-321d-4b6d-975a-60357c8aeb50lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_13_49_5983-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtwaitingltns4statusgt

ltimportJobInfogtltns3CreateImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 146

Appendix B - SOAP API

getImportAssetsJob()

Description This Web service gets an import assets job

Parameters

InputGetImportAssetsJob

request type GetImportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

OutputGetImportAssetsJobResponse

response type GetImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 147

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltjobIdgt2017-03-31_12_16_45372-importltjobIdgt

ltpromGetImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 148

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt252feaad-71ef-434e-b50e-b5861e1b3bb7lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_12_16_45372-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtcompleteltns4statusgtltns4overallResultgt

ltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtimportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4relativePathFromDescriptorgt

MyTemplatezipltns4relativePathFromDescriptorgtltns4rootPathgtDTemplatesltns4rootPathgt

ltns4assetgtltns4resultgt

ltns4statusgtcompleteltns4statusgtltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns2resourceIdsgt47730ltns2resourceIdsgt

ltns4resultgtltns4assetsResultsgt

ltimportJobInfogtltns3GetImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 149

Appendix B - SOAP API

createExportAssetsJob()

Description this Web Service operation is used to create an export assets job

Parameters

Input

CreateExportAssetsJob

request type CreateExportAssetsJob - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType type- string with restriction

enum FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTIONminOccurs=1 maxOccurs=1

options type ExportOption - minOccurs=0 maxOccurs=unbounded

name string - with restriction enum includeSubFoldersdeliveryOptionImportStrategy minOccurs=1 maxOccurs=1

value type string - minOccurs=1 maxOccurs=1

option related to FOLDER asset type includeSubFolders true | false

option related to DELIVERY_OPTION asset type deliveryOptionImportStrategyOMIT_IF_ANY_CONFLICT | MERGE_NEW_CHANNELS | OVERWRITE_EVERYTHING

exportDirectory type string - minOccurs=1 maxOccurs=1

Comment use id or assetLogicalPath parameter alternatively in the request

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 150

Appendix B - SOAP API

CreateExportAssetsJobResponse

response type CreateExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 151

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgtltsoapenvHeadergtltsoapenvBodygt

ltpromCreateExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtfolder1ltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportItemsgt

ltmodassetLogicalPathgtmyDeliveryOptionltmodassetLogicalPathgtltmodtypegtDELIVERY_OPTIONltmodtypegtltmodoptionsgt

ltmodnamegtdeliveryOptionImportStrategyltmodnamegtltmodvaluegtOVERWRITE_EVERYTHINGltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromCreateExportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3CreateExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt1001fb8e-183d-405b-b420-7276fb82bee5lttokengtltSessionTokengt

ltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtwaitingltns4statusgt

ltexportJobInfogtltns3CreateExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 152

Appendix B - SOAP API

getExportAssetsJob()

Description this Web service gets an export assets job

Parameters

Input

GetExportAssetsJob

request type GetExportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

Output

GetExportAssetsJobResponse

response type GetExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 153

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtPmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltjobIdgt2017-04-07_11_46_16456-exportltjobIdgtltpromGetExportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 154

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt501a02fe-a29e-474b-8130-dc1549caa48clttokengt

ltSessionTokengtltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtcompletedltns4statusgtltns4overallResultgt

ltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0

ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtexportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4sourceResourceIdgt115ltns4sourceResourceIdgtltns4relativePathFromDescriptorgtassetsasset-0001zip

ltns4relativePathFromDescriptorgtltns4rootPathgtdMyAssetsexportpromotion-2017-04-07_11_46_16_205-9465

ltns4rootPathgtltns4assetgtltns4resultgt

ltns4statusgtCOMPLETEDltns4statusgtltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegt

ltns4resultgtltns4assetsResultsgt

ltexportJobInfogtltns3GetExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 155

Appendix B - SOAP API

getImportPreview()

Description this web Service operation is used to get a preview of the import

Parameters

Input

GetImportPreview

request type GetImportPreview - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 mode type ImportPreviewMode - type string with restriction -

enum PROMOTION ZIPS PARSED_ZIPS- minOccurs=1 maxOccurs=1

openImportRegularExpressionFilter type string - minOccurs=0 maxOccurs=1

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 156

Appendix B - SOAP API

GetImportPreviewResponse

response type GetImportPreviewResponse - extension of type ResponseMessage

importItems type ImportItem - minOccurs=0 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

previewRoot type ImportPreviewFolder - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1

assets type ImportPreviewAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=4 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1 fileName type string - minOccurs=1 maxOccurs=1 eoVersion type string - minOccurs=1 maxOccurs=1

subFolders type ImportPreviewFolder - minOccurs=0 maxOccurs=unbounded

globalAssets type ImportPreviewGlobalAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum ACDOCUMENT_CLASS- minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded fileName type string - minOccurs=1 maxOccurs=1

totalAssetsCount type int - minOccurs=1 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 157

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpreviewltpathgtltmodegtPARSED_ZIPSltmodegt

ltpromGetImportPreviewgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 158

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportPreviewResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtaffff535-b301-4d69-bd61-75c3df400246lttokengtltSessionTokengt

ltauthContextgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder1Onezipltns4filePathgt

ltns4destinationFoldergtfolder1ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder2ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderfolder4Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderfolder4ltns4destinationFoldergt

ltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderPublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewOnezipltns4filePathgtltns4destinationFoldergtltns4destinationFoldergt

ltimportItemsgtltpreviewRootgt

ltns4typegtTEMPLATEltns4typegtltns4namegtrootltns4namegtltns4pathgtltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtOneltns4pathgtltns4fileNamegtDprojectpromotionpreviewOnezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder1ltns4namegtltns4pathgtfolder1ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder1Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder1

Onezipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtACltns4typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 159

Appendix B - SOAP API

ltns4namegtfolder2ltns4namegtltns4pathgtfolder2ltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder2Publishable Active Contentltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder2

PublishableActiveContentzipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder3ltns4namegtltns4pathgtfolder3ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

Onezipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtACltns4typegtltns4namegtac_folderltns4namegtltns4pathgtfolder3ac_folderltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder3ac_folderPublishable Active

Contentltns4pathgt ltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderPublishableActiveContentzipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder4ltns4namegtltns4pathgtfolder3ac_folderfolder4ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3ac_folderfolder4Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderfolder4Onezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4subFoldersgtltns4subFoldersgt

ltpreviewRootgtlttotalAssetsCountgt8lttotalAssetsCountgt

ltns3GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 160

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity2ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser2ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401assets-descriptorjsonltpathgt

ltmodegtPROMOTIONltmodegtltpromGetImportPreviewgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns4GetImportPreviewResponse xmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtd046d82b-c954-42b4-aca7-cd0a6455ee0elttokengt

ltSessionTokengtltauthContextgtltimportItemsgt

ltns2filePathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401

assets-descriptorjsonltns2filePathgtltimportItemsgtltpreviewRootgt

ltns2typegtTEMPLATEltns2typegtltns2namegtrootltns2namegtltns2pathgtltns2pathgtltns2assetsgt

ltns2typegtTEMPLATEltns2typegtltns2namegtTemplate1ltns2namegtltns2pathgtTemplate1ltns2pathgtltns2fileNamegttemplate1zipltns2fileNamegtltns2eoVersiongt10ltns2eoVersiongt

ltns2assetsgtltpreviewRootgtltglobalAssetsgt

ltns2typegtDOCUMENT_CLASSltns2typegtltns2namegtmyDocumentClassltns2namegtltns2fileNamegtdocumentClass1jsonltns2fileNamegt

ltglobalAssetsgtlttotalAssetsCountgt2lttotalAssetsCountgt

ltns4GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 161

Appendix B - SOAP API

getAssetDependencies()

Description this Web Service operation retrieves export assets dependencies

Parameters

Input

GetAssetDependencies

request type GetAssetDependencies - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum

FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTION - minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=unbounded see

CreateExportAssetsJob() operation for ExportOption definition

Comment use id OR assetLogicalPath parameter in request

Output

GetAssetDependenciesResponse

response type GetAssetDependenciesResponse - extension of type ResponseMessage

exportItems type ExportItem - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum AC DOCUMENT_CLASS -

minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 162

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope[

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelope|httpschemasxmlsoaporgsoapenvelope]

xmlnsprom=httppbcomEngageOnewspromotion

xmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetAssetDependenciesgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromGetAssetDependenciesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope[

xmlnssoap=httpschemasxmlsoaporgsoapenvelopegt|httpschemasxmlsoaporgsoapenvelope]

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetAssetDependenciesResponse[

xmlnsns2=httppbcomEngageOnewsmodel|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt86d472c5-fc85-4552-8ed4-a979f9778c6alttokengt

ltSessionTokengtltauthContextgtltexportItemsgt

ltns2idgt357ltns2idgtltns2assetLogicalPathgtmyDocumetClassltns2assetLogicalPathgtltns2typegtDOCUMENT_CLASSltns2typegt

ltexportItemsgtltns4GetAssetDependenciesResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 163

Appendix B - SOAP API

Folder service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSFolderServicewsdl

listFolderContents()

Description

This Web Service operation is used to list folder contents

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 164

Appendix B - SOAP API

Parameters

Input

ListFolderContents

request type ListFolderContents - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 filter type ListFolderContentsFilter - minOccurs=0 maxOccurs=unbounded ListFolderContentsFilter - type string enum

values FOLDER TEMPLATENON-INTERACTIVE-FOLDERNON-INTERACTIVE-TEMPLATEACTIVE-CONTENT-FOLDERACTIVE-CONTENTVERSION

mode type ListFolderContentsMode - minOccurs=1 maxOccurs=1 default=POPULATED ListFolderContentsMode - type string enum values POPULATED ALL

Output

ListFolderContentsResponse

response type ListFolderContentsResponse - extension of type ResponseMessage

folderContent type FolderContent - minOccurs=1 maxOccurs=1 id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded

templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 path type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 interactive type boolean - minOccurs=1 maxOccurs=1 versions type FolderVersion - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 current type boolean - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1

importedBy type string - minOccurs=1 maxOccurs=1 importedDate type string - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1 publishDate type string - minOccurs=1 maxOccurs=1

Fault

FolderFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 165

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsfol=httppbcomEngageOnewsfolder xmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltfolListFolderContentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltpathgtltpathgtlt--Optional--gtltfiltergtACTIVE-CONTENT-FOLDERltfiltergtltfiltergtFOLDERltfiltergtltfiltergtTEMPLATEltfiltergtltmodegtALLltmodegt

ltfolListFolderContentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 166

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3ListFolderContentsResponse xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsfoldergt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9c3d1b67-322b-4091-a850-b17df1fe4f44lttokengtltSessionTokengt

ltauthContextgtltfolderContentgt

ltidgt0ltidgtltfoldersgt

ltidgt547ltidgtltnamegtac_folderltnamegtltdescriptiongtac_folderltdescriptiongtlttypegtactive-contentlttypegt

ltfoldersgtltfoldersgt

ltidgt1012ltidgtltnamegttemplate_folderltnamegtlttypegttemplatelttypegt

ltfoldersgtlttemplatesgt

ltidgt844ltidgtltnamegtOneltnamegtltdescriptiongtOneltdescriptiongtltpathgtltpathgtlttypegttemplatelttypegtltinteractivegttrueltinteractivegtltimportedBygtuser1ltimportedBygtltimportedDategtThu Apr 20 000000 CEST 2017ltimportedDategtltversiongt10ltversiongtltpublishDategt22-Apr-2015ltpublishDategt

lttemplatesgtltfolderContentgt

ltns3ListFolderContentsResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 167

Appendix B - SOAP API

Data push service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDataPushServicewsdl

pushData()

Description

This Web service pushes data into the EngageOne Server

This Web service validates request data then invokes a common framework for mapping or persisting the data passed in by the service request

Parameters

Input

PushDataRequest

request type PushData - extension of type RequestMessage

template type TemplateIdentifier - optionalident type IntegerIDOrName - optionaleffectiveDate type date - optional

pushDataFile type DataPushFile data type base64Binary

mapId type string returnFiles type boolean - optionalpushUserId type string - optionalexternalId type string - optional

Output

PushDataResponse

response type PushDataResponse - extension of type ResponseMessage

workItem type workItem - optional

Fault

DataPushFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 168

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopegtltsoapenvBodygtltns11PushData xmlnsns11=httppbcomEngageOnewsdatapush

xmlnsxsi=httpwwww3org2001XMLSchema-instancexsitype=ns11PushDatagt

ltauthContext xmlns=httppbcomEngageOnewscommongtltUsernameTokengt ltdomaingt ltidentgt ltnamegtEngageOneltnamegt

ltidentgtltdomaingtltuserIdgteosuperltuserIdgtltpasswordgtPassword1ltpasswordgt

ltUsernameTokengtltauthContextgtltpushDataFilegtltdatagtltdatagt

ltpushDataFilegtltmapIdgttestltmapIdgtltpushUserIdgteomanagerltpushUserIdgtltexternalIdgt1234567ltexternalIdgt

ltns11PushDatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns1PushDataResponse

xmlnsns1=httppbcomEngageOnewsdatapushxmlnsns2=httppbcomEngageOnewsmodel

xmlnsns3=httppbcomEngageOnewscommongtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtb9da9e70833f22a93b71ac2671aed830_1275060509093_2lttokengtltSessionTokengt

ltauthContextgtltns1PushDataResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 169

Appendix B - SOAP API

Delivery management service

suspendDeliveryItem()

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryManagementServicewsdl

searchDeliveryOptions()

Description

This Web service retrieves delivery options by delivery option ID or name or the delivery options associated with a given template ID or name

If the search filter is set to LIST a list of delivery options will be returned without their respective delivery channels If the search filter is DETAIL the delivery channels devices and recipients will also be returned

If both template and delivery option details are provided in the request templates will be searched that match both the template and delivery option criteria

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 170

Appendix B - SOAP API

Parameters

Input

SearchDeliveryOptionsRequest

request type SearchDeliveryOptions - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionident type IntegerIdOrName

Output

SearchDeliveryOptionsResponse

response type SearchDeliveryOptionsResponse - extension of type ResponseMessage

deliveryOptions - optionaldeliveryOption - unbounded type DeliveryOption - extension of abstract type Entity id type ID - type int with restriction name type string channels - optional

channel - unbounded type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string

mode type DeliveryChannelMode - type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

Device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 171

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryOptionsgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2119ec197f798916ec4ddaa4eaa50939_1260816474406_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

ltcomidgtltcomidgtltidentgt

ltdeliveryOptiongtltdeliveryOptionsgt

ltdelSearchDeliveryOptionsgtltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 172

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryOptionsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryOptionsgtltdeliveryOptiongt

ltns2idgt1ltns2idgtltns2namegtCHO1ltns2namegt

ltdeliveryOptiongtltdeliveryOptionsgt

ltns4SearchDeliveryOptionsResponsegtltenvBodygt

ltenvEnvelopegt

searchDevices()

Description

This Web service retrieves devices by device ID or name or devices associated with the specified delivery options or templates

The search filter is not used by this service

If device template delivery option details are provided in the request devices will be searched that match all of the provided criteria

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 173

Appendix B - SOAP API

Parameters

Input

SearchDevicesRequest

request type SearchDevices - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionsident type IntegerIdOrName

devices - optionaldevice - unboundedident type IntegerIdOrName preview - optional type boolean

Output

SearchDevicesResponse

response type SearchDevicesResponse extension of type ResponseMessage

devices - optionaldevice - unbounded type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 174

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDevicesgt lt--Optional--gtltcomauthContextgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomUsernameTokengt ltcomdomainNamegtFirstDomainltcomdomainNamegtltcomuserIdgteosuperltcomuserIdgt

lt--Optional--gtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gtltcomfiltergtDETAILltcomfiltergtlt--Optional--gtlttemplatesgt

lttemplategtltidentgt lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 175

Appendix B - SOAP API

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltdeliveryOptiongt

ltdeliveryOptionsgtlt--Optional--gtltdevicesgt lt--1 or more repetitions--gt

ltdevicegt ltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlt--Optional--gtltpreviewgtltpreviewgt

ltdevicegtltdevicesgt

ltdelSearchDevicesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 176

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchDevicesResponsexmlnsns1=httppbcomEngageOnewsdeliveryManagementxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtbfdba5d08d1299b13651c7c6e25df6a1_1260900326187_0lttokengt

ltSessionTokengtltauthContextgt

ltdevicesgt ltdevicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgt

ltns2HIPIdgt110ltns2HIPIdgtltns2metaIdgt111ltns2metaIdgt

ltdevicegtltdevicesgt

ltns1SearchDevicesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 177

Appendix B - SOAP API

Dictionary service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDictionaryServicewsdl

searchSpellerManifest()

Description

This Web service is used to retrieve the speller manifest loaded in the system

The speller manifest contains a listing of all languages supported by the system and is primarily used by EngageOne Interactive Editor (ActiveX component) for loading dictionary resources

A custom application will not need to parse this file directly but make it available for the Interactive Editor to use

For more infromation on how to integrate the Interactive Editor into a custom application see Integrating with EngageOne SOAP

Parameters

Input

SearchSpellerManifestRequest

request type SearchSpellerManifest - extension of type SearchRequestMessage

Output

SearchSpellerManifestResponse

response type SearchSpellerManifestResponse - extension of type ResponseMessage

manifest - optional type SpellerManifest - extension of abstract type Entity id type ID - type int with restriction data - optional type base64Binary

Fault

DictionaryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 178

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdic=httppbcomEngageOnewsdictionaryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdicSearchSpellerManifestgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltdicSearchSpellerManifestgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchSpellerManifestResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdictionaryxmlnsns5=httppbcomEngageOnewskeymapgt

ltmanifestgt ltns2idgt97ltns2idgtltns2datagt

ltxopIncludehref=ciddata-92afb4f2-e02b-41d0-926b-7eb02575fee1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltmanifestgt

ltns4SearchSpellerManifestResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 179

Appendix B - SOAP API

Domain service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDomainServicewsdl

searchDomains()

Description

This Web service can be used to retrieve a list of EngageOne domains A typical use for this operation would be to pass an empty request and retrieve a list of all domains

This Web service operation is the only operation which does not require authentication

Parameters

Input

SearchDomainsRequest

request type SearchDomains - extension of type RequestMessage

domains - optionaldomain ident type StringIdOrName

Output

SearchDomainResponse

response type SearchDomainsResponse - extension of type ResponseMessage

domains - optionaldomain - unbounded type Domain id type string name type string

Fault

DomainFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 180

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdom=httppbcomEngageOnewsdomainxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdomSearchDomainsgt ltdomSearchDomainsgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDomainsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdomainxmlnsns5=httppbcomEngageOnewskeymapgt

ltdomainsgt ltdomaingt ltns2idgtBB81F0DC-AF0A-4318-9398-D37832916DC9ltns2idgt

ltns2namegtA01ltns2namegtltdomaingtltdomaingt ltns2idgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltns2idgt

ltns2namegtFirstDomainltns2namegtltdomaingtltdomaingt ltns2idgt29CAB1A2-586E-4459-977B-C11819A1680Dltns2idgt

ltns2namegtSecondDmainltns2namegtltdomaingtltdomaingt ltns2idgt232CD981-5208-4C4D-A89B-C3B739266C54ltns2idgt

ltns2namegtThirdltns2namegtltdomaingt

ltdomainsgtltns4SearchDomainsResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 181

Appendix B - SOAP API

Editor service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSEditorServicewsdl

Note Some tags have been broken up for formatting purposes

retrieveResources()

Description

This Web service is used to retrieve resources required by the EngageOne Interactive Editor (ActiveX component)

A custom application intending on embedding the Interactive Editor must use this service operation to retrieve files on behalf of the editor

See Integrating with EngageOne SOAP for more information

Parameters

Input

RetrieveResourcesRequest

request type RetrieveResources extension of type RequestMessage

resources resource - unboundedid type ID - type int with restriction

Output

RetrieveResourcesResponse

response type RetrieveResourcesResponse - extension of type ResponseMessage

resources resource - unbounded type EditorResource - extension of abstract type Entity id type ID - type int with restriction data type base64Binary

Fault

EditorFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 182

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsedit=httppbcomEngageOnewseditorxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtlteditRetrieveResourcesgt

ltcomauthContextgt ltcomSessionTokengt

ltcomtokengt13be6dbe35df5bb735401da4d94dc9c0_1261584686465_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltresourcesgt

ltresourcegt ltidgt97ltidgt

ltresourcegtltresourcesgt

lteditRetrieveResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegtltenvHeadergtltenvBodygt

ltns4RetrieveResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewseditorgt

ltresourcesgt ltresourcegt

ltns2idgt97ltns2idgt

lt--The following ltns2datagt tag has been broken up for formattingpurposes--gt

ltns2datagtPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTcGVsbGVycz4NCjxMYW5ndWFnZXM+DQo8TGFuZ3VhZ2UgTmFtZT0iRU5HTElTSCI+DQo8TGV4aWNvbkZpbGUgTmFtZT0iX0VOR0xJU0guTEVYIiBTUklEPSI2Ii8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfRU5HTElTSC5BQkIiIFNSSUQ9IjQiLz4NCjxJbmRleEZpbGUgTmFtZT0iX0VOR0xJU0guSURYIiBTUklEPSI1Ii8+DQo8SGlzdG9yeUZpbGUgTmFtZT0iX0hJU1RPUlkuR0IiIFNSSUQ9IjMyIi8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5HQiIgU1JJRD0iODYiLz4NCjwvTGFuZ3VhZ2U+DQo8TGFuZ3VhZ2UgTmFtZT0iQU1FUklDQU4iPg0KPExleGljb25GaWxlIE5hbWU9I

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 183

Appendix B - SOAP API

l9BTUVSSUNBLkxFWCIgU1JJRD0iMTAwIi8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfQU1FUklDQS5BQkIiIFNSSUQ9Ijk4Ii8+helliphelliphelliphelliphelliphelliphelliphelliphelliphellipDQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfU1dJU1NfTi5BQkIiIFNSSUQ9IjczIi8+DQo8SW5kZXhGaWxlIE5hbWU9Il9TV0lTU19OLklEWCIgU1JJRD0iNzQiLz4NCjxIaXN0b3J5RmlsZSBOYW1lPSJfSElTVE9SWS5DSDIiIFNSSUQ9IjI1Ii8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5DSDIiIFNSSUQ9Ijc5Ii8+DQo8L0xhbmd1YWdlPg0KPC9MYW5ndWFnZXM+DQo8L1NwZWxsZXJzPg0K ltns2datagt

ltresourcegtltresourcesgt

ltns4RetrieveResourcesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 184

Appendix B - SOAP API

Keymap service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSKeymapServicewsdl

ImportKeymap()

Description

This Web service is used to import a key map file into the EngageOne system A key map file is generated using the EngageOne Key Map Generator

The name of the key map and the image path must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

ImportKeymapRequest

request type ImportKeymap - extension of type RequestMessage

keymapname type string imagepath type string archive type base64Binary

Output

ImportKeymapResponse

response type ImportKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePath type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 185

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyImportKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltimagePathgtCltimagePathgtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyImportKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegtltns2imagePagegtCltns2imagePagegt

ltkeymapgtltns4ImportKeymapResponsegt

ltenvBodygtltenvEnvelopegt

searchKeyMaps()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 186

Appendix B - SOAP API

Description

This Web service is used to get key map information key map file and key map image information for a specified key map

This service requires the key map name or ID to be specified in order to return information

If the user wants the key map XML file to be returned the DETAIL filter has to be specified in the request

If searching for a key map image file the key image name or ID needs to be specified in the request in addition to key map ID The files are returned as base64Binary attachments

This service provides additional search capabilities to the HTTP request method of getting key map image files in a conformed way This service is similar to other search services in EngageOne Server

Note You can only search for an image file for the specified key map at a time The service will not return more then one image file per request

There are four scenarios available for requests

bull filter = LIST - the service will return the key map information (name and image path) bull filter = DETAIL - the service will return the key map information and the key map XML file bull filter = LIST and image requested - the service will return the key map information and the requested image bull filter = DETAIL and image requested - the service will return the key map information the key map XML file and the requested image

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 187

Appendix B - SOAP API

Parameters

Input

SearchKeymapRequest

request type Search - extension of type SearchRequestMessage

bull filter = LIST or DETAIL- enumeration has to be specified depending on what information and files has to be returned

bull keymaps

keymapident type IntegerIdOrName - required parameter images - optional inclulded if image file to be returned image - minOccurs=1 maxOccurs=1 (Only on request)ident type IntegerIdOrName

Note image should be used to request a keyed image

Output

SearchKeymapsResponse

response type SearchKeymapResponse - extension of type ResponseMessage

keymapskeymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePage type string data type base64Binary - contains attachment with requested files images - optional include if image file to be returned image type KeyedImage - extension of abstract type Entity name type string data type base64Binary

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 188

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltkeySearchKeymapsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtmydomainltcomnamegt

ltcomidentgtltcomdomaingt

ltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltkeymapsgt

ltkeymapgtltidentgt

ltcomnamegtExternalKeyMapltcomnamegtltidentgtltimagesgt

ltimagegtltidentgt

ltcomnamegtC8643C4EEF874052A2DB4A97B0063690ltcomnamegtltidentgt

ltimagegtltimagesgt

ltkeymapgtltkeymapsgt

ltkeySearchKeymapsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 189

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchKeymapsResponsexmlnsns1=httppbcomEngageOnewskeymapxmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewskeymapxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt96707b532a8348359ac9cb4e6904d79b_132 2713559246_0lttokengt

ltSessionTokengtltauthContextgtltkeymapsgt

ltkeymapgtltns5idgt1ltns5idgtltns5namegtExternalKeyMapltns5namegt

ltns5imagePathgtCEngageOneQAKeyMapltns5imagePathgt

ltns5datagt ltxopInclude

href=ciddata-38d4d706-2281-45c2-96bb-e8e95407d05awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagesgt

ltns5imagegtltns5idgt1ltns5idgt

ltns5namegtC8643C4EEF874052A2DB4A97B0063690ltns5namegtltns5datagt

ltxopIncludehref=ciddata-93da5279-1d5b-4f9c-9a78-c9701ab93e81wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagegt

ltns5imagesgtltkeymapgt

ltkeymapsgtltns1SearchKeymapsResponsegt

ltenvBodygtltenvEnvelopegt

updateKeymap()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 190

Appendix B - SOAP API

Description

This Web service is used to update a key map file into the EngageOne system

The update process adds any new images and updates existing images in the target directory A key map file is generated using the EngageOne Key Map Generator

The name of the key map must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

UpdateKeymapRequest

request type UpdateKeymap - extension of type RequestMessage

keymapname type string archive type base64Binary

Output

UpdateKeymapResponse

response type UpdateKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 191

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyUpdateKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyUpdateKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4UpdateKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegt

ltkeymapgtltns4UpdateKeymapResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 192

Appendix B - SOAP API

Metadata service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSMetadataServicewsdl

searchMetadata()

Description

This Web service is used to search for metadata associated with a document class as specified by the document class identifier (ID or name)

If the search filter is set to LIST only the document class will be returned If the search filter is set to DETAIL the document class and metadata fields and any associated workflow will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 193

Appendix B - SOAP API

Parameters

Input

SearchMetadataRequest

request type SearchMetadata - extension of type SearchRequestMessage

docClasses - optionaldocClass ident type IntegerIdOrName

Output

SearchMetadataResponse

response type SearchMetadataResponse - extension of type ResponseMessage

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optionalfield - unbounded type MetadataField - extension of abstract type Entity id type ID - type int with restriction name type string type MetadataFieldType - type string with restriction - enum STRING DATE NUMBER CHOICE value - optional - type MetadataFieldValue MetadataString type string MetadataDate type date MetadataNumber type decimal MetadataChoice is recursive

workflows - optionalworkflow - unbounded type Workflow - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

MetadataFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 194

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsmet=httppbcomEngageOnewsmetadataxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltmetSearchMetadatagt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltmetSearchMetadatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchMetadataResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmetadataxmlnsns5=httppbcomEngageOnewseditorgt

ltdocClassesgt ltdocClassgt

ltns2idgt11ltns2idgtltns2namegtInvoiceltns2namegtltns2descriptiongt

ltdocClassgtltdocClassgt

ltns2idgt12ltns2idgtltns2namegtClaimltns2namegtltns2descriptiongt

ltdocClassgtltdocClassesgt

ltns4SearchMetadataResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 195

Appendix B - SOAP API

Request status update service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSRequestStatusUpdateServicewsdl

postEvent()

Description

This Web service is used by EngageOne Deliver to provide information requests received from EngageOne

Parameters

Input

RequestStatusUpdateRequest

request type DIJInformation - extension of type RequestMessage

docInstanceID type string code type string message type string

Output

RequestStatusUpdateResponse

response type ResponseMessage

Fault

fault type ServiceFault

result type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 196

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsstat=httppbcomEngageOnewsdeliverystatusupdatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltstatRequestStatusUpdategtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtEngageOneltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtlt--Optional--gtltcompasswordgtPasswordltcompasswordgtlt--Optional--gtltcomtransientSessiongttrueltcomtransientSessiongt

ltcomUsernameTokengtltcomauthContextgtltDIJInformationgt

ltdocInstanceIDgtBBBBBBBltdocInstanceIDgtltcodegtDELIVRDltcodegtlt--Optional--gtltmessagegtThis iem was deliveredltmessagegt

ltDIJInformationgtltstatRequestStatusUpdategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2RequestStatusUpdateResponsexmlnsns2=httppbcomEngageOnewsdeliverystatusupdatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommongt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 197

Appendix B - SOAP API

Security service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSSecurityServicewsdl

searchRoles()

Description

This Web service is used to return the list of roles that associated with the specified user ID

Possible roles returned include

bull Community Administrator bull Delivery Manager bull Document Manager bull Editor bull Editor with saving new templates

bull External File Manager bull Project Manager bull Reviewer bull Template Manager bull Viewer bull Viewer with Reprint bull Workflow Administrator

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 198

Appendix B - SOAP API

Parameters

Input

SearchRolesRequest

request type SearchRoles - extension of type SearchRequestMessage

Users - optionaluser id type string

Output

SearchRolesResponse

response type SearchRolesRequest - extension of type ResponseMessage

roles - optionalrole - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optionaluser - unbounded type User id type string roles - optional is recursive

Fault

SecurityFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltsecSearchRolesgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltusersgt

ltusergt ltidgteosuperltidgt

ltusergtltusersgt

ltsecSearchRolesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 199

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchRolesResponse[xmlnsns2=httppbcomEngageOnewsmodel

|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewssecurityxmlnsns5=httppbcomEngageOnewseditorgt

ltrolesgt ltrolegt

ltns2idgt40ltns2idgtltns2namegtDocument Managerltns2namegt

ltrolegtltrolegt

ltns2idgt41ltns2idgtltns2namegtEditorltns2namegt

ltrolegtltrolesgt

ltns4SearchRolesResponsegtltenvBodygt

ltenvEnvelopegt

invalidateSession()

Description

This Web service is used to invalidate an authenticated session

This is necessary not to hold open sessions against the license limits of your EngageOne system

The session token must be specified in the authentication context of the request

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 200

Appendix B - SOAP API

Input

InvalidateSessionRequest

request type InvalidateSession - extension of type ResponseMessage

Output

InvalidateSessionResponse

response type InvalidateSessionResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

trustedConnectionLogin()

Description

This Web service is used to create Trusted Connection token

Parameters

Input

TrustedConnectionLoginRequest

request type TrustedConnectionLogin - extension of type ResponseMessage

Output

TrustedConnectionLoginResponse

response type TrustedConnectionLoginResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 201

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltsecTrustedConnectionLogingtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegttestltcomnamegt

ltcomidentgtltcomdomaingt

lt--user1(below)- this is the user that requires access to EngageOneand should exist in LDAP This scenario may be encountered whenthe user does not know their own passwordEg to login it uses card biometric etc --gt

ltcomuserIdgtuser1ltcomuserIdgt

lt--abc123(below) is the ApiKey defined in deployproperties undersecuritytrustedconnectionapikey--gt

ltcompasswordgtabc123ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level

--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 202

Appendix B - SOAP API

ltcomcommunitygtltcomcommunitygtltsecTrustedConnectionLogingt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns2TrustedConnectionLoginResponse

xmlnsns2=httppbcomEngageOnewssecurityxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt455e80b3-645c-41a0-91e6-7b355d1932a2lttokengt

ltSessionTokengtltauthContextgt

ltns2TrustedConnectionLoginResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 203

Appendix B - SOAP API

Template service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSTemplateServicewsdl

deleteTemplate()

Description

This Web service is used to delete a template from the system as specified by a template identifier (ID or name)

All versions of the template with the same name are deleted

Parameters

Input

DeleteTemplate

request type DeleteTemplate - extension of type RequestMessage

templateid type IntegerIdOrName

Output

DeleteTemplateResponse

response type DeleteTemplateResponse - extension of type ResponseMessage

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 204

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemDeleteTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplategtltidgt

ltcomidgt222ltcomidgtltidgt

lttemplategtlttemDeleteTemplategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteTemplateResponsexmlnsns2=httppbcomEngageOnewstemplatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

importActiveContent()

Description

This Web service is used to import an Active Content archive into the EngageOne system Active Content items are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 205

Appendix B - SOAP API

Parameters

Input

ImportActiveContent

request type ImportActiveContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportActiveContentResponse

response type ImportActiveContentResponse - extension of type ResponseMessage

activeContents activeContent - unbounded type ActiveContent - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 206

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportActiveContentgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid784040028172ltarchivegtltfoldergt

ltidentgt ltcomidgt240ltcomidgt

ltidentgtltfoldergt

lttemImportActiveContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 207

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportActiveContentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltactiveContentsgt ltactiveContentgt

ltns2idgt260ltns2idgtltns2namegtAC_Textltns2namegtltns2parentgt

ltns2idgt240ltns2idgtltns2parentgt

ltns2pathgtInvoiceActiveCotentFolderAC_Textltns2pathgtltns2versiongt10ltns2versiongt

ltactiveContentgtltactiveContentsgt

ltns4ImportActiveContentResponsegtltenvBodygt

ltenvEnvelopegt

importMessageContent()

Description

This Web service is used to import a Message Content archive into the EngageOne system Message Content is defined using Content Author

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 208

Appendix B - SOAP API

Parameters

Input

ImportMessageContent

request type ImportMessageContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportMessageContentResponse

response type ImportMessageContentResponse - extension of type ResponseMessage

messageContentsmessageContent - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportMessageContentgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcidcid1184235865156ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportMessageContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 209

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1ImportMessageContentResponsexmlnsns1=httppbcomEngageOnewstemplatexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdatapushgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt05a6a80cadcba8cb11c896cceb18ad46_1330033598071_2

lttokengtltSessionTokengt

ltauthContextgtltmessageContentsgt

ltmessageContentgtltns2idgt1ltns2idgtltns2namegtmessage inchesltns2namegtltns2pathgtMCmessage inchesltns2pathgtltns2versiongt10ltns2versiongt

ltmessageContentgtltmessageContentsgt

ltns1ImportMessageContentResponsegtltenvBodygt

ltenvEnvelopegt

importTemplate()

Description

This Web service is used to import a template archive into the EngageOne system Templates are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 210

Appendix B - SOAP API

Parameters

Input

ImportTemplate

request type ImportTemplate - extension of type RequestMessage

archive type base64Binary folder ident type IntegerIdOrName

Output

ImportTemplateResponse

response type ImportTemplateResponse - extension of type ResponseMessage

templatestemplate - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 211

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid1215487361289ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportTemplategtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 212

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportTemplateResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

lttemplatesgtlttemplategt

ltns2idgt231ltns2idgtltns2namegtEngageOne Introductionltns2namegtltns2parentgt

ltns2idgt221ltns2idgtltns2parentgt

ltns2pathgtInvoiceTESTEngageOne Introductionltns2pathgtltns2versiongt10ltns2versiongt

ltns2effectiveDategt2009-12-17-0500ltns2effectiveDategtltns2withdrawnDategt2999-12-31-0500ltns2withdrawnDategt

lttemplategtlttemplatesgt

ltns4ImportTemplateResponsegtltenvBodygt

ltenvEnvelopegt

searchFolders()

Description

This Web service retrieves folders by folder identifier (ID or name)

If the search filter is set to LIST a high-level list of folders will be returned without their respective children

If the search filter is DETAIL the next level of children (templates and folders) will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 213

Appendix B - SOAP API

Parameters

Input

SearchFolders

request type SearchFolders - extension of type SearchRequestMessage

folders - optionalfolder ident type IntegerIdOrName

Output

SearchFoldersResponse

response type SearchFoldersResponse - extension of type ResponseMessage

folders - optionalfolder - unbounded type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional

folder type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withdrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 214

Appendix B - SOAP API

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract

type Entity is recursive docClasses - optional is recursive children - optional is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optional is recursive children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 215

Appendix B - SOAP API

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

Fault

TemplateFault (soapfault use = literal)

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchFoldersgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltfoldersgt

ltfoldergt ltidentgt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltfoldergt

ltfoldersgtlttemSearchFoldersgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 216

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchFoldersResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfoldersgt ltfoldergt

ltns2idgt0ltns2idgtltns2namegtltns2namegtltns2childrengt ltns2foldergt ltns2idgt118ltns2idgt

ltns2namegtInvocesltns2namegtltns2parentgt

ltns2idgt0ltns2idgtltns2parentgt

ltns2foldergtltns2childrengt

ltfoldergtltfoldersgt

ltns4SearchFoldersResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplateResources()

Description

This Web service retrieves template related files by template identifier (ID or name) and file type

The search filter is not used by this service operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 217

Appendix B - SOAP API

Parameters

Input

SearchTemplateResources

request type SearchTemplateResources - extension of type SearchRequestMessage

templateident type integerIdOrName files - optional

file - unbounded is recursive

Output

SearchTemplateResourcesResponse

response type SearchTemplateResourcesResponse - extension of type ResponseMessage

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity id type ID - type int with restriction name type string type type TemplateFileType - type string with restriction - enum ANSWER SCHEMAXFORM PROPERTY PUBX HIP IMAGE OTHER DATAMODEL PREVIEWPROMPTLOGIC THUMBNAIL DATAMODEL PREVIEW PROMPTLOGIC THUMBNAILdata type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 218

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplateResourcesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtPUBXlttypegt

ltfilegtltfilegt

lttypegtHIPlttypegtltfilegt

ltfilesgtlttemplategt

lttemSearchTemplateResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 219

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplateResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfilesgt ltfilegt

ltns2idgt121ltns2idgtltns2typegtPUBXltns2typegt

ltfilegtltfilegt

ltns2idgt120ltns2idgtltns2typegtHIPltns2typegt

ltfilegtltfilesgt

ltns4SearchTemplateResourcesResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplates()

Description

This Web service searches templates by document class

This Web service supports on-demand licensing

If the type element is omitted the system returns INTERACTIVE_ONLY results by default

If returnAttributes is included with the attribute set to DOC_CLASSES the service returns document class information along with template information

You do not need to set the search filter to DETAIL in order to obtain document class information

If the returnAttributes element is omitted the service does not return document class information with template information just as it does with a LIST filter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 220

Appendix B - SOAP API

Parameters

Input

SearchTemplates

request type SearchTemplates - extension of type SearchRequestMessage

returnAttributes - optionalattribute - unbounded type SearchTemplatesReturnAttribute

- type string with restriction - enum DOC_CLASSES

templates - optionaltemplate

ident type IntegerIdOrName effectiveDate - optional type date

docClasses - optionaldocClass

ident type IntegerIdOrName fields - optional is recursive

sorting - optional type SortingControls fields

field - unbounded type SortField type type SortFieldType - type string with restriction -

enum NAME MODIFIED_TIME WORK_ITEM_EXTERNAL_IDOWNER_NAME CREATOR_NAME APPLICATION_NAMEDATE STATUS TEMPLATE_NAME DELIVERY_COUNT

order type SortOrder - type string with restriction - enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

type - optional type SearchTemplateFilterType - type string with restriction - enum

INTERACTIVE_ONLY NON_INTERACTIVE_ONLY BOTH

Output

SearchTemplatesResponse

response type SearchTemplatesResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

templates - optionaltemplate - unbounded type Template - extension of abstract

type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity

id type ID - type int with restriction name type string

type type TemplateFileType - type string with restriction -

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 221

Appendix B - SOAP API

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHERDATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 222

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplatesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltreturnAttributesgt

ltattributegtDOC_CLASSESltattributegtltreturnAttributesgtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltcomnamegtIntroltcomnamegt

ltidentgtlteffectiveDategtlteffectiveDategt

lttemplategtlttemplatesgtltsortinggt

ltfieldsgt ltfieldgt

lttypegtlttypegtltordergtltordergt

ltfieldgtltfieldsgt

ltsortinggtltpaginationgt

ltpageNumbergtltpageNumbergtltpageSizegtltpageSizegt

ltpaginationgtlttypegtINTERACTIVE_ONLYlttypegt

lttemSearchTemplatesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 223

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplatesResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdeliverystatusupdatexmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgt

ltpaginationgtlttemplatesgt

lttemplategtltns3idgt171ltns3idgtltns3namegtASRrequirementsltns3namegtltns3parentgt

ltns3idgt162ltns3idgtltns3namegtTemplatesltns3namegtltns3typegtREGULARltns3typegt

ltns3parentgtltns3descriptiongtASRrequirementsltns3descriptiongtltns3pathgtTemplatesASRrequirementsltns3pathgtltns3versiongt10ltns3versiongtltns3filesgt

ltns3filegt ltns3idgt172ltns3idgtltns3namegttemplatehipltns3namegtltns3typegtHIPltns3typegtltns3datagt

ltxopIncludehref=ciddata-1fa8d44-f187-4c27-a7f4-44e5611e09abwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt173ltns3idgtltns3namegttemplatepubxltns3namegtltns3typegtPUBXltns3typegtltns3datagt

ltxopIncludehref=ciddata-3b3c834e-8603-484a-a450-4e31f60bbd3awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt174ltns3idgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 224

Appendix B - SOAP API

ltns3datagtltns3namegt0DF00BE136E7490D920F999500B4839Cxformltns3namegt

ltns3typegtXFORMltns3typegtltns3datagt

ltxopIncludehref=ciddata-d0c51091-d8ee-427b-b21c-dbb1662936cbwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3filegtltns3filegt ltns3idgt175ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxmlltns3namegtltns3typegtANSWERltns3typegtltns3datagt ltxopInclude

href=ciddata-b2b74571-7fb5-4643-a8ef-57c55fa86744wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt ltns3idgt176ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxsdltns3namegtltns3typegtSCHEMAltns3typegtltxopInclude

href=ciddata-82e3424-bb1d-4f38-99a7-8b7c9965de0wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3datagt ltns3filegtltns3filegt ltns3idgt177ltns3idgt

ltns3namegtProperty_4338420834667219234xmlltns3namegtltns3typegtPROPERTYltns3typegtltns3datagt

ltxopIncludehref=ciddata-aba52bf7-5146-4dba-89d3-d70067a7916fwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt

ltns3filesgtltns3effectiveDateSelectiongt

ltns3versionsHaveEffectivDategtfalseltns3versionsHaveEffectivDategt

ltns3selectionCriteriagtCURRENT_DATEltns3selectionCriteriagtltns3effectiveDateSelectiongtltns3spellCheckgtUSER_CANNOT_CLOSEltns3spellCheckgt

lttemplategtlttemplatesgt

ltns4SearchTemplatesResponsegtltenvBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 225

Appendix B - SOAP API

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 226

Appendix B - SOAP API

Workitem service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkItemServicewsdl

approveWorkItem()

Description

This method is not supported in this release

createWorkItem()

Description

This Web service can be used to create a new work item for a specified template with associated files (for example answer schema etc)

The work item is created for delivery to the specified delivery option

Additional information is required to create the work item

This includes

an external identifier which can be used as a cross-reference into an external system the user ID of the current operator creating the work item the status of the newly created work item and the application name for which the work item is being created

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 227

Appendix B - SOAP API

Parameters

Input

CreateWorkItemRequest

request type CreateWorkItem - extension of type RequestMessage

templateident type integerIdOrName

workItem externalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

applicationName type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

CreateWorkItemResponse

response type CreateWorkItemResponse - extension of type ResponseMessage

workItem type WorkItem - extension of abstract type Entity id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNED

FAILED_DELIVERY FINISHED OPEN PENDING_APPROVAL

PENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

lastModifiedDate type date

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 228

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworCreateWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtlttemplategt

ltworkItemgt ltexternalIdgtFrank001ltexternalIdgtltcurrentOperatorgteosuperltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltapplicationNamegtCommit By Soap UIltapplicationNamegtltfilesgt

ltfilegt ltnamegtAnswerFile_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326563ltdatagt

ltfilegtltfilegt

ltnamegtPUB_16342009033447pubxltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326564ltdatagt

ltfilegtltfilegt

ltnamegtHIP_16342009033447hipltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326565ltdatagt

ltfilegtltfilegt

ltnamegtProperty_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326566ltdatagt

ltfilegtltfilesgt

ltworkItemgtltworCreateWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 229

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1CreateWorkItemResponsexmlnsns1=httppbcomEngageOnewsworkItemxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewskeymapgt

ltworkItemgt ltns2idgt134ltns2idgt

ltworkItemgtltns1CreateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

deleteWorkItem()

Description

This Web service can be used to delete a work item specified by a work item ID

Pameters

Input

DeleteWorkItemRequest

request type DeleteWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

Output

DeleteWorkItemResponse

response type DeleteWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 230

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworDeleteWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt2ltidgtltworkItemgt

ltworDeleteWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

getWorkItemAssignees()

Description

This Web service is used to retrieve the list of potential assignees for an existing work item as specified by a work item identifier (ID or name)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 231

Appendix B - SOAP API

Parameters

Input

GetWorkItemAssigneesRequest

request type GetWorkItemAssignees - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

GetWorkItemAssigneesResponse

response type GetWorkItemAssigneesResponse - extension of type ResponseMessage

assignees - optionalassignee - unbounded type User id type string roles - optional

role - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optional is recursive

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkItemAssigneesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltworGetWorkItemAssigneesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 232

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4GetWorkItemAssigneesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltassigneesgtltassigneegt

ltns2idgtAdministratorltns2idgtltassigneegtltassigneegt

ltns2idgteodeliveryltns2idgtltassigneegtltassigneegt

ltns2idgteomanagerltns2idgtltassigneegt

ltassigneegt ltns2idgteosystemltns2idgt

ltassigneegtltassigneegt

ltns2idgteotemplateltns2idgtltassigneegt

ltassigneegt ltns2idgteouserltns2idgt

ltassigneegtltassigneegt

ltns2idgtpgeron01ltns2idgtltassigneegt

ltassigneesgtltns4GetWorkItemAssigneesResponsegt

ltenvBodygtltenvEnvelopegt

reassignWorkItem()

Description

This Web service is used to reassign a work item as specified by a work item ID to another user by user ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 233

Appendix B - SOAP API

Parameters

Input

ReassignWorkItemRequest

request type ReassignWorkItem - extension of abstract type WorkItemMaintRequest- extension of type RequestMessage

workItem id type ID - type int with restriction

assigneeid type string

Output

ReassignWorkItemResponse

response type ReassignWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworReassignWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt25ltidgtltworkItemgt

ltassigneegtltidgteouserltidgt

ltassigneegtltworReassignWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 234

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ReassignWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

rejectWorkItem()

Description

This method is not supported in this release

searchWorkItem()

Description

This Web service is used to search for work items by combination of work item list status or optionally with a work item identifier (ID or name)

Possible work item list statuses that can be searched for include

bull ACTIVE

bull SUBMITTED

bull ALL_ACTIVE

bull ALL_SUBMITTED

You can optionally filter the work item list by work item status delivery channel mode and delivery channel type The exception to this rule is when workItemListType is equal to ALL_ACTIVE or ACTIVE In this case the work item cannot be filtered with delivery channel type (ARCHIVE PRINT EMAIL FAX) and channel mode (BATCH IMMEDIATE) The list that is returned pertains to the user invoking the service

For example the operation can be used to return the list of active work items for the authenticated user If the search filter is set LIST the list of matching work items is returned If the search filter is set to DETAIL the files associated with the work items are also returned The Web service always returns a list of comments for each work item returned if there are any

If you submit Work Item ID or name in the search criteria the service returns the requested Work Item regardless of the user ID associated with it The service also disregards workItemListType parameter ( ACTIVE SUBMITTED ALL_ACTIVE ALL_SUBMITTED) if such is specified If you do not specify Work Item ID or name in the search parameters the workItemListType parameter is required

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 235

Appendix B - SOAP API

Parameters

Input

SearchWorkItemsRequest

request type SearchWorkItems - extension of type SearchRequestMessage

workItemListType type WorkItemListType - type string with restriction -enum ACTIVE SUBMITTED ALL_ACTIVE

ALL_SUBMITTED workItems - optionalworkItem

ident type IntegerIdOrName

workitemStatuses - optionalworkitemStatus type workitemStatus - type string with restriction -

enum ACTIVE_INCOMPLETE ACTIVE_NEW ACTIVE_COMPLETEASSIGNED FAILED_DELIVERY FINISHED OPENPENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

deliveryChannelModes - optionaldeliveryChannelMode type deliveryChannelMode - type string with restriction -

enum BATCH IMMEDIATE

deliveryChannelTypes - optionaldeliveryChannelType type deliveryChannelType - type string with restriction -

enum ARCHIVE PRINT EMAIL FAX

sorting - optional type SortingControls fields

field - unboundedl type SortField type type SortFieldType - type string with restriction -

enum WORK_ITEM_EXTERNAL_ID OWNER_NAME CREATOR_NAMEAPPLICATION_NAMEDATE STATUSTEMPLATE_NAME

order type SortOrder - type string with restriction -enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

language - optional type string

Output

SearchWorkItemsResponse

response type SearchWorkItemsResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

workItems - optionalworkItem - unbounded type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 236

Appendix B - SOAP API

lastModifiedDate type date

files - optionalfile - unbounded type WorkItemFile - extension of abstract type Entity

id type ID - type int with restriction name type string path type string type type TemplateFileType - type string with restriction -

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHER DATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

comments - optionalcomment - unbounded type WorkItemComment text type string - requireddate type DateTime - required

Note If multiple comments exist for the work item they will be returned sorted by datetime

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 237

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSearchWorkItemsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltcomfiltergtDETAILltcomfiltergtltworkItemListTypegtACTIVEltworkItemListTypegtltworkItemsgt

ltworkItemgt ltidentgt ltcomidgt43ltcomidgt

ltidentgtltworkItemgt

ltworkItemsgtltworkItemStatusesgt

ltworkItemStatusgtACTIVE_INCOMPLETEltworkItemStatusgtltworkItemStatusgtACTIVE_NEWltworkItemStatusgtltworkItemStatusgtACTIVE_COMPLETEltworkItemStatusgtltworkItemStatusgtASSIGNEDltworkItemStatusgtltworkItemStatusgtFAILED_DELIVERYltworkItemStatusgtltworkItemStatusgtFINISHEDltworkItemStatusgtltworkItemStatusgtOPENltworkItemStatusgtltworkItemStatusgtPENDING_APPROVALltworkItemStatusgtltworkItemStatusgtPENDING_DELIVERYltworkItemStatusgtltworkItemStatusgtSUBMITTED_APPROVEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REJECTEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REVIEWltworkItemStatusgt

ltworkItemStatusesgt

ltdeliveryChannelModesgtltdeliveryChannelModegtBATCHltdeliveryChannelModegtltdeliveryChannelModegtIMMEDIATEltdeliveryChannelModegt

ltdeliveryChannelModesgtltdeliveryChannelTypesgt

ltdeliveryChannelTypegtPRINTltdeliveryChannelTypegtltdeliveryChannelTypegtEMAILltdeliveryChannelTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 238

Appendix B - SOAP API

ltdeliveryChannelTypegtFAXltdeliveryChannelTypegtltdeliveryChannelTypegtARCHIVEltdeliveryChannelTypegt

ltdeliveryChannelTypesgtltworSearchWorkItemsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 239

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns3SearchWorkItemsResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsworkItemxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelxmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgtltpaginationgtltworkItemsgt ltworkItemgt ltns5idgt7ltns5idgtltns5externalIdgtWork Item 121634 -

1016803513ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

ltns5lastModifiedDategt2012-11-08T121635080-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt190ltns5idgtltns5namegtAnswerFile_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08162012121634xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-a21abe3f-4f64-4d87-becb-85619d8fc0c3wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt191ltns5idgtltns5namegtPUB_08162012121634pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08162012121634pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-1f28b175-1362-45b7-9717-bf311277cee6wsjbossorg

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 240

Appendix B - SOAP API

xmlnsxop=httpwwww3org200408xopincludegtltns5filegtltns5filegt ltns5idgt192ltns5idgtltns5namegtHIP_08162012121634hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08162012121634hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-a48a81bd-9b61-4140-8d08-292f3c12f47awsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt193ltns5idgtltns5namegtProperty_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08162012121634xmlltns5pathgt

ltns5typegtPROPERTYltns5typegtltns5datagt ltxopInclude

href=ciddata-6f19fa6c-e9a7-435e-94ad-bf84ba41140wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5dataltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTest Spell Check Closeltns5textgtltns5dategt2012-11-08T121635080-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemgt ltns5idgt9ltns5idgtltns5externalIdgtWork Item 121841 -

544723706ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 241

Appendix B - SOAP API

ltns5lastModifiedDategt2012-11-08T121842030-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt198ltns5idgtltns5namegtAnswerFile_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08182012121841xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-8fc4283-e36-4d13-8b38-fe9495dea2bfwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5filegtltns5filegt ltns5idgt199ltns5idgtltns5namegtPUB_08182012121841pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08182012121841pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-f2ebda42-e045-4c3e-a8f8-75fb13fd919dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt200ltns5idgtltns5namegtHIP_08182012121841hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08182012121841hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-9d66a164-c512-4566-aba6-6ef7c375c861wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt201ltns5idgtltns5namegtProperty_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08182012121841xmlltns5pathgt

ltns5typegtPROPERTYltns5typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 242

Appendix B - SOAP API

ltns5datagt ltxopInclude

href=ciddata-e2bb812a-7fa3-43cf-a035-81a3ccc96c6dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTestltns5textgtltns5dategt2012-11-08T121842030-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemsgtltns3SearchWorkItemsResponsegtltenvBodygtltenvEnvelopegt

submitWorkItem()

Description

This Web service is used to submit a work item and deliver the document after creating a work item using the WorkItemService createWorkItem operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 243

Appendix B - SOAP API

Parameters

Input

SubmitWorkItemRequest

request type SubmitWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

comment - optional type string

Output

SubmitWorkItemResponse

response type SubmitWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworSubmitWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltworkItemgt

ltworSubmitWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 244

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SubmitWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateWorkItem()

Description

This Web service is used to update a work item definition This includes the template associated with the work item work item details such as status and the delivery option associated with the work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 245

Appendix B - SOAP API

Parameters

Input

UpdateWorkItemRequest

request type UpdateWorkItem - extension of type RequestMessage

templateident type IntegerIdOrName

workitem id type ID - type int with restrictionexternalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

comment type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

UpdateWorkItemResponse

response type UpdateWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 246

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltcurrentOperatorgteouserltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltcommentgthello worldltcommentgt

ltworkItemgtltdeliveryOptiongt

ltidentgt ltcomidgt1ltcomidgt

ltidentgtltdeliveryOptiongt

ltworUpdateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 247

Appendix B - SOAP API

saveTemplateWorkItem()

Description

This Web service is used to create a new template work item A template work item is distinguished from a document instance work item using the WorkItemService createWorkItem operation The intent of a template work item is to make a new template available for use in document instance creation

Parameters

Input

SaveTemplateWorkItemRequest

request type SaveTemplateWorkItem - extension of type RequestMessage

templateWorkItemident - optional type IntegerIdOrName createdBy type string modelTemplateId type IntegerIdOrName targetTemplateName type string folderIdent type IntegerIdOrName files - optional

file - unbounded is recursive

comment - optional type string overwrite - optional type boolean

Output

SaveTemplateWorkItemResponse

response type SaveTemplateWorkItemResponse - extension of type ResponseMessage

workItem type TemplateWorkItem - extension of type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

lastModifiedDate type date modelTemplateId type ID - type int with restriction templateName type string folderId type ID - type int with restriction

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 248

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSaveTemplateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplateWorkItemgtltidentgt

ltcomidgt30ltcomidgtltidentgtltcreatedBygteosuperltcreatedBygtltmodelTemplateIdgt

ltcomidgt119ltcomidgtltmodelTemplateIdgtlttargetTemplateNamegtIntro_SaveAslttargetTemplateNamegt

ltfolderIdentgt ltcomidgt221ltcomidgt

ltfolderIdentgtltfilesgt

ltfilegt ltnamegtAnswerFile_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

ltnamegtPUB_18152009111556pubxltnamegtltpathgtInstanceFilesltpathgtlttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

ltnamegtHIP_18152009111556hipltnamegtltpathgtInstanceFilesltpathgtlttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

ltnamegtProperty_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtPROPERTYlttypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 249

Appendix B - SOAP API

ltdatagtcid278598095434ltdatagtltfilegt

ltfilesgtlttemplateWorkItemgtltcommentgt789456ltcommentgtltoverwritegttrueltoverwritegt

ltworSaveTemplateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SaveTemplateWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltworkItemgt ltns2idgt30ltns2idgtltns2externalIdgtWF05ltns2externalIdgtltns2createdBygteosuperltns2createdBygtltns2statusgtFINISHEDltns2statusgt

ltns2lastModifiedDategt2009-12-18-0500ltns2lastModifiedDategtltns2modelTemplateIdgt119ltns2modelTemplateIdgtltns2templateNamegtEngageOne

Introductionltns2templateNamegtltns2folderIdgt221ltns2folderIdgt

ltworkItemgtltns4SaveTemplateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

addWorkItemComment()

Description

This Web service is used to add a comment to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 250

Appendix B - SOAP API

Parameters

Input

AddWorkItemCommentRequest

request type AddWorkItemComment - extension of type RequestMessage extension of type RequestMessageworkItem id type ID - type int with restriction comment type string

Output

AddWorkItemCommentResponse

response type AddWorkItemCommentResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

updateWorkItemStatus()

Description

This Web service is used to update the status of an existing work item

Parameters

Input

UpdateWorkItemStatusRequest

request type UpdateWorkItemStatus - extension of type RequestMessage

workItem id type ID - type int with restriction status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

Output

UpdateWorkItemStatusResponse

response type UpdateWorkItemStatusResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 251

Appendix B - SOAP API

Attachment service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSAttachmentServicewsdl

addAttachments()

Description

This Web service adds attachment files to an existing work item

Parameters

Input

AddAttachments

request type AddAttachments - extension of type RequestMessage

attachmentFiles type base64Binary maxOccurs=unbounded workItemId type ID ndash type int with restriction

Output

AddAttachmentsResponse

response type AddAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 252

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt ltcomUsernameTokengt

ltcomdomaingt ltcomidentgt

ltcomnamegtcommunity1ltcomnamegtltcomidentgt

ltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--1 or more repetitions--gtltattachmentFilesgtcid490167285825ltattachmentFilesgtltattachmentFilesgtcid490167285826ltattachmentFilesgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 253

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3AddAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta08351f0-5537-40bc-8baf-b98c5abc196clttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt29ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt30ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltns3AddAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachments()

Description

This Web service is used to get all attachment file metadata added to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 254

Appendix B - SOAP API

Parameters

Input

GetAttachments

request type GetAttachments - extension of type RequestMessage

workItemId type ID ndash type int with restriction

Output

GetAttachmentsResponse

response type getAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 255

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta5506457-f0a1-4ba5-99ed-4a6a6d2925f1lttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt2ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt3ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltns3GetAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachmentFile()

Description

This Web service is used to get attachment file content

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 256

Appendix B - SOAP API

Parameters

Input

GetAttachmentFile

request type GetAttachmentFile - extension of type RequestMessage

workItemId type ID ndash type int with restriction attachmentId type ID ndash type int with restriction

Output

GetAttachmentFileResponse

response type GetAttchmentFileResponse - extension of type ResponseMessage

attachmentFile type base64Binary

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattGetAttachmentFilegt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1ltworkItemIdgt

ltattachmentIdgt8ltattachmentIdgtltattGetAttachmentFilegt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 257

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentFileResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtfd220238-a5eb-46b8-8ac8-4be9366402f2lttokengt

ltSessionTokengtltauthContextgtltattachmentFilegt

ltxopIncludehref=cid1f882a3b-ac19-431d-9a26-d0d169081313-4cxfapacheorgxmlnsxop=httpwwww3org200408xopincludegt

ltattachmentFilegtltns3GetAttachmentFileResponsegt

ltsoapBodygtltsoapEnvelopegt

deleteAttachment()

Description

This Web service is used to delete an attachment from a communication

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 258

Appendix B - SOAP API

Parameters

Input

DeleteAttachment

request type DeleteAttachment - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachmentId ident type ID ndash type int with restriction

Output

DeleteAttachmentResponse

response type DeleteAttchmentResponse - extension of type ResponseMessage

attachmentId ident type ID ndash type int

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattDeleteAttachmentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt7ltworkItemIdgtltattachmentIdgt14ltattachmentIdgt

ltattDeleteAttachmentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 259

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3DeleteAttachmentResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9e079c58-80c7-40a9-86d2-2bea25632413lttokengt

ltSessionTokengtltauthContextgtltattachmentIdgt14ltattachmentIdgt

ltns3DeleteAttachmentResponsegtltsoapBodygt

ltsoapEnvelopegt

updateAttachments()

Description

This Web service is used to update attachmentsrsquo order and name

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 260

Appendix B - SOAP API

Parameters

Input

UpdateAttachments

request type UpdateAttachments - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded

id type ID - type int with restrictionfileName type string fileType type string - optional and ignored on updatesequence type int createdDate type date - optional and ignored on update

Output

UpdateAttachmentsResponse

response type UpdateAttchments - extension of type ResponseMessage

attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 261

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltattUpdateAttachmentsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt20ltworkItemIdgtltattachmentsgt

ltmodidgt4ltmodidgtltmodfileNamegtreportpdfltmodfileNamegtltmodsequencegt2ltmodsequencegt

ltattachmentsgtltattachmentsgt

ltmodidgt5ltmodidgtltmodfileNamegtO55V7PpdfltmodfileNamegtltmodsequencegt1ltmodsequencegt

ltattachmentsgtltattUpdateAttachmentsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 262

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4UpdateAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsattachmentgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt169e9b3e-6d7c-4ec1-929e-ead23c5f9832lttokengt

ltSessionTokengtltauthContextgtltattachmentsgt

ltns3idgt5ltns3idgtltns3fileNamegtO55V7Ppdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt1ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltattachmentsgt

ltns3idgt4ltns3idgtltns3fileNamegtreportpdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt2ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltns4UpdateAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 263

Appendix B - SOAP API

Workflow service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkflowServicewsdl

Note Some tags have been broken up for formatting purposes

getWorkflowTask()

Description

This Web Service operation is used to get workflow task details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 264

Appendix B - SOAP API

Parameters

Input

GetWorkflowTask

request type GetWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1

Output

GetWorkflowTaskResponse

response type GetWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string minOccurs=0 maxOccurs=unbounded potentialGroups type string minOccurs=0 maxOccurs=unbounded potentialUsers type string minOccurs=0 maxOccurs=unbounded allowedActions type string minOccurs=0 maxOccurs=unbounded instanceId type string isActionableByYou type string projectId type string previewBefore type string previewAfter type string previewDiff type string comparisonStatus type string

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 265

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtltworGetWorkflowTaskgt ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt12345lttaskIdgtltworGetWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 266

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengtltSessionTokengtltauthContextgtlttaskgt ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgtltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgtltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgtlttaskgtltns4GetWorkflowTaskResponsegt

ltsoapBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 267

Appendix B - SOAP API

ltsoapEnvelopegt

updateWorkflowTask()

Description

This Web Service operation is used to update workflow task

Parameters

Input

UpdateWorkflowTask

request type UpdateWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1 action type WorkflowTaskAction minOccurs=1 maxOccurs=1

allowed values APPROVE REJECT CLAIMDELEGATE RELEASE RESUBMIT

assignee type string - minOccurs=1 maxOccurs=1 notes type string - minOccurs=1 maxOccurs=1

Output

UpdateWorkflowTaskResponse

response type UpdateWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type stringname type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string - minOccurs=0 maxOccurs=unbounded potentialGroups type string - minOccurs=0 maxOccurs=unbounded potentialUsers type string - minOccurs=0 maxOccurs=unbounded allowedActions type string - minOccurs=0 maxOccurs=unbounded instanceId type string - minOccurs=0 maxOccurs=unbounded isActionableByYou type string - minOccurs=0 maxOccurs=unbounded projectId type string - minOccurs=0 maxOccurs=unbounded previewBefore type string - minOccurs=0 maxOccurs=unbounded previewAfter type string - minOccurs=0 maxOccurs=unbounded previewDiff type string - minOccurs=0 maxOccurs=unbounded comparisonStatus type string - minOccurs=0 maxOccurs=unbounded

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 268

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkflowTaskgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtdesignReviewltcomuserIdgtltcompasswordgtmy passwordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt2543lttaskIdgtltactiongtDELEGATEltactiongtltassigneegtWTOffice2ltassigneegtltnotesgttest_notesltnotesgt

ltworUpdateWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 269

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygt

ltns4UpdateWorkflowTaskResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtc09d7ff6-b1de-4c5c-a59b-6283d9bdd686lttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt2543ltns3idgtltns3namegtmany users Step1ltns3namegtltns3statusgtinActionOtherltns3statusgtltns3actualOwnergtWTOffice2ltns3actualOwnergtltns3externalReferenceNamegtWT_Project -

Simple_Image_Publtns3externalReferenceNamegt

ltns3externalReferenceIdgt5d91acb3-9900-44ab-961e-a40aad831b7eltns3externalReferenceIdgt

ltns3externalReferenceTypegtPROJECT_ASSETltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtSimple_Image_Publtns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt15f3cebd-3f09-4ebb-a988-0f32588ee6d2ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-27T120905797Zltns3createdgtltns3stepgtStep1ltns3stepgtltns3submittergtadminltns3submittergtltns3typegtdesignReviewltns3typegt

ltns3uriToGetTaskDetailsgthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1Community1tasks25432543ltns3uriToGetTaskDetailsgt

ltns3instanceIdgt2527ltns3instanceIdgt

ltns3isActionableByYougtfalseltns3isActionableByYougt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 270

Appendix B - SOAP API

ltns3onBehalfOfGroupsgtltns3potentialUsersgtWTProjReviewerltns3potentialUsersgt

ltns3potentialUsersgtWTOffice1ltns3potentialUsersgt

ltns3projectIdgtb960f0bc-ce8e-4f71-9077-a98054c25a79ltns3projectIdgt

ltns3previewBeforegthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesbfbc379f-fddf-49d1-bdff-28ac75f70683ltns3previewBeforegt

ltns3previewAftergthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesa205c38c-7d99-4075-aa48-327315331897ltns3previewAftergt

ltns3comparisonStatusgtsubmitltns3comparisonStatusgtlttaskgt

ltns4UpdateWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

getWorkflowTasks()

Description

This Web Service operation is used to get the list of existing workflow tasks

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 271

Appendix B - SOAP API

Parameters

Input

GetWorkflowTasks

request type GetWorkflowTasks - extension of type RequestMessage

query type string - minOccurs=0 maxOccurs=1 assignedUser type string - minOccurs=0 maxOccurs=1 searchType type string enum values all user unassigned - minOccurs=1 maxOccurs=1 submitters type string - minOccurs=0 maxOccurs=unbounded subjects type string - minOccurs=0 maxOccurs=unbounded types type string - minOccurs=0 maxOccurs=unbounded statuses type string - minOccurs=0 maxOccurs=unbounded earliestCreationTime type date - minOccurs=0 maxOccurs=1 latestCreationTime type date - minOccurs=0 maxOccurs=1 order type string - minOccurs=0 maxOccurs=1 pagination type PaginationControls - minOccurs=0 maxOccurs=1

Output

GetWorkflowTasksResponse

response type GetWorkflowTasksResponse - extension of type ResponseMessage

WorkflowTask - minOccurs=0 maxOccurs=unbounded id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string

PaginationControls - minOccurs=0 maxOccurs=1 pageNumber type int - minOccurs=0 pageSize type int - minOccurs=0 totalPages type int - minOccurs=0

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 272

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkflowTasksgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltsearchTypegtallltsearchTypegt

ltworGetWorkflowTasksgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 273

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgt

ltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgt

ltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgt

lttaskgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 274

Appendix B - SOAP API

ltns4GetWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 275

Appendix B - SOAP API

Delivery service

suspendDeliveryItem

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryServicewsdl

Note Some tags have been broken up for formatting purposes

deleteDeliveryItem()

Description

This Web service deletes a delivery item as specified by a work item or delivery item

Parameters

Input

DeleteDeliveryItemRequest

request type DeleteDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

DeleteDeliveryItemResponse

response type DeleteDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 276

Appendix B - SOAP API

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelDeleteDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt501ltidgtltdeliveryItemgtltcommentgtSoapUI Testltcommentgt

ltdelDeleteDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

deliverDocument()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 277

Appendix B - SOAP API

Description

This Web service delivers a document to the specified delivery option

The input is a template identifier along with the document files (for example answer HIP content properties)

A delivery request is created in the system and returned from the service The status field indicates the status of the delivery request

If the mode of any of the delivery channel associated with the delivery option is IMMEDIATE the document data is also returned for that delivery channel

A SOAP request sample is provided that shows how to pass a file to the deliverDocument Web service as an MTOM attachment using a standard client tool

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 278

Appendix B - SOAP API

Parameters

Input

DeliverDocumentRequest

request type DeliverDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

delilveryOptionident type IntegerIdOrName

Output

DeliverDocumentResponse

response type DeliverDocumentResponse - extension of type ResponseMessage

deliveryRequest type DeliveryRequest - extension of abstract type Entity id type ID - type int with restriction status type DeliveryStatus - type string with restriction - enum NEW PROCESSING

COMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS Note ERROR status code is returned when the delivery channel fails because of an attachment conversion issue (For example a document attached to a publication is broken and conversion services fail to process it) This status is different from a normal document composition failure which occurs when the main document generation fails

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restriction

deliveryChannel type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX device type Device - extension of abstract type Entity

id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS document - optional type ComposedDocument

data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 279

Appendix B - SOAP API

Sample request

POST httplocalhost8080EngageOneWSDeliveryService HTTP11Accept-Encoding gzipdeflateSOAPAction httppbcomEngageOnewsdeliveryDeliverDocumentContent-Type multipartrelated type=applicationxop+xmlstart=ltrootpartsoapuiorggt start-info=textxmlboundary=----=_Part_0_2998042411322083558307MIME-Version 10 User-Agent Jakarta Commons-HttpClient31Host localhost8080 Content-Length 2239

------=_Part_0_2998042411322083558307 Content-Type applicationxop+xml charset=UTF-8 type=textxmlContent-Transfer-Encoding 8bitContent-ID ltrootpartsoapuiorggt

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelDeliverDocumentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgt1234ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongtltcomondemandgtfalseltcomondemandgt

ltcomUsernameTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomnamegt4933ltcomnamegt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtltincInclude href=cid1276245679229

xmlnsinc=httpwwww3org200408xopincludegtltdatagtltfilegt

ltfilesgtlttemplategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 280

Appendix B - SOAP API

ltdeliveryOptiongtltidentgt

ltcomnamegtlpltcomnamegtltidentgt

ltdeliveryOptiongtltdelDeliverDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt------=_Part_0_2998042411322083558307 Content-Type textxml charset=us-asciiContent-Transfer-Encoding 7bitContent-ID lt1276245679229gt

ltxml version=10 encoding=UTF-8 standalone=yesgtltInteractiveDataModel version=11 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=c10478fe6de8490ea462a64e518751c9xsdgt

ltPublicationgt ltInteractiveFieldgtTest dataltInteractiveFieldgtltDeliveryInformationgtltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegtltDocumentSelector xsinil=truegt

ltDeliveryInformationgtltg1privategt

ltPublicationgtltInteractiveDataModelgt------=_Part_0_2998042411322083558307--

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 281

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4DeliverDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdeliveryRequestgtltns2idgt137ltns2idgtltns2statusgtPROCESSINGltns2statusgtltns2deliveryItemsgt

ltns2deliveryItemgtltns2idgt3252ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2modegtIMMEDIATEltns2modegtltns2typegtPRINTltns2typegtltns2devicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgtltns2HIPIdgt312ltns2HIPIdgtltns2metaIdgt313ltns2metaIdgt

ltns2devicegtltns2recipientgt

ltns2idgt1ltns2idgtltns2namegtRRRRRRRRRRltns2namegt

ltns2xpathgtInteractiveDataModelPublicationDeliveryInformationReceipientltns2xpathgt

ltns2recipientgtltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgtltns2documentgt

ltns2datagt ltxopInclude

href=ciddata-639c053e-ee64-4630-8ada-5091966c518awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltns2documentgt

ltns2deliveryItemgtltns2deliveryItemsgt

ltdeliveryRequestgtltns4DeliverDocumentResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 282

Appendix B - SOAP API

previewDocument()

Description

This Web service returns a preview of the document specified in the request

The request includes the template identifier along with the document files (for example answer HIP property) In order for this operation to work successfully the preview device needs to be defined in EngageOne Administration

The preview document data is returned in the response as an attachment

Parameters

Input

PreviewDocumentRequest

request type PreviewDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

Output

PreviewDocumentResponse

response type PreviewDocumentResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

Deliveryfault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 283

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewDocumentgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtAQIC5wM2LY4SfcybfdGzpUvpFf4fVau4XU-w7VEHi9SLx_MAAJTSQACMDEAAlNLABM3MzUxMTg2ODM5MTcwNTUwNzM1defaultltcomtokengt

ltcomSessionTokengt

ltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

lttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

lttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

lttypegtPROPERTYlttypegtltdatagtcid278598095434ltdatagt

ltfilegtltfilesgt

lttemplategtltdelPreviewDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 284

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-bdd85045-1de1-42c2-b0b1-865ea9045a52wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewDocumentResponsegtltenvBodygt

ltenvEnvelopegt

previewWorkItem()

Description

This Web service previews a document associated with a work item

The request includes a work item identifier (id or name) obtained from a previous call to the WorkItemService createWorkItem service operation

The preview device is assumed to be defined through EngageOne Administration

The preview document data is returned in the response as an attachment

Note In order to preview a work item with Web services the work item status must not be Active New or Active Incomplete

The work item can be previewed after the required work is completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 285

Appendix B - SOAP API

Parameters

Input

PreviewWorkItemRequest

request type PreviewWorkItem - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

PreviewWorkItemResponse

response type PreviewWorkItemResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtc42356d8ec312e4b471399896cc44e77_1261063384968_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltdelPreviewWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 286

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-121f00b4-7d2d-4c75-a20a-1c5ed92563c1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewWorkItemResponsegtltenvBodygt

ltenvEnvelopegt

resumeDeliveryItem()

Description

This Web service resumes a delivery item which has been previously suspended via a call to the DeliveryService suspendDeliveryItem operation

The request must contain either the work item identifier (ID or name) or the delivery item ID An optional comment can be specified as well

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 287

Appendix B - SOAP API

Parameters

Input

ResumeDeliveryItemRequest

request type ResumeDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

ResumeDeliveryItemResponse

response type ResumeDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelResumeDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtResume by soupUIltcommentgt

ltdelResumeDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 288

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ResumeDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

searchDeliveryItems()

Description

This Web service retrieves delivery items associated with a work item or as specified by a delivery item ID

If the search filter is set to DETAIL the composed document associated with the delivery item is also returned if it exists (it may not have been composed)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 289

Appendix B - SOAP API

Parameters

Input

SearchDeliveryItemsRequest

request type SearchDeliveryItems - extension of type SearchRequestMessage

workItems - optionalworkItem

ident type IntegerIdOrName

deliveryItems - optionaldeliveryItem

id type ID - type int with restriction

Output

SearchDeliveryItemsResponse

response type SearchDeliveryItemsResponse - extension of type ResponseMessage

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restrictiondeliveryChannel type DeliveryChannel - extension of abstract type Entity

id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 290

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryItemsgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltworkItemsgt

ltworkItemgt ltidentgt

ltcomidgt27ltcomidgtltidentgt

ltworkItemgtltworkItemsgt

ltdelSearchDeliveryItemsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 291

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryItemsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryItemsgtltdeliveryItemgt

ltns2idgt501ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2typegtPRINTltns2typegt

ltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgt

ltdeliveryItemgtltdeliveryItemsgt

ltns4SearchDeliveryItemsResponsegtltenvBodygt

ltenvEnvelopegt

suspendDeliveryItem()

Description

This Web service suspends a delivery item specified in the request by a work item identifier (ID or name) or delivery item ID

A suspended delivery item will not be delivered

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 292

Appendix B - SOAP API

Parameters

Input

SuspendDeliveryItemRequest

request type SuspendDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

SuspendDeliveryItemResponse

response type SuspendDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelSuspendDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtsoapUIltcommentgt

ltdelSuspendDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 293

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SuspendDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateDeliveryItem()

Description

This Web service can be used to update the status of a delivery item as specified in the request by a work item identifier (ID or name) or delivery item ID

Parameters

Input

UpdateDeliveryItemRequest

request type UpdateDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS

Output

UpdateDeliveryItemResponse

response type UpdateDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 294

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelUpdateDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt38ltcomidgt

ltidentgtltworkItemgtltcommentgt123456ltcommentgtltstatusgtDELIVEREDltstatusgt

ltdelUpdateDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 295

10 - Upgrading 3X to 4X SOAP services This section details the difference between EngageOne 3X and 4X SOAP services

Note this section does not cover Gen1 SOAP services These services are no longer available

In this section

Licensing changes 297 Security changes 298 WorkItem approval process not supported 300 DataPushServicemapData not supported 300

Upgrading 3X to 4X SOAP services

Licensing changes

EngageOne Server 4X no longer requires a license file at installation time

The license file restricted the

bull Total number of communities bull Total number of concurrent sessions bull Use of OnDemand services

These restrictions are no longer enforced at runtime As a result the following fields in the AuthContext element are ignored but must be included in your request

bull ondemand

bull transientsession

In addition the following services do not have the OnDemand licensing requirement as was the case in 3X

bull DeliverDocument

bull SearchDeliveryOptionsbull SearchTemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 297

Upgrading 3X to 4X SOAP services

Security changes

The following section details security changes that are part of the upgrade to EngageOne 4X

Authentication with WS-Security

In EngageOne 3X a custom AuthContext SOAP element is used to send credential information to the server This authentication mechanism is still supported but should no longer be used in new development

To improve and modernize the authentication mechanisms of EngageOne Server the SOAP services now support WS-Security authentication

WS-Security (Web services security) is an industry standard that addresses security when data is exchanged as part of a Web service This type of authentication is implemented on all EngageOne Server services at the useridpassword level

WS-Security specifies enhancements to SOAP messaging that protect the integrity and confidentiality of a message and authenticate the sender WS-Security specifies how to associate a security token with a message without specifying what kind of token that is to be used

To use WS-Security you must specify the additional SOAP header elements in all requests

Role and access right enforcement

EngageOne version 4X introduces new Role and Access Rights restrictions in SOAP services Users are now required to have the necessary permissions to work with server resources

The following permissions are enforced in 4X

bull Role assignments - methods have been restricted by roles to align with permissions granted in EngageOne Interactive and EngageOne Admin

bull Template access rights - when working with resources in the TemplateActive ContentMessage Content folder structure the user must have access via an LDAP group specified in EngageOne Admin

For example SearchTemplates will return templates to which the user has permissions Some special roles have unrestricted access where this does not apply

bull WorkItem assignment rights- when working with a Work Item a user must either be an owner of the Work Item or have unrestricted access

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 298

Upgrading 3X to 4X SOAP services

For example to call DeleteWorkItem the user must be the owner of the Work Item

bull Unrestricted access - these roles are not restricted by Template Access and WorkItem Assignment Rights

Role and access rights by service

The following table describes the required roles and additional access rights that are enforced

Roles are abbreviated as follows

bull Interactive Roles

bull Editor bull Editor with Saving New Templates

bull CA - Community Administrator bull DM - Document Manager bull TM - Template Manager bull EFM - External File Manager

Service Required Roles Additional Access Enforced

Template Access Rights Interactive Roles DataPush

None (unrestricted access) DM CA

Template Access Rights Interactive Roles DeliveryManagement

None (unrestricted access) DM CA

WorkItem Assignment Rights Interactive Roles Delivery

None (unrestricted access) DM CA

NANo roles required Domain

Template Access Rights Interactive Roles Editor

None (unrestricted access) CA

Keymap EFM CA NA

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 299

Upgrading 3X to 4X SOAP services

Service Required Roles Additional Access Enforced

Security

None (unrestricted access) Interactive Roles Metadata

No roles required

WorkItem Assignment Rights Interactive Roles Template (Interactive features)

None (unrestricted access) DM CA

NATM CA SA Template (Admin features)

WorkItem Assignment Rights Interactive Roles WorkItem

None (unrestricted access) DM CA

WorkItem approval process not supported

The following methods are not currently supported in EngageOne 43 and will return a not supported fault message when called

bull WorkItemServicerejectWorkItembull WorkItemServiceapproveWorkItem

In addition WorkItemServicesubmitWorkItem will only submit work items for delivery If the work item triggers a workflow approval process an error will be thrown

DataPushServicemapData not supported

mapDatamethod of DataPushservice is no longer supported In earlier releases this method mapped pushed data from the pushData method to a template

In this release the pushData method performs this operation in advance and creates a corresponding communication in Interactive for an end-user

If you are using the out-of-the-box Interactive application the pushData call may exclude the specific template In this case the Interactive user will be prompted to select a Template

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 300

Upgrading 3X to 4X SOAP services

If you have developed your own Interactive application and opt to use the pushData method you must specify the template in advance to ensure data is mapped correctly

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 301

Notices

Copyright

Copyright copy2018 Pitney Bowes Inc All rights reserved

This publication and the software described in it is supplied under license and may only be used or copied in accordance with the terms of such license The information in this publication is provided for information only is subject to change without notice and should not be construed as a commitment by Pitney Bowes Inc (PBS) To the fullest extent permitted by applicable laws PBS excludes all warranties representations and undertakings (express or implied) in relation to this publication and assumes no liability or responsibility for any errors or inaccuracies that may appear in this publication and shall not be liable for loss or damage of any kind arising from its use

Except as permitted by such license reproduction of any part of this publication by mechanicalelectronic recording means or otherwise including fax transmission without the express permissionof PBS is prohibited to the fullest extent permitted by applicable laws

Nothing in this notice shall limit or exclude PBS liability in respect of fraud or for death or personal injury arising from its negligence Statutory rights of the user if any are unaffected

TALO Hyphenators and Spellers are used Developed by TALO BV Bussum Netherlands Copyright copy 1998 TALO BV Bussum NL TALO is a registered trademark reg

Encryption algorithms licensed from Unisys Corp under US Patent No 4558302 and foreign counterparts

Security algorithms Copyright copy 1991-1992 RSA Data Security Inc

Copyright copy DL Technology Ltd 1992-2010

Barcode fonts Copyright copy 1997 Terrapin Solutions Ltd with NRB Systems Ltd

This product includes software developed by the Apache Software Foundation (httpwwwapacheorg)

Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex Software Inc

This product contains the Regex++ library Copyright copy 1998-2000 Dr John Maddock

PostScript is a trademark of Adobe Systems Incorporated

PCL is a trademark of Hewlett Packard Company

Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc (httpwwwbouncycastleorg)

ICU License - ICU 181 and later Copyright (c) 1995-2006 International Business Machines Corporation and others All rights reserved

Permission is hereby granted free of charge to any person obtaining a copy of this software andassociated documentation files (the Software) to deal in the Software without restriction includingwithout limitation the rights to use copy modify merge publish distribute andor sell copies of theSoftware and to permit persons to whom the Software is furnished to do so provided that the abovecopyright notice(s) and this permission notice appear in all copies of the Software and that both theabove copyright notice(s) and this permission notice appear in supporting documentation

Matra 08b (httpmatrasourceforgenet) The contents of this documentation are subject to the Mozilla Public License Version 11 (the License) you may not use this documentation except in

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 303

Copyright

compliance with the License You may obtain a copy of the License at httpwwwmozillaorgMPL Software distributed under the License is distributed on an AS IS basis WITHOUT WARRANTY OF ANY KIND either express or implied See the License for the specific language governing rights and limitations under the License Otherwise all product names are trademarks or registered trademarks of their respective holders

This product contains Sycamore version number 039 which is licensed under the MIT license The license can be downloaded from httpsgithubcomryexleysycamoreblobmasterdistrequesterjs The source code for this software is available from httpsgithubcomryexleysycamore

This product contains Underscore version number 152 which is licensed under the MIT license The license can be downloaded from httpsgithubcomjashkenasunderscoreblobmasterLICENSE The source code for this software is available from httpunderscorejsorg

This product contains Activiti version number 5170 which is licensed under the Apache license The license can be downloaded from httpactivitiorgfaqhtmlWhyApacheLicense The source code for this software is available from httpactivitiorgdownloadhtml

This product contains Bootstrap version number 336 which is licensed under the MIT license The license can be downloaded from httpgetbootstrapcomgetting-startedlicense-faqs The source code for this software is available from httpgetbootstrapcomgetting-starteddownload

This product contains Commons-Configuration version number 110 which is licensed under the Apache license The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpcommonsapacheorgpropercommons-configuration

This product contains jQuery version number 1102 which is licensed under the MIT license The license can be downloaded from httpsjqueryorglicense The source code for this software is available from httpjquerycomdownload

This product contains Json2JSON-js 2015-05-03 The source code for this software is available from httpsgithubcomdouglascrockfordJSON-js

This product contains Kendo UI Core version number 20141318 which is licensed under the Apache2 license The license can be downloaded from httpsgithubcomtelerikkendo-ui-core The source code for this software is available from httpwwwtelerikcomdownloadkendo-ui-core

This product contains Knockout-AMD-Helpers version number 074 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-amd-helpersblobmasterLICENSE The source code for this software is available from httpsgithubcomrniemeyerknockout-amd-helpers

This product contains Knockout version number 340 which is licensed under the MIT license The license can be downloaded from httpsgithubcomknockoutknockoutblobmasterLICENSE The source code for this software is available from httpknockoutjscomdownloads

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 304

Copyright

This product contains Knockout-DelegatedEvents version number 050 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-delegatedEventslicense The source code for this software is available from httpsgithubcomrniemeyerknockout-delegatedEvents

This product contains Knockout-Kendo version number 081 which is licensed under the Apache2 license The license can be downloaded from httprniemeyergithubioknockout-kendoindexhtml The source code for this software is available from httprniemeyergithubioknockout-kendo

This product contains LDAP Synchornization Connector version number 210 which is licensed under the BSD license The license can be downloaded from httptoolslsc-projectorgprojectslscrepositoryentrylsctrunkLICENSEtxt The source code for this software is available from httplsc-projectorgwikidownload

This product contains Momentjs version 2120 which is licensed under the MIT license The license can be downloaded from httpsgithubcommomentmomentblobdevelopLICENSE The source code for this software is available from httpmomentjscom

This product contains Quartz-Scheduler version number 221 which is licensed under the Apache license The license can be downloaded from httpquartz-schedulerorg The source code for this software is available from httpquartz-schedulerorg

This product contains RequireJS-Text version number 2014 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomrequirejstextblobmasterLICENSE The source code for this software is available from httpsgithubcomrequirejstext This product contains Solr-Solrj version number 472 which is licensed under the Apache LicenseThe license can be downloaded from httpsmaven-repositorycomartifactorgapachesolrsolr-solrj472pom The source code for this software is available from httpwikiapacheorgsolrSolrj This product contains RequireJS version number 220 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomjrburkerequirejsblobmasterLICENSE The source code for this software is available from httprequirejsorgdocsdownloadhtml

This product contains Apache ActiveMQ version number 5132 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorg

This product contains Apache NMS version 172 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorgnms

This product contains Apache Commons DBCP version number 122 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpscommonsapacheorgpropercommons-dbcp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 305

Copyright

This product contains OWASP Encoder version number 12 which is licensed under the BSD license The license can be downloaded from httpsopensourceorglicensesBSD-3-Clause The source code for this software is available from httpswwwowasporgindexphpOWASP_Java_Encoder_Project

This product contains Narayan version number 5213Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpnarayanaio 0

This product contains Logback version number 113 which is licensed under the EPL and LGPL licenses version numbers 10 and 21 The license can be downloaded from httplogbackqoschlicensehtml The source code for this software is available from httplogbackqosch

This product contains JBoss Weld version number 233Final which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20The source code for this software is available from httpweldcdi-specorg

This product contains IronJacamar version number 132Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpwwwironjacamarorg

This product contains Hibernate version number 507Final which is licensed under the Apache and LGPL license version numbers 20 and 21 The license can be downloaded from httphibernateorgcommunitylicense The source code for this software is available from httphibernateorgorm

This product contains Apache Tomcat version number 8030 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20 The source code for this software is available from httptomcatapacheorg

This product contains Apache Procrun version number 1015 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpcommonsapacheorgpropercommons-daemonprocrunhtml

This product contains URLRewriterFilter version number 403 which is licensed under the BSD 2-Clause license The license can be downloaded from httpcdnrawgitcompaultuckeyurlrewritefiltermastersrcdocmanual40introductionhtmllicenseThe source code for this software is available from httpwwwtuckeyorgurlrewrite

This product contains FasterXML Jackson version number 266 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpsgithubcomFasterXMLjackson

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 306

Copyright

This product contains Log4net The license for log4net can be downloaded from httpswwwapacheorglicensesLICENSE-20 The source code for this software is available from httpsloggingapacheorglog4netdownload_log4netcgi

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 307

pitney bowes 0 3001 Summer Street Stamford CT 06926-0700

USA

wwwpitneybowescomus

copy 2018 Pitney Bowes Software Inc All rights reserved

  • Table of Contents
  • Overview
    • Overview
    • Template designer
      • About the template
        • Resources
            • EngageOne Server components
              • About Web services
              • Web service descriptions
                • EngageOne administration
                • EngageOne Interactive
                • Interactive document process flow
                  • Selecting a template
                  • Save and submit
                  • Delivering a document
                      • Integrating with EngageOne SOAP
                        • OnDemand
                        • Interactive
                        • Data push processing in EngageOne Interactive
                          • Mapping options
                          • Data push parameters
                          • Accessing services
                          • How mapping works
                          • Data map XML schema and examples
                            • XPath
                              • ElementMap example
                              • ListMap example
                              • RepeatMap example
                                  • EngageOne domains
                                    • User authentication
                                      • WS-Security
                                      • Legacy AuthContext
                                        • Code example
                                          • Obsolete flags
                                              • Data Push error handling
                                                • Code element error types
                                                  • Web services scenario medical insurance data integration
                                                    • Coordinate with template designer
                                                    • Define data push mapping
                                                    • Import data push map
                                                    • Creating the Web services
                                                        • Interactive Document Delivery
                                                        • Sample application
                                                          • Implement Deliver Document sample application
                                                          • Customize sample application
                                                          • Run sample application
                                                            • Notes
                                                                • OnDemand Document Delivery
                                                                  • Ways to authenticate
                                                                    • WS-Security
                                                                    • Legacy AuthContext
                                                                      • XForms
                                                                        • About XForms
                                                                        • XForms processors
                                                                        • XFormSDI Flow
                                                                        • XForms standard files
                                                                          • XHTML presentation file
                                                                          • XML instance file
                                                                          • XML schema file for the interactive data model
                                                                          • XML schema file for the non-interactive Designer data model
                                                                            • Data definition type and attributes
                                                                              • System Data Integration
                                                                                • SDI General Configuration
                                                                                • Using an XML file as a data source
                                                                                  • XML data source diagram
                                                                                  • XMLSystemDataLoader tasks
                                                                                    • Using the Java callback interface
                                                                                      • Java callback interface process flow
                                                                                        • Feature support for System Data Integration
                                                                                          • XForms model example
                                                                                            • Integration option 1 ndash XML data source
                                                                                              • Enabling the default system data loader
                                                                                              • Designing the template for System Data Integration
                                                                                                • Configure system data load user confirmation
                                                                                                • Configure system data load user confirmation read-only
                                                                                                • Configure system data load without user confirmation
                                                                                                • Preparing the system data XML
                                                                                                  • Example XML answer file
                                                                                                  • InteractiveDataModel element
                                                                                                    • Loading the system data XML
                                                                                                        • Integration option 2 ndash callback interface
                                                                                                          • Configure EngageOne Interactive to use custom system data loader
                                                                                                          • Implement a custom system data loader
                                                                                                            • Steps
                                                                                                            • Notes
                                                                                                              • Custom system data loader
                                                                                                                • Custom data loader interface
                                                                                                                • loadToSchema function
                                                                                                                • loadToView function
                                                                                                                • loadToInstance function
                                                                                                                  • Error handling
                                                                                                                    • SystemDataLoaderException class ndash custom fields
                                                                                                                      • errorcode
                                                                                                                        • systemDataLoaderMessagesproperties sample
                                                                                                                          • params
                                                                                                                          • result
                                                                                                                          • message and cause
                                                                                                                            • SystemDataLoaderException constructor signature
                                                                                                                              • Sample implementation
                                                                                                                                • Compiling and packaging custom system data loader
                                                                                                                                • Configuring EngageOne Interactive system data settings
                                                                                                                                  • Additional features in SOAP
                                                                                                                                    • Trusted Connection
                                                                                                                                    • Template search
                                                                                                                                      • Searching templates by template property
                                                                                                                                        • Java sample
                                                                                                                                        • C sample
                                                                                                                                          • Searching templates with sorting and pagination
                                                                                                                                            • Java sample
                                                                                                                                            • C sample
                                                                                                                                              • Searching templates by template metadata
                                                                                                                                                • Java sample
                                                                                                                                                • C NET sample
                                                                                                                                                • Supported metadata field types
                                                                                                                                                  • Java sample
                                                                                                                                                  • C NET sample
                                                                                                                                                    • Write delivery information
                                                                                                                                                      • Write delivery information process
                                                                                                                                                        • Steps
                                                                                                                                                            • Managing the work queue
                                                                                                                                                              • Retrieving work items
                                                                                                                                                              • Retrieving work items with pagination
                                                                                                                                                              • Retrieving work items with sorting
                                                                                                                                                                • Updating work items
                                                                                                                                                                  • Updating the document delivery option
                                                                                                                                                                  • Updating work item status
                                                                                                                                                                  • Updating work item comments
                                                                                                                                                                    • Reassigning a work item
                                                                                                                                                                      • Retrieving document assignees
                                                                                                                                                                      • Reassigning a document
                                                                                                                                                                        • Deleting a work item
                                                                                                                                                                          • Perform a document delete
                                                                                                                                                                              • EngageOne notifications
                                                                                                                                                                                • Overview
                                                                                                                                                                                • Notification components diagram
                                                                                                                                                                                  • Diagram details
                                                                                                                                                                                    • Topics and queues
                                                                                                                                                                                    • Configuration settings
                                                                                                                                                                                      • Configuration settings (cont)
                                                                                                                                                                                        • Messages
                                                                                                                                                                                          • Notification message common properties
                                                                                                                                                                                            • Communication messages
                                                                                                                                                                                              • Communication published actions
                                                                                                                                                                                                • Batch messages
                                                                                                                                                                                                  • Accumulated batch messages
                                                                                                                                                                                                  • Non accumulated batch messages
                                                                                                                                                                                                    • Workflow messages
                                                                                                                                                                                                    • Consuming notification messages
                                                                                                                                                                                                      • Consume messages from an ActiveMQ queue or topic
                                                                                                                                                                                                        • Using other JMS implementations
                                                                                                                                                                                                          • Using a custom JMS connection factory
                                                                                                                                                                                                            • Sample message consumers
                                                                                                                                                                                                              • The comparison adapter plug-in
                                                                                                                                                                                                                • The custom plug-in implementation
                                                                                                                                                                                                                • Example implementations
                                                                                                                                                                                                                  • DocBridgereg Delta
                                                                                                                                                                                                                  • Simple comparison plug-in
                                                                                                                                                                                                                  • Command line adapter implementation
                                                                                                                                                                                                                    • Plug-in Installation and configuration
                                                                                                                                                                                                                      • Appendix A - Editor methods
                                                                                                                                                                                                                        • LoadContents
                                                                                                                                                                                                                        • SaveContents
                                                                                                                                                                                                                        • SpellCheck
                                                                                                                                                                                                                        • IsComplete
                                                                                                                                                                                                                        • IsModified
                                                                                                                                                                                                                        • GetVersion
                                                                                                                                                                                                                          • Appendix B - SOAP API
                                                                                                                                                                                                                            • Identifiers
                                                                                                                                                                                                                            • Search filter
                                                                                                                                                                                                                            • Promotion service
                                                                                                                                                                                                                              • createImportAssetsJob()
                                                                                                                                                                                                                              • getImportAssetsJob()
                                                                                                                                                                                                                              • createExportAssetsJob()
                                                                                                                                                                                                                              • getExportAssetsJob()
                                                                                                                                                                                                                              • getImportPreview()
                                                                                                                                                                                                                              • getAssetDependencies()
                                                                                                                                                                                                                                • Folder service
                                                                                                                                                                                                                                • Data push service
                                                                                                                                                                                                                                • Delivery management service
                                                                                                                                                                                                                                • Dictionary service
                                                                                                                                                                                                                                • Domain service
                                                                                                                                                                                                                                • Editor service
                                                                                                                                                                                                                                • Keymap service
                                                                                                                                                                                                                                • Metadata service
                                                                                                                                                                                                                                • Request status update service
                                                                                                                                                                                                                                • Security service
                                                                                                                                                                                                                                • Template service
                                                                                                                                                                                                                                • Workitem service
                                                                                                                                                                                                                                • Attachment service
                                                                                                                                                                                                                                • Workflow service
                                                                                                                                                                                                                                • Delivery service
                                                                                                                                                                                                                                  • Upgrading 3X to 4X SOAP services
                                                                                                                                                                                                                                    • Licensing changes
                                                                                                                                                                                                                                    • Security changes
                                                                                                                                                                                                                                      • Authentication with WS-Security
                                                                                                                                                                                                                                      • Role and access right enforcement
                                                                                                                                                                                                                                      • Role and access rights by service
                                                                                                                                                                                                                                        • WorkItem approval process not supported
                                                                                                                                                                                                                                        • DataPushServicemapData not supported
Page 5: EngageOne v4.4.8 Programmer's Reference Guide

Overview

Overview

Document templates and optional content objects are defined by the template designer in a core application called Designer and managed in the content repository These programs are made available to front-office users through a Web-based interface This interface allows users to create and modify a document in a controlled manner and distribute documents through various delivery channels as required

The EngageOne Interactive Web application uses the services provided by the EngageOne Web services interface to access the server functions of EngageOne

Template designer

Document templates are created by a template designer a user who defines the document and its interactions in Designer

A template consists of a traditional publication design along with interactive data definitions which describe the front office user interactions required to complete a document from that template

This involves designing the overall template and defining

bull The data prompts included in the document using the Interactive Editor bull Paragraph and content selection using optional content selections (Active Content) bull Free-form text to override content protection using editable paragraphs

For more information about these functions see the Designer Userrsquos Guide

The template designer allows the user to edit or enter free text as required in an EngageOne document design by selecting a section of text in a paragraph object and defining the text as editable Any text marked as editable can be changed by the user Text that is not marked as editable will be protected

In addition to the basic template the template designer can create optional content Property values are defined enabling them to be conditionally placed in an Active Content Group When Active Content is marked as interactive the user is dynamically presented with content choices to help them complete their document

Once the EngageOne template has been designed and data fields defined the template is named and published for EngageOne The XForm files that define the documents data model are included in the templatersquos Zip file

The process of importing these files into the EngageOne content repository using the EngageOne Administration client is called Template deployment

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 5

Overview

The interactive data model is defined and exposed using the W3C XForm standard The XForm can be used by the system integrator to push system data into the interactive document

Content repository

The content repository provides file storage and version control for EngageOne It houses the templates used to create documents supporting files needed for document composition and the document instances waiting for delivery

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 6

Overview

About the template

The template manifest (template_masterxml) describes template attributes and contents

The template manifest is made up of the following

Subfiles

The Subfiles section contains a list of files in the template Zip file and specifies each file type

Template composition

HIP files contain design layout logic and other resources required for generating publications These files are used by Generate

There are two types of HIP file publications and independently publishable active content

HIP

Publication files contain design layout and logic These files are used by the Interactive Editor

There are two types of PUB file template publications and independently publishable active content

PUB

XForms define electronic forms for collecting general purpose information XFRM

Instance data file

Initially this file contains default field values All values entered by the user will be saved in this file Free form text is stored in the HIP and PUB files not the instance file

INST

The instance file schema contains standard schema nodes and attributes The schema ensures data returned in the instance file is well-formed the right type and meets defined field criteria

SCHEMA

Image file required by the editor for display in the template IMG

XML representation of the Designer Publication ldquoSample Datardquo whether the original data is keyed data (for example single value decomposition) delimited (for example comma separated values) or on-demand XML The DATAMODEL file type appears only for non-interactive templates

DATAMODEL

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 7

Overview

Template composition

PREVIEW

PROMPTLOGIC

THUMBNAIL

PDF file appears for both interactive and non-interactive templates where Designer Publish for EngageOne has successfully generated a PDF ldquopreviewrdquo example of the Designer Publication

The PREVIEW file is generated using ldquoemergency replacementrdquo data where the Designer Publication data is incomplete and may not reflect the completed document PREVIEW file is available for the Interactive user to view a ldquoPreviewrdquo of the Template Document at the start of the ldquoEdit Communicationrdquo process

Files containing information used to prompt for and validate interactive template data when the ActiveX editor is not used

Scaled image representation of the first document Intended as a rough guide to the layout and content of the first document

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 8

Overview

Resources

The Resources section lists the dependencies of the template These can be of the following types

ACTCONT Active content

IMAGE Image used in the template

FONT Font used in the template

The following fragment demonstrates the structure of the template manifest

ltxml version=10 encoding=utf-8gtlt--XML meta file for EngageOne Template--gtltdocument ocmmetafile-vers=ocm-metafile10 ocm-vers=OCM TemplateV10gt ltOcmMetadatagt ltdocumentClassgt ltmetadata-field fieldName=Publish Date fieldValue=05-May-2009

defaultValue= fieldType=text gtltmetadata-field fieldName=Published By fieldValue=Administrator

defaultValue= fieldType=text gtltmetadata-field fieldName=Design Publication Name fieldValue=Basic

defaultValue= fieldType=text gtltdocumentClassgtltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=PUBgttemplatepubxltFilegtltFile type=XFRMgtd79f96b60b2a48ee9f59c8bed5655f86xformltFilegtltFile type=INSTgtd79f96b60b2a48ee9f59c8bed5655f86xmlltFilegtltFile type=SCHEMAgtd79f96b60b2a48ee9f59c8bed5655f86xsdltFilegtltFile type=IMGgtc52767b2d1824366b522589d550cb297pngltFilegtltSubfilesgtltResourcesgt ltRes type=ACTCONT name=Basic

guid=e06d8fc2009642ddb2740495af6bf785 gtltRes type=FONT name=Arial 11pt

guid=24e474cc2baa434cb7239457b6b90443 gtltRes type=IMAGE name=logobmp

guid=c52767b2d1824366b522589d550cb297 gtltResourcesgtltInputsgtltHIP path= gtltActiveContent path= gtltInputsgtltOcmMetadatagtltdocumentgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 9

Overview

EngageOne Server components

The Web services layer

bull Exposes EngageOne communication services to a custom built front office Web application or to the EngageOne Web application

The Business layer

bull Document management - template storage and retrieval (including version control) and work queues (document instance storage and retrieval)

bull Security management - supports direct integration with LDAP and Active Directory for user and group lists

bull Delivery Services - defines delivery channels and provides services to generate draft and final copy output

bull Event Monitor - monitors system health and tracks system activities Tracking information can be used for reporting

For example a report can specify how many times a template is used or how quickly a template is processed

bull Delivery channels - EngageOne delivery channels include print fax email SMS and archive

Document instances can be submitted for real-time delivery to a local printer

Output can be queued for EngageOne batch processing

About Web services

The EngageOne server exposes most of its API via Web services EngageOne Web services enable custom application integration with EngageOne server on any development platform supporting Web services

Components Requirements

Support for various bindings (SOAP 11) SOAP and Web services

Axis 2 or JAX-WS (recommended)

At least custom XML

Java clients

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 10

Overview

Components Requirements

Microsoft Windows Communication Foundation Framework

NET clients

Note Not all EngageOne Server Web services are WS-I compliant

bull There is an issue with MTOM attachments support using Axis2 as a client

In order to work around this issue updated client stubs are provided on the installation media under the samples folder These client stubs accommodate and correctly parse MTOM attachments If you use Axis2 and wish to use MTOM attachments you may opt to use these stubs

bull The services will continue to work without MTOM attachments The advantage to MTOM attachments is they can work with larger file sizes

Web services are backward compatible and client code should not need to be changed Any auto-generated client stub code based on a previous Web service release should be regenerated against the new Web services definitions (WSDLs)

Services are provided that allow a third part application to complete document flow starting from creation up to delivery

The diagram below shows the server components exposed as a Web service via an adapter The diagram details the exposed Web services a custom application could use to integrate with EngageOne

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 11

Overview

Web service descriptions

The following details EngageOne Web services

Delivery Management Service - search delivery channels and devices

Delivery service - work item preview and work item distribution

Dictionary service - search speller XML file

Domain service - search domain information

Editor service - transfer files from the content repository server by resource file ID

Keymap service - import keymaps

Metadata service - manage and retrieve document classes or metadata and configure metadata definitions

Security service - search user roles

Template service - template creation retrieval and search support

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 12

Overview

WorkItem service - work queue related functions

For example retrieve work items work item creation work item assignment approval and rejection functional support

In the EngageOne Web service runtime environment EngageOne Web services work with EngageOne applications using Simple Object Access Protocols (SOAP) In the application server environment a SOAP servlet is deployed as the requestresponse gateway

All EngageOne Web services are published in Web service Description Language (WSDL) format and are described by the following namespaces

Note Namespaces are used to avoid naming conflicts in XML tags ensuring uniqueness

bull httppbcomEngageOnewscommon bull httppbcomEngageOnewsmodel bull httppbcomEngageOnewsdeliveryManagement bull httppbcomEngageOnewsdelivery bull httppbcomEngageOnewsdictionary bull httppbcomEngageOnewsdomain bull httppbcomEngageOnewseditor bull httppbcomEngageOnewskeymap bull httppbcomEngageOnewsmetadata bull httppbcomEngageOnewssecurity bull httppbcomEngageOnewstemplate bull httppbcomEngageOnewsworkItem

EngageOne WSDL files are generated from the EngageOne Web service Java Interface

WSDL example files are included in the distribution media ltrelease-distributiongtsamplessoapwsdl

EngageOne administration

The EngageOne administrator uses a Web application to set up and configure the EngageOne environment

The Web application is delivered as part of the standard EngageOne server install

The EngageOne Administration Web interface supports managing folders templates and delivery channels

For security purposes role-based access and user roles are defined in EngageOne Administration Roles can be assigned to individual or a group of LDAP users

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 13

Overview

The EngageOne administer handles domain management license management and system diagnostics

For more details see the EngageOne Administration Guide

EngageOne Interactive

EngageOne Interactive is delivered with the EngageOne Server It provides a browser based interface for front-office workers to create customized documents EngageOne Interactive supports a widely distributed user base including remote users

For more information about working with EngageOne documents see the EngageOne Interactive Userrsquos Guide

In many cases a custom designed application might be more appropriate for addressing your business needs

If preferable to a fully featured implementation the Web services interface allows integration between EngageOne and your existing business systems

For more information about building your own interactive application see Integrating with EngageOne SOAP

Interactive document process flow

Note integration is not supported in this version of EngageOne Server workflow

The process flow starts with EngageOne fulfilling a request for a document in real time requiring user interaction to complete the request Data definitions are embedded in a template and create an underlying XForm The XForm is used to drive the prompts which gather data required to complete the document

Business driven data is retrieved or provided by your system integration program from the appropriate source

For more information see Integrating with EngageOne SOAP and System Data Integration

The following diagram illustrates the process flow

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 14

Overview

Selecting a template

A custom application would use the TemplateService Web service

The template service collects a list of templates from the content repository and presents the templates to the user All templates have a template ID which is used by all other calls

Templates can be identified by name Keep in mind that the template name is not unique and a search by name could return multiple templates

bull A document instance is created from a template by the editor The XForm is pushed to the custom system integration program which parses system attributes and populates system fields

For example the system may have executed an address lookup and populated form information The XForm is returned to the calling application for user interaction

Note a custom built Web application must adhere to the specification for interactive data prompt display Front end users can manually enter data for document completion

Editing is handled through

bull Form fields (generated from XForms or by the system integrator) bull The Interactive Editor component (supplied with EngageOne server)

Edits are stored in the answer file where they can be accessed by Generate when composing the final output documents Edits can be sent to the delivery process automatically without being saved

For more information see Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 15

Overview

Save and submit

When a document instance is saved the system data interactive input delivery channel selections and any other relevant information is saved in an answer file

The answer file is passed back to the EngageOne repository by the WorkItemService and saved as a new revision of a permanent document instance

The completed document is submitted

The reference to the permanent document instance and version is sent to the Document Server for final delivery

The document revision and template revision are referenced by the Document Server and any change will not affect what is delivered to the user The user may choose from the templates delivery options

Delivering a document

The Document Server receives delivery requests

The requests are queued and a job number is returned to the calling application The job number can be used for future requests about job status error tracking and audit information

The system queries the EngageOne server for available delivery channels

Available delivery channels are returned by the DeliveryManagementService Web service call

Returned data is filtered by available channels set up in the template configuration and by EngageOne Document server permissions

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 16

2 - Integrating with EngageOne SOAP This section provides an overview of using EngageOne Server Web services to integrate with other business systems

In this section

OnDemand 18 Interactive 18 Data push processing in EngageOne Interactive 18 Interactive Document Delivery 32 Sample application 33 OnDemand Document Delivery 36

Integrating with EngageOne SOAP

OnDemand

Isolated services called by customer systems without an end user

Interactive

Graphical interfaces supporting stage by stage integration of EngageOne Server into existing tools and workflows

Data push processing in EngageOne Interactive

EngageOne Server includes an optional data push method This method can provide customer data that can be used to generate interactive documents

Data push works by pushing an XML data structure from your business systems to the EngageOne Server where it is ready for document instance creation The XML data structure is pushed to EngageOne Interactive using a Web service request

Data push can be used in conjunction with system data integration or in its place if the following requirements are met

bull You have no data to populate for drop-down lists free form text fields and any associated fields specified as key fields or visible on the XForm in your template

bull The data you push is complete bull Mapping is complete

To accomplish this create map files in an XML editor then import to EngageOne Server

Data push passes the data in any defined format then maps with one of the following options

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 18

Integrating with EngageOne SOAP

Mapping options

With a Push User

Without a Push User

Data push parameters

The parameters are

bull userId - user name

With a Template

bull Task set to ACTIVE_NEW status

bull User is automatically assigned

bull Work item is automatically created

bull Task set to ACTIVE_NEW status

bull Interactive prompts for user assignment

bull Work item is automatically created

Without a Template

bull Task set to NEW status bull User is automatically assigned bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull Task set to NEW status bull Interactive prompts for user assignment bull Pushed data is encapsulated into a new document instance when Create Document is clicked and a template is selected

bull password - userId password bull pushUserId - ID used to assign the task (optional) bull domainName - EngageOne domain name bull pushDataXML - source XML pushed data pushed bull mapId - data map identifier bull Template identifier - EngageOne Interactive template identifier (optional)

You can also pass authentication data for a user ID to push data on behalf of another user In this case the pushed data is associated with a Work Item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 19

Integrating with EngageOne SOAP

Accessing services

To create an instance of the stub you will need to know the Web service endpoint

Typically an EngageOne Web service endpoint is in the following format

httpltengageone-server-hostgtltserver-portgtEngageOneWSltweb-service-namegt

Where

bull ltengageone-server-hostgt the host name where EngageOne server is deployed

bull ltserver-portgt the port where the EngageOne Server Web services are accessible

bull ltweb-service-namegt the EngageOne Web service to invoke

How mapping works

The data map XML schema depends on your business data structure

Data maps are based on XML files that are loaded in EngageOne Server These data maps describe the data element associations in business data during a data push event to the corresponding answer file entries The data mapper uses data maps to map element names from a single data map for multiple EngageOne data formats However a single element name can only be mapped in one way

There are three methods for mapping data element mapping list mapping and repeat mapping

Important information about data maps

bull Map names are independent of the XML file used to import the XML structure bull Map files can be stored anywhere on your network and imported using the Data Map tab bull Data map names are unique due to the way map IDs are formed and must be unique within a domain

The diagram below shows how the data mapper works with data maps and answer files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 20

ltPubllcaliongt

lt lrs ~am gtltlrs ~ m gt

ltL slh ~egtltL s t amegt

ltmiddotr1 Llegtlt11 tlegt

ltPu lie tlongt

ltdat gt

Data Pust XML Mapper

le

ltEublicacion

ltvar name foo gtbarltvargt

ltvar name= blah gtduhltvargt

ltvar n me= huh gtltv rgt

Map File

(xyuml)

ltFirstNam gtbarltFirstNamegt lt~astNarn gtduhlt~ascNamegt

ltTitlegtltTi l gt

ltddtdgt ltPublicationgt

ltJaLaP sh 1 p ma p d=~xyzbullgt ltL slMap am = daLadaL xpaLh=lt na n gt

ltE menu-iap srcxraL = var- r1am = roo La~~ LXPaL = F rsLNam gt ltF m nLMap srcXPaL = va- am= lc1h larg tXPaL = LclSL Nam gt ltEemencMap srcXPa h var ~amec h middoth arge xea h l~ _e gt

ltla a stMapgt

Integrating with EngageOne SOAP

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 21

Integrating with EngageOne SOAP

Data map XML schema and examples

A good understanding of the data map XML schema is key to integrating data push methods between your business systems custom applications EngageOne Interactive and EngageOne Server

The data map XML schema uses XPath annotation for determining source and target elements in pushed XML data

The data map XML schema is located in

ltrelease-distributiongtsamplesdata-map-schema

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 22

Integrating with EngageOne SOAP

XPath

XPath is a language designed for finding information in an XML document

There are three ways to use XPath to determine the source and target elements for data mapping The source element comes from the pushed XML data specified to the Web service or the EngageOne Interactive URL The target element is the template answer XML file

The three types of mapping in the XML schema are ElementMap ListMap and RepeatMap

bull ElementMap maps a single data element from pushed XML data to a single element in an answer XML file

bull ListMap maps multiple data elements from pushed XML data to multiple elements in an answer XML file

bull RepeatMap maps repeating data elements from pushed XML data to repeating elements in an answer XML file

A single map XML file can have zero or more element maps zero or more list maps and zero or more repeat maps

Nest ElementMap ListMap and RepeatMap elements to define the source and targe file hierarchy

Using XPath annotation you can write expressions for the source element in the pushed XML data and the target element in the answer XML file

Note If you use namespaces in your pushed XML data you must declare standard XML namespaces in your data map

ElementMap example

ltpElementMap srcXPath=datadatum[name=String 1]targetXPath=InteractiveDataModelPublicationString2gt

The srcXPath attribute contains the XPath expression that identifies the source element in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination element in the answer XML file

In this example the source element is identified as the ltdatumgt tag where the name attribute has the value lsquoString1rsquo

The target element is identified as the ltString2gt element under the ltPublicationgt section of the answer XML file

ListMap example

ListMap is more complex

For example

ltpListMap name=datadatum xpath=name gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 23

Integrating with EngageOne SOAP

In this example the XPath expression ldquodatadatumrdquo identifies multiple elements in the pushed XML data For each of these elements the name attribute identifies the target element name in the answer XML file

For example if the pushed XML data had the following

ltdatagt ltdatum name=rdquoString1rdquogtFredltdatumgtltdatum name=rdquoString2rdquogtJonesltdatumgt

ltdatagt

The above example would identify both ltdatumgt elements from the pushed XML data It would copy ldquoFredrdquo into the ltString1gt element of the ltInteractiveDataModelgt of the answer XML file and copy ldquoJonesrdquo into the ltString2gt element of the ltInteractiveDataModelgt

Using a single ListMap you can copy over multiple pieces of data

RepeatMap example

The third approach is to use RepeatMap The RepeatMap element allows you to define a set of repeating elements from the source XML file and copy them to repeating elements in the target XML file

For example

ltRepeatMap srcXPath=mydatadata1targetXPath=InteractiveDataModelPublicationNestedRepeatingGroupParentgt

ltElementMap srcXPath=name targetXPath=NamegtltRepeatMap srcXPath=data2 targetXPath=NestedRepeatingGroupChildgtltElementMap srcXPath=time targetXPath=TimegtltElementMap srcXPath=num targetXPath=NumbergtltRepeatMapgt

ltRepeatMapgt

The srcXPath attribute contains the XPath expression that identifies the source repeating elements in the pushed XML data The targetXPath attribute contains the XPath expression that identifies the destination repeating elements in the answer XML file

Inside RepeatMap nested ElementMap and ListMap are used to map data elements RepeatMapcan be nested as well Typically the XPath expressions used by a nested map are relative

In this example in the srcXPath of the first ElementMap name is relative to the srcXPath of its parent RepeatMap mydatadata1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 24

Integrating with EngageOne SOAP

EngageOne domains

Note as of the 4X version of the software domains are known as communities

EngageOne separates data into domains A domain represents a line of business department or section in a business environment

Domains are configured by a system administrator at installation time Once installed they can be managed and adjusted System users will be assigned various roles on a per-domain basis

When integrating with SOAP services the domain the username and password must be included in the request

User authentication

EngageOne Server supports two authentication mechanisms

bull WS-Security - industry and SOAP standard

The recommended authentication method

bull AuthContext - custom element in the SOAP request

This authentication method has been deprecated It is used for backwards compatibility with previous versions of the software

WS-Security

WS-Security (Web Services Security) is an industry standard that addresses security when data is exchanged as part of a Web service This authentication is implemented on all EngageOne Server SOAP services at the userid and password level

Legacy applications may choose not to use this type of authentication authenticating instead through the backwards-compatible AuthContext mechanism described below

New applications should leverage this authentication and disable the AuthContext mechanism

With WS-Security use the ltcomcommunitygtltcomcommunitygt element for the domain request

Legacy AuthContext

Every operation will include the AuthContext element AuthContext needs to contain UsernameToken or SessionToken elements

UsernameToken and SessionToken are mutually exclusive If the request contains SessionToken UserNameToken cannot be specified

Note When a request does not include the SessionToken element the server will expect the UsernameToken element to check authentication If the UsernameToken is valid the

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 25

Integrating with EngageOne SOAP

server will generate a new SessionToken that will be passed back to the client Subsequent requests can use the returned SessionToken instead of the UsernameToken

By default the SessionToken will expire after 30 minutes The timeout length can be configured via the session_timeout tag of the ltinstallation_rootgtcoreconfconfig-settingsxml file after EngageOne has been installed

If the SessionToken has expired a SOAP fault will occur with error code -6 Repeating the call that failed with a valid UsernameToken will allow the call to succeed and generate a new SessionToken The new SessionToken will be valid for an additional 30 minutes

Code example

ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongt optionalltcomondemandgtfalseltcomondemandgt optional

ltcomUsernameTokengtltcomauthContextgt

Obsolete flags

onDemand

The onDemand element was used to control licensing options in previous versions of the software We recommend non-legacy customers treat this element as optional and avoid using it

transientSession

The transientSession element was used to indicate the current call should not create a persistent session We recommend non-legacy customers treat this element as optional and avoid using it

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 26

Integrating with EngageOne SOAP

Data Push error handling

Error messages are contained in the SOAP Web service detail response Error messages are localized based on the server locale

To support localized error messages the SOAP details contains an errorCode element the client application can use to translate the error message This is based on the error code returned

Following is an example of a SOAP response from the server containing an error

ltxml version=10 encoding=UTF-8gtltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeader gtltenvBodygtltenvFaultgt ltfaultcodegtenvServerltfaultcodegtltfaultstringgtAuthentication failureltfaultstringgtltdetailgt ltServiceFault xmlns=httppbcomEngageOnewscommongtltcodegt-1ltcodegtltmessagegtAuthentication failureltmessagegtltServiceFaultgt

ltdetailgtltenvFaultgtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 27

Integrating with EngageOne SOAP

Code element error types

The code element in the SOAP fault is mapped to the following error types

Code Error Type

-1 General failure

-2

-3

Illegal argument

Invalid identifier

-4 Missing required argument

-5

-6

Unsupported operation

Session timeout

Message

bull failed to find Delivery Item

bull failed to deliver document bull failed to delete Delivery Item

bull failed to preview Template

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to preview WorkItem

bull failed to preview Document bull failed to search for Delivery Items

bull failed to resume Delivery Item

bull failed to suspend Delivery Item

bull failed to update Delivery Item

Never returned

bull failed to load subfiles (for example HIP) bull failed to find template

bull failed to find workItem

bull failed to find workItem preview

bull failed to preview because of current status (active-new or active-incomplete)

bull empty request bull missing delivery item identifier delivery options identifier template authContext workItemID HIP Property answer

Never returned

expired userContext

The message element is a string that explains the error details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 28

Integrating with EngageOne SOAP

Web services scenario medical insurance data integration

You work for an insurance provider as a data integration analyst You have been tasked with developing a custom system data integration program that collects key information about clients and additional client data from various back-end systems

This information populates an XML instance that is passed to the EngageOne server for document composition When data is pushed to the server the template and other identifiers are specified When the end-user launches EngageOne Interactive the work item based on the specified template is available

The first document composition activity that will be supported is email notification to plan members or their dependents who may be subject to coordination of benefit requirements

The following is a sample of data from the data source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 29

Integrating with EngageOne SOAP

Coordinate with template designer

The next step is to coordinate with the template designer and define the Interactive Data Model field names for associated document composition template

Typically either the data integration analyst provides the field names to the template designer or the template designer provides a list of field names to the analyst You will also need authentication information for the EngageOne server

Define data push mapping

Based on field name assignments the next step is to map the fields from your data source to the Interactive Data Model field names

The mapping is defined in a data push map file The mapping function allows any valid XML input structure to be mapped to the Interactive Data Model XML structure

Because of the structure of your input data and design of the template you decide to use ElementMap to map a single data element from the pushed XML data to a single element in an answer XML file

The field names received from the template designer are the same as the field names in the source data except the template designer is using a field named COB to represent the Coordination_of_Benefits data from the source

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 30

Integrating with EngageOne SOAP

Import data push map

Name the map file MyDataPush_COBxml

You import the mapping file into EngageOne Administration

For more information see the EngageOne Administration Guide

Creating the Web services

Using Data Push Web services you can build a custom integration application and create thefollowing

1 Use any JAX-WS compliant client framework such as Axis2 to create Web service client stubs based on the pushData Web service

2 Use the client stubs to formulate a pushData request to pass the Data Push XML data to EngageOne Server with the template identifier and map name (mapId in the service definition)

3 Invoke the Web service using the client stubs you created 4 Handle the response from the Web service invocation 5 Test the custom system data integration application by passing a test XML instance Ask the

template designer or an EngageOne Interactive user to log in and verify that the work item is available

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 31

Integrating with EngageOne SOAP

Interactive Document Delivery

The most important feature of any interactive document delivery application is the ActiveX editor The ActiveX editor allows free form communication editing with a high degree of fidelity between the view presented while editing and the finished communication The editor is embedded in EngageOne Interactive and is available on the installation media

bull The ActiveX editor requires services to retrieve and save the associated files

The deliver-document sample application demonstrates how this can be achieved

bull If you build deploy and run the sample application you will progress through a series of pages

The first page prompts you to choose a lsquothemersquo for the pages

bull Then a login prompt displays

Once logged in choose a template and a delivery option from the two lists

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 32

Integrating with EngageOne SOAP

Sample application

The sample application included in the release distribution is a simple Java Server Faces application

This application uses the Mojarra implementation PrimeFaces for the UI components and a Java servlet to interact with the ActiveX control

The sample application is made up of two parts

1 The view (XHTML files) define the display elements

Included with the view files are controllers (java files) that define the interaction between the user and the views

2 The Java servlet provides the ActiveX editor with the required content then saves changes This functionality is provided by GET and PUT methods respectively

bull In the sample application the EditorServletjava file defines the servlet and its GET and PUT methods

bull The GET method takes templateId WorkItemId and domain name as URL parameters

These parameters are used to make SOAP calls to the EngageOne Server and retrieve the required files The retrieved files are zipped and passed to the ActiveX control

bull The PUT method takes the modified files as a Zip and passes the contained file to the EngageOne SOAP services These are written back to the EngageOne Server

bull The BaseURL and serverURLs will need to be defined for your implementation of the servlet

You can implement the servlet for your application in the way shown in the sample file or you can select a different approach In either case you will need to provide service end-points for the PUT and GET methods when launching the ActiveX control

Implement Deliver Document sample application

The sample application provides an example using EngageOnes SOAP services to query existing objects such as templates and delivery options These objects will be used with user input to generate documents that can be viewed or download through a browser

Note

bull These instructions are taken from a READMEtxt file located in the installation files in the samplesdeliver-document directory

bull The deliver_documentwar file is included in the installation files

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 33

Integrating with EngageOne SOAP

Quick start

Use the deliver_documentwar file

Copy deliver_documentwar to the webapps directory of your Tomcat server

Note

bull deliver_documentwar may work with other servers It has been tested on Tomcat bull For best results use a clean copy of Tomcat with no other Web applications installed

Customize sample application

1 Edit the webWEB-INFdeliver-documentproperties file Replace compbsamplessoapurl with the server URL The Web application may be run from any server

2 Build the package with mvn clean package See httpsmavenapacheorgguidesintroductionintroduction-to-the-lifecyclehtml for more information about using Maven A deployable WAR file will be located targetdeliver_documentwar

3 Copy the WAR file to the webapps directory of the Tomcat server

Run sample application

1 Restart the Tomcat server Access the sample application httplthostname8080gtdeliver-documentLoginxhtml

bull Change lthostname8080gt above to match the correct hostname bull The Settings page displays

2 If appropriate choose a theme 3 Log in to the application

The sample application is ready to be used

Notes

bull You may set the property compbsamplessoapurl as a JVM property (-D) to override the server location

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 34

Integrating with EngageOne SOAP

bull This sample application reference shows how to use EngageOne services in a modern application environment Improvements can be made in the area of session management security etc Please follow your own best practices

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 35

Integrating with EngageOne SOAP

OnDemand Document Delivery

The most common goal for this use case is to create a single communication from a template This is illustrated by walking through an example for generating a PDF

At the highest level the steps are load a template load a delivery option deliver the document

At a slightly lower level the programmer will need to manage

bull Authentication for all calls bull Manipulation of the template files on disk bull A mechanism for the customization of a template into a document bull Any post-delivery activities (for example saving a delivered PDF to disk)

Before a document can be delivered the following must exist a domain a template and a delivery option

Note These prerequisites are not covered in the sample application

Ways to authenticate

There are two ways to authenticate

WS-Security

The recommended authentication method This type of authentication is implemented in all EngageOne Server SOAP services at the userid and password level

Legacy AuthContext

This authentication method has been deprecated

For details on authentication see User authentication

Typically a template will be retrieved for instantiation via the templateServicesearchTemplates call This object contains the files for a communication based on that template All data will necessarily be empty or set to defaults

Data entry in a communication can be customized in many ways

For the included sample application the files are saved to disk and a user is instructed to edit them manually Then the files are loaded (in this example from disk) into the Template field of a DeliverDocument object

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 36

Integrating with EngageOne SOAP

While it is not feasible to reproduce all relevant code from the sample project in this document what follows is a short excerpt edited for clarity It demonstrates the calls to deliver a document and save the PDF generated once the template customer data and delivery option have been prepared

response = deliverydeliverDocument(doc)getDeliveryRequest()items = responsegetDeliveryItems()getDeliveryItem()item = itemsget(0)saveFile(path item)

The DeliveryItem object passed here to saveFile will return an InputStream via getInputStream and can be saved to a file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 37

3 - XForms EngageOne defines the data model for a template using the World Wide Web Consortium (W3C) XForms standard It is intended to provide a flexible device-independent mechanism for collecting information from users in a primarily Web-based environment

In this section

About XForms 39 XForms processors 41 XFormSDI Flow 42 XForms standard files 43 Data definition type and attributes 62

XForms

About XForms

The following are primary benefits of XForm ndash for more details see wwww3orgMarkUpForms2003xforms-faqhtml

bull XForms has been designed to allow much to be checked by the browser such as types of fields being filled in that a particular field is required or that one date is later than another This reduces the need for round trips to the server or for extensive script-based solutions and improves the user experience by giving immediate feedback to what is being filled in

bull All dates in the WSDLs should be using the XML Schema date datatype which defines a standard date format YYYY-MM-DD This is not a propriety implementation For more information you can refer to the specification at wwww3orgTRxmlschema-2date

bull XForms is properly integrated into XML it is in XML the data it collects in the form is XML it can load external XML documents as initial data and can submit the results as XML Including the user in the XML pipeline means you can have end-to-end XML right up to the users desktop

bull XForms uses a number of existing XML technologies such as XPath for addressing and calculating values and XML Schema for defining data types This has a dual benefit ease of learning for people who already know these technologies and the ability for implementation to use off-the-shelf components to build their systems

bull The same form can be delivered without change to a traditional browser a PDA a mobile phone a voice browser and even Instant Messenger This greatly eases providing forms to a wide audience since forms only need to be authored once

bull It is much easier for the author to create complicated adaptive forms without having to resort to scripting because XForms uses declarative markup to declare properties of values and to build relationships between values

bull XForms has been designed so that it will work equally well with accessible technologies as with traditional visual browsers

XForms greatly improves on the HTML form approach by separating the purpose from the presentation specifically what the form does and how it looks It achieves this separation of concerns by adopting the Model-View-Controller (MVC) pattern

The data to be collected by the form is known as instance data and the XForms model describes the structure of the instance data in addition to constraints on that data and submissions Document navigation workflow auto-fill and pre-fill form applications are supported through the use of instance data The view of the XForm describes the controls to be used and which items of data they are bound to The controller is the XForms processor in use which coordinates events in the system

The fragment below is an XForm page which demonstrates these different entities

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 39

XForms

The instance element serves as a container for the initial instance data These are the fields which the form controls will be bound to When the form is first displayed the values in this XML will be presented as the default values When the form is submitted this XML structure will be updated to contain the new values supplied by the user and the XML posted or otherwise handled accordingly

As an alternative to embedding the instance XML directly into the XForm file the instance element may simply refer to an external XML file using the src attribute XForms originating in EngageOne always point to an external instance XML file

The model element contains bind elements which define constraints on mappings to the instance data and a submission element which defines the action that will be taken when the form is submitted by the user

The presentation elements within the XForm page body contain the controls each of which possess references to the instance data

For more information on XForm technology see the W3C XForm wiki page httpwwww3orgMarkUpFormswiki The XForm Institute also provides an online book containing a comprehensive discussion of this technology at httpxformsinstitutecomessentialsbrowseindexphp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 40

XForms

XForms processors

To integrate with XForms you need to choose an appropriate XForms processor for your application Here is a short list of XForms processors both free and commercial that you may wish to investigate Please refer to their respective sites for specific installation and integration instructions

Orbeon Forms Orbeon Forms (formerly Orbeon Presentation Server (OPS)) is an open source forms solution that handles the complexity of forms typical of the enterprise or government It is brought to standard Web browsers (including Internet Explorer Firefox Safari and Opera) via the Ajax technology with no need for client-side software or plug-ins Orbeon Forms allows you to build fully interactive forms with features that include as-you-type validation optional and repeated sections always up-to-date error summaries PDF output full internationalization and controls like auto-completion tabs dialogs trees and menus Orbeon Forms already supports part of the XForms 11 specification

Jadu XForms allows you create accessible and XML enabled online forms for integration with payment and CRM systems

Open Office XForms is integrated in Open Office

Libre Office XForms is integrated in Libre Office

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 41

XForms

XFormSDI Flow

KEYFIELD NON-KEYFIELD

visible visible 1stXForm 2nd XForm

F F F F SDI is invoked then editor displays

F T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

T F T F User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then editor displays

T T T T User sees keyfields with a Retrieve button User clicks Retrieve SDI is invoked then 2nd Xform displays then editor displays

Rules

1 If any visible fields then display 1st Xform with any keyfields displayed (even if there are no visible keyfields) 2 SDI is always invoked 3 If any visible non-key fields then display 2nd XForm

Data push rules

1 If SDI has not been invoked on a work item created via DP (ie status = Active New) then SDI processing must occur

2 If all key fields are populated via DP then skip 1st Xform (overrides rule 1 above)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 42

XForms

XForms standard files

The XForms standard main components are the files used by the Interactive Editor to drive all user interactions These include an XHTML presentation file XML instance file and an XSD schema definition file These files are used by the Interactive Editor to drive all user interactions and can be used for integration purposes to collect system data from a front-end business system The XForms files can also be opened by a standard XForms processor in order to present a more traditional Web-based eForm data capture interface as part of an application

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 43

XForms

XHTML presentation file

The XHTML presentation file contains the defined fields together with related attributes of the interactive data presented in the EngageOne Interactive Editor during document completion Since this file conforms to the W3C XHTML standard the defined data types and the available attributes are included in the XHTML standards For more information on XHTML visit the W3C Web site

The following is an example of an XHTML presentation file

lt-- XForms and Orbeon Namespaces --gt ltxhtmlhtml xmlnsxhtml=httpwwww3org1999xhtmlxmlnsev=httpwwww3org2001xml-eventsxmlnsf=httporbeonorgoxfxmlformattingxmlnswidget=httporbeonorgoxfxmlwidgetxmlnsxforms=httpwwww3org2002xformsxmlnsxs=httpwwww3org2001XMLSchemaxmlnsxxforms=httporbeonorgoxfxmlxformsgt

lt-- Header section --gt ltxhtmlheadgt ltxhtmltitlegtInteractiveDataModelltxhtmltitlegt

lt-- Xform model section --gt ltxformsmodelgt

lt-- Specifies actual instance fileReplace with actual Instance filename --gt ltxformsinstance src=57861025010e462fa5acbde4fe0ecf90xmlgt

ltndash- This specifies how the results of the form are to be submitted By default it specifies the put mechanism andthename of theinstance file as the action (target file) In addition a submit control must always be added to the view referencing the ID of thesubmission elementReplace with actual instance filename --gt ltxformssubmission action=57861025010e462fa5acbde4fe0ecf90xml id=main_submission method=putgt

lt-- Bind section These bind the interactive data definition to a set of attributes --gt ltxformsbind nodeset=InteractiveDataModelPublicationCustomerName

readonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerAddressreadonly=true() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerCity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 44

XForms

readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerStatereadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCustomerZip readonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationPolicyNumberreadonly=true()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationClaimantNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceSourcereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondenceDatereadonly=false() required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationPhysicialNamereadonly=false()required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationServiceDatereadonly=false()required=true() type=xsdategt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentNamereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationCorrespondentTitlereadonly=false() required=true() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationRecipientreadonly=true() required=false() type=xsstringgt

ltxformsbind

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 45

XForms

nodeset=InteractiveDataModelPublicationDeliveryInformationEmailToAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailFromAddress readonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailSubjectreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationEmailBodyreadonly=false() required=false() type=xsstringgt

ltxformsbind nodeset=InteractiveDataModelPublicationDeliveryInformationFaxNumberreadonly=false() required=false() type=xsstringgt

ltxformsmodelgtltxhtmlheadgt

lt-- XForms View section(XHTML body) --gt ltxhtmlbodygt

ltndash- User interface control for the Interactive Data Definition in the

Model section ndash-gt span style=displaynonegt

ltndash- User interface control for the Interactive Data Definition in the Model section ndash-gt

ltxformsinput ref=InteractiveDataModelPublicationCustomerNamegtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangt

ltndash- Separates controls in XForms browsers or processors for layout purposesndash-gtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegt

ltxformsinput ref=InteractiveDataModelPublicationCustomerAddressgt

ltxformslabelgtltxformslabelgtlt xformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 46

XForms

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerCitygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationCustomerStategtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

ltndash- User interface control ndash-gt ltspan style=displaynonegtltndash- May contain the followingsections Input ndash choice validation is not specified it is only applied to FieldGroup Field and Delivery Information

Select1 ndash used for Single Selection attribute for the specifieddefinition

Select ndash used for Multi-Selection attribute for the specified Definition ndash-gt

ltxformsinputref=InteractiveDataModelPublicationCustomerZipgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPolicyNumbergt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationClaimantNamegt

ltxformslabelgtSelect the claimantltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 47

XForms

ltxformslabelgtFredltxformslabelgtltxformsvaluegtFredltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMarthaltxformslabelgtltxformsvaluegtMarthaltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTylerltxformslabelgtltxformsvaluegtTylerltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtWilmaltxformslabelgtltxformsvaluegtWilmaltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsselect1 appearance=minimalref=InteractiveDataModelPublicationCorrespondenceSourcegtltxformslabelgtSelect the correspondence sourceltxformslabelgtltxformshelpgtltxformshelpgtltxformsitemgt ltxformslabelgtEmailltxformslabelgtltxformsvaluegtEmailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtFaxltxformslabelgtltxformsvaluegtFaxltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtMailltxformslabelgtltxformsvaluegtMailltxformsvaluegt

ltxformsitemgtltxformsitemgt ltxformslabelgtTelephoneltxformslabelgtltxformsvaluegtTelephoneltxformsvaluegt

ltxformsitemgtltxformsselect1gt

ltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondenceDategtltxformslabelgtSelect the correspondence dateltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 48

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationPhysicialNamegtltxformslabelgtType the physician nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinput ref=InteractiveDataModelPublicationServiceDategtltxformslabelgtSelect the date of serviceltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentNamegtltxformslabelgtType your nameltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationCorrespondentTitlegtltxformslabelgtType your titleltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationRecipientgtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailToAddressgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgtltxformsinputgt

ltspangtltxhtmlbrgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 49

XForms

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailFromAddressgt ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailSubjectgt

ltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationEmailBodygtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltspan style=displaynonegtltxformsinputref=InteractiveDataModelPublicationDeliveryInformationFaxNumbergtltxformslabelgtltxformslabelgtltxformshelpgtltxformshelpgt

ltxformsinputgtltspangtltxhtmlbrgt

ltxformssubmit submission=main_submissiongt ltxformslabelgtSubmitltxformslabelgtltxformssubmitgt

lt-- This specifies the submit control for the XForms --gt ltxhtmlbodygtltxhtmlhtmlgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 50

XForms

XML instance file

The XML file is referred to as the instance file because it contains the instance node of the XForms file This file contains the values for the definitions (fields repeating group fields group fields and IDE group fields) ndash see Data definition type and attributes on page 62 This file may initially contain only empty elements for each of the defined fields since values are only written if default values have been specified in the Interactive Data Editor After an eForm has been completed or the Interactive Editor has been used the values the user supplied for each field will be saved to the instance file (Note freeform text is stored in the pub and hip files not the instance file) Since this file conforms to the W3C XML standard the defined data types and the available attributes are included in the XML standards For more information on XML visit the W3C Web site

ltndash- This specifies the IDD title version number of schemaused Namespaces actual Schema fileReplace with actual Schema filename--gt ltxml version=10 encoding=UTF-8 standalone=yes gt- ltInteractiveDataModel xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=57861025010e462fa5acbde4fe0ecf90xsdgt

ltndash- Publication --gt - ltPublicationgt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt ltCustomerNamegtFred JonesltCustomerNamegtltCustomerAddressgt123 High StreetltCustomerAddressgtltCustomerCitygtBelguimltCustomerCitygtltCustomerStategtWIltCustomerStategtltCustomerZipgt53021ltCustomerZipgtltPolicyNumbergt254320982ltPolicyNumbergtltClaimantNamegtFredltClaimantNamegtltCorrespondenceSourcegtFaxltCorrespondenceSourcegtltCorrespondenceDategt2007-12-22ltCorrespondenceDategtltPhysicialNamegtDr JamesltPhysicialNamegtltServiceDategt2007-12-02ltServiceDategtltCorrespondentNamegtyour nameltCorrespondentNamegtltCorrespondentTitlegtyour titleltCorrespondentTitlegt

ltndash- Specifies the Interactive Data Definition with default valueReplace with actual field name and value --gt -ltDeliveryInformationgtltRecipient gtltEmailToAddress gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 51

XForms

ltEmailFromAddress gtltEmailSubject gtltEmailBody gtltFaxNumber gt

ltDeliveryInformationgtltg1private gtltPublicationgtltInteractiveDataModelgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 52

XForms

XML schema file for the interactive data model

The XML schema definition or XSD describes the format of the XML document containing the data This is the file used to generate the Data Format and allows the final document to be generated from the updated instance file The XSD is also a W3C standard For more information on XML schema files visit the W3C Web site

The following is an example of an XML schema definition file

lt-- Namespace and version number of schema and default namespaces --gt ltxml version=10 encoding=UTF-8 standalone=yes gtltxsschema xmlnsxs=httpwwww3org2001XMLSchemaelementFormDefault=qualifiedxmlnsg1=httpwwwg1comOCMSchemagt

lt-- Interactive Data Model --gt lt-- Interactive Data Definition in Schema element format --gt ltxselement name=InteractiveDataModelgt ltxscomplexTypegtltxssequencegtltxselement name=Publicationgt ltxscomplexTypegt

ltxssequencegtltxselement g1keyfield=true g1sysdata=true

g1visible=false minOccurs=0 name=CustomerNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerAddressgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerCitygt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true g1visible=false

minOccurs=0 name=CustomerStategt

ltxssimpleTypegtltxsrestriction base=xsstringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 53

XForms

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=CustomerZipgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=true

g1visible=false minOccurs=0 name=PolicyNumbergt

ltxssimpleTypegt

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ClaimantNamegtltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Fredgtltxsenumeration value=Martha ltxsenumeration value=Tylergtltxsenumeration value=Wilmagtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=CorrespondenceSourcegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxsenumeration value=Emailgtltxsenumeration value=Faxgtltxsenumeration value=Mailgtltxsenumeration value=Telephonegtltxsrestrictiongt

ltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondenceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=PhysicialNamegt

ltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 54

XForms

ltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=ServiceDategt

ltxssimpleTypegtltxsrestriction base=xsdategtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentNamegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=CorrespondentTitlegt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement minOccurs=0 name=DeliveryInformationgtltxscomplexTypegtltxssequence maxOccurs=1gtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=Recipientgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailToAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailFromAddressgtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=EmailSubjectgt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 55

XForms

ltxselementgtltxselement g1keyfield=false g1sysdata=false

g1visible=false minOccurs=0 name=EmailBodygtltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgt

ltxselement g1keyfield=false g1sysdata=falseg1visible=false minOccurs=0 name=FaxNumbergt

ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegtltxselementgtltxssequencegt

ltxsattribute name=Delivery use=optionalgtltxscomplexTypegtltxselementgtltxselement name=g1privategtltxssequencegt

ltxsattribute name=DOC1TREATASSOP type=xsboolean use=optionalgtltxscomplexTypegtltxselementgtltxssequencegtltxscomplexTypegtltxselementgtltxsschemagt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 56

XForms

XML schema file for the non-interactive Designer data model

XML schema file for the non-interactive Designer data model

The Designer file formats supported are

bull Keyed Record bull CSV Data Format bull Custom XML

Keyed Record

EngageOnerequires that Designer provides data format information when publishing a template where the publication implements a keyed record data format A data model file in the form of an XML structure is published with this type of publication along with the XML schema for the data model XML

For Example consider the following keyed record data block

CUSTOMER01001012831MrJohn Lawrence Lawrence 311Bellview Drive Gloucester VA 23061 VAMLIEPO CUSTOMER0207021999080119990831199909031999000178750000000000017875000000 0000020845 MOBILE0100009900000011210000000000011021 LONGDIST0100000495000003500000398400004829 INTERNET0100000000000049950000000000004995NADSL 384k 128k SUMMEND DETAIL00Mobile Service DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000 DETAIL00Long Distance ServiceDETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL0107021999 100P 612-760-2788Minneapolis MN 00008F00000000DETAIL990005600000000

TheXML structure is generated by Designer to represent this data model Note the XML in this example is not complete

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegt

ltSource createdBy=DOC1Data Format Editor version=11date=2011-04-28gt

ltSchemaDefgt ltFileInfogt ltFileFormatgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 57

XForms

ltFixedWidthgt ltRecordDelimitergtCR+LFltRecordDelimitergt

ltFixedWidthgtltFileFormatgtltDefaultHandlinggtltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggtltFileInfogtltDataHierarchygtltRecordKeykey=MOBILE01gt

SVD data is represented by the ltFixedWidthgt tag in above XML structure

CSV Data Format

EngageOne will require that Designer provides data format information when publishing a template where the publication implements a CSV data format The following approach would address the requirements for EngageOne with regard to this format

A data model file in the form of an XML structure would be published with this type of publication along with the XML schema for the data model XML

For example consider the following CSV data block

Key Name Address Zip DRAmountRemarks001Smith101 Princes StreetED1 4DH DR8901Cash charges apply

001 Manish102 Princes StreetWD17 1UE CR5000Transport charges

Thefollowing XML structure would be generated by Designer to represent this data model

ltxmlversion=10 encoding=UTF-8 standalone=nogtltFileDescription xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltSource createdBy=DOC1Data Format Editor version=11date=2011-03-25gtltSchemaDefgt ltFileInfogt

ltFileFormatgt ltDelimitedgt ltFieldDelimitergtltFieldDelimitergtltQuotegtltQuotegtltFirstRowHeadingsgttrueltFirstRowHeadingsgtltRecordDelimitergtCR+LFltRecordDelimitergt

ltDelimitedgtltFileFormatgtltDefaultHandlinggt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 58

XForms

ltDefaultDateHandlingtwoDigitYear=false boundryRule=50gtltDefaultEncodinggtWindows 1252ISOLatin 1ltDefaultEncodinggtltUnavailableFieldDefaultsgt ltUnavailableDateabort=false default=1970-01-01gtltUnavailableNumberabort=truegtltUnavailableStringabort=truegt

ltUnavailableFieldDefaultsgtltDefaultHandlinggt

ltFileInfogtltDataHierarchygtltRecordKeykey=001gt

ltDataHierarchygtltDataStructuregt ltRecordkey=Key descr= hideRecord=true repeatType=Group

maxOccurs=0 minOccurs=0gt ltField name=Key Definition Field import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt07D6A8A528A9964C8E6E9F9075F5649CltFieldKeygt

ltFieldgtltField name= Name import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt0974502326B53548A3BE1BA86E85735BltFieldKeygt

ltFieldgtltField name= Address import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt8B33038F15BB5345B82D8148C562C27DltFieldKeygt

ltFieldgtltField name= Zip import=true required=truegtltStringgt

ltStrLengthgt0ltStrLengthgtltStringgtltFieldKeygt9D0E2B9C4C95F948B7BB829C7A91039FltFieldKeygt

ltFieldgtltField name= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt68AED90F9271A3448AA932EF84B42B59ltFieldKeygt

ltFieldgtltField name= Amount import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtF57F5D798949A54D929E796225CD726EltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 59

XForms

ltStrLengthgt8ltStrLengthgtltStringgtltFieldKeygtEBCC0E4E8CCD9347948694BC21C5A248ltFieldKeygt

ltFieldgtltRecordgt

ltRecordkey=001 descr=KeygtltFieldiskey=true name=Key Definition Field import=true

required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt7C8C32E0EC913D41A608D56E24443B82ltFieldKeygt

ltFieldgtltFieldname= Name import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtC246A928E5A4FF4D966541199954779FltFieldKeygt

ltFieldgtltFieldname= Address import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt15B78234DB357343BB72751CC638A5F3ltFieldKeygt

ltFieldgtltFieldname= Zip import=true required=truegtltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygtE7E1245888D5E54794F9B8C6FE12B131ltFieldKeygt

ltFieldgtltFieldname= DR import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt964879FB55944D40BD3E22568350333AltFieldKeygt

ltFieldgtltFieldname= Amount import=true required=truegt

ltStringgtltStrLengthgt0ltStrLengthgt

ltStringgtltFieldKeygt4975636D567F594A88AEF96EDEE1C538ltFieldKeygt

ltFieldgtltField name= Remarks import=true required=truegtltStringgtltStrLengthgt21ltStrLengthgt

ltStringgtltFieldKeygt2D2B4AB6EFFF1D42B66EB63FB3BAED04ltFieldKeygt

ltFieldgtltRecordgtltDataStructuregt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 60

XForms

ltSchemaDefgtltFileDescriptiongt

SVD data is represented by the ltDelimitedgt tag in this XML structure

Custom XML

Designer generates an XML schema that represents the custom XML structure that you may create

for any given publication EngageOne supports the custom XML data model by having access to this

XML schema file When Designer publishes a template for EngageOne the following files appear in

the archive file

template_masterxml includes a SCHEMA tag in ltSubfilesgt and there will be no DATAMODEL

tag

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modelxsdltFilegtltSubfilesgt

In Designer user can create custom xml sample data using

bull XSD schema file bull DTD schema file

Depending on the schema file the SCHEMA entry in template_masterxml will change For XSD ltSubfilesgt will be as above for SCHEMA tag For DTD schema ltSubfilesgt will be

ltSubfilesgt ltFile type=HIPgttemplatehipltFilegtltFile type=SCHEMAgtdata-modeldtdltFilegtltSubfilesgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 61

XForms

Data definition type and attributes

The EngageOne XForms data definition types and attributes follow the standard XForms specifications Below is a diagram of the structure of the data definition node types

The configurable attributes available are listed below

This attribute specifies the name of the interactive data element Naming conventions follow XML standards They can only contain alphanumeric characters and underscores and must start with a letter

Name

This attribute specifies the data type of the value of the interactive data

Type

This attribute specifies the initial value

This value is set directly in the XForms Instance (XML) as the inner node value

Default Value

This text appears in both the Interactive Editor and on a traditional eForm to tell the user what to enter

The Prompt value is set in the XForms View (XHTML body node) using the label node

Prompt

This attribute is used to provide an extended message or explanation of the Prompt attribute

Help Text

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 62

XForms

This attribute marks the interactive field for compulsory completion When filling out a template a value must be provided for this field in order to progress to the next interactive field or generate the document

This is set in XForms Model using the required attribute of the bind node

This dictates whether the field value is user changeable or not This property is frequently set for definitions requiring system-supplied data from mainline business systems

This is set in XHTML using the read-only attribute of the bind node

This specifies whether the interactive field for the definition should be displayed on the form The Visible property only impacts the display of an interactive field on a traditional eForm presentation All fields needed to complete a document or used in document are always prompted for in the Interactive Editor unless they are defined in the document as read-only

This property value is set in the XSD schema file using g1visible attribute of the element node

The System Data attribute identifies elements whose values are expected to be supplied by system data integration with the front end business system

This flag is set in the XSD schema using the g1sysdata attribute of the element node

The xml structure of supplied system data should be the same as the xml structure of the answer file Thus repeating groups of answer file-like XML structure should be put in under the system data tag For a sample system data xml structure see XML instance file on page 51

The Key Field denotes whether a definition is the unique identifier for the template or not This attribute is used by EngageOne to order and manage the template instances

Key fields are also used by the system data integration program to identify the correct data to collect

This flag is set in the XSD schema file using the g1keyfield attribute of the element node

Mandatory

Read-Only

Visible

System Data

Key Field

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 63

XForms

Expression Validation

Max Length Validation

This property defines input value constraints to ensure valid entries are accepted for the definition during data capture

These rules are set in the XForms Model using the constraint attribute of the bind node

In the XSD schema file they are set using the value attribute of minInclusivemaxInclusive minExclusive or maxExclusive node

This attribute specifies the maximum number of characters a user may input for a string-type field

The value is set in the XForms View (XHTML body node) using the maxlength attribute of the input node In the XSD schema file it is set using the value attribute of the maxLength node

For more information on how these fields are populated and used during data integration see System Data Integration on page 65

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 64

4 - System Data Integration System Data Integration (SDI) enables loading system data into the EngageOne Interactive This data can be extracted from different sources

For example Web service message queues databases etc

In this section

SDI General Configuration 66 Using an XML file as a data source 67 Using the Java callback interface 68 Feature support for System Data Integration 69 Integration option 1 ndash XML data source 71 Integration option 2 ndash callback interface 75

System Data Integration

SDI General Configuration

EngageOne Interactive uses XForms to support external SDI and user prompts before the document editing session is launched in the EngageOne editor The modular design of XForms detaches the model (data rendered by the view) from viewable content This allows the SDI handler to work in isolation with the XForms model and modify it depending on the requirements

In this section two SDI methods are explained along with the features provided by the EngageOne system to support System Data Integration

This section assumes that the integration programmer has XForm knowledge and experience

EngageOne Interactive provides two methods for integrating documents with external system data

bull An XML data source (for demonstration and proof of concept purposes only) which the application reads and parses to identify and load data to a target document

For more information see Using an XML file as a data source

bull A Java callback interface invoked during the System Data Integration process

See Using the Java callback interface on page 68

EngageOne provides a generic XForm (included in the document subfiles) This XForm can be used with both integration methods to allow user interaction with the system by providing inputs that control loading of system data into the document

SDI configuration is controlled by settings in deploylocalproperties When the path to sysdataxml is missing (default setting) the system bypasses the SDI call and uses the answer file in the template When the path is defined the SDI call is made to sysdataxml If the path to sysdataxml is specified but the system cannot find the file an error message displays

If the path to sysdataxml is not specified but a custom class is specified the custom SDI class will be used If both the path to the default XML and the custom SDI class are specified the custom class is used

Note This method is provided for demonstration and proof of concept It is not intended for production purposes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 66

System Data Integration

Using an XML file as a data source

This method is provided for demonstration and proof of concept It is not intended for production purposes

An external XML data file sysdataxml contains system data needed to populate a documentrsquos sysdata fields By default System Data Integration is not enabled To enable sysdataxml set the location in deploylocalproperties

The system data loading process occurs during document creation An XForm is displayed once SysdataAction detects there is a keyfield referenced in its schema definition The XForm prompts the user to provide input which serves as the key to retrieve the corresponding line item from the XML data

XML data source diagram

This is illustrated in the following diagram

The user submits the input form and SysdataAction (action controller) attempts to load the SystemDataLoader specified in systemdataproperties The system data loader class is empty by default allowing the default SystemDataLoader class implementation (XMLSystemDataLoader)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 67

System Data Integration

XMLSystemDataLoader tasks

XMLSystemDataLoader performs the following tasks to render the XForm page that will be sent to the user

bull Loads the system data XML from the location specified in systemdataproperties

bull Parses the system data XML bull Transfers the selected line item to the document answer XML file bull Returns the modified document subfiles back to the SysdataAction class

The XForms page shows the system data input fields populated with data from the system data XML

You can also use the Visible attribute for fields to display in the XForm after system data loading has completed The Visible attribute is configured by the template designer in Designer by enabling the schema definition (set to True)

Using the Java callback interface

The second option incorporating System Data Integration is via a Java callback interface During System Data Integration you can configure the EngageOne Interactive application to invoke a custom implementation This implements a callback interface (system data loader) and allows access to references of document subfiles

The XMLSystemDataLoader (default system data loader) implements the system data loader interface The default system data loader will be replaced by your custom system data loader One system data loader can be plugged into the application at a time

Note Multiple system data loaders can be used in the application employing various object oriented patterns

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 68

System Data Integration

Java callback interface process flow

The process flow and interaction discussed in the previous section Using an XML file as a data source applies to the process flow implemented with a custom system data loader

The process starts when EngageOne Interactive detects that a document has keyfields EngageOne Interactive will delegate SysdataAction to retrieve and collate the document subfiles and wrap them in an XFormsContext object SysdataAction will invoke the custom system data loader class and pass the XFormsContext object The XForms page will be rendered and which will contain the modifications in the document subfiles

When implementing System Data Integration be aware that document subfiles should be retrieved from the document repository via Web services to incorporate your System Data Integration requirements

Feature support for System Data Integration

EngageOne provides custom XML attributes for defining the document schema subfile (XSD)

These attributes are available through the following namespace httpwwwg1comOCMSchema

Each custom attribute is attached to the element definition on the schema subfile

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

Where

bull visible ndash XForm user interface element which references this node This should be visible when the XForms page is rendered

bull keyfield ndash Instance data value that should be used as a look-up field for retrieving external system data The corresponding user interface element should be visible if data will be provided by the user

bull sysdata ndash Instance data value should be populated with external system data look-up results

There are attributes in the XForms subfile that work with the custom attributes defined for System Data Integration

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 69

System Data Integration

XForms model example

ltxselement g1keyfield=true g1sysdata=true g1visible=trueminOccurs=0 name=CustomerName nillable=truegt ltxssimpleTypegtltxsrestriction base=xsstringgtltxssimpleTypegt

ltxselementgt

In this example

bull required attribute - Required instance data value Should contain a value bull read only attribute - Read only attribute Should not change its value The XForms user interface element which references this node is rendered as a non-editable form element

Note When implementing the system data loader where you need to modify the XForms page ensure that the attribute values are properly set

It is important that the above attributes are set with appropriate values so the XForms page will render properly

The values of those attributes are set visually in the document templates

For more information see Designing the template for System Data Integration on page 71

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 70

System Data Integration

Integration option 1 ndash XML data source

Loading the data from an XML data source is the default mode when performing System DataIntegration

Enabling the default system data loader

Note On a fresh system install this is the default configuration for EngageOne Interactive This step is necessary only overriding this setting

For example you develop a custom system data loader and plug it in to the application

To enable the default system data loader

In EngageOne Interactive modify the system data configuration settings deploylocalproperties

This involves

1 Set the sdicallbackclassname to blank 2 Set the sdicallbackjarpath to blank

Designing the template for System Data Integration

In Designer the Interactive Data Editor allows configuring the XForms page for System DataIntegration This process works with XForms and custom schema attributes

Following are some processes showing variations on configuring the system data attributes of your template

For more information about designing templates for EngageOne see the Designer Userrsquos Guide

Configure system data load with a user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Disable the read-only attribute in the XForms design page for user interaction fields

The required attribute can be enabled for users to provide data before document authoring This is for fields not populated with system data

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 71

System Data Integration

Configure system data load with the user confirmation page read-only

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Enable the visible attribute for fields the user will interact with 4 Enable the read-only attribute in the XForms design page for user interaction fields

Configure system data load without the user confirmation page

1 Enable the keyfield attribute to use as the lookup key during system data load 2 Enable the sysdata attribute for fields to populate with system data 3 Disable the visible attribute for fields the user will interact with

This loads system data to the answer XML file and launches EngageOne editor with the document displayed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 72

System Data Integration

Preparing the system data XML

In order for system data to be loaded by EngageOne Interactive your system must create the sysdataxml file

The following schema constraints are enforced for sysdataxml

ltxselement name=system-datagtltxscomplexTypegt

ltxssequencegt answer XML file schema constraint applies hereltxssequencegt

ltxscomplexTypegtltxselementgt

bull The sysdataxml file must be enclosed by a system data element bull There should be a list of XML nodes in the system data element

These nodes will refer to a system data line item which has the same format as the answer XML file and complies with the schema defined for the answer XML file

Example XML answer file

The following example illustrates a defined answer XML file followed by a corresponding system data XML

Defined answer XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=d3dc1f5adc034110914418efcb2bcb07xsdgt

ltPublicationgt ltAccountNamegtltAccountNamegtltAccountNumbergtltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtltBillingAddressgt

ltg1private gtltPublicationgt

System data XML

ltxml version=10 encoding=UTF-8 standalone=yes gtltsystem-datagt

ltInteractiveDataModelgt ltPublicationgt

ltAccountNamegtJohn XltAccountNamegtltAccountNumbergtEA343ADF-DDltAccountNumbergtltDateCreatedgt2008-10-08ltDateCreatedgtltBillingAddressgtJohn X ResidencesltBillingAddress

ltPublicationgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 73

System Data Integration

ltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn YltAccountNamegtltAccountNumbergtY1343ADF-YYltAccountNumbergtltDateCreatedgt2008-11-08ltDateCreatedgtltBillingAddressgtltBillingAddress

ltPublicationgtltInteractiveDataModelgtltInteractiveDataModelgt

ltPublicationgt ltAccountNamegtJohn ZltAccountNamegtltAccountNumbergtZ04A3ADF-ZZltAccountNumbergtltDateCreatedgt2008-10-11ltDateCreatedgt

ltPublicationgtltInteractiveDataModelgt

lt-- more system data line item can be appended here --gt ltsystem-datagt

InteractiveDataModel element

The InteractiveDataModel element represents a single data line item where each line should have the same XML structure as its answer file

The g1private element is not present in any line item in the system data XML Any nodes under g1private are used for EngageOne internal processing If appropriate nodes can be excluded from a line item

For example BillingAddress is not included in the line item John Z

EngageOne Interactive transfers a selected line item from the system data file to the answer file Missing information line item information will be skipped during transfer

EngageOne Interactive uses the schema definition to determine which elements are key and sysdata fields

For each sysdata element the element should be populated with system data

Loading the system data XML

Plug in the system data XML to EngageOne Interactive

1 Modify the system data configuration settings in deploylocalproperties 2 Modify the sdisysdatapath property and set it to the absolute path of the system data

XML file

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 74

System Data Integration

Integration option 2 ndash callback interface

Configure EngageOne Interactive to use a custom system data loader implementation

Configure EngageOne Interactive to use a custom system data loader implementation

1 Create the custom system data loader implementation 2 Compile and package the custom system data loader implementation class to a JAR file 3 Configure EngageOne Interactive system data settings to load and invoke the custom system

data loader class

Implement a custom system data loader

To implement a custom system data loader

Steps

1 Create a custom system data loader class which implements the compbocmclientxformSystemDataLoader Java interface This must be plugged into EngageOne Interactive at runtime The System Data Integration API classes are bundled in sdi-client-apijar located in the samples folder of the EngageOne distribution folder This houses the main interface of the System Data Integration that the custom system data loader class needs to implement

For example

public interface SystemDataLoader

Loads system data into the given XML document param xmlDocument the given XML document param context throws Exception if an error occurs while loading system

data void loadSystemData(XFormsContext context) throws Exception

2 Import the project classpath to reference the System Data Integration API classes When packaging the custom system data loader you may not need to put the sdi-client-apijar

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 75

System Data Integration

file on the project classpath as those classes are available in the EngageOne Interactive Web application archive The following guidelines must be observed when developing a custom system data loader

bull Create the custom system data loader implementation bull The custom system data loader should implement the compbocmclientxformSystemDataLoader interface

bull An XFormsContext object is passed to the custom system data loader when invoked during System Data Integration The object provides access to the document subfiles answer file XForm file and answer file schema file

bull If an XForms file is altered it should conform to the W3C XForms 11 standard

If an answer XML file is altered it should conform to its XML schema file

Any structural change in the answer XML file should be cascaded to its XML schema file When loading EngageOne Editor validates the answer XML using the XML schema

bull Do not change the g1private XML element in the answer XML file or the corresponding constraint in the XML schema

Notes

bull Altering custom EngageOne XForms attributes will affect how the XForms page is rendered in EngageOne Interactive Incorrect settings might cause the page to be incorrectly displayed or lead to loss of data

bull Set keyfields to visible bull System data can be set to visible or non-visible bull It is recommended that Required fields in the XForms file be set to visible bull It is recommended that you do not amend a field marked as System data before invoking the custom system data loader

bull Any change made to document subfiles cannot be reversed bull Do not change XML namespaces in document subfiles bull Removal of existing XML elements from document subfiles is not allowed bull Any other changes can be made to document subfiles except for the constraints mentioned above

For example you can add XForms UI elements XML data in the answer XML file as well as make schema and XForms constraint modifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 76

System Data Integration

Custom system data loader

Following is a sample custom system data loader This adds a visible input element in the document

These changes include

bull Addition of schema definition in the XML schema file bull Addition of XForms mapping in the XForms file bull Addition of XML nodes in the answer XML file which maps to the XForms element

Custom data loader interface

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception loadToSchema(context)loadToView(context) loadToInstance(context)

private void loadToSchema(XFormsContext context) throws Exception private void loadToView(XFormsContext context) throws XMLStreamException

FactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException private void loadToInstance(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException public void loadSystemDataWithXpath(XFormsContext context)

throws XMLStreamException FactoryConfigurationErrorXFormsContextException JaxenException SAXException IOExceptionParserConfigurationException TransformerFactoryConfigurationErrorTransformerException

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 77

System Data Integration

loadToSchema function

private void loadToSchema(XFormsContext context) throws Exception add simple element to schema XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetSchemaAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement schema

= buildergetDocumentElement() OMElement root = schemagetFirstElement() OMElement complexType = rootgetFirstChildWithName(new QName(httpwwww3org2001XMLSchema complexType)) QNamesequenceIndicator = new QName(httpwwww3org2001XMLSchemasequence) OMElement complexTypeChild = complexTypegetFirstChildWithName(sequenceIndicator) if(complexTypeChild == null) QName allIndicator = new QName(httpwwww3org2001XMLSchema

all) complexTypeChild = complexTypegetFirstChildWithName(allIndicator) OMFactory factory = OMAbstractFactorygetOMFactory() OMNamespace

xmlSchemaNamespace = factorycreateOMNamespace(httpwwww3org2001XMLSchemaxs)OMNamespace group1Namespace =

factorycreateOMNamespace(httpwwwg1comOCMSchema g1)

OMElement comment = factorycreateOMElement(elementxmlSchemaNamespace complexTypeChild) commentaddAttribute(visibletrue group1Namespace)commentaddAttribute(minOccurs 0 null)

commentaddAttribute(name Comment null)OMElement simpleType = factorycreateOMElement(simpleType

xmlSchemaNamespace comment) OMElement restriction = factorycreateOMElement(restriction xmlSchemaNamespace simpleType)restrictionaddAttribute(base xsstring null)

ByteArrayOutputStream bos = new ByteArrayOutputStream()schemaserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)

Document newSchema = docBuilderfactorynewDocumentBuilder()parse(new ByteArrayInputStream(bostoByteArray()))

contextsetSchemaAsDocument(newSchema)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 78

System Data Integration

loadToView function

private void loadToView(XFormsContext context) throws XMLStreamExceptionFactoryConfigurationError XFormsContextException SAXExceptionIOException ParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException

XMLStreamReader parser1 = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))StAXOMBuilder builder1 = new StAXOMBuilder(parser1) OMElement

instanceData = builder1getDocumentElement() String firstNodeName = instanceDatagetLocalName()

XMLStreamReader parser = XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetXFormsViewAsDocument()))StAXOMBuilder builder = new StAXOMBuilder(parser) OMElement xhtml = buildergetDocumentElement()

OMFactory factory = OMAbstractFactorygetOMFactory()OMNamespace xformsNamespace =

factorycreateOMNamespace(httpwwww3org2002xforms xforms)

AXIOMXPath modelExpr = new AXIOMXPath(xformsmodel)modelExpraddNamespace(xforms httpwwww3org2002xforms)OMElement model = (OMElement) modelExprselectSingleNode(xhtml)

OMElement bind = factorycreateOMElement(bind xformsNamespacemodel) bindaddAttribute(nodeset+firstNodeName+PublicationComment null)bindaddAttribute(readonly false() null)bindaddAttribute(required false() null)

bindaddAttribute(type xsstring null)

AXIOMXPath bodyExpr = new AXIOMXPath(xhtmlbody)bodyExpraddNamespace(xhtml httpwwww3org1999xhtml) OMElementbody = (OMElement) bodyExprselectSingleNode(xhtml)

OMElement input = factorycreateOMElement(input xformsNamespacebody) inputaddAttribute(ref+firstNodeName+PublicationComment null) OMElement label = factorycreateOMElement(label xformsNamespace input)factorycreateOMText(label Comment)OMElement help = factorycreateOMElement(help xformsNamespace

input) factorycreateOMText(help Observations)

ByteArrayOutputStream bos = new ByteArrayOutputStream()xhtmlserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 79

System Data Integration

docBuilderfactorysetNamespaceAware(true)Document newView = docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))contextsetXFormsViewAsDocument(newView)

loadToInstance function

private void loadToInstance(XFormsContext context)throws XMLStreamException FactoryConfigurationError

XFormsContextException SAXException IOExceptionParserConfigurationException JaxenExceptionTransformerFactoryConfigurationError TransformerException XMLStreamReader parser =

XMLInputFactorynewInstance()createXMLStreamReader( new DOMSource(contextgetInstanceAsDocument()))tAXOMBuilder builder = new StAXOMBuilder(parser) OMElement

instanceData = buildergetDocumentElement() AXIOMXPath bodyExpr = new AXIOMXPath(Publication)OMElement publication = (OMElement)

bodyExprselectSingleNode(instanceData) OMFactory factory = OMAbstractFactorygetOMFactory()OMElement e = factorycreateOMElement(Comment null publication)factorycreateOMText(e contextgetTemplateName())

ByteArrayOutputStream bos = new ByteArrayOutputStream()instanceDataserialize(bos)

DocumentBuilderFactory docBuilderfactory = DocumentBuilderFactorynewInstance()docBuilderfactorysetNamespaceAware(true)Document newInstanceData =

docBuilderfactorynewDocumentBuilder()parse( new ByteArrayInputStream(bostoByteArray()))

contextsetInstanceAsDocument(newInstanceData)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 80

System Data Integration

Error handling

You can configure the custom system data loader to determine the required error handling scheme during system data retrieval in EngageOne Interactive

To enable this feature you must throw a SystemDataLoaderException object from the loadSystemData (XFormsContext context) implementation of the custom system data loader class

SystemDataLoaderException class ndash custom fields

The SystemDataLoaderException class has custom fields that can be set by either passing required values to the SystemDataLoaderException objects constructor or by the individual setter methods

errorcode

A string field that maps the SystemDataLoaderException object to a localized error message which will display on the XForms page

All error codes that EngageOne Interactive to use should be enumerated in the systemDataLoaderErrorCodesproperties file located in the Engage One install directory in the Interactive folder The properties file should contain the complete mapping of error codes to their corresponding message keys

A sample systemDataLoaderErrorCodesproperties file follows

local error code for system data loader exceptions

001=systemdataloaderdataNotFound 001 and 002 are 002=systemdataloaderunknown default entries 003=systemdataloaderincorrectKey004=systemdataloaderinternalError005=systemdataloaderhostUnreachable

Note any number of error codes may be mapped to the same message key Error codes must be unique

These keys are mapped to error messages that EngageOne Interactive can display on the XForms page The mapping of keys to their respective messages must be specified in the systemDataLoaderMessagesproperties file located in the Engage One install directory in the Interactive folder

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 81

System Data Integration

systemDataLoaderMessagesproperties sample

Following is a systemDataLoaderMessagesproperties resource bundle sample

-- System Data Loader custom messagessystemdataloaderdataNotFound=Data not found for the entered key Please try again

systemdataloaderunknown=Unknown error encountered during system dataretrieval Please try again

systemdataloaderincorrectKey=The entered key 0 is incorrect or missing Please try again

systemdataloaderinternalError=Error encountered during system dataretrieval Please cancel the creation of this document and contact yoursystem administrator

systemdataloaderhostUnreachable=The host of the system data isunreachable Please try again later If the problem persists pleasecontact your system administrator

Error messages can be localized and are dependent on the language settings of the Internet browser

To enable localization for the custom system data loader error messages follow the localization (L10N) standards and append the correct suffix to the resource base name (systemDataLoaderMessages)

For example

systemDataLoaderMessages_en for English

systemDataLoaderMessages_de for German

systemDataLoaderMessages_zh for Chinese etc

All resource bundles must be placed in the same directory with the base resource bundle (systemDataLoaderMessagesproperties) The default value of this field is 001 (ldquoData not found for the entered key Please try againrdquo)

params

An optional field that accepts an array of strings (casted to Object[])

The value of this field will be passed to the resource bundle handler of EngageOne Interactive to replace placeholders (0 1 etc) in error messages in the systemDataLoaderMessagesproperties file This field will be ignored if the errorCode field of the SystemDataLoaderException object points to an error message that does not contain placeholders The default value of this field is null

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 82

System Data Integration

result

An enum field that determines the page EngageOne Interactive will load if a SystemDataLoaderException is thrown during system data retrieval

It has two values

bull SystemDataLoaderResultDEFAULT ndash forces EngageOne Interactive to ignore the caught error and allow the user to manually input data to the user prompt fields The error message (specified by the errorCode field) will not be visible on the XForms page

bull SystemDataLoaderResultREPROMPT ndash forces EngageOne Interactive to allow the user to re-enter key field data and retrieve system data The error message (specified by the errorCode field) will display on top of the XForms page

The default value of this field is SystemDataLoaderResultDEFAULT

message and cause

message (String) and cause (Throwable)

Implicit fields that can be set by including any or both constructor arguments of the SystemDataLoaderException object These fields are inherited from the of SystemDataLoaderException parent class If these are set the stack trace of the wrapped Throwable or the value of the given message will be logged on the application server logs

SystemDataLoaderException constructor signature

The following is a complete list of constructor signatures of the SystemDataLoaderException

Note the errorCode params and result fields can be set via their setter methods

SystemDataLoaderException constructor signatures

public SystemDataLoaderException()public SystemDataLoaderException(Throwable cause) publicSystemDataLoaderException(String errorCode)public SystemDataLoaderException(String errorCode Object[] params)public SystemDataLoaderException(SystemDataLoaderResult result)public SystemDataLoaderException(String errorCodeSystemDataLoaderResultsystemDataLoaderResultresult)public SystemDataLoaderException(String errorCode Object[] paramsSystemDataLoaderResult result) public SystemDataLoaderException(Stringmessage String errorCode SystemDataLoaderResult result) publicSystemDataLoaderException(String message String errorCode Object[]params SystemDataLoaderResult result)public SystemDataLoaderException(String message String errorCode)public SystemDataLoaderException(String message String errorCodeObject[] params) public SystemDataLoaderException(Throwable cause StringerrorCode)public SystemDataLoaderException(Throwable cause String errorCode

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 83

System Data Integration

Object[] params)public SystemDataLoaderException(Throwable cause String errorCodeSystemDataLoaderResult result) public SystemDataLoaderException(Throwablecause String errorCode Object[] params SystemDataLoaderResult result)public SystemDataLoaderException(String message Throwable cause StringerrorCode)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params) public SystemDataLoaderException(Stringmessage Throwable cause String errorCode SystemDataLoaderResultresult)public SystemDataLoaderException(String message Throwable cause StringerrorCode Object[] params SystemDataLoaderResult result)

Sample implementation

public class StaticDataLoader implements SystemDataLoader public void loadSystemData(XFormsContext context) throws Exception try

your custom code which loads the system data to the XForm files goes here You will need to use XFormsContext object to retrieve the XForm files rendered in the EngageOne Interactive application Depending on your implementation you may need to modify the XForm schema instance XML file as necessary

catch (Exception e) wrap all Exceptions encountered to a SystemDataLoaderException

SystemDataLoaderException exception = new SystemDataLoaderException(e)

if (e instanceof RemoteException) set the error code exceptionsetErrorCode(110)

set the error message parameters if applicable exceptionsetParams(new String[]contextgetTemplateName())

set the result action exceptionsetResult(SystemDataLoaderResultREPROMPT)

else simply set the result action since the error messages wont be

displayed exceptionsetResult(SystemDataLoaderResultDEFAULT)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 84

System Data Integration

finally throw the exception throw exception

Compiling and packaging custom system data loader

Prepare the custom system data loader class to be plugged into EngageOne Interactive

1 Compile the custom system data loader implementation by including the sdi-client-apijarfile on the project classpath This file is located in the EngageOne install directory under the active-drive (content repository) config folder

2 Package the custom system data loader on the same JAR file System Data Integration API classes are included in the EngageOne Interactive Web application archive You can assemble the custom system data loader class without the sdi-client-apijar on the project classpath

Configuring EngageOne Interactive system data settings

Plug the custom system data loader into EngageOne Interactive

1 Modify the system data configuration settings deploylocalproperties located in the EngageOne install directory under the active-drive (content repository) config folder

2 Modify the sdicallbackclassname property and set it to the fully-qualified name (FQN) of the custom system data loader class For example commycompanyengageonesdiApplicationSystemDataLoader

3 Modify the sdicallbackjarpath property and set the path to the JAR file containing the custom system data loader class For example EngageOnesdicustom-sdi-10jar

This configuration setting can accept a valid Java classpath allowing multiple JAR files to be specified

Note The following rule applies when defining the value for this property

If a relative path is used the system assumes the location of the custom system data loader class is relative to the value path set in the customSdidefaultclasspath property in config-settingsxml By default this path is set to the EngageOne install directory

For example sdi-testCustomLoaderjar where sdi-test is a directory under the path specified in the property

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 85

5 - Additional features in SOAP

In this section

Trusted Connection 87 Template search 87 Write delivery information 96 Managing the work queue 99 Updating work items 102 Reassigning a work item 106 Deleting a work item 108

Additional features in SOAP

Trusted Connection

Where there is a higher level of trust between EngageOne and a custom application you can use the

trusted connection feature This method establishes an authorized session token based on the valid

userID trusted connection apli key(defined in deployproperties under key securitytrustedconnectionapikey) and domainID only meaning regular userpassword authentication is not required (as with the connect

service)

The related configuration setting is checked to determine whether this service should be made available to the system or not This is done by examine securitytrustedconnectionpassword property defined in deployproperties

Trusted connection is defaulted to off during EngageOne installation

To activate the feature securitytrustedconnectionpassword should be set

To perform trustedConnection use the SecurityService trustedConnectionLoginmethods

Template search

As the document repository increases in size retrieving all templates can consume a large amount of memory EngageOne Server provides an optimized service for searching templates based on a given criteria This service can sort and provide a subset of the search result set also known as pagination

To perform a template search against the document repository use the TemplateService searchTemplates method

Searching templates by template property

This service enables searching templates by template property (for example template name and ID) It also enables searching by template metadata attributes as well as a wildcard search

Note a wild card search can be performed only for certain search criteria fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 87

Additional features in SOAP

Create an instance of the client stub for the TemplateService then invoke the searchForTemplates service where you pass in the search criteria

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService) SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate() IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter) templatesetIdent(id)requestgetTemplates()setTemplate(template)

SearchTemplatesResponse response = templateServicesearchTemplates(request) ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 88

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Note

bull The searchTemplates service makes use of other classes

Use these classes to compose the template search criteria and pass it to the service invocation

This service returns a list of templates that match the search criteria

For example if the template search key is set to Insurance Policy Letter the result set will contain all template names containing Insurance Policy Letter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 89

Additional features in SOAP

Searching templates with sorting and pagination

Perform a template search with a sorted and paginated result set and add additional search criteria values to pass to the searchTemplates service

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetTemplates(new SearchTemplatesTemplates())SearchTemplatesTemplatesTemplate template = new SearchTemplatesTemplatesTemplate()IntegerIdOrName id = new IntegerIdOrName()idsetName(Insurance Policy Letter)templatesetIdent(id) requestgetTemplates()setTemplate(template)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(1)paginationsetPageSize(10)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields())SortField field = new SortField()fieldsetType(SortFieldTypeNAME)fieldsetOrder(SortOrderASCENDING)

requestsetPagination(pagination) requestsetSorting(sorting)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

The SortingControls class accepts sort fields and sort ordering values

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 90

Additional features in SOAP

C sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqtemplates = new TemplateServiceSearchTemplatesTemplates()reqtemplatestemplate = new TemplateServiceSearchTemplatesTemplatesTemplate()reqtemplatestemplateident = new TemplateServiceIntegerIdOrName()reqtemplatestemplateidentItem = Insurance Policy Letter

reqpagination = new TemplateServicePaginationControls()reqpaginationpageNumber = 1reqpaginationpageSize = 10

reqsorting = new TemplateServiceSortingControls()reqsortingfields = new TemplateServiceSortField[1]reqsortingfields[0] = new WebServiceTest1TemplateServiceSortField()

reqsortingfields[0]type = TemplateServiceSortFieldTypeNAMEreqsortingfields[0]order = TemplateServiceSortOrderASCENDING

TemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

Use the PaginationControls and SortingControls classes to compose a sorted and paginated template search The PaginationControls class accepts pageNumber and pageSize values which control the page size and the result retrieved by the set page snapshot

In the example above the result set is sorted by template name and displays the first ten template matches

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 91

Additional features in SOAP

Searching templates by template metadata

You can perform a metadata search to retrieve a list of metadata or document classes available in EngageOne Server This information can be presented to an end-user who can choose which metadata they want to use to perform a more detailed search

To retrieve all metadata from the server

1 Use the MetadataService searchMetadata service 2 Create an instance of the client stub for MetadataService 3 Invoke the searchMetadata method

Java sample

MetadataServiceStub metadataService = new MetadataServiceStub(URL_BASE+ MetadataService)SearchMetadata request = new SearchMetadata()requestsetFilter(SearchFilterDETAIL)

SearchMetadataResponse response = metadataServicesearchMetadata(request)ListltDocumentClassgt docClasses = responsegetDocClasses()getDocClass()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 92

Additional features in SOAP

C NET sample

MetadataServiceMetadataServiceClient metadataSvc = new MetadataServiceMetadataServiceClient(MetadataServiceSOAP)

MetadataServiceSearchMetadata req = new WebServiceTest1MetadataServiceSearchMetadata()reqfilter = CommonServicesSearchFilterDETAIL

MetadataServiceSearchMetadataResponse resp = metadataSvcsearchMetadata(req)MetadataServiceDocumentClass[] classes = respdocClasses

This service returns a list of document class objects

This service introduces some new classes

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 93

Additional features in SOAP

Supported metadata field types

Currently EngageOne supports only the following metadata field data types

Data type Description

Text Alphanumeric string

Date Date

Number Numeric integral and floating

You can perform template searches using metadata

The following example illustrates how to search for all templates that belong to a particular document class with the insurance category

Java sample

TemplateServiceStub templateService = new TemplateServiceStub(URL_BASE+ TemplateService)SearchTemplates request = new SearchTemplates()requestsetDocClasses(new SearchTemplatesDocClasses())

SearchTemplatesDocClassesDocClass docClass = new SearchTemplatesDocClassesDocClass()IntegerIdOrName id = new IntegerIdOrName()idsetName(SimpleClass) docClasssetIdent(id)

docClasssetFields(new SearchTemplatesDocClassesDocClassFields())

SearchTemplatesDocClassesDocClassFieldsField field = new SearchTemplatesDocClassesDocClassFieldsField()id = new IntegerIdOrName()idsetName(category)fieldsetIdent(id)

MetadataFieldValue value = new MetadataFieldValue()valuesetMetadataString(Insurance)fieldsetValue(value)

docClassgetFields()getField()add(field)requestgetDocClasses()setDocClass(docClass)

SearchTemplatesResponse response = templateServicesearchTemplates(request)ListltTemplategt templates = responsegetTemplates()getTemplate()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 94

Additional features in SOAP

C NET sample

TemplateServiceTemplateServiceClient templateSvc = new TemplateServiceTemplateServiceClient(TemplateServiceSOAP)

TemplateServiceSearchTemplates req = new TemplateServiceSearchTemplates()reqdocClasses = new TemplateServiceSearchTemplatesDocClasses()reqdocClassesdocClass = new TemplateServiceSearchTemplatesDocClassesDocClass()reqdocClassesdocClassident = new TemplateServiceIntegerIdOrName()

reqdocClassesdocClassidentItem = Simple Class

reqdocClassesdocClassfields = new TemplateServiceSearchTemplatesDocClassesDocClassField[1]TemplateServiceSearchTemplatesDocClassesDocClassField field = new TemplateServiceSearchTemplatesDocClassesDocClassField()fieldident = new TemplateServiceIntegerIdOrName()fieldidentItem = category

fieldvalue = new WebServiceTest1TemplateServiceMetadataFieldValue()

fieldvalueItem = InsurancereqdocClassesdocClassfields[0] = fieldreqfilter = CommonServicesSearchFilterDETAILTemplateServiceSearchTemplatesResponse resp = templateSvcsearchTemplates(req)TemplateServiceTemplate[] templates = resptemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 95

Additional features in SOAP

Write delivery information

Depending on the document delivery channels set up in EngageOne Administration you can configure a channel to accept data input via the document instance file

For example configure Email and Fax delivery channels to accept data input

Write delivery information process

Data inputs are written in the instance file and are identified by a set of valid XPath expressions By default EngageOne provides predefined places in the instance file where this data input or delivery information can be written

The following steps illustrate this process

Steps

1 In the example below a template instance file is defined where the XML nodes relating to the delivery information are highlighted Each node corresponds to configurable data inputs for Email and Fax delivery channels

ltInteractiveDataModel version=10 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=80dacb9192c44a81937175f8ac7e0ee7xsdgtz

ltPublicationgt ltString1gtEngageOne System Test String 1ltString1gtltString2gtEngageOne System Test String 2ltString2gtltInteger1gt1ltInteger1gtltInteger2gt2ltInteger2gtltNumber1gt1ltNumber1gtltNumber2gt2ltNumber2gtltDate1gt2008-08-29ltDate1gtltDate2gt2008-08-29ltDate2gtltDeliveryInformationgt

ltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegt

ltDeliveryInformationgtltg1privategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 96

Additional features in SOAP

ltPublicationgtltInteractiveDataModelgt

The application code must parse the instance file and perform reading and writing delivery information using the XPath expression set in EngageOne Administration Delivery details (including XPath expressions) can be retrieved using the DeliveryManagementService searchDeliveryOptions method

2 Create an instance of the DeliveryManagementService client stub Then invoke searchDeliveryOptions

Java sample

DeliveryManagementServiceStub deliveryMgmtService = new DeliveryManagementServiceStub(URL_BASE + DeliveryManagementService)SearchDeliveryOptions request = new SearchDeliveryOptions()requestsetDeliveryOptions(newSearchDeliveryOptionsDeliveryOptions())requestgetDeliveryOptions()setDeliveryOption(newSearchDeliveryOptionsDeliveryOptionsDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(deliveryOptionId)requestgetDeliveryOptions()getDeliveryOption()setIdent(id)SearchDeliveryOptionsResponse response = deliveryMgmtServicesearchDeliveryOptions(request)DeliveryOption option = responsegetDeliveryOptions()getDeliveryOption()get(0)

C NET

DeliveryManagementServiceDeliveryManagementServiceClientdeliveryManagementSvc = new DeliveryManagementServiceDeliveryManagementServiceClient(DeliveryManagementServiceSOAP)

DeliveryManagementServiceSearchDeliveryOptions req = new DeliveryManagementServiceSearchDeliveryOptions()reqdeliveryOptions = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptions()reqdeliveryOptionsdeliveryOption = new DeliveryManagementServiceSearchDeliveryOptionsDeliveryOptionsDeliveryOption()

reqdeliveryOptionsdeliveryOptionident = new DeliveryManagementServiceIntegerIdOrName()reqdeliveryOptionsdeliveryOptionidentItem = deliveryOptionIdDeliveryManagementServiceSearchDeliveryOptionsResponse resp = deliveryManagementSvcsearchDeliveryOptions(req)DeliveryManagementServiceDeliveryOption option = respdeliveryOptions[0]

In the sample code above the Service accepts a delivery option ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 97

Additional features in SOAP

It returns a DeliveryOption object which holds a list of DeliveryChannels that contain XPath expressions The XPath expressions parse the instance file to retrieve delivery information

3 The Document Server reads delivery information as parameters in the instance file It is important to set the delivery option as well as the delivery information appropriately as this information will be used later in the delivery process

Java sample

for (DeliveryChannel channel optiongetChannels()getChannel())

if (channelgetType()equals(DeliveryChannelTypeEMAIL)) EmailChannelDetail email =

channelgetDetail()getEmailDetail() else if (channelgetType()equals(DeliveryChannelTypeFAX))

FaxChannelDetail fax = channelgetDetail()getFaxDetail()

C NET sample

foreach (DeliveryManagementServiceDeliveryChannel channel inoptionchannels)

switch (channeltype)

case DeliveryManagementServiceDeliveryChannelTypeEMAIL

DeliveryManagementServiceEmailChannelDetail email =

(DeliveryManagementServiceEmailChannelDetail)channeldetailItembreak

case DeliveryManagementServiceDeliveryChannelTypeFAXDeliveryManagementServiceFaxChannelDetail fax =

(DeliveryManagementServiceFaxChannelDetail)channeldetailItembreak

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 98

Additional features in SOAP

Managing the work queue

Managing user work queues is part of EngageOne workflow EngageOne workflow handles assigning a work item or document ownership to a user

Retrieving work items

The WorkItemService searchWorkItems method retrieves a users work queue

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req) WorkItemServiceWorkItem[] workItems= respworkItems

In these examples the service returns a list of active work items associated with the authenticated user

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 99

Additional features in SOAP

Retrieving work items with pagination

The searchWorkItems service of WorkItemService can set the pagination of a work item list result set

To enable this feature create a PaginationControls object and set the required page number and page size

For example the following illustrates how to display the second page of a work item list that contains ten work items per page

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

PaginationControls pagination = new PaginationControls()paginationsetPageNumber(2)paginationsetPageSize(10)requestsetPagination(pagination)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqpagination = new WorkItemServicePaginationControls()reqpaginationpageNumber = 2reqpaginationpageSize = 10

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 100

Additional features in SOAP

Retrieving work items with sorting

The searchWorkItems service of WorkItemService can set the sort of a work item list result set

To enable this feature create a SortControls object and set the reference column and sorting order in the objects field and order fields

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)SearchWorkItems request = new SearchWorkItems()requestsetWorkItemListType(WorkItemListTypeACTIVE)

SortingControls sorting = new SortingControls()sortingsetFields(new SortingControlsFields()) SortField field = new SortField()fieldsetType(SortFieldTypeSTATUS)fieldsetOrder(SortOrderASCENDING)sortinggetFields()getField()add(field)requestsetSorting(sorting)

SearchWorkItemsResponse response = workItemServicesearchWorkItems(request)ListltWorkItemgt workItems = responsegetWorkItems()getWorkItem()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceSearchWorkItems req = new WorkItemServiceSearchWorkItems()reqworkItemListType = WorkItemServiceWorkItemListTypeACTIVE

reqsorting = new WorkItemServiceSortingControls()reqsortingfields = new WorkItemServiceSortField[1]reqsortingfields[0]type = WorkItemServiceSortFieldTypeSTATUSreqsortingfields[0]order = WorkItemServiceSortOrderASCENDING

WorkItemServiceSearchWorkItemsResponse resp = workItemSvcsearchWorkItems(req)WorkItemServiceWorkItem[] workItems = respworkItems

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 101

Additional features in SOAP

Updating work items

This section covers updating work item properties

Updating the document delivery option

Set the request object with the correct token workItem ID and new deliveryOption ID

Then invoke the setDeliveryOption service of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItem request = new UpdateWorkItem()requestsetWorkItem(new UpdateWorkItemWorkItem())requestgetWorkItem()setId(workItemId)requestsetDeliveryOption(new UpdateWorkItemDeliveryOption())IntegerIdOrName id = new IntegerIdOrName()idsetId(optionId)requestgetDeliveryOption()setIdent(id)

UpdateWorkItemResponse response = workItemServiceupdateWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqdeliveryOption = new WorkItemServiceUpdateWorkItemDeliveryOption()

reqdeliveryOptionident = new WorkItemServiceIntegerIdOrName()reqdeliveryOptionidentItem = optionId

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 102

Additional features in SOAP

Updating work item status

Update work item status while a document has not completed the workflow process

This applies to the duration of the document life cycle

For example a document can be created and saved even if required fields have not been filled in In this case the work item status would be set to ACTIVE_INCOMPLETE

For example when a user attempts to update a document and has entered all required fields the work item status would be set to ACTIVE_COMPLETE

To perform work item status updates invoke updateWorkItemStatus of WorkItemService

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)UpdateWorkItemStatus request = new UpdateWorkItemStatus()requestsetWorkItem(new UpdateWorkItemStatusWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setStatus(WorkItemStatusACTIVE_COMPLETE)

UpdateWorkItemStatusResponse response = workItemServiceupdateWorkItemStatus(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceUpdateWorkItem req = new WorkItemServiceUpdateWorkItem()reqworkItem = new WorkItemServiceUpdateWorkItemWorkItem()reqworkItemid = workItemIdreqworkItemstatus = status

WorkItemServiceUpdateWorkItemResponse resp = workItemSvcupdateWorkItem(req)

Work item status can be set to any of the following

ACTIVE_COMPLETE

ACTIVE_INCOMPLETE

ASSIGNED

FAILED_DELIVERY

FINISHED

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 103

Additional features in SOAP

OPEN

PENDING_APPROVAL

PENDING_DELIVERY

SUBMITTED_APPROVED

SUBMITTED_REJECTED

SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 104

Additional features in SOAP

Updating work item comments

Work items have an comments field that can be updated every time you invoke a transaction that involves the work item

New comments will be added to the previous list of comments and will not overwrite the previous set Work item comments are stored from the work items creation

Invoke the addWorkItemComment service of WorkItemService to add a comment to a work item

Java sample

String comment = Updated document for additional customer information sample user comment WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)AddWorkItemComment request = new AddWorkItemComment()requestsetWorkItem(new AddWorkItemCommentWorkItem())requestgetWorkItem()setId(workItemId)requestgetWorkItem()setComment(comment)

AddWorkItemCommentResponse response = workItemServiceaddWorkItemComment(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceAddWorkItemComment req = new WorkItemServiceAddWorkItemComment()reqworkItem = new WorkItemServiceAddWorkItemCommentWorkItem()reqworkItemid = workItemIdreqworkItemcomment = comment

WorkItemServiceAddWorkItemCommentResponse resp = workItemSvcaddWorkItemComment(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 105

Additional features in SOAP

Reassigning a work item

Reassigning a document allows the current document owner to assign a document to another userrsquos work queue

bull In order for a document to be reassigned the receiving user must have access to the document template and its storage location

bull Reassigning a document removes it from the current owners work queue bull Reassigning a document ensures that the document is being worked on by one user at a time

For more information see the EngageOne Administration Guide

Retrieving document assignees

Use the WorkItemService getWorkItemAssignees method to retrieve a list of assignees for a document

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)GetWorkItemAssignees request = new GetWorkItemAssignees()requestsetWorkItem(new GetWorkItemAssigneesWorkItem())IntegerIdOrName id = new IntegerIdOrName()idsetId(workItemId)requestgetWorkItem()setIdent(id)

GetWorkItemAssigneesResponse response = workItemServicegetWorkItemAssignees(request)ListltUsergt users = responsegetAssignees()getAssignee()

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceGetWorkItemAssignees req = new WorkItemServiceGetWorkItemAssignees()reqworkItem = new WorkItemServiceGetWorkItemAssigneesWorkItem()reqworkItemident = new WorkItemServiceIntegerIdOrName()reqworkItemidentItem = workItemId

WorkItemServiceGetWorkItemAssigneesResponse resp = workItemSvcgetWorkItemAssignees(req)WorkItemServiceUser[] users = respassignees

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 106

Additional features in SOAP

Note Currently the service cannot perform a document access control check for the values it returns You can expect a response exception if the user does not have access to the document template

The service returns a list of User objects which hold the user IDs of document assignees using the user IDs to perform document reassignment The list can be null and the application code needs to handle this condition check

Reassigning a document

Use the WorkItemService reassignWorkItem method to perform document reassignment

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)ReassignWorkItem request = new ReassignWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

requestsetAssignee(new ReassignWorkItemAssignee())requestgetAssignee()setId(csrl)

ReassignWorkItemResponse response = workItemServicereassignWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceReassignWorkItem req = new WorkItemServiceReassignWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

reqassignee = new WorkItemServiceReassignWorkItemAssignee()reqassigneeid = csrl

WorkItemServiceReassignWorkItemResponse resp = workItemSvcreassignWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 107

Additional features in SOAP

Deleting a work item

EngageOne allows a document to be deleted in the repository

When a document is deleted EngageOne Server removes the document files from the repository and terminates the document processing This enables deleting the document at any point during the document life cycle

Perform a document delete

Use the WorkItemService deleteWorkItem method

Java sample

WorkItemServiceStub workItemService = new WorkItemServiceStub(URL_BASE+ WorkItemService)

DeleteWorkItem request = new DeleteWorkItem()requestsetWorkItem(new WorkItemMaintRequestWorkItem())requestgetWorkItem()setId(workItemId)

DeleteWorkItemResponse response = workItemServicedeleteWorkItem(request)

C NET sample

WorkItemServiceWorkItemServiceClient workItemSvc = new WorkItemServiceWorkItemServiceClient(WorkItemServiceSOAP)

WorkItemServiceDeleteWorkItem req = new WorkItemServiceDeleteWorkItem()reqworkItem = new WorkItemServiceWorkItemMaintRequestWorkItem()reqworkItemid = workItemId

WorkItemServiceDeleteWorkItemResponse resp = workItemSvcdeleteWorkItem(req)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 108

6 - EngageOne notifications EngageOne Notifications is a new capability that enables external systems to be notified of certain events that happen within the EngageOne server Examples of events include Communications being created being sent for review and being completed

In this section

Overview 110 Notification components diagram 111 Topics and queues 113 Configuration settings 114 Messages 118 Communication messages 119 Batch messages 121 Workflow messages 122 Consuming notification messages 123 Using other JMS implementations 126 Sample message consumers 128

EngageOne notifications

Overview

A full list of notification types is provided below

The Notifications mechanism is based on an implementation of the Java Message Service (JMS) standard The chosen JMS implementation is Apache ActiveMQ Detailed information about ActiveMQ can be found at httpactivemqapacheorg

Various components within EngageOne write messages to ActiveMQ so that external applications can consume the messages and process them in whatever way they choose

Note it is possible to use an external JMS-compliant message queue instead of ActviveMQ

A common use case for Notifications is as follows

bull An external system (for example a CRM application) triggers the creation of a communication in EngageOne via the EngageOne web service A unique identifier for the communication is returned to the calling system A communication pending note is added to the customers record so that users of the CRM application can see that the communication is in progress

bull A number of notifications are generated as the communication progresses through its life cycle The CRM system receives these notifications and discards any that are not relevant

bull The CRM system receives a notification that the communication has been completed (delivered) and updates the note on the customer record to indicate that the communication has been sent

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 110

EngageOne notifications

Notification components diagram

The following diagram provides an overview of the components involved in notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 111

EngageOne notifications

Diagram details

The Message Consumer is a custom component that suits the requirements of a particular implementation This Programmers Reference Guide provides information about how to write a message consumer

The JMS Client Library provides a plug-in mechanism to bypass the built-in ActiveMQ implementation to use an external message broker instead

1 A notification message is generated by a component in one of the EngageOne bundles (Core or Batch bundle)

2 The bundle configuration properties (defined in deployproperties at installation or re-configuration time) specify how the message is processed

a The notificationconnectionFactoryclass property specifies which JMS connection factory class to use The default connection factory establishes connections to an ActiveMQ queue or topic Other JMS libraries can be used to send messages to other JMS-compliant queue implementations

For more information see Using other JMS Implementations

b The notificationjmsbrokerurl property specifies the location of the message broker By default this is the ActiveMQ broker embedded in the Notification Bundle

An external ActiveMQ broker can be specified instead or a different JMS providers broker can be specified if a custom JMS connection factory is provided

c The user ID and encrypted password for accessing the queue are also specified in the bundle configuration

d Additional properties enable the notification mechanism to be tuned by disabling specific notification types and by specifying whether messages should be sent to a queue or a topic

3 The JMS Client Library is responsible for sending a JMS-compliant message to the appropriate queue or topic on the specified broker

4 The message broker receives the message on one of its queues or topics Depending on the brokers settings the message might be persisted to a configured persistence provider By default KahaDB is used by the built-in ActiveMQ broker

5 A custom message consumer reads the message from the queue or topic The consumer examines the message and determines whether to process it or discard it

Processing the message might involve sending it to a line of business system (for example a CRM system) or an Enterprise Service Bus (ESB) or Message Queue from where it will be processed by another system

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 112

EngageOne notifications

Topics and queues

JMS has two similar but different mechanisms for delivering messages

bull Topic - implements a publisher-subscriber protocol Each message will be sent to all consumers that are subscribed to that topic at the time that the message is produced

By default topics are not durable so if a consumer is not active at the time that the message is produced it will not receive the message

bull Queue - implements a point to point protocol Each message will be consumed by a maximum of one consumer

By default queues are durable meaning that a message will be held for a consumer if the consumer is not active at the time that the message is produced

ActiveMQ supports a feature called virtual topics Virtual Topics combine the flexibility of topics (multiple consumers) with the durability of a queue When a publisher writes a message to a virtual topic the consumers can choose to read it from a topic or a queue

Virtual topics are described in the ActiveMQ documentation here httpactivemqapacheorgvirtual-destinationshtml

By default EngageOne Notifications uses virtual topics but it is possible to configure it to use standard queues or topics instead This can be controlled through settings in deployproperties as described in Configuration Settings

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 113

EngageOne notifications

Configuration settings

The following settings in deployproperties can be used to configure the notifications feature at installation time or re-configuration time

Property name Default value Purpose

Properties common to all bundles

Location of the installed notification bundle CProgram FilesPitneyBowesEngageOneServernotification

notificationinstalldir

JVM settings for the notification bundle - these should not normally be changed

-Xms1g -Xmx2g-XXMaxPermSize=512m

notificationjvmsettings

The port on which the ActiveMQ web console and EngageOne health monitor can be accessed

8084notificationport

URL where the ActiveMQ web console is deployed

httpsnotification-nodepbeonet8084notificationservicesurl

Set this to true to enable https for the Notification bundle

falsenotificationhttpsenabled

(Empty)notificationtlskeyalias Specifies the name of the key if multiple certificates exist in the key store

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 114

EngageOne notifications

Configuration settings (cont)

Property name Default Purpose value

Global setting to enabledisable the Notifications feature Note that Notifications are disabled by default and must be enabled by settings this property to true

falsenotificationpublisherenabled

Name of the account used to publish messages to ActiveMQ queues and topics

eoPublishernotificationpublisherusername

Password for the publisher account It is encrypted in the deployproperties file

(Encrypted password)

notificationpublisherpassword

Name of the account used to consume messages from ActiveMQ queues and topics

eoSubscribernotificationsubscriberusername

Password for the consumer account It is encrypted in the deployproperties file

(Encrypted password)

notificationsubscriberpassword

(Empty)

This value must only be specified if the system is using an external message broker instead of the ActiveMQ instance in the Notification bundle

An example broker URL is tcpmy-jms-broker61617jmsuseAsyncSend=true

Note that jmsuseAsyncSend=true is recommended for best performance of the publishing mechanism

Time in milliseconds for which messages will be persisted in a queue Default value of zero means that messages do not expire and will be kept in the queue indefinitely

0notificationmessagetimeToLive

Properties specific to the notification bundle

notificationjmsbrokerurl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 115

EngageOne notifications

Property name Default Purpose value

Comma separated list of Communication actions that will be suppressed The available action types are Created StatusChanged DeliveryChanged CommentAdded Deleted Completed

(Empty)notificationtypecommunicationomittedactions

Comma separated list of Accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypeabatchomittedactions

Comma separated list of Non-accumulated Batch actions that will be suppressed The available action types are Started Completed

(Empty)notificationtypenabatchomittedactions

Comma separated list of Workflow Task actions that will be suppressed The available action types are Created Assigned Completed

(Empty)notificationtypeworkflowtaskomittedactions

By default EngageOne publishes its notifications to a topic If this property is changed to queue EngageOne create and write to queues instead

topicnotificationmessagedestinationtype

VirtualTopic notificationmessagedestinationbaseName

Each type of Notification message (Communication Batch Workflow) is written to its own topic or queue The topic or queue name is a combination of this base name plus the notification type for example VirtualTopicCommunication The default VitualTopic prefix instructs ActiveMQ to use virtual topics VirtualTopics are not a standard JMS capability so this prefix should be removed when using a JMS implementation other than ActiveMQ

compbnotificationactivemqpoolPooledConnectionFactorynotificationconnectionFactoryclass

Name of the class that implements the JMS connection factory The default implementation uses a pooled connection factory for ActiveMQ

ActiveMQ has its own configuration settings file activemqxml See the ActiveMQ documentation for details

It is not normally necessary to change this file because all relevant properties can be configured via deployproperties

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 116

EngageOne notifications

Note that activemqxml will be overwritten if the Notification bundle is reinstalled or upgraded and any changes to that file will be lost It is therefore strongly recommended not to modify activemqxml

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 117

EngageOne notifications

Messages

Notification messages are available for the following types of entity in EngageOne

bull Communications - also known as Work Items bull Batch - both Accumulated and Non-accumulated batch bull Workflow - task actions

Messages consist of three types of data

bull Headers - created by the underlying JMS implementation The same set of headers exists for all messages

bull Properties - application-specific fields that can be used in selections to filter messages received by a consumer

bull Content - the message body The fields available in the body vary by message type

Notification message common properties

All EngageOne notification messages contain the following common properties

Name Type Description

Type of event (corresponding to an EngageOne action Varies by message type)

PropertyeventType

Community identifier PropertycommunityId

Name of the community PropertycommunityName

Type of entity that the message relates to (Communication Batch or Workflow)

PropertyentityType

entityId Property Identifier for the entity Unique within this type of entity

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 118

EngageOne notifications

Communication messages

Communication messages have the following additional properties and content fields

Name

workItemIdentifier

status

statusDescription

templateId

Property

templateName

createdDate

creatorName

updatedDate

deliveryOptionId

ownerName

Content

batchId

Content

Content

Type

Property

Property

Property

Content

Content

Content

Content

Description

Also known as the External Identifier This field is the human-readable identifier for the communication

Status number of the Communication at the time the notification was published

Human-readable form of the status

Identifier of template the communication was based on

Name of template the communication was based on

Time stamp when the communication was created

ID of the user who created the communication

Time stamp when the communication was last updated

ID of delivery option associated with the communication

ID of user who currently owns the communication

This field is present for a communication that completes as part of a batch

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 119

EngageOne notifications

Name Type Description

Status of a delivery item that has changed

Associated with the DeliveryChanged action

ContentdeliveryStatus

ID of a delivery item whose status has changed

Associated with the DeliveryChanged action

ContentdeliveryItemId

Communication published actions

Communication messages are published for the following actions

Action Description

A new communication has been created Created

The status of a communication has changed StatusChanged

The status of a delivery item associated with the communication has changed

DeliveryChanged

A comment has been added to the communication CommentAdded

A communication has been deleted Deleted

A communication has been completed Completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 120

EngageOne notifications

Batch messages

Notification messages are available for both Accumulated and Non-accumulated batch

Accumulated batch messages

Accumulated batch messages have the following additional properties and content

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

Type of batch run (RUN RESTART RESUME) ContentrunType

Comma separated list of delivery channel names used by the batch

ContentchannelNames

Accumulated batch messages are published for the following actions

Action Description

The batch has started Started

The batch has completed The status property indicates whether the batch was successful

Completed

Non accumulated batch messages

Messages for non-accumulated batch notifications have the following additional properties and content fields

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 121

EngageOne notifications

Name Type Description

Completion status of the batch (SUCCESS or FAILED) Propertystatus

ID of the template associated with this batch ContenttemplateId

Name of the template associated with the batch ContenttemplateName

ID of the delivery option associated with the batch ContentdeliveryOptionId

Name of the delivery option associated with the batch ContentdeliveryOptionName

Comma separated list of delivery channel names used by the batch

ContentchannelNames

ContentnaBatchXmlFilePathType Location of the batch XML file

Non-accumulated batch messages are published for the following actions

Action Description

Started

Completed

The batch has started

The batch has completed The status property indicates whether the batch was successful

Workflow messages

Workflow messages have the following additional properties and content

Name Type Description

Status of the workflow task (UNASSIGNED ASSIGNED APPROVED REJECTED UNKNOWN)

Propertystatus

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 122

EngageOne notifications

Name Type Description

PropertyexternalReferenceIdType

ID of the entity that is referenced by this task When the externalReferenceIdType is ENGAGEONE the externalReferenceId is a Communication ID When the externalReferenceIdType is PROJECT_ASSET the externalReferenceId is a Designer Template ID

PropertyexternalReferenceId

ID of the user to whom the task is assigned if any Contentassignee

Community identifier PropertycommunityId

Type of external reference (ENGAGEONE PROJECT_ASSET)

Workflow messages are published for the following actions

Action Description

The task has been created Created

The task has been assigned to a user or unassigned The assignee field gives the ID of the user

Assigned

The task has been completed The status property indicates whether the task was approved or rejected

Completed

Consuming notification messages

If the deployment environment contains systems that can directly consume messages from an ActiveMQ broker then no further development work is required Integration is simply a matter of configuring the external systems to read from the ActiveMQ queues or topics

Where existing software is not available it is necessary to create a new component to integrate with the queues or topics in ActiveMQ and to consume the Notification messages

This section provides an overview of how to write such a component The ActiveMQ website and community should be consulted for additional details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 123

EngageOne notifications

All JMS implementations have their own specific client libraries The libraries for one implementation (for example ActiveMQ) will not inter-operate with other implementations such as IBMs WebSpere MQ The first step to creating a message consumer is therefore to obtain the appropriate libraries for the JMS implementation and for the programming language of the client

This section assumes the default ActiveMQ implementation is used by the Notifications feature and that the message consumer will be written in Java If the system has been configured to use a different JMS implementation or the client will be written in another language the steps will be similar but different client libraries will be required

There are many client libraries available for ActiveMQ for different programming languages such as Java NET Nodejs and Python See httpactivemqapacheorgcross-language-clientshtml for more information about the available clients and for code samples

A Java client makes use of the following namespaces

bull orgapacheactivemqActiveMQConnectionFactory - ActiveMQ specific classes required for establishing a connection with a message queue or topic

bull javaxjms - JMS classes that can be used with any JMS provider

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 124

EngageOne notifications

Consume messages from an ActiveMQ queue or topic

The basic steps to consume messages from an ActiveMQ queue or topic are as follows

Create a connection factory - the factory is specific to a particular JMS implementation (ActiveMQ) The brokerUrl will be of the form tcpservernameportActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl) Create a connection and start it The userName and password are configured at install time See notificationsubscriberusername andnotificationsubscriberpassword in deployproperties but note that the unencrypted password must be passed into the createConnectioncall below connection = connectionFactorycreateConnection(userName password)connectionstart() Create a session session = connectioncreateSession(false SessionAUTO_ACKNOWLEDGE) Create a destination - either a topic or a queueDestination destination = sessioncreateQueue(ConsumerMyConsumerVirtualTopicCommunication) or Destination destination = sessioncreateTopic(VirtualTopicCommunication) Create a consumer and set its message listener The listener class needs to implement the MessageListener interface consumer = sessioncreateConsumer(destination)consumersetMessageListener(myListener)

To stop receiving messages and close the connection

Close everythingconsumerclose()sessionclose()connectionclose()

The MessageListener interface defines a single method onMessage(Message message) Within that method the consumer can take any appropriate action to deal with the message

The following example outputs some basic information about a Communication message

public void onMessage(Message msg)try

Systemoutprintln(Stringformat(s s s

msggetStringProperty(workItemIdentifier)

msggetStringProperty(EventType)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 125

EngageOne notifications

msggetStringProperty(statusDescription))) catch (Exception ex)

Systemoutprintln(exgetMessage())

In the code above examples are provided for creating a queue destination and a topic destination

The EngageOne Notifications mechanism writes messages to virtual topics Consumers can read these messages from a topic named VirtualTopicEntityType or a queue named ConsumerConsumerNameVirtualTopicEntityType where EntityType is a Communication Batch or Workflow (( to be confirmed )) and ConsumerName is a unique name for the consuming application

Using other JMS implementations

It is possible to integrate the Notifications mechanism with other message queues This might be necessary in situations where there is an existing message queue or Enterprise Service Bus in the target environment

Three different approaches can be considered

bull If the external message queue or ESB can read from ActiveMQ then the two systems can work together

Notification messages are written to the internal ActiveMQ They flow into the external queue from where they are delivered to their ultimate destination

bull Use a bridge to join the two queues

This can either be a third party component or custom code can be written using the techniques outlined in Consuming notification messages on page 123

EngageOne publishes messages to the internal ActiveMQ and it is the responsibility of the bridge to propagate them to the external queue

bull Plug in a different JMS provider to replace the internal ActiveMQ

See Using a custom JMS connection factory on page 126 for more information

Using a custom JMS connection factory

The notificationconnectionFactoryclass property in deployproperties specifies the name of the class that implements the JMS connection factory to be used by the Notifications

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 126

EngageOne notifications

producer By default the ActiveMQ connection factory is used but this can be changed in order to use a different JMS provider such as IBM WebSphere MQ

The class specified by this property must be a custom class that implements the javajmxConnectionFactory interface and also implements an additional constructor that takes a string parameter The Notifications framework will pass a broker URL into this constructor The implementation can choose whether or not to make use of this URL

The following code shows an example of a connection factory that enables notifications to be sent to the Amazon Simple Queue Service (SQS) It wraps the SQSConnectionFactory class provided by AWS

package compbengageonesampleawsimport comamazonsqsjavamessagingSQSConnectionFactoryimport comamazonawsauthEnvironmentVariableCredentialsProviderimport comamazonawsregionsRegionimport comamazonawsregionsRegionsimport javaxjmsConnectionimport javaxjmsConnectionFactoryimport javaxjmsJMSException

public class MySqsConnectionFactory implements ConnectionFactory private SQSConnectionFactory sqsConnectionFactory

public MySqsConnectionFactory(String brokerURL) sqsConnectionFactory =

SQSConnectionFactorybuilder()withRegion(RegiongetRegion(RegionsUS_EAST_1))

withAWSCredentialsProvider(newEnvironmentVariableCredentialsProvider())

build()

public Connection createConnection() throws JMSException return sqsConnectionFactorycreateConnection()

public Connection createConnection(String userName String password)throws JMSException

return sqsConnectionFactorycreateConnection(userName password)

The custom connection factory must be packaged as a jar file and installed on all servers that will run the core or batch bundles To install the jar file at the same time as installing a bundle copy the jar to the pluginsnotification-connection-factory folder of the unzipped bundle distribution media (core or batch depending which one is being installed) then install the bundle as per the instructions in the Installation Guide

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 127

EngageOne notifications

To add or replace a connection factory after the bundle installation copy the jar file to the pluginsnotification-connection-factory folder of the installed bundle

When adding or replacing the connection factory in the core bundle a restart of the core bundle is required

The Notifications mechanism by default sends JMS messages of type ldquoMapMessagerdquo The body of these messages contains a map that allows individual values to be accessed by name MapMessage is part of the JMS standard but not all JMS implementations support it Amazonrsquos SQS is an example of a JMS implementation that does not support MapMessage When the Notifications mechanism detects that a JMS does not support MapMessages it creates TextMessages whose body consists of a set of namevalue pairs serialized into JSON Message consumers need to be certain which type of message is being received so that they can appropriately handle the content of the body Messages have a ldquotyperdquo header which can be used to distinguish them

Sample message consumers

Two sample message consumers are provided on the EngageOne installation media in the samplesnotifications folder These are not intended as production code but are intended to illustrate some techniques for consuming messages from ActiveMQ

Sample 1 is a simple Java client that listens for notification on a particular topic and outputs a summary to the console

Sample 2 is a more comprehensive application with a graphical user interface As well as providing a code sample this application can be used as a diagnostic tool for subscribing to topics and queues and for examining the details of received messages This sample is written in NET (C) and makes use of the NMS library for ActiveMQ (see httpsactivemqapacheorgnms) All the ActiveMQ code is contained in the ActiveMQClient class

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 128

7 - The comparison adapter plug-in The comparison adapter plug-in is the interface which allows for customizing the process of comparing preview PDF files generated by EngageOne Designer during the submission of templates and Active Content for review and approval In addition to the existing optional implementations provided in release distribution media it is also possible to install and configure a third-party comparison tool with custom plug-in implementation

In this section

The custom plug-in implementation 130 Example implementations 131 Plug-in Installation and configuration 135

The comparison adapter plug-in

The custom plug-in implementation

The following java interface is exposed in

ltrelease-distributiongtsamplescomparison-adapterscomparison-adapter-apijar

compbviewpointcomparisonadaptersComparisonEngineAdapter

package compbviewpointcomparisonadaptersimport compbviewpointcomparisonmodelComparisonProfileimport compbviewpointcomparisonmodelJobimport compbviewpointcomparisonmodelJobOutputimport javautilList

public interface ComparisonEngineAdapter boolean comparisonEngineEnabled()boolean comparisonEngineAvailable()ListltComparisonProfilegt getComparisonProfiles()Job startComparison(StartParameters startParameters)Job getJobStatus(Job job)JobOutput getJobOutput(Job job)void terminateJob(Job job)void purgeJob(Job job JobOutput jobOutput)

The custom plug-in implementation class must implement this interface and must have a constructor that takes no parameters A comparison-adapter-apijar file must be added as a dependency to project developing the custom class The implementation of the custom class must be written in non- blockingasynchronous manner to avoid blocking EngageOne Server

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 130

The comparison adapter plug-in

Example implementations

DocBridgereg Delta

An example DocBridge Delta implementation is provided in

ltrelease-distributiongtsamplescomparison-adaptersdocbridge-delta

This implementation uses DocBridgereg Delta server native REST API calls refer to the source code for details

It is important to note that the DocBridgereg Delta plug-in sample distributed with the release media simply provides a starting point from which you may need to make configuration changes to enable proper alignment with your operational requirements

Simple comparison plug-in

This implementation requires

1 get comparison profile names

2 invoke the comparison plug-in and get the PDF containing the results of the comparison

In order to simplify implementation a PdFComparator interface is provided

compbviewpointcomparisonadapterssimplePdFComparator

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonmodelJobOutputimport javaioInputStreamimport javautilList

public interface PdFComparator JobOutput compare(String configurationName InputStream

originalPdfInputStream InputStream changedPdfInputStream)ListltStringgt getConfigurationNames()

A SimplePdFComparator class example implementation of PdFComparator interface is provided in the distribution media at the following location

ltrelease-distributiongtsamplescomparison-adapterssimple-adapter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 131

The comparison adapter plug-in

The SimplePdFComparator implements a pixel-by-pixel page comparison approach refer to the source code in the release media for details

Comparison-adapter-apijar also contains implementations so that the BaseComparisonEngineAdapter base class can be extended The base class already implements non-blocking behavior and only requires the implementation to access the PdFComparator interface

A good example of this approach is presented below

compbviewpointcomparisonadapterssimpleSimpleComparisonEngineAdapter

package compbviewpointcomparisonadapterssimple

import compbviewpointcomparisonadaptersPdFComparatorimportcompbviewpointcomparisonadaptersimplBaseComparisonEngineAdapter

public class SimpleComparisonEngineAdapter extendsBaseComparisonEngineAdapter

Overrideprotected PdFComparator createPdFComparator()

return new SimplePdFComparator()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 132

The comparison adapter plug-in

Command line adapter implementation

A similar approach is used for CommandLineComparisonEngineAdapter implementation

compbviewpointcomparisonadapterscommandlineCommandLineComparisonEngineAdapter

package compbviewpointcomparisonadapterscommandline

import compbviewpointcomparisonadaptersPdFComparatorimport orgslf4jLoggerimport orgslf4jLoggerFactoryimport javautilList

public class CommandLineComparisonEngineAdapter extendsBaseComparisonEngineAdapter

private static final Logger logger = LoggerFactorygetLogger(CommandLineComparisonEngineAdapterclass)

public static final StringCOMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX =

commandlinecomparisonadapterprofilesprivate static final String

COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED = Commands profiles for comparison plugin not configured

public CommandLineComparisonEngineAdapter() CommandLinePdfComparator commandLinePdfComparator =

(CommandLinePdfComparator) pdFComparator

getCommandsProfiles()forEach(commandLinePdfComparatoraddCommandProfile)

Overrideprotected PdFComparator createPdFComparator()

return new CommandLinePdfComparator()

private ListltCommandProfilegt getCommandsProfiles() try

CommandProfilesReader profilesReader = new CommandProfilesReader(SystemgetProperties()

COMMAND_LINE_COMPARISON_ADAPTER_PROFILES_PREFIX)ListltCommandProfilegt commandProfiles =

profilesReadergetCommandProfiles()if (commandProfilessize() == 0)

throw new RuntimeException(COMMANDS_FOR_COMPARISON_PLUGIN_NOT_CONFIGURED)

return commandProfiles

catch (Exception e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 133

The comparison adapter plug-in

loggererror(egetMessage())throw new RuntimeException(e)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 134

The comparison adapter plug-in

Plug-in Installation and configuration

Once the custom plug-in implementation has been written you will need to install and configure as follows

Installation

The custom implementation must be packaged as a jar file and installed on all servers that will run the core bundles To install the jar files at the same time as installing a bundle copy

the jar file along with its transient jars to the

ltrelease-distributiongtbundlescorepluginscomparison-engine-adaptersltanyfoldergt

folder of the unzipped core bundle distribution media then install the bundle as per the instructions in the Comparison plug-in support section of the Installation Guide To add or replace a plug-in after the core bundle installation copy the jar files to

ltBundle installation root foldergtcorepluginscomparison-engine-adaptersltany foldergt

folder of the installed core bundle

When adding or replacing the plug-in in the core bundle a restart of the core bundle is required

Configuration

The final configuration requirement is to

1 set the comparisonadapterclass property in deployproperties which specifies the name of the class to be used by the comparison process

2 Run eos groovy script in order to configure core bundle as per the instructions in the Installation Guide

For example a stand alone server

eosgroovy -b core -p deployproperties -t single configure

Along with plug-in jars any java properties files can be copied to plugin folder Note that all properties files will be automatically loaded to system properties and can be retrieved calling SystemgetProperties()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 135

8 - Appendix A - Editor methods The following is a list of editor methods

In this section

LoadContents 137 SaveContents 137 SpellCheck 138 IsComplete 138 IsModified 139 GetVersion 139

Appendix A - Editor methods

LoadContents

LoadContents

Function

Syntax

SaveContents

SaveContents

Function

Syntax

Comments

Instructs the Interactive Editor to load the document files passed in

VOID LoadContents (PropertiesXmlPath PublicationPath HipPath InstanceXMLPath InstanceSchemaPath XFormPath ReviewModeFlag SpellCheckMode ServerUrl SpellerXmlPath)

Allows you to save the current state of a loaded document The collected data will be streamed from a field into the instance file at the location passed via InstanceXMLPath

The document content will be saved back to the publication file PublicationPath The updated Production HIP HipPath will be saved

VOID SaveContents( VOID )

IsComplete() should be called before SaveContents() to ensure all required fields have been completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 137

Appendix A - Editor methods

SpellCheck

SpellCheck

Function

Syntax

IsComplete

IsComplete

Function

Syntax

Comments

Instructs the editor to spell check all user editable content

VOID SpellCheck( VOID )

Checks to see if all required fields have been completed Returns ldquo1rdquo if the document is complete and ldquo0rdquo if not

BOOL IsComplete( VOID )

This method must be called prior to SaveContents to ensure the document is complete

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 138

Appendix A - Editor methods

IsModified

IsModified

Function

Syntax

Comments

GetVersion

GetVersion

Function

Syntax

Note This method will not tell you if any data fields have been modified

Checks to see if any of the documentrsquos editable content has been modified The editable content is saved in the HIP and PUBX file If editable content has not been modified these files will not need saving back to the server

Returns ldquo1rdquo if the document is modified and ldquo0rdquo if not

BOOL IsModified( VOID )

This method can be called to add efficiency to your process It avoids uploading a Publication file and Production HIP file back to the server if no modification has been made

Returns a string containing the current version number of the Interactive Editor For example 5046352

STRING GetVersion( VOID )

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 139

9 - Appendix B - SOAP API This section describes relevant EngageOne Web services that could be utilized for custom application integration

In this section

Identifiers 141 Search filter 142 Promotion service 143 Folder service 164 Data push service 168 Delivery management service 170 Dictionary service 178 Domain service 180 Editor service 182 Keymap service 185 Metadata service 193 Request status update service 196 Security service 198 Template service 204 Workitem service 227 Attachment service 252 Workflow service 264 Delivery service 276

Appendix B - SOAP API

Identifiers

Many of the services accept as part of their requests identifiers for various entities in the system

For example in order to search for templates the TemplateServices searchTemplates operations take in an optional template identifier The identifiers as part of the request are of two forms either an IntegerIdOrName or a StringIdOrName Refer to the listing of inputs for each service below to see which operations take which identifier

Most of the entities in the system are uniquely identified by a unique integer value When searching for those types of entities you would use the IntegerIdOrName On the other hand domains are entities which are uniquely identified by a string identifier so you would need to use a StringIdOrName when searching for those

In either case all entities can be searched by using the name of the entity IntegerIdOrName and StringIdOrName are choice constructs which allow the name of an entity to be specified Please keep in mind that the name of an entity is not necessarily unique in the system and will potentially return more than one entity

The format of the IntegerIdOrName and StringIdOrName elements are as follows

lttemplategtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlttemplategt

The id element is a string for domain entities and an integer otherwise

All service operations that return entities will return the unique identifiers of the entities This way you can obtain the unique identifiers for use in subsequent calls to the services

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 141

Appendix B - SOAP API

Search filter

For most search operations the request message will include the filter element The filter can be LIST or DETAIL

ltcomfiltergtLISTltcomfiltergt

If you specify LIST less information will be returned in the response

DETAIL means the response will contain more detailed information

Consult the documentation below for each search operation to see the exact meaning of LIST versus DETAIL

For example if you want to return a listing of templates you would use the LIST filter in the request

lttemSearchTemplatesgtltcomfiltergtLISTltcomfiltergt

lttemSearchTemplatesgt

On the other hand if you want to retrieve a template with all of the files (returned as attachments) with the response you would use the DETAIL filter in the request

lttemSearchTemplatesgtltcomfiltergtDETAILltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomnamegtSimple Templateltcomnamegtltidentgt

lttemplategtlttemplatesgt

lttemSearchTemplatesgtFile Attachments

All files sent into a service operation request and returned from a service operation response are transferred as MTOM attachments

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 142

Appendix B - SOAP API

Promotion service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSPromotionServicewsdl

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 143

Appendix B - SOAP API

createImportAssetsJob()

Description this web service creates an import assets job

Parameters

InputCreateImportAssetsJob

request type CreateImportAssetsJob - extension of type RequestMessage importItems type ImportItem - minOccurs=1 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

priority type boolean - minOccurs=0 maxOccurs=1

OutputCreateImportAssetsJobResponse

response type CreateImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 144

Appendix B - SOAP API

Fault PromotionFault - fault type ServiceFault

Sample request (Open Import)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltfilePathgtDprojectpromotionpreviewfolder1OnezipltfilePathgt

ltdestinationFoldergtfolder1ltdestinationFoldergtltimportItemsgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgt

ltprioritygttrueltprioritygtltpromCreateImportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 145

Appendix B - SOAP API

Sample request (Promotion Bundle)

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromCreateImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser3ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltimportItemsgt

ltmodfilePathgtDprojectpromotionpreviewfolder2promotion-2018-02-08_08_49_23_758-7291assets-descriptorjsonltmodfilePathgt

ltmoddestinationFoldergtfolder2ltmoddestinationFoldergtltimportItemsgtltprioritygttrueltprioritygt

ltpromCreateImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENV Header xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3CreateImportAssetsJobResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt0e273a8b-321d-4b6d-975a-60357c8aeb50lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_13_49_5983-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtwaitingltns4statusgt

ltimportJobInfogtltns3CreateImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 146

Appendix B - SOAP API

getImportAssetsJob()

Description This Web service gets an import assets job

Parameters

InputGetImportAssetsJob

request type GetImportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

OutputGetImportAssetsJobResponse

response type GetImportAssetsJobResponse - extension of type ResponseMessage

importJobInfo type ImportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ImportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ImportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1 resourceIds type int - minOccures=0 maxOccurs=unbounded

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 147

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltjobIdgt2017-03-31_12_16_45372-importltjobIdgt

ltpromGetImportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 148

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt252feaad-71ef-434e-b50e-b5861e1b3bb7lttokengt

ltSessionTokengtltauthContextgtltimportJobInfogt

ltns4idgt2017-03-31_12_16_45372-importltns4idgtltns4groupgtimportltns4groupgtltns4typegtimportltns4typegtltns4statusgtcompleteltns4statusgtltns4overallResultgt

ltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtimportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4relativePathFromDescriptorgt

MyTemplatezipltns4relativePathFromDescriptorgtltns4rootPathgtDTemplatesltns4rootPathgt

ltns4assetgtltns4resultgt

ltns4statusgtcompleteltns4statusgtltns4startTimegt2017-03-31 121700357ltns4startTimegtltns4endTimegt2017-03-31 121716205ltns4endTimegtltns2resourceIdsgt47730ltns2resourceIdsgt

ltns4resultgtltns4assetsResultsgt

ltimportJobInfogtltns3GetImportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 149

Appendix B - SOAP API

createExportAssetsJob()

Description this Web Service operation is used to create an export assets job

Parameters

Input

CreateExportAssetsJob

request type CreateExportAssetsJob - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType type- string with restriction

enum FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTIONminOccurs=1 maxOccurs=1

options type ExportOption - minOccurs=0 maxOccurs=unbounded

name string - with restriction enum includeSubFoldersdeliveryOptionImportStrategy minOccurs=1 maxOccurs=1

value type string - minOccurs=1 maxOccurs=1

option related to FOLDER asset type includeSubFolders true | false

option related to DELIVERY_OPTION asset type deliveryOptionImportStrategyOMIT_IF_ANY_CONFLICT | MERGE_NEW_CHANNELS | OVERWRITE_EVERYTHING

exportDirectory type string - minOccurs=1 maxOccurs=1

Comment use id or assetLogicalPath parameter alternatively in the request

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 150

Appendix B - SOAP API

CreateExportAssetsJobResponse

response type CreateExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 151

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgtltsoapenvHeadergtltsoapenvBodygt

ltpromCreateExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtfolder1ltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportItemsgt

ltmodassetLogicalPathgtmyDeliveryOptionltmodassetLogicalPathgtltmodtypegtDELIVERY_OPTIONltmodtypegtltmodoptionsgt

ltmodnamegtdeliveryOptionImportStrategyltmodnamegtltmodvaluegtOVERWRITE_EVERYTHINGltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromCreateExportAssetsJobgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3CreateExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt1001fb8e-183d-405b-b420-7276fb82bee5lttokengtltSessionTokengt

ltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtwaitingltns4statusgt

ltexportJobInfogtltns3CreateExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 152

Appendix B - SOAP API

getExportAssetsJob()

Description this Web service gets an export assets job

Parameters

Input

GetExportAssetsJob

request type GetExportAssetsJob - extension of type RequestMessage

bull jobId type string - minOccurs=1 maxOccurs=1

Output

GetExportAssetsJobResponse

response type GetExportAssetsJobResponse - extension of type ResponseMessage

exportJobInfo type ExportJobInfo - minOccurs=1 maxOccurs=1 id type string - minOccurs=0 maxOccurs=1 group type string - minOccurs=0 maxOccurs=1 type type string - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 overallResult type OverallResult - minOccurs=0 maxOccurs=1

startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 totalAssetsCount type int - minOccurs=0 maxOccurs=1 inProgressAssetsCount type int - minOccurs=0 maxOccurs=1 completedAssetsCount type int - minOccurs=0 maxOccurs=1 completedWithWarningsAssetsCount type int - minOccurs=0 maxOccurs=1 failedAssetsCount type int - minOccurs=0 maxOccurs=1 waitingAssetsCount type int - minOccurs=0 maxOccurs=1

assetsResults type ExportAssetResult- minOccurs=0 maxOccurs=unbounded type type string - minOccurs=0 maxOccurs=1 asset type Asset - minOccurs=0 maxOccurs=1

name type string - minOccurs=0 maxOccurs=1 sourceResourceId type string - minOccurs=0 maxOccurs=1 relativePathFromDescriptor type string - minOccurs=0 maxOccurs=1 rootPath type string - minOccurs=0 maxOccurs=1

result type ExportJobResult - minOccurs=0 maxOccurs=1 status type string - minOccurs=0 maxOccurs=1 startTime type string - minOccurs=0 maxOccurs=1 endTime type string - minOccurs=0 maxOccurs=1 warnings type string - minOccurs=0 maxOccurs=unbounded failMessage type string - minOccurs=0 maxOccurs=1 stackTrace type string - minOccurs=0 maxOccurs=1

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 153

Appendix B - SOAP API

Fault

PromotionFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetExportAssetsJobgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtPmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltjobIdgt2017-04-07_11_46_16456-exportltjobIdgtltpromGetExportAssetsJobgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 154

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetExportAssetsJobResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt501a02fe-a29e-474b-8130-dc1549caa48clttokengt

ltSessionTokengtltauthContextgtltexportJobInfogt

ltns4idgt2017-04-07_11_46_16456-exportltns4idgtltns4groupgtcommunity1export0ltns4groupgtltns4typegtexportltns4typegtltns4statusgtcompletedltns4statusgtltns4overallResultgt

ltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegtltns4totalAssetsCountgt1ltns4totalAssetsCountgtltns4inProgressAssetsCountgt0ltns4inProgressAssetsCountgtltns4completedAssetsCountgt1ltns4completedAssetsCountgtltns4completedWithWarningsAssetsCountgt0

ltns4completedWithWarningsAssetsCountgtltns4failedAssetsCountgt0ltns4failedAssetsCountgtltns4waitingAssetsCountgt0ltns4waitingAssetsCountgt

ltns4overallResultgtltns4assetsResultsgt

ltns4typegtexportltns4typegtltns4assetgt

ltns4namegtOneltns4namegtltns4sourceResourceIdgt115ltns4sourceResourceIdgtltns4relativePathFromDescriptorgtassetsasset-0001zip

ltns4relativePathFromDescriptorgtltns4rootPathgtdMyAssetsexportpromotion-2017-04-07_11_46_16_205-9465

ltns4rootPathgtltns4assetgtltns4resultgt

ltns4statusgtCOMPLETEDltns4statusgtltns4startTimegt2017-04-07 1146309ltns4startTimegtltns4endTimegt2017-04-07 11463393ltns4endTimegt

ltns4resultgtltns4assetsResultsgt

ltexportJobInfogtltns3GetExportAssetsJobResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 155

Appendix B - SOAP API

getImportPreview()

Description this web Service operation is used to get a preview of the import

Parameters

Input

GetImportPreview

request type GetImportPreview - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 mode type ImportPreviewMode - type string with restriction -

enum PROMOTION ZIPS PARSED_ZIPS- minOccurs=1 maxOccurs=1

openImportRegularExpressionFilter type string - minOccurs=0 maxOccurs=1

Output

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 156

Appendix B - SOAP API

GetImportPreviewResponse

response type GetImportPreviewResponse - extension of type ResponseMessage

importItems type ImportItem - minOccurs=0 maxOccurs=unbounded

filePath type string - minOccurs=1 maxOccurs=1 destinationFolder type string - minOccurs=1 maxOccurs=1

previewRoot type ImportPreviewFolder - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1

assets type ImportPreviewAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum FOLDER TEMPLATE AC UNKNOWN - minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=4 maxOccurs=unbounded path type string - minOccurs=1 maxOccurs=1 fileName type string - minOccurs=1 maxOccurs=1 eoVersion type string - minOccurs=1 maxOccurs=1

subFolders type ImportPreviewFolder - minOccurs=0 maxOccurs=unbounded

globalAssets type ImportPreviewGlobalAsset - minOccurs=0 maxOccurs=unbounded type type AssetType - type string with restriction -

enum ACDOCUMENT_CLASS- minOccurs=1 maxOccurs=1

name type string - minOccurs=1 maxOccurs=1 comments type string - minOccurs=0 maxOccurs=unbounded fileName type string - minOccurs=1 maxOccurs=1

totalAssetsCount type int - minOccurs=1 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 157

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpreviewltpathgtltmodegtPARSED_ZIPSltmodegt

ltpromGetImportPreviewgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 158

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3GetImportPreviewResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewspromotionxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtaffff535-b301-4d69-bd61-75c3df400246lttokengtltSessionTokengt

ltauthContextgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder1Onezipltns4filePathgt

ltns4destinationFoldergtfolder1ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder2PublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder2ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderfolder4Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderfolder4ltns4destinationFoldergt

ltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3ac_folderPublishableActiveContentzipltns4filePathgt

ltns4destinationFoldergtfolder3ac_folderltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewfolder3Onezipltns4filePathgt

ltns4destinationFoldergtfolder3ltns4destinationFoldergtltimportItemsgtltimportItemsgt

ltns4filePathgtDprojectpromotionpreviewOnezipltns4filePathgtltns4destinationFoldergtltns4destinationFoldergt

ltimportItemsgtltpreviewRootgt

ltns4typegtTEMPLATEltns4typegtltns4namegtrootltns4namegtltns4pathgtltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtOneltns4pathgtltns4fileNamegtDprojectpromotionpreviewOnezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder1ltns4namegtltns4pathgtfolder1ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder1Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder1

Onezipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtACltns4typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 159

Appendix B - SOAP API

ltns4namegtfolder2ltns4namegtltns4pathgtfolder2ltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder2Publishable Active Contentltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder2

PublishableActiveContentzipltns4fileNamegtltns4assetsgt

ltns4subFoldersgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder3ltns4namegtltns4pathgtfolder3ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

Onezipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtACltns4typegtltns4namegtac_folderltns4namegtltns4pathgtfolder3ac_folderltns4pathgtltns4assetsgt

ltns4typegtACltns4typegtltns4namegtPublishable Active Contentltns4namegtltns4pathgtfolder3ac_folderPublishable Active

Contentltns4pathgt ltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderPublishableActiveContentzipltns4fileNamegtltns4assetsgtltns4subFoldersgt

ltns4typegtTEMPLATEltns4typegtltns4namegtfolder4ltns4namegtltns4pathgtfolder3ac_folderfolder4ltns4pathgtltns4assetsgt

ltns4typegtTEMPLATEltns4typegtltns4namegtOneltns4namegtltns4pathgtfolder3ac_folderfolder4Oneltns4pathgtltns4fileNamegtDprojectpromotionpreviewfolder3

ac_folderfolder4Onezipltns4fileNamegt

ltns4assetsgtltns4subFoldersgt

ltns4subFoldersgtltns4subFoldersgt

ltpreviewRootgtlttotalAssetsCountgt8lttotalAssetsCountgt

ltns3GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 160

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsprom=httppbcomEngageOnewspromotionxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetImportPreviewgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity2ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser2ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltpathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401assets-descriptorjsonltpathgt

ltmodegtPROMOTIONltmodegtltpromGetImportPreviewgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns4GetImportPreviewResponse xmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtd046d82b-c954-42b4-aca7-cd0a6455ee0elttokengt

ltSessionTokengtltauthContextgtltimportItemsgt

ltns2filePathgtDprojectpromotionpromotion-2017-09-11_14_05_22_734-6401

assets-descriptorjsonltns2filePathgtltimportItemsgtltpreviewRootgt

ltns2typegtTEMPLATEltns2typegtltns2namegtrootltns2namegtltns2pathgtltns2pathgtltns2assetsgt

ltns2typegtTEMPLATEltns2typegtltns2namegtTemplate1ltns2namegtltns2pathgtTemplate1ltns2pathgtltns2fileNamegttemplate1zipltns2fileNamegtltns2eoVersiongt10ltns2eoVersiongt

ltns2assetsgtltpreviewRootgtltglobalAssetsgt

ltns2typegtDOCUMENT_CLASSltns2typegtltns2namegtmyDocumentClassltns2namegtltns2fileNamegtdocumentClass1jsonltns2fileNamegt

ltglobalAssetsgtlttotalAssetsCountgt2lttotalAssetsCountgt

ltns4GetImportPreviewResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 161

Appendix B - SOAP API

getAssetDependencies()

Description this Web Service operation retrieves export assets dependencies

Parameters

Input

GetAssetDependencies

request type GetAssetDependencies - extension of type RequestMessage

exportItems type ExportItem - minOccurs=1 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum

FOLDER TEMPLATE AC DOCUMENT_CLASS DEVICE DELIVERY_OPTION - minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=unbounded see

CreateExportAssetsJob() operation for ExportOption definition

Comment use id OR assetLogicalPath parameter in request

Output

GetAssetDependenciesResponse

response type GetAssetDependenciesResponse - extension of type ResponseMessage

exportItems type ExportItem - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 assetLogicalPath type string - minOccurs=1 maxOccurs=1 type type AssetType - type string with restriction - enum AC DOCUMENT_CLASS -

minOccurs=1 maxOccurs=1 options type ExportOption - minOccurs=0 maxOccurs=1

Fault

PromotionFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 162

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope[

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelope|httpschemasxmlsoaporgsoapenvelope]

xmlnsprom=httppbcomEngageOnewspromotion

xmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltpromGetAssetDependenciesgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltexportItemsgt

ltmodassetLogicalPathgtltmodassetLogicalPathgtltmodtypegtFOLDERltmodtypegtltmodoptionsgt

ltmodnamegtincludeSubFoldersltmodnamegtltmodvaluegttrueltmodvaluegt

ltmodoptionsgtltexportItemsgtltexportDirectorygtdMyAssetsexportltexportDirectorygt

ltpromGetAssetDependenciesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltsoapEnvelope[

xmlnssoap=httpschemasxmlsoaporgsoapenvelopegt|httpschemasxmlsoaporgsoapenvelope]

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetAssetDependenciesResponse[

xmlnsns2=httppbcomEngageOnewsmodel|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewspromotiongtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengt86d472c5-fc85-4552-8ed4-a979f9778c6alttokengt

ltSessionTokengtltauthContextgtltexportItemsgt

ltns2idgt357ltns2idgtltns2assetLogicalPathgtmyDocumetClassltns2assetLogicalPathgtltns2typegtDOCUMENT_CLASSltns2typegt

ltexportItemsgtltns4GetAssetDependenciesResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 163

Appendix B - SOAP API

Folder service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSFolderServicewsdl

listFolderContents()

Description

This Web Service operation is used to list folder contents

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 164

Appendix B - SOAP API

Parameters

Input

ListFolderContents

request type ListFolderContents - extension of type RequestMessage

path type string - minOccurs=1 maxOccurs=1 filter type ListFolderContentsFilter - minOccurs=0 maxOccurs=unbounded ListFolderContentsFilter - type string enum

values FOLDER TEMPLATENON-INTERACTIVE-FOLDERNON-INTERACTIVE-TEMPLATEACTIVE-CONTENT-FOLDERACTIVE-CONTENTVERSION

mode type ListFolderContentsMode - minOccurs=1 maxOccurs=1 default=POPULATED ListFolderContentsMode - type string enum values POPULATED ALL

Output

ListFolderContentsResponse

response type ListFolderContentsResponse - extension of type ResponseMessage

folderContent type FolderContent - minOccurs=1 maxOccurs=1 id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 folders type Folder - minOccurs=0 maxOccurs=unbounded templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded

templates type FolderTemplate - minOccurs=0 maxOccurs=unbounded id type int - minOccurs=1 maxOccurs=1 name type string - minOccurs=1 maxOccurs=1 description type string - minOccurs=1 maxOccurs=1 path type string - minOccurs=1 maxOccurs=1 type type string - minOccurs=1 maxOccurs=1 interactive type boolean - minOccurs=1 maxOccurs=1 versions type FolderVersion - minOccurs=0 maxOccurs=unbounded

id type int - minOccurs=1 maxOccurs=1 current type boolean - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1

importedBy type string - minOccurs=1 maxOccurs=1 importedDate type string - minOccurs=1 maxOccurs=1 version type string - minOccurs=1 maxOccurs=1 publishDate type string - minOccurs=1 maxOccurs=1

Fault

FolderFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 165

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsfol=httppbcomEngageOnewsfolder xmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltfolListFolderContentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltpathgtltpathgtlt--Optional--gtltfiltergtACTIVE-CONTENT-FOLDERltfiltergtltfiltergtFOLDERltfiltergtltfiltergtTEMPLATEltfiltergtltmodegtALLltmodegt

ltfolListFolderContentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 166

Appendix B - SOAP API

Sample response

ltsoapEnvelope xmlnssoap=httpschemasxmlsoaporgsoapenvelopegtltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegtltsoapBodygt

ltns3ListFolderContentsResponse xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsfoldergt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9c3d1b67-322b-4091-a850-b17df1fe4f44lttokengtltSessionTokengt

ltauthContextgtltfolderContentgt

ltidgt0ltidgtltfoldersgt

ltidgt547ltidgtltnamegtac_folderltnamegtltdescriptiongtac_folderltdescriptiongtlttypegtactive-contentlttypegt

ltfoldersgtltfoldersgt

ltidgt1012ltidgtltnamegttemplate_folderltnamegtlttypegttemplatelttypegt

ltfoldersgtlttemplatesgt

ltidgt844ltidgtltnamegtOneltnamegtltdescriptiongtOneltdescriptiongtltpathgtltpathgtlttypegttemplatelttypegtltinteractivegttrueltinteractivegtltimportedBygtuser1ltimportedBygtltimportedDategtThu Apr 20 000000 CEST 2017ltimportedDategtltversiongt10ltversiongtltpublishDategt22-Apr-2015ltpublishDategt

lttemplatesgtltfolderContentgt

ltns3ListFolderContentsResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 167

Appendix B - SOAP API

Data push service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDataPushServicewsdl

pushData()

Description

This Web service pushes data into the EngageOne Server

This Web service validates request data then invokes a common framework for mapping or persisting the data passed in by the service request

Parameters

Input

PushDataRequest

request type PushData - extension of type RequestMessage

template type TemplateIdentifier - optionalident type IntegerIDOrName - optionaleffectiveDate type date - optional

pushDataFile type DataPushFile data type base64Binary

mapId type string returnFiles type boolean - optionalpushUserId type string - optionalexternalId type string - optional

Output

PushDataResponse

response type PushDataResponse - extension of type ResponseMessage

workItem type workItem - optional

Fault

DataPushFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 168

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopegtltsoapenvBodygtltns11PushData xmlnsns11=httppbcomEngageOnewsdatapush

xmlnsxsi=httpwwww3org2001XMLSchema-instancexsitype=ns11PushDatagt

ltauthContext xmlns=httppbcomEngageOnewscommongtltUsernameTokengt ltdomaingt ltidentgt ltnamegtEngageOneltnamegt

ltidentgtltdomaingtltuserIdgteosuperltuserIdgtltpasswordgtPassword1ltpasswordgt

ltUsernameTokengtltauthContextgtltpushDataFilegtltdatagtltdatagt

ltpushDataFilegtltmapIdgttestltmapIdgtltpushUserIdgteomanagerltpushUserIdgtltexternalIdgt1234567ltexternalIdgt

ltns11PushDatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns1PushDataResponse

xmlnsns1=httppbcomEngageOnewsdatapushxmlnsns2=httppbcomEngageOnewsmodel

xmlnsns3=httppbcomEngageOnewscommongtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtb9da9e70833f22a93b71ac2671aed830_1275060509093_2lttokengtltSessionTokengt

ltauthContextgtltns1PushDataResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 169

Appendix B - SOAP API

Delivery management service

suspendDeliveryItem()

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryManagementServicewsdl

searchDeliveryOptions()

Description

This Web service retrieves delivery options by delivery option ID or name or the delivery options associated with a given template ID or name

If the search filter is set to LIST a list of delivery options will be returned without their respective delivery channels If the search filter is DETAIL the delivery channels devices and recipients will also be returned

If both template and delivery option details are provided in the request templates will be searched that match both the template and delivery option criteria

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 170

Appendix B - SOAP API

Parameters

Input

SearchDeliveryOptionsRequest

request type SearchDeliveryOptions - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionident type IntegerIdOrName

Output

SearchDeliveryOptionsResponse

response type SearchDeliveryOptionsResponse - extension of type ResponseMessage

deliveryOptions - optionaldeliveryOption - unbounded type DeliveryOption - extension of abstract type Entity id type ID - type int with restriction name type string channels - optional

channel - unbounded type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string

mode type DeliveryChannelMode - type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

Device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 171

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryOptionsgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2119ec197f798916ec4ddaa4eaa50939_1260816474406_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

ltcomidgtltcomidgtltidentgt

ltdeliveryOptiongtltdeliveryOptionsgt

ltdelSearchDeliveryOptionsgtltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 172

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryOptionsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryOptionsgtltdeliveryOptiongt

ltns2idgt1ltns2idgtltns2namegtCHO1ltns2namegt

ltdeliveryOptiongtltdeliveryOptionsgt

ltns4SearchDeliveryOptionsResponsegtltenvBodygt

ltenvEnvelopegt

searchDevices()

Description

This Web service retrieves devices by device ID or name or devices associated with the specified delivery options or templates

The search filter is not used by this service

If device template delivery option details are provided in the request devices will be searched that match all of the provided criteria

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 173

Appendix B - SOAP API

Parameters

Input

SearchDevicesRequest

request type SearchDevices - extension of type SearchRequestMessage

templates - optionaltemplateident type IntegerIdOrName

deliveryOptions - optionaldeliveryOptionsident type IntegerIdOrName

devices - optionaldevice - unboundedident type IntegerIdOrName preview - optional type boolean

Output

SearchDevicesResponse

response type SearchDevicesResponse extension of type ResponseMessage

devices - optionaldevice - unbounded type Device - extension of abstract type Entity id type ID - type int with restriction name type string type DeviceType - type string with restriction - enum PDF PS AFP HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

Fault

DeliveryManagementFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 174

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryManagementxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDevicesgt lt--Optional--gtltcomauthContextgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomUsernameTokengt ltcomdomainNamegtFirstDomainltcomdomainNamegtltcomuserIdgteosuperltcomuserIdgt

lt--Optional--gtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gtltcomfiltergtDETAILltcomfiltergtlt--Optional--gtlttemplatesgt

lttemplategtltidentgt lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltidentgt

lttemplategtlttemplatesgtlt--Optional--gtltdeliveryOptionsgt

ltdeliveryOptiongtltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 175

Appendix B - SOAP API

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltdeliveryOptiongt

ltdeliveryOptionsgtlt--Optional--gtltdevicesgt lt--1 or more repetitions--gt

ltdevicegt ltidentgt

lt--You have a CHOICE of the next 2 items at this level--gt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtlt--Optional--gtltpreviewgtltpreviewgt

ltdevicegtltdevicesgt

ltdelSearchDevicesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 176

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchDevicesResponsexmlnsns1=httppbcomEngageOnewsdeliveryManagementxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryManagementxmlnsns5=httppbcomEngageOnewseditorgtltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt lttokengtbfdba5d08d1299b13651c7c6e25df6a1_1260900326187_0lttokengt

ltSessionTokengtltauthContextgt

ltdevicesgt ltdevicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgt

ltns2HIPIdgt110ltns2HIPIdgtltns2metaIdgt111ltns2metaIdgt

ltdevicegtltdevicesgt

ltns1SearchDevicesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 177

Appendix B - SOAP API

Dictionary service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDictionaryServicewsdl

searchSpellerManifest()

Description

This Web service is used to retrieve the speller manifest loaded in the system

The speller manifest contains a listing of all languages supported by the system and is primarily used by EngageOne Interactive Editor (ActiveX component) for loading dictionary resources

A custom application will not need to parse this file directly but make it available for the Interactive Editor to use

For more infromation on how to integrate the Interactive Editor into a custom application see Integrating with EngageOne SOAP

Parameters

Input

SearchSpellerManifestRequest

request type SearchSpellerManifest - extension of type SearchRequestMessage

Output

SearchSpellerManifestResponse

response type SearchSpellerManifestResponse - extension of type ResponseMessage

manifest - optional type SpellerManifest - extension of abstract type Entity id type ID - type int with restriction data - optional type base64Binary

Fault

DictionaryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 178

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdic=httppbcomEngageOnewsdictionaryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdicSearchSpellerManifestgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltdicSearchSpellerManifestgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchSpellerManifestResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdictionaryxmlnsns5=httppbcomEngageOnewskeymapgt

ltmanifestgt ltns2idgt97ltns2idgtltns2datagt

ltxopIncludehref=ciddata-92afb4f2-e02b-41d0-926b-7eb02575fee1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltmanifestgt

ltns4SearchSpellerManifestResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 179

Appendix B - SOAP API

Domain service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDomainServicewsdl

searchDomains()

Description

This Web service can be used to retrieve a list of EngageOne domains A typical use for this operation would be to pass an empty request and retrieve a list of all domains

This Web service operation is the only operation which does not require authentication

Parameters

Input

SearchDomainsRequest

request type SearchDomains - extension of type RequestMessage

domains - optionaldomain ident type StringIdOrName

Output

SearchDomainResponse

response type SearchDomainsResponse - extension of type ResponseMessage

domains - optionaldomain - unbounded type Domain id type string name type string

Fault

DomainFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 180

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdom=httppbcomEngageOnewsdomainxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdomSearchDomainsgt ltdomSearchDomainsgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDomainsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdomainxmlnsns5=httppbcomEngageOnewskeymapgt

ltdomainsgt ltdomaingt ltns2idgtBB81F0DC-AF0A-4318-9398-D37832916DC9ltns2idgt

ltns2namegtA01ltns2namegtltdomaingtltdomaingt ltns2idgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltns2idgt

ltns2namegtFirstDomainltns2namegtltdomaingtltdomaingt ltns2idgt29CAB1A2-586E-4459-977B-C11819A1680Dltns2idgt

ltns2namegtSecondDmainltns2namegtltdomaingtltdomaingt ltns2idgt232CD981-5208-4C4D-A89B-C3B739266C54ltns2idgt

ltns2namegtThirdltns2namegtltdomaingt

ltdomainsgtltns4SearchDomainsResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 181

Appendix B - SOAP API

Editor service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSEditorServicewsdl

Note Some tags have been broken up for formatting purposes

retrieveResources()

Description

This Web service is used to retrieve resources required by the EngageOne Interactive Editor (ActiveX component)

A custom application intending on embedding the Interactive Editor must use this service operation to retrieve files on behalf of the editor

See Integrating with EngageOne SOAP for more information

Parameters

Input

RetrieveResourcesRequest

request type RetrieveResources extension of type RequestMessage

resources resource - unboundedid type ID - type int with restriction

Output

RetrieveResourcesResponse

response type RetrieveResourcesResponse - extension of type ResponseMessage

resources resource - unbounded type EditorResource - extension of abstract type Entity id type ID - type int with restriction data type base64Binary

Fault

EditorFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 182

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsedit=httppbcomEngageOnewseditorxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtlteditRetrieveResourcesgt

ltcomauthContextgt ltcomSessionTokengt

ltcomtokengt13be6dbe35df5bb735401da4d94dc9c0_1261584686465_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltresourcesgt

ltresourcegt ltidgt97ltidgt

ltresourcegtltresourcesgt

lteditRetrieveResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegtltenvHeadergtltenvBodygt

ltns4RetrieveResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewseditorgt

ltresourcesgt ltresourcegt

ltns2idgt97ltns2idgt

lt--The following ltns2datagt tag has been broken up for formattingpurposes--gt

ltns2datagtPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxTcGVsbGVycz4NCjxMYW5ndWFnZXM+DQo8TGFuZ3VhZ2UgTmFtZT0iRU5HTElTSCI+DQo8TGV4aWNvbkZpbGUgTmFtZT0iX0VOR0xJU0guTEVYIiBTUklEPSI2Ii8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfRU5HTElTSC5BQkIiIFNSSUQ9IjQiLz4NCjxJbmRleEZpbGUgTmFtZT0iX0VOR0xJU0guSURYIiBTUklEPSI1Ii8+DQo8SGlzdG9yeUZpbGUgTmFtZT0iX0hJU1RPUlkuR0IiIFNSSUQ9IjMyIi8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5HQiIgU1JJRD0iODYiLz4NCjwvTGFuZ3VhZ2U+DQo8TGFuZ3VhZ2UgTmFtZT0iQU1FUklDQU4iPg0KPExleGljb25GaWxlIE5hbWU9I

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 183

Appendix B - SOAP API

l9BTUVSSUNBLkxFWCIgU1JJRD0iMTAwIi8+DQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfQU1FUklDQS5BQkIiIFNSSUQ9Ijk4Ii8+helliphelliphelliphelliphelliphelliphelliphelliphelliphellipDQo8QWJicmV2aWF0aW9uRmlsZSBOYW1lPSJfU1dJU1NfTi5BQkIiIFNSSUQ9IjczIi8+DQo8SW5kZXhGaWxlIE5hbWU9Il9TV0lTU19OLklEWCIgU1JJRD0iNzQiLz4NCjxIaXN0b3J5RmlsZSBOYW1lPSJfSElTVE9SWS5DSDIiIFNSSUQ9IjI1Ii8+DQo8QWRkaXRpb25hbEhpc3RvcnkgTmFtZT0iSElTVE9SWS5DSDIiIFNSSUQ9Ijc5Ii8+DQo8L0xhbmd1YWdlPg0KPC9MYW5ndWFnZXM+DQo8L1NwZWxsZXJzPg0K ltns2datagt

ltresourcegtltresourcesgt

ltns4RetrieveResourcesResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 184

Appendix B - SOAP API

Keymap service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSKeymapServicewsdl

ImportKeymap()

Description

This Web service is used to import a key map file into the EngageOne system A key map file is generated using the EngageOne Key Map Generator

The name of the key map and the image path must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

ImportKeymapRequest

request type ImportKeymap - extension of type RequestMessage

keymapname type string imagepath type string archive type base64Binary

Output

ImportKeymapResponse

response type ImportKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePath type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 185

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyImportKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltimagePathgtCltimagePathgtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyImportKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegtltns2imagePagegtCltns2imagePagegt

ltkeymapgtltns4ImportKeymapResponsegt

ltenvBodygtltenvEnvelopegt

searchKeyMaps()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 186

Appendix B - SOAP API

Description

This Web service is used to get key map information key map file and key map image information for a specified key map

This service requires the key map name or ID to be specified in order to return information

If the user wants the key map XML file to be returned the DETAIL filter has to be specified in the request

If searching for a key map image file the key image name or ID needs to be specified in the request in addition to key map ID The files are returned as base64Binary attachments

This service provides additional search capabilities to the HTTP request method of getting key map image files in a conformed way This service is similar to other search services in EngageOne Server

Note You can only search for an image file for the specified key map at a time The service will not return more then one image file per request

There are four scenarios available for requests

bull filter = LIST - the service will return the key map information (name and image path) bull filter = DETAIL - the service will return the key map information and the key map XML file bull filter = LIST and image requested - the service will return the key map information and the requested image bull filter = DETAIL and image requested - the service will return the key map information the key map XML file and the requested image

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 187

Appendix B - SOAP API

Parameters

Input

SearchKeymapRequest

request type Search - extension of type SearchRequestMessage

bull filter = LIST or DETAIL- enumeration has to be specified depending on what information and files has to be returned

bull keymaps

keymapident type IntegerIdOrName - required parameter images - optional inclulded if image file to be returned image - minOccurs=1 maxOccurs=1 (Only on request)ident type IntegerIdOrName

Note image should be used to request a keyed image

Output

SearchKeymapsResponse

response type SearchKeymapResponse - extension of type ResponseMessage

keymapskeymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string imagePage type string data type base64Binary - contains attachment with requested files images - optional include if image file to be returned image type KeyedImage - extension of abstract type Entity name type string data type base64Binary

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 188

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltkeySearchKeymapsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtmydomainltcomnamegt

ltcomidentgtltcomdomaingt

ltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltkeymapsgt

ltkeymapgtltidentgt

ltcomnamegtExternalKeyMapltcomnamegtltidentgtltimagesgt

ltimagegtltidentgt

ltcomnamegtC8643C4EEF874052A2DB4A97B0063690ltcomnamegtltidentgt

ltimagegtltimagesgt

ltkeymapgtltkeymapsgt

ltkeySearchKeymapsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 189

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1SearchKeymapsResponsexmlnsns1=httppbcomEngageOnewskeymapxmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewskeymapxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt96707b532a8348359ac9cb4e6904d79b_132 2713559246_0lttokengt

ltSessionTokengtltauthContextgtltkeymapsgt

ltkeymapgtltns5idgt1ltns5idgtltns5namegtExternalKeyMapltns5namegt

ltns5imagePathgtCEngageOneQAKeyMapltns5imagePathgt

ltns5datagt ltxopInclude

href=ciddata-38d4d706-2281-45c2-96bb-e8e95407d05awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagesgt

ltns5imagegtltns5idgt1ltns5idgt

ltns5namegtC8643C4EEF874052A2DB4A97B0063690ltns5namegtltns5datagt

ltxopIncludehref=ciddata-93da5279-1d5b-4f9c-9a78-c9701ab93e81wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5imagegt

ltns5imagesgtltkeymapgt

ltkeymapsgtltns1SearchKeymapsResponsegt

ltenvBodygtltenvEnvelopegt

updateKeymap()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 190

Appendix B - SOAP API

Description

This Web service is used to update a key map file into the EngageOne system

The update process adds any new images and updates existing images in the target directory A key map file is generated using the EngageOne Key Map Generator

The name of the key map must be specified in the request in addition to the key map archive created by the generator

Refer to the EngageOne Administration Guide for more information on how to generate a key map file

Parameters

Input

UpdateKeymapRequest

request type UpdateKeymap - extension of type RequestMessage

keymapname type string archive type base64Binary

Output

UpdateKeymapResponse

response type UpdateKeymapResponse - extension of type ResponseMessage

keymap type Keymap - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

KeymapFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 191

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnskey=httppbcomEngageOnewskeymapxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltkeyUpdateKeymapgtlt--Optional--gtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltkeymapgt

ltnamegtKeyMap01ltnamegtltarchivegtcid1098199621971ltarchivegt

ltkeymapgtltkeyUpdateKeymapgt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4UpdateKeymapResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewskeymapxmlnsns5=httppbcomEngageOnewseditorgt

ltkeymapgtltns2idgt1ltns2idgtltns2namegtKeyMap01ltns2namegt

ltkeymapgtltns4UpdateKeymapResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 192

Appendix B - SOAP API

Metadata service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSMetadataServicewsdl

searchMetadata()

Description

This Web service is used to search for metadata associated with a document class as specified by the document class identifier (ID or name)

If the search filter is set to LIST only the document class will be returned If the search filter is set to DETAIL the document class and metadata fields and any associated workflow will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 193

Appendix B - SOAP API

Parameters

Input

SearchMetadataRequest

request type SearchMetadata - extension of type SearchRequestMessage

docClasses - optionaldocClass ident type IntegerIdOrName

Output

SearchMetadataResponse

response type SearchMetadataResponse - extension of type ResponseMessage

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optionalfield - unbounded type MetadataField - extension of abstract type Entity id type ID - type int with restriction name type string type MetadataFieldType - type string with restriction - enum STRING DATE NUMBER CHOICE value - optional - type MetadataFieldValue MetadataString type string MetadataDate type date MetadataNumber type decimal MetadataChoice is recursive

workflows - optionalworkflow - unbounded type Workflow - extension of abstract type Entity id type ID - type int with restriction name type string

Fault

MetadataFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 194

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsmet=httppbcomEngageOnewsmetadataxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltmetSearchMetadatagt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt8ac5cf1a4e943489bfc4aebf3385fb74_1260910526656_9ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

ltmetSearchMetadatagtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchMetadataResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmetadataxmlnsns5=httppbcomEngageOnewseditorgt

ltdocClassesgt ltdocClassgt

ltns2idgt11ltns2idgtltns2namegtInvoiceltns2namegtltns2descriptiongt

ltdocClassgtltdocClassgt

ltns2idgt12ltns2idgtltns2namegtClaimltns2namegtltns2descriptiongt

ltdocClassgtltdocClassesgt

ltns4SearchMetadataResponsegtltenvBodygt

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 195

Appendix B - SOAP API

Request status update service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSRequestStatusUpdateServicewsdl

postEvent()

Description

This Web service is used by EngageOne Deliver to provide information requests received from EngageOne

Parameters

Input

RequestStatusUpdateRequest

request type DIJInformation - extension of type RequestMessage

docInstanceID type string code type string message type string

Output

RequestStatusUpdateResponse

response type ResponseMessage

Fault

fault type ServiceFault

result type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 196

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsstat=httppbcomEngageOnewsdeliverystatusupdatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltstatRequestStatusUpdategtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtEngageOneltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgteosuperltcomuserIdgtlt--Optional--gtltcompasswordgtPasswordltcompasswordgtlt--Optional--gtltcomtransientSessiongttrueltcomtransientSessiongt

ltcomUsernameTokengtltcomauthContextgtltDIJInformationgt

ltdocInstanceIDgtBBBBBBBltdocInstanceIDgtltcodegtDELIVRDltcodegtlt--Optional--gtltmessagegtThis iem was deliveredltmessagegt

ltDIJInformationgtltstatRequestStatusUpdategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2RequestStatusUpdateResponsexmlnsns2=httppbcomEngageOnewsdeliverystatusupdatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommongt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 197

Appendix B - SOAP API

Security service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSSecurityServicewsdl

searchRoles()

Description

This Web service is used to return the list of roles that associated with the specified user ID

Possible roles returned include

bull Community Administrator bull Delivery Manager bull Document Manager bull Editor bull Editor with saving new templates

bull External File Manager bull Project Manager bull Reviewer bull Template Manager bull Viewer bull Viewer with Reprint bull Workflow Administrator

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 198

Appendix B - SOAP API

Parameters

Input

SearchRolesRequest

request type SearchRoles - extension of type SearchRequestMessage

Users - optionaluser id type string

Output

SearchRolesResponse

response type SearchRolesRequest - extension of type ResponseMessage

roles - optionalrole - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optionaluser - unbounded type User id type string roles - optional is recursive

Fault

SecurityFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongtltsoapenvHeadergtltsoapenvBodygt

ltsecSearchRolesgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltusersgt

ltusergt ltidgteosuperltidgt

ltusergtltusersgt

ltsecSearchRolesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 199

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchRolesResponse[xmlnsns2=httppbcomEngageOnewsmodel

|httppbcomEngageOnewsmodel]

xmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewssecurityxmlnsns5=httppbcomEngageOnewseditorgt

ltrolesgt ltrolegt

ltns2idgt40ltns2idgtltns2namegtDocument Managerltns2namegt

ltrolegtltrolegt

ltns2idgt41ltns2idgtltns2namegtEditorltns2namegt

ltrolegtltrolesgt

ltns4SearchRolesResponsegtltenvBodygt

ltenvEnvelopegt

invalidateSession()

Description

This Web service is used to invalidate an authenticated session

This is necessary not to hold open sessions against the license limits of your EngageOne system

The session token must be specified in the authentication context of the request

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 200

Appendix B - SOAP API

Input

InvalidateSessionRequest

request type InvalidateSession - extension of type ResponseMessage

Output

InvalidateSessionResponse

response type InvalidateSessionResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

trustedConnectionLogin()

Description

This Web service is used to create Trusted Connection token

Parameters

Input

TrustedConnectionLoginRequest

request type TrustedConnectionLogin - extension of type ResponseMessage

Output

TrustedConnectionLoginResponse

response type TrustedConnectionLoginResponse - extension of type ResponseMessage

Fault

SecurityFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 201

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnssec=httppbcomEngageOnewssecurityxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltsecTrustedConnectionLogingtlt--Optional--gtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegttestltcomnamegt

ltcomidentgtltcomdomaingt

lt--user1(below)- this is the user that requires access to EngageOneand should exist in LDAP This scenario may be encountered whenthe user does not know their own passwordEg to login it uses card biometric etc --gt

ltcomuserIdgtuser1ltcomuserIdgt

lt--abc123(below) is the ApiKey defined in deployproperties undersecuritytrustedconnectionapikey--gt

ltcompasswordgtabc123ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--Optional--gtltcomcontextgt

ltcomdomaingt ltcomidentgt

lt--You have a CHOICE of the next 2 items at this level

--gt ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltcomidentgtltcomdomaingtlt--Optional--gtltcomusergt

ltcomidgtltcomidgtltcomusergt

ltcomcontextgtlt--Optional--gt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 202

Appendix B - SOAP API

ltcomcommunitygtltcomcommunitygtltsecTrustedConnectionLogingt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns2TrustedConnectionLoginResponse

xmlnsns2=httppbcomEngageOnewssecurityxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt455e80b3-645c-41a0-91e6-7b355d1932a2lttokengt

ltSessionTokengtltauthContextgt

ltns2TrustedConnectionLoginResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 203

Appendix B - SOAP API

Template service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSTemplateServicewsdl

deleteTemplate()

Description

This Web service is used to delete a template from the system as specified by a template identifier (ID or name)

All versions of the template with the same name are deleted

Parameters

Input

DeleteTemplate

request type DeleteTemplate - extension of type RequestMessage

templateid type IntegerIdOrName

Output

DeleteTemplateResponse

response type DeleteTemplateResponse - extension of type ResponseMessage

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 204

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemDeleteTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplategtltidgt

ltcomidgt222ltcomidgtltidgt

lttemplategtlttemDeleteTemplategt

ltsoapenvBodygtltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteTemplateResponsexmlnsns2=httppbcomEngageOnewstemplatexmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

importActiveContent()

Description

This Web service is used to import an Active Content archive into the EngageOne system Active Content items are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 205

Appendix B - SOAP API

Parameters

Input

ImportActiveContent

request type ImportActiveContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportActiveContentResponse

response type ImportActiveContentResponse - extension of type ResponseMessage

activeContents activeContent - unbounded type ActiveContent - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 206

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportActiveContentgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid784040028172ltarchivegtltfoldergt

ltidentgt ltcomidgt240ltcomidgt

ltidentgtltfoldergt

lttemImportActiveContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 207

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportActiveContentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltactiveContentsgt ltactiveContentgt

ltns2idgt260ltns2idgtltns2namegtAC_Textltns2namegtltns2parentgt

ltns2idgt240ltns2idgtltns2parentgt

ltns2pathgtInvoiceActiveCotentFolderAC_Textltns2pathgtltns2versiongt10ltns2versiongt

ltactiveContentgtltactiveContentsgt

ltns4ImportActiveContentResponsegtltenvBodygt

ltenvEnvelopegt

importMessageContent()

Description

This Web service is used to import a Message Content archive into the EngageOne system Message Content is defined using Content Author

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 208

Appendix B - SOAP API

Parameters

Input

ImportMessageContent

request type ImportMessageContent - extension of type RequestMessage

archive type base64Binary folder

ident type IntegerIdOrName

Output

ImportMessageContentResponse

response type ImportMessageContentResponse - extension of type ResponseMessage

messageContentsmessageContent - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string path type string version type string

Fault

TemplateFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportMessageContentgtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcidcid1184235865156ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportMessageContentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 209

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1ImportMessageContentResponsexmlnsns1=httppbcomEngageOnewstemplatexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdatapushgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt05a6a80cadcba8cb11c896cceb18ad46_1330033598071_2

lttokengtltSessionTokengt

ltauthContextgtltmessageContentsgt

ltmessageContentgtltns2idgt1ltns2idgtltns2namegtmessage inchesltns2namegtltns2pathgtMCmessage inchesltns2pathgtltns2versiongt10ltns2versiongt

ltmessageContentgtltmessageContentsgt

ltns1ImportMessageContentResponsegtltenvBodygt

ltenvEnvelopegt

importTemplate()

Description

This Web service is used to import a template archive into the EngageOne system Templates are defined using Designer

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 210

Appendix B - SOAP API

Parameters

Input

ImportTemplate

request type ImportTemplate - extension of type RequestMessage

archive type base64Binary folder ident type IntegerIdOrName

Output

ImportTemplateResponse

response type ImportTemplateResponse - extension of type ResponseMessage

templatestemplate - unbounded type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 211

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemImportTemplategtltcomauthContextgt

ltcomSessionTokengt ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltarchivegtcid1215487361289ltarchivegtltfoldergt

ltidentgt ltcomidgt221ltcomidgt

ltidentgtltfoldergt

lttemImportTemplategtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 212

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4ImportTemplateResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

lttemplatesgtlttemplategt

ltns2idgt231ltns2idgtltns2namegtEngageOne Introductionltns2namegtltns2parentgt

ltns2idgt221ltns2idgtltns2parentgt

ltns2pathgtInvoiceTESTEngageOne Introductionltns2pathgtltns2versiongt10ltns2versiongt

ltns2effectiveDategt2009-12-17-0500ltns2effectiveDategtltns2withdrawnDategt2999-12-31-0500ltns2withdrawnDategt

lttemplategtlttemplatesgt

ltns4ImportTemplateResponsegtltenvBodygt

ltenvEnvelopegt

searchFolders()

Description

This Web service retrieves folders by folder identifier (ID or name)

If the search filter is set to LIST a high-level list of folders will be returned without their respective children

If the search filter is DETAIL the next level of children (templates and folders) will be returned

Note In this version of the application workflow integration is not supported The workflows element will always return an empty set in the response

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 213

Appendix B - SOAP API

Parameters

Input

SearchFolders

request type SearchFolders - extension of type SearchRequestMessage

folders - optionalfolder ident type IntegerIdOrName

Output

SearchFoldersResponse

response type SearchFoldersResponse - extension of type ResponseMessage

folders - optionalfolder - unbounded type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional

folder type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withdrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 214

Appendix B - SOAP API

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract

type Entity is recursive docClasses - optional is recursive children - optional is recursive docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

docClasses - optionaldocClass - unbounded type DocumentClass - extension of abstract type Entity id type ID - type int with restriction name type string description type string fields - optional is recursive workflows - optional is recursive

type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optionalfolder type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive

docClasses - optional is recursive children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT

children - optional is recursive

template type Template - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity

id type ID - type int with restriction name type string parent type Folder - extension of abstract type FileItem - extension of abstract type Entity id type ID - type int with restriction name type string

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 215

Appendix B - SOAP API

parent type Folder - extension of abstract type FileItem - extension of abstract type Entity is recursive docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive type type FolderType - type string with restriction - enum REGULAR ACTIVE_CONTENT children - optional is recursive

docClasses - optional is recursive path type string version type string effectiveDate type date withrawnDate type date files - optional is recursive

Fault

TemplateFault (soapfault use = literal)

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchFoldersgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtDETAILltcomfiltergtltfoldersgt

ltfoldergt ltidentgt

ltcomidgtltcomidgtltcomnamegtltcomnamegt

ltidentgtltfoldergt

ltfoldersgtlttemSearchFoldersgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 216

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchFoldersResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfoldersgt ltfoldergt

ltns2idgt0ltns2idgtltns2namegtltns2namegtltns2childrengt ltns2foldergt ltns2idgt118ltns2idgt

ltns2namegtInvocesltns2namegtltns2parentgt

ltns2idgt0ltns2idgtltns2parentgt

ltns2foldergtltns2childrengt

ltfoldergtltfoldersgt

ltns4SearchFoldersResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplateResources()

Description

This Web service retrieves template related files by template identifier (ID or name) and file type

The search filter is not used by this service operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 217

Appendix B - SOAP API

Parameters

Input

SearchTemplateResources

request type SearchTemplateResources - extension of type SearchRequestMessage

templateident type integerIdOrName files - optional

file - unbounded is recursive

Output

SearchTemplateResourcesResponse

response type SearchTemplateResourcesResponse - extension of type ResponseMessage

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity id type ID - type int with restriction name type string type type TemplateFileType - type string with restriction - enum ANSWER SCHEMAXFORM PROPERTY PUBX HIP IMAGE OTHER DATAMODEL PREVIEWPROMPTLOGIC THUMBNAIL DATAMODEL PREVIEW PROMPTLOGIC THUMBNAILdata type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 218

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplateResourcesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtffa6d581801c76126d2da49804e04dac_1261077057093_3ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtPUBXlttypegt

ltfilegtltfilegt

lttypegtHIPlttypegtltfilegt

ltfilesgtlttemplategt

lttemSearchTemplateResourcesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 219

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplateResourcesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewseditorgt

ltfilesgt ltfilegt

ltns2idgt121ltns2idgtltns2typegtPUBXltns2typegt

ltfilegtltfilegt

ltns2idgt120ltns2idgtltns2typegtHIPltns2typegt

ltfilegtltfilesgt

ltns4SearchTemplateResourcesResponsegtltenvBodygt

ltenvEnvelopegt

searchTemplates()

Description

This Web service searches templates by document class

This Web service supports on-demand licensing

If the type element is omitted the system returns INTERACTIVE_ONLY results by default

If returnAttributes is included with the attribute set to DOC_CLASSES the service returns document class information along with template information

You do not need to set the search filter to DETAIL in order to obtain document class information

If the returnAttributes element is omitted the service does not return document class information with template information just as it does with a LIST filter

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 220

Appendix B - SOAP API

Parameters

Input

SearchTemplates

request type SearchTemplates - extension of type SearchRequestMessage

returnAttributes - optionalattribute - unbounded type SearchTemplatesReturnAttribute

- type string with restriction - enum DOC_CLASSES

templates - optionaltemplate

ident type IntegerIdOrName effectiveDate - optional type date

docClasses - optionaldocClass

ident type IntegerIdOrName fields - optional is recursive

sorting - optional type SortingControls fields

field - unbounded type SortField type type SortFieldType - type string with restriction -

enum NAME MODIFIED_TIME WORK_ITEM_EXTERNAL_IDOWNER_NAME CREATOR_NAME APPLICATION_NAMEDATE STATUS TEMPLATE_NAME DELIVERY_COUNT

order type SortOrder - type string with restriction - enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

type - optional type SearchTemplateFilterType - type string with restriction - enum

INTERACTIVE_ONLY NON_INTERACTIVE_ONLY BOTH

Output

SearchTemplatesResponse

response type SearchTemplatesResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

templates - optionaltemplate - unbounded type Template - extension of abstract

type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

parent type Folder - extension of abstract type FileItem - extension of abstract type Entityid type ID - type int with restriction name type string

path type string version type string effectiveDate type date withdrawnDate type date

files - optionalfile - unbounded type TemplateFile - extension of abstract type Entity

id type ID - type int with restriction name type string

type type TemplateFileType - type string with restriction -

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 221

Appendix B - SOAP API

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHERDATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

Fault

TemplateFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 222

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnstem=httppbcomEngageOnewstemplatexmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

lttemSearchTemplatesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtff3809dd60ba8aa2bdaaa5fc6246ca2d_1260986323943_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltreturnAttributesgt

ltattributegtDOC_CLASSESltattributegtltreturnAttributesgtlttemplatesgt

lttemplategtltidentgt

ltcomidgtltcomidgtltcomnamegtIntroltcomnamegt

ltidentgtlteffectiveDategtlteffectiveDategt

lttemplategtlttemplatesgtltsortinggt

ltfieldsgt ltfieldgt

lttypegtlttypegtltordergtltordergt

ltfieldgtltfieldsgt

ltsortinggtltpaginationgt

ltpageNumbergtltpageNumbergtltpageSizegtltpageSizegt

ltpaginationgtlttypegtINTERACTIVE_ONLYlttypegt

lttemSearchTemplatesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 223

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchTemplatesResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewstemplatexmlnsns5=httppbcomEngageOnewsdeliverystatusupdatexmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgt

ltpaginationgtlttemplatesgt

lttemplategtltns3idgt171ltns3idgtltns3namegtASRrequirementsltns3namegtltns3parentgt

ltns3idgt162ltns3idgtltns3namegtTemplatesltns3namegtltns3typegtREGULARltns3typegt

ltns3parentgtltns3descriptiongtASRrequirementsltns3descriptiongtltns3pathgtTemplatesASRrequirementsltns3pathgtltns3versiongt10ltns3versiongtltns3filesgt

ltns3filegt ltns3idgt172ltns3idgtltns3namegttemplatehipltns3namegtltns3typegtHIPltns3typegtltns3datagt

ltxopIncludehref=ciddata-1fa8d44-f187-4c27-a7f4-44e5611e09abwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt173ltns3idgtltns3namegttemplatepubxltns3namegtltns3typegtPUBXltns3typegtltns3datagt

ltxopIncludehref=ciddata-3b3c834e-8603-484a-a450-4e31f60bbd3awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3filegt

ltns3idgt174ltns3idgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 224

Appendix B - SOAP API

ltns3datagtltns3namegt0DF00BE136E7490D920F999500B4839Cxformltns3namegt

ltns3typegtXFORMltns3typegtltns3datagt

ltxopIncludehref=ciddata-d0c51091-d8ee-427b-b21c-dbb1662936cbwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3filegtltns3filegt ltns3idgt175ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxmlltns3namegtltns3typegtANSWERltns3typegtltns3datagt ltxopInclude

href=ciddata-b2b74571-7fb5-4643-a8ef-57c55fa86744wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt ltns3idgt176ltns3idgt

ltns3namegt0DF00BE136E7490D920F999500B4839Cxsdltns3namegtltns3typegtSCHEMAltns3typegtltxopInclude

href=ciddata-82e3424-bb1d-4f38-99a7-8b7c9965de0wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegtltns3datagt ltns3filegtltns3filegt ltns3idgt177ltns3idgt

ltns3namegtProperty_4338420834667219234xmlltns3namegtltns3typegtPROPERTYltns3typegtltns3datagt

ltxopIncludehref=ciddata-aba52bf7-5146-4dba-89d3-d70067a7916fwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns3datagtltns3filegt

ltns3filesgtltns3effectiveDateSelectiongt

ltns3versionsHaveEffectivDategtfalseltns3versionsHaveEffectivDategt

ltns3selectionCriteriagtCURRENT_DATEltns3selectionCriteriagtltns3effectiveDateSelectiongtltns3spellCheckgtUSER_CANNOT_CLOSEltns3spellCheckgt

lttemplategtlttemplatesgt

ltns4SearchTemplatesResponsegtltenvBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 225

Appendix B - SOAP API

ltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 226

Appendix B - SOAP API

Workitem service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkItemServicewsdl

approveWorkItem()

Description

This method is not supported in this release

createWorkItem()

Description

This Web service can be used to create a new work item for a specified template with associated files (for example answer schema etc)

The work item is created for delivery to the specified delivery option

Additional information is required to create the work item

This includes

an external identifier which can be used as a cross-reference into an external system the user ID of the current operator creating the work item the status of the newly created work item and the application name for which the work item is being created

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 227

Appendix B - SOAP API

Parameters

Input

CreateWorkItemRequest

request type CreateWorkItem - extension of type RequestMessage

templateident type integerIdOrName

workItem externalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

applicationName type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

CreateWorkItemResponse

response type CreateWorkItemResponse - extension of type ResponseMessage

workItem type WorkItem - extension of abstract type Entity id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNED

FAILED_DELIVERY FINISHED OPEN PENDING_APPROVAL

PENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

lastModifiedDate type date

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 228

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworCreateWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtlttemplategt

ltworkItemgt ltexternalIdgtFrank001ltexternalIdgtltcurrentOperatorgteosuperltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltapplicationNamegtCommit By Soap UIltapplicationNamegtltfilesgt

ltfilegt ltnamegtAnswerFile_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326563ltdatagt

ltfilegtltfilegt

ltnamegtPUB_16342009033447pubxltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326564ltdatagt

ltfilegtltfilegt

ltnamegtHIP_16342009033447hipltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326565ltdatagt

ltfilegtltfilegt

ltnamegtProperty_16342009033447xmlltnamegtltpathgtInstanceFilesltpathgtltdatagtcid576329326566ltdatagt

ltfilegtltfilesgt

ltworkItemgtltworCreateWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 229

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns1CreateWorkItemResponsexmlnsns1=httppbcomEngageOnewsworkItemxmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewskeymapgt

ltworkItemgt ltns2idgt134ltns2idgt

ltworkItemgtltns1CreateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

deleteWorkItem()

Description

This Web service can be used to delete a work item specified by a work item ID

Pameters

Input

DeleteWorkItemRequest

request type DeleteWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

Output

DeleteWorkItemResponse

response type DeleteWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 230

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworDeleteWorkItemgt ltcomauthContextgt

ltcomSessionTokengt ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt2ltidgtltworkItemgt

ltworDeleteWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

getWorkItemAssignees()

Description

This Web service is used to retrieve the list of potential assignees for an existing work item as specified by a work item identifier (ID or name)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 231

Appendix B - SOAP API

Parameters

Input

GetWorkItemAssigneesRequest

request type GetWorkItemAssignees - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

GetWorkItemAssigneesResponse

response type GetWorkItemAssigneesResponse - extension of type ResponseMessage

assignees - optionalassignee - unbounded type User id type string roles - optional

role - unbounded type Role - extension of abstract type Entity id type ID - type int with restriction name type string members - optional is recursive

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkItemAssigneesgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt2b61217c7af18a6258bd36e95b0dafb5_1261060076046_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltworGetWorkItemAssigneesgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 232

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4GetWorkItemAssigneesResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltassigneesgtltassigneegt

ltns2idgtAdministratorltns2idgtltassigneegtltassigneegt

ltns2idgteodeliveryltns2idgtltassigneegtltassigneegt

ltns2idgteomanagerltns2idgtltassigneegt

ltassigneegt ltns2idgteosystemltns2idgt

ltassigneegtltassigneegt

ltns2idgteotemplateltns2idgtltassigneegt

ltassigneegt ltns2idgteouserltns2idgt

ltassigneegtltassigneegt

ltns2idgtpgeron01ltns2idgtltassigneegt

ltassigneesgtltns4GetWorkItemAssigneesResponsegt

ltenvBodygtltenvEnvelopegt

reassignWorkItem()

Description

This Web service is used to reassign a work item as specified by a work item ID to another user by user ID

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 233

Appendix B - SOAP API

Parameters

Input

ReassignWorkItemRequest

request type ReassignWorkItem - extension of abstract type WorkItemMaintRequest- extension of type RequestMessage

workItem id type ID - type int with restriction

assigneeid type string

Output

ReassignWorkItemResponse

response type ReassignWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworReassignWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt25ltidgtltworkItemgt

ltassigneegtltidgteouserltidgt

ltassigneegtltworReassignWorkItemgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 234

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ReassignWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

rejectWorkItem()

Description

This method is not supported in this release

searchWorkItem()

Description

This Web service is used to search for work items by combination of work item list status or optionally with a work item identifier (ID or name)

Possible work item list statuses that can be searched for include

bull ACTIVE

bull SUBMITTED

bull ALL_ACTIVE

bull ALL_SUBMITTED

You can optionally filter the work item list by work item status delivery channel mode and delivery channel type The exception to this rule is when workItemListType is equal to ALL_ACTIVE or ACTIVE In this case the work item cannot be filtered with delivery channel type (ARCHIVE PRINT EMAIL FAX) and channel mode (BATCH IMMEDIATE) The list that is returned pertains to the user invoking the service

For example the operation can be used to return the list of active work items for the authenticated user If the search filter is set LIST the list of matching work items is returned If the search filter is set to DETAIL the files associated with the work items are also returned The Web service always returns a list of comments for each work item returned if there are any

If you submit Work Item ID or name in the search criteria the service returns the requested Work Item regardless of the user ID associated with it The service also disregards workItemListType parameter ( ACTIVE SUBMITTED ALL_ACTIVE ALL_SUBMITTED) if such is specified If you do not specify Work Item ID or name in the search parameters the workItemListType parameter is required

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 235

Appendix B - SOAP API

Parameters

Input

SearchWorkItemsRequest

request type SearchWorkItems - extension of type SearchRequestMessage

workItemListType type WorkItemListType - type string with restriction -enum ACTIVE SUBMITTED ALL_ACTIVE

ALL_SUBMITTED workItems - optionalworkItem

ident type IntegerIdOrName

workitemStatuses - optionalworkitemStatus type workitemStatus - type string with restriction -

enum ACTIVE_INCOMPLETE ACTIVE_NEW ACTIVE_COMPLETEASSIGNED FAILED_DELIVERY FINISHED OPENPENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

deliveryChannelModes - optionaldeliveryChannelMode type deliveryChannelMode - type string with restriction -

enum BATCH IMMEDIATE

deliveryChannelTypes - optionaldeliveryChannelType type deliveryChannelType - type string with restriction -

enum ARCHIVE PRINT EMAIL FAX

sorting - optional type SortingControls fields

field - unboundedl type SortField type type SortFieldType - type string with restriction -

enum WORK_ITEM_EXTERNAL_ID OWNER_NAME CREATOR_NAMEAPPLICATION_NAMEDATE STATUSTEMPLATE_NAME

order type SortOrder - type string with restriction -enum ASCENDING DESCENDING

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

language - optional type string

Output

SearchWorkItemsResponse

response type SearchWorkItemsResponse - extension of type ResponseMessage

pagination - optional type PaginationControls pageNumber - optional type int pageSize - optional type int totalPages - optional type int

workItems - optionalworkItem - unbounded type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 236

Appendix B - SOAP API

lastModifiedDate type date

files - optionalfile - unbounded type WorkItemFile - extension of abstract type Entity

id type ID - type int with restriction name type string path type string type type TemplateFileType - type string with restriction -

enum ANSWER SCHEMA XFORM PROPERTYPUBX HIP IMAGE OTHER DATAMODELPREVIEW PROMPTLOGIC THUMBNAIL

data type base64Binary

comments - optionalcomment - unbounded type WorkItemComment text type string - requireddate type DateTime - required

Note If multiple comments exist for the work item they will be returned sorted by datetime

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 237

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSearchWorkItemsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgtPassword1ltcompasswordgt

ltcomUsernameTokengtltcomauthContextgt

ltcomfiltergtDETAILltcomfiltergtltworkItemListTypegtACTIVEltworkItemListTypegtltworkItemsgt

ltworkItemgt ltidentgt ltcomidgt43ltcomidgt

ltidentgtltworkItemgt

ltworkItemsgtltworkItemStatusesgt

ltworkItemStatusgtACTIVE_INCOMPLETEltworkItemStatusgtltworkItemStatusgtACTIVE_NEWltworkItemStatusgtltworkItemStatusgtACTIVE_COMPLETEltworkItemStatusgtltworkItemStatusgtASSIGNEDltworkItemStatusgtltworkItemStatusgtFAILED_DELIVERYltworkItemStatusgtltworkItemStatusgtFINISHEDltworkItemStatusgtltworkItemStatusgtOPENltworkItemStatusgtltworkItemStatusgtPENDING_APPROVALltworkItemStatusgtltworkItemStatusgtPENDING_DELIVERYltworkItemStatusgtltworkItemStatusgtSUBMITTED_APPROVEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REJECTEDltworkItemStatusgtltworkItemStatusgtSUBMITTED_REVIEWltworkItemStatusgt

ltworkItemStatusesgt

ltdeliveryChannelModesgtltdeliveryChannelModegtBATCHltdeliveryChannelModegtltdeliveryChannelModegtIMMEDIATEltdeliveryChannelModegt

ltdeliveryChannelModesgtltdeliveryChannelTypesgt

ltdeliveryChannelTypegtPRINTltdeliveryChannelTypegtltdeliveryChannelTypegtEMAILltdeliveryChannelTypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 238

Appendix B - SOAP API

ltdeliveryChannelTypegtFAXltdeliveryChannelTypegtltdeliveryChannelTypegtARCHIVEltdeliveryChannelTypegt

ltdeliveryChannelTypesgtltworSearchWorkItemsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 239

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygtltns3SearchWorkItemsResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsworkItemxmlnsns4=httppbcomEngageOnewsdeliverystatusupdatexmlnsns5=httppbcomEngageOnewsmodelxmlnsns6=httppbcomEngageOnewsdatapushgt

ltpaginationgtltpageNumbergt1ltpageNumbergtltpageSizegt10ltpageSizegtlttotalPagesgt1lttotalPagesgtltpaginationgtltworkItemsgt ltworkItemgt ltns5idgt7ltns5idgtltns5externalIdgtWork Item 121634 -

1016803513ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

ltns5lastModifiedDategt2012-11-08T121635080-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt190ltns5idgtltns5namegtAnswerFile_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08162012121634xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-a21abe3f-4f64-4d87-becb-85619d8fc0c3wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt191ltns5idgtltns5namegtPUB_08162012121634pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08162012121634pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-1f28b175-1362-45b7-9717-bf311277cee6wsjbossorg

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 240

Appendix B - SOAP API

xmlnsxop=httpwwww3org200408xopincludegtltns5filegtltns5filegt ltns5idgt192ltns5idgtltns5namegtHIP_08162012121634hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08162012121634hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-a48a81bd-9b61-4140-8d08-292f3c12f47awsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt193ltns5idgtltns5namegtProperty_08162012121634xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08162012121634xmlltns5pathgt

ltns5typegtPROPERTYltns5typegtltns5datagt ltxopInclude

href=ciddata-6f19fa6c-e9a7-435e-94ad-bf84ba41140wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5dataltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTest Spell Check Closeltns5textgtltns5dategt2012-11-08T121635080-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemgt ltns5idgt9ltns5idgtltns5externalIdgtWork Item 121841 -

544723706ltns5externalIdgtltns5createdBygteosuperltns5createdBygtltns5statusgtACTIVE_COMPLETEltns5statusgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 241

Appendix B - SOAP API

ltns5lastModifiedDategt2012-11-08T121842030-0500ltns5lastModifiedDategt

ltns5filesgt ltns5filegt ltns5idgt198ltns5idgtltns5namegtAnswerFile_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperAnswerFile_08182012121841xmlltns5pathgt

ltns5typegtANSWERltns5typegtltns5datagt ltxopInclude

href=ciddata-8fc4283-e36-4d13-8b38-fe9495dea2bfwsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns5datagtltns5filegtltns5filegt ltns5idgt199ltns5idgtltns5namegtPUB_08182012121841pubxltns5namegt

ltns5pathgtInstanceFileseosuperPUB_08182012121841pubxltns5pathgt

ltns5typegtPUBXltns5typegtltns5datagt ltxopInclude

href=ciddata-f2ebda42-e045-4c3e-a8f8-75fb13fd919dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt200ltns5idgtltns5namegtHIP_08182012121841hipltns5namegt

ltns5pathgtInstanceFileseosuperHIP_08182012121841hipltns5pathgt

ltns5typegtHIPltns5typegtltns5datagt ltxopInclude

href=ciddata-9d66a164-c512-4566-aba6-6ef7c375c861wsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filegt ltns5idgt201ltns5idgtltns5namegtProperty_08182012121841xmlltns5namegt

ltns5pathgtInstanceFileseosuperProperty_08182012121841xmlltns5pathgt

ltns5typegtPROPERTYltns5typegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 242

Appendix B - SOAP API

ltns5datagt ltxopInclude

href=ciddata-e2bb812a-7fa3-43cf-a035-81a3ccc96c6dwsjbossorg

xmlnsxop=httpwwww3org200408xopincludegtltns5datagtltns5filegtltns5filesgtltns5templategtltns5idgt171ltns5idgtltns5namegtASRrequirementsltns5namegtltns5pathgtTemplatesASRrequirementsltns5pathgtltns5versiongt10ltns5versiongtltns5effectiveDategt1969-12-31-0500ltns5effectiveDategtltns5withdrawnDategt1969-12-31-0500ltns5withdrawnDategtltns5templategtltns5commentsgt ltns5commentgt ltns5textgtTestltns5textgtltns5dategt2012-11-08T121842030-0500ltns5dategtltns5commentgtltns5commentsgtltworkItemgtltworkItemsgtltns3SearchWorkItemsResponsegtltenvBodygtltenvEnvelopegt

submitWorkItem()

Description

This Web service is used to submit a work item and deliver the document after creating a work item using the WorkItemService createWorkItem operation

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 243

Appendix B - SOAP API

Parameters

Input

SubmitWorkItemRequest

request type SubmitWorkItem - extension of abstract type WorkItemMaintRequest - extension of type RequestMessage

workItem id type ID - type int with restriction

comment - optional type string

Output

SubmitWorkItemResponse

response type SubmitWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworSubmitWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltworkItemgt

ltworSubmitWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 244

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SubmitWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateWorkItem()

Description

This Web service is used to update a work item definition This includes the template associated with the work item work item details such as status and the delivery option associated with the work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 245

Appendix B - SOAP API

Parameters

Input

UpdateWorkItemRequest

request type UpdateWorkItem - extension of type RequestMessage

templateident type IntegerIdOrName

workitem id type ID - type int with restrictionexternalId type string currentOperator type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVEDSUBMITTED_REJECTED SUBMITTED_REVIEW

comment type string files - optional

file - unbounded is recursive

deliveryOptionident type IntegerIdOrName

Output

UpdateWorkItemResponse

response type UpdateWorkItemResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 246

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt49196135c775aa3b73536914b1afb671_1260995441990_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidgt24ltidgtltcurrentOperatorgteouserltcurrentOperatorgtltstatusgtACTIVE_COMPLETEltstatusgtltcommentgthello worldltcommentgt

ltworkItemgtltdeliveryOptiongt

ltidentgt ltcomidgt1ltcomidgt

ltidentgtltdeliveryOptiongt

ltworUpdateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateWorkItemResponsexmlnsns2=httppbcomEngageOnewsworkItemxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 247

Appendix B - SOAP API

saveTemplateWorkItem()

Description

This Web service is used to create a new template work item A template work item is distinguished from a document instance work item using the WorkItemService createWorkItem operation The intent of a template work item is to make a new template available for use in document instance creation

Parameters

Input

SaveTemplateWorkItemRequest

request type SaveTemplateWorkItem - extension of type RequestMessage

templateWorkItemident - optional type IntegerIdOrName createdBy type string modelTemplateId type IntegerIdOrName targetTemplateName type string folderIdent type IntegerIdOrName files - optional

file - unbounded is recursive

comment - optional type string overwrite - optional type boolean

Output

SaveTemplateWorkItemResponse

response type SaveTemplateWorkItemResponse - extension of type ResponseMessage

workItem type TemplateWorkItem - extension of type WorkItem - extension of abstract type Entity

id type ID - type int with restrictionexternalId type string createdBy type string ownedBy - optional type string currentOperator - optional type string status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETEASSIGNED FAILED_DELIVERY FINISHEDOPEN PENDING_APPROVAL PENDING_DELIVERYSUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

lastModifiedDate type date modelTemplateId type ID - type int with restriction templateName type string folderId type ID - type int with restriction

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 248

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkItemxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworSaveTemplateWorkItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgt

lttemplateWorkItemgtltidentgt

ltcomidgt30ltcomidgtltidentgtltcreatedBygteosuperltcreatedBygtltmodelTemplateIdgt

ltcomidgt119ltcomidgtltmodelTemplateIdgtlttargetTemplateNamegtIntro_SaveAslttargetTemplateNamegt

ltfolderIdentgt ltcomidgt221ltcomidgt

ltfolderIdentgtltfilesgt

ltfilegt ltnamegtAnswerFile_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

ltnamegtPUB_18152009111556pubxltnamegtltpathgtInstanceFilesltpathgtlttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

ltnamegtHIP_18152009111556hipltnamegtltpathgtInstanceFilesltpathgtlttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

ltnamegtProperty_18152009111556xmlltnamegtltpathgtInstanceFilesltpathgtlttypegtPROPERTYlttypegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 249

Appendix B - SOAP API

ltdatagtcid278598095434ltdatagtltfilegt

ltfilesgtlttemplateWorkItemgtltcommentgt789456ltcommentgtltoverwritegttrueltoverwritegt

ltworSaveTemplateWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SaveTemplateWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsworkItemxmlnsns5=httppbcomEngageOnewseditorgt

ltworkItemgt ltns2idgt30ltns2idgtltns2externalIdgtWF05ltns2externalIdgtltns2createdBygteosuperltns2createdBygtltns2statusgtFINISHEDltns2statusgt

ltns2lastModifiedDategt2009-12-18-0500ltns2lastModifiedDategtltns2modelTemplateIdgt119ltns2modelTemplateIdgtltns2templateNamegtEngageOne

Introductionltns2templateNamegtltns2folderIdgt221ltns2folderIdgt

ltworkItemgtltns4SaveTemplateWorkItemResponsegt

ltenvBodygtltenvEnvelopegt

addWorkItemComment()

Description

This Web service is used to add a comment to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 250

Appendix B - SOAP API

Parameters

Input

AddWorkItemCommentRequest

request type AddWorkItemComment - extension of type RequestMessage extension of type RequestMessageworkItem id type ID - type int with restriction comment type string

Output

AddWorkItemCommentResponse

response type AddWorkItemCommentResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

updateWorkItemStatus()

Description

This Web service is used to update the status of an existing work item

Parameters

Input

UpdateWorkItemStatusRequest

request type UpdateWorkItemStatus - extension of type RequestMessage

workItem id type ID - type int with restriction status type WorkItemStatus - type string with restriction -

enum ACTIVE_COMPLETE ACTIVE_INCOMPLETE ASSIGNEDFAILED_DELIVERY FINISHED OPEN PENDING_APPROVALPENDING_DELIVERY SUBMITTED_APPROVED SUBMITTED_REJECTEDSUBMITTED_REVIEW

Output

UpdateWorkItemStatusResponse

response type UpdateWorkItemStatusResponse - extension of type ResponseMessage

Fault

WorkItemFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 251

Appendix B - SOAP API

Attachment service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSAttachmentServicewsdl

addAttachments()

Description

This Web service adds attachment files to an existing work item

Parameters

Input

AddAttachments

request type AddAttachments - extension of type RequestMessage

attachmentFiles type base64Binary maxOccurs=unbounded workItemId type ID ndash type int with restriction

Output

AddAttachmentsResponse

response type AddAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 252

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt ltcomUsernameTokengt

ltcomdomaingt ltcomidentgt

ltcomnamegtcommunity1ltcomnamegtltcomidentgt

ltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlt--1 or more repetitions--gtltattachmentFilesgtcid490167285825ltattachmentFilesgtltattachmentFilesgtcid490167285826ltattachmentFilesgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 253

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3AddAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta08351f0-5537-40bc-8baf-b98c5abc196clttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt29ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt30ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-23+0200ltns4createdDategt

ltattachmentsgtltns3AddAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachments()

Description

This Web service is used to get all attachment file metadata added to an existing work item

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 254

Appendix B - SOAP API

Parameters

Input

GetAttachments

request type GetAttachments - extension of type RequestMessage

workItemId type ID ndash type int with restriction

Output

GetAttachmentsResponse

response type getAttchmentsResponse - extension of type ResponseMessage

attachments minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattAddAttachmentsgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1234ltworkItemIdgt

ltattAddAttachmentsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 255

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongt

ltSessionTokengt

lttokengta5506457-f0a1-4ba5-99ed-4a6a6d2925f1lttokengtltSessionTokengt

ltauthContextgtltattachmentsgt

ltns4idgt2ltns4idgtltns4fileNamegtO55V7Ppdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt1ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltattachmentsgt

ltns4idgt3ltns4idgtltns4fileNamegtreportpdfltns4fileNamegtltns4fileTypegtpdfltns4fileTypegtltns4sequencegt2ltns4sequencegt

ltns4createdDategt2016-08-19+0200ltns4createdDategt

ltattachmentsgtltns3GetAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

getAttachmentFile()

Description

This Web service is used to get attachment file content

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 256

Appendix B - SOAP API

Parameters

Input

GetAttachmentFile

request type GetAttachmentFile - extension of type RequestMessage

workItemId type ID ndash type int with restriction attachmentId type ID ndash type int with restriction

Output

GetAttachmentFileResponse

response type GetAttchmentFileResponse - extension of type ResponseMessage

attachmentFile type base64Binary

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattGetAttachmentFilegt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt1ltworkItemIdgt

ltattachmentIdgt8ltattachmentIdgtltattGetAttachmentFilegt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 257

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3GetAttachmentFileResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtfd220238-a5eb-46b8-8ac8-4be9366402f2lttokengt

ltSessionTokengtltauthContextgtltattachmentFilegt

ltxopIncludehref=cid1f882a3b-ac19-431d-9a26-d0d169081313-4cxfapacheorgxmlnsxop=httpwwww3org200408xopincludegt

ltattachmentFilegtltns3GetAttachmentFileResponsegt

ltsoapBodygtltsoapEnvelopegt

deleteAttachment()

Description

This Web service is used to delete an attachment from a communication

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 258

Appendix B - SOAP API

Parameters

Input

DeleteAttachment

request type DeleteAttachment - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachmentId ident type ID ndash type int with restriction

Output

DeleteAttachmentResponse

response type DeleteAttchmentResponse - extension of type ResponseMessage

attachmentId ident type ID ndash type int

Fault

AttachmentFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltattDeleteAttachmentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt7ltworkItemIdgtltattachmentIdgt14ltattachmentIdgt

ltattDeleteAttachmentgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 259

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns3DeleteAttachmentResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsattachmentxmlnsns4=httppbcomEngageOnewsmodelgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt9e079c58-80c7-40a9-86d2-2bea25632413lttokengt

ltSessionTokengtltauthContextgtltattachmentIdgt14ltattachmentIdgt

ltns3DeleteAttachmentResponsegtltsoapBodygt

ltsoapEnvelopegt

updateAttachments()

Description

This Web service is used to update attachmentsrsquo order and name

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 260

Appendix B - SOAP API

Parameters

Input

UpdateAttachments

request type UpdateAttachments - extension of type RequestMessage

workItemId ident type ID ndash type int with restriction attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded

id type ID - type int with restrictionfileName type string fileType type string - optional and ignored on updatesequence type int createdDate type date - optional and ignored on update

Output

UpdateAttachmentsResponse

response type UpdateAttchments - extension of type ResponseMessage

attachments type Attachment ndash minOccurs=0 maxOccurs=unbounded id type ID - type int with restrictionfileName type string fileType type string sequence type int createdDate type date

Fault

AttachmentFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 261

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsatt=httppbcomEngageOnewsattachmentxmlnscom=httppbcomEngageOnewscommonxmlnsmod=httppbcomEngageOnewsmodelgt

ltsoapenvHeadergtltsoapenvBodygt

ltattUpdateAttachmentsgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltworkItemIdgt20ltworkItemIdgtltattachmentsgt

ltmodidgt4ltmodidgtltmodfileNamegtreportpdfltmodfileNamegtltmodsequencegt2ltmodsequencegt

ltattachmentsgtltattachmentsgt

ltmodidgt5ltmodidgtltmodfileNamegtO55V7PpdfltmodfileNamegtltmodsequencegt1ltmodsequencegt

ltattachmentsgtltattUpdateAttachmentsgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 262

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4UpdateAttachmentsResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsattachmentgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt169e9b3e-6d7c-4ec1-929e-ead23c5f9832lttokengt

ltSessionTokengtltauthContextgtltattachmentsgt

ltns3idgt5ltns3idgtltns3fileNamegtO55V7Ppdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt1ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltattachmentsgt

ltns3idgt4ltns3idgtltns3fileNamegtreportpdfltns3fileNamegtltns3fileTypegtpdfltns3fileTypegtltns3sequencegt2ltns3sequencegtltns3createdDategt2016-08-26+0200ltns3createdDategt

ltattachmentsgtltns4UpdateAttachmentsResponsegt

ltsoapBodygtltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 263

Appendix B - SOAP API

Workflow service

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSWorkflowServicewsdl

Note Some tags have been broken up for formatting purposes

getWorkflowTask()

Description

This Web Service operation is used to get workflow task details

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 264

Appendix B - SOAP API

Parameters

Input

GetWorkflowTask

request type GetWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1

Output

GetWorkflowTaskResponse

response type GetWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string minOccurs=0 maxOccurs=unbounded potentialGroups type string minOccurs=0 maxOccurs=unbounded potentialUsers type string minOccurs=0 maxOccurs=unbounded allowedActions type string minOccurs=0 maxOccurs=unbounded instanceId type string isActionableByYou type string projectId type string previewBefore type string previewAfter type string previewDiff type string comparisonStatus type string

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 265

Appendix B - SOAP API

Sample request

ltsoapenvEnvelope

xmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygtltworGetWorkflowTaskgt ltcomauthContextgt ltcomUsernameTokengt ltcomdomaingt ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtuser1ltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt12345lttaskIdgtltworGetWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 266

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgtltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengtltSessionTokengtltauthContextgtlttaskgt ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgtltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgtltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgtlttaskgtltns4GetWorkflowTaskResponsegt

ltsoapBodygt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 267

Appendix B - SOAP API

ltsoapEnvelopegt

updateWorkflowTask()

Description

This Web Service operation is used to update workflow task

Parameters

Input

UpdateWorkflowTask

request type UpdateWorkflowTask - extension of type RequestMessage

taskId type string - minOccurs=1 maxOccurs=1 action type WorkflowTaskAction minOccurs=1 maxOccurs=1

allowed values APPROVE REJECT CLAIMDELEGATE RELEASE RESUBMIT

assignee type string - minOccurs=1 maxOccurs=1 notes type string - minOccurs=1 maxOccurs=1

Output

UpdateWorkflowTaskResponse

response type UpdateWorkflowTaskResponse - extension of type ResponseMessage

WorkflowTaskDetails - extension of type WorkflowTask - minOccurs=1 maxOccurs=1 id type stringname type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceId type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string onBehalfOfGroups type string - minOccurs=0 maxOccurs=unbounded potentialGroups type string - minOccurs=0 maxOccurs=unbounded potentialUsers type string - minOccurs=0 maxOccurs=unbounded allowedActions type string - minOccurs=0 maxOccurs=unbounded instanceId type string - minOccurs=0 maxOccurs=unbounded isActionableByYou type string - minOccurs=0 maxOccurs=unbounded projectId type string - minOccurs=0 maxOccurs=unbounded previewBefore type string - minOccurs=0 maxOccurs=unbounded previewAfter type string - minOccurs=0 maxOccurs=unbounded previewDiff type string - minOccurs=0 maxOccurs=unbounded comparisonStatus type string - minOccurs=0 maxOccurs=unbounded

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 268

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworUpdateWorkflowTaskgtltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtdesignReviewltcomuserIdgtltcompasswordgtmy passwordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtlttaskIdgt2543lttaskIdgtltactiongtDELEGATEltactiongtltassigneegtWTOffice2ltassigneegtltnotesgttest_notesltnotesgt

ltworUpdateWorkflowTaskgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 269

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygt

ltns4UpdateWorkflowTaskResponsexmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengtc09d7ff6-b1de-4c5c-a59b-6283d9bdd686lttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt2543ltns3idgtltns3namegtmany users Step1ltns3namegtltns3statusgtinActionOtherltns3statusgtltns3actualOwnergtWTOffice2ltns3actualOwnergtltns3externalReferenceNamegtWT_Project -

Simple_Image_Publtns3externalReferenceNamegt

ltns3externalReferenceIdgt5d91acb3-9900-44ab-961e-a40aad831b7eltns3externalReferenceIdgt

ltns3externalReferenceTypegtPROJECT_ASSETltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtSimple_Image_Publtns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt15f3cebd-3f09-4ebb-a988-0f32588ee6d2ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-27T120905797Zltns3createdgtltns3stepgtStep1ltns3stepgtltns3submittergtadminltns3submittergtltns3typegtdesignReviewltns3typegt

ltns3uriToGetTaskDetailsgthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1Community1tasks25432543ltns3uriToGetTaskDetailsgt

ltns3instanceIdgt2527ltns3instanceIdgt

ltns3isActionableByYougtfalseltns3isActionableByYougt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 270

Appendix B - SOAP API

ltns3onBehalfOfGroupsgtltns3potentialUsersgtWTProjReviewerltns3potentialUsersgt

ltns3potentialUsersgtWTOffice1ltns3potentialUsersgt

ltns3projectIdgtb960f0bc-ce8e-4f71-9077-a98054c25a79ltns3projectIdgt

ltns3previewBeforegthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesbfbc379f-fddf-49d1-bdff-28ac75f70683ltns3previewBeforegt

ltns3previewAftergthttpsWindowsSQLClusteredH155-eolbpbeonet8080project-servicesv1external-projects192e92ca-2ffd-44fe-a00b-05aafef161f6filesa205c38c-7d99-4075-aa48-327315331897ltns3previewAftergt

ltns3comparisonStatusgtsubmitltns3comparisonStatusgtlttaskgt

ltns4UpdateWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

getWorkflowTasks()

Description

This Web Service operation is used to get the list of existing workflow tasks

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 271

Appendix B - SOAP API

Parameters

Input

GetWorkflowTasks

request type GetWorkflowTasks - extension of type RequestMessage

query type string - minOccurs=0 maxOccurs=1 assignedUser type string - minOccurs=0 maxOccurs=1 searchType type string enum values all user unassigned - minOccurs=1 maxOccurs=1 submitters type string - minOccurs=0 maxOccurs=unbounded subjects type string - minOccurs=0 maxOccurs=unbounded types type string - minOccurs=0 maxOccurs=unbounded statuses type string - minOccurs=0 maxOccurs=unbounded earliestCreationTime type date - minOccurs=0 maxOccurs=1 latestCreationTime type date - minOccurs=0 maxOccurs=1 order type string - minOccurs=0 maxOccurs=1 pagination type PaginationControls - minOccurs=0 maxOccurs=1

Output

GetWorkflowTasksResponse

response type GetWorkflowTasksResponse - extension of type ResponseMessage

WorkflowTask - minOccurs=0 maxOccurs=unbounded id type string name type string description type string status type string actualOwner type string externalReferenceName type string externalReferenceType type string externalReferenceSubjectName type string externalReferenceSubjectId type string created type string step type string submitter type string type type WorkflowTaskType - type string enum values documentReview designReview uriToGetTaskDetails type string

PaginationControls - minOccurs=0 maxOccurs=1 pageNumber type int - minOccurs=0 pageSize type int - minOccurs=0 totalPages type int - minOccurs=0

Fault

WorkflowFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 272

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnswor=httppbcomEngageOnewsworkflowxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltworGetWorkflowTasksgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt ltcomnamegtcommunity1ltcomnamegt

ltcomidentgtltcomdomaingtltcomuserIdgtsysadminltcomuserIdgtltcompasswordgtmypasswordltcompasswordgt

ltcomUsernameTokengtltcomauthContextgtltsearchTypegtallltsearchTypegt

ltworGetWorkflowTasksgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 273

Appendix B - SOAP API

Sample response

ltsoapEnvelopexmlnssoap=httpschemasxmlsoaporgsoapenvelopegt

ltSOAP-ENVHeader xmlnsSOAP-ENV=httpschemasxmlsoaporgsoapenvelopegt

ltsoapBodygtltns4GetWorkflowTaskResponse

xmlnsns2=httppbcomEngageOnewscommonxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewsworkflowgt

ltauthContext xmlns=httppbcomEngageOnewscommongtltSessionTokengt

lttokengt7ee7a1ed-5e98-41e7-9dda-4b40637058dblttokengt

ltSessionTokengtltauthContextgtlttaskgt

ltns3idgt12345ltns3idgtltns3namegtmany users WF2_step1ltns3namegtltns3statusgtawaitingUserltns3statusgtltns3actualOwnergtuser2ltns3actualOwnergtltns3externalReferenceNamegt154813 -

1969227008ltns3externalReferenceNamegtltns3externalReferenceIdgt273ltns3externalReferenceIdgt

ltns3externalReferenceTypegtENGAGEONEltns3externalReferenceTypegt

ltns3externalReferenceSubjectNamegtOneltns3externalReferenceSubjectNamegt

ltns3externalReferenceSubjectIdgt1033ltns3externalReferenceSubjectIdgt

ltns3createdgt2016-09-02T154823277+0200ltns3createdgt

ltns3stepgtWF2_step1ltns3stepgtltns3submittergtsysadminltns3submittergtltns3typegtdocumentReviewltns3typegt

ltns3uriToGetTaskDetailsgthttplocalhost8080workflow-servicesv1community1workflowtasks1234512345ltns3uriToGetTaskDetailsgt

ltns3onBehalfOfGroupsgtltns3potentialUsersgtuser2ltns3potentialUsersgtltns3potentialUsersgtuser3ltns3potentialUsersgtltns3allowedActionsgtCLAIMltns3allowedActionsgt

lttaskgt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 274

Appendix B - SOAP API

ltns4GetWorkflowTaskResponsegtltsoapBodygt

ltsoapEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 275

Appendix B - SOAP API

Delivery service

suspendDeliveryItem

WSDL httpltengageone-server-hostgtltserver-portgtEngageOneWSDeliveryServicewsdl

Note Some tags have been broken up for formatting purposes

deleteDeliveryItem()

Description

This Web service deletes a delivery item as specified by a work item or delivery item

Parameters

Input

DeleteDeliveryItemRequest

request type DeleteDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

DeleteDeliveryItemResponse

response type DeleteDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 276

Appendix B - SOAP API

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelDeleteDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt501ltidgtltdeliveryItemgtltcommentgtSoapUI Testltcommentgt

ltdelDeleteDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2DeleteDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

deliverDocument()

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 277

Appendix B - SOAP API

Description

This Web service delivers a document to the specified delivery option

The input is a template identifier along with the document files (for example answer HIP content properties)

A delivery request is created in the system and returned from the service The status field indicates the status of the delivery request

If the mode of any of the delivery channel associated with the delivery option is IMMEDIATE the document data is also returned for that delivery channel

A SOAP request sample is provided that shows how to pass a file to the deliverDocument Web service as an MTOM attachment using a standard client tool

This Web service supports on-demand licensing

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 278

Appendix B - SOAP API

Parameters

Input

DeliverDocumentRequest

request type DeliverDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

delilveryOptionident type IntegerIdOrName

Output

DeliverDocumentResponse

response type DeliverDocumentResponse - extension of type ResponseMessage

deliveryRequest type DeliveryRequest - extension of abstract type Entity id type ID - type int with restriction status type DeliveryStatus - type string with restriction - enum NEW PROCESSING

COMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS Note ERROR status code is returned when the delivery channel fails because of an attachment conversion issue (For example a document attached to a publication is broken and conversion services fail to process it) This status is different from a normal document composition failure which occurs when the main document generation fails

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restriction

deliveryChannel type DeliveryChannel - extension of abstract type Entity id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX device type Device - extension of abstract type Entity

id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS document - optional type ComposedDocument

data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 279

Appendix B - SOAP API

Sample request

POST httplocalhost8080EngageOneWSDeliveryService HTTP11Accept-Encoding gzipdeflateSOAPAction httppbcomEngageOnewsdeliveryDeliverDocumentContent-Type multipartrelated type=applicationxop+xmlstart=ltrootpartsoapuiorggt start-info=textxmlboundary=----=_Part_0_2998042411322083558307MIME-Version 10 User-Agent Jakarta Commons-HttpClient31Host localhost8080 Content-Length 2239

------=_Part_0_2998042411322083558307 Content-Type applicationxop+xml charset=UTF-8 type=textxmlContent-Transfer-Encoding 8bitContent-ID ltrootpartsoapuiorggt

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelDeliverDocumentgt ltcomauthContextgt

ltcomUsernameTokengt ltcomdomaingt

ltcomidentgt

ltcomidgtCC62248A-820F-42E7-8F8D-B6CD51DF4B74ltcomidgtltcomidentgt

ltcomdomaingtltcomuserIdgteosuperltcomuserIdgtltcompasswordgt1234ltcompasswordgtltcomtransientSessiongtfalseltcomtransientSessiongtltcomondemandgtfalseltcomondemandgt

ltcomUsernameTokengtltcomauthContextgtlttemplategt

ltidentgt ltcomnamegt4933ltcomnamegt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtltincInclude href=cid1276245679229

xmlnsinc=httpwwww3org200408xopincludegtltdatagtltfilegt

ltfilesgtlttemplategt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 280

Appendix B - SOAP API

ltdeliveryOptiongtltidentgt

ltcomnamegtlpltcomnamegtltidentgt

ltdeliveryOptiongtltdelDeliverDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt------=_Part_0_2998042411322083558307 Content-Type textxml charset=us-asciiContent-Transfer-Encoding 7bitContent-ID lt1276245679229gt

ltxml version=10 encoding=UTF-8 standalone=yesgtltInteractiveDataModel version=11 xmlnsxsi=httpwwww3org2001XMLSchema-instancexsinoNamespaceSchemaLocation=c10478fe6de8490ea462a64e518751c9xsdgt

ltPublicationgt ltInteractiveFieldgtTest dataltInteractiveFieldgtltDeliveryInformationgtltRecipient xsinil=truegtltEmailToAddress xsinil=truegtltEmailFromAddress xsinil=truegtltEmailSubject xsinil=truegtltEmailBody xsinil=truegtltFaxNumber xsinil=truegtltDocumentSelector xsinil=truegt

ltDeliveryInformationgtltg1privategt

ltPublicationgtltInteractiveDataModelgt------=_Part_0_2998042411322083558307--

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 281

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4DeliverDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdeliveryRequestgtltns2idgt137ltns2idgtltns2statusgtPROCESSINGltns2statusgtltns2deliveryItemsgt

ltns2deliveryItemgtltns2idgt3252ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2modegtIMMEDIATEltns2modegtltns2typegtPRINTltns2typegtltns2devicegt

ltns2idgt2ltns2idgtltns2namegtdefault pdfltns2namegtltns2typegtPDFltns2typegtltns2previewgttrueltns2previewgtltns2HIPIdgt312ltns2HIPIdgtltns2metaIdgt313ltns2metaIdgt

ltns2devicegtltns2recipientgt

ltns2idgt1ltns2idgtltns2namegtRRRRRRRRRRltns2namegt

ltns2xpathgtInteractiveDataModelPublicationDeliveryInformationReceipientltns2xpathgt

ltns2recipientgtltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgtltns2documentgt

ltns2datagt ltxopInclude

href=ciddata-639c053e-ee64-4630-8ada-5091966c518awsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltns2documentgt

ltns2deliveryItemgtltns2deliveryItemsgt

ltdeliveryRequestgtltns4DeliverDocumentResponsegt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 282

Appendix B - SOAP API

previewDocument()

Description

This Web service returns a preview of the document specified in the request

The request includes the template identifier along with the document files (for example answer HIP property) In order for this operation to work successfully the preview device needs to be defined in EngageOne Administration

The preview document data is returned in the response as an attachment

Parameters

Input

PreviewDocumentRequest

request type PreviewDocument - extension of type RequestMessage

templateident type IntegerIdOrName files - optional

file - unbounded is recursive

Output

PreviewDocumentResponse

response type PreviewDocumentResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

Deliveryfault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 283

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewDocumentgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtAQIC5wM2LY4SfcybfdGzpUvpFf4fVau4XU-w7VEHi9SLx_MAAJTSQACMDEAAlNLABM3MzUxMTg2ODM5MTcwNTUwNzM1defaultltcomtokengt

ltcomSessionTokengt

ltcomauthContextgtlttemplategt

ltidentgt ltcomidgt119ltcomidgt

ltidentgtltfilesgt

ltfilegt lttypegtANSWERlttypegtltdatagtcid278598095431ltdatagt

ltfilegtltfilegt

lttypegtPUBXlttypegtltdatagtcid278598095432ltdatagt

ltfilegtltfilegt

lttypegtHIPlttypegtltdatagtcid278598095433ltdatagt

ltfilegtltfilegt

lttypegtPROPERTYlttypegtltdatagtcid278598095434ltdatagt

ltfilegtltfilesgt

lttemplategtltdelPreviewDocumentgt

ltsoapenvBodygtltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 284

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewDocumentResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-bdd85045-1de1-42c2-b0b1-865ea9045a52wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewDocumentResponsegtltenvBodygt

ltenvEnvelopegt

previewWorkItem()

Description

This Web service previews a document associated with a work item

The request includes a work item identifier (id or name) obtained from a previous call to the WorkItemService createWorkItem service operation

The preview device is assumed to be defined through EngageOne Administration

The preview document data is returned in the response as an attachment

Note In order to preview a work item with Web services the work item status must not be Active New or Active Incomplete

The work item can be previewed after the required work is completed

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 285

Appendix B - SOAP API

Parameters

Input

PreviewWorkItemRequest

request type PreviewWorkItem - extension of type RequestMessage

workItem ident type IntegerIdOrName

Output

PreviewWorkItemResponse

response type PreviewWorkItemResponse - extension of type ResponseMessage

document type ComposedDocument data type base64Binary

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelPreviewWorkItemgt ltcomauthContextgt

ltcomSessionTokengt

ltcomtokengtc42356d8ec312e4b471399896cc44e77_1261063384968_1ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt25ltcomidgt

ltidentgtltworkItemgt

ltdelPreviewWorkItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 286

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4PreviewWorkItemResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewskeymapgt

ltdocumentgt ltns2datagt

ltxopIncludehref=ciddata-121f00b4-7d2d-4c75-a20a-1c5ed92563c1wsjbossorgxmlnsxop=httpwwww3org200408xopincludegt

ltns2datagtltdocumentgt

ltns4PreviewWorkItemResponsegtltenvBodygt

ltenvEnvelopegt

resumeDeliveryItem()

Description

This Web service resumes a delivery item which has been previously suspended via a call to the DeliveryService suspendDeliveryItem operation

The request must contain either the work item identifier (ID or name) or the delivery item ID An optional comment can be specified as well

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 287

Appendix B - SOAP API

Parameters

Input

ResumeDeliveryItemRequest

request type ResumeDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

ResumeDeliveryItemResponse

response type ResumeDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelResumeDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtResume by soupUIltcommentgt

ltdelResumeDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 288

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2ResumeDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

searchDeliveryItems()

Description

This Web service retrieves delivery items associated with a work item or as specified by a delivery item ID

If the search filter is set to DETAIL the composed document associated with the delivery item is also returned if it exists (it may not have been composed)

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 289

Appendix B - SOAP API

Parameters

Input

SearchDeliveryItemsRequest

request type SearchDeliveryItems - extension of type SearchRequestMessage

workItems - optionalworkItem

ident type IntegerIdOrName

deliveryItems - optionaldeliveryItem

id type ID - type int with restriction

Output

SearchDeliveryItemsResponse

response type SearchDeliveryItemsResponse - extension of type ResponseMessage

deliveryItems - optionaldeliveryItem - unbounded type DeliveryItem - extension of abstract type Entity

id type ID - type int with restrictiondeliveryChannel type DeliveryChannel - extension of abstract type Entity

id type ID - type int with restriction name type string mode type DeliveryChannelMode - type string with restriction - enum BATCH IMMEDIATE type type DeliveryChannelType - type string with restriction - enum ARCHIVE PRINT EMAIL FAX

device type Device - extension of abstract type Entity id type ID - type int with restriction name type string type type DeviceType - type string with restriction - enum PDF PS AFP

HTML eHTML preview type boolean HIPId type ID - type int with restriction metaId type ID - type int with restriction

recipient - optional type Recipient - extension of abstract type Entity id type ID - type int with restriction name type string xpath type string

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 290

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnsdel=httppbcomEngageOnewsdeliveryxmlnscom=httppbcomEngageOnewscommongt

ltsoapenvHeadergtltsoapenvBodygt

ltdelSearchDeliveryItemsgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltcomfiltergtLISTltcomfiltergtltworkItemsgt

ltworkItemgt ltidentgt

ltcomidgt27ltcomidgtltidentgt

ltworkItemgtltworkItemsgt

ltdelSearchDeliveryItemsgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 291

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns4SearchDeliveryItemsResponsexmlnsns2=httppbcomEngageOnewsmodelxmlnsns3=httppbcomEngageOnewscommonxmlnsns4=httppbcomEngageOnewsdeliveryxmlnsns5=httppbcomEngageOnewseditorgt

ltdeliveryItemsgtltdeliveryItemgt

ltns2idgt501ltns2idgtltns2deliveryChannelgt

ltns2idgt1ltns2idgtltns2namegtCH1ltns2namegtltns2typegtPRINTltns2typegt

ltns2deliveryChannelgtltns2statusgtDELIVEREDltns2statusgt

ltdeliveryItemgtltdeliveryItemsgt

ltns4SearchDeliveryItemsResponsegtltenvBodygt

ltenvEnvelopegt

suspendDeliveryItem()

Description

This Web service suspends a delivery item specified in the request by a work item identifier (ID or name) or delivery item ID

A suspended delivery item will not be delivered

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 292

Appendix B - SOAP API

Parameters

Input

SuspendDeliveryItemRequest

request type SuspendDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string

Output

SuspendDeliveryItemResponse

response type SuspendDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

Sample request

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelSuspendDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltdeliveryItemgt

ltidgt750ltidgtltdeliveryItemgtltcommentgtsoapUIltcommentgt

ltdelSuspendDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 293

Appendix B - SOAP API

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2SuspendDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

updateDeliveryItem()

Description

This Web service can be used to update the status of a delivery item as specified in the request by a work item identifier (ID or name) or delivery item ID

Parameters

Input

UpdateDeliveryItemRequest

request type UpdateDeliveryItem - extension of abstract type DeliveryItemMaintRequest - extension of type RequestMessage

workItem ident type IntegerIdOrName

deliveryItemid type ID - type int with restriction

comment - optional type string status type DeliveryStatus - type string with restriction - enum NEW PROCESSINGCOMPOSED DELIVERED HOLD CANCELED RESUMED ERROR VARIOUS

Output

UpdateDeliveryItemResponse

response type UpdateDeliveryItemResponse - extension of type ResponseMessage

Fault

DeliveryFault

fault type ServiceFault

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 294

Appendix B - SOAP API

Sample request

ltsoapenvEnvelopexmlnssoapenv=httpschemasxmlsoaporgsoapenvelopexmlnscom=httppbcomEngageOnewscommonxmlnsdel=httppbcomEngageOnewsdeliverygt

ltsoapenvHeader gtltsoapenvBodygt

ltdelUpdateDeliveryItemgtltcomauthContextgt

ltcomSessionTokengt

ltcomtokengt0115dd59d1336d44390d9aacb554c320_1261152736859_0ltcomtokengt

ltcomSessionTokengtltcomauthContextgtltworkItemgt

ltidentgt ltcomidgt38ltcomidgt

ltidentgtltworkItemgtltcommentgt123456ltcommentgtltstatusgtDELIVEREDltstatusgt

ltdelUpdateDeliveryItemgtltsoapenvBodygt

ltsoapenvEnvelopegt

Sample response

ltenvEnvelope xmlnsenv=httpschemasxmlsoaporgsoapenvelopegt

ltenvHeadergtltenvBodygt

ltns2UpdateDeliveryItemResponsexmlnsns2=httppbcomEngageOnewsdeliveryxmlnsns3=httppbcomEngageOnewsmodelxmlnsns4=httppbcomEngageOnewscommonxmlnsns5=httppbcomEngageOnewseditorgt

ltenvBodygtltenvEnvelopegt

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 295

10 - Upgrading 3X to 4X SOAP services This section details the difference between EngageOne 3X and 4X SOAP services

Note this section does not cover Gen1 SOAP services These services are no longer available

In this section

Licensing changes 297 Security changes 298 WorkItem approval process not supported 300 DataPushServicemapData not supported 300

Upgrading 3X to 4X SOAP services

Licensing changes

EngageOne Server 4X no longer requires a license file at installation time

The license file restricted the

bull Total number of communities bull Total number of concurrent sessions bull Use of OnDemand services

These restrictions are no longer enforced at runtime As a result the following fields in the AuthContext element are ignored but must be included in your request

bull ondemand

bull transientsession

In addition the following services do not have the OnDemand licensing requirement as was the case in 3X

bull DeliverDocument

bull SearchDeliveryOptionsbull SearchTemplates

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 297

Upgrading 3X to 4X SOAP services

Security changes

The following section details security changes that are part of the upgrade to EngageOne 4X

Authentication with WS-Security

In EngageOne 3X a custom AuthContext SOAP element is used to send credential information to the server This authentication mechanism is still supported but should no longer be used in new development

To improve and modernize the authentication mechanisms of EngageOne Server the SOAP services now support WS-Security authentication

WS-Security (Web services security) is an industry standard that addresses security when data is exchanged as part of a Web service This type of authentication is implemented on all EngageOne Server services at the useridpassword level

WS-Security specifies enhancements to SOAP messaging that protect the integrity and confidentiality of a message and authenticate the sender WS-Security specifies how to associate a security token with a message without specifying what kind of token that is to be used

To use WS-Security you must specify the additional SOAP header elements in all requests

Role and access right enforcement

EngageOne version 4X introduces new Role and Access Rights restrictions in SOAP services Users are now required to have the necessary permissions to work with server resources

The following permissions are enforced in 4X

bull Role assignments - methods have been restricted by roles to align with permissions granted in EngageOne Interactive and EngageOne Admin

bull Template access rights - when working with resources in the TemplateActive ContentMessage Content folder structure the user must have access via an LDAP group specified in EngageOne Admin

For example SearchTemplates will return templates to which the user has permissions Some special roles have unrestricted access where this does not apply

bull WorkItem assignment rights- when working with a Work Item a user must either be an owner of the Work Item or have unrestricted access

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 298

Upgrading 3X to 4X SOAP services

For example to call DeleteWorkItem the user must be the owner of the Work Item

bull Unrestricted access - these roles are not restricted by Template Access and WorkItem Assignment Rights

Role and access rights by service

The following table describes the required roles and additional access rights that are enforced

Roles are abbreviated as follows

bull Interactive Roles

bull Editor bull Editor with Saving New Templates

bull CA - Community Administrator bull DM - Document Manager bull TM - Template Manager bull EFM - External File Manager

Service Required Roles Additional Access Enforced

Template Access Rights Interactive Roles DataPush

None (unrestricted access) DM CA

Template Access Rights Interactive Roles DeliveryManagement

None (unrestricted access) DM CA

WorkItem Assignment Rights Interactive Roles Delivery

None (unrestricted access) DM CA

NANo roles required Domain

Template Access Rights Interactive Roles Editor

None (unrestricted access) CA

Keymap EFM CA NA

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 299

Upgrading 3X to 4X SOAP services

Service Required Roles Additional Access Enforced

Security

None (unrestricted access) Interactive Roles Metadata

No roles required

WorkItem Assignment Rights Interactive Roles Template (Interactive features)

None (unrestricted access) DM CA

NATM CA SA Template (Admin features)

WorkItem Assignment Rights Interactive Roles WorkItem

None (unrestricted access) DM CA

WorkItem approval process not supported

The following methods are not currently supported in EngageOne 43 and will return a not supported fault message when called

bull WorkItemServicerejectWorkItembull WorkItemServiceapproveWorkItem

In addition WorkItemServicesubmitWorkItem will only submit work items for delivery If the work item triggers a workflow approval process an error will be thrown

DataPushServicemapData not supported

mapDatamethod of DataPushservice is no longer supported In earlier releases this method mapped pushed data from the pushData method to a template

In this release the pushData method performs this operation in advance and creates a corresponding communication in Interactive for an end-user

If you are using the out-of-the-box Interactive application the pushData call may exclude the specific template In this case the Interactive user will be prompted to select a Template

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 300

Upgrading 3X to 4X SOAP services

If you have developed your own Interactive application and opt to use the pushData method you must specify the template in advance to ensure data is mapped correctly

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 301

Notices

Copyright

Copyright copy2018 Pitney Bowes Inc All rights reserved

This publication and the software described in it is supplied under license and may only be used or copied in accordance with the terms of such license The information in this publication is provided for information only is subject to change without notice and should not be construed as a commitment by Pitney Bowes Inc (PBS) To the fullest extent permitted by applicable laws PBS excludes all warranties representations and undertakings (express or implied) in relation to this publication and assumes no liability or responsibility for any errors or inaccuracies that may appear in this publication and shall not be liable for loss or damage of any kind arising from its use

Except as permitted by such license reproduction of any part of this publication by mechanicalelectronic recording means or otherwise including fax transmission without the express permissionof PBS is prohibited to the fullest extent permitted by applicable laws

Nothing in this notice shall limit or exclude PBS liability in respect of fraud or for death or personal injury arising from its negligence Statutory rights of the user if any are unaffected

TALO Hyphenators and Spellers are used Developed by TALO BV Bussum Netherlands Copyright copy 1998 TALO BV Bussum NL TALO is a registered trademark reg

Encryption algorithms licensed from Unisys Corp under US Patent No 4558302 and foreign counterparts

Security algorithms Copyright copy 1991-1992 RSA Data Security Inc

Copyright copy DL Technology Ltd 1992-2010

Barcode fonts Copyright copy 1997 Terrapin Solutions Ltd with NRB Systems Ltd

This product includes software developed by the Apache Software Foundation (httpwwwapacheorg)

Artifex and the Ghostscript logo are registered trademarks and the Artifex logo and Ghostscript are trademarks of Artifex Software Inc

This product contains the Regex++ library Copyright copy 1998-2000 Dr John Maddock

PostScript is a trademark of Adobe Systems Incorporated

PCL is a trademark of Hewlett Packard Company

Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc (httpwwwbouncycastleorg)

ICU License - ICU 181 and later Copyright (c) 1995-2006 International Business Machines Corporation and others All rights reserved

Permission is hereby granted free of charge to any person obtaining a copy of this software andassociated documentation files (the Software) to deal in the Software without restriction includingwithout limitation the rights to use copy modify merge publish distribute andor sell copies of theSoftware and to permit persons to whom the Software is furnished to do so provided that the abovecopyright notice(s) and this permission notice appear in all copies of the Software and that both theabove copyright notice(s) and this permission notice appear in supporting documentation

Matra 08b (httpmatrasourceforgenet) The contents of this documentation are subject to the Mozilla Public License Version 11 (the License) you may not use this documentation except in

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 303

Copyright

compliance with the License You may obtain a copy of the License at httpwwwmozillaorgMPL Software distributed under the License is distributed on an AS IS basis WITHOUT WARRANTY OF ANY KIND either express or implied See the License for the specific language governing rights and limitations under the License Otherwise all product names are trademarks or registered trademarks of their respective holders

This product contains Sycamore version number 039 which is licensed under the MIT license The license can be downloaded from httpsgithubcomryexleysycamoreblobmasterdistrequesterjs The source code for this software is available from httpsgithubcomryexleysycamore

This product contains Underscore version number 152 which is licensed under the MIT license The license can be downloaded from httpsgithubcomjashkenasunderscoreblobmasterLICENSE The source code for this software is available from httpunderscorejsorg

This product contains Activiti version number 5170 which is licensed under the Apache license The license can be downloaded from httpactivitiorgfaqhtmlWhyApacheLicense The source code for this software is available from httpactivitiorgdownloadhtml

This product contains Bootstrap version number 336 which is licensed under the MIT license The license can be downloaded from httpgetbootstrapcomgetting-startedlicense-faqs The source code for this software is available from httpgetbootstrapcomgetting-starteddownload

This product contains Commons-Configuration version number 110 which is licensed under the Apache license The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpcommonsapacheorgpropercommons-configuration

This product contains jQuery version number 1102 which is licensed under the MIT license The license can be downloaded from httpsjqueryorglicense The source code for this software is available from httpjquerycomdownload

This product contains Json2JSON-js 2015-05-03 The source code for this software is available from httpsgithubcomdouglascrockfordJSON-js

This product contains Kendo UI Core version number 20141318 which is licensed under the Apache2 license The license can be downloaded from httpsgithubcomtelerikkendo-ui-core The source code for this software is available from httpwwwtelerikcomdownloadkendo-ui-core

This product contains Knockout-AMD-Helpers version number 074 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-amd-helpersblobmasterLICENSE The source code for this software is available from httpsgithubcomrniemeyerknockout-amd-helpers

This product contains Knockout version number 340 which is licensed under the MIT license The license can be downloaded from httpsgithubcomknockoutknockoutblobmasterLICENSE The source code for this software is available from httpknockoutjscomdownloads

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 304

Copyright

This product contains Knockout-DelegatedEvents version number 050 which is licensed under the MIT license The license can be downloaded from httpsgithubcomrniemeyerknockout-delegatedEventslicense The source code for this software is available from httpsgithubcomrniemeyerknockout-delegatedEvents

This product contains Knockout-Kendo version number 081 which is licensed under the Apache2 license The license can be downloaded from httprniemeyergithubioknockout-kendoindexhtml The source code for this software is available from httprniemeyergithubioknockout-kendo

This product contains LDAP Synchornization Connector version number 210 which is licensed under the BSD license The license can be downloaded from httptoolslsc-projectorgprojectslscrepositoryentrylsctrunkLICENSEtxt The source code for this software is available from httplsc-projectorgwikidownload

This product contains Momentjs version 2120 which is licensed under the MIT license The license can be downloaded from httpsgithubcommomentmomentblobdevelopLICENSE The source code for this software is available from httpmomentjscom

This product contains Quartz-Scheduler version number 221 which is licensed under the Apache license The license can be downloaded from httpquartz-schedulerorg The source code for this software is available from httpquartz-schedulerorg

This product contains RequireJS-Text version number 2014 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomrequirejstextblobmasterLICENSE The source code for this software is available from httpsgithubcomrequirejstext This product contains Solr-Solrj version number 472 which is licensed under the Apache LicenseThe license can be downloaded from httpsmaven-repositorycomartifactorgapachesolrsolr-solrj472pom The source code for this software is available from httpwikiapacheorgsolrSolrj This product contains RequireJS version number 220 which is licensed under the BSD and MIT licenses The license can be downloaded from httpsgithubcomjrburkerequirejsblobmasterLICENSE The source code for this software is available from httprequirejsorgdocsdownloadhtml

This product contains Apache ActiveMQ version number 5132 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorg

This product contains Apache NMS version 172 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpactivemqapacheorgnms

This product contains Apache Commons DBCP version number 122 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpscommonsapacheorgpropercommons-dbcp

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 305

Copyright

This product contains OWASP Encoder version number 12 which is licensed under the BSD license The license can be downloaded from httpsopensourceorglicensesBSD-3-Clause The source code for this software is available from httpswwwowasporgindexphpOWASP_Java_Encoder_Project

This product contains Narayan version number 5213Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpnarayanaio 0

This product contains Logback version number 113 which is licensed under the EPL and LGPL licenses version numbers 10 and 21 The license can be downloaded from httplogbackqoschlicensehtml The source code for this software is available from httplogbackqosch

This product contains JBoss Weld version number 233Final which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20The source code for this software is available from httpweldcdi-specorg

This product contains IronJacamar version number 132Final which is licensed under the LGPL license version number 21 The license can be downloaded from httpwwwgnuorglicensesold-licenseslgpl-21txt The source code for this software is available from httpwwwironjacamarorg

This product contains Hibernate version number 507Final which is licensed under the Apache and LGPL license version numbers 20 and 21 The license can be downloaded from httphibernateorgcommunitylicense The source code for this software is available from httphibernateorgorm

This product contains Apache Tomcat version number 8030 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesLICENSE-20 The source code for this software is available from httptomcatapacheorg

This product contains Apache Procrun version number 1015 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicensesThe source code for this software is available from httpcommonsapacheorgpropercommons-daemonprocrunhtml

This product contains URLRewriterFilter version number 403 which is licensed under the BSD 2-Clause license The license can be downloaded from httpcdnrawgitcompaultuckeyurlrewritefiltermastersrcdocmanual40introductionhtmllicenseThe source code for this software is available from httpwwwtuckeyorgurlrewrite

This product contains FasterXML Jackson version number 266 which is licensed under the Apache license version number 20 The license can be downloaded from httpwwwapacheorglicenses The source code for this software is available from httpsgithubcomFasterXMLjackson

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 306

Copyright

This product contains Log4net The license for log4net can be downloaded from httpswwwapacheorglicensesLICENSE-20 The source code for this software is available from httpsloggingapacheorglog4netdownload_log4netcgi

EngageOnereg Compose EngageOnereg Server Programmers Reference Guide 307

pitney bowes 0 3001 Summer Street Stamford CT 06926-0700

USA

wwwpitneybowescomus

copy 2018 Pitney Bowes Software Inc All rights reserved

  • Table of Contents
  • Overview
    • Overview
    • Template designer
      • About the template
        • Resources
            • EngageOne Server components
              • About Web services
              • Web service descriptions
                • EngageOne administration
                • EngageOne Interactive
                • Interactive document process flow
                  • Selecting a template
                  • Save and submit
                  • Delivering a document
                      • Integrating with EngageOne SOAP
                        • OnDemand
                        • Interactive
                        • Data push processing in EngageOne Interactive
                          • Mapping options
                          • Data push parameters
                          • Accessing services
                          • How mapping works
                          • Data map XML schema and examples
                            • XPath
                              • ElementMap example
                              • ListMap example
                              • RepeatMap example
                                  • EngageOne domains
                                    • User authentication
                                      • WS-Security
                                      • Legacy AuthContext
                                        • Code example
                                          • Obsolete flags
                                              • Data Push error handling
                                                • Code element error types
                                                  • Web services scenario medical insurance data integration
                                                    • Coordinate with template designer
                                                    • Define data push mapping
                                                    • Import data push map
                                                    • Creating the Web services
                                                        • Interactive Document Delivery
                                                        • Sample application
                                                          • Implement Deliver Document sample application
                                                          • Customize sample application
                                                          • Run sample application
                                                            • Notes
                                                                • OnDemand Document Delivery
                                                                  • Ways to authenticate
                                                                    • WS-Security
                                                                    • Legacy AuthContext
                                                                      • XForms
                                                                        • About XForms
                                                                        • XForms processors
                                                                        • XFormSDI Flow
                                                                        • XForms standard files
                                                                          • XHTML presentation file
                                                                          • XML instance file
                                                                          • XML schema file for the interactive data model
                                                                          • XML schema file for the non-interactive Designer data model
                                                                            • Data definition type and attributes
                                                                              • System Data Integration
                                                                                • SDI General Configuration
                                                                                • Using an XML file as a data source
                                                                                  • XML data source diagram
                                                                                  • XMLSystemDataLoader tasks
                                                                                    • Using the Java callback interface
                                                                                      • Java callback interface process flow
                                                                                        • Feature support for System Data Integration
                                                                                          • XForms model example
                                                                                            • Integration option 1 ndash XML data source
                                                                                              • Enabling the default system data loader
                                                                                              • Designing the template for System Data Integration
                                                                                                • Configure system data load user confirmation
                                                                                                • Configure system data load user confirmation read-only
                                                                                                • Configure system data load without user confirmation
                                                                                                • Preparing the system data XML
                                                                                                  • Example XML answer file
                                                                                                  • InteractiveDataModel element
                                                                                                    • Loading the system data XML
                                                                                                        • Integration option 2 ndash callback interface
                                                                                                          • Configure EngageOne Interactive to use custom system data loader
                                                                                                          • Implement a custom system data loader
                                                                                                            • Steps
                                                                                                            • Notes
                                                                                                              • Custom system data loader
                                                                                                                • Custom data loader interface
                                                                                                                • loadToSchema function
                                                                                                                • loadToView function
                                                                                                                • loadToInstance function
                                                                                                                  • Error handling
                                                                                                                    • SystemDataLoaderException class ndash custom fields
                                                                                                                      • errorcode
                                                                                                                        • systemDataLoaderMessagesproperties sample
                                                                                                                          • params
                                                                                                                          • result
                                                                                                                          • message and cause
                                                                                                                            • SystemDataLoaderException constructor signature
                                                                                                                              • Sample implementation
                                                                                                                                • Compiling and packaging custom system data loader
                                                                                                                                • Configuring EngageOne Interactive system data settings
                                                                                                                                  • Additional features in SOAP
                                                                                                                                    • Trusted Connection
                                                                                                                                    • Template search
                                                                                                                                      • Searching templates by template property
                                                                                                                                        • Java sample
                                                                                                                                        • C sample
                                                                                                                                          • Searching templates with sorting and pagination
                                                                                                                                            • Java sample
                                                                                                                                            • C sample
                                                                                                                                              • Searching templates by template metadata
                                                                                                                                                • Java sample
                                                                                                                                                • C NET sample
                                                                                                                                                • Supported metadata field types
                                                                                                                                                  • Java sample
                                                                                                                                                  • C NET sample
                                                                                                                                                    • Write delivery information
                                                                                                                                                      • Write delivery information process
                                                                                                                                                        • Steps
                                                                                                                                                            • Managing the work queue
                                                                                                                                                              • Retrieving work items
                                                                                                                                                              • Retrieving work items with pagination
                                                                                                                                                              • Retrieving work items with sorting
                                                                                                                                                                • Updating work items
                                                                                                                                                                  • Updating the document delivery option
                                                                                                                                                                  • Updating work item status
                                                                                                                                                                  • Updating work item comments
                                                                                                                                                                    • Reassigning a work item
                                                                                                                                                                      • Retrieving document assignees
                                                                                                                                                                      • Reassigning a document
                                                                                                                                                                        • Deleting a work item
                                                                                                                                                                          • Perform a document delete
                                                                                                                                                                              • EngageOne notifications
                                                                                                                                                                                • Overview
                                                                                                                                                                                • Notification components diagram
                                                                                                                                                                                  • Diagram details
                                                                                                                                                                                    • Topics and queues
                                                                                                                                                                                    • Configuration settings
                                                                                                                                                                                      • Configuration settings (cont)
                                                                                                                                                                                        • Messages
                                                                                                                                                                                          • Notification message common properties
                                                                                                                                                                                            • Communication messages
                                                                                                                                                                                              • Communication published actions
                                                                                                                                                                                                • Batch messages
                                                                                                                                                                                                  • Accumulated batch messages
                                                                                                                                                                                                  • Non accumulated batch messages
                                                                                                                                                                                                    • Workflow messages
                                                                                                                                                                                                    • Consuming notification messages
                                                                                                                                                                                                      • Consume messages from an ActiveMQ queue or topic
                                                                                                                                                                                                        • Using other JMS implementations
                                                                                                                                                                                                          • Using a custom JMS connection factory
                                                                                                                                                                                                            • Sample message consumers
                                                                                                                                                                                                              • The comparison adapter plug-in
                                                                                                                                                                                                                • The custom plug-in implementation
                                                                                                                                                                                                                • Example implementations
                                                                                                                                                                                                                  • DocBridgereg Delta
                                                                                                                                                                                                                  • Simple comparison plug-in
                                                                                                                                                                                                                  • Command line adapter implementation
                                                                                                                                                                                                                    • Plug-in Installation and configuration
                                                                                                                                                                                                                      • Appendix A - Editor methods
                                                                                                                                                                                                                        • LoadContents
                                                                                                                                                                                                                        • SaveContents
                                                                                                                                                                                                                        • SpellCheck
                                                                                                                                                                                                                        • IsComplete
                                                                                                                                                                                                                        • IsModified
                                                                                                                                                                                                                        • GetVersion
                                                                                                                                                                                                                          • Appendix B - SOAP API
                                                                                                                                                                                                                            • Identifiers
                                                                                                                                                                                                                            • Search filter
                                                                                                                                                                                                                            • Promotion service
                                                                                                                                                                                                                              • createImportAssetsJob()
                                                                                                                                                                                                                              • getImportAssetsJob()
                                                                                                                                                                                                                              • createExportAssetsJob()
                                                                                                                                                                                                                              • getExportAssetsJob()
                                                                                                                                                                                                                              • getImportPreview()
                                                                                                                                                                                                                              • getAssetDependencies()
                                                                                                                                                                                                                                • Folder service
                                                                                                                                                                                                                                • Data push service
                                                                                                                                                                                                                                • Delivery management service
                                                                                                                                                                                                                                • Dictionary service
                                                                                                                                                                                                                                • Domain service
                                                                                                                                                                                                                                • Editor service
                                                                                                                                                                                                                                • Keymap service
                                                                                                                                                                                                                                • Metadata service
                                                                                                                                                                                                                                • Request status update service
                                                                                                                                                                                                                                • Security service
                                                                                                                                                                                                                                • Template service
                                                                                                                                                                                                                                • Workitem service
                                                                                                                                                                                                                                • Attachment service
                                                                                                                                                                                                                                • Workflow service
                                                                                                                                                                                                                                • Delivery service
                                                                                                                                                                                                                                  • Upgrading 3X to 4X SOAP services
                                                                                                                                                                                                                                    • Licensing changes
                                                                                                                                                                                                                                    • Security changes
                                                                                                                                                                                                                                      • Authentication with WS-Security
                                                                                                                                                                                                                                      • Role and access right enforcement
                                                                                                                                                                                                                                      • Role and access rights by service
                                                                                                                                                                                                                                        • WorkItem approval process not supported
                                                                                                                                                                                                                                        • DataPushServicemapData not supported
Page 6: EngageOne v4.4.8 Programmer's Reference Guide
Page 7: EngageOne v4.4.8 Programmer's Reference Guide
Page 8: EngageOne v4.4.8 Programmer's Reference Guide
Page 9: EngageOne v4.4.8 Programmer's Reference Guide
Page 10: EngageOne v4.4.8 Programmer's Reference Guide
Page 11: EngageOne v4.4.8 Programmer's Reference Guide
Page 12: EngageOne v4.4.8 Programmer's Reference Guide
Page 13: EngageOne v4.4.8 Programmer's Reference Guide
Page 14: EngageOne v4.4.8 Programmer's Reference Guide
Page 15: EngageOne v4.4.8 Programmer's Reference Guide
Page 16: EngageOne v4.4.8 Programmer's Reference Guide
Page 17: EngageOne v4.4.8 Programmer's Reference Guide
Page 18: EngageOne v4.4.8 Programmer's Reference Guide
Page 19: EngageOne v4.4.8 Programmer's Reference Guide
Page 20: EngageOne v4.4.8 Programmer's Reference Guide
Page 21: EngageOne v4.4.8 Programmer's Reference Guide
Page 22: EngageOne v4.4.8 Programmer's Reference Guide
Page 23: EngageOne v4.4.8 Programmer's Reference Guide
Page 24: EngageOne v4.4.8 Programmer's Reference Guide
Page 25: EngageOne v4.4.8 Programmer's Reference Guide
Page 26: EngageOne v4.4.8 Programmer's Reference Guide
Page 27: EngageOne v4.4.8 Programmer's Reference Guide
Page 28: EngageOne v4.4.8 Programmer's Reference Guide
Page 29: EngageOne v4.4.8 Programmer's Reference Guide
Page 30: EngageOne v4.4.8 Programmer's Reference Guide
Page 31: EngageOne v4.4.8 Programmer's Reference Guide
Page 32: EngageOne v4.4.8 Programmer's Reference Guide
Page 33: EngageOne v4.4.8 Programmer's Reference Guide
Page 34: EngageOne v4.4.8 Programmer's Reference Guide
Page 35: EngageOne v4.4.8 Programmer's Reference Guide
Page 36: EngageOne v4.4.8 Programmer's Reference Guide
Page 37: EngageOne v4.4.8 Programmer's Reference Guide
Page 38: EngageOne v4.4.8 Programmer's Reference Guide
Page 39: EngageOne v4.4.8 Programmer's Reference Guide
Page 40: EngageOne v4.4.8 Programmer's Reference Guide
Page 41: EngageOne v4.4.8 Programmer's Reference Guide
Page 42: EngageOne v4.4.8 Programmer's Reference Guide
Page 43: EngageOne v4.4.8 Programmer's Reference Guide
Page 44: EngageOne v4.4.8 Programmer's Reference Guide
Page 45: EngageOne v4.4.8 Programmer's Reference Guide
Page 46: EngageOne v4.4.8 Programmer's Reference Guide
Page 47: EngageOne v4.4.8 Programmer's Reference Guide
Page 48: EngageOne v4.4.8 Programmer's Reference Guide
Page 49: EngageOne v4.4.8 Programmer's Reference Guide
Page 50: EngageOne v4.4.8 Programmer's Reference Guide
Page 51: EngageOne v4.4.8 Programmer's Reference Guide
Page 52: EngageOne v4.4.8 Programmer's Reference Guide
Page 53: EngageOne v4.4.8 Programmer's Reference Guide
Page 54: EngageOne v4.4.8 Programmer's Reference Guide
Page 55: EngageOne v4.4.8 Programmer's Reference Guide
Page 56: EngageOne v4.4.8 Programmer's Reference Guide
Page 57: EngageOne v4.4.8 Programmer's Reference Guide
Page 58: EngageOne v4.4.8 Programmer's Reference Guide
Page 59: EngageOne v4.4.8 Programmer's Reference Guide
Page 60: EngageOne v4.4.8 Programmer's Reference Guide
Page 61: EngageOne v4.4.8 Programmer's Reference Guide
Page 62: EngageOne v4.4.8 Programmer's Reference Guide
Page 63: EngageOne v4.4.8 Programmer's Reference Guide
Page 64: EngageOne v4.4.8 Programmer's Reference Guide
Page 65: EngageOne v4.4.8 Programmer's Reference Guide
Page 66: EngageOne v4.4.8 Programmer's Reference Guide
Page 67: EngageOne v4.4.8 Programmer's Reference Guide
Page 68: EngageOne v4.4.8 Programmer's Reference Guide
Page 69: EngageOne v4.4.8 Programmer's Reference Guide
Page 70: EngageOne v4.4.8 Programmer's Reference Guide
Page 71: EngageOne v4.4.8 Programmer's Reference Guide
Page 72: EngageOne v4.4.8 Programmer's Reference Guide
Page 73: EngageOne v4.4.8 Programmer's Reference Guide
Page 74: EngageOne v4.4.8 Programmer's Reference Guide
Page 75: EngageOne v4.4.8 Programmer's Reference Guide
Page 76: EngageOne v4.4.8 Programmer's Reference Guide
Page 77: EngageOne v4.4.8 Programmer's Reference Guide
Page 78: EngageOne v4.4.8 Programmer's Reference Guide
Page 79: EngageOne v4.4.8 Programmer's Reference Guide
Page 80: EngageOne v4.4.8 Programmer's Reference Guide
Page 81: EngageOne v4.4.8 Programmer's Reference Guide
Page 82: EngageOne v4.4.8 Programmer's Reference Guide
Page 83: EngageOne v4.4.8 Programmer's Reference Guide
Page 84: EngageOne v4.4.8 Programmer's Reference Guide
Page 85: EngageOne v4.4.8 Programmer's Reference Guide
Page 86: EngageOne v4.4.8 Programmer's Reference Guide
Page 87: EngageOne v4.4.8 Programmer's Reference Guide
Page 88: EngageOne v4.4.8 Programmer's Reference Guide
Page 89: EngageOne v4.4.8 Programmer's Reference Guide
Page 90: EngageOne v4.4.8 Programmer's Reference Guide
Page 91: EngageOne v4.4.8 Programmer's Reference Guide
Page 92: EngageOne v4.4.8 Programmer's Reference Guide
Page 93: EngageOne v4.4.8 Programmer's Reference Guide
Page 94: EngageOne v4.4.8 Programmer's Reference Guide
Page 95: EngageOne v4.4.8 Programmer's Reference Guide
Page 96: EngageOne v4.4.8 Programmer's Reference Guide
Page 97: EngageOne v4.4.8 Programmer's Reference Guide
Page 98: EngageOne v4.4.8 Programmer's Reference Guide
Page 99: EngageOne v4.4.8 Programmer's Reference Guide
Page 100: EngageOne v4.4.8 Programmer's Reference Guide
Page 101: EngageOne v4.4.8 Programmer's Reference Guide
Page 102: EngageOne v4.4.8 Programmer's Reference Guide
Page 103: EngageOne v4.4.8 Programmer's Reference Guide
Page 104: EngageOne v4.4.8 Programmer's Reference Guide
Page 105: EngageOne v4.4.8 Programmer's Reference Guide
Page 106: EngageOne v4.4.8 Programmer's Reference Guide
Page 107: EngageOne v4.4.8 Programmer's Reference Guide
Page 108: EngageOne v4.4.8 Programmer's Reference Guide
Page 109: EngageOne v4.4.8 Programmer's Reference Guide
Page 110: EngageOne v4.4.8 Programmer's Reference Guide
Page 111: EngageOne v4.4.8 Programmer's Reference Guide
Page 112: EngageOne v4.4.8 Programmer's Reference Guide
Page 113: EngageOne v4.4.8 Programmer's Reference Guide
Page 114: EngageOne v4.4.8 Programmer's Reference Guide
Page 115: EngageOne v4.4.8 Programmer's Reference Guide
Page 116: EngageOne v4.4.8 Programmer's Reference Guide
Page 117: EngageOne v4.4.8 Programmer's Reference Guide
Page 118: EngageOne v4.4.8 Programmer's Reference Guide
Page 119: EngageOne v4.4.8 Programmer's Reference Guide
Page 120: EngageOne v4.4.8 Programmer's Reference Guide
Page 121: EngageOne v4.4.8 Programmer's Reference Guide
Page 122: EngageOne v4.4.8 Programmer's Reference Guide
Page 123: EngageOne v4.4.8 Programmer's Reference Guide
Page 124: EngageOne v4.4.8 Programmer's Reference Guide
Page 125: EngageOne v4.4.8 Programmer's Reference Guide
Page 126: EngageOne v4.4.8 Programmer's Reference Guide
Page 127: EngageOne v4.4.8 Programmer's Reference Guide
Page 128: EngageOne v4.4.8 Programmer's Reference Guide
Page 129: EngageOne v4.4.8 Programmer's Reference Guide
Page 130: EngageOne v4.4.8 Programmer's Reference Guide
Page 131: EngageOne v4.4.8 Programmer's Reference Guide
Page 132: EngageOne v4.4.8 Programmer's Reference Guide
Page 133: EngageOne v4.4.8 Programmer's Reference Guide
Page 134: EngageOne v4.4.8 Programmer's Reference Guide
Page 135: EngageOne v4.4.8 Programmer's Reference Guide
Page 136: EngageOne v4.4.8 Programmer's Reference Guide
Page 137: EngageOne v4.4.8 Programmer's Reference Guide
Page 138: EngageOne v4.4.8 Programmer's Reference Guide
Page 139: EngageOne v4.4.8 Programmer's Reference Guide
Page 140: EngageOne v4.4.8 Programmer's Reference Guide
Page 141: EngageOne v4.4.8 Programmer's Reference Guide
Page 142: EngageOne v4.4.8 Programmer's Reference Guide
Page 143: EngageOne v4.4.8 Programmer's Reference Guide
Page 144: EngageOne v4.4.8 Programmer's Reference Guide
Page 145: EngageOne v4.4.8 Programmer's Reference Guide
Page 146: EngageOne v4.4.8 Programmer's Reference Guide
Page 147: EngageOne v4.4.8 Programmer's Reference Guide
Page 148: EngageOne v4.4.8 Programmer's Reference Guide
Page 149: EngageOne v4.4.8 Programmer's Reference Guide
Page 150: EngageOne v4.4.8 Programmer's Reference Guide
Page 151: EngageOne v4.4.8 Programmer's Reference Guide
Page 152: EngageOne v4.4.8 Programmer's Reference Guide
Page 153: EngageOne v4.4.8 Programmer's Reference Guide
Page 154: EngageOne v4.4.8 Programmer's Reference Guide
Page 155: EngageOne v4.4.8 Programmer's Reference Guide
Page 156: EngageOne v4.4.8 Programmer's Reference Guide
Page 157: EngageOne v4.4.8 Programmer's Reference Guide
Page 158: EngageOne v4.4.8 Programmer's Reference Guide
Page 159: EngageOne v4.4.8 Programmer's Reference Guide
Page 160: EngageOne v4.4.8 Programmer's Reference Guide
Page 161: EngageOne v4.4.8 Programmer's Reference Guide
Page 162: EngageOne v4.4.8 Programmer's Reference Guide
Page 163: EngageOne v4.4.8 Programmer's Reference Guide
Page 164: EngageOne v4.4.8 Programmer's Reference Guide
Page 165: EngageOne v4.4.8 Programmer's Reference Guide
Page 166: EngageOne v4.4.8 Programmer's Reference Guide
Page 167: EngageOne v4.4.8 Programmer's Reference Guide
Page 168: EngageOne v4.4.8 Programmer's Reference Guide
Page 169: EngageOne v4.4.8 Programmer's Reference Guide
Page 170: EngageOne v4.4.8 Programmer's Reference Guide
Page 171: EngageOne v4.4.8 Programmer's Reference Guide
Page 172: EngageOne v4.4.8 Programmer's Reference Guide
Page 173: EngageOne v4.4.8 Programmer's Reference Guide
Page 174: EngageOne v4.4.8 Programmer's Reference Guide
Page 175: EngageOne v4.4.8 Programmer's Reference Guide
Page 176: EngageOne v4.4.8 Programmer's Reference Guide
Page 177: EngageOne v4.4.8 Programmer's Reference Guide
Page 178: EngageOne v4.4.8 Programmer's Reference Guide
Page 179: EngageOne v4.4.8 Programmer's Reference Guide
Page 180: EngageOne v4.4.8 Programmer's Reference Guide
Page 181: EngageOne v4.4.8 Programmer's Reference Guide
Page 182: EngageOne v4.4.8 Programmer's Reference Guide
Page 183: EngageOne v4.4.8 Programmer's Reference Guide
Page 184: EngageOne v4.4.8 Programmer's Reference Guide
Page 185: EngageOne v4.4.8 Programmer's Reference Guide
Page 186: EngageOne v4.4.8 Programmer's Reference Guide
Page 187: EngageOne v4.4.8 Programmer's Reference Guide
Page 188: EngageOne v4.4.8 Programmer's Reference Guide
Page 189: EngageOne v4.4.8 Programmer's Reference Guide
Page 190: EngageOne v4.4.8 Programmer's Reference Guide
Page 191: EngageOne v4.4.8 Programmer's Reference Guide
Page 192: EngageOne v4.4.8 Programmer's Reference Guide
Page 193: EngageOne v4.4.8 Programmer's Reference Guide
Page 194: EngageOne v4.4.8 Programmer's Reference Guide
Page 195: EngageOne v4.4.8 Programmer's Reference Guide
Page 196: EngageOne v4.4.8 Programmer's Reference Guide
Page 197: EngageOne v4.4.8 Programmer's Reference Guide
Page 198: EngageOne v4.4.8 Programmer's Reference Guide
Page 199: EngageOne v4.4.8 Programmer's Reference Guide
Page 200: EngageOne v4.4.8 Programmer's Reference Guide
Page 201: EngageOne v4.4.8 Programmer's Reference Guide
Page 202: EngageOne v4.4.8 Programmer's Reference Guide
Page 203: EngageOne v4.4.8 Programmer's Reference Guide
Page 204: EngageOne v4.4.8 Programmer's Reference Guide
Page 205: EngageOne v4.4.8 Programmer's Reference Guide
Page 206: EngageOne v4.4.8 Programmer's Reference Guide
Page 207: EngageOne v4.4.8 Programmer's Reference Guide
Page 208: EngageOne v4.4.8 Programmer's Reference Guide
Page 209: EngageOne v4.4.8 Programmer's Reference Guide
Page 210: EngageOne v4.4.8 Programmer's Reference Guide
Page 211: EngageOne v4.4.8 Programmer's Reference Guide
Page 212: EngageOne v4.4.8 Programmer's Reference Guide
Page 213: EngageOne v4.4.8 Programmer's Reference Guide
Page 214: EngageOne v4.4.8 Programmer's Reference Guide
Page 215: EngageOne v4.4.8 Programmer's Reference Guide
Page 216: EngageOne v4.4.8 Programmer's Reference Guide
Page 217: EngageOne v4.4.8 Programmer's Reference Guide
Page 218: EngageOne v4.4.8 Programmer's Reference Guide
Page 219: EngageOne v4.4.8 Programmer's Reference Guide
Page 220: EngageOne v4.4.8 Programmer's Reference Guide
Page 221: EngageOne v4.4.8 Programmer's Reference Guide
Page 222: EngageOne v4.4.8 Programmer's Reference Guide
Page 223: EngageOne v4.4.8 Programmer's Reference Guide
Page 224: EngageOne v4.4.8 Programmer's Reference Guide
Page 225: EngageOne v4.4.8 Programmer's Reference Guide
Page 226: EngageOne v4.4.8 Programmer's Reference Guide
Page 227: EngageOne v4.4.8 Programmer's Reference Guide
Page 228: EngageOne v4.4.8 Programmer's Reference Guide
Page 229: EngageOne v4.4.8 Programmer's Reference Guide
Page 230: EngageOne v4.4.8 Programmer's Reference Guide
Page 231: EngageOne v4.4.8 Programmer's Reference Guide
Page 232: EngageOne v4.4.8 Programmer's Reference Guide
Page 233: EngageOne v4.4.8 Programmer's Reference Guide
Page 234: EngageOne v4.4.8 Programmer's Reference Guide
Page 235: EngageOne v4.4.8 Programmer's Reference Guide
Page 236: EngageOne v4.4.8 Programmer's Reference Guide
Page 237: EngageOne v4.4.8 Programmer's Reference Guide
Page 238: EngageOne v4.4.8 Programmer's Reference Guide
Page 239: EngageOne v4.4.8 Programmer's Reference Guide
Page 240: EngageOne v4.4.8 Programmer's Reference Guide
Page 241: EngageOne v4.4.8 Programmer's Reference Guide
Page 242: EngageOne v4.4.8 Programmer's Reference Guide
Page 243: EngageOne v4.4.8 Programmer's Reference Guide
Page 244: EngageOne v4.4.8 Programmer's Reference Guide
Page 245: EngageOne v4.4.8 Programmer's Reference Guide
Page 246: EngageOne v4.4.8 Programmer's Reference Guide
Page 247: EngageOne v4.4.8 Programmer's Reference Guide
Page 248: EngageOne v4.4.8 Programmer's Reference Guide
Page 249: EngageOne v4.4.8 Programmer's Reference Guide
Page 250: EngageOne v4.4.8 Programmer's Reference Guide
Page 251: EngageOne v4.4.8 Programmer's Reference Guide
Page 252: EngageOne v4.4.8 Programmer's Reference Guide
Page 253: EngageOne v4.4.8 Programmer's Reference Guide
Page 254: EngageOne v4.4.8 Programmer's Reference Guide
Page 255: EngageOne v4.4.8 Programmer's Reference Guide
Page 256: EngageOne v4.4.8 Programmer's Reference Guide
Page 257: EngageOne v4.4.8 Programmer's Reference Guide
Page 258: EngageOne v4.4.8 Programmer's Reference Guide
Page 259: EngageOne v4.4.8 Programmer's Reference Guide
Page 260: EngageOne v4.4.8 Programmer's Reference Guide
Page 261: EngageOne v4.4.8 Programmer's Reference Guide
Page 262: EngageOne v4.4.8 Programmer's Reference Guide
Page 263: EngageOne v4.4.8 Programmer's Reference Guide
Page 264: EngageOne v4.4.8 Programmer's Reference Guide
Page 265: EngageOne v4.4.8 Programmer's Reference Guide
Page 266: EngageOne v4.4.8 Programmer's Reference Guide
Page 267: EngageOne v4.4.8 Programmer's Reference Guide
Page 268: EngageOne v4.4.8 Programmer's Reference Guide
Page 269: EngageOne v4.4.8 Programmer's Reference Guide
Page 270: EngageOne v4.4.8 Programmer's Reference Guide
Page 271: EngageOne v4.4.8 Programmer's Reference Guide
Page 272: EngageOne v4.4.8 Programmer's Reference Guide
Page 273: EngageOne v4.4.8 Programmer's Reference Guide
Page 274: EngageOne v4.4.8 Programmer's Reference Guide
Page 275: EngageOne v4.4.8 Programmer's Reference Guide
Page 276: EngageOne v4.4.8 Programmer's Reference Guide
Page 277: EngageOne v4.4.8 Programmer's Reference Guide
Page 278: EngageOne v4.4.8 Programmer's Reference Guide
Page 279: EngageOne v4.4.8 Programmer's Reference Guide
Page 280: EngageOne v4.4.8 Programmer's Reference Guide
Page 281: EngageOne v4.4.8 Programmer's Reference Guide
Page 282: EngageOne v4.4.8 Programmer's Reference Guide
Page 283: EngageOne v4.4.8 Programmer's Reference Guide
Page 284: EngageOne v4.4.8 Programmer's Reference Guide
Page 285: EngageOne v4.4.8 Programmer's Reference Guide
Page 286: EngageOne v4.4.8 Programmer's Reference Guide
Page 287: EngageOne v4.4.8 Programmer's Reference Guide
Page 288: EngageOne v4.4.8 Programmer's Reference Guide
Page 289: EngageOne v4.4.8 Programmer's Reference Guide
Page 290: EngageOne v4.4.8 Programmer's Reference Guide
Page 291: EngageOne v4.4.8 Programmer's Reference Guide
Page 292: EngageOne v4.4.8 Programmer's Reference Guide
Page 293: EngageOne v4.4.8 Programmer's Reference Guide
Page 294: EngageOne v4.4.8 Programmer's Reference Guide
Page 295: EngageOne v4.4.8 Programmer's Reference Guide
Page 296: EngageOne v4.4.8 Programmer's Reference Guide
Page 297: EngageOne v4.4.8 Programmer's Reference Guide
Page 298: EngageOne v4.4.8 Programmer's Reference Guide
Page 299: EngageOne v4.4.8 Programmer's Reference Guide
Page 300: EngageOne v4.4.8 Programmer's Reference Guide
Page 301: EngageOne v4.4.8 Programmer's Reference Guide
Page 302: EngageOne v4.4.8 Programmer's Reference Guide
Page 303: EngageOne v4.4.8 Programmer's Reference Guide
Page 304: EngageOne v4.4.8 Programmer's Reference Guide
Page 305: EngageOne v4.4.8 Programmer's Reference Guide
Page 306: EngageOne v4.4.8 Programmer's Reference Guide
Page 307: EngageOne v4.4.8 Programmer's Reference Guide
Page 308: EngageOne v4.4.8 Programmer's Reference Guide