63
V8.0.5 Product Documentation 19 October 2012 Issue 1.0 Advanced eForm Configuration Guide

Advanced eForm Configuration Guide V8.0.5 - Verint …kanacommunity.verint.com/.../Advanced+eForm+Configuration+Guid… · Advanced eForm Configuration Guide. ... eForm is opened

Embed Size (px)

Citation preview

V8.0.5 Product Documentation

19 October 2012

Issue 1.0

Advanced eForm Configuration Guide

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 1

This edition applies to Version 8.0.5 of the Lagan ECM product suite. Make sure you are using the correct edition for the level of the product.

If you have any comments or suggestions on this document please email us at [email protected] may comment on errors or omissions with regard to accuracy, organisation, subject matter, completeness or presentation of this document. Please limit your comments to the contents of this document only. Speak to your Lagan representative if you have suggestions about the product itself.

When you send us comments, you grant Lagan a non-exclusive right to use or distribute your comments in any way it believes appropriate, without incurring any obligation to you.

Copyright © 2012 KANA Software Inc. All rights reserved.

Lagan, the Lagan logo, Lagan CRMTM, Lagan ECMTM, Lagan ECM WorkstationTM and Lagan ECM Virtual OfficeTM are either registered trademarks or trademarks of KANA Software Inc. in the United Kingdom and/or other countries.

This software may not be used, sold, licensed, transferred, copied or reproduced in whole or in part or in any manner or form except in accordance with the licence agreement provided with this software or with the prior written consent of the copyright owner.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 2

TABLE OF CONTENTS 1.0 Introduction........................................................................................................................4

2.0 The Minimal eForm............................................................................................................5 2.1 eForm XML Elements ..............................................................................................5

3.0 Inserting Fields in eForms................................................................................................9 3.1 Text Fields............................................................................................................. 12 3.2 Combo Fields ........................................................................................................ 14 3.3 Radio Fields .......................................................................................................... 19 3.4 Tick Field............................................................................................................... 20 3.5 Multi-Part Fields .................................................................................................... 20 3.6 List Fields .............................................................................................................. 21 3.7 Chooser Fields ...................................................................................................... 24 3.8 Table Fields........................................................................................................... 25 3.9 Images .................................................................................................................. 27 3.10 Date Field.............................................................................................................. 28 3.11 Time Field ............................................................................................................. 28 3.12 File Upload ............................................................................................................ 28 3.13 Currency................................................................................................................ 29

4.0 Inserting Buttons in eForms.......................................................................................... 30 4.1 Normal Submit ...................................................................................................... 31 4.2 Submit to Other Database or Table ...................................................................... 31 4.3 Submit to Web Service ......................................................................................... 33 4.4 Print....................................................................................................................... 36 4.5 URL ....................................................................................................................... 37 4.6 Email ..................................................................................................................... 38 4.7 JavaScript ............................................................................................................. 40

5.0 Creating Complex Layouts ............................................................................................ 43 5.1 Widths ................................................................................................................... 44 5.2 Appearance........................................................................................................... 45 5.3 Using Locale text................................................................................................... 48 5.4 Page Navigation.................................................................................................... 49

6.0 Adding Logic................................................................................................................... 50 6.1 Disable Rules ........................................................................................................ 50 6.2 Enable Rules......................................................................................................... 51 6.3 Branching .............................................................................................................. 53 6.4 Set......................................................................................................................... 55 6.5 Disabling Fields..................................................................................................... 56

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 3

7.0 eForm XML Schema Quick Reference.......................................................................... 58

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 4

1.0 Introduction Lagan ECM™ is a family of innovative solutions that enable an organisation to implement customer interaction management strategies across a variety of contact channels, including web, voice and email. Lagan allows an organisation to implement and upgrade such strategies rapidly due to its advanced Java-based architecture and highly developed integration methodology.

eForms offer the ability to represent complex paper forms electronically, providing customer access across a wide range of access channels (e.g. web, iDTV) and providing employee access across the enterprise.

Features include:

The ability to represent complex multi-page forms (e.g. the UK Job Seekers Allowance application form), only prompting the user to complete those parts of the form that are necessary based on their answers to previous questions, e.g. answering ‘no’ to the question “Do you have a partner?” would mean that the user would not be offered the partner-related questions

A user-friendly interface means e-forms can be completed by customers, partners or members of staff.

As well as being able to create eForms through the Lagan Configuration Studio, they can also be created by writing the XML directly. The following describes how this is done and what features are available.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 5

2.0 The Minimal eForm The minimal eForm consists of a single bundle, containing a single form, with one section, containing one page with one group.

This could be accomplished by the following XML code.

<FormsBundle> <Form> <Name>MinimalForm</Name> <Startup>Page1</Startup> <Section> <Name>Section1</Name> <Startup>Page1</Startup> <Page> <Name>Page1</Name> <Group/> </Page> </Section> </Form> </FormsBundle>

The parts in angular brackets are called Tags. Tags which begin with ‘<’ and end with ‘>’ are opening tags (e.g. <Name>), tags which begin with ‘</’ and end with ‘>’ are closing tags (e.g. </Name>).

The tags describe Elements, e.g. <Name>Page1</Name> refers to the Name Element. The information given between the opening and closing tags of an Element is called the Value of the Element.

Not all elements take a value however, these are known as Empty Elements and are specified by a single tag ending in ‘/>’ rather than an opening and closing tag, e.g. <Group/>. Some elements are always empty, but others can sometimes have a value, other times not, both can be defined using this notation.

2.1 eForm XML Elements

Now that we have explained the format of the XML, we can move onto the meaning of the eForm elements we have used.

1. FormsBundle:

This is literally a bundle of Forms. A FormsBundle can contain any number of Forms. However it is often convenient to use a separate FormsBundle for each form.

2. Form:

Defines the content of the Form

Form elements contain:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 6

• Name: The name of the form

• Style: (optional): The name of the style sheet to be used for the form

Usage: <Style>style.css</Style>

• Header: (optional): The name of the header file to be used for the form

Usage: <Header>header.jsp</Header>

• SectionHeaderWidth: (optional): This defines how many section names are displayed in one row at the top of the form

Usage: <SectionHeaderWidth>5</SectionHeaderWidth>

• Initial: (optional): One or more Branch rules that are evaluated when the Form is loaded (Branch rules are covered further on). Also Webservice and Database calls can be made here, these are covered under Button Actions later in this document. Note that the Database/Webservice calls are made before the Branch rules are evaluated.

• Branch: (multiple allowed)

• Database: (multiple allowed)

• WebService: (multiple allowed)

• Startup: This specifies which Page will be displayed when the Form is first loaded.

• VersionControlled: defaults to false. Provides version control over the contents of the eForm, when set to true and a content repository is set up. (This refers to when a published eForm is being used to collect data by the end user, rather than at the eForm construction stage)

Usage: <VersionControlled>false</VersionControlled>

• Lockable: defaults to false. Requires a content repository if set to true. If an eForm is opened in update mode and it is lockable then the eForm is locked and the user has to force an unlock. (This refers to when a published eForm is being used to collect data by the end user, rather than at the eForm construction stage)

Usage: <Lockable>false</Lockable>

3. Section: (multiple allowed)

Forms are divided into one or more Sections

Section elements must contain:

• Name: The Name of the Section

• Startup: Specifies which Page will be displayed when the Section is first loaded.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 7

• Initial: (optional) One or more Branch rules that are evaluated when the Section is accessed via the section header. (Branch rules are covered further on)

• Branch: (multiple allowed)

• Tip: The text to provide as help when the user hovers the mouse over the name of this section in the section header.

4. Page: (multiple allowed)

Defines what is contained on a specific Page in the Form.

Pages can contain:

• Name: The Name of the Page

• Next: (optional) The page to navigate to after this Page, when the user clicks the “Next >>” button. If this element is not specified then the “Next >>” button is not displayed.

• Set: (optional, multiple allowed) This is the string arithmetic rules to execute when this page is first displayed.

• Width: (multiple allowed, optional) – These widths are css attributes. These widths are applied to every group in the page which does not have widths defined at the group level.

• Group: (multiple allowed) Groups are used to format the components in a Page.

• Import: (multiple allowed, optional) Names a file to read and insert into the xml at this point. This file must contain a Group element as the root node, and follow the layout of the Group element described later.

• Import (multiple allowed, optional) – names a file to read and insert into the xml at this point. This file must contain a Page element as the root node, and follow the layout of the Page element described above.

• NoBackButton: (optional) Indicates that when this page is displayed, the Back button is never shown, regardless of whether a page has been shown previously or not. This could be used on a final confirmation page from which going back would be inappropriate.

These are the minimal required elements in an eForm. However obviously it is useless without fields to capture information and buttons to submit the data etc. We will now look at the various field types available within eForms and how they are used.

5. Groups: Groups contain:

• Name: The Name of the Group.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 8

• Width: (multiple allowed) – Set the amount of horizontal space assigned to component. Can be css attributes or percentage value. Default is <Width>50</Width><Width>50</Width>.

• Appearance: (Can be empty) Css attribute, which is applied to all fields in the group.

• Line: (optional, multiple allowed) Holds the field components. Number of components that will be visible depends on the number of widths defined for the container group.

6. Line: Lines contain:

• Name: The name of the line. • Appearance: (optional) css attribute, which is applied to all the fields in this line.

• Field: (optional, multiple allowed) the field component which is to be displayed.

Number of components that will be visible depends on the number of widths defined for the container group.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 9

3.0 Inserting Fields in eForms We have already discussed the concept of FormsBundle, Form, Section, Page and Group elements in brief.

Group elements can contain zero or more line elements.

Lines are inserted into Groups as follows:

<Group> <Name>NewGroup</Name> <Width>50</Width> <Width>50</Width> <Appearance/> <Line>

<Name>NewLine</Name> </Line>

</Group>

These lines hold the fields which are to be used in the eForm. The number of components that are visible in a single line is dictated by the number of widths which are defined at group level. I.e. in the above example, two field components can be defined and will be visible in the eForm.

Fields are inserted into Lines as follows:

<Line> <Name>Line1</Name> <Field>

<Label>An Example Field</Label> </Field>

</Line>

As we can see, Fields are defined using the <Field> tag.

Fields generally contain:

1. Name Element:

This uniquely identifies each field and is used to store the value of the field when the eForm is submitted. This can only contain letters and numbers, and must start with a letter.

Usage: <Name>fieldName</Name>

Name elements are not always required, we will discuss this more further on.

2. Label Element:

This is displayed beside the field to guide the user

Usage: <Label>A Label</Label>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 10

Label elements are not required but are often useful. Labels can also reference the value of fields by embedding the field name (enclosed in square brackets) into the Label. E.g. [fieldName]

Fields can also contain the following elements:

1. Mandatory: (optional)

This field must be filled in before the user can progress.

Usage: <Mandatory/> or <Mandatory>help text</Mandatory> (where help text is a message which is displayed if the field is not completed)

2. Encrypted: (optional)

This field will be encrypted before it is submitted.

Usage: <Encrypted/>

3. ReadOnly: (optional)

The value of this field cannot be changed.

Usage: <ReadOnly/>

4. Default: (optional)

This defines a default value for this field when the form is loaded.

Usage: <Default>value</Default>

If the value of the Default element is “client_ipaddress” then this will be replaced by the client’s ip address. If the value is “client_hostname” then this will be replaced by the hostname of the machine the client is using.

5. UpdateDefault: (optional)

This defines a default value for this field every time the form is loaded, whether the field has previously had a value in it or not. The values “client_ipaddress” and “client_hostname” have special treatment, as for the Default element.

6. CreateOnly: (optional)

This specifies that this field can only be changed when in Create mode.

Usage: <CreateOnly/>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 11

7. Tip: (optional)

This defines the help text to be displayed when the user hovers the mouse over this field. This does not work for combo or list or chooser fields.

Usage: <Tip>value</Tip>

8. Validate: (optional, multiple allowed)

This defines the validation rules to apply to the field. This contains the elements Expression and Help. The Expression element should contain a regular expression string, using the standard notation, for example ^…9$ (any three characters followed by a 9). The Help element should contain the text to display beside the field if the expression does not evaluate to true.

Usage: <Validate>

<Expression>regularexpression</Expression>

<Help>helptext</Help>

</Validate>

9. Appearance: (optional)

Specifies any css appearance attributes, which will only be applied to this particular field.

There are 13 types of Fields available to use in eForms, these are:

1. Text: Allows free text to be entered.

2. Combo: Allows a single choice to be made from a drop-down list.

3. Radio: Allows a single choice to be made from several “Radio” buttons.

4. Tick: Tick or checkbox that allows an item to be either selected or deselected.

5. Multi: Extension of Text that allows the input to be formatted into different parts.

6. List: Extension of Combo that allows data to be retrieved from a database table or view, stored procedure, or web service.

7. Chooser: Extension of Combo or List that allows multiple selections to be made.

8. Date: Allows dates to be typed into a text box or selected from date chooser.

9. Time: Allows times to be typed into a text box.

10. Image: Allows images to be incorporated into the eForm.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 12

11. Table: Extension of Combo or List that displays as a table with a radio button to select a row, with a fixed row-per-page limit.

12. File: Allows the user to upload files from their local computer or network.

13. Currency: Allows specific countries currency formatting to be used. (Investigate further)

3.1 Text Fields

Text fields can be defined as follows:

<Field> <Name>forename</Name> <Label>Forename</Label> <Text> <Length>50</Length> </Text> </Field>

This would result in:

So we specify a Text field by inserting a Text element inside the Field element.

Text elements can contain:

1. Length:

This specifies how many characters can be typed into the field. This is required for each Text element.

Usage: <Length>30</Length>

2. Allowed:

This specifies what characters can be entered into the field. Type ‘number’, ‘letter’, ‘all’ or an arbitrary string of the characters to allow. Allowed is not required, but may occur zero or more times.

Usage: <Allowed>number</Allowed>

3. Depth:

This is to increase the depth of the field to create larger text boxes. The value of this element specifies how many lines deep the text box is

Usage: <Depth>3</Depth>

4. Visible:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 13

This specifies how many characters long the text field appears on the eform. This does not affect Length, but is purely presentational

Usage: <Visible>10</Visible>

5. Veiled:

This masks the input so that the characters typed appear as asterisks (useful for password fields etc.)

Usage: <Veiled/>

6. Big:

This specifies that the field should be mapped to a column of type CLOB when the eForm is stored in the database. This allows more than 4000 characters to be entered for this particular field in the eForm.

Usage:<Big/>

Once an eForm has been published, adding or removing the <Big/> tag from a mapped field will have no impact on the data type of a column. If the data type needs to change between VARCHAR and CLOB then the best approach would be to delete the original field and add a new field, in the same position, with a similar (but not identical) name.

7. Rich:

This is a different type of text editor that allows the user to choose formatting options etc.

8. Toolbar:

Specifies which options appear on the editor’s toolbar (any combination of the following)

Font

Format

Justification

List

Colour

Inserts

General or

All

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 14

3.2 Combo Fields

Combo Fields can be defined as follows:

<Field> <Name>title</Name> <Label>Title</Label> <Combo> <Line> <Label>Mr</Label> <Value>mr</Value> </Line> <Line> <Label>Ms</Label> <Value>ms</Value> </Line> </Combo> </Field>

This would result in:

In basic form, Combo Fields contain a series of (zero or more) Line elements:

1. Line:

This defines each option available in the Combo.

Each Line element contains:

• Label – This is what is displayed in the Combo.

Usage: <Label>Label Text</Label>

The label text can contain embedded field names enclosed in square brackets. At runtime these are evaluated and set to the current values of those fields.

Example: <Label>combo[clientname1]</Label>

• Value – This is what is recorded against the field for the option selected. If the Value is not specified it will default to the Label.

Usage: <Value>value</Value>

The value can also have embedded field names.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 15

3.2.1 Dependant Combos

Dependent Combos are a pair of Combos where depending on the item selected in the first, the second is populated with a different set of options. Below is an example of a Dependent Combo:

<Field> <Name>food</Name> <Label>Food Type</Label> <Combo> <Line> <Label>Fruit</Label> <Value>fruit</Value> </Line>

<Line> <Label>Vegetable</Label> <Value>veg</Value> </Line> </Combo> </Field>

<Field> <Name>subType</Name> <Label>Sub-type</Label> <Combo>

<ParentName>food</ParentName> <Group> <ParentValue>fruit</ParentValue> <Line> <Label>Apple</Label> <Value>apple</Value> </Line> <Line> <Label>Banana</Label> <Value>banana</Value> </Line> <Line> <Label>Orange</Label> <Value>orange</Value> </Line> </Group> <Group>

<ParentValue>veg</ParentValue> <Default>carrot</Default>

<Line> <Label>Carrot</Label> <Value>carrot</Value> </Line> <Line> <Label>Leek</Label> <Value>leek</Value> </Line> <Line> <Label>Potato</Label> <Value>potato</Value> </Line> </Group> </Combo> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 16

This results in the following:

The first Combo is just a basic Combo as before. The Second Combo is constructed somewhat differently, using the following elements:

1. ParentName:

This defines the field that this Combo is dependent on

Usage: <ParentName>fieldName</ParentName>

NOTE: A parent value CANNOT contain spaces within a dependant combo.

2. Group:

A Group element is required for each option in the Parent Combo. Each Group includes the following:

3. ParentValue:

The value in the Parent Combo which will display this Group

Usage: <ParentValue>value</ParentValue>

4. Default: (optional)

This specifies the default value for this group, i.e. what will be automatically selected from this combo when the parent value is selected from the parent combo.

Usage: <Default>value</Default>

5. Line:

As before the Line elements define the Label and Value for each option in this Group

Usage: <Line>…</Line>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 17

3.2.2 Codebook Standard Combos

Codebook standard combos can be defined as follows:

<Field> <Name>title</Name> <Label>Title</Label> <Default/> <Tip/> <Combo>

<CodeBook> <Name>TitleCodebook</Name>

</CodeBook> </Combo>

</Field>

The combo is populated by the contents of the code book. The value of each code in the corresponding code book will be displayed.

1. CodeBook:

This will specify the name of the codebook which will populate the contents of the combo.

3.2.3 Codebook Dependent Combos

Similar to Dependent Combos, where depending on the items selected in the first codebook combo, the second combo is populated with a different codebook. Below is an example of a Codebook Dependent Combo:

<Field> <Name>food</Name> <Label>Food Type</Label> <Default/> <Tip/> <Combo>

<CodeBook> <Name>FoodType</Name>

</CodeBook> </Combo>

</Field>

<Field> <Name>subType</Name> <Label>Sub-type</Label> <Default/> <Tip/> <Combo>

<ParentName>food</ParentName> <Group>

<ParentValue>FoodType.Fruit</ParentValue> <CodeBook>

<Name>FruitTypes</Name>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 18

</CodeBook> </Group> <Group>

<ParentValue>FoodType.Veg</ParentValue> <CodeBook>

<Name>VegType</Name> </CodeBook>

</Group> </Combo>

</Field>

This is similar to the dependent combo. The first combo is a standard codebook combo.

1. ParentName:

This defines the field that this Combo is dependent on. This must be a codebook combo.

Usage: <ParentName>fieldName</ParentName>

NOTE: A parent value CANNOT contain spaces within a dependant combo.

2. Group:

A Group element is required for each option in the Parent Combo. Each Group includes the following:

3. ParentValue:

This is the value in the Parent Combo which will display this Group. Value is defined as Codebookname.code.

Usage: <ParentValue>codebookname.code</ParentValue>

4. CodeBook:

Specifies the name of the codebook which contents will be displayed if the parent value is selected.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 19

3.3 Radio Fields

Radio fields can be defined as follows:

<Field> <Name>question</Name>

<Label>Question...?</Label> <Radio> <Button> <Label>Yes</Label> <Value>y</Value> </Button> <Button> <Label>No</Label> <Value>n</Value> </Button> <Button> <Label>Dont Know</Label> <Value>dk</Value> </Button> </Radio> </Field>

This results in the following:

Similar to Combos, Radios consist of a series of Label-Value pairs, however here they are contained within Button, rather than Line elements:

1. Button:

Defines each Radio button

2. Label:

Defines what is displayed beside the button

3. Value:

Defines what is recorded against this field for the selected option. If the Value is not specified it will default to the Label

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 20

3.4 Tick Field

Tick fields can be defined as follows:

<Field> <Name>question</Name>

<Label>Question...?</Label> <Tick> <Value>y</Value> </Tick> </Field>

This results in the following:

For Tick fields we simply provide the Value for the field.

1. Value:

Defines what is recorded against this field if it is ticked. If this is not specified the Value will default to Y

3.5 Multi-Part Fields

Multi-part fields can be defined as follows: <Field> <Name>nino</Name> <Label>National Insurance Number</Label> <Multi> <Part> <Length>2</Length> <Allowed>letter</Allowed> </Part> <Part>

<Length>2</Length> <Allowed>number</Allowed> </Part> <Part> <Length>2</Length> <Allowed>number</Allowed> </Part> <Part> <Length>2</Length> <Allowed>number</Allowed> </Part> <Part> <Length>1</Length> <Allowed>letter</Allowed> </Part>

</Multi> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 21

This results in the following:

Multi-part fields consist of one or more Part elements. Part elements are defined just like Text fields, except that the Depth and Rich elements do not apply:

1. Part:

This defines each part of the field

2. Length:

This is the length of the part

Usage: <Length>3</Length>

3. Visible:

Specifies how many characters long the part appears

Usage: <Visible>2</Visible>

4. Allowed:

Specifies what characters can be input into the part.

Usage: <Allowed>letter</Allowed>

5. Veiled:

This masks the input so that it appears as asterisks.

Usage: <Veiled/>

3.6 List Fields

List fields can be defined as follows:

<Field> <Name>eform</Name> <Label>Eform</Label> <List> <DatabaseConnection>test</DatabaseConnection> <Select>select eformname from lgncc_eform</Select> <Column> <Index>1</Index> <Key/> <Display/>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 22

</Column> <FailDefault>0</FailDefault> <FailDefaultLabel>Error</FailDefaultLabel> </List> </Field>

This would result in something like:

The full set of possible elements is as follows:

1. DatabaseConnection:

This specifies which Database Catalog will be used for the select statement or stored procedure

Usage: <DatabaseConnection>test</DatabaseConnection>

2. FailDefaultLabel:

This defines a label to use for the default line. If the field has had a FailDefault value defined also, and the stored procedure, select statement or web service method has returned no values or an error, we create the list field onscreen with just one line, whose value will be the fail-default, and whose label will be this fail-default-label.

3. FailDefault:

See FailDefaultLabel.

4. ChooseFirst:

This indicates that the first row in the list should be chosen when it is first displayed. By default no value will be chosen, a blank will be displayed.

5. Select:

This defines the select statement used to retrieve rows from the database table.

Usage: <Select>select rows from table where condition</Select>

6. Procedure:

This defines the stored procedure used to retrieve data from the database. It contains Name and zero or more Field elements.

7. Name:

This defines the name of the stored procedure

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 23

Usage: <Name>lgncc_get_slots</Name>

8. Field:

This defines which fields to use as input parameters to the stored procedure

Usage: <Field>fieldName</Field>

9. Codebook:

Specifies the name of the codebook which will populate the contents of the list field

Usage: <CodeBook><Name>Codebook_name</Name></CodeBook>

10. WebService:

Web Service calls are no longer supported as a direct method to populate a list. Arrays which are populated by a web service call can still be used.

11. Arrays:

This allows field arrays to be defined as the source for this List field. The Arrays element contains multiple Name sub-elements, each of these is a field array name. The order of these names is important because each field array represents a column in the input data for the List field. Ideally the field arrays should be the same length so that the row data makes sense. Field arrays could be pre-populated by being specified on the url, or via Set rules, but will more commonly be filled in by a WebService call attached to a Button.

For example:

<Field> <Name>opencases</Name> <Label>Open Cases</Label> <List> <WebService> <Server>http://server:port/webservice/</Server> <Method>ns0:retrieveOpenCases</Method> <Parameters> <long_1 xsi:type="xsd:long">'101000999999'</long_1> <String_2 xsi:type="xsd:string"></String_2> </Parameters> </WebService> <Column> <Index>1</Index> <Display/> <Key/> </Column> <Column> <Index>2</Index> <Display/> </Column> </List> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 24

1. Column:

This defines the selected columns

2. Index:

This is the column index

Usage: <Index>1</Index>

3. Key:

This is the value of this column is what is recorded against this field

Usage: <Key/>

4. Display:

This column is displayed in the drop-down list

Usage: <Display/>

5. Fill:

This is used to populate another field with the value of this column

Usage: <Fill>fieldName</Fill>

6. Ascending/Descending:

This column is used to sort the data in the list field. The contents of this element should be a number indicating the importance of the column in the sort order, 0 being the most important. Multiple columns can have the Ascending/Descending elements but they should all have different “ordering” numbers, and these numbers should be sequential from 0.

Usage: <Ascending>ordering</Ascending>

3.7 Chooser Fields

Chooser fields can be defined as follows

<Field> <Name>choice</Name> <Label>Choice</Label> <Chooser> <Combo> … </Combo> </Chooser> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 25

This results in:

Chooser fields simply contain a Combo or List element as described earlier.

1. Combo:

This defines the contents if the chooser is based on a Combo

2. List:

This defines the contents if the chooser is based on a List field.

3. Depth:

This indicates the number of lines (default is 5)

Usage: <Depth>4</Depth>

3.8 Table Fields

TableChooser fields can be defined as follows

<Field> <Name>choice</Name> <Label>Choice</Label> <Table> <List> … </List> <Depth>10</Depth> <Appearance>GREY</Appearance> <AlternateAppearance>normal</AlternateAppearance> <Header> <Index>1</Index> <Description>Team</Description> <Width>30</Width> </Header> <Header> <Index>2</Index> <Description>Employee</Description> <Width>70</Width> </Header> </Table> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 26

This results in:

Table fields simply contain a Combo or List element as described earlier.

1. Combo:

This defines the contents if the table is based on a Combo (NOT CURRENTLY SUPPORTED)

2. List:

This defines the contents if the table is based on a List field.

3. Depth:

This indicates the number of lines (default is 5)

Usage: <Depth>4</Depth>

4. Appearance:

This specifies the style-sheet appearance to use for the table header and every even-numbered line in the table.

5. AlternateAppearance:

This specifies the style sheet appearance to use for every odd-numbered line in the table.

6. Header:

This contains elements which define the header title and percentage width for each column. The Index element references the column, starting from 1. The Description element defines the text for the header. The Width element specifies the percentage of the total that this header should take up.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 27

3.9 Images

Images can be included in the form as follows:

<Field> <Image> <Path>images/lagan.jpg</Path> <Alignment>right</Alignment> </Image> </Field>

This results in:

For Images we need to specify the Path to the image. We can also provide optional Alignment, Height and Width values.

1. Path:

This defines the relative path to the image (from the Eform base directory). As with Labels, fields can be embedded here by inserting the field name in square brackets.

Usage: <Path>image.jpg</Path>

2. Alignment:

This specifies the Image alignment (either “left”, “center”, or “right”)

Usage: <Alignment>center</Alignment>

3. Width:

This defines the width of the image (in pixels)

Usage: <Width>100</Width>

4. Height:

This defines the height of the image (in pixels)

Usage: <Height>100</Height>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 28

3.10 Date Field

Date fields can be defined as follows:

<Field> <Name>question</Name>

<Label>Question...?</Label> <Date/> </Field>

There are no sub-elements for a Date field, we always show a text field with a “date chooser” button beside it. Pressing the date chooser button brings up a small window to allow the user to choose a date. Alternatively the user can enter the date in the field – with or without “/” characters between the day, month and year, and the eForm will format the date appropriately.

If a Default is specified for the field, and the value of it is the string “today”, then at runtime the field will be pre-filled with today’s date.

3.11 Time Field

Time fields can be defined as follows:

<Field> <Name>question</Name>

<Label>Question...?</Label> <Time/> </Field>

There are no sub-elements for a Time field, we always show a text field. The user can enter the time in the field in various ways, from 1 to 4 numbers with or without a “:” character in the middle, and the eform will format the time appropriately.

If a Default is specified for the field, and the value of it is the string “now”, then at runtime the field will be pre-filled with the current time.

3.12 File Upload

File Upload fields can be defined as follows: <Field>

<Name>FileUpload</Name> <Label>File to be uploaded: </Label> <Tip/> <File>

<Visible>25</Visible> <FileTypeCodebook>FileType</FileTypeCodebook>

</File> </Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 29

This would result in:

1. FileTypeCodebook:

Name of the codebook which defines the file types which can be uploaded.

The maximum file size that can be uploaded is configured in eform.properties.

Example:

maxfilesize = 100000 (this will be in bytes)

Any customisation to this file should happen in the LAGAN_HOME directory

3.13 Currency

Currency fields can be defined as follows: <Field>

<Name>amount</Name> <Label>Amount?</Label> <Default>0.00</Default> <Tip/> <Currency>

<Length>30</Length> <CurrencyCode>GBP</CurrencyCode>

</Currency> </Field>

This would result in

Supported currencies include: -

1. Pound Sterling (GBP)

2. United States Dollar (USD)

3. Canadian Dollar (CAD)

4. Euro (EUR)

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 30

4.0 Inserting Buttons in eForms We have now covered the various methods for capturing data. In order to allow the data to be submitted, printed etc. we will need to add buttons to the form.

Buttons are defined similarly to Fields in that we provide a Name and Label element:

<Button> <Name>button</Name> <Label>Button</Label> </Button>

We need to define the action that the button performs, this can be a normal Submit, where the data is written to the LGNEF_EFORM table, submitting to a different database or table, submitting to a Web Service, printing the form, opening a URL, or sending an email (or any combination of these).

1. Name:

Usage: <Name>ButtonName</Name>

2. Label:

Label displayed on the button

Usage: <Label>Button Label</Label>

3. Next:

Used to specify what page should be displayed after the action is performed. By default the user is redirected to Close.jsp.

Usage: <Next>PageName</Next>

4. Branch: (optional, multiple allowed)

This is a branch rule to evaluate before going to the page defined by the Next element. See the definition of Branch rules under the Page element.

Usage: <Branch>

<Target>pagename></Target>

… expressions …

</Branch>

5. Set: (optional, multiple allowed)

This is a set rule to evaluate before going to the page defined by the Next element. See the definition of Set rules under the Page element.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 31

6. IgnoreMandatory:

This means that mandatory fields will not be checked before performing the actions for this button. This could be used for a Cancel button for example.

4.1 Normal Submit

To use the basic submit action add the following element inside the Button element

1. Submit:

Usage: <Submit/>

By default, any time a submit button is executed a new version of the data is created and the eForm is unlocked if the eForm is version controlled and lockable respectively.

If the property eformservice.versionlock.usesubmitattributes in services.properties is set to true, then the above features are controlled by Submit button attributes which are as follows:

• createversion=”true”: If the form is version controlled, create a new version of the eForm data.

• unlockeform=”true”: If the form is lockable then unlock the eForm

4.2 Submit to Other Database or Table

In order to perform this action we need to define the Database and Table or Stored Procedure that we are accessing.

Database:

1. DatabaseConnection:

This defines which Database Catalog the table or stored procedure is in. This refers to the database catalogs stored in the Frontline system – the Admin user of Frontline should create any db catalogs as necessary, which define the server, schema etc, the Description field of the db catalog is the name which should be used here.

Usage: <DatabaseConnection>db</DatabaseConnection>

Procedure:

1. Name:

This specifies the name of the stored procedure

Usage: <Name>procedure</Name>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 32

For example:

<Submit> <Database>

<DatabaseConnection>ssa</DatabaseConnection> <Procedure>

<Name>lgnef_book_slot</Name> </Procedure> <Field>timeslot</Field> <Field>colldate</Field>

</Database> </Submit>

2. SQL:

This defines the sql statement to execute. The content of this field is a dynamic string, i.e. if you put field names in here surrounded by square brackets then they will be evaluated before the sql is executed.

For example:

<Select>delete from lgncc_enquiry where id=[enquiryid]</Select>

3. Zero or more Field elements:

This indicates fields to use as input parameters or find variable data for “insert” statement. (enclose in single quotes to denote a literal, otherwise it denotes a field name).

Usage: <Field>forename</Field> or <Field>’6’</Field>

4. Result: (optional, multiple allowed)

This defines what to do with the result of the stored procedure or sql call (results are returned as a 2-dimensional array)

5. Row: (optional)

Usage: <Row>1</Row>

6. Column: (optional)

Usage: <Column>1</Column>

7. Field:

This is the name of the field to place the result in

Usage: <Field>field</Field>

Exception:

1. Page:

This specifies the page to go to if an error occurs when performing this database action.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 33

2. Field:

This specifies the field to put the error text into.

4.3 Submit to Web Service

This action allows Web Service methods to be called when the button is pressed.

WebService:

1. Server:

His is the host where the web service is running

Usage: <Server>host</Server>

2. Method:

This is the web service method being called

Usage: <Method>wsMethod</Method>

3. MethodNamespace: (optional)

This specifies the namespace for the method. This is added to the method element in the SOAP xml, in the xmlns attribute.

4. Lagan: (optional)

This specifies that an RPC Lagan web service is being called and defines the correct namespaces and encoding style.

5. Action: (optional)

This defines the SOAP action to use.

6. Namespace: (optional, multiple allowed)

This adds a namespace to the SOAP xml. The mandatory sub-elements of the Namespace element are Prefix and Uri. This causes an attribute to be added to the SOAP Envelope of the form “xmlns:<prefix>=<uri>”.

7. Body (or Parameters):

Method parameters, these must be defined as needed. Again, values are taken as field names, unless they enclosed in single quotes (in which case they are taken as literals). The Parameters elements are placed directly into the SOAP xml element, within the method element. However, if the method element is already defined within the Body element, the entire xml is used within the SOAP Body element. This is essential when SOAP elements are required which are not contained within the Method element.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 34

8. Header:

Header parameters, these are similar to the Body element except they are placed in the SOAP Header element regardless of whether a Method element is specified or not.

9. ResultTransformer:

This defines an XSL transform file that can be used to convert the incoming SOAP envelope into en eFormResult structure. The eFormResult structure will contain the result elements and can be easily processed by the eforms system easily.

The eFormResult structure has the following format:

1. eFormResult: (mandatory)

2. Result: (mandatory).

Result has one of the attributes field or array with a value matching the field or array into which the result should be placed.

Usage: <Result field=”fieldname”>

3. Value: (mandatory). Contains the result value

Usage: <Value>result value</Value>

For example: <eFormResult>

<Result field=”employeenum”> <Value>00123</Value>

</Result> <Result array=”codevalue”>

<Value>A</Value> <Value>B</Value>

</Result> </eFormResult>

The XSL file supplied must take the required information from the SOAP response envelope and insert it into the eFormResult element as a field or array as appropriate. An example showing how this could be done follows. XSL is a very flexible mechanism and it is expected that client will use this as appropriate for their needs.

<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="env" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://com.lagan/types/WebService" version="1.0"> <xsl:output method="xml" indent="yes"/>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 35

<xsl:template match="/env:Envelope/env:Body/ns0:ArrayOfstring"> <EformResult> <Result field="employeename">

<Value><xsl:value-of select="item[6]"/></Value> </Result> <Result array="employeearray">

<Value>A</Value> <Value>B</Value>

</Result> </EformResult> </xsl:template> </xsl:stylesheet>

NOTE: If a ResultTransformer is used, then this will take precedence over any Result or ResultTemplate elements defined elsewhere in the web service element.

1. BodyResult (or ResultTemplate):

This defines the expected result xml from the webservice call, and allows fields to be assigned to the result values with more precision than the Result element described below. The xml in this element should match the result xml in the Body element of the result SOAP message. Element name prefixes and element attributes are not necessary. Where an element has string content this is assumed to be the name of a field to put the result into. If the field name is suffixed with [] then this is assumed to be the name of a field array. Each element in the result, which matches the xml, will have its value added to the field array.

2. HeaderResult:

This works the same way as BodyResult except the xml is taken from the Header element of the result SOAP message.

3. Result: (optional, multiple allowed)

This defines what to do with the result of the method call (results are returned as a 2-dimensional array)

4. Row (optional)

Usage: <Row>1</Row>

5. Column (optional)

Usage: <Column>1</Column>

6. Field:

This is the name of the field to place the result in

Usage: <Field>field</Field>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 36

Exception:

1. Page:

This specifies the page to go to if an error occurs when performing this web service call.

2. Field:

This specifies the field to put the error text into.

For example:

<Button> <Name>submitWS</Name> <Label>Submit</Label> <Submit>

<WebService> <Server>http://server:port/webservice/</Server>

<Method>createInteraction</Method> <Namespace> <Prefix>conn</Prefix> <Uri>http://www.lagan.com/connectors</Uri> </Namespace>

<Body> <int_1 xsi:type="xsd:int">'7'</int_1>

<long_1 xsi:type="xsd:long"> clientid</long_1>

<boolean_1 xsi:type="xsd:boolean">‘false’ </boolean_1>

</Body> <BodyResult> <createInteractionResponse> <result>interactionid</result> </createInteractionResponse> </BodyResult>

</WebService> </Submit>

</Button>

4.4 Print

The standard Print action prints the whole eform, to include this action simply include the following element in the Button

1. Print:

Usage: <Print/>

It is also possible to specify which Pages to print, and where to insert the page breaks by providing a sequence of Page and Break elements:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 37

Print:

1. Page:

This specifies which page to print

Usage: <Page>Page1</Page>

2. Break:

This inserts a page break

Usage: <Break/>

4.5 URL

This action can be used to open a URL.

URL:

1. Address:

This is the URL to open

Usage: <Address>http://</Address>

2. New:

This indicates that the link should open in a new window

3. Height:

This defines the height of the new window

Usage: <Height>100</Height>

4. Width:

This defines the width of the new window

Usage: <Width>100</Width>

5. Render:

This provides the facility to define how each individual OpenUrl button should be rendered. By default, this will be as a link, but can be set to Button.

Usage: <Render>button</Render>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 38

For Example:

<Button> <Name>google</Name> <Label>Display Google</Label> <Url> <Address>http://www.google.com</Address> <New> <Width>700</Width> <Height>500</Height> </New> <Render/> </Url> </Button>

4.6 Email

This action is used to send an Email using the Frontline Email Service

Email:

1. From:

This is the from address that will appear in the email

Usage: <From>[email protected]</From>

2. To:

This is the address the email will be sent to (Multiple addresses can be specified by separating them with semi-colons)

Usage: <To>[email protected]</To>

3. Subject:

This is the subject field of the email

Usage: <Subject>subject</Subject>

4. Message:

This is the message body of the email

Usage: <Message>message text</Message>

Field values can be included here by inserting the field name in square brackets. Otherwise all text is taken to be literal. Note also that in the Message element the format is retained.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 39

1. Page:

This specifies the name of a page which should be converted to html and added to the message body. If Pdf is specified then details from the pages will be sent as a PDF attachment. The pages will be laid out in the same way as on the original form, with values filled in.

2. Plain:

This specifies that the message should be sent as plain text.

3. HTML:

This specifies that the message should be sent as html. If any Page elements are specified then Html will be assumed.

4. PDF:

This specifies that any Pages should be put into a PDF file and sent as an attachment to the message.

Exception:

1. Page:

This specifies the page to go to if an error occurs when sending this email.

2. Field:

This specifies the field to put the error text into.

For Example:

<Button> <Name>sendmail</Name> <Label>Send E-Mail</Label> <Email> <From>[name]@lagan.com</From> <To>[target]@lagan.com</To> <Subject>subject</Subject> <Message>[comment] [other]

</Message> <Page>UserDetails1</Page>

</Email> </Button>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 40

4.7 JavaScript

This action is used to call a JavaScript function when a button is pressed.

In order for this to work, the file(s) containing the JavaScript functions that you want to call, must be specified at the top of the eForm, within the Form element, in JavaScript elements like so:

<FormsBundle> <Form>

<Name>jstest</Name> <Startup>Page1</Startup> <Javascript>functions1.js</Javascript> <Section> … </Section> </Form> </FormsBundle>

NOTE: The example uses “js” as the suffix for the JavaScript file since this is the commonly-accepted notation, this is not essential however, it just needs the file name to be specified, relative to the Ef3 directory.

The next step is to set up the JavaScript call from a button. The available elements are:

JavaScript:

1. Function:

This is name of the JavaScript function to call. This is the only mandatory element.

Usage: < Function >function1</Function>

2. Parameters:

This is the optional list of parameters to be passed to the function. This should contain sub-elements, one for each parameter of the function, with each being either Field or Value.

3. Field:

This indicates that the named field should be passed into the function by reference, i.e. the field object in JavaScript terms is passed in as a parameter. Note that the named field must be on the current page.

Usage: <Field>fieldname</Field>

4. Value:

This indicates that the given string should be passed into the function directly. The string can contain fields to evaluate, within square brackets, as for Field Labels and Email elements. These evaluated fields can be any field in the eForm.

Usage: <Value>literalstring</Value>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 41

5. Result:

This is the optional name of the field which will contain the result of the function call. It is assumed that the function being called is going to return a string value, this value will simply be placed in the field. Note that the named field must be on the current page.

Usage: <Result>fieldname</Result>

6. Check:

This element indicates that the result of the function should be checked rather than placed in a field or ignored. It is assumed that the function returns “true” or “false”. If the function returns “false” then the execution of the button actions will cease at this point, and the eForm will stay on the current page. This could be used for validating fields in more complex ways than are available using the Mandatory and Validation elements.

It is left to the author of the JavaScript function to display an appropriate error message if the function fails. Note that using this element will override the Result element, you can’t use both for the same JavaScript function. Also, if you have multiple JavaScript elements in one button, only one of them can have the Check element, and it must be the last JavaScript element defined for the button.

Usage: <Check/>

For Example:

<Button> <Name>calljs</Name> <Label>Call Func1</Label> <Javascript>

<Function>function1</Function> <Parameters> <Field>surname</Field> <Value>smith</Value> </Parameters> <Check/>

</Javascript> <Next>Page2</Next>

</Button> func1(name, compare) { alert(‘name=’ + name.value + ‘, compare=’ + compare); if (name.value == compare) return false; name.value = ‘mr ‘ + name.value; return true; }

This sample will call the func1 function, passing in the field “surname” by reference and the string “smith” directly. The function will display the values of both the parameters in a simple dialog which must be dismissed to continue. It will then compare the two parameters and return “false” if they are the same – this will make the eForm remain on the same page. If they are different then the function will prefix the name with “mr” and return true – this will have the affect of changing the surname field on the eForm, then moving to Page2.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 42

It is possible to have multiple JavaScript calls from a single button, but as mentioned earlier, only the last can have the Check element. A button can have any of the other possible button actions, like Submit, Email etc, but these are executed after the JavaScript functions, no matter what order you define the actions in the eForm xml. Also these other button actions are only executed if all the JavaScript actions succeed, i.e. the Check function evaluated to true.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 43

5.0 Creating Complex Layouts So far we have only used the default layout, which places the Label in the left-hand half of the screen and the Field in the right-hand half.

We have briefly discussed that Groups can be used for formatting Pages, by grouping a number of Fields together. In the example below, we have placed the first two Fields in a Group and the third Field in a separate Group. In this way we can control the vertical spacing of eForm components.

It is also possible to control the horizontal layout of components by using the following Group elements:

1. Width: (multiple allowed, optional)

These allow us to set up the amount of horizontal space assigned to components. Widths are given as percentages or as CSS attributes, see next section.

Usage: <Width>30</Width> or <Width> oneoffour</Width>

2. Line: (multiple allowed, optional)

This contains the components for one horizontal “Line” when Widths have been defined.

3. Field: (multiple allowed, optional)

This defines the fields contained in this Line.

4. Button: (multiple allowed, optional)

This defines a button to appear at the bottom of this group, right adjusted. See the definition of the Button element in Chapter 4.

5. Appearance: (optional)

This indicates that a specific style from the current stylesheet should be used

Usage: <Appearance>style</Appearance>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 44

For example:

<Group> <Width>5</Width> <Width>15</Width> <Width>5</Width> <Width>30</Width> <Width>5</Width> <Width>40</Width> <Appearance>small</Appearance> <Line>

<Field> <Label>Title</Label>

</Field> <Field>

<Name>title</Name> … </Field> <Field> <Label>Forename</Label> </Field> <Field> <Name>forename</Name> … </Field> <Field> <Label>Surname</Label> </Field> <Field> <Name>surname</Name> … </Field> </Line> </Group>

This gives us:

NOTE: Separating the Labels from the Fields gives us more control over the layout.

5.1 Widths

Widths can be set at page level or group level. Widths set at page level are applied to all groups in that page which do not have widths defined.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 45

5.1.1 Page Level Widths

By default a layout.css is provided in the eform.war which has css attributes for controlling the widths of the columns on a page or a group.

Only CSS attributes can be used to set the width at Page level. This allows for a template approach to be used for controlling the layout of the eForm.

To change these widths, it is recommended that a copy of the layout.css is added to Ef3config and modify as required. You can update eform.properties to indicate which style sheet to use.

NOTE: Any style sheet imported into the eForm takes precedence over the styles applied in the layout.css

5.1.2 Group Level Widths

Widths defined at group level are only applied to this group and overwrite the widths defined at page level. These widths can be defined as CSS attributes the same as page level widths, or as percentages.

5.2 Appearance

Appearance can be defined at Page level. Simply put the Appearance element within the Page element.

For example:

<Page> <Name>Page2</Name>

<Appearance>officeuse</Appearance> <Group> …

Appearance can also be defined at Group, Line and Field level. The appearance which is defined at Group level is picked up by all the fields defined against this particular group.

Appearance defined at Line level is only applied to fields which are defined against this particular line.

Appearance defined at Field level is only applied to the particular field it is defined against.

In a particular group, appearances defined at different levels which affect the same field are all applied, if they are complementary styles. If they conflict, then a particular level will take precedence.

• Styling at Field level takes precedence over styling at Line and Group level.

• Styling at Group level takes precedence over styling at Line level.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 46

The following is an example of css styling which can be added to the different levels and provides examples of complementary and conflicting styles.

.GroupLevel{ font-style:italic; color:green; }

.LineLevel{ font-weight: bold; color:red; },

.FieldLevel{ color:blue; }

This styling is demonstrated using 3 Groups, which all contain two columns.

Group1, with four fields in total, has appearance set to GroupLevel and contains two lines, with Line 2 appearance set to LineLevel. Both the first fields, Field 1 and Field 3, of each line have appearance set to FieldLevel.

<Group> <Name>Group1</Name> <Width>50</Width> <Width>50</Width> <Appearance>GroupLevel</Appearance> <Line>

<Name>Line1</Name> <Field>

<Label>Field 1</Label> <Appearance>FieldLevel</Appearance>

</Field> <Field>

<Label>Field 2</Label> </Field>

</Line> <Line>

<Name>Line2</Name> <Appearance>LineLevel</Appearance> <Field>

<Label>Field 3</Label> <Appearance>FieldLevel</Appearance>

</Field> <Field>

<Label>Field 4</Label> </Field>

</Line> </Group>

Line 1 is an example of field level styling taking precedence over group level styling, as Field 1 will be blue rather than green, but will be in italics, therefore picking up the styling from both classes.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 47

Line 2 is an example of group level styling taking precedence over line level styling, as the red font is not applied to either field. Both bold and italic styles are implemented, as these styles compliment rather than conflict.

Group 2, with 2 fields in total contained in one line, does not have an appearance specified at group level. Appearance is specified at the line level and for the first field, Field 5.

<Group> <Name>Group2</Name> <Width>50</Width> <Width>50</Width> <Appearance/> <Line>

<Name>Line3</Name> <Appearance>LineLevel</Appearance> <Field>

<Label>Field 5</Label> <Appearance>FieldLevel</Appearance>

</Field> <Field>

<Label>Field 6</Label> </Field>

</Line> </Group>

This is an example of field level styling taking precedence over line level styling, as Field 5 is blue rather than red. Both fields have the Bold styling applied at line level.

Group 3, with 2 fields in total contained in one line, is an example of appearance only being applied at field level, Field 7.

<Group>

<Name>Group3</Name> <Width>50</Width> <Width>50</Width> <Appearance/> <Line>

<Name>Line4</Name> <Field>

<Label>Field 7</Label> <Appearance>FieldLevel</Appearance>

</Field> <Field>

<Label>Field 8</Label> </Field>

</Line> </Group>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 48

Only the blue style is applied to this one field. None of the styling applied to the other groups or lines is picked up.

Finally, we can change the appearance of the section header. We can define the style of the currently selected section and the unselected ones, using SectionHeaderAppearanceCurrent and SectionHeaderAppearanceDormant in the Form element.

For example:

<Form> <Name>TimeTest</Name>

<Startup>Page1</Startup> <Style>Style2.css</Style>

<SectionHeaderAppearanceCurrent>bluebackground</SectionHeaderAppearanceCurrent> <SectionHeaderAppearanceDormant>GREY</SectionHeaderAppearanceDormant> <Section>

NOTE: The style names used in Appearance elements for Pages or Sections must be defined in the style sheet without the “TD.” Prefix – ideally they should have no prefix at all so that it can be used for pages, groups or section headers.

5.3 Using Locale text.

Locale files can be used to populate labels where spelling or wording is locale specific. The locale files which are deployed within the Ef3 war are used, while any locale file which is placed in LAGAN_HOME is given precedence over these files. Locale files based on variant, county and language can be used.

Locale text can be used in the label component and all label parts of all eForm components, including buttons as well as tool tips for all components and in section headers.

NOTE: It should not be used to populate combo or chooser field label/value pairs.

To use locale text, when providing the label, populate as locale.code where code is the piece of text in the locale file which is referring to a value.

Example:

If the locale.properties file contained eForm.forename=Forename: then in an eForm, this would be used in a label as:

<Field> <Label>locale.eForm.forename</Label>

</Field>

And would look like this in the eForm:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 49

5.4 Page Navigation

It may be desired to load an eForm but view a different page than the page which was intended to be the initial page, but still perform the initial tasks which are associated with this initial page. A mechanism, otherButton=goto, can be used that changes the page and executes the initial actions defined against the original page.

Use the decorated url:

General.action?form=myform&page=newpage&otherButton=goto

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 50

6.0 Adding Logic There are a number of constructs available within eForms to perform decision-making, namely, Disable and Enable Rules, and Branching.

6.1 Disable Rules

Disable rules allow a number of fields and/or buttons to be made inactive depending on the value of a certain field.

For example:

<Disable> <Name>question</Name> <Value>n</Value> <Fields> <Name>forename</Name> </Fields> </Disable>

Results in the following

Disable rules are defined as follows:

1. Disable: (multiple allowed)

This can have the attribute “reenable” which defaults to “true”. If specified as “false” then the field(s) being disabled are not re-enabled when the source of the rule is false. In the example above, clicking Yes after clicking No would enable the Forename field, unless “reenable” had been set to “false”.

2. Name:

This is the name of the source field, whose value the decision is based upon

Usage: <Name>question</Name>

3. Value: (multiple allowed)

This is the value of the field which will prompt the rule

Usage: <Value>n</Value>

4. Fields:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 51

This indicates which fields/buttons to disable

5. Name: (multiple allowed)

This is the name of the field/button to disable

Usage: <Name>field/button</Name>

6. Logic:

This element can be used instead of the Name and Value elements, and allows for more complex control over the input to the rule. The structure of the Logic element is exactly the same as for Branch rules, see below. The example below will disable “forename” if either “question1” or “question2” are set to “n”.

<Disable> <Logic> <Or> <Field> <Name>question1</Name> <Value>n</Value> </Field> <Field> <Name>question2</Name> <Value>n</Value> </Field> </Or> </Logic> <Fields> <Name>forename</Name> </Fields> </Disable>

NOTE: We can have several Disable rules based on the same field/button, but they cannot contain the same values. The field/button to disable must exist on the current page, although the source field does not have to.

6.2 Enable Rules

Enable rules allow us to change the value of a field, depending on the value of another field.

For example: <Enable> <Name>question</Name> <Value>y</Value> <Field> <Name>forename</Name> <Value>Test</Value> </Field> </Enable>

Results in the following:

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 52

Enable rules are defined as follows:

1. Enable:

This can have the attribute “reenable” which defaults to “true”, meaning that the field(s) populated by this rule are also enabled. If this is set to “false” then the field(s) populated by this rule are not enabled, they just have the specified text put into them. By setting “reenable” to “false” you can use an Enable rule to populate a greyed-out field.

2. Name:

This is the name of the source field, whose value the decision is based upon

Usage: <Name>question</Name>

3. Value:

This is the value of the field which will prompt the rule

Usage: <Value>n</Value>

4. Field: (multiple allowed)

This indicates which fields are affected

5. Name:

This is the name of the field to disable

Usage: <Name>field</Name>

6. Value:

This is the value that the field is assigned

Usage: <Value>value</Value>

7. Logic:

This element can be used instead of the Name and Value elements, and allows for more complex control over the input to the rule. The structure of the Logic element is exactly the same as for Disable rules, see above.

NOTE: We can have several Enable rules based on the same field, but they cannot contain the same values. The field to enable must exist on the current page, although the source field does not have to.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 53

6.3 Branching

Branching allows us to direct the user to a certain page based on the value(s) of one or more fields.

For example:

<Branch> <Target>LostPage</Target> <Or> <Field> <Name>nature</Name> <Value>Lost</Value> </Field> </Or> </Branch>

This results in:

If we then click the Next button we are diverted to the “Lost” Page. If there is no rule defined for the value chosen then we would simply proceed to the page defined as “Next”.

It is possible to have multiple Branches defined on a Page, they are processed in the order they are specified.

Branches are defined by specifying the page to branch to and the type of rule(s) to use (Note that the rules can be used recursively, that is, that a rule can consist of a number of other rules etc.):

Branch:

1. Target:

This indicates which page will be displayed if the condition is satisfied

2. Or:

This type of rule is satisfied if one of the component conditions is true

3. Field (multiple allowed)

4. Name:

The name of the field in question

Usage: <Name>field</Name>

5. Value:

This is the value of the field which will trigger the branch

Usage: <Value>value</Value>

6. Or (multiple allowed)

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 54

7. Not (multiple allowed)

8. And (multiple allowed)

9. One (multiple allowed)

10. Not:

This is the rule that is satisfied if the component conditions are false (defined in the same way as Or)

11. And:

This is the rule that is satisfied if all of the component conditions are true (defined in the same way as Or)

12. One:

This is the rule that is satisfied if only one of the component conditions is true (defined in the same way as Or)

Hence rules can be defined hierarchically.

For example:

<Branch> <Target>page</Target> <Or> <And> <Field> <Name>field1</Name> <Value>1</Value> </Field> <Field> <Name>field2</Name> <Value>1</Value> </Field> </And> <And> <Field> <Name>field1</Name> <Value>2</Value> </Field> <Field> <Name>field2</Name> <Value>2</Value> </Field> </And> </Or> <Branch>

The condition is satisfied if field1=1 AND field2=1 OR field1=2 AND field2=2.

It is possible to branch using the field “viewmode” – this is set by Frontline when an eForm is launched and is either C, U or R. We can also use the field “caseid” for branching and other operations.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 55

6.4 Set

Set rules allow us to perform string arithmetic when a page is being loaded.

For example:

<Set> <Name>fullname</Name> <Concatenate> <Field>forename</Field> <Value>’ ’</Value> <Field>surname</Field> </Concatenate> </Set>

This will result in the field “fullname” being set to the value of the field “forename” plus a space plus the value of the field “surname”.

It is possible to have multiple Set rules defined on a Page, they are processed in the order they are specified. The rules are executed as the page is loaded, before displaying any fields or labels.

Set rules are defined by specifying the field to populate and the fields and/or values to use in the string arithmetic. (Note that the rules can be used recursively, that is, that a rule can consist of a number of other rules).

Set:

1. Name:

This indicates which field to populate.

2. Substring:

This rule is used to extract certain characters from another string. The first element of this element must be another node, i.e. Substring, Concatenate, Field or Value. The other (optional) elements are:

3. Start:

This can be the index of the character to start at, a numerical index which counts from 0. This can also be a string to search for in the base string – the start position is set to the first character after the search string if found, or the start of the base string if not found. If this element is not specified then we copy from the start of the base string.

4. End:

This can be the index of the character to end at, a numerical index which counts from 0. This can also be a string to search for in the base string – the end position is set to the last character before the search string if found, or the end of the base string if not found.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 56

5. Length:

This is the number of characters to copy from the start position. This will be overridden by the End element. If neither are specified then the entire base string is copied, from the Start position.

6. Concatenate:

This element is used to add multiple strings together. It must contain at least one element, one of Substring, Concatenate, Field or Value. It can contain as many of these elements as required. The example above shows “forename” being added to a space and then to “surname”.

7. Field:

This element is used to indicate a field name.

8. Value:

This element is used to indicate a hard-coded value.

Another example with recursive definition:

<Set> <Name>address</Name> <Concatenate> <Field>addressline1</Field> <Value>’,’</Value> <Substring> <Field>addressline2</Field> <Start>:</Start> <Length>20</Length> </Substring> <Field>addressline3</Field> </Concatenate> </Set>

This rule will add the value of the “addressline1” field to a comma, and then to the value of the “addressline2” field from the first colon for 20 characters, and then to the value of the “addressline3” field.

6.5 Disabling Fields

Individual components of an eForm can be specified as disabled, either at form level, page level or by specifying the individual field name. When disabled, the components would behave as they would when the eForm is being viewed as read-only.

This can be achieved through the use of web service calls, by adding the name to the relevant variable

• disableFormVariable

• disablePageVariable - Should be treated as an array

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 57

• disableFieldVariable - Should be treated as an array. When activated, the behaviour of the eForm when viewmode = R will be mimicked.

To clarify, disableFormVariable field should be assigned the form name that you wish to disable. As stated the eForm will behave as if the viewmode was set to Read only. This behaviour is that all fields will be disabled, but only buttons that have a submit action (submit a web service is not a submit action) and do not have a next page will be disabled.

disablePageVariable field should be assigned a comma separated list of pages to disable (e.g. disablePageVariable=PageOne,PageTwo) Disabling a page is the same as making the page read only and therefore the rules mentioned for the form apply, all fields disabled except for the buttons which have a submit action and no next page.

disableFieldVariable field should be a comma separated list of fields to be disabled. (E.g. disableFieldVariable=Field1,Field2). Setting this field will disable the field or button. The only exception is for eForm buttons which do not have any actions, as then the button is not disabled. If the button has any action at all, then it will be disabled.

Disabling fields using this technique will take precedence over disable and enable rules. In a XSLT file, the results of a web service can be called and the values added to variables disableFormVariable, disablePageVariable and disableFieldVariable. <xsl:template match="/env:Envelope/env:Body/..."> <EformResult>

<Result field="disableFormVariable"> <xsl:for-each select="...">

<xsl:if test="Key='disableFormVariable'"> <Value>

<xsl:value-of select="./Value"/> </Value>

</xsl:if> </xsl:for-each>

</Result> <Result array="disablePageVariable">

<xsl:for-each select="..."> <xsl:if test="Key='disablePageVariable'">

<Value> <xsl:value-of select="./Value"/>

</Value> </xsl:if>

</xsl:for-each> </Result> <Result array="disableFieldVariable">

<xsl:for-each select="..."> <xsl:if test="Key='disableFieldVariable_1'">

<Value> <xsl:value-of select="./Value"/>

</Value> </xsl:if>

</xsl:for-each> </Result>

</EformResult> </xsl:template>

These variables are then read and used to control the disabling of the specified components.

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 58

7.0 eForm XML Schema Quick Reference

Element Optional Multiple Type Usage FormsBundle N N N/A <FormsBundle>…</FormsBundle

> - Form N Y N/A <Form>…</Form> - - Name N N Text <Name>FormName</Name> - - Startup N N Text <Startup>PageName</Startup> - - Style Y N Text <Style>style.css</Style> - - Header Y N Text <Header>header.jsp</Header> - - SectionHeaderWidth Y N Integer <SectionHeaderWidth>5</Sect

ionHeaderWidth> - - Initial Y N N/A <Initial>…</Initial> - - - Branch Y Y N/A <Branch>…</Branch> - - - Database Y Y N/A <Database>…</Database> - - - WebService Y Y N/A <WebService>…</WebService> - - SectionHeaderAppearanceCurrent

Y N Text <SectionHeaderAppearanceCurrent>…</SectionHeaderAppearanceCurrent>

- - SectionHeaderAppearanceDormant

Y N Text <SectionHeaderAppearanceDormant>…</SectionHeaderAppearanceDormant>

- - Javascript Y Y Text <Javascript>filename</Javascript>

- - Section N Y N/A <Section>…</Section> - - - Name N N Text <Name>SectionName</Name> - - - Startup N N Text <Startup>PageName</Startup> - - - Initial Y N N/A <Initial>…</Initial> - - - - Branch N Y N/A <Branch>…</Branch> - - - Import Y Y Text <Import>filename</Import> - - - Tip Y N Text <Tip>text</Tip> - - - Page N Y N/A <Page>…</Page> - - - - Name N N Text <Name>PageName</Name> - - - - Next Y N Text <Next>PageName</Next> - - - - Import Y Y Text <Import>filename</Import> - - - - Appearance Y N Text <Appearance>app</Appearance

> - - - - NoBackButton Y N N/A <NoBackButton/> - - - - Group N Y N/A <Group>…</Group> or

<Group/> - - - - - Width Y Y Integer <Width>50</Width> - - - - - Appearance Y N Text <Appearance>style</Appearan

ce> - - - - - Field Y Y N/A <Field>…</Field> or

<Field/> - - - - - - Name Y N Text <Name>FieldName</Name> - - - - - - Label Y N Text <Label>A Label</Label> - - - - - - Mandatory Y N N/A <Mandatory>help

text</Mandatory> or <Mandatory/>

- - - - - - Encrypted Y N N/A <Encrypted/>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 59

Element Optional Multiple Type Usage - - - - - - ReadOnly Y N N/A <ReadOnly/> - - - - - - Default Y N N/A <Default>value</Default> - - - - - - UpdateDefault Y N N/A <UpdateDefault>value</Updat

eDefault> - - - - - - CreateOnly Y N N/A <CreateOnly> - - - - - - Tip Y N Text <Tip>text</Tip> - - - - - - Validate Y Y N/A <Validate>…</Validate> - - - - - - - Expression N N Text <Expression>exp</Expression

> - - - - - - - Help N N Text <Help>help</Help> - - - - - - Text Y N N/A <Text>…</Text> - - - - - - - Length N N Integer <Length>30</Length> - - - - - - - Visible Y N Integer <Visible>10</Visible> - - - - - - - Depth Y N Integer <Depth>5</Depth> - - - - - - - Allowed Y Y Text <Allowed>number</Allowed> - - - - - - - Veiled Y N N/A <Veiled/> - - - - - - - Rich Y N N/A <Rich>…</Rich> or <Rich/> - - - - - - - - Toolbar Y N N/A <Toolbar>…</Toolbar> - - - - - - - - - Font Y N N/A <Font/> - - - - - - - - - Format Y N N/A <Format/> - - - - - - - - - Justification Y N N/A <Justification/> - - - - - - - - - List Y N N/A < List/> - - - - - - - - - Colour Y N N/A <Colour/> - - - - - - - - - Inserts Y N N/A <Inserts/> - - - - - - - - - General Y N N/A <General/> - - - - - - - - - All Y N N/A <All/> - - - - - - Combo Y N N/A <Combo>…</Combo> - - - - - - - ParentName Y N Text <ParentName>field</ParentNa

me> - - - - - - - Group Y Y N/A <Group>…</Group> - - - - - - - - ParentValue N N N/A <ParentValue>value</ParentV

alue> - - - - - - - - Default Y N Text <Default>value</Default> - - - - - - - - Line N Y N/A <Line>…</Line> - - - - - - - - - Label N N Text <Label>A Label</Label> - - - - - - - - - Value Y N Text <Value>value</Value> - - - - - - Line Y Y N/A <Line>…</Line> - - - - - - - Label N N Text <Label>A Label</Label> - - - - - - - Value Y N Text <Value>value</Value> - - - - - - Radio Y N N/A <Radio>…</Radio> - - - - - - - Button N Y N/A <Button>…</Button> - - - - - - - - Label N N Text <Label>A Label</Label> - - - - - - - - Value Y N Text <Value>value</Value> - - - - - - Tick Y N N/A <Tick>…</Tick> - - - - - - - Value N N Text <Value>value</Value> - - - - - - Date Y N N/A <Date/> - - - - - - Time Y N N/A <Time/> - - - - - - Multi Y N N/A <Multi>…</Multi> - - - - - - - Part N Y N/A <Part>…</Part> - - - - - - - - Length N N Integer <Length>10</Length> - - - - - - - - Visible Y N Integer <Visible>5</Visible> - - - - - - - - Allowed Y Y Text <Allowed>letter</Allowed>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 60

Element Optional Multiple Type Usage - - - - - - - - Veiled Y N N/A <Veiled/> - - - - - - List Y N N/A <List>…</List> - - - - - - - DatabaseConnection

Y N Text <DatabaseConnection>db</DatabaseConnection>

- - - - - - - Select Y N Text <Select>select…</Select> - - - - - - - Procedure Y N N/A <Procedure>…</Procedure> - - - - - - - - Name N N Text <Name>proc</Name> - - - - - - - - Field Y Y Text <Field>field</Field> - - - - - - - WebService Y N N/A <WebService>…</WebService> - - - - - - - Column Y Y N/A <Column>…</Column> - - - - - - - - Index N N Integer <Index>1</Index> - - - - - - - - Key Y N N/A <Key/> - - - - - - - - Fill Y N Text <Fill>field</Fill> - - - - - - - - Display Y N N/A <Display/> - - - - - - - - Ascending Y N Integer <Ascending>order</Ascending

> - - - - - - - - Descending Y N Integer <Descending>ord</Descending

> - - - - - - - FailDefault Y N Text <FailDefault>text</FailDefa

ult> - - - - - - - FailDefaultLabel Y N Text <FailDefaultLabel>text</Fai

lDefaultLabel> - - - - - - - ChooseFirst Y N N/A <ChooseFirst/> - - - - - - Chooser Y N N/A <Chooser>…</Chooser> - - - - - - - Depth Y N Integer <Depth>4</Depth> - - - - - - - Combo Y N N/A <Combo>…</Combo> - - - - - - - List Y N N/A <List>…</List> - - - - - - Table Y N N/A <Table>…</Table> - - - - - - - Depth Y N Integer <Depth>4</Depth> - - - - - - - Appearance Y N Text <Appearance>text</Appearanc

e> - - - - - - - AlternateAppearance

Y N Text <AlternateAppearance>text</AlternateAppearance>

- - - - - - - Combo Y N N/A <Combo>…</Combo> - - - - - - - List Y N N/A <List>…</List> - - - - - - - Header Y Y N/A <Header>…</Header> - - - - - - - - Index N N Integer <Index>col</Index> - - - - - - - - Description N N Text <Description>text</Descript

ion> - - - - - - - - Width N N Integer <Width>width</Width> - - - - - - Image Y N N/A <Image>…<Image> - - - - - - - Path N N Text <Path>image.jps</Path> - - - - - - - Height Y N Integer <Height>100</Height> - - - - - - - Width Y N Integer <Width>100</Width> - - - - - - - Alignment Y N Text <Alignment>left</Alignment> - - - - - Line Y Y N/A <Line>…</Line> - - - - - - Field Y Y N/A <Field>…</Field> - - - - - Button Y Y N/A <Button>…</Button> - - - - - - Name N N Text <Name>ButtonName</Name> - - - - - - Label N N Text <Label>A Label</Label> - - - - - - Next Y N Text <Next>Page</Next> - - - - - - Branch Y Y N/A <Branch>…</Branch> - - - - - - Tip Y N Text <Tip>text</Tip>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 61

Element Optional Multiple Type Usage - - - - - - IgnoreMandatory Y N N/A <IgnoreMandatory/> - - - - - - Submit Y Y N/A <Submit>…</Submit> or

<Submit/> - - - - - - - Database Y N N/A <Database>…</Database> - - - - - - - - DatabaseConnection

N N Text <DatabaseConnection>db</DatabaseConnection>

- - - - - - - - Procedure Y N N/A <Procedure>…</Procedure> - - - - - - - - - Name N N Text <Name>proc</Name> - - - - - - - - Field Y Y Text <Field>FieldName</Field> - - - - - - - - Select Y N Text <Select>…</Select> - - - - - - - - Result Y Y N/A <Result>…</Result> - - - - - - - - - Row N N Integer <Row>1</Row> - - - - - - - - - Column N N Integer <Column>1</Column - - - - - - - - - Field N N Text <Field>FieldName</Field> - - - - - - - WebService Y N N/A <WebService>…</WebService> - - - - - - - - Server N N Text <Server>host</Server> - - - - - - - - Method N N Text <Method>method</Method> - - - - - - - - MethodNamespace

Y N Text <MethodNamespace>…</MethodNamespace>

- - - - - - - - Action Y N Text <Action>…</Action> - - - - - - - - Frontline Y N N/A <Frontline/> - - - - - - - - ResultSeparator

Y N Text <ResultSeparator>sep</ResultSeparator>

- - - - - - - - Namespace Y N N/A <Namespace>…</Namespace> - - - - - - - - - Prefix Y N Text <Prefix>…</Prefix> - - - - - - - - - Uri Y N Text <Uri>…</Uri> - - - - - - - - Header Y N Text <Header>…</Header> - - - - - - - - Parameters Y N Text <Parameters>…</Parameters> - - - - - - - - Body Y N Text <Body>…</Body> - - - - - - - - Result Y Y N/A <Result>…</Result> - - - - - - - - - Row Y N Integer <Row>1</Row> - - - - - - - - - Column Y N Integer <Column>1</Column - - - - - - - - - Field N N Text <Field>FieldName</Field> - - - - - - - - HeaderResult Y N N/A <HeaderResult>…</HeaderResu

lt> - - - - - - - - ResultTemplate

Y N N/A <ResultTemplate>…</ResultTemplate>

- - - - - - - - BodyResult Y N N/A <BodyResult>…</BodyResult> - - - - - - - Exception Y N N/A <Exception>…</Exception> - - - - - - - - Page N N Text <Page>pagename</Page> - - - - - - - - Field N N Text <Field>fieldname</Field> - - - - - - - Print Y N N/A <Print>…</Print> or

<Print/> - - - - - - - - Break Y Y N/A <Break/> - - - - - - - - Page Y Y Text <Page>PageName</Page> - - - - - - - Url Y N N/A <Url>…</Url> - - - - - - - - Address N N Text <Address>http://</Address> - - - - - - - - New Y N N/A <New>…</New> or <New/> - - - - - - - - - Height Y N Integer <Height>150</Height> - - - - - - - - - Width Y N Integer <Width>150</Width> - - - - - - - Email Y N N/A <Email>…</Email> - - - - - - - - From N N Text <From>[email protected]</From>

Advanced eForms Configuration Guide V8.0.5

© Copyright KANA Software Inc. 2012 Page 62

Element Optional Multiple Type Usage - - - - - - - - To N N Text <To>[email protected]</To> - - - - - - - - Subject Y N Text <Subject>subject</Subject> - - - - - - - - Message Y N Text <Message>message</Message> - - - - - - - - Plain Y N N/A <Plain/> - - - - - - - - Html Y N N/A <Html/> - - - - - - - - Pdf Y N N/A <Pdf/> - - - - - - - - Page Y Y Text <Page>pagename</Page> - - - - - - - - Exception Y N N/A <Exception>…</Exception> - - - - - - - - - Page N N Text <Page>pagename</Page> - - - - - - - - - Field N N Text <Field>fieldname</Field> - - - - - - - Javascript Y N N/A <Javascript>…</Javascript> - - - - - - - - Function N N Text <Function>name</Function> - - - - - - - - Parameters Y N N/A <Parameters>…</Parameters> - - - - - - - - - Field Y Y Text <Field>fieldname</Field> - - - - - - - - - Value Y Y Text <Value>literal</Value> - - - - - - - - Result Y N Text <Result>fieldname</Result> - - - - - - - - Check Y N N/A <Check/> - - - - - - Branch Y Y N/A <Branch>…</Branch> - - - - - - - Target N N Text <Target>PageName</Target> - - - - - - - Field Y N N/A <Field>…</Field> - - - - - - - - Name N N Text <Name>FieldName</Name> - - - - - - - - Value N N Text <Value>value</Value> - - - - - - - Or Y N N/A <Or>…</Or> - - - - - - - Not Y N N/A <Not>…</Not> - - - - - - - And Y N N/A <And>…</And> - - - - - - - One Y N N/A <One>…</One> - - - - - - Disable Y Y N/A <Disable>…</Disable> - - - - - - - Name Y N Text <Name>FieldName</Name> - - - - - - - Value Y Y Text <Value>value</Value> - - - - - - - Fields N N N/A <Fields>…</Fields> - - - - - - - - Name N Y Text <Name>FieldName</Name> - - - - - - - Logic Y N N/A <Logic>…</Logic> - - - - - - Enable Y Y N/A <Enable>…</Enable> - - - - - - - Name N N Text <Name>FieldName</Name> - - - - - - - Value N Y Text <Value>value</Value> - - - - - - - Field N Y N/A <Field>…</Field> - - - - - - - - Name N N Text <Name>FieldName</Name> - - - - - - - - Value N N Text <Value>value</Value> - - - - - - - Logic Y N N/A <Logic>…</Logic> - - - - - - Set Y Y N/A <Set>…</Set> - - - - - - - Name N N Text <Name>FieldName</Name> - - - - - - - Substring Y Y N/A <Substring>…</Substring> - - - - - - - - node N N N/A … - - - - - - - - - Start Y N Text <Start>index/char</Start> - - - - - - - - - End Y N Text <End>index/char</End> - - - - - - - - - Length Y N Text <Length>value</Length> - - - - - - - Concatenate Y Y N/A <Concatenate>…</

Concatenate > - - - - - - - - node N Y N/A … - - - - - - - Field Y Y N/A <Field>FieldName</Field> - - - - - - - Value Y Y N/A <Value>value</Value>