You are on page 1of 5

eDocBuilder SOAP API Introduction

The purpose of this document is to provide a brief introduction to the eDocBuilder SOAP API.

eDocBuilder Architecture
eDocBuilder is compromised of three distinct applications. The first application is the Creator. The
creator is used by administrative personnel to create and manage templates, imposition schemes, and
orders. The creator is a web based application (Microsoft IIS 6/7 on Windows 2003/8).

The second application is the Engine. The engine is also a web application whose primary function is
to handle the SOAP API that client applications will interact with.

The third application is the Client. The client can either be an application developed by a third party
that interacts with the Engine via SOAP, or the client can be the iFrame interface which is reference by
a third party application.

The next page illustrates the system's architecture.


eDocBuilder System Architecture

Web
RIA Browser
Web
Browser Web
Browser Custom Custom
ERP/MIS eCommerce
Web
Browser

Internet

Custom Custom eDocBuilder


ERP/MIS eCommerce iFrame

SOAP

eDocBuilder eDocBuilder
Creator Engine

File Microsoft
Microsoft IIS 6/7 SQL
System
2005/8

Windows 2003/8
32 or 64 Bit
Common SOAP Methods
The engine provides a variety of SOAP methods to support the development of your client application.
The following methods are the most commonly used:

startDocSession: The process of personalizing a template is called a session. A session is unique to a


template and to the instance of a user personalizing it. For example, a single business card template
may have 25 users simultaneously using it to create their own personal business cards. This would
result in 25 unique sessions. This method initiates a new session.

getCurrentSession; This method returns everything the client application needs to know in order to
build a web form. See the example in the next section.

updateCurrentSession; As the user personalizes the template, the client information must tell
eDocBuilder what information the user has entered. This method sends these updates back to the
system.

getPreviews: As the user enters information, it is often helpful to show a graphic preview of the
document on the screen. This method returns a JPG preview of the template in session that can be
displayed on the web form.

approveDocSession: This closes the session and prevents it from being further updated.

There are additional methods to support the interaction of variable data files (such as Excel) and order
management.

SOAP Example
This example shows the getCurrentSession method in action.

The getCurrentSession returns an xml structure tell the client application everything it needs to know to
properly build the webform. Here's an example of this xml returned by this method:
<?xml version="1.0" encoding="utf-16"?>
<docClientInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/
XMLSchema">
<inputForm>
<formElement>
<elementPrompt>Name</elementPrompt>
<elementName>name</elementName>
<elementType>TextBox</elementType>
<elementValue>Sample Q Sample</elementValue>
<elementSortOrder>1</elementSortOrder>
<elementToolTip />
<elementMaxLength>25</elementMaxLength>
<elementIsOptional>false</elementIsOptional>
<elementPageNumber>1</elementPageNumber>
<elementRect>179.921 57.3499 260.533 69.9759</elementRect>
<elementAllowPositionOverride>false</elementAllowPositionOverride>
<elementReformatText>none</elementReformatText>
<elementReformatTextEveryTime>false</elementReformatTextEveryTime>
<elementEntryBlockName>Name and Title</elementEntryBlockName>
<elementEntryBlockInstructions>Please enter your name and title
here.</elementEntryBlockInstructions>
<elementEntryBlockNewLine>false</elementEntryBlockNewLine>
</formElement>
<formElement>
<elementPrompt>Titles</elementPrompt>
<elementName>titles</elementName>
<elementType>TextBox</elementType>
<elementValue />
<elementSortOrder>2</elementSortOrder>
<elementToolTip />
<elementMaxLength>25</elementMaxLength>
<elementIsOptional>false</elementIsOptional>
<elementPageNumber>1</elementPageNumber>
<elementRect>179.921 24.8136 261.018 55.1646</elementRect>
<elementAllowPositionOverride>false</elementAllowPositionOverride>
<elementReformatText>none</elementReformatText>
<elementReformatTextEveryTime>false</elementReformatTextEveryTime>
<elementEntryBlockName>Name and Title</elementEntryBlockName>
<elementEntryBlockInstructions>Please enter your name and title
here.</elementEntryBlockInstructions>
<elementEntryBlockNewLine>false</elementEntryBlockNewLine>
</formElement>
<formElement>
<elementPrompt>Address 1</elementPrompt>
<elementName>phAddressOne</elementName>
<elementType>TextBox</elementType>
<elementValue>123 Main Street</elementValue>
<elementSortOrder>6</elementSortOrder>
<elementToolTip />
<elementMaxLength>50</elementMaxLength>
<elementIsOptional>false</elementIsOptional>
<elementPageNumber>1</elementPageNumber>
<elementRect>180.305 12.8385 201.614 19.1218</elementRect>
<elementAllowPositionOverride>false</elementAllowPositionOverride>
<elementReformatText>none</elementReformatText>
<elementReformatTextEveryTime>false</elementReformatTextEveryTime>
<elementEntryBlockName>Address</elementEntryBlockName>
<elementEntryBlockInstructions>Enter Your Address Information
Here:</elementEntryBlockInstructions>
<elementEntryBlockNewLine>true</elementEntryBlockNewLine>
</formElement>
<formElement>
<elementPrompt>Address 2</elementPrompt>
<elementName>phAddressTwo</elementName>
<elementType>TextBox</elementType>
<elementValue />
<elementSortOrder>7</elementSortOrder>
<elementToolTip />
<elementMaxLength>50</elementMaxLength>
<elementIsOptional>false</elementIsOptional>
<elementPageNumber>1</elementPageNumber>
<elementRect>203.898 13.2029 221.672 18.2812</elementRect>
<elementAllowPositionOverride>false</elementAllowPositionOverride>
<elementReformatText>none</elementReformatText>
<elementReformatTextEveryTime>false</elementReformatTextEveryTime>
<elementEntryBlockName>Address</elementEntryBlockName>
<elementEntryBlockInstructions>Enter Your Address Information
Here:</elementEntryBlockInstructions>
<elementEntryBlockNewLine>false</elementEntryBlockNewLine>
</formElement>
<formElement>
<elementPrompt>City</elementPrompt>
<elementName>phCity</elementName>
<elementType>TextBox</elementType>
<elementValue>Anytown</elementValue>
<elementSortOrder>8</elementSortOrder>
<elementToolTip />
<elementMaxLength>50</elementMaxLength>
<elementIsOptional>false</elementIsOptional>
<elementPageNumber>1</elementPageNumber>
<elementRect>225.481 13.2029 235.892 18.2812</elementRect>
<elementAllowPositionOverride>false</elementAllowPositionOverride>
<elementReformatText>none</elementReformatText>
<elementReformatTextEveryTime>false</elementReformatTextEveryTime>
<elementEntryBlockName>Address</elementEntryBlockName>
<elementEntryBlockInstructions>Enter Your Address Information
Here:</elementEntryBlockInstructions>
<elementEntryBlockNewLine>true</elementEntryBlockNewLine>
</formElement>

<--SNIP-->

Here is a sample web form built by interpreting the xml. By studying the xml and the web form below,
you will begin to understand their relationship.

You might also like