engageone v4.4.8 programmer's reference guide
TRANSCRIPT
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