Webmethods Designer Service Development Help 7 2
Webmethods Designer Service Development Help 7 2
Webmethods Designer Service Development Help 7 2
webMethods Designer
Service Development Help
Version 7.2
December 2008
Copyright
& Docu‐
ment ID
This document applies to webMethods Designer Version 7.2 and to all subsequent releases.
Specifications contained herein are subject to change and these changes will be reported in subsequent release notes or new editions.
Copyright © 2008 Software AG, Darmstadt, Germany and/or Software AG USA, Inc., Reston, VA, United States of America, and/or their
suppliers. All rights reserved.
The name Software AG, webMethods, and all Software AG product names are either trademarks or registered trademarks of Software AG
and/or Software AG USA, Inc. Other company and product names mentioned herein may be trademarks of their respective owners.
webMethods Service Development allows developers to manage packages, connect to
Integration Server, create services and other namespace elements, and to publish and
retract metadata. You can learn more by looking in Contents for Software AG Products >
webMethods Service Development Help.
Document Conventions
Convention Description
Bold Identifies elements on a user interface.
Narrow font Identifies storage locations for services on webMethods Integration
Server, using the convention folder.subfolder:service.
UPPERCASE Identifies keyboard keys. Keys you must press simultaneously are
joined with a plus sign (+).
Italic Identifies variables for which you must supply values specific to your
own situation or environment. Identifies new terms the first time they
occur in the text.
Monospace Identifies text you must type or messages displayed by the system.
font
{ } Indicates a set of choices from which you must choose one. Type only
the information inside the curly braces. Do not type the { } symbols.
| Separates two mutually exclusive choices in a syntax line. Type one of
these choices. Do not type the | symbol.
[ ] Indicates one or more options. Type only the information inside the
square brackets. Do not type the [ ] symbols.
... Indicates that you can type multiple options of the same type. Type
only the information. Do not type the ellipsis (...).
Additional Information
You can find additional information about webMethods products at the locations
described below.
webMethods Designer provides a set of Service Development features that you can use to
build, edit, and debug services and integration logic. It provides a collection of editors
and views in which you can develop the logic and supporting objects (referred to as
elements) for an integration solution. It also provides tools for running and debugging the
solutions you create.
Designer lets you rapidly construct integration logic with an easy‐to‐use implementation
language called the webMethods flow language. Flow language provides a set of simple but
powerful constructs that you use to specify a sequence of actions (steps) that the
Integration Server will execute at run time. Designer also has extensive data
transformation and mapping capabilities that allow you to quickly drag‐and‐drop data
fields from one step to the next.
Besides providing tools for constructing flow services, Designer provides additional
editors and tools for creating various elements that support the execution of an
integration solution. For example, you use Designer to create the document types and
schemas used for data validation and to define triggers that launch the execution of
services when certain messages are received. Service Development is covered in the
following online help topics.
“Before You Use Designer for Service Development” on page 18
“Working with webMethods Integration Server” on page 19
“Working with Elements” on page 33
“Assigning and Managing Permissions for Elements” on page 59
“Locking and Unlocking Elements” on page 69
Checking Elements In and Out of a VCS
“Managing Packages” on page 111
“Building Services” on page 129
“Building Flow Services” on page 155
“Mapping Data in Flow Services” on page 193
“Running and Debugging Flow Services” on page 229
“Working With Document Types” on page 263
“Working with Variables” on page 301
You will also find the following reference topics:
“Integration Server Preferences” on page 313
“Service Development Preferences” on page 315
“Properties” on page 321
“webMethods Flow Steps” on page 371
“Supported Data Types” on page 385
“Icons” on page 389
“Toolbars” on page 395
“Supported and Unsupported Elements in webMethods Designer” on page 405
Related Topics
“Working with Server Definitions” on page 19
“Connecting to an Integration Server” on page 28
webMethods Integration Server provides an environment for the orderly, efficient, and
secure, execution of services. It decodes client requests, identifies the requested services,
invokes the services, passes data to them in the expected format, encodes the output
produced by the services, and returns output to the clients.
Using Designer, you build and edit services, document types, and other elements directly
on an Integration Server. You connect Designer to Integration Server through server
definitions. A server definition specifies the location and characteristics of the Integration
Server to which Designer is connecting.
Related Topics
“Working with Server Definitions” on page 19
“Connecting to an Integration Server” on page 28
“Disconnecting from an Integration Server” on page 29
“Refreshing an Integration Server” on page 30
“Notification of Server Shutdown” on page 30
“Opening Integration Server Administrator” on page 30
“Viewing Integration Server Properties” on page 31
Related Topics
“Creating Server Definitions” on page 20
“Fetching Server Definitions from an Integration Server” on page 21
“Importing Server Definitions” on page 23
“Exporting Server Definitions” on page 23
“Removing Server Definitions” on page 24
“Editing Server Definitions” on page 24
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers.
3 Click Add.
4 In the Add Integration Server dialog box, enter the following information:
Field Description
Name Name to use for this Integration Server.
Host Host name or IP address of the Integration Server to connect to.
Port Port number to connect to on the Integration Server.
User Indicates the name of a valid user account on the Integration
Server. The user name must be a member of a group belonging to
the Developers ACL.
Use the exact combination of upper‐ and lower‐case characters
with which it was originally defined. Integration Server user
names are case sensitive.
Password The password for user. Use the exact combination of upper‐ and
lower‐case characters with which it was originally defined.
Integration Server passwords are case sensitive.
Connect Indicates whether Designer should connect to the Integration
immediately Server immediately after you add or edit a definition and click
OK on the Add Integration Server or Edit Integration Server
dialog box.
Connect at Indicates whether Designer should automatically connect to the
startup Integration Server at Designer startup.
Secure Indicates whether the session will be opened through HTTP or
Connection HTTPS. If you want to open an HTTPS session on the selected
server using the Secure Socket Layer (SSL), select this check box.
If you want to open an HTTP session on the server, clear this
check box.
5 To test this connection, click Verify Server.
6 Click OK.
By default, Designer will automatically connect to the Integration Server. If Designer
does not automatically connect to the server, click Connect on the Preferences page.
Related Topics
“Setting a Default Server Definition” on page 26
“Fetching Server Definitions from an Integration Server” on page 21
“Importing Server Definitions” on page 23
“Exporting Server Definitions” on page 23
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Click Fetch.
4 In the Fetch dialog box, enter the following information about the Integration Server
from which you want to fetch a server definition.
Field Description
Field Description
User The name of a valid user account on this server.
Use the exact combination of upper‐ and lower‐case characters
with which it was originally defined. Integration Server user
names are case sensitive.
Note: The server is installed with a default user account called
“Developer” that has developer privileges.
Password The password for the user account in User. Use the exact
combination of upper‐ and lower‐case characters with which it
was originally defined. Integration Server passwords are case
sensitive.
5 Click Connect.
Designer populates the bottom half of the Fetch Integration Server Definitions dialog with
a list of server definitions available on the other Integration Server.
6 Select one or more definitions to fetch, and click OK.
Designer refreshes the Integration Servers page, this time including the fetched
definitions. Designer automatically tries to connect to the fetched servers.
7 For any server definitions that have the status No user or password, select the
definition, click Edit, supply the userid and password, and click OK.
Related Topics
“Creating Server Definitions” on page 20
“Importing Server Definitions” on page 23
“Exporting Server Definitions” on page 23
“Setting a Default Server Definition” on page 26
“Working with Server Definitions” on page 19
“Opening Integration Server Administrator” on page 30
“Viewing Integration Server Properties” on page 31
1 In Designer:
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Click Import.
4 In the Open window, navigate to the .properties file you want to import.
5 Click OK to import the data from the selected .properties file into your Preferences >
Software AG > Integration Servers screen.
Related Topics
“Exporting Server Definitions” on page 23
“Creating Server Definitions” on page 20
1 In Designer:
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers.
3 Click Export.
4 In the Save As dialog box, navigate to the folder where you want to save the server
definition you are exporting, and type a file name. You do not have to type the
.properties extension.
You can also click an existing .properties file if you want to overwrite it with the new
definitions.
5 Click OK to save the .properties file.
Related Topics
“Creating Server Definitions” on page 20
“Importing Server Definitions” on page 23
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Select the server definition you want to remove.
4 Click Remove.
Designer prompts you to confirm that you want to remove this server definition. If
this server definition is the default, Designer will remind you that you need to define
a new default after this server definition has been deleted.
5 If the server definition you deleted was the default, you need to define a new default.
For instructions on defining a default server definition, see “Setting a Default Server
Definition” on page 26.
Related Topics
“Creating Server Definitions” on page 20
“Editing Server Definitions” on page 24
Other times, you might decide to change the name of the server definition, or to change
whether Designer automatically connects to this Integration Server at Designer startup or
when the definition is updated.
If a server definition displays a status of No userid or password, you can edit the definition
to add the user and password.
For a detailed description of the fields you can change, see “Integration Server
Preferences” on page 313.
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Select the server definition that you want to edit.
4 Click Edit.
5 Enter new values in the fields you want to change.
6 In the Edit Integration Server dialog, click OK.
7 In the Preferences page, click OK.
Related Topics
“Creating Server Definitions” on page 20
“Removing Server Definitions” on page 24
Related Topics
“Setting a Default Server Definition” on page 26
“Placing a Server Definition Offline” on page 26
“Bringing a Server Definition Online” on page 27
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Check the Default box for the server definition you want to be the default.
Designer prompts you to verify that you want to replace the existing default with the
new one.
4 Click OK.
Related Topics
“Creating Server Definitions” on page 20
“Placing a Server Definition Offline” on page 26
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Select the Offline check box to the right of server definition you want to take offline.
4 Click OK.
Related Topics
“Creating Server Definitions” on page 20
“Bringing a Server Definition Online” on page 27
1 In Designer
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers
3 Clear the Offline check box to the right of server definition you want to bring online.
4 If Designer issues a message stating that you must enter a username and password,
click the Edit button and provide the username and password.
5 Click OK.
Related Topics
“Setting a Default Server Definition” on page 26
“Placing a Server Definition Offline” on page 26
1 In Package Navigator view, select the server to which you want to connect.
2 Right click, and select Connect to server.
Related Topics
“Working with Server Definitions” on page 19
“Editing Server Definitions” on page 24
“Connecting to an Integration Server via Preferences” on page 28
1 In Designer:
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers.
3 On the Integration Servers page, select the server to which you want to connect and
click Connect.
Related Topics
“Disconnecting from an Integration Server via Preferences” on page 29
“Placing a Server Definition Offline” on page 26
1 In Package Navigator view, select the Integration Server from which you want to
disconnect.
2 Right click, and select Disconnect from server.
Related Topics
“Removing Server Definitions” on page 24
1 In Designer:
Window > Preferences
2 In the preferences navigation tree, select Software AG > Integration Servers.
3 On the Integration Servers page, select the server from which you want to disconnect
and click Disconnect.
Related Topics
“Connecting to an Integration Server via Preferences” on page 28
“Placing a Server Definition Offline” on page 26
1 In Package Navigator view, select the Integration Server you want to refresh.
2 Right click, and select Refresh.
In Package Navigator view, right‐click the Integration Server for which you want to
open Integration Server Administrator and select Open Administration View.
In Package Navigator view, right‐click the Integration Server for which you want to
open Integration Server Administrator and select Properties.
Designer displays the Properties screen, from which you can display information
about the following areas of the Integration Server: Event Manager, Server ACLs,
Server Information, and Server Locked Elements. Refer to “Integration Server
Properties” on page 321 for a description of these properties.
An element is an item that exists in the Package Navigator view in webMethods
Designer. Elements include folders, services, specifications, IS document types, triggers,
and IS schemas. In the Package Navigator view, servers and packages are not considered
to be elements.
Related Topics
“About Element Names” on page 34
“Creating New Elements” on page 34
“Guidelines for Working with Elements” on page 36
“Opening Elements” on page 37
“Closing Elements” on page 37
“Editing and Saving Elements” on page 38
“Configuring Dependency Checking for Elements” on page 38
“Moving and Copying Elements” on page 40
“Renaming Elements” on page 44
“Deleting Elements” on page 46
“Finding Dependents and References” on page 47
“Inspecting Pipeline References” on page 50
“Finding Elements” on page 52
“Filtering Displayed Elements” on page 54
“Hiding or Displaying Automatically Generated Flow Services” on page 55
“Creating Working Sets” on page 55
“Caching Elements” on page 55
“Exporting Elements” on page 57
“Viewing an Elements Corresponding Server Files” on page 58
Related Topics
“Package Names and Element Names” on page 34
1 In the Package Navigator view of Designer, click File > New and then click the element
you want to create.
You can also click Other to view all the elements that you can create in Designer. The
New dialog box appears. Click the type of element you want to create and then click
Next.
2 On the New Element dialog box, follow the prompts given by Designer for the type of
element you are creating.
3 When you have supplied all of the information that Designer needs to create the
element, click Finish. Designer refreshes the Package Navigator view and displays the
new element.
Related Topics
“Guidelines for Naming Elements” on page 35
? ' - # = ) ( . / \ ;
& @ ^ ! | } { ` > <
% * : $ ] [ " + , ~
Characters outside of the basic ASCII character set, such as multi‐byte characters.
If you specify a name that disregards these restrictions, Designer displays an error
message. When this happens, use a different name or try adding a letter or number to the
name to make it valid.
Opening Elements
When opening elements from the Package Navigator view, keep the following points in
mind:
Click an element to select it. To open an element in the editor, double‐click it.
Double‐click a folder to expand or collapse the contents of the folder in the Package
Navigator view. To view the properties of a folder, click File > Properties.
If you have enabled the Version Control System (VCS) Integration feature of
Designer, Designer might exhibit slowdowns, error messages (such as “Server
version has changed” and “Session already in use”), and may stop responding
completely when you expand a large element (such as a folder) in the Package
Navigator view. This condition occurs because Designer checks the lock status of
each element within the expanded element in the Integration Server.
In Package Navigator view, double‐click the element you want to open.
Closing Elements
Keep the following points in mind when closing elements:
You do not need to close elements when you exit Designer. Designer remembers
which elements were open and displays them when you restart Designer.
If you close an element without saving changes made to the element, Designer will
prompt you to save changes.
Do one of the following:
To... Do this...
Do one of the following:
To... Do this...
Related Topics
“Locking Elements” on page 70
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Editing Document Types” on page 285
Related Topics
“Setting Dependency Checking Safe Guards” on page 39
Select... To...
4 Click OK.
Related Topics
“Guidelines for Moving and Copying All Types of Elements” on page 40
“Guidelines for Moving and Copying Services” on page 40
“Guidelines for Copying Elements Between Servers” on page 41
“Notes for Moving and Copying Adapter Notifications and Related Elements” on
page 42
“ACLs and Creating, Viewing, and Deleting Elements” on page 65
When you move or copy a Java service, Designer automatically recompiles the service
and any Java services that remain in the source folder. When you delete a Java
service, Designer recompiles any Java services that remain in the source folder.
You cannot move or copy a Java service to a folder that contains other Java services
that are system locked or locked by another user. If you attempt to do so, Designer
cancels the entire move/copy action.
When you move or copy a Java service, Designer will also move or copy the service’s
Shared fields to the destination folder, unless the destination folder already contains
Shared fields with different values. In this case, you must first manually copy the
Shared fields into the destination folder and then move or copy the Java service.
When you move or copy a publishable document type to a destination on the same
server, the moved or copied document type remains publishable. When you copy a
publishable document type to a different server, Designer converts the publishable
document type to an IS document type on the destination server. For more
information about making IS document types publishable and synchronizing them
with Broker document types, see “Working with Publishable Document Types” on
page 272.
Tip! To retain the status of a publishable document type and its link to a Broker
document type, use the package replication functionality in the Integration Server
Administrator instead of using Designer to move or copy the package containing
the publishable document type. For information about package replication, see
the webMethods Integration Server Administrator’s Guide.
1 In the Package Navigator view, select the elements that you want to move or copy.
2 Do one of the following:
To... Click...
Tip! You can cancel a cut action by pressing ESC.
3 If the elements you want to move or copy contain unsaved changes, Designer alerts
you that you must first save the changes. Click OK to close the alert dialog box. Then,
save the changes and repeat the move/copy action.
4 If you do not have Read access to the elements you are moving or copying, or Write
access to the location you are moving/copying them to, Designer displays a message
that identifies the elements that are preventing the action from completing
successfully. Click OK and then either obtain the proper access from your system
administrator or select only those elements to which you have proper access.
5 Select the location where you want to move or copy the elements.
6 Click Edit > Paste.
7 If the destination already contains an element with the same name as an element you
are moving or copying, do one of the following:
If you are moving the element, Designer alerts you that the element cannot be
moved. Click OK to close the alert dialog box. Rename the element if desired and
repeat the move action.
If you are copying the element, Designer copies the element and appends a
number to the name of the copied element. (For example, if you are copying a
flow service named checkOrder2 to a destination that already contains a flow
service with that name, Designer copies the service and names the copy
checkOrder2_1.) Rename the element if desired.
For more information about renaming elements, see “Renaming Elements” on
page 44.
8 If one of the elements you moved or copied is a Java service, perform the following as
necessary:
If you are moving or copying the Java service to a folder with other Java services
that are system locked or locked by another user, Designer alerts you that the
element cannot be moved/copied. Click OK and then ask the owner of the lock to
remove the lock.
If the Java service you are moving or copying contains a shared source that
conflicts with the shared source of an existing Java service in the destination
folder, Designer alerts you that there is a conflict. Click OK to use the destination
folder’s shared source, or click Cancel to cancel the entire move action.
Note: If no shared Java source conflict exists, Designer moves the Java service
and its shared source to the destination folder. If a conflict does exist, you
must re‐specify the Shared tab information in the copy of the service using
Developer. (You can copy the information from the Shared tab for the original
service to the Shared tab for the copy of the service.)
To... Click...
For more information about dependency safeguards, see “Configuring Dependency
Checking for Elements” on page 38.
Tip! You can also move elements by clicking and dragging them to their new location.
Renaming Elements
When renaming elements, keep the following points in mind:
You can rename any elements for which you have Write access to the element and its
parent folder. When renaming a folder, you must also have Write access to all
elements within the folder. For more information about Write access and ACLs
assigned to elements, see “Assigning and Managing Permissions for Elements” on
page 59.
When you rename a folder, Designer automatically renames all of the elements in that
folder (that is, changes their fully qualified names).
If the folder you want to rename contains elements with unsaved changes, you must
save the changes before you can rename the folder.
Element names must be unique across all packages. If you try to rename an element
using a name that already exists, Designer reverts the element back to its original
name.
When you rename an adapter notification, Designer also renames its associated
publishable document type and prompts you to indicate whether to rename the
associated Broker document type.
You cannot rename a listener or connection element.
When you rename a publishable document type, Designer checks for dependents
such as triggers and services that use the publishable document type. (Designer
performs dependency checking only if you select the Prompt before updating dependents
Important! You must manually update any services that invoke the pub.publish services
and specify this publishable document type in the documentTypeName or the
receivedDocumentTypeName parameter.
To rename an element
1 In Package Navigator view, select the element that you want to rename. Right‐click
the element and click Rename.
2 If the element you want to rename contains unsaved changes, Designer alerts you
that the element cannot be renamed until you save the changes. Click OK to close the
alert dialog box. Then, save the changes and repeat the rename action.
3 Edit the name and press ENTER.
If an element already exists with that name at the same level, Designer displays a
message alerting you that the rename action could not be completed. Click OK to close
the message dialog box and repeat the rename action.
4 If you selected the Prompt before updating dependents when renaming/moving check box in
the Package Navigator preferences and any dependent elements on the current server
contain unsaved changes, Designer alerts you to save the elements that will be
affected by the rename action. Select the elements and click OK to save the changes or
Cancel to cancel the entire rename action.
5 If the Move and Rename Dependencies dialog box appears, do one of the following:
To... Click...
For more information about dependency safeguards, see “Configuring Dependency
Checking for Elements” on page 38.
Deleting Elements
When deleting elements, keep the following points in mind:
You can delete any elements to which you have Write access for the element and its
parent folder. When deleting a folder, you must also have Write access to all elements
within the folder. For more information about Write access and ACLs assigned to
elements, see “Assigning and Managing Permissions for Elements” on page 59.
When you delete a folder or the last Java service in a folder, Designer also deletes the
shared source for that folder. If you cancel the delete action, no elements (including
non‐Java service elements) are deleted.
You can only delete an adapter notification’s publishable document type if you delete
its associated adapter notification.
When you delete an adapter notification, Designer also deletes its associated
publishable document type and prompts you to indicate whether to delete the
associated Broker document type.
You cannot delete a listener or connection element.
If you delete a publishable document type, Designer prompts you to keep or delete
the associated Broker document type.
If you delete a publishable document type and Broker document type associated
with a trigger or a flow service, you might break any integration solution that
uses the document type.
If you delete the Broker document type, you might negatively impact any
publishable document types created from that Broker document type on other
Integration Servers. When the developers synchronize document types with
Broker and they choose to Pull from Broker, publishable document types associated
with the deleted Broker document type will be removed from their Integration
Servers.
To delete elements
1 In Package Navigator view, select the elements that you want to delete.
2 Select Edit > Delete.
3 If you have selected the Confirm before deleting check box in the Preferences dialog box
for Package Navigator view, do the following:
a If any elements on Integration Server have unsaved changes, Designer prompts
you to save changes. Select the elements whose changes you want to save and
click OK.
b If other elements are dependents of the elements you are deleting, Designer
indicates which items will be affected by the deletion.
c If you are deleting a publishable document type, Designer prompts you to keep or
delete the associated Broker document type. Do one of the following:
To... Do this...
d Click Continue to delete the selected elements.
4 If you did not select the Confirm before deleting preference and one of the elements that
you want to delete is a publishable document type, Designer prompts you to keep or
delete the associated Broker document type. Select the Delete associated Broker
document type on the Broker check box, if you want to delete the publishable document
type and the Broker document type. Click OK.
Related Topics
“ACLs and Creating, Viewing, and Deleting Elements” on page 65
Related Topics
“What Is a Dependent?” on page 48
“Finding Dependents” on page 48
“What Is a Reference?” on page 49
“Finding References” on page 50
“Inspecting Pipeline References” on page 50
What Is a Dependent?
To determine how a selected element is used by other elements on the server, you can
find dependents of the selected element. For example, suppose that the flow service
ServiceA invokes the flow service receivePO. The ServiceA service uses the receivePO service.
This makes ServiceA a dependent of the flow service receivePO. If you delete receivePO,
ServiceA will not run.
Dependent elements
This service is a
dependent of...
...each of these
services.
During debugging, you might want to locate all of the dependents of a given service or IS
document type. Or, before editing an IS document type, you might want to know what
elements, such as specifications, Broker/local triggers, or flow services, will be affected by
changes to the IS document type.
Note: Designer does not consider a Java service that invokes another services to be a
dependent. For example, if Java service A invokes service B, and you instruct
Designer to find dependents of service B, service A will not appear as a dependent.
Finding Dependents
1 In Package Navigator view, right‐click the element for which you want to find
references and select Find Dependents.
2 If any elements on Integration Server have unsaved changes, Designer prompts you
to save changes. Select the elements whose changes you want to save, and then click
OK.
Designer displays the dependents of the selected element on the Search view.
3 After Designer finds the dependents of the selected element, you may do either of the
following:
To jump to an element in Package Navigator view, right‐click that element in the
results, and select Show In > Package Navigator.
To see all dependents of a found dependent, click next to the item in the results
list.
What Is a Reference?
To determine how a selected element uses other elements on the server, you can find
references of the selected element. For example, the flow service ServiceA invokes the
services receivePO, pub.schema:validate, processPO and submitPO. Additionally, in its input
signature, ServiceA declares a document reference to the IS document type PODocument.
The services receivePO, validate, ProcessPO, and SubmitPO, and the IS document type
PODocument, are used by ServiceA. The elements receivePO, validate, ProcessPO, SubmitPO, and
PODocument are references of ServiceA.
Elements as references
Each of these
services is a
reference of
ServiceA.
During debugging of a complex flow service, you might want to locate all of the services,
IS document types, and specifications used by the flow service. Use the Find References
command to locate the references.
You can also use the Find References command to locate any unresolved references. An
unresolved reference is an element that does not exist in the Package Navigator view yet is
still referred to in the service, IS document type, or specification that you selected. The
element might have been renamed, moved, or deleted. To prevent unresolved references,
specify the dependency checking safeguards. For more information about these
safeguards, see “Configuring Dependency Checking for Elements” on page 38.
Note: Designer does not consider document references to schema types to be
references, nor does it consider services invoked within a Java service to be references
of the Java service. For example, if Java service A invokes service B, and you instruct
Designer to find references for service A, service B will not appear as a reference of A.
Finding References
1 In Package Navigator view, right‐click the element for which you want to find
references and select Find References.
2 If any elements on Integration Server have unsaved changes, Designer prompts you
to save changes. Select the elements whose changes you want to save, and then click
OK.
Designer displays the references of the selected element on the Search view.
3 After Designer finds the references of the selected element, you may do either of the
following:
To jump to an element in Package Navigator view, right‐click that element in the
results, and select Show In > Package Navigator.
To see all references of a found reference, click next to the item in the results list.
Pipeline reference
This variable is a
reference to the
PODocument in the
Package Navigator view.
Pipeline references are also those locations where you modify the value of a variable in a
document reference or document reference list by assigning a value using or
dropping a value using on the Pipeline view toolbar. The following illustration of
Pipeline view identifies these types of pipeline references.
When you edit an IS document type, the changes affect any document reference and
document reference list variables defined by that IS document type. The changes might
make pipeline references invalid. For example, suppose the input signature for ServiceA
contains a document reference variable POInfo based on the IS document type
PODocument. The IS document type PODocument contains the field PONum. In the pipeline
for ServiceA, you link the PONum field to another pipeline variable. If you edit the
PODocument IS document type by deleting the PONum field, the pipeline reference (the
link) for the field in the ServiceA pipeline is broken (that is, it is invalid) because the
pipeline contains a link to a field that does not exist.
When you edit an IS document type, you might want to check all dependent pipeline
modifiers for validity. You can use the Inspect Pipeline References command to locate any
broken or invalid pipeline references. You can use this command to:
Search for invalid pipeline references in a selected flow service.
Search for invalid pipeline references involving document reference and document
reference list variables defined by a selected IS document type.
In Package Navigator view, right‐click the flow service or IS document type for which
you want to find invalid pipeline references and select Inspect Pipeline References.
The Search view displays all invalid pipeline references for the selected service or IS
document type.
If you inspected a flow service, the search results contain all of the document
references that have invalid pipeline references in that flow.
If you inspected an IS document type, the search results contain all of the flow
services that have invalid pipeline references to that IS document type.
After Designer finds the pipeline references of the selected element, you can jump to
an element in Package Navigator view. Right‐click that element in the results, and
select Show In > Package Navigator.
Finding Elements
You can find elements and fields within Designer using the following methods:
Searching for elements in the Package Navigator view. When creating and editing elements,
you might lose track of where you saved certain elements. For example, suppose that
you do not remember the folder to which you saved a service called Test.
Related Topics
“Searching for Elements in Package Navigator” on page 53
“Locating Invoked Services” on page 53
“Locating Referenced Document Types” on page 54
“Linking Open Editors” on page 54
1 In Designer
Search > Integration Server.
2 In Search string, type any portion of the fully qualified name of the element that you
want to find.
3 In the Search on this server only list, select the Integration Server to which you want to
limit the scope of the search.
4 If you want to limit the scope of the search to a specific package, select the package in
the Search in this package only list.
5 Click Search.
1 In the flow editor, select the INVOKE step containing the service you want to locate.
2 Select Navigate > Show In > Package Navigator. Designer locates and selects the service in
Package Navigator view.
1 In the editor, select the document reference that you want to locate.
2 Select Navigate > Show In > Package Navigator. Designer locates and selects the IS
document type in the Package Navigator view.
1 On the Package Navigator toolbar, click .
2 In Package Navigator view, select the element whose editor you want to view. If the
element is open, Designer brings its editor to the front.
1 On the Package Navigator toolbar, click .
2 In the Choose Elements to Display dialog box, do one of the following:
To display all elements, select Show all elements.
To display only specific types of elements, select Show selected elements only. Then,
select the elements that you want to display in Package Navigator view.
3 If you want to filter services that Integration Server generates automatically, select the
Hide generated flow services check box.
4 Click OK.
Caching Elements
You can improve performance in Designer by caching Package Navigator elements that
are frequently used. When elements are located in the Designer cache, Designer does not
need to request them from the Integration Server and can therefore display them more
quickly.
Keep in mind that increasing the cache reduces the amount of available memory. If you
experience memory problems, consider decreasing the number of cached elements.
To cache elements
Related Topics
“Clearing the Designer Cache” on page 56
Note: Clearing cached elements from Designer is different from clearing the contents
of the pipeline from Integration Server cache. If you want to clear the contents of the
pipeline from a server’s cache, see “Configuring a Service’s Use of Cache” on
page 138.
Exporting Elements
Folders or elements in a package, can be exported to your hard drive so that they can be
shared with partners or developers. A folder or element is exported to a ZIP file and
saved on your hard drive. The ZIP file can then be unzipped into the ns directory of a
package on the server. Locking information is not exported.
1 In Package Navigator view, select the folder or element that you want to export to
your hard drive.
2 Right‐click the element or folder and click Export from Server.
3 In the Save As dialog box, select the location on your hard drive where you want the
exported element or folder to reside. Click Save.
This exports the element or folder to a ZIP file and saves it on your hard drive. The
ZIP file can then be published on another server.
Related Topics
“Exporting a Package” on page 119
“Importing and Overwriting References During Synchronization” on page 293
1 In the Package Navigator view, select the elements for which you want to view the
server file names.
2 Right‐click the element and click Lock Properties.
The Lock Contents Results dialog box shows the server files associated with the
element. These server files are system locked (that is, they are not writable on the
server).
You can limit access to elements to groups of users by using access control lists (ACLs).
Typically created by a system administrator, ACLs allow you to restrict access on a
broader level. For example, if you have a production package and a development
package on the Integration Server, you can restrict access to the production package to
users in an Administrators ACL, and restrict access to the development package to users
in a Developers ACL.
Within ACLs, you can also assign different levels of access, depending on the access that
you want different groups of users to have. For example, you may want a “Tester” ACL
to only have Read and Execute access to elements. Or, you may want a “Contractor” ACL
that denies List access to sensitive packages on the Integration Server, so that contractors
never see them in Designer.
Related Topics
“What Is an ACL?” on page 59
“Assigning ACLs” on page 62
“Viewing ACL Information for a Server” on page 64
“How ACLs Affect Other Designer Features” on page 64
“Troubleshooting ACL Usage” on page 66
What Is an ACL?
An ACL controls access to packages, folders, and other elements (such as services, IS
document types, and specifications) at the group level. An ACL identifies groups of users
that are allowed to access an element (Allowed Groups) and/or groups that are not
allowed to access an element (Denied Groups). When identifying Allowed Groups and
Denied Groups, you select from groups that you have defined previously.
There are four different kinds of access: List, Read, Write, and Execute.
List controls whether a user sees the existence of an element and its metadata; that is,
its input and output, settings, and ACL permissions. The element will be displayed
on screens in Designer, Developer, and the Integration Server Administrator.
Read controls whether a user can view the source code and metadata of an element.
Write controls whether a user can update an element. This access also controls
whether a user can lock, rename, or delete an element or assign an ACL to it.
Execute controls whether a user can execute a service.
For more details about these types of access, see the webMethods Integration Server
Administrator’s Guide.
1
Client Purch:SubmitPO
Purch:SubmitPO
2
INVOKE Purch:LogPO Purch:LogPO
3
INVOKE Purch:CreditAuth Purch:CreditAuth
4
INVOKE Purch:SendPO Purch:SendPO
Stage Description
1 The client (such as another application or a DSP) requests the Purch:SubmitPO
service on the local webMethods Integration Server. Integration Server checks
the ACL of the Purch:SubmitPO service (the externally invoked service). The
server executes the service only if the client is invoking the service on the
behalf of a user that is a member of an allowed group and is not a member of a
denied group for the ACL assigned to the service.
2 The Purch:SubmitPO service invokes the Purch:LogPO service. Because the
Purch:LogPO service is invoked by the externally invoked service and is located
on the same server as the externally invoked service, Integration Server
considers the Purch:LogPO service to be internally invoked. Consequently, the
server does not check the ACL of the Purch:LogPO service before executing it.
Stage Description
3 The Purch:SubmitPO service invokes the Purch:CreditAuth service. Like the
Purch:LogPO service, Integration Server considers the Purch:CreditAuth service to
be an internally invoked service. Consequently, the server does not check the
ACL of the Purch:CreditAuth service before executing it.
4 The Purch:SubmitPO service invokes the Purch:SendPO service. Like the Purch:LogPO
and Purch:CreditAuth services, Integration Server considers the Purch:SendPO
service to be an internally invoked service. The server does not check the ACL
of the Purch:SendPO service before executing it.
Note: Any service that the Purch:SubmitPO flow service invokes could also be invoked
directly by the client. For example, if the client directly invokes the Purch:SendPO
service, the server checks the ACL of the Purch:SendPO service. If the client is invoking
the service on the behalf of a user that is a member of an allowed group and not a
member of a denied group, then the server executes the Purch:SendPO service.
Creating ACLs?
You create ACLs using the Integration Server Administrator. For details, see the
webMethods Integration Server Administrator’s Guide.
When you remove an ACL from a service or subfolder, the service or subfolder inherits
the ACL assigned to the folder in which the service or subfolder is located. When you
remove the ACL assigned to the top‐level folder (the uppermost folder in a package),
Integration Server applies the default ACL to the folder and its contents for which an
ACL is not specified. (The default ACL restricts access to a service to any user with a
valid username and password for the Integration Server.)
Note: An element can inherit access from all elements except a package.
Assigning ACLs
You can assign an ACL to a package, folder, services, and other elements in the Package
Navigator view. Assigning an ACL restricts or allows access to an element for a group of
users.
Keep the following points in mind when assigning ACLs:
You can assign only one ACL per element.
You can only assign an ACL to an element for List, Read, or Write access if you are a
member of that ACL. For example, if you want to allow DevTeam1 to edit the
ProcessPO service, you must be a member of the DevTeam1 ACL. That is, your
username must be a member of a group that is in the Allowed list of the DevTeam1
ACL.
The ACLs assigned to an element are mutually exclusive; that is, an element can have
different ACLs assigned for each level of access. For example, the following element
has the Developers ACL assigned for Read access and the Administrators ACL
assigned for Write access.
ACL usage is not required. For more information, see “Is ACL Usage Required?” on
page 61
1 Make sure that the ACL you want to assign exists on the Integration Server. If not,
create the ACL in the Integration Server Administrator. For details, see the
webMethods Integration Server Administrator’s Guide.
2 In Package Navigator view, select the package or folder to which you want to assign
an ACL and select File > Properties. In the Properties for elementName dialog box, select
Permissions.
3 On Permissions, select the ACLs that you want to assign for each level of access.
For this
permission... Specify...
5 Click OK.
1 In Package Navigator view, select the Integration Server.
2 Click File > Properties.
3 In the Properties for serverName dialog box, select Server ACL Information.
The Server ACL Information page lists the ACLs contained in the Integration Server
to which you are connected. This information is read only; to edit ACLs, users, and
groups, use the Integration Server Administrator.
Related Topics
“Server ACL Information” on page 323
Note: When an Integration Server has the VCS Integration feature enabled, an element
is locked when it is checked out of the version control system. With the appropriate
ACL permissions, you are able to check out (lock) and check in (unlock) elements,
folders and packages.
I receive a “Couldn’t find in Package Navigator view” message when I try to find a service in the
Package Navigator view. However, I know it is on the Integration Server.
If you do not see the service listed in the Package Navigator view, you probably do not
have List access to that service. Contact your server administrator.
I can’t copy and paste a Java service.
Check to make sure that you have Write access to all Java services in the folder into which
you want to paste the service, as well as Write access to the folder itself.
In webMethods Designer, you can manage changes to elements during development by
locking them. This prevents two different users from editing an element at the same time.
You can lock elements such as flow services, Java services, schemas, and specifications.
All elements in Designer’s Package Navigator view are read‐only until you lock them.
You can edit an element only if you own the lock on the element. However, you can use
and run a service regardless of its lock status, as long as you have Execute access to the
service.
Local locking on Integration Server is the default locking mode of Designer. If you enable
Designer’s VCS Integration feature, elements are locked and unlocked when you check
them out of or into your version control system repository. When an Integration Server
has the VCS Integration feature enabled, system locking is effectively disabled for
elements that are checked into the version control system. The VCS Integration feature
will override any read/write status changes applied manually by a server administrator.
For more information about implementing the VCS Integration feature, see the
webMethods Version Control System Integration Developer’s Guide in the
webMethods_directory\_documentation directory.
Related Topics
“What Is a Lock?” on page 69
“Locking Elements” on page 70
“Viewing the Status of Locked Elements” on page 73
“Copying, Moving, or Deleting Locked Elements” on page 74
“Unlocking Elements” on page 74
“Troubleshooting” on page 76
“Frequently Asked Questions” on page 78
What Is a Lock?
A lock on an element prevents another user from editing that element. There are two
types of locks: user locks and system locks. When an element is locked by you, you have a
user lock. The element is read‐only to all other users on the Integration Server. Another
user cannot edit the element until you unlock it.
When an element’s supporting files (node.xml, for example) are marked read‐only on the
Integration Server, the element is system locked. For example, the server administrator has
the ability to mark an element’s supporting files on the server as read‐only, in which case
they are system locked. To edit the element, you must ask the server administrator to
remove the system lock (that is, make the element’s files writable), and then you must
reload the package in which the element resides.
Elements are shown in the following ways in Designer’s Package Navigator:
Locking Elements
Before you edit an element, you must lock it. Locking ensures that you are the only
person working on a particular element at a time, preventing the loss of changes.
Elements can only be locked by one user at a time. If the element you need is already
locked, request that the current owner of the lock release it. If the element is system
locked, request that the server administrator release it by making the corresponding
server files writable.
Elements are locked by webMethods username (the name you use to log on to the
Integration Server). Because of this, it is important that you use a distinct username to log
on to the server. If you change usernames, you will be unable to edit or unlock items that
you locked using your old username.
Related Topics
“Locking Elements in Designer” on page 70
“Guidelines for Locking Java and C/C++ Services” on page 71
“Guidelines for Locking Templates” on page 72
“System Locking Elements” on page 72
When you lock an element, Designer obtains and locks the latest version of the
element that has been saved on the webMethods Integration Server.
Elements generated by a service (including an adapter service) are not locked
automatically.
When you select multiple elements to lock, some elements in the selection may not be
available to lock because they may be system locked, locked by another user,
elements to which you do not have Write access, or elements that cannot directly be
locked. Designer will notify you that these elements cannot be locked and will lock
the rest.
When you lock an adapter notification, Designer also locks its associated publishable
document type. You cannot directly lock the publishable document type associated
with an adapter notification.
When you lock a folder or package, you only lock existing, unlocked elements within
it. Other users can still create new elements in that folder or package.
When you lock a Java or C/C++ service, Designer locks all other Java or C/C++
services within the folder. This means that other users cannot create Java and C/C++
services in a folder or package that contains the Java or C/C++ services. To create these
services, all existing Java and C/C++ services in the folder must be unlocked and the
user must have Write access to all Java and C/C++ services in the folder. For details,
see “Guidelines for Locking Java and C/C++ Services” on page 71.
You cannot lock a listener or connection element.
To lock an element
1 In the Package Navigator or in the editor, select the elements that you want to lock.
2 Right‐click the elements and then click Lock.
If the elements were successfully locked, a green check mark appears next to their
icons in Package Navigator view. If one or more of the elements could not be locked
(for example, if they are system locked, locked by another user, or elements to which
you do not have Write access), Designer displays a dialog box listing them. For
information about troubleshooting lock problems, see “Lock and Unlock Problems”
on page 76.
For example, if you lock a Java service in a folder A, all Java and C/C++ services in
folder A are locked by you. Similarly, if another user has locked a Java service in
folder B, you cannot add, edit, move, or delete any Java or C/C++ services in folder B.
Locking actions on Java and C/C++ services are ACL dependent. If you want to lock one or
more Java or C/C++ services within a folder, you must have Write access to all Java
and C/C++ services in that folder. This is because Java and C/C++ services within a
folder share the same .java and .class files.
The jcode development environment operates independently of locking. If you use jcode to
develop Java services, you do not have the locking functionality that is available in
the Integration Server. When you use jcode, you may compile a service that is locked
by another user, overwriting that user’s changes to the service. Therefore, if you use
jcode, do not use the locking features in the Integration Server.
Before you save a Java or C/C++ service, multiple corresponding files must be writable on the
server. A single Java or C/C++ service corresponds to the following files:
.java
.class
.ndf
.frag (may not be present)
Before you save a Java or C/C++ service, all of the preceding files must be writable.
Therefore, make sure that all system locks are removed from those files before saving.
Important! Before you system lock an element, always verify that it is not locked by a
user on the Integration Server. If an element becomes system locked while a user is
editing it, the user will not know until he or she tries to save changes to the element. If
this occurs, make the element’s corresponding files writable on the server. After this is
done, the user can save his or her changes to the element.
Related Topics
“Viewing Lock Status of Elements” on page 73
“Listing All of Your Locked Elements” on page 74
In Package Navigator view, right‐click the element for which you want to view the
status, and then click Lock Properties.
The Lock Contents Results dialog box displays the following information about the
locked element:
The person who owns the lock on the element.
The host on which the locked element resides.
The date the element was locked.
A list of server‐side files that are part of the element.
1 In Package Navigator view, select the server for which you want to view your locked
elements.
2 Click File > Properties > Server Locked Elements.
You can unlock individual elements from the Server Locked Elements page by
pressing the CTRL key as you click each element and then clicking Unlock. You can
unlock all elements by clicking Unlock All. For more information about unlocking
elements, see “Unlocking Elements” on page 74.
Related Topics
“Moving and Copying Elements” on page 40
“Deleting Elements” on page 46
Unlocking Elements
After you edit an element and save changes to the server, you should unlock it to make it
available to other users. There are several ways to unlock elements, depending on
whether you are a member of the Developers ACL or the Administrators ACL. If you are
a developer, you can unlock elements in Designer. If you are an administrator, you can
unlock elements in the Integration Server Administrator as well as in Designer.
Related Topics
“Unlocking Elements in Designer” on page 75
“Automatically Unlocking an Element Upon Saving” on page 75
1 In Package Navigator view, select the elements that you want to unlock.
2 Right‐click the elements and then select Unlock.
3 If the elements you want to unlock contain unsaved changes, Designer alerts you that
the elements cannot be unlocked until you save the changes. Click OK to close the
alert dialog box. Then, save the changes and repeat the unlock action.
4 If one of the elements you selected to unlock is a publishable document type
associated with an adapter notification, and you did not also select the adapter
notification, Designer alerts you that the elements cannot be unlocked. Click OK to
close the alert dialog box. Then, reselect the elements (including the appropriate
adapter notifications) and repeat the unlock action.
Package Navigator view refreshes and the green check mark next to the element
disappears.
Important! When an Integration Server has the VCS Integration feature enabled, the
Automatically unlock upon save preference must be disabled.
1 In Designer
Window > Preferences
2 In the preference navigation tree
Software AG > Service Development > Package Navigator
3 Under Preferences, select the Automatically unlock upon save check box.
4 Click Apply to save your changes. Or click OK to save your changes and close the
Preferences dialog box.
Troubleshooting
This following sections address common problems that may arise when implementing
cooperative development with webMethods components.
Related Topics
“Lock and Unlock Problems” on page 76
“Package Management Problems” on page 77
“Save Problems” on page 77
“Other Problems” on page 78
Save Problems
When I try to save an element that I have locked, I get an exception message.
During the time that you had the lock, the element became system‐locked, its ACL status
changed, or a server administrator removed your lock and another user locked the
element. If the exception message indicates that a file is read‐only, then one or all of the
files that pertain to that element on the server are system‐locked. Contact your
administrator to remove the system lock. After this is done, you can save the element and
your changes will be incorporated.
If the exception message indicates that you cannot perform the action without ACL
privileges, then the ACL assigned to the element has been changed to an ACL in which
you are not an Allowed user. To preserve your changes to the element, contact your
server administrator to:
1 Remove your lock on the element.
2 Lock the element.
3 Edit the ACL assigned for Write access to the element, to give you access.
4 Unlock the element.
You can then save your changes to the element.
When I try to save a template, I get an error message.
The template file on the server is read‐only. Contact your server administrator to make
the file writable.
Other Problems
I can’t delete a package.
One of the elements in that package is system‐locked (read‐only) or locked by another
user. Contact your administrator or contact the user who has the element locked in the
package.
The webMethods Integration Server went down while I was locking or unlocking an element.
The action may or may not have completed, depending on the exact moment at which the
server ceased action. When the server is back up, restore your session and look at the
current status of the element.
A package and any other element
An adapter notification record
You can also lock or unlock all elements in a package or folder that have not been
previously locked/unlocked by right‐clicking the package or folder and selecting Lock or
Unlock.
Where is the lock information stored (such as names of elements that are locked, when they were
locked, etc.)?
The information is stored internally in Repository version 4, and in the VCS repository, if
you are using VCS.
Important! It is not recommended that you use locking and unlocking functionality in
an Integration Server cluster. Locking information for elements could be
inadvertently shared with another Integration Server in the cluster. Use a standalone
Integration Server, not a cluster, during development to eliminate these issues.
Designer enables you to create, maintain, and manage custom integration packages for
use by the webMethods Integration Server. Often, many enterprise organizations employ
a version control system (VCS) for the development of software solutions, providing
automatic auditing, versioning, and security to software development projects. Such
products include Microsoft Visual SourceSafe and IBM Rational ClearCase.
With the VCS Integration feature installed in your development environment, you can
check packages or elements in to and out of your version control system (VCS). For
example, to modify a flow service element, you would:
1 Check out the flow service. This automatically checks out its supporting files
(node.ndf and flow.xml).
2 Modify the flow service in Designer and save the changes.
3 Check in the flow service element. This also checks in the node.ndf and flow.xml files
and makes the files read‐only when they are checked in.
Alternatively, if you want to work on other elements in addition to the flow service, you
can check out the entire package.
For information about configuring VCS to work with Integration Server, see the
webMethods Version Control System Integration Developer’s Guide
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“System Locking and VCS Integration Feature” on page 85
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“System Locking and VCS Integration Feature” on page 85
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“VCS Integration Supported Features” on page 82
“Locking Locally vs VCS Locking” on page 84
“System Locking and VCS Integration Feature” on page 85
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“Locking and Unlocking Elements” on page 69
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“System Locking and VCS Integration Feature” on page 85
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
You can connect to one VCS repository from each Integration Server.
Designer continues to be fully compatible with Integration Servers that do not have the
VCS Integration feature installed; when Designer connects to an Integration Server
where the VCS Integration feature is not installed, is disabled, or otherwise does not start,
the basic locking functionality remains available in Designer.
To use the VCS Integration feature to check packages and elements in and out of your
VCS repository from Designer, the VCS client software must be installed on the computer
on which Integration Server is running, and must be executable by the user account
under which Integration Server is running. In other words, the VCS Integration feature
does not provide you with a direct connection to your VCS. If you cannot connect to the
VCS through your VCS client software, you will receive an error message each time you
attempt to check packages, folders, or elements in to or out of the VCS from Designer.
Note: You must also have Access Control List (ACL) write privileges on the
Integration Server for the packages, folders, and elements you want to work with.
You can apply the VCS Integration menu commands to Designer folders and elements
that appear in the Package Navigator view of Designer, up to the package level, with the
exception of adapter connections. (For more information on adapter connections, see
“Working with webMethods Adapter Connections” on page 88.)
Components of your webMethods solutions that do not appear in the Package Navigator
view (such as dynamic server pages, HTML documents, templates, and configuration
files) must be manually checked in and out of the VCS repository with your VCS client.
In addition, when you use Designer to apply copy and paste, move, and rename actions
to any package, folder, or element subject to VCS control, the VCS Integration feature
automatically updates the VCS repository to reflect the changes. For example, if you copy
a service from one folder to another, the copied service is automatically added to the VCS
repository in the new location.
Similarly, if you move a folder or element, it will be removed from its original location in
the VCS repository and added to the VCS repository in its new location. Renamed
packages, folders, or elements are also automatically updated in the VCS repository.
Related Topics
“Hierarchical Operation” on page 87
“Working with Blaze Rules Services and Web Service Descriptors” on page 87
“Working with webMethods Adapter Connections” on page 88
“About Unlocking Elements with Integration Server Administrator” on page 89
“Working with Java Services” on page 89
“Checking Elements In and Out of a VCS” on page 81
Hierarchical Operation
The VCS Integration feature works with Designer elements up to and including the
package level. When you apply a VCS Integration command to a container element (a
folder or package), the command is applied to all of the folders and elements in the
container that are subject to VCS management. You can use this feature to check out or
check in elements, or get the latest version or an earlier version of all the elements in an
entire package or folder
For example, if you apply the Check In command to a folder, all supported elements
contained in the hierarchy of that folder are checked in to the VCS.
Note: When you work with a package with many elements, it may take a significant
amount of time to check the package in or out; Designer will not be available during
the check in or check out procedure.
Related Topics
“Working with Blaze Rules Services and Web Service Descriptors” on page 87
“Working with webMethods Adapter Connections” on page 88
“About Unlocking Elements with Integration Server Administrator” on page 89
“Working with Java Services” on page 89
“VCS Integration: Basic Concepts” on page 86
“Checking Elements In and Out of a VCS” on page 81
Related Topics
“Hierarchical Operation” on page 87
“Working with webMethods Adapter Connections” on page 88
“About Unlocking Elements with Integration Server Administrator” on page 89
“Working with Java Services” on page 89
“VCS Integration: Basic Concepts” on page 86
“Checking Elements In and Out of a VCS” on page 81
Note: Because the adapter connection appears within a package, there will be a
corresponding folder created within the VCS repository. However, this folder
contains only the *.ndf file that defines the folder; no adapter connection files are
placed there.
Also note that a publishable document type for an adapter notification cannot be directly
checked in to and out of the VCS repository. It is automatically checked in or out when
you use the VCS client to manually check in or check out its associated adapter
notification.
Related Topics
“Hierarchical Operation” on page 87
“Working with Blaze Rules Services and Web Service Descriptors” on page 87
“About Unlocking Elements with Integration Server Administrator” on page 89
“Working with Java Services” on page 89
“VCS Integration: Basic Concepts” on page 86
“Checking Elements In and Out of a VCS” on page 81
Related Topics
“Hierarchical Operation” on page 87
“Working with Blaze Rules Services and Web Service Descriptors” on page 87
“Working with webMethods Adapter Connections” on page 88
“Working with Java Services” on page 89
“VCS Integration: Basic Concepts” on page 86
“Checking Elements In and Out of a VCS” on page 81
Related Topics
“Hierarchical Operation” on page 87
“Working with Blaze Rules Services and Web Service Descriptors” on page 87
“Working with webMethods Adapter Connections” on page 88
“About Unlocking Elements with Integration Server Administrator” on page 89
“VCS Integration: Basic Concepts” on page 86
“Checking Elements In and Out of a VCS” on page 81
Related Topics
“Moving Java Services” on page 90
“Labeling Java Services in the VCS” on page 91
“Working with Java Services” on page 89
Note: When you move a Java service, its VCS revision history is reset. To retrieve
the earlier information, you must find the previous version of the file as a deleted
item in its previous VCS location and view the revision history there.
Related Topics
“Copying Java Services” on page 90
“Labeling Java Services in the VCS” on page 91
“Working with Java Services” on page 89
Related Topics
“Moving Java Services” on page 90
“Copying Java Services” on page 90
“Working with Java Services” on page 89
When either command is applied to a folder or an element in a folder, the package
and all of the folders in the path to the folder or element will also be added to the
VCS. However, the remaining contents of the package and those higher‐level folders
will not be added to the VCS.
When a folder containing coded services (Java and C/C++ for example) is added to the
VCS, all of coded services in that folder will be added to the VCS.
When you apply the Check Out command, the selected item is added to the VCS and
then placed in a checked out state.
Be sure to check in the elements when you have finished working with them; for more
information, see “Checking In Packages and Elements” on page 95. For more information
on which element types are subject to the VCS Integration feature, see the webMethods
Version Control System Integration Developer’s Guide.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Make sure to check in any elements (flow services, documents, or other elements in
the Package Navigator view) that you modified with Designer.
If you have previously worked with an earlier version of Designer, you may be
experienced in checking individual files in and out of your VCS (such as flow.xml and
source code files). However, the VCS Integration feature works at the package, folder,
and element level; individual files are checked into and out of your VCS automatically
when you work with the package, folder, or element that contains them:
If you check out … Integration Server checks out these files for you…
A package or a folder All of the folders and elements within the package or
folder, along with their supporting files.
A service The node.ndf file for that service
Other supporting files, depending on the service type,
such as flow.xml and java.frag files
Important! The VCS Integration feature requires that you disable the Automatically
Unlock Upon Save option in Designer, if you have implemented it. For information on
disabling this option, see “Automatically Unlocking an Element Upon Saving” on
page 75.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
In Package Navigator view, right‐click the package, folder, or element you want to
work with and select Check Out.
If a package or folder contains elements that are not supported by the VCS
Integration feature (such as an adapter connection), you will receive a message
naming the elements that will not be checked out. Checking out a package with many
elements might take a significant amount of time. Designer will not be available
during the check out procedure.
After the check out procedure is completed, a small check mark appears to the right
of each checked out element’s icon in the Package Navigator view.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
If a package or element does not exist in the VCS, applying the Check In command
adds the package or element to the VCS repository. For more information about this
behavior, see “Adding Packages and Elements to a VCS” on page 91.
If a package or element has unsaved changes applied to it, you must save the changes
to the package or element before you can check it in.
1 In Package Navigator view, right‐click the package, folder, or element that you want
to check in, and select Check In.
2 In the Comment for Check In dialog box, enter a comment that describes the changes
made to the package or element. This comment will be displayed in the revision
history for the element. If you do not enter a comment, the revision history will
display only user, time, and date information for this check in.
3 Click OK. The small check mark is removed from the right of the package or element’s
icon in the Package Navigator view.
Notes:
If the version of the file you checked out is not the same as the one that is currently
available, another user has checked in the file in between. Your check in will not be
done and an error message will be displayed.
If you check in a package that existed before VCS Integration, the manifest.v3 file will
not get checked into the VCS.
If you have made no changes to the package, folder, or element, the comment you
enter will be ignored by Visual SourceSafe unless you configure Visual SourceSafe to
check in unchanged files.
Checking in a package with many elements might take a significant amount of time.
Designer will not be available during the check in procedure.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
1 In Package Navigator view, right‐click the package, folder, or element for which you
want to revert changes, and select VCS > Revert Changes.
2 In the Revert Node alert window, click OK to confirm reverting the element to the
most recent version in the VCS repository.
The small check mark is removed from the right of the element’s icon in the Package
Navigator view, the checked out files are replaced with the most recent version
checked in to the VCS repository, and the entire package is reloaded.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Keep the following points in mind when retrieving the latest version of a package, folder,
or element from a VCS repository.
You cannot apply the Get Latest Version command to checked out packages, folders, or
elements. You cannot apply the command to a package or a folder if any of the
supported elements within the container’s hierarchy are checked out.
Although packages and folders are never shown as checked out in the Package
Navigator view, you can apply the Get Latest Version command to a package or folder
to get the latest version of all of the elements within the package or folder.
For ClearCase, the Get Latest Version command updates the package, folder, or
element in the branch configured for the view. Do not use the Get Latest Version
command for Dynamic Views because Dynamic Views always contain the latest
version.
Some folders or elements might be deleted after you apply the Get Latest Version
command. This will occur when there is no current version of that folder or element
(that is, it has been deleted from the VCS repository since the last update).
The Get Latest Version command reloads the entire package containing the element.
This might cause sessions currently using services in the package to fail.
In Package Navigator view, right‐click the package, folder, or element for which you
want to retrieve the latest version, and select VCS > Get Latest Version.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
1 In Package Navigator view, right‐click the package, folder, or element for which you
want to retrieve the latest version, and select VCS > Get Earlier Version.
2 In the Get Earlier Version dialog box, do one of the following:
Select... To...
Date Retrieve an earlier version using the date (Visual SourceSafe).
In the field next to Date, enter the VCS repository date and time
of the version you want to retrieve.
You must type the date and time using the Designer format
MM/DD/YY HH:MM:SS, where HH:MM:SS is in 24‐hour time
format. For example, in the History dialog box, the VCS time is
presented in the format:
User: UserName Date: 1/13/06 Time: 2:56p
This signifies January 13, 2006, 14:56 hours. You must type the
date into the Date field in this format:
01/13/06 14:56
Do not include the time zone (for example, EST) when typing
the date and time. The precision of the specified time (that is,
whether minutes and seconds are accepted, or minutes only) is
determined by the time format of the VCS application. For
example, Visual SourceSafe dates files with minutes only.
Label Get an earlier version by providing the VCS label (Visual
SourceSafe and ClearCase) or to get an earlier version by
providing a version number (ClearCase).
In the field next to Label, enter the VCS label text or version
number.
3 Click OK. All supported and checked in elements are updated to the specified version
in the VCS repository.
Note: If a folder contains locked elements that are not Java services and you apply
the Get Earlier Version command to an unlocked Java service in that folder, the error
message “Subindex() checked out” displays. Check in all elements in the folder
and try again.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
For ClearCase, the Delete command removes the package, folder, or element from the
versioned object base (VOB), so that the package, folder, or element is removed from
all branches.
Visual SourceSafe and ClearCase do not support entry of a delete comment. The VCS
history will show only the VCS user name and the time of deletion.
Note: Do not apply the Delete command to any earlier version packages or elements
that are checked out, as unpredictable results may occur.
To delete a package, folder, or element from both Integration Server and the VCS
1 In Package Navigator view, select the package, folder, or element you want to delete.
2 Select Edit > Delete. Do one of the following:
The Delete Confirmation dialog box appears. If you are deleting a publishable
document type, Designer prompts you to delete the associated Broker document type
as well. For more information about deleting Broker document types, see “Deleting
Elements” on page 46.
3 Click OK.
If a VCS package or element is checked out by another user, the package or element
will not be deleted, and an error message appears. In addition, any parent folders
leading to the checked out element will not be deleted.
When deleting a package, a message box appears stating that the deletion is complete
and that the deleted package has been copied to the recovery area of the Integration
Server. If this message appears, click OK.
Related Topics
“Deleting Elements” on page 46
“Deleting Publishable Document Types” on page 286
“Restoring Deleted Items” on page 104
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“Restoring a Deleted Package” on page 104
“Restoring a Deleted Folder or Element” on page 105
“Deleting Packages and Elements from the VCS” on page 102
“Deleting Elements” on page 46
“Deleting Publishable Document Types” on page 286
“Checking Elements In and Out of a VCS” on page 81
Related Topics
“Restoring Deleted Items” on page 104
“Restoring a Deleted Folder or Element” on page 105
“Deleting Packages and Elements from the VCS” on page 102
“Deleting Elements” on page 46
“Deleting Publishable Document Types” on page 286
To restore a folder or element that has been deleted from both Integration Server and the VCS
1 With your VCS client, restore the folder or element in the VCS repository.
Important! If the folder or element contains subfolders or individual files, be sure
you restore all of the folder or element contents, typically by applying a recursive
restore. If you restore a service, for example, without restoring its node.ndf file,
the service will not be recognized by Integration Server.
2 Using the VCS client, check out the restored element to its original location in the
..\packages\ns directory. You may receive a message that the folder or element does
not exist, with a request to create the folder or element. If so, respond so that all
folders, elements, and files are created.
3 In Package Navigator, right‐click the package that contained the deleted element and
select Reload Package. This displays the restored element in the Package Navigator
view.
Note: At this point, although the restored element is in a checked out state on the
VCS server, it does not display the checked out symbol in the Package Navigator
view.
4 In Package Navigator view, right‐click the restored element and select Check In.
Related Topics
“Restoring a Deleted Package” on page 104
“Restoring Deleted Items” on page 104
“Deleting Packages and Elements from the VCS” on page 102
“Deleting Elements” on page 46
“Deleting Publishable Document Types” on page 286
Important! When you move or rename a folder or element, you are effectively creating
a new entity in the VCS repository. Therefore, the previous folder or element is
deleted and a new entity is created. This means that a new revision history is started
for the moved or renamed entity as well. If you want to view previous revision
information for a moved or renamed folder, or element, you must locate the deleted
version of the file in the VCS repository and view the revision history there.
Because the default behavior of the VCS Integration feature is to add any new folder or
element to the VCS repository, a copied or moved folder or element automatically
appears in the VCS repository in its new location. In the case of a moved item, the
previous location is deleted from both Designer and the VCS repository.
A copied folder or element is always placed in a checked out state in its new location. A
moved folder or element retains its checked in or checked out state; special conditions
apply when you copy or move a coded service. For more information on copying and
moving coded services, see “Working with Java Services” on page 89.
When you move an element that has dependents, the dependents will not be updated
until you check in the moved element. This may cause failure of any services that use the
dependent elements.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Renaming Packages, Folders, and Elements” on page 107
“Viewing the History of a Folder or Element” on page 108
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Viewing the History of a Folder or Element” on page 108
Note: Technically, folders are not checked in or checked out of the VCS repository; it is
actually the elements within the folder that are checked in or out. When viewing the
history for a folder, you are actually viewing the history of the node.idf file within the
folder.
The following information is available for files supporting folders and elements in the
VCS repository:
Information Definition
User The VCS user account name under which the revision was executed.
Date The date applied to the revision by the VCS server.
Time The time applied to the revision by the VCS server.
Checked In The full VCS project path for the checked in file.
Comment Text entered by the user at check in time. This may contain no text if
the user did not enter a comment.
dev_user The Designer user under which the revision was executed.
is_host The name of the host on which Integration Server is running.
dev_host The name of the host on which Designer is running.
is_time The date and time applied to the revision by Integration Server.
Label The VCS label applied to the file. If no VCS label exists, this entry is
not displayed.
Label Comment Text entered by the user when the label was applied. This may
contain no text if the user did not enter a comment.
When you move or rename a folder or element, the previous folder or element is deleted
and a new entity is created. This means that a new revision history is started for the
moved or renamed entity as well. If you want to view previous revision information for a
moved or renamed folder, or element, you must locate the deleted version of the file in
the VCS repository and view the revision history there.
1 In Package Navigator view, right‐click the element for which you want to view
history and select View History.
The elmentName History dialog box appears. If necessary, you can copy text from the
dialog box and paste it into another program.
2 When you have finished viewing the history information, click OK.
Related Topics
“VCS Integration Supported Features” on page 82
“VCS Integration Unsupported Features” on page 83
“Locking Locally vs VCS Locking” on page 84
“VCS Integration: Basic Concepts” on page 86
“Adding Packages and Elements to a VCS” on page 91
“Modifying Elements that are in the VCS” on page 92
“Checking Out Packages and Elements” on page 94
“Checking In Packages and Elements” on page 95
“Reverting Changes to a Checked Out Package or Element” on page 97
“Getting the Latest Version from the VCS” on page 98
“Getting an Earlier Version from the VCS” on page 100
“Deleting Packages and Elements from the VCS” on page 102
“Restoring Deleted Items” on page 104
“Copying and Moving Folders or Elements” on page 106
“Renaming Packages, Folders, and Elements” on page 107
6 Managing Packages
A package is a container that is used to bundle services and related elements, such as
specifications, IS document types, IS schemas, and triggers. When you create a folder,
service, IS document type, or any element, you save it in a package.
Packages are designed to hold all of the components of a logical unit in an integration
solution. For example, you might group all the services and files specific to a particular
marketplace in a single package. By grouping these components into a single package,
you can easily manipulate them as a unit. For example, you can copy, reload, distribute,
or delete the set of components (the “package”) with a single action.
Although you can group services using any package structure that suits your purpose,
most sites organize their packages by function or application. For example, they might
put all purchasing‐related services in a package called “PurchaseOrderMgt” and all time‐
reporting services into a package called “TimeCards.”
On the server, a package represents a subdirectory within the
IntegrationServer_directory\packages directory. All the components that belong to a
package reside in the package’s subdirectory.
Related Topics
“Creating a Package” on page 111
“Documenting a Package” on page 113
“Viewing Package Settings, Version Number, and Patch History” on page 114
“Assigning a Version Number to a Package” on page 115
“Copying Packages Between Servers” on page 116
“Reloading a Package” on page 118
“Deleting a Package” on page 118
“Exporting a Package” on page 119
“About Package Dependencies” on page 119
“Assigning Startup, Shutdown, and Replication Services to a Package” on page 122
Creating a Package
When you want to create a new grouping for services and related files, create a package.
When you create a package, Designer creates a new subdirectory for the package in the
file system on the machine where the Integration Server is installed. For information
about the subdirectory and its contents, see the webMethods Integration Server
Administrator’s Guide.
Related Topics
“Guidelines for Naming Packages” on page 112
“Creating a Package” on page 112
Related Topics
“Creating a Package” on page 112
Creating a Package
To create a package
1 In Designer
File > New > Package
2 In New Integration Server Package dialog box, select the Integration Server on which
you want to create the package.
3 In the Name field, type the name for the new package using any combination of letters,
numbers, and the underscore character. For more information, see “Guidelines for
Naming Packages” on page 112.
4 Click Finish. Designer refreshes the Package Navigator view and displays the new
package.
Related Topics
“Guidelines for Naming Packages” on page 112
Documenting a Package
You can communicate the purpose and function of a package and its services to other
developers by documenting the package.
1 Document the package in one or more Web documents (such as HTML pages). Be
sure to name the home page for the package documentation index.html. The
index.html file can contain links to the other Web documents for the package. An
index.html file exists for each package installed by the Integration Server.
2 Place the documents in the pub subdirectory for the package on the Integration
Server.
For example, place the package documentation for a package named
“PurchaseOrders” in the following directory:
IntegrationServer_directory\packages\PurchaseOrders\pub
Tip! An alternate location for package documentation is the
IntegrationServer_directory\packages\doc directory. Typically, this directory is
used for reference material such as PDFs that do not need to be published to the
Web.
Related Topics
“Accessing Package Documentation” on page 114
Enter the URL for the package documentation. The URLs for package documentation
have the following format:
http://serverName:port/PackageName/DocumentName
where:
serverName:port is the name and port address of Integration Server on which the
package resides.
PackageName is the name of the package for which you want documentation.
DocumentName is the name of the Web document you want to access. If you do
not specify a DocumentName, Integration Server automatically
displays the index.html file.
Related Topics
“Documenting a Package” on page 113
1 In Package Navigator view, select the package whose properties you wish to view.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Package Settings.
The Package Settings page displays the version and patch history for the package since
the last full release of the package. (A full release of a package incorporates all
previous patches for the package.) For more information about package settings, see
“Package Properties” on page 325.
Note: When the server administrator installs a full release of a package (a release that
includes all previous patches for the package), the Integration Server removes the
existing patch history. This helps the server administrator avoid potential confusion
about version numbers and re‐establish a baseline for package version numbers.
Related Topics
“Package Properties” on page 325
“Assigning a Version Number to a Package” on page 115
1 In Package Navigator view, select the package to which you want to assign a version
number.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Package Settings.
4 In the Package Version field, type the version number you want to assign to the
package. Be sure to format the version number in one of the following ways: X.X or
X.X.X (for example, 1.0, 2.1, 2.1.3, or 3.1.2).
5 Click OK.
Related Topics
“Package Properties” on page 325
“About Package Dependencies” on page 119
Related Topics
“Copying Packages” on page 117
“Moving and Copying Elements” on page 40
Copying Packages
When copying packages, keep the following points in mind:
You can copy a package to a different server only if you are a member of a group
assigned to the Replicators ACL on the source and destination servers and you are
logged on to both servers.
Before you copy a package that contains elements with unsaved changes, you must
save the changes.
You cannot undo a copy action using the Edit > Undo command.
You cannot copy a package to another server if the destination server already contains
a package with that name.
Note: Because UNIX directories are case sensitive, Integration Servers running in a
UNIX environment will allow packages with similar names to reside on the same
server. For example, you can copy a package named orderProcessing to a server that
contains a package named OrderProcessing.
If you copy a package that depends on other packages to load (that is, contains
package dependencies), and the required packages are not present on the destination
server, the package will be copied but it will not be enabled.
1 In Package Navigator view, select the package you want to copy.
2 Click Edit > Copy.
3 If the package you want to copy contains elements with unsaved changes, Designer
alerts you that the package cannot be copied until you save the changes. Click OK to
close the alert dialog box. Then, save the changes and repeat the copy action.
4 Select the server where you want to copy the package.
5 Click Edit > Paste.
Related Topics
“Copying Packages Between Servers” on page 116
“Moving and Copying Elements” on page 40
Reloading a Package
Sometimes, you need to reload a package on the server to activate changes that have been
made to it outside of Designer. You need to reload a package if any of the following
occurs:
A Java service that was compiled using jcode is added to the package.
New jar files are added to the package.
Any of the configuration files for the package are modified.
Note: Reloading a package is not the same as refreshing the Package Navigator view.
When you refresh the Package Navigator view, Designer retrieves a fresh copy of the
contents of all the packages from the memory of the Integration Server. When you
reload a package, Integration Server removes the existing package information from
memory and loads new versions of the package and its contents into its memory.
To reload a package
1 In Package Navigator view, select the package you want to reload.
2 Right‐click the package and click Reload Package.
Deleting a Package
When you no longer need the services and files in a package, you can delete the package.
Deleting a package removes the package and all of its contents from the Package
Navigator view.
When you delete a package from Designer, Integration Server saves a copy of the
package. If you later want to recover the package and its contents, contact your server
administrator. Only Integration Server Administrator users can recover a package. For
more information about recovering packages, see the webMethods Integration Server
Administrator’s Guide.
Before you delete a package, make sure that:
Other users or other services do not use (depend on) the services, templates, IS
document types, and schemas in the package. You can use the Package Dependencies
option to identify other services that are dependent on a service in a package that you
want to delete. For more information, see “Identifying Package Dependencies” on
page 120.
All elements in the package that you want to delete are unlocked, or locked by you. If
the package contains elements that are locked by others or system locked, you cannot
delete the package.
To delete a package
1 In Package Navigator view, select the package you want to delete.
2 Click Edit > Delete.
Related Topics
“Identifying Package Dependencies” on page 120
“Deleting Elements” on page 46
Exporting a Package
Packages can be exported to your hard drive so that they can be shared with partners or
developers. You can install an exported package on another server by using the package
publishing functionality in the Integration Server Administrator. Locking information is
not exported.
To export a package
1 In Package Navigator view, select the package you want to export to your hard drive.
2 Right‐click the package and click Export from Server.
3 In the Save As dialog box, select the location on your hard drive where you want the
exported package to reside. Click Save.
This exports the package to a ZIP file and saves it on your hard drive. The ZIP file can
then be published on another server.
Related Topics
“Exporting Elements” on page 57
Important! Other webMethods components might include packages that register new
types of elements in Designer. You should save instances of these new element types
in packages that list the registering package as a package dependency. The registering
package needs to load before your packages so that Designer can recognize instances
of the new element type. For example, if you create new flat file schemas, you should
save the flat file schemas in packages that identify the WmFlatFile package as a
package dependency.
Related Topics
“Identifying Package Dependencies” on page 120
“Removing Package Dependencies” on page 121
“Viewing Package Settings, Version Number, and Patch History” on page 114
1 In Package Navigator view, select the package for which you want to specify package
dependencies.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Package Dependencies.
4 Click .
5 In the Add Dependent Package dialog box, enter the following information:
Package The name of the package you want Integration Server to load
prior to loading the package selected in the Package Navigator
view. Type the name of the package in the Package field or click
Browse to choose the dependent package.
Version The version number of the package you specified in the Package
field.
More than one version of the same package might contain the
services and elements that a dependent package needs
Integration Server to load first. You can use an asterisk (*) as a
wildcard in the version number to indicate that any version
number greater than or equal to the specified version will satisfy
the package dependency. For example, to specify version 3.0 or
later of a package, type 3.* for the version number. To specify
versions 3.1 or later, type 3.1.* for the version number.
If any version of the package satisfies the package dependency,
type *.* as the version number.
6 Click OK.
7 Click OK in the Properties for PackageName dialog box.
Related Topics
“About Package Dependencies” on page 119
“Removing Package Dependencies” on page 121
1 In Package Navigator view, select the package for which you want to remove a
package dependency.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Package Dependencies.
4 Select the package dependency you want to remove and click .
5 Click Yes to confirm the deletion.
6 Click OK in the Properties for PackageName dialog box.
Related Topics
“About Package Dependencies” on page 119
“Identifying Package Dependencies” on page 120
Related Topics
“What Is a Startup Service?” on page 122
“What Is a Shut Down Service?” on page 124
“What Is a Replication Service?” on page 125
Related Topics
“Assigning a Startup Service” on page 123
“Removing a Startup Service” on page 124
1 In Package Navigator view, select the package to which you want to assign startup
services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Startup/Shutdown Services.
5 Click OK.
Related Topics
“What Is a Startup Service?” on page 122
“Removing a Startup Service” on page 124
1 In Package Navigator view, select the package for which you want to remove startup
services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Startup/Shutdown Services.
4 Under Startup services, select the service you want to remove from Selected services list,
and click .
5 Click OK.
Related Topics
“What Is a Startup Service?” on page 122
“Assigning a Startup Service” on page 123
Related Topics
“Assigning a Shutdown Service” on page 124
“Removing a Shutdown Service” on page 125
1 In the Package Navigator view, select the package to which you want to assign
shutdown services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Startup/Shutdown Services.
Related Topics
“What Is a Shut Down Service?” on page 124
“Removing a Shutdown Service” on page 125
1 In Package Navigator view, select the package for which you want to remove
shutdown services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Startup/Shutdown Services.
4 To remove a shutdown service, under Shutdown services, select the service you want to
remove from Selected services list, and click .
5 Click OK.
Related Topics
“What Is a Shut Down Service?” on page 124
“Assigning a Shutdown Service” on page 124
Replication services provide a way for a package to persist state or configuration
information so that these are available when the published package is activated on the
remote server.
Note: The term replication service does not refer to the services contained in
pub.replicator or to services that subscribe to replication events (replication event
services).
Related Topics
“Assigning a Replication Service” on page 126
“Removing a Replication Service” on page 126
1 In the Package Navigator view, select the package to which you want to assign
replication services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Replication Services.
4 Click .
5 In the Select a replication service dialog box, select the service that you want to use as
a replication service.
6 Click OK.
Repeat these steps for each service you want to add as a replication service.
Related Topics
“What Is a Replication Service?” on page 125
“Removing a Replication Service” on page 126
1 In the Package Navigator view, select the package for which you want to remove
replication services.
2 Click File > Properties.
3 In Properties for PackageName dialog box, select Replication Services.
4 Select the replication service you want to remove and click .
5 Click Yes to confirm the deletion.
6 Click OK.
Related Topics
“What Is a Replication Service?” on page 125
“Assigning a Replication Service” on page 126
Services are method‐like units of logic that operate on documents. They are executed by
Integration Server. You build services to carry out work such as extracting data from
documents, interacting with back‐end resources (for example, submitting a query to a
database or executing a transaction on a mainframe computer), and publishing
documents to the Broker. Integration Server is installed with an extensive library of built‐
in services for performing common integration tasks. Adapters and other add‐on
packages provide additional services that you use to interact with specific resources or
applications. webMethods graphical implementation language, flow, enables you to
quickly aggregate services into powerful sequences called flow services.
Related Topics
“A Process Overview” on page 129
“Package and Folder Requirements” on page 130
“Declaring a Service Signature” on page 130
“Specifying Run‐Time Parameters” on page 136
“Configuring Services to Retry” on page 142
“Configuring Service Auditing” on page 145
“Assigning a Universal Name to a Service or Document Type” on page 149
“Assigning an Output Template to a Service” on page 153
A Process Overview
Building a service is a process that involves the following basic stages:
Input and output parameters define the fields that the service requires as input and generates as
output
Input Output
Name Data Type Name Data Type
AcctNum String AuthCode String
OrderTotal String
Although you are not required to declare input and output parameters for a service (the
Integration Server will execute a service regardless of whether it has a specification or
not), there are good reasons to do so:
Declaring parameters makes the service’s input and outputs visible to Designer. Without
declared input and output parameters, you cannot:
Link data to and/or from the service using the Pipeline view.
Assign default input values to the service on the Pipeline view.
Validate the input and output values of the service at run time.
Run or debug the service in Designer and enter initial input values.
Generate skeleton code for invoking the service from a client.
Declaring parameters makes the input and output requirements of your service known to other
developers who may want to call your service from their programs.
For these reasons, it is strongly recommended that you make it a practice to declare a
signature for every service that you create.
Designer supports several data types for use in services. Each data type supported by
Designer corresponds to a Java data type and has an associated icon. When working in
the editor, you can determine the data type for a field by looking at the icon next to the
field name.
Related Topics
“Specifying Input Parameters” on page 132
“Specifying Output Parameters” on page 133
“Declaring Input and Output Parameters” on page 133
“Supported Data Types” on page 385
“Running and Debugging Flow Services” on page 229
Note: The purpose of declaring input parameters is to define the inputs that a
calling program or client must provide when it invokes this flow service. You do
not need to declare inputs that are obtained from within the flow itself. For
example, if the input for one service in the flow is derived from the output of
another service in the flow, you do not need to declare that field as an input
parameter.
When possible, use variable names that match the names used by the services in the flow.
Variables with the same name are automatically linked to one another in the pipeline.
(Remember that variable names are case sensitive.) If you use the same variable
names used by flow’s constituent services, you reduce the amount of manual data
mapping that needs to be done. When you specify names that do not match the ones
used by the constituent services, you must use the Pipeline view to manually link
them to one another.
Avoid using multiple inputs that have the same name. Although Designer permits you to
declare multiple input parameters with the same name, the fields may not be
processed correctly within the service or by services that invoke this service.
Make sure the variables match the data types of the variables they represent in the flow. For
example, if a service in the flow expects a document list called LineItems, define that
input variable as a document list. Or, if a service expects a Date object called
EmploymentDate, define that input variable as an Object and apply the java.util.Date
object constraint to it. For a complete description of the data types supported by
Designer, see “Data Types” on page 385.
Declared input variables appear automatically as inputs in the pipeline. When you select the
first service or MAP step in the flow, the declared inputs appear under Pipeline In.
Trigger services have specific input parameter requirements. If you intend to use a service
with a Broker/local trigger or a JMS trigger, make sure the input signature conforms
to the requirements for each of those trigger types. For more information about
creating Broker/local triggers, see the Publish‐Subscribe Developer’s Guide. For more
information about creating JMS triggers, see the webMethods Integration Server JMS
Client Developer’s Guide.
Important! If you edit a cached service by changing the inputs (not the pipeline), you
must reset the server cache. If you do not reset it, the old cached input parameters
will be used at run time. To reset the service cache from Designer, select the service
and then click the Reset button next to Reset Cache in the Properties view. To reset the
service cache from Integration Server Administrator, select Service Usage under Server
in the Navigation panel. Select the name of the service and an information screen for
that service appears. Click Reset Server Cache.
Input/Output tab
For a flow service, the input side describes the initial contents of the pipeline. In other
words, it specifies the variables that this flow service expects to find in the pipeline at run
time. The output side identifies the variables produced by the flow service and returned
to the pipeline.
You can declare a service signature in one of the following ways:
Reference a specification. A specification defines a set of service inputs and outputs. You
can use a specification to define input and output parameters for multiple services.
When you assign a specification to a service, you cannot add, delete, or modify the
declared variables using the service’s Input/Output tab.
Reference an IS document type. You can use an IS document type to define the input or
output parameters for a service. When you assign an IS document type to the Input or
Output side of the Input/Output tab, you cannot add, modify, or delete the variables
on that half of the tab.
Manually insert input and output variables. Drag variables from the Palette view to the
Input or Output sides of the Input/Output tab.
Related Topics
“Using a Specification as a Service Signature” on page 134
“Using an IS Document Type to Specify Service Input or Output Parameters” on
page 135
“Inserting Input and Output Parameters” on page 136
not allow you to change them.) To make changes to the input and output parameters of
the service, you must modify the specification (which affects all services that reference it)
or detach the specification so you can manually define the parameters on the service’s
Input/Output tab.
1 In the Package Navigator view, open the service to which you want to assign a
specification.
2 Click the Input/Output tab.
3 In Specification Reference, type the fully qualified name of the specification, or click
to select it from a list.
4 Click Okay.
1 In the Package Navigator, double‐click the service to which you want to assign the IS
document type.
2 Click the Input/Output tab.
3 In the Input or Output box, type the fully qualified name of the IS document type or
click to select it from a list. You can also drag an IS document type from the
Package Navigator to the box below the Validate input or Validate output check boxes
on the Input/Output tab.
4 Click File > Save.
1 In the Package Navigator view, open the service for which you want to declare input
and output parameters.
2 Click the Input/Output tab.
3 If the Palette view is not visible, display it by clicking .
4 In the Palette view, select the type of variable you want to define and drag it to the
Input or Output side of the Input/Output tab.
5 Type a name for the variable and press ENTER.
6 With the variable selected, set variable properties and apply constraints using the
Properties view.
7 If the variable is a document or document list, repeat steps 4–6 to define and set the
properties and constraints for each of its members. Use to indent each member
beneath the document or document list variable.
Note: You can add a document reference to a service signature by selecting an IS
document type in the Package Navigator view and dragging it to the
Input/Output tab.
8 Click File > Save.
Important! The run‐time parameters should only be set by someone who is thoroughly
familiar with the structure and operation of the selected service. Improper use of
these options can lead to a service failure at run time and/or the return of invalid data
to the client program.
Related Topics
“Maintaining the State of Service” on page 137
“Configuring a Service’s Use of Cache” on page 138
“Specifying the Execution Locale” on page 141
Related Topics
“Specifying the Run‐Time State for a Service” on page 137
1 In the Package Navigator, open the service that you want to configure.
2 In the Run time category of the Properties view, do one of the following to set the
Stateless property:
If the service is a self‐contained, atomic unit of work and does not need access to
state information, select True. The server will remove the client session
immediately after the service executes, and no session information will be
maintained for the service.
If the service is part of a multi‐service transaction or if you are unsure of its state
requirements, select False. The server will build and maintain a session object for
this service.
Important! Do not use the stateless option unless you are certain that the service
operates as an atomic unit of work. If you are unsure, set the Stateless property in
the Run time category to False.
3 Click File > Save.
Related Topics
“Types of Services to Cache” on page 138
“Controlling a Service’s Use of Cache” on page 139
“Specifying the Duration of Cached Results” on page 140
“Using the Prefetch Option” on page 140
“Configuring Caching of Service Results” on page 141
Note: If you do not have administrator privileges on your Integration Server, work
with your server administrator to monitor and evaluate your service’s use of cache.
Important! If you edit a cached service by changing the inputs (not the pipeline), you
must reset the server cache. If you do not reset it, the old cached input parameters
will be used at run time. To reset the service cache from Designer, select the service
and then click Reset next to Reset Cache in the Properties view. To reset the service
cache from Integration Server Administrator, select Service Usage under Server in the
Navigation panel. Select the name of the service and an information screen for that
service appears. Click Reset Server Cache.
1 In the Package Navigator, open the service for which you want to configure caching.
2 In the Run time category of the Properties view, set Cache results to True.
3 In the Cache expire field, type an integer representing the length of time (in minutes)
that you want the results for this service to be available in cache.
4 If you want to use prefetch, set Prefetch to True, and then in the Prefetch activation
property, specify the minimum number of hits needed to activate the use of prefetch.
5 Click File > Save.
1 In the Package Navigator, open the service that you want to configure.
2 In the Run time category of the Properties view, do one of the following to specify the
Execution Locale property:
Select... To...
Language Select one of the ISO 639 codes that represent the language. (2‐
or 3‐letter codes)
Extended Language For future release.
Script Optional. Select one of the 4‐letter script codes in the ISO
15924 registry.
Region Optional. Select one of the ISO 3166‐2 country codes.
IANA Variant Optional. Add or remove a variant code registered by the
IANA.
4 Click OK. Integration Server will execute the service in the specified locale.
To configure a service to retry, you specify the maximum retry attempts and the retry
interval. The maximum retry attempts indicate how many attempts Integration Server
makes to re‐execute the service when it ends because of an ISRuntimeException. The
retry interval indicates the length of time (in milliseconds) that the Integration Server
waits between execution attempts.
At run time, when a service throws an ISRuntimeException, Integration Server waits the
length of the retry interval and then re‐executes the service using the original input
pipeline passed to the service. Integration Server continues to retry the service until the
service executes successfully or Integration Server makes the maximum number of retry
attempts. If the service throws an ISRuntimeException during the final retry attempt,
Integration Server treats the last failure as a service error. The service ends with a service
exception.
Integration Server generates the following journal log message between retry attempts:
[ISS.0014.0031V3] Service serviceName failed with ISRuntimeException. Retry x
of y will begin in retryInterval milliseconds.
Note: If service auditing is also configured for the service, Integration Server adds an
entry to the audit log for each failed retry attempt. Each of these entries will have a
status of “Retried” and an error message of “Null”. However, if Integration Server
makes the maximum retry attempts and the service still fails, the final audit log entry
for the service will have a status of “Failed” and will display the actual error message.
Related Topics
“About the Maximum Retry Period” on page 143
“Setting Service Retry Properties” on page 144
Note: The watt.server.invoke.maxRetryPeriod server parameter specifies the
maximum retry period. To change the maximum retry period, change the value of
this parameter.
1 In Package Navigator view, open the service for which you want to configure service
retry.
2 Under Transient error handling in the Properties view, in the Max retry attempts property,
specify the number of times Integration Server should attempt to re‐execute the
service. The default is 0, which indicates that Integration Server does not attempt to
re‐execute the service.
3 In the Max interval property, specify the number of milliseconds Integration Server
should wait between retry attempts. The default is 0 milliseconds, which indicates
that Integration Server re‐executes the service immediately.
4 Click File > Save.
Tip! You can invoke the pub.flow:getRetryCount service to retrieve the current retry count
and the maximum specified retry attempts. For more information about this service,
see the webMethods Integration Server Built‐In Services Reference. For more information
about building a service that retries, see “Configuring Services to Retry” on page 142.
Note: When Integration Server logs an entry for a service, the log entry contains the
identify of the server that executed the service. The server ID in the log entry always
uses the Integration Server primary port, even if a service is executed using another
(non‐primary) Integration Server port.
Each service has a set of auditing properties located in the Audit category on the service’s
Properties view. These properties determine when a service generates audit data and
what data is stored in the audit log. For each service, you can decide:
Whether the service should generate audit data during execution. That is, do you
want the service to generate audit data to be captured in the audit log? If so, you must
decide whether the service will generate audit data every time it executes or only
when it is invoked directly by a client request (HTTP, FTP, SMTP, etc.) or a trigger.
The points during service execution when the service should generate audit data to
be saved in the audit log. You might want a service to produce audit data when it
starts, when it ends successfully, when it fails, or a combination of these.
Whether to include a copy of the service input pipeline in the audit log. If the audit
log contains a copy of the input pipeline, you can use the webMethods Monitor to
perform more extensive failure analysis, examine the service’s input data, or reinvoke
the service.
Keep in mind that generating audit data can impact performance. Integration Server uses
the network to send the audit data to the audit log and uses memory to actually save the
data in the audit log. If a large amount of data is saved, performance can be impacted.
When you configure audit data generation for services, you should balance the need for
audit data against the potential performance impact.
Note: The audit log can be a flat file or a database. If you use a database, the database
must support JDBC. You can use Integration Server to view the audit log whether it is
a flat file or a database. If the audit log is a database, you can also use the
webMethods Monitor to view audit data and reinvoke the service. Before you
configure service auditing, check with your Integration Server Administrator to learn
what kind of audit log exists. For more information about the audit log, see the
webMethods Logging Guide.
Related Topics
“Audit Properties” on page 350
“Service Auditing Use Cases” on page 146
“Setting Auditing Options for a Service” on page 148
Related Topics
“Error Auditing” on page 146
“Service Auditing” on page 147
“Auditing for Recovery” on page 147
“Auditing Long‐Running Services” on page 148
Error Auditing
In error auditing, you use the audit log to track and reinvoke failed services. To use the
audit log for error auditing, services must generate audit data when errors occur, and the
Integration Server must save a copy of the service’s input pipeline in the audit log.
With webMethods Monitor, you can only reinvoke top‐level services (those services
invoked directly by a client or by a Broker/local trigger). Therefore, if your intent with
error auditing is to reinvoke failed services, the service needs to generate audit data only
when it is the top‐level service and it fails.
To make sure the audit log contains the information needed to perform error auditing,
select the following Audit properties.
To use the audit log for error auditing, use a database as the audit log.
Service Auditing
When you perform service auditing, you use the audit log to track which services execute
successfully and which services fail. You can perform service auditing to analyze the
audit log and determine how often a service executes, how many times it succeeds, and
how many times it fails. To use the audit log for service auditing, services need to
generate audit data after execution ends.
To make sure the audit log contains the information needed to perform service auditing,
select the following Audit properties.
To use the audit log for service auditing, you can use either a flat file or a database as the
audit log.
To use the audit log to audit for recovery, use a database for the audit log.
Note: Typically, you will audit long‐running services in conjunction with error
auditing, service auditing, or auditing for recovery.
To configure service auditing, you must have write access to the service and own the
lock on the service or have it checked out.
For detailed information about the Audit properties, see “Audit Properties” on
page 350.
1 In the Package Navigator, double‐click the service for which you want to configure
service auditing.
2 In the Audit category of the Properties view, select an Enable auditing option to indicate
when you want the service to generate audit data.
3 For Log on, select an option to determine when the service generates audit data.
4 For Include pipeline, select an option to indicate when the Integration Server should
include a copy of the input pipeline in the audit log.
5 Click File > Save.
The local name uniquely identifies a service or document type within the collection
encompassed by a particular namespace. Many webMethods users use a service’s
unqualified name as its local name. Under this scheme, a service named
gl.journals:closeGL would have a local name of closeGL.
Local names follow the same construction rules as NCNames in XML. Basically, a
local name can be composed of any combination of letters, digits, or the following
symbols:
. (period)
‐ (dash)
_ (underscore)
Additionally, the local name must begin with a letter or an underscore. The following
are examples of valid local names:
addCustOrder
authorize_Level1
générent
For specific rules relating to NCNames, see “NCName” definition in the Namespaces
in XML specification.
Related Topics
“Universal Name Properties” on page 335
“Implicit and Explicit Universal Names” on page 150
“Deleting an Explicit Universal Name” on page 152
“The Universal Name Registry” on page 152
“Services You Use to Interact with the Universal Name Registry” on page 153
The local name is the unqualified name of the service or document type.
The following table shows the implicit names for a variety of service names:
Note: It is possible for an implicit name to match the explicit name of another service.
When this condition exists, the explicit name takes precedence. That is, when a
universal name is requested, Integration Server searches its registry of explicit names
first. If it does not find the requested name there, it looks for a matching implicit
name.
1 In Package Navigator view, double‐click the service or document type whose
universal name you want to assign, edit, or view.
2 In the editor, click the service’s or document type’s title bar to give the service or
document type the focus.
3 If you want to assign or edit the universal name, specify the following in the Universal
Name category of the Properties view:
Note: Many webMethods users use the unqualified portion of the
service name as the local name.
4 Click File > Save.
1 In the Package Navigator, open the service or document type whose universal name
you want to delete.
2 In the Universal Name category of the Properties view, clear the settings in the
Namespace name and Local name fields.
3 Click File > Save.
Related Topics
“Services You Use to Interact with the Universal Name Registry” on page 153
Service Description
pub.universalName:list Returns a document list containing the entries for the service
in the current registry. Each document in the list represents
an entry in the registry and contains a service’s fully
qualified webMethods name and both parts of its explicit
universal name.
pub.universalName:listAll Returns a document list containing the entries for services
and document types in the current registry. Each document
in the list represents an entry in the registry and contains the
fully qualified webMethods name and both parts of its
explicit universal name for each service and document type.
pub.universalName:find Returns the fully qualified service name for a specified
explicit universal name.
pub.universalName:findDoc Returns the fully qualified document type name for a
umentType specified explicit universal name.
A service can have at most one output template assigned to it at a time (you can
dynamically change the output template assignment at run time, however).
You can assign the same output template to more than one service.
If you assign an existing output template to a service, the output template must reside
in the IntegrationServer_directory\packages\packageName\templates directory, where
packageName is the package in which the service is located.
You can reference one output template from within another.
You can specify the encoding in which to save the template (for example, SJIS, a type
of Japanese encoding). Integration Server is optimized for the UTF‐8 encoding. You
should not change this setting unless you are sure that you want to use another
encoding.
Important! In Designer, you can change the output template assigned to a service or
modify the existing output template. However, if you want to create a new output
template, use webMethods Developer.
“What Is a Flow Service?” on page 155
“Building Services Using the Tree Tab or Layout Tab” on page 160
“Creating a New Flow Service” on page 160
“Setting Properties for a Flow Step” on page 163
“The INVOKE Step” on page 163
“The BRANCH Step” on page 166
“The REPEAT Step” on page 177
“The SEQUENCE Step” on page 183
“The LOOP Step” on page 185
“The EXIT Step” on page 189
“The MAP Step” on page 192
INVOKE Purch:GetOrders 1
Any service can be invoked within a flow (including other flow services). For instance, a
flow might invoke a service that you create, any of the built‐in services provided with the
Integration Server, and/or services from a webMethods add‐on product such as the
webMethods JDBC Adapter.
You create flow services using Designer. They are saved in XML files on Integration
Server.
Important! Although flow services are written as XML files, they are maintained in a
format that can only be created and understood by Designer and webMethods
Developer. You cannot create or edit a flow service with a text editor.
Related Topics
“webMethods Flow Steps” on page 371
“What Is a Flow Step?” on page 156
“What Is the Pipeline?” on page 158
Purch:SubmitPO
Purch:SubmitPO
INVOKE Purch:GetOrders
A flow service can contain the following types of flow steps:
Invocation Steps
INVOKE Executes a specified service. For more information about this
step, see “The INVOKE Step” on page 163.
Data-Handling Steps
MAP Performs specified editing operations on the pipeline (such as
mapping variables in the pipeline, adding variables to the
pipeline, and dropping variables from the pipeline). For more
information about this step, see “The MAP Step” on page 192.
Control Steps
BRANCH Executes a specified flow step based on the value of a specified
variable in the pipeline. For more information about this step,
see “The BRANCH Step” on page 166.
LOOP Executes a set of flow steps once for each element in a
specified array. For more information about this step, see “The
LOOP Step” on page 185.
REPEAT Re‐executes a set of flow steps up to a specified number of
times based on the successful or non‐successful completion of
the set. For more information about this step, see “The
REPEAT Step” on page 177.
SEQUENCE Groups a set of flow steps into a series. The SEQUENCE step is
implicit in most flow services (that is, the steps in a flow
service are treated as a series). However, at times it is
necessary to explicitly group a subset of flow steps using
SEQUENCE so that they can be treated as a unit. For more
information about this flow step, see “The SEQUENCE Step”
on page 183.
EXIT Controls the execution of a flow step (for example, abort an
entire flow service from within a series of deeply nested steps,
throw an exception without writing a Java service, or exit a
LOOP or REPEAT without throwing an exception). For more
information about this step, see “The EXIT Step” on page 189.
Related Topics
“webMethods Flow Steps” on page 371
“Inserting Flow Steps” on page 161
“Flow Step Properties” on page 335
The pipeline holds the input and output for a flow service
Services in a flow get Flow Service The Pipeline
their input from and
place their output in input ONum:46-77135
the pipeline.
Name:Kings Sport
INVOKE Purch:LogPO
Phone:201-887-1544
output TNum:128824993554
input Acct:128824993554
Total:5732.78
INVOKE Purch:CreditAuth
Qty:20
output AuthNum:TW99123554
input Date:04/04/99
INVOKE Purch:ConvertDate Item:PK8801-NS
output OrderDate:19990404
input Ship:UPS Ground
Terms:30N
INVOKE Purch:SendPO
Freight:65.00
output Status:Received
When you build a flow service, you use Designer to specify how information in the
pipeline is mapped to and from services in the flow.
Related Topics
“What Does the Pipeline View Contain?” on page 194
“Inspecting Pipeline References” on page 50
“Assigning Values to Pipeline Variables” on page 215
“Dropping Variables from the Pipeline” on page 217
“Adding Variables to the Pipeline” on page 218
“Pipeline View Toolbar” on page 399
Important! The flow steps produced by this option are no different
than those produced by manually inserting INVOKE
pub.xml:loadXMLNode and INVOKE pub.xml:queryXMLNode steps in a flow
service. After Designer inserts the set of default steps into your flow
service, you can edit the default steps and insert additional steps
just as you would any ordinary flow service.
Related Topics
“Package and Folder Requirements” on page 130
“Creating New Elements” on page 34
“Inserting Flow Steps” on page 161
“Changing the Position of a Flow Step” on page 162
“Changing the Level of a Flow Step” on page 162
1 In the Package Navigator view, open the flow service in which you want to insert
flow steps.
2 Do one of the following:
Move the flow step up in the list
Move the flow step down in the list
You can also move a flow step by dragging it up or down with your mouse.
To promote or demote a flow step within a parent/child hierarchy, select the step on the
Tree tab, and then use one of the following buttons to move it left or right beneath the
current parent step.
Demote a flow step in the hierarchy (that is, make the selected step a
child of the preceding parent step)
This button will only be available if you select a step that can
become a child.
Promote a flow step in the hierarchy (that is, move the step one level
up in the hierarchy)
Property Description
Comments Assigns an optional descriptive comment to the selected flow step.
Label Assigns a name to the selected flow step. When a label is assigned, that
label appears next to the step in the editor. The label allows you to
reference that flow step in other flow steps. In addition, you use the label
to control the behavior of certain flow steps. For example, the BRANCH
step uses the Label property to determine which alternative it is supposed
to execute.
See “The BRANCH Step” on page 166 and “The EXIT Step” on page 189
for additional information about this use of the label property.
Related Topics
“Flow Step Properties” on page 335
Invoke flow services recursively (that is, a flow service that calls itself). If you use a
flow service recursively, bear in mind that you must provide a means to end the
recursion.
Invoke any service, validating its input and/or output.
Related Topics
“INVOKE Properties” on page 375
“Specifying the Service Property” on page 164
“Invoking a Built‐In Service” on page 164
“Invoking a Service on Another Integration Server” on page 165
“Building an Invoke Step” on page 165
By clicking the Service property’s edit button ( ) and selecting a service from the
Select dialog box. This is the preferred method.
By typing the name of a service in the Service text box. When you specify a service in
this manner, keep the following points in mind:
You must specify the service’s fully qualified name in folderName:serviceName
format.
Example purchasing.orders:getOrders
You must specify the service’s name exactly as it is defined on the server. Service
names are case sensitive.
Note: If you are using any adapters (for example, the webMethods JDBC Adapter),
you will have additional built‐in services, which are provided by the adapters. See
the documentation provided with those adapters for details.
1 Open the flow service in which you want to invoke another service. In the editor,
select the step immediately above where you want to insert the INVOKE step.
2 Do one of the following:
Service The fully qualified name of the service that will be invoked at run
time. When you insert a service, Designer automatically assign
the name of that service to the Service property. If you want to
change the service that is invoked, specify the service’s fully
qualified name in the format folderName:serviceName or click
and select a service from the list.
Timeout Optional. The maximum number of seconds that this step should
run. If this time elapses before the step completes, the server
waits for the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols. For
example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout
blank.
Validate input Whether or not you want the server to validate the input to the
service against the service input signature. Select True to validate
the input. Select False if you do not want to validate the input.
Validate output Whether or not you want the server to validate the output of the
service against the service output signature. Select True to validate
the output. Select False if you do not want to validate the output.
Important! You cannot branch on a switch value and an expression for the same
BRANCH step. If you want to branch on the value of a single variable and you know
the possible run‐time values of the switch variable exactly, branch on the switch value.
If you want to branch on the values of more than one variable or on a range of values,
branch on expressions.
Related Topics
“BRANCH Properties” on page 373
“Branching on a Switch Value” on page 167
“Branching on an Expression” on page 170
“Branching on Null and Empty Values” on page 171
“Specifying a Default Step” on page 172
“Using a SEQUENCE as the Target of a BRANCH” on page 173
“Building a BRANCH Step” on page 175
“Building a BRANCH Step” on page 175
1 Create a list of the conditional steps (target steps) and make them children of the
BRANCH step.
2 In the Properties view for the BRANCH step, specify in the Switch property the name
of the pipeline variable whose value will act as the switch. For more information
about this property, see “Specifying the Switch Value” on page 168.
3 In the Label property of each target step, specify the value that will cause that step to
execute. For more information about this property, see “Specifying the Label Value”
on page 168.
If PaymentType
is “COD,”
execution will
fall through this
BRANCH step.
Keep the following points in mind when assigning labels to the targets of the BRANCH
step:
You must give each target step a label unless you want to match an empty string. For
that case, you leave the Label property blank. For more about matching an empty
string, see “Branching on Null and Empty Values” on page 171.
Each Label value must be unique within the BRANCH step.
When you specify a literal value as the Label of a child step, the value you specify
must match the run‐time value of the switch variable exactly. The Label property is
case sensitive.
You can use a regular expression as the value of Label instead of a literal value.
You can match a null value by using the $null value in the Label property. For more
information about specifying a null value, see “Branching on Null and Empty
Values” on page 171.
You can designate a default step for all unmatched cases by using the $default value in
the Label property. For more information about using the $default setting, “Specifying
a Default Step” on page 172.
Branching on an Expression
When you branch on an expression, you assign an expression to each child of a branch
step. At run time, the BRANCH step evaluates the expressions assigned to the child
steps. It executes the first child step with an expression that evaluates to true.
To branch on an expression
1 Create a list of the conditional steps (target steps) and make them children of the
BRANCH step.
2 In the Properties view for the BRANCH step, set Evaluate labels to True.
3 In the Label property of each target, specify the expression that, when true, will cause
the target step to execute. The expressions you create can include multiple variables
and can specify a range of values for variables. Use the syntax provided by
webMethods to create the expression. For more information about expression syntax,
see the webMethods Developer User’s Guide.
Keep in mind that only one child of a BRANCH step is executed: the first target step
whose label contains an expression that evaluates to true. If none of the expressions
evaluate to true, none of the child steps are invoked, and execution falls through to the
next step in the flow service. You can use the $default value in the Label property to
designate a default step for cases where no expressions evaluate to true. For more
information about using the $default value, see “Specifying a Default Step” on page 172.
Important! The expressions you create for the children of a BRANCH step need to be
mutually exclusive (only one condition should evaluate to true at run time).
A null value Set the Label property to $null. At run time, the BRANCH step
executes the target step with the $null label if the switch variable is
explicitly set to null or does not exist in the pipeline.
You can use $null with any type of switch variable.
An empty Leave the Label property blank (empty). At run time, the BRANCH
string step executes the target step with no label if the switch variable is
present, but contains no characters.
You can use an empty value only when the switch variable is of type
String.
The following example shows a BRANCH step used to authorize a credit card number
based on the buyer’s credit card type (CreditCardType). It contains three target steps. The
first target step handles situations where the value of CreditCardType is null or where
CreditCardType does not exist in the pipeline. The second target step handles cases where
the value of CreditCardType is an empty string. (Note that the first two target steps are
EXIT steps that will return a failure condition when executed.) The third target step has
the $default label, and will process all specified credit card types.
BRANCH that contains target steps to match null values or empty strings
Important! You can only have one default target step for a BRANCH step. Designer
always evaluates the default step last. The default step does not need to be the last
child of the BRANCH step.
Create a
SEQUENCE for
each multi-step
alternative...
The SEQUENCE step that you use as a target for a BRANCH can contain any valid flow
step, including additional BRANCH steps. For additional information about building a
SEQUENCE, see “The SEQUENCE Step” on page 183.
1 If you are inserting a BRANCH step into an existing flow service, display that service
in the editor and highlight the step immediately above where you want the BRANCH
step inserted.
2 Do one of the following:
Click by the side of the flow service editor to open the Palette view. Click
and drag it to the flow service editor.
3 Complete the following fields on the Properties view:
Comments An optional descriptive comment for this step.
Scope The name of a document (IData object) in the pipeline to which
you want to restrict this step. If you want this step to have access
to the entire pipeline, leave this property blank.
Timeout The maximum number of seconds that this step should run. If
this time elapses before the step completes, the server waits for
the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %expiration%).
If you do not need to specify a time‐out period, leave Timeout
blank.
Label An optional name for this specific step, or a null, unmatched, or
empty string ($null, $default, blank). For more information about
branching on null or empty values, see “Branching on Null and
Empty Values” on page 171.
If you use this step as a target for another BRANCH or an EXIT
step, you must specify a value in the Label property. For more
information about the EXIT step, see “The EXIT Step” on
page 189.
Switch The name of the String or constrained Object variable whose
value will be used to determine which child step to execute at run
time. Do not specify a switch variable if you set the Evaluate labels
property to True.
4 Insert the conditional steps that belong to the BRANCH (that is, its children) using
the following steps:
b Indent the flow step using on the flow service editor toolbar to make it a child
of the BRANCH step.
c In the Label property on the Properties view, specify the switch value that will
cause this step to execute at run time.
To match... Specify...
That exact string A string
The String representation of the object’s value A constrained
object value
Example for Boolean object true
Example for Integer object 123
Any string fitting the criteria specified by the regular A regular
expression expression
Example /^REL/
An empty string A blank field
A null value $null
Any unmatched value (that is, execute the step if the value $default
does not match any other label)
d Set other properties as needed.
Important! If you are branching on expressions, make sure the expressions you assign
to the target steps are mutually exclusive. In addition, do not use null or empty
values as labels when branching on expressions. The BRANCH step ignores target
steps with a $null label or blank label.
Related Topics
“REPEAT Properties” on page 380
“Specifying the REPEAT Condition” on page 178
“Setting the REPEAT Counter” on page 178
“When Does REPEAT Fail?” on page 178
“Using REPEAT to Retry a Failed Step” on page 179
“Using REPEAT to Retry a Successful Step” on page 181
FAILURE Re‐executes the set of child steps if any step in the set fails.
SUCCESS Re‐executes the set of child steps if all steps in the set
complete successfully.
0 Does not re‐execute children.
Any value > 0 Re‐executes children up to this number of times.
-1 or blank Re‐executes children as long as the specified Repeat on
condition is true.
Important! Note that children of a REPEAT always execute at least once. The Count
property specifies the maximum number of times the children can be re‐executed. At
the end of an iteration, the server checks to see whether the condition (that is, failure
or success) for repeating is satisfied. If the condition is true and the Count is not met,
the children are executed again. This process continues until the repeat condition is
false or Count is met, whichever occurs first. (In other words, the maximum number of
times that children of a REPEAT will execute when Count is > ‐1, is Count+1.)
SUCCESS A child within the REPEAT block fails.
FAILURE The Count limit is reached before its children execute
successfully.
If the REPEAT step is a child of another flow step, the failure is propagated to its parent.
1 If you are inserting a REPEAT step into an existing flow service, display that service
in the editor and highlight the step immediately above where you want the REPEAT
step inserted.
2 Do one of the following:
Click by the side of the flow service editor to open the Palette view. Click
and drag it to the flow service editor.
3 Complete the following fields on the Properties view:
Comments An optional descriptive comment for this step.
Scope The name of a document (IData object) in the pipeline to
which you want to restrict this step. If you want this step to
have access to the entire pipeline, leave this property blank.
Timeout The maximum number of seconds that this step should run. If
this time elapses before the step completes, the server waits for
the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %expiration%).
If you do not need to specify a time‐out period, leave Timeout
blank.
Label An optional name for this specific REPEAT step, or a null,
unmatched, or empty string ($null, $default, blank).
Important! If you use this step as a target for a BRANCH or
EXIT step, you must specify a value in the Label property. For
more information about the BRANCH and EXIT steps, see
“The BRANCH Step” on page 166 or “The EXIT Step” on
page 189.
Count The maximum number of times you want the children to be
re‐executed. If you want to use the value of a pipeline variable
for this property, type the variable name between % symbols
(for example, %servicecount%).
If you want the children re‐executed until they are all
successful (that is, no maximum limit), set this value to –1.
Repeat interval The length of time (in seconds) that you want the server to
wait between iterations of the children.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %waittime%).
Repeat on FAILURE
4 Beneath the REPEAT step, use the following steps to insert each step that you want to
repeat:
a Insert a flow step using the buttons on the flow service editor toolbar.
b Indent that flow step using on the flow service editor toolbar. (Make it a child
of the REPEAT step.)
c Set the properties for the child step as needed.
1 If you are inserting a REPEAT step into an existing flow service, display that service
in the editor and highlight the step immediately above where you want the REPEAT
step inserted.
2 Do one of the following:
Click by the side of the flow service editor to open the Palette view. Click
and drag it to the flow service editor.
3 Complete the following fields on the Properties view:
Comments An optional descriptive comment for this step.
Scope The name of a document (IData object) in the pipeline to
which you want to restrict this step. If you want this step to
have access to the entire pipeline, leave this property blank.
Timeout The maximum number of seconds that this step should run.If
this time elapses before the step completes, the server waits for
the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %expiration%).
If you do not need to specify a time‐out period, leave Timeout
blank.
Label An optional name for this specific step, or a null, unmatched,
or empty string ($null, $default, blank).
Important! If you use this step as a target for a BRANCH or
EXIT step, you must specify a value in the label property. For
more information about the BRANCH and EXIT steps, see
“The BRANCH Step” on page 166 or “The EXIT Step” on
page 189.
Count The maximum number of times you want the children to be
re‐executed. If you want to use the value of a pipeline variable
for this property, type the variable name between % symbols
(for example, %servicecount%).
If you want the children re‐executed until any one of them
fails (that is, no maximum limit), set this value to –1.
Repeat interval The length of time (in seconds) that you want the server to
wait between iterations of the children.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %waittime%).
Repeat on SUCCESS
4 Beneath the REPEAT step, use the following steps to insert each step that you want
repeat:
a Insert a flow step using the buttons on the flow service editor toolbar.
b Indent that flow step using on the editor toolbar to make it a child of the
REPEAT step.
c Set the properties for the child step as needed.
Related Topics
“SEQUENCE Properties” on page 382
“Using SEQUENCE to Specify an Exit Condition” on page 183
Exit the sequence when a step in the sequence fails. (Execution FAILURE
continues with the next flow step in the flow service.) This is the
default behavior of a sequence of steps.
This setting is useful if you have a series of steps that build upon
one another. For example, if you have a set of steps that gets an
authorization code and then submits a PO, you will want to skip the
PO submission if the authorization step fails.
When a SEQUENCE exits under this condition, the SEQUENCE
step fails.
Note: When a SEQUENCE step exits on failure, the Integration
Server rolls back the pipeline contents. That is, the Integration
Server returns the pipeline to the state it was in before the
SEQUENCE step executed.
Exit the sequence when any step in the sequence succeeds. SUCCESS
(Execution continues with the next step in the flow service.)
This setting is useful for building a set of alternative steps that are
each attempted at run time. Once one of the members of the set runs
successfully, the remaining steps in the sequence are skipped.
When a SEQUENCE exits under this condition, the server considers
the SEQUENCE step successful, even if all its children fail. If a child
fails under this condition, any changes that it made to the pipeline
are rolled back (undone), and processing continues with the next
child step in the SEQUENCE.
Execute every step in the sequence even if one of the steps in the DONE
sequence fails.
The server considers a SEQUENCE step successful as long as it
executes all of its children within the specified time‐out limit. The
success or failure of a child within the sequence is not taken into
consideration. If a child fails under this condition, any changes that
it made to the pipeline are rolled back (undone), and processing
continues with the next child step in the SEQUENCE.
Note: Rollback operations are performed on the first level of the pipeline only. That is,
first‐level variables are restored to their original values before the step failed, but the
server does not roll back changes to any documents to which the first‐level variables
refer.
Note: A failure in a MAP step (that is, a failure in one of the transformers) will cause
the containing SEQUENCE to exit when you set Exit on to FAILURE. However, a MAP
step that does not fail will not cause the containing SEQUENCE to exit when you set
Exit on to SUCCESS. That is, a MAP can fail but it does not “succeed.”
You may include any valid flow step within the body of a LOOP, including additional
LOOP steps. The following example shows a pair of nested LOOPs. Note how the
indentation of the steps determines the LOOP to which they belong.
Related Topics
“LOOP Properties” on page 377
“Specifying the Input Array” on page 186
“Collecting Output from a LOOP Step” on page 187
“Building a LOOP Step” on page 188
LOOP properties
When you design your flow, remember that because the services within the loop operate
against individual elements in the specified input array, they must be designed to take
elements of the array as input, not the entire array.
For example, if your LOOP executes against a document list called LineItems that contains
children called Item, Qty, and UnitPrice, you would specify LineItems as the Input array for
the LOOP step, but services within the loop would take the individual elements of
LineItems (for example, Item, Qty, UnitPrice, and so forth) as input.
1 If you are inserting a LOOP step into an existing flow service, display that service in
the editor and select the step immediately above where you want the LOOP step
inserted.
2 Do one of the following:
Click by the side of the flow service editor to open the Palette view. Click
and drag it to the flow service editor.
3 Complete the following fields on the Properties view:
Comments An optional descriptive comment for this step.
Scope The name of a document (IData object) in the pipeline to
which you want to restrict this step. If you want this step to
have access to the entire pipeline, leave this property blank.
Timeout The maximum number of seconds that this step should run.If
this time elapses before the step completes, the server waits for
the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this
property, type the variable name between % symbols (for
example, %expiration%).
If you do not need to specify a time‐out period, leave Timeout
blank.
Label An optional name for this specific LOOP step, or a null,
unmatched, or empty string ($null, $default, blank).
Important! If you use this step as a target for a BRANCH or
EXIT step, you must specify a value in the Label property. For
more information about the BRANCH and EXIT steps, see
“The BRANCH Step” on page 166 or “The EXIT Step” on
page 189.
4 Build the body of the loop using the following steps:
a Insert a flow step using the buttons on the flow service editor toolbar.
b Indent the flow step using on the flow service editor toolbar to make it a child
of the LOOP step.
c Set the properties for the child step as needed.
5 Use the Pipeline view to link the elements of the input array to the input variables
required by each child of the LOOP step. For more information about using the
Pipeline view, see “Mapping Data in Flow Services” on page 193.
Important! When you build a LOOP step, make sure that you specify the output array
variable in the LOOP Output array property before creating a link to the output array
variable within a MAP or INVOKE step in the body of the LOOP. If you specify the
output array variable after creating a link to it, the link will fail at run time. You can
debug the step in Designer to see if the link succeeds. If the link fails, delete the link to
the output array variable and then recreate it.
Exit a LOOP or REPEAT flow step without throwing an exception.
The following flow service contains two EXIT steps that, if executed, will exit the nearest
ancestor LOOP step. If the value of CreditCardType is null or an empty string, the
matching EXIT step executes and exits the LOOP over the ʹ/PurchaseOrdersListʹ step.
Use the EXIT step to exit the nearest ancestor LOOP step
This LOOP
exits when....
...CreditCardType
is null...
...or empty.
Related Topics
“EXIT Properties” on page 374
“Building an EXIT Step” on page 190
1 If you are inserting an EXIT step into an existing flow service, display that service in
the editor and select the step immediately above where you want the EXIT step
inserted.
2 Do one of the following:
Click by the side of the flow service editor to open the Palette view. Click
and drag it to the flow service editor.
3 Complete the following fields on the Properties view:
Comments An optional descriptive comment for this step.
Label An optional name for this specific step, or a null, unmatched, or
empty string ($null, $default, blank).
Important! If you use this step as a target for a BRANCH step,
you must specify a value in the Label property. For more
information about the BRANCH step, see “The BRANCH Step”
on page 166.
$loop Nearest ancestor LOOP or REPEAT flow step.
$parent Parent flow step, regardless of the type of step.
$flow Entire flow.
Label Nearest ancestor flow step that has a label that
matches this value.
Note: If the label you specify does not match the
label of an ancestor flow step, the flow will exit with
an exception.
Signal Whether the exit is to be considered a success or a failure.
Specify one of the following:
Specify… To…
SUCCESS Exit the flow service or flow step with a success
condition.
FAILURE Exit the flow service or flow step with a failure
condition. An exception is thrown after the exit. You
specify the error message with the Failure message
property.
This property is not used when Signal is set to SUCCESS.
Tip! The MAP step is especially useful for hard coding an initial set of input values in
a flow service. To use it in this way, insert the MAP step at the beginning of your
flow, and then use the Set Value modifier to assign values to the appropriate variables
in Pipeline Out.
For more information about the MAP step, see “Mapping Data in Flow Services” on
page 193.
Related Topics
“MAP Properties” on page 379
“Mapping Data in Flow Services” on page 193
Because systems rarely produce data in the exact format that other systems need, you
commonly need to build flow services that perform data transformations. Data
transformation resolves differences in the way data is represented within documents that
applications and systems exchange. In Designer, data transformations can be
accomplished by mapping data. By mapping, you can accomplish the following types of
transformations:
Name transformations. This type of transformation resolves differences in the way data
is named. For example, one service or document format might use telephone as the
name of the variable for telephone number information and another might use
phoneNumber. When you perform name transformations, the value and position of a
variable in the document structure remains the same, but the name of the variable
changes.
Structural transformations. This type of transformation resolves differences in the data
type or structure used to represent a data item. For example, one service or document
format might put the telephone number in a String called telephone, and the next may
expect to find it nested in a Document named customerInfo. When you perform
structural transformations, the value of the variable remains the same, but the data
type or position of the variable in the Document structure changes.
Value transformations. This type of transformation resolves differences in the way
values are expressed (for example, when systems use different notations for values
such as standard codes, units of currency, dates, or weights and measures). When
you perform value transformations, the name and position of the variable remain the
same, but the data contained in the variable changes. For example, you can change
the format of a date, concatenate two Strings, or add the values of two variables
together.
When you build flow services or convert between document formats, you may need to
perform one, two, or all of the above types of data transformation. The webMethods flow
language provides two ways for you to accomplish data transformations between
services and document formats: you can map variables to each other (create links) or you
can insert transformers.
Related Topics
“What Does the Pipeline View Contain?” on page 194
“Basic Mapping Tasks” on page 196
“Linking Variables” on page 197
“Assigning Values to Pipeline Variables” on page 215
“Dropping Variables from the Pipeline” on page 217
“Adding Variables to the Pipeline” on page 218
“Working with Transformers” on page 220
Related Topics
“Pipeline View Toolbar” on page 399
“Inspecting Pipeline References” on page 50
“Pipeline View for an INVOKE Step” on page 194
“Pipeline View for a MAP Step” on page 195
1 2
1 The expected state of the pipeline just before the selected service
executes.
Pipeline In depicts the set of variables that are expected to be in the
pipeline before the service executes (based on the declared input
and output parameters of the preceding services).
Service In depicts the set of variables the selected service expects as
input (as defined by its input parameters).
In the Pipeline view, you can insert “pipeline modifiers” at this
stage to adjust the contents of the pipeline to suit the requirements
of the service. For example, you can link variables, assign values to
variables, drop variables from the pipeline, or add variables to the
pipeline. Modifications that you specify during this stage are
performed immediately before the service executes at run time.
2 The expected state of the pipeline just after the service executes.
Service Out depicts the set of variables that the selected service
produces as output (as defined by its output parameters).
Pipeline Out depicts the set of variables that are expected to be in the
pipeline after the service executes. It represents the set of variables
that will be available to the next service in the flow. If the selected
service (INVOKE step) is the last step in the flow service, Pipeline Out
displays the output variables for the flow service (as declared on the
Input/Output tab).
In the Pipeline view, you can insert “pipeline modifiers” at this
stage to adjust the contents of the pipeline. For example, you can
link variables, assign values to variables, drop variables from the
pipeline, or add variables to the pipeline. Modifications that you
specify during this stage are performed immediately after the
service executes at run time.
Note: Designer displays small symbols next to a variable icon to indicate validation
constraints. Designer uses to indicate an optional variable. Designer uses the ‡
symbol to denote a variable with a content constraint. For information about
applying constraints to variables, see “Applying Constraints to Variables” on
page 304.
The Pipeline In column represents input to the MAP step. It contains the names of all of
the variables in the pipeline at this point in the flow.
The Transformers column displays any services inserted in the MAP step to complete
value transformations. For more information about invoking services in a MAP step,
see “Working with Transformers” on page 220.
The Pipeline Out column represents the output of the MAP step. It contains the names
of variables that will be available in the pipeline when the MAP step completes.
When you first insert a MAP step into your flow, Pipeline In and Pipeline Out are identical.
However, if the MAP step is the only step in the flow service or is the last step in the flow
service, Pipeline Out also displays the variables declared as output in the flow service.
Linking Variables
When you want to copy the value of a variable in a service or document format to
another variable, you link the variables. Designer connects service and pipeline variables
in the Pipeline view with a line called a link. Creating a link between variables copies the
value from one variable to another at run time.
Within a flow, Designer implicitly links variables whose names are the same and whose
data types are compatible. For example, the service in the following flow takes a variable
called AcctNumber. Because a variable by this name already exists in Pipeline In, it is
automatically linked to the AcctNumber variable in Service In. Designer connects implicitly
linked variables with a gray link.
Note: The Pipeline view does not display implicit links for a MAP step.
In cases where the services in a flow do not use the same names for a piece of
information, use the Pipeline view to explicitly link the variables to each other. Explicit
linking is how you accomplish name and structure transformations required in a flow.
Designer connects explicitly linked variables with a solid black line.
On the input side of the Pipeline view, use to link a variable from the pipeline to the
service. In the following example, the service expects a value called OrderTotal, which is
equivalent to the pipeline variable BuyersTotal (that is, they are simply different names for
the same data). To use the value of BuyersTotal as the value for OrderTotal, you “link” the
pipeline variable to the service using .
At run time, the server will copy the value from the source variable (BuyersTotal) to the
target variable (OrderTotal) before executing the service.
When a pipeline
variable name is
different from the
one used by the
service, link the
variables to
connect them.
Important! Do not link variables with different Object constraints. If you link variables
with different Object constraints and input/output validation is selected, the run‐time
result is undefined.
All the output variables that a service produces are automatically placed in the pipeline.
Just as you can link variables from the Pipeline In stage to a service’s input variables, you
can link the output from a service to a different variable in Pipeline Out.
In the following example, a variable called TransNumber is linked to the field Num in a
Document called TransactionRecord. At run time, the server will copy the value of
TransNumber to Num, and both TransNumber and Num will be available to subsequent
services in the flow.
When an output
variable name is
different from the
name in the pipeline,
link the variables to
connect them.
Designer
automatically adds a
service’s output
variables to the
pipeline and implicitly
links them.
Related Topics
“Link Properties” on page 345
“Assigning Properties to Variables” on page 302
“Creating a Link Between Variables” on page 200
“What Happens When Integration Server Executes a Link?” on page 201
“Linking to Document and Document List Variables” on page 204
“Linking Variables of Different Data Types” on page 204
“Linking to and from Array Variables in the Pipeline” on page 207
“Deleting a Link Between Variables” on page 212
“Linking Variables Conditionally” on page 213
1 In the flow service editor, select the INVOKE or MAP step containing the variables
you want to link.
2 Open the Pipeline view.
3 If you want to create a link between a variable in Pipeline In and one in Service In, do
the following:
a In Pipeline In, click the pipeline variable you want to use as the source variable.
b In Service In, click the input variable you want to use as the target variable.
c Click on the Pipeline view toolbar.
c Click on the toolbar.
5 Click File > Save.
Notes:
If the variable types are incompatible and cannot be linked to one another, Designer
prevents you from creating a link between the variables and displays a message
stating that the operation is not allowed.
If you created a link to or from an array variable, you must specify which element in
the array you are linking to or from. For more information about array linking, see
“Linking to and from Array Variables in the Pipeline” on page 207.
If you want to place a condition on the execution of the link, see “Linking Variables
Conditionally” on page 213.
Do not link variables with different Object constraints. If you link variables with
different Object constraints and input/output validation is selected, the run‐time
result is undefined.
Tip! You can also use your mouse to link variables to one another. To do this, select the
source variable and drag your mouse to the appropriate target variable.
When a value is copied by reference, any changes you make to the value of the source
variable in subsequent flow steps affect the target variable. This is because the value of
the source variable is the value of the target variable. The target variable does not contain
a copy of the source variable value. If, in a later flow step, you used to assign a value
to the source variable, you would be changing the value of the target variable as well.
(The target variable references the value of the source variable.)
Related Topics
“Example of Copying By Reference” on page 202
“Preventing Pipeline Values from Being Overwritten” on page 203
The value of
String1 is set to
“original value”.
Document1 is linked to
Document2. After the link
executes, the value of
Document2 is a reference to
the contents of Document1.
Step 3: The value of String1 is changed to “modified” after the link executes
When this flow service executes, it returns the following results.
In Step 3, the value of the String1 in Document1 was set to “modified.” However, the
value of String1 in Document2 changed also. This is because in Step 2 of the flow service,
the value of Document1 was copied to Document2 by reference. Changes to the value of
Document1 in later flow steps also change the value of Document2.
After you link the source variable to a target variable, use the Drop modifier to drop
the source variable. Only the target variable will have the reference to the data. This
method ensures that the value of the target variable will not be overwritten in a
subsequent step, but does not increase the memory and time required to execute the
service.
Create a service that performs a copy by value. Insert this service (as an INVOKE step
or as a transformer) and link the variables to the service instead of linking them to
each other. (In the case of Document variables, you could create a Java service that
clones the IData object underlying the Document.) In situations where you link one
Document variable to another, using a “cloning” service would require less time than
linking the contents of a Document variable field by field.
You can only link a variable to another variable of the same primitive type. The
primitive type refers to the data type of the variable when all dimensionality is
removed. For example, the primitive type for a String List or a String Table would be
String. Two exceptions to this rule are the following:
Any variable can be linked to an Object or an Object List variable
An Object can be linked to any data type.
If there is a type mismatch between the Object or Object List and the other variable at
run time, Integration Server does not execute the link.
Object and Object List variables constrained with an assigned Java class should be
linked only to other Object and Object List variables of the same Java class or to
Object and Object List variables of unknown type. Although Designer permits a link
between constrained Objects with different Java classes, the run‐time result is
undefined. For more information about specifying Java classes for Objects, see “Java
Classes for Objects” on page 386.
When you link between scalar and array variables, you can specify which element of
the array variable you want to link to or from. Scalar variables are those that hold a
single value, such as String, Document, and Object. Array variables are those that hold
multiple values, such as String List, String Table, Document List, and Object List. For
example, you can link a String to the second element of a String List. Alternatively,
you can link the second element in a String List to a String.
When you link between scalar and array variables and you do not specify which
element in the array variable that you want to link to or from, Designer uses the
default behavior to determine the value of the target variable.
Related Topics
“Converting a String List to a Document List in the Pipeline” on page 205
“Converting Two String Lists to a Document List in the Pipeline” on page 206
“Default Pipeline Rules for Linking to and from Array Variables” on page 209
“Java Classes for Objects” on page 386
Tip! You can also convert a String List to a Document List (IData[ ] object) by invoking
the built‐in service pub.list:stringListToDocumentList. You can insert the service as an
INVOKE step or as a transformer. For more information about transformers, see
“Working with Transformers” on page 220. For more information about built‐in
services, see the webMethods Integration Server Built‐In Services Reference.
You can specify an index value when linking to or from an array variable
Note: Designer uses blue links in the Pipeline view to indicate that properties
(conditions or index values for arrays) have been applied to the link between
variables.
Related Topics
“Creating a Link Between Variables” on page 200
“Creating a Link to or from an Array Variable” on page 208
“Default Pipeline Rules for Linking to and from Array Variables” on page 209
At run time, the link (copy) fails if the source array index contains a null value or if
you specify an invalid source or target index (such as a letter or non‐numeric
character). Integration Server generates journal log messages (at debug level 6 or
higher) when links to or from array variables fail.
The following procedure explains how to link to or from an array variable.
1 Create a link between the variables using the procedure described in “Creating a Link
Between Variables” on page 200.
2 In Pipeline view, click the link that connects the variables.
Related Topics
“Linking to Document and Document List Variables” on page 204
“Creating a Link Between Variables” on page 200
value X value
Y value
Z value
X [empty] X
Y
Z
X [empty] X
Y Y
Z Z
X A X
Y B Y
Z C Z
No link occurs.
V A
W B
X C
Y
Z
A source variable that is the child of a Document List is treated like an array because
there is one value of the source variable for each Document in the Document List. For
example:
DocumentList1 StringList1
String1
Where the value of DocumentList1 is... Then the value of StringList1 is…
DocumentList1 StringList1
a
DocumentList1 [0] b
c
String1
a
DocumentList1 [1]
String1 b
DocumentList1 [2]
String1 c
1 In the flow service editor, select the INVOKE or MAP step containing the variables
with the link you want to delete.
2 In the Pipeline view, select the link that you want to delete.
3 Click Edit > Delete.
Tip! You can also delete a link by selecting it and then pressing the DELETE key.
A blue link indicates that a condition is applied to the link connecting the variables
Use the
Properties view
to view or create
a condition for
the link.
Designer uses a blue link in the Pipeline view to indicate that properties (that is,
conditions or index values for arrays) have been applied to a link between variables.
Note: You cannot add conditions to the links between implicitly linked variables.
Related Topics
“Linking Multiple Source Variables to a Target Variable” on page 214
“Applying a Condition to a Link” on page 214
Tip! If the conditions for links to the same target variable are not mutually exclusive,
consider using a flow service containing a BRANCH step instead. In BRANCH steps,
child steps are evaluated in a top to bottom sequence. Integration Server executes the
first child step that evaluates to true and skips the remaining child steps. For more
information about the BRANCH step, see “The BRANCH Step” on page 166.
Related Topics
“Linking Variables Conditionally” on page 213
“Applying a Condition to a Link” on page 214
1 Create a link between the variables using the procedure described in “Creating a Link
Between Variables” on page 200.
2 In Pipeline view, click the link that connects the variables.
3 In the Properties view, set the Evaluate copy condition property to True.
4 In the Copy condition property text box, type the condition you want to place on the
link.
For information about the syntax used in conditions, see the webMethods Developer
User’s Guide.
Related Topics
“Disabling and Enabling Conditions” on page 250
“Creating a Link Between Variables” on page 200
By using to assign a value to a variable, you instruct the server to write a specific
value to that variable at run time. This action occurs just before the selected service is
executed (if you attach the modifier to a variable in Service In) or immediately after the
selected service is executed (if you attach the modifier to a variable in Pipeline Out).
Related Topics
“Setting a Value for a Pipeline Variable” on page 215
“Copying Assigned Values Between Pipeline Variables” on page 216
When you set values for constrained Objects, Designer automatically validates the
values. If the value is not of the type specified by the Object constraint, Designer
displays a message identifying the variable and the expected type.
You cannot set values for unconstrained Objects (Objects of unknown type) or for
Objects constrained as a byte [ ].
You can format String values by specifying one or more pipeline variables in
conjunction with a literal value. For example, if you specified (%areaCode%) %Phone%,
the resulting String would be formatted to include the parentheses and space. If you
specified %firstName% %initial%. %lastName% , the period and spacing would be
included in the value.
1 In the flow service editor, select the INVOKE or MAP step containing the variable
you want to alter.
2 In Pipeline view, select the variable to which you want to assign a value.
3 Click on the toolbar.
4 In the Input for dialog box, specify the value you want to assign to this variable.
If you want to assign a literal value to the variable, type that value. The value
must be of the same data type as the variable.
If you want to derive the value from a String variable in the pipeline, type the
name of that variable enclosed in % symbols (for example, %Phone%). Then select
the Perform variable substitution check box.
5 If you want Integration Server to use the specified value only if the variable does not
contain a value at run time, clear the Overwrite pipeline value check box. (If you select
this check box, Integration Server will always apply the specified value.)
You can only copy and paste set values between variables if the target variable has the
same structure as the source variable or has no defined structure. For example, you
can copy the set value of a String List variable with length 3 to another String List
variable only if the target String List also has length 3 or has an undefined length (no
defined structure).
If you are copying a set value between Document variables, the source Document
variable and the target Document variable must have the same structure or the target
Document variable must have no structure defined. For example, if the source
Document variable contains three String variables named city, state, and zip as
children, the target Document variable must have three String variables named city,
state, and zip as children.
1 In the flow service editor, select the INVOKE or MAP step containing the variable
with the value you want to copy and paste.
2 In the Pipeline view, select the assigned value icon that you want to copy.
3 Right‐click and select Copy.
4 Select the variable to which you want to assign the copied value, right‐click and select
Paste.
Important! Once you drop a variable from the pipeline, it is no longer available to
subsequent services in the flow. Do not drop a variable unless you are sure the
variable is not used by services invoked after the point where you drop it.
At run time, Integration Server removes a dropped variable from the pipeline just before
it executes the selected service (if you drop a variable in Pipeline In) or immediately after it
executes the selected service (if you drop a variable in Pipeline Out).
If you drop a linked variable from Pipeline In, Integration Server executes the link before it
drops the variable. However, Integration Server server does not link a null value to the
destination variable.
Related Topics
“Dropping a Pipeline Variable” on page 218
1 In the flow service editor, select the INVOKE or MAP step whose pipeline variables
you want to drop.
2 In the Pipeline view, select the variable that you want to drop.
3 Click on the toolbar.
Related Topics
“Adding a Pipeline Variable” on page 218
“Copying Assigned Values Between Pipeline Variables” on page 216
You might want to drop a variable immediately after adding it if a service produces a
variable that is not declared in the service input or output parameters. The variable
will not appear in the Pipeline view if it is not an input or output parameter. By
adding and then immediately dropping the variable, you can delete the variable if it
does exist in the pipeline.
1 In the flow service editor, select the INVOKE or MAP step that represents the stage of
the pipeline at which you want to add a new variable.
2 Do one of the following in the Pipeline view:
Select the point in the pipeline where you want to add the new variable (Pipeline
In, Service In, Service Out, or Pipeline Out). Click and select the type of variable
that you want to create.
In the Palette view that is part of Pipeline view, under Variables, select the
variable that you want to add and then select the point in the pipeline where you
want to add it. The Palette view is located within the Pipeline view. Click to
show the Palette view. Click to hide the Palette view.
3 Type a name for the variable and press ENTER.
4 With the variable selected, set variable properties and apply constraints using the
Properties view.
5 If the variable is a Document or a Document List, repeat step 2 to define its member
variables. Then use to indent each member variable beneath the Document or
Document List variable.
6 Do one of the following with the new variable:
Link the variable to another variable.
Assign a value to the variable using on the Pipeline view toolbar.
Drop the variable.
Important! If you do link the variable, assign a value to it, or drop it, Designer
considers it extraneous to the flow and automatically clears the variable when it
refreshes the Pipeline view.
Related Topics
“Assigning Properties to Variables” on page 302
Tip! You can create a flow service that uses transformers to convert data between
document formats (such as an IDOC to an XML document or RosettaNet PIP to a
proprietary format). You could then invoke this service in other flow services each
time you need to convert between the specific document formats before you begin
processing data.
Related Topics
“Assigning Properties to Variables” on page 302
“Transformer Properties” on page 356
“Using Built‐In Services as Transformers” on page 221
“Inserting a Transformer” on page 221
“Linking Variables to a Transformer” on page 223
“Transformers and Array Variables” on page 224
“Validating Input and Output for Transformers” on page 225
“Validating Input and Output for Transformers” on page 225
“Copying Transformers” on page 226
“Renaming Transformers” on page 227
“Debugging Transformers” on page 228
pub.date Transform time and date information from one format to another.
pub.list Transform a String List to a Document List (IData[ ] object) and
append items to a Document List (IData[ ] object) or a String List.
pub.math Perform simple arithmetic calculations (add, subtract, multiply, and
divide) on integers and decimals contained in String variables.
pub.string Transform String values in various ways (for example, pad,
substring, concat, replace through a lookup table).
For more information about built‐in services, see the webMethods Integration Server Built‐
In Services Reference.
Related Topics
“Working with Transformers” on page 220
Inserting a Transformer
When inserting transformers, keep the following points in mind:
Transformers can only be inserted in a MAP step.
Any service can be used as a transformer, including flow services, C services, and
Java services.
The transformers you insert into a MAP step operate on the same set of pipeline data.
The output of one transformer cannot be used as the input of another transformer in
the same MAP step.
Transformers in a MAP step are independent of each other and do not execute in a
specific order. When inserting transformers, assume that Integration Server executes
the transformers concurrently at run time.
In a MAP step, Designer only displays the links between pipeline variables and
transformers. Designer does not display any implicit linking for a MAP step.
To insert a transformer
1 In the flow service editor, select the MAP step in which you want to insert a
transformer.
2 In the Pipeline view, do one of the following:
Service The fully qualified name of the service that will be invoked at
run time as a transformer. When you insert a transformer,
Designer automatically assigns the name of that service to the
service property. If you want to change the service that is
invoked by a transformer, specify the service’s fully qualified
name in the folderName:serviceName format or click to select
a service from a list.
Validate input Whether Integration Server validates the input to the
transformer against the signature of the service. Select True to
validate the input of the transformer, otherwise select False.
Validate output Whether Integration Server validates the output of the
transformer against the signature of the service. Select True to
validate the output of the transformer, otherwise select False.
4 Link pipeline variables to the transformer variables. See “Linking Variables to a
Transformer” on page 223.
Related Topics
“Validating Input and Output for Transformers” on page 225.
“Debugging Transformers” on page 228.
“Transformer Properties” on page 356
You can assign a value to a transformer input value using on the Pipeline view
toolbar.
To prevent the Pipeline view from becoming cluttered, the Pipeline view may not
display all the links between the transformer and the pipeline variables. To view all
the links, double‐click the transformer or click next to the transformer name.
Use the following procedure to link pipeline and transformer variables when the
transformer is not expanded. If the transformer is expanded (that is, you can see all of the
input and output variables for the transformer), you link variables just as you would for
an INVOKE step.
1 To create a link between a Pipeline In variable and a transformer variable, do the
following:
a In Pipeline In, select the variable you want to use as input to the transformer and
drag your mouse to the collapsed transformer. Designer displays the Link dialog
box.
b In the Link To list, select the transformer variable to which you want to link the
Pipeline In variable.
In the Link To list, Designer displays the phrase “has already been chosen” next to
variables that are already linked to other variables transformer.
c Repeat steps a and b for each transformer input variable you want to link to a
pipeline variable.
2 To create a link between a transformer output variable and a Pipeline Out variable, do
the following:
a Select the collapsed transformer and drag your mouse to the variable in Pipeline
Out to which you want to link the transformer variable. Designer displays the Link
dialog box.
b In the Link From list, select the transformer variable that you want to link to the
selected Pipeline Out variable.
c Repeat steps a and b for each output variable produced by the transformer.
To solve this, you can either:
Change the service invoked by the transformer to accept arrays as data, or
Create a flow service in which a LOOP step loops over the array variable. Then, (in
the same flow service) invoke the service you originally wanted to use as a
transformer, and make that INVOKE step a child of the LOOP. Finally, insert the
resulting flow service as a transformer in the MAP.
Of the two options, changing the service to accept arrays as data results in faster
execution of flow services.
1 In the flow service editor, select the MAP step containing the transformer you want to
validate.
2 In the Pipeline view, under Transformers, select the transformer for which you want to
specifying input/output validation.
3 In the Properties view, do the following:
If you want Integration Server to perform input validation, set the Validate input
property to True.
If you want Integration Server to perform input validation, set the Validate output
property to True.
Related Topics
“Applying Constraints to Variables” on page 304
“Declaring a Service Signature” on page 130
Copying Transformers
You may want to use the same transformer more than once in a MAP step. For example,
you might want to convert all the dates in a purchase order to the same format. Instead of
inserting the service repeatedly, you can copy and paste the transformer service.
You can copy transformers between MAP steps in the same flow or MAP steps in
different flow services.
You can copy multiple transformers at a time.
Copying a transformer does not copy the links between transformer variables and
pipeline variables or any values you might have assigned to transformer variables
using .
To copy a transformer
1 In the flow service editor, select the MAP step containing the transformer service you
want to copy.
2 In the Pipeline view, under Transformers, select the transformer that you want to copy.
Right‐click and select Copy.
3 Do one of the following:
To paste the transformer in the same MAP step, right‐ click anywhere under
Transformers and select Paste.
To paste the transformer in another MAP step, select that MAP step. In Pipeline
view, right‐ click anywhere under Transformers and select Paste.
4 Link the input and output variables of the transformer. See “Linking Variables to a
Transformer” on page 223.
Renaming Transformers
If Integration Server displays the message “Transformer not found” when you try to
expand a transformer or when you point the mouse to the transformer, then the service
referenced by the transformer has been renamed, moved, or deleted. You need to change
the Service property of the transformer so that the transformer points to the moved, or
renamed service.
If the service referenced by the transformer has been deleted, you may want to delete the
transformer.
Tip! You can enable safeguards so that you do not inadvertently affect or break other
services when you move, rename, or delete a service. For more information, see
“Setting Dependency Checking Safe Guards” on page 39.
To rename a transformer
1 Use Package Navigator view to determine the new name or location of the service
called by the transformer.
2 Open the flow service containing the transformer you want to rename.
3 In the flow service editor, select the MAP step containing the transformer. Then, in
Pipeline view, select the transformer you want to rename.
4 In the Service property in the Properties view, delete the old name and type in the
service’s new fully qualified name in the folderName:serviceName format, or click to
select a service from a list.
Debugging Transformers
When you debug a flow service, you can use the following debugging techniques with
transformers:
Step into a MAP step and step through the execution of each transformer. For more
information about stepping into and out of a MAP step, see “Stepping Into and Out of
a MAP Step” on page 243.
Set a breakpoint on a transformer so that service execution stops when the
transformer is encountered. For more information about setting breakpoints, see
“Setting and Removing Breakpoints” on page 246.
Disable a transformer so that it does not execute at run time. For more information
about disabling transformers, see “Disabling Flow Steps, Transformers, and
Conditions” on page 249.
Designer provides a range of tools to assist you during the debugging phase of
development. For example, you can:
Run services, specify their input values, and inspect their results.
Examine the call stack and the pipeline when an error occurs.
Execute services in debug mode, a mode that lets you monitor a flow service’s
execution path, execute its steps one at a time, specify points where you want to halt
execution, and examine and modify the pipeline before and after executing
individual flow service steps.
Related Topics
“Using Launch Configurations while Running and Debugging Services” on page 229
“Supplying Input Values to a Service” on page 232
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Stepping Through Flow Services” on page 241
“Using Breakpoints” on page 245
“Disabling Flow Steps, Transformers, and Conditions” on page 249
“Modifying the Pipeline while Debugging” on page 251
“Saving and Restoring the Pipeline while Debugging” on page 254
“Viewing Service Results” on page 257
Designer requires launch configurations to run and debug service. However, if a service
does not have an associated launch configuration and you bypass the Run Configuration
or Debug Configuration dialog boxes when running or debugging the service, Designer
creates one on the fly and saves it in your workspace. You can use this configuration from
one session to the next. In fact, Designer reuses this configuration every time you run or
debug the service without creating a launch configuration.
By default, Designer saves launch configurations in your workspace. However, you
might want to share launch configurations with other developers. You can specify that
Designer save a launch configuration to a shared file. On the Common tab in the Run
Configurations dialog box or Debug Configurations dialog box, select the Shared file
option and provide a workspace location in which to save the file.
You might consider creating a launch configuration for each set of data that you routinely
use to debug your service. This will provide you with a ready‐made set of test cases
against which to verify the service when it is modified by you or other developers in the
future. Many sites establish a workspace project directory just for holding sets of test data
that they generate in this manner.
Related Topics
“Creating a Launch Configuration” on page 230
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
1 In Designer
Run > Run Configurations
–or–
Run > Debug Configurations
6 If you want Designer to stop at the first flow step when executing the launch
configuration in a debug session, select the Stop at first flow step check box.
If you clear the Stop at first flow step check box, during a debug session, Designer
executes the service until the service ends or hits a breakpoint. If you want to debug
the service by stepping through one flow step at a time, select the Stop at first flow step
check box.
7 If you want Designer to pass the service an IData that contains input values for each
input variable in the service signature, do the following:
a On the Input tab, select Use IData.
b Specify the input values to save with the launch configuration by doing one of the
following:
Type the input value for each service input parameter. For more information
about providing input values, see “Entering Input for a Service” on page 232.
To load the input values from a file, click Load to locate and select the file
containing the input values. If Designer cannot parse the input data, it
displays an error message indicating why it cannot load the data. For more
information about loading input values from a file, see “Loading Input
Values” on page 235.
Designer validates the provided input values. If provided values do not match the
input parameter data type, Designer displays a message to that effect. You cannot
use the launch configuration to run or debug the service if the provided input
does not mach the defined data type.
c If you want to pass empty variables (variables that have no value) to the service,
select the Include empty values for String Type check box. When you select this option,
empty strings are passed with a zero‐length value. If you do not select this option,
Designer excludes empty value from the IData it passes to the service as input.
d If you want Designer to give the user executing the launch configuration the
option of providing different input values than those saved with the launch
configuration, select the Prompt for data at launch check box. If you clear this check
box, Designer passes the service the same set of data every time the launch
configuration executes. Designer does not give the user the opportunity to change
the input values when the launch configuration executes
8 If you want Designer to send the flow service an XML document a input, do the
following:
a Select Use XML.
b In the Location field, enter the path and file name of the XML document to use as
input or click Browse to locate and select the XML file.
Designer displays the contents of the XML document on the Input tab.
9 If you selected the Use IData option and you want to save the input values that you
have entered, click Save. Input values that you save can be recalled and reused in later
tests.
10 Click Apply.
11 If you want execute the launch configuration in run or debug mode, click the
appropriate button. Otherwise, click Close.
Related Topics
“Supplying Input Values to a Service” on page 232
“Saving Input Values” on page 234
“Loading Input Values” on page 235
“Saving the Pipeline while Debugging” on page 254
“Saving the Service Results” on page 260
Related Topics
“Entering Input for a Service” on page 232
“Saving Input Values” on page 234
“Loading Input Values” on page 235
“Creating a Launch Configuration” on page 230
Object variables without constraints are noted as “Not editable by user.”
If your service expects Object variables that do not have constraints assigned or an
Object defined as a byte[ ], you will not be able to enter those values as input. To test
these values in a service, you must also create a service that generates input values for
your service. Then you need to construct a test harness (a flow service that executes
both the service that produces the test data and the service you want to debug) and
use that harness to test your service.
When you execute a launch configuration, Designer prompts you for input values
only if the Prompt for data at launch check box is selected in the launch configuration. If
this check box is cleared, Designer passes the service the same set of data every time
the launch configuration executes. Designer does not give you the opportunity to
change the input values when the launch configuration executes
Designer validates the provided input values. If provided values do not match the
input parameter data type, Designer displays a message to that effect. You cannot use
the launch configuration to run or debug the service if the provided input does not
mach the defined data type.
1 Open a launch configuration for the service or run or debug the service as described
in “Creating a Launch Configuration” on page 230, “Running a Flow Service” on
page 235, or “About Debugging Flow Services” on page 236.
2 To load input values from a file, do one of the following:
If you are working with a launch configuration, on the Input tab click Load.
If you are running or debugging a service, in the Enter Input for serviceName dialog
box, click Load Inputs.
3 On the Input tab (if you are creating a launch configuration) or in the Enter Input for
serviceName dialog box (if you are running or debugging the service), enter a value for
each input variable.
If the service takes complex variables such as String lists, String tables, documents, or
document lists, use the following buttons to specify the variable’s individual
elements.:
Add a row to the variable.
Insert a blank row above the currently selected row.
Add a column to the variable.
Delete the selected row from the variable.
Delete the selected column from the variable.
Related Topics
“Saving Input Values” on page 234
“Loading Input Values” on page 235
“Creating a Launch Configuration” on page 230
“Running a Flow Service” on page 235
“Debugging a Flow Service” on page 240
Related Topics
“Entering Input for a Service” on page 232
“Loading Input Values” on page 235
“Creating a Launch Configuration” on page 230
“Running a Flow Service” on page 235
“Debugging a Flow Service” on page 240
“Modifying the Pipeline while Debugging” on page 251
“Saving and Restoring the Pipeline while Debugging” on page 254
Related Topics
“Supplying Input Values to a Service” on page 232
“Entering Input for a Service” on page 232
“Saving Input Values” on page 234
“Modifying the Pipeline while Debugging” on page 251
“Saving and Restoring the Pipeline while Debugging” on page 254
When you run a service, you can select the launch configuration that Designer uses to
runt the service. If a launch configuration does not exist for a service, Designer creates a
launch configuration and immediately prompts you for input values and then runs the
service. Designer saves the launch configuration in your workspace.
Note: If a service expects an XML document as input, you must create a launch
configuration and debug the service.
To run a service
1 In Package Navigator view, select the service you want to run.
2 In Designer
Run > Run As > Run Service
3 If multiple launch configurations exist for the service, use the Select Launch
Configuration dialog box to select the launch configuration that you want Designer to
use to run the service.
4 If the launch configuration is set up to prompt the user for input values or there is no
launch configuration, in the Enter Input for serviceName dialog box, specify input values
for the service. Click OK. For more information about supplying input values, see
“Entering Input for a Service” on page 232.
Designer runs the service and displays the results in the Service Result view. If the
launch configuration specifies an XML file to use as input, Designer submits the file
to the server, which parses it into a node object and then passes it to the selected
service.
Related Topics
“Creating a Launch Configuration” on page 230
“Entering Input for a Service” on page 232
“Debugging a Flow Service” on page 240
“Viewing Service Results” on page 257
Related Topics
“About Debug Sessions” on page 237
“About Debug Perspective” on page 238
“About Debug View” on page 239
“Debugging a Flow Service” on page 240
Related Topics
“About Debugging Flow Services” on page 236
“About Debug Perspective” on page 238
“About Debug View” on page 239
“Stepping Through Flow Services” on page 241
“Using Breakpoints” on page 245
View Description
Debug view Displays the debug sessions and contains tools to
manage the debugging. When debugging a service in
Designer, the Debug view displays the stack frames
associated with each launch configuration. Debug view
contains commands to start, stop, and step through a
service.
Breakpoints view Displays all the breakpoints currently set in your
workspace.
Service Result view Displays the results of running or debugging a service
via a launch configuration in Designer.
Variables view Displays information about the set of variables for the
selected stack frame in Debug view. When using
Designer to debug a service, Variables view displays the
contents of the pipeline prior to the execution of the
flow step in the selected stack frame in Debug view. The
details pane in Variables view displays detailed
information about the selected variable. You can edit the
variable value in the detail pane. You can save or modify
the contents of Variables view before resuming
execution. Variables view will be blank after the service
executes to completion.
Related Topics
“About Debugging Flow Services” on page 236
“About Debug Sessions” on page 237
“About Debug View” on page 239
“Using Breakpoints” on page 245
“Modifying the Pipeline while Debugging” on page 251
Related Topics
“About Debugging Flow Services” on page 236
“About Debug Sessions” on page 237
“About Debug Perspective” on page 238
1 In Package Navigator view, select the service you want to debug.
2 In Designer
Run > Debug As > Debug Flow Service
3 If multiple launch configurations exist for the service, use the Select Launch
Configuration dialog box to select the launch configuration that you want Designer to
use to debug the service.
4 If the launch configuration is set up to prompt the user for input values or there is no
launch configuration, in the Enter Input for serviceName dialog box, specify input values
for the service. Click OK. For more information about supplying input values, see
“Entering Input for a Service” on page 232.
Designer does one of the following:
If the launch configuration specifies that execution should stop at the first flow
step when debugging, Designer prompts you to switch to the Debug perspective.
Designer suspends flow service execution immediately before executing the first
flow step. For more information about stepping through a flow service, see
“Stepping Through Flow Services” on page 241.
If you are not using an existing launch configuration to debug the service (that is,
Designer created one for you automatically), Designer suspends flow service
execution immediately before executing the first flow step.
If the launch configuration does not stop a the first flow step, Designer executes
the flow service until a breakpoint hit occurs. Designer prompts you to switch to
the Debug perspective. To resume service execution after Designer encounters a
breakpoint, select Run > Resume.
If the flow service does not stop at the first flow step and does not contain a
breakpoint, Designer executes the flow service to completion.
Related Topics
“Entering Input for a Service” on page 232
“About Debug Sessions” on page 237
“Stepping Through Flow Services” on page 241
“Using Breakpoints” on page 245
“Disabling Flow Steps, Transformers, and Conditions” on page 249
“Modifying the Pipeline while Debugging” on page 251
Related Topics
“Debugging a Flow Service” on page 240
“Stepping Through a Flow Service” on page 242
“Stepping Into and Out of a Child Service” on page 242
“Stepping Into and Out of a MAP Step” on page 243
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In Debug view, select the flow step in the debug session for the service that you want
to step through.
Related Topics
“Debugging a Flow Service” on page 240
“Stepping Into and Out of a Child Service” on page 242
“Stepping Into and Out of a MAP Step” on page 243
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In Debug view, step to the flow step that invokes the child flow service.
Related Topics
“Debugging a Flow Service” on page 240
“Stepping Through a Flow Service” on page 242
“Stepping Into and Out of a MAP Step” on page 243
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In Debug view, step to the MAP flow step.
4 If the transformer is a flow service and you want to step into the transformer, do the
following:
Related Topics
“Debugging a Flow Service” on page 240
“Stepping Through a Flow Service” on page 242
“Stepping Into and Out of a Child Service” on page 242
“Working with Transformers” on page 220
Using Breakpoints
Within Designer, a breakpoint is a point in a flow service where you want processing to
halt when you debug that flow service. Breakpoints can help you isolate a section of code
or examine data values at a particular point in the execution path. For example, you
might want to set a pair of breakpoints before and after a particular segment of a flow so
that you can examine the pipeline in the Variables view before and after that segment
executes.
When you execute a service that contains a breakpoint or call a child service that contains
a breakpoint, the service is executed up to, but not including, the designated breakpoint
step. At this point, processing stops and the debug session suspends. To resume
processing, you can execute one of the step commands or select Run > Resume. After you
resume the debug session, Designer stops at any subsequent breakpoints.
When working with breakpoints, keep the following points in mind:
Breakpoints are persistent in Designer.
Breakpoints are also local to your Designer workspace. Breakpoints that you set in
your workspace do not affect other developers or users who might be executing or
debugging services in which you have set breakpoints.
Breakpoints are only recognized when you execute a service in debug session.
Breakpoints are ignored when you run a service.
To set a breakpoint in a service, you must have Read access to a service. However, if
the service is invoked within another service (a top‐level service) to which you have
Read access, you can set a breakpoint on the service within the top‐level service.
When you delete a flow step or transformer that contains a breakpoint, Designer
removes the breakpoint.
You can use breakpoints as markers in your flow services. To do this, assign a
breakpoint to the flow step that you want to use as a marker. In Breakpoints view,
you can quickly go to the flow step by right‐clicking the breakpoint and selecting Go
to File or by double‐clicking the breakpoint.
You can use Breakpoints view to manage your existing breakpoints.
Related Topics
“Breakpoint States” on page 246
“Setting and Removing Breakpoints” on page 246
“Enabling and Disabling Breakpoints” on page 248
“Skipping Breakpoints” on page 248
Breakpoint States
Breakpoints can have the following states.
Related Topics
“Using Breakpoints” on page 245
“Setting and Removing Breakpoints on Flow Step” on page 246
“Setting or Removing Breakpoints on a Transformer” on page 247
“Enabling and Disabling Breakpoints” on page 248
“Skipping Breakpoints” on page 248
Open the flow service in which you want to set a breakpoint and do one of the
following:
On the Tree tab, right‐click the step at which you want to set the breakpoint and
select Toggle Breakpoint. Designer displays or removes in the vertical margin
next to the flow step.
On the Tree tab, right‐click in the vertical margin next to the flow step at which
you want to set a breakpoint and select Toggle Breakpoint. Alternatively, double‐
click in the margin next to the flow step. Designer displays or removes in the
vertical margin next to the flow step.
On the Layout tab, double‐click the connection line in front of the flow step at
which you want to set a breakpoint and select Toggle Breakpoint. Designer displays
or removes right before the flow step.
On the Layout tab, select the connection line in front of the flow step at which you
want to set a breakpoint. Right‐click and select Toggle Breakpoint. Designer
displays or removes right before the flow step.
Related Topics
“Using Breakpoints” on page 245
“Breakpoint States” on page 246
“Setting or Removing Breakpoints on a Transformer” on page 247
“Enabling and Disabling Breakpoints” on page 248
“Skipping Breakpoints” on page 248
1 Open the flow service in which you want to set a breakpoint.
2 In the editor, select the MAP step containing the transformer that will function as the
breakpoint.
3 In Pipeline view, right‐click the name of the transformer that will function as the
breakpoint and select Toggle Breakpoint. Designer displays or removes next to the
transformer name.
Related Topics
“Using Breakpoints” on page 245
“Breakpoint States” on page 246
“Setting and Removing Breakpoints on Flow Step” on page 246
“Enabling and Disabling Breakpoints” on page 248
“Skipping Breakpoints” on page 248
1 Open the flow service and navigate to the breakpoint. If a breakpoint is set on a
transformer, select the MAP step and open Pipeline view.
2 Do one of the following:
To disable a breakpoint, right‐click the breakpoint and select Disable Breakpoint.
To enable a breakpoint, right‐click the breakpoint and select Enable Breakpoint.
Note: You can also enable and disable breakpoints using Breakpoints view.
Related Topics
“Using Breakpoints” on page 245
“Breakpoint States” on page 246
“Setting and Removing Breakpoints on Flow Step” on page 246
“Setting and Removing Breakpoints on Flow Step” on page 246
“Skipping Breakpoints” on page 248
Skipping Breakpoints
You can use Designer to change the breakpoint state of all breakpoints to “skip”.
Designer does not execute breakpoints with a skip state regardless of whether the
breakpoint is enabled or disabled. Designer debugs services as if the breakpoints did not
exist or were disabled. By instructing Designer to skip all breakpoints, you can debug the
service without halting execution for a breakpoint without removing or changing the
enabled/disabled state of the breakpoint.
In Designer
Run > Skip All Breakpoints
Related Topics
“Using Breakpoints” on page 245
“Breakpoint States” on page 246
“Setting and Removing Breakpoints on Flow Step” on page 246
“Setting or Removing Breakpoints on a Transformer” on page 247
“Enabling and Disabling Breakpoints” on page 248
Related Topics
“Disabling and Enabling Flow Steps and Transformers” on page 249
“Disabling and Enabling Conditions” on page 250
The symbol appears next to disabled steps and transformers.
If you disable a parent step (for example, a LOOP or a BRANCH), Designer disables
its children automatically.
If you disable a MAP step, Designer disables the transformers in the MAP step
automatically.
Disabling a step or transformer removes a breakpoint hosted by that step or
transformer.
Important! The run‐time effect of disabling a step is the same as deleting it. Disabling a
key step or forgetting to re‐enable a disabled step or transformer can break the logic
of a service and/or cause the service to fail. Designer allows you to disable any step or
transformer in a flow service, but it is your responsibility to use this feature carefully.
1 Open the flow service that you want to edit.
2 Do one of the following:
In the editor select the step that you want disable or enable.
In the editor select the MAP step containing transformers that you want to disable
or enable.
3 Right‐click the step or transformer and do one of the following:
Select Disable Step to disable the step or transformer.
Select Enable Step to re‐enable the step or transformer.
Related Topics
“Disabling and Enabling Conditions” on page 250
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
The Pipeline view uses a blue link (line) to indicate that properties (such as conditions
and array indexes) have been applied to the link between variables. Designer retains the
blue color even when you disable the applied condition to remind you that properties
have been set.
1 Open the flow service that you want to edit.
2 In the editor, select the INVOKE or MAP step that contains the link with the
condition you want to disable or enable.
3 In the Pipeline view, select the link with the condition that you want to disable.
4 In the General category of the Properties view, do one of the following:
To disable the condition, set the Evaluate copy condition property to False.
To re‐enable the condition, set the Evaluate copy condition property to True.
Related Topics
“Disabling and Enabling Flow Steps and Transformers” on page 249
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
You can only modify or drop existing variables. You cannot add new variables to the
pipeline.
You can load an entirely different pipeline for Designer to pass to the next step in the
flow service.
You can save the contents of the pipeline to a file. You may want to save the results of
specific flow steps to a file to compare with other services or to use in later debug
sessions.
Related Topics
“Changing Variable Values” on page 252
“Dropping Variables” on page 253
“Saving the Pipeline while Debugging” on page 254
“Restoring the Pipeline while Debugging” on page 256
“About Debugging Flow Services” on page 236
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In the debug session, use the step command or a breakpoint to reach the step for
which you want to change variable values in the flow service.
3 In Variables view, right‐click the variable whose value you want to change and select
Change Value.
4 In the Input dialog box, enter a new value for the variable. Click OK.
5 Continue debugging the service using the step commands or selecting Run > Resume.
Note: You can also change a variable value by selecting the variable and then
modifying the value in the detail pane.
Related Topics
“Modifying the Pipeline while Debugging” on page 251
“Dropping Variables” on page 253
“Saving the Pipeline while Debugging” on page 254
“Restoring the Pipeline while Debugging” on page 256
“About Debugging Flow Services” on page 236
Dropping Variables
When dropping variables from the pipeline while debugging the service, keep the
following points in mind:
You can only modify the pipeline when a subsequent step in the service exists to
which to pass the pipeline values. You cannot modify the values of the pipeline after
the service ends. However, if you debug the service using the step commands, you
can modify the pipeline values for the next flow step in the service.
When drop variables from the pipeline, the changes only apply to the current
debugging session. The service is not permanently changed.
You can only drop existing variables. You cannot add new variables to the pipeline.
You can only change the pipeline for the top‐most stack frame in the debug session.
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In the debug session, use the step command or a breakpoint to reach the step for
which you want to drop a pipeline variable.
3 In Variables view, select the variable you want to drop from the pipeline and click
on the Variables view toolbar. Designer removes the variable from Variables view.
4 Continue debugging the service using the step commands or selecting Run > Resume.
Related Topics
“Modifying the Pipeline while Debugging” on page 251
“Changing Variable Values” on page 252
“Saving the Pipeline while Debugging” on page 254
“Restoring the Pipeline while Debugging” on page 256
“About Debugging Flow Services” on page 236
Related Topics
“Saving the Pipeline while Debugging” on page 254
“Restoring the Pipeline while Debugging” on page 256
“Modifying the Pipeline while Debugging” on page 251
When you save a pipeline, it is saved in a file in XML format. The file you create can be
used to:
Manually load the pipeline into Variables view while debugging a service.
Load a default set of input values when creating a launch configuration.
Load a set of input values into the Input dialog box when debugging a service with
Designer.
Dynamically load the pipeline at run time using the pub.flow:restorePipelineFromFile
service.
Related Topics
“Saving the Pipeline to a File while Debugging” on page 255
“Restoring the Pipeline while Debugging” on page 256
“Loading a Saved Pipeline” on page 256
“Modifying the Pipeline while Debugging” on page 251
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In the debug session, use the step command or a breakpoint to reach the step for
which you want to save the pipeline.
3 Do one of the following:
To save the pipeline to your local file system, click on the Variables view
toolbar. Specify a location and name for the file in the Save As dialog box. Click
Save.
To save the pipeline to the IntegrationServer_directory\pipeline directory on the
machine on which Integration Server reside, click on the Variables view
toolbar. In the Save Pipeline to serverName dialog box, specify the name for the file
containing the pipeline contents.
4 Continue debugging the service using the step commands or selecting Run > Resume.
Related Topics
“Saving the Pipeline while Debugging” on page 254
“Restoring the Pipeline while Debugging” on page 256
“Loading a Saved Pipeline” on page 256
“Modifying the Pipeline while Debugging” on page 251
Related Topics
“Loading a Saved Pipeline” on page 256
“Saving the Pipeline while Debugging” on page 254
“Saving the Pipeline to a File while Debugging” on page 255
“Modifying the Pipeline while Debugging” on page 251
1 Debug the service as described in “About Debugging Flow Services” on page 236.
2 In the debug session, use the step command or a breakpoint to reach the step for
which you want to load the saved pipeline.
3 Do one of the following:
To load the pipeline from your local file system, click on the Variables view
toolbar. In the Open dialog box, navigate to and select the file. Click Open.
To load the pipeline from the IntegrationServer_directory\pipeline directory on the
machine on which Integration Server reside, click on the Variables view
toolbar. In the Load IData from Server dialog box, specify the name for the file
containing the pipeline contents.
4 Continue debugging the service using the step commands or selecting Run > Resume.
Related Topics
“Restoring the Pipeline while Debugging” on page 256
“Saving the Pipeline while Debugging” on page 254
“Saving the Pipeline to a File while Debugging” on page 255
“Modifying the Pipeline while Debugging” on page 251
Important! If you use a launch configuration to debug a service and then later use the
same launch configuration, Designer uses one Service Result view for both executions
of the launch configuration. The results of the second launch configuration to
complete will overwrite the results of the first launch configuration.
Service Result view can contain up to three tabs:
Messages tab displays any messages from Designer about the launch configuration
and any exceptions thrown by the service during execution.
Call Stack tab identifies the flow step that generated the error and lists its antecedents.
Pipeline tab displays the contents of the pipeline at the time the service finished
executing.
Related Topics
“Messages Tab” on page 258
“Call Stack Tab” on page 258
“Pipeline Tab” on page 259
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Saving the Service Results” on page 260
“Restoring the Service Results” on page 261
Messages Tab
The Messages tab in the Service Result view displays the time the launch configuration
started and completed executing, the name and location of the launch configuration, and
any error and exception messages generated by Integration Server during service
execution. If you did not use a launch configuration when running or debugging the
service, Designer displays the name and location of the launch configuration it created to
execute the service.
Related Topics
“Viewing Service Results” on page 257
“Call Stack Tab” on page 258
“Pipeline Tab” on page 259
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Saving the Service Results” on page 260
“Restoring the Service Results” on page 261
You can go to the flow step that was execution when the error occurred by clicking on
the Service Result view. To view the service in Package Navigator view, right‐click the
service and select Show In > Navigator.
Related Topics
“Viewing Service Results” on page 257
“Messages Tab” on page 258
“Pipeline Tab” on page 259
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Saving the Service Results” on page 260
“Restoring the Service Results” on page 261
Pipeline Tab
The Pipeline tab in Service Result view contains the contents of the pipeline after the
service finishes executing.
Keep the following points in mind when examining the Pipeline tab in Service Result
view.
The Pipeline tab shows all variables placed in the pipeline by the service, not just
those that were declared in the service’s input/output parameters.
Variables that a service explicitly drops from the pipeline do not appear on the
Pipeline tab.
When you select a variable in the Pipeline tab, Designer displays details about the
variable value in the details panel in the lower half of the Pipeline tab. For array
variables, Designer displays the index number and position for each item in the array.
You can copy and paste values from the details panel in the Pipeline tab.
You can browse the contents of the Pipeline tab, but you cannot edit it directly.
However, you can edit the contents of the pipeline while debugging a service. For
more information, see “Modifying the Pipeline while Debugging” on page 251.
You can save the contents of the Pipeline tab to a file and use that file to restore the
pipeline at a later point. For additional information about saving and restoring the
contents of the Pipeline tab in the Service Result view, see “Saving the Service
Results” on page 260 and “Restoring the Service Results” on page 261.
When a failure occurs within a Java service, the Pipeline tab represents the state of the
pipeline at the point when that Java service was initially called. If the Java service
made changes to these values before throwing the exception, those changes will note
be reflected on the Pipeline tab.
If you run a service and an error occurs, results are not displayed in the Pipeline tab.
Variables whose object types are not directly supported by Designer will appear in
the Pipeline tab, but because Designer cannot render the values of such objects, a
value does not appear in the Value column. Instead, the Value column displays the
object’s Java class message.
Variables that contain com.wm.util.Table objects appear as document lists in the Pipeline
tab.
Related Topics
“Viewing Service Results” on page 257
“Messages Tab” on page 258
“Call Stack Tab” on page 258
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Saving the Service Results” on page 260
“Restoring the Service Results” on page 261
On the Pipeline tab in Service Result view, do one of the following:
Click... To...
Save the pipeline to your local file system.
Specify a location and name for the file in the Save As dialog box.
Click Save.
Save the pipeline to IntegrationServer_directory\pipeline
directory on the machine on which Integration Server resides.
In the Save Pipeline to serverName dialog box, specify the name for
the file containing the pipeline contents.
Related Topics
“Viewing Service Results” on page 257
“Messages Tab” on page 258
“Call Stack Tab” on page 258
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Restoring the Service Results” on page 261
On the Pipeline tab in Service Result view, do one of the following:
Click... To...
Restore the pipeline from a file in your local file system.
In the Open dialog box, navigate to and select the file. Click Open.
To restore the pipeline from the
IntegrationServer_directory\pipeline directory on the machine on
which Integration Server resides.
In the Restore Pipeline from serverName dialog box, specify the
name for the file containing the pipeline contents.
Related Topics
“Viewing Service Results” on page 257
“Messages Tab” on page 258
“Call Stack Tab” on page 258
“Running a Flow Service” on page 235
“About Debugging Flow Services” on page 236
“Saving the Service Results” on page 260
An IS document type contains a set of fields used to define the structure and type of data
in a document (IData object). You can use an IS document type to specify input or output
parameters for a service or specification. You can also use an IS document type to build a
document or document list field and as the blueprint for pipeline validation and
document (IData object) validation.
IS document types can provide the following benefits:
Using an IS document type as the input or output signature for a service can reduce
the effort required to build a flow.
Using an IS document type to build document or document list fields can reduce the
effort needed to declare input or output parameters or the effort/time needed to build
other document fields.
IS document types improve accuracy, because there is less opportunity to introduce a
typing error typing field names.
IS document types make future changes easier to implement, because you can make a
change in one place (the IS document type) rather than everywhere the IS document type
is used.
Related Topics
“Creating a Document Type” on page 263
“Working with Publishable Document Types” on page 272
“Editing Document Types” on page 285
“Deleting Publishable Document Types” on page 286
“Synchronizing Publishable Document Types” on page 287
“Testing Publishable Document Types” on page 295
“About Universal Names and Document Types” on page 299
Note: In webMethods Developer, you could create a document type from a Broker
document type. This functionality is not available in Designer. If you want to create a
document type, specifically a publishable document type, from a Broker document
type, use webMethods Developer.
Related Topics
“Creating an Empty IS Document Type” on page 264
“Creating an IS Document Type from an XML Document, DTD, or XML Schema” on
page 265
1 In Designer
File > New > Document Type
2 In the New Document Type dialog box, select the folder in which you want to save
the IS document type.
3 In the Element Name field, type a name for the IS document type using any
combination of letters, numbers, and/or the underscore character. For information
about restricted characters, see “About Element Names” on page 34.
4 Click Finish.
Integration Server generates an IS document type and Designer displays it in the
Package Navigator view.
Related Topics
“Adding Fields to an IS Document Type” on page 265
“Creating a Document Type” on page 263
1 In Package Navigator view, double‐click the document type to which you want to
add fields.
The document type opens in the Document Type Editor window.
2 Drag the document type field that you want to define from the Palette to the
document type tab in the editor.
3 Type the name of the field and then press ENTER.
Note: Designer prevents the insertion of fields named _env in an IS document
type. For details about the _env field, see “About the Envelope Field” on
page 277.
4 With the field selected, set field properties and apply constraints in the Properties
view (optional).
5 If the field is a document or a document list, repeat steps 2–4 to define and set the
properties and constraints for each of its members. Use to indent each member
field beneath the document or document list field.
6 Select File > Save.
Note: Designer displays small symbols next to a field icon to indicate validation
constraints. Designer uses to indicate an optional field. Designer uses the ‡ symbol
to denote a field with a content constraint. For information about applying
constraints to fields, see “Applying Constraints to Variables” on page 304.
Related Topics
“Assigning Properties to Variables” on page 302
“Applying Constraints to Variables” on page 304
attributes, and data types defined in the XML Schema or DTD. The IS document type,
which displays the fields and structure of the source document, uses links to the IS
schema to obtain content type information about named simple types.
When creating a field from an attribute declaration, Integration Server inserts the @
symbol at the beginning of the field name. For example, an attribute named
myAttribute in the source file corresponds to a field named @myAttribute in the IS
document type.
Related Topics
“Creating an IS Document Type from an XML Document” on page 266
“Creating an IS Document Type from a DTD” on page 267
“Creating an IS Document Type from an XML Schema” on page 268
“Creating a Document Type” on page 263
1 In Designer
File > New > Document Type
2 In the New Document Type dialog box, select the folder in which you want to save
the IS document type.
3 In the Element Name field, type a name for the IS document type using any
combination of letters, numbers, and/or the underscore character. For information
about restricted characters, see “About Element Names” on page 34.
4 Click Next.
5 Under Select a source, select XML.
6 In the Enter the URL or select a local file box, do one of the following:
If you want to base the IS document type on a file that resides on the Internet,
type the URL of the resource. (The URL you specify must begin with http: or
https:.)
If you want to base the IS document type on a file that resides on your local file
system, type in the path and file name, or click the browse button to navigate to
and select the file.
7 Click Finish. Integration Server generates the IS document type using the XML
document you specified and Designer displays it in the Package Navigator view.
The IS document type is saved on Integration Server. If you want to add or edit fields
in the IS document type, see “Creating an Empty IS Document Type” on page 264.
Related Topics
“Creating an Empty IS Document Type” on page 264
“Creating an IS Document Type from an XML Document, DTD, or XML Schema” on
page 265
“Creating an IS Document Type from a DTD” on page 267
“Creating an IS Document Type from an XML Schema” on page 268
“Creating a Document Type” on page 263
1 In Designer
File > New > Document Type
2 In the New Document Type dialog box, select the folder in which you want to save
the IS document type.
3 In the Element Name field, type a name for the IS document type using any
combination of letters, numbers, and/or the underscore character. For information
about restricted characters, see “About Element Names” on page 34.
4 Click Next.
5 Under Select a source, select DTD.
6 In the Enter the URL or select a local file box, do one of the following:
If you want to base the IS document type on a file that resides on the Internet,
type the URL of the resource. (The URL you specify must begin with http: or
https:.)
If you want to base the IS document type on a file that resides on your local file
system, type in the path and file name, or click the browse button to navigate to
and select the file.
7 Click Next.
8 Select the root element of the document.
9 Click Finish. Integration Server generates the IS document type and IS schema and
saves it on the server. Designer displays them in the Package Navigator view.
If you want to add or edit fields in the IS document type, see “Creating an Empty IS
Document Type” on page 264.
Note: You might receive errors or warnings when creating an IS document type
from a DTD definition. For more information about these errors and warnings,
see the webMethods Developer User’s Guide.
Related Topics
“Creating an Empty IS Document Type” on page 264
“Creating an IS Document Type from an XML Document, DTD, or XML Schema” on
page 265
“Creating an IS Document Type from an XML Document” on page 266
“Creating an IS Document Type from an XML Schema” on page 268
“Creating a Document Type” on page 263
1 In Designer
File > New > Document Type
2 In the New Document Type dialog box, select the folder in which you want to save
the IS document type.
3 In the Element Name field, type a name for the IS document type using any
combination of letters, numbers, and/or the underscore character. For information
about restricted characters, see “About Element Names” on page 34.
4 Click Next.
5 Under Select a source, select XML Schema.
6 In the Enter the URL or select a local file box, do one of the following:
If you want to base the IS document type on a file that resides on the Internet,
type the URL of the resource. (The URL you specify must begin with http: or
https:.)
If you want to base the IS document type on a file that resides on your local file
system, type in the path and file name, or click the browse button to navigate to
and select the file.
7 Click Next.
8 Select the root element of the document.
9 Select the appropriate option to specify whether Designer should process complex
types by expanding them inline in the editor or by generating them as separate IS
document types.
10 Click Finish. Integration Server generates the IS document type(s) and IS schema and
saves it on the server. Designer displays them in the Package Navigator view.
If you want to add or edit fields in the IS document type, see “Creating an Empty IS
Document Type” on page 264.
Note: You might receive errors or warnings when creating an IS document type
from an XML Schema definition. For more information about these errors and
warnings, see the webMethods Developer User’s Guide.
Related Topics
“Expanding Complex Document Types Inline” on page 270
“Generating Fields for Substitution Groups” on page 272
“Creating an IS Document Type from an XML Document, DTD, or XML Schema” on
page 265
“Creating an IS Document Type from an XML Document” on page 266
“Creating an IS Document Type from a DTD” on page 267
“Creating a Document Type” on page 263
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://usecases/xsd2doc/01"
xmlns:uc="http://usecases/xsd2doc/01" >
<xsd:element name="eltA" type="uc:documentX" />
<xsd:complexType name="documentX">
<xsd:sequence>
<xsd:element name="eltX_E" type="xsd:string" />
<xsd:element name="eltX_F" type="uc:documentY" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="documentY">
<xsd:sequence>
<xsd:element name="eltY_G" type="xsd:string" />
<xsd:element name="eltY_H" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
If you select the option to expand complex types inline, the schema processor generates
the document type as follows. In this example, the schema processor expanded the
complex types named documentX and documentY inline within the new IS document type:
If you select the option to generate complex types as separate document types, the
schema processor generates the document types as follows. In this example, the schema
processor generated three IS document types—one for the complex type named
documentY, one for the complex type named documentX (with a reference to documentY),
and one for the root element eltA (with references to documentX and documentY):
The schema processor generates all three document types in the same folder.
Note: If the complex type is anonymous, the schema processor expands it inline rather
than generate a separate document type.
If the XML Schema you are using to generate an IS document type contains recursive
complex types (that is, element declarations that refer to their parent complex types
directly or indirectly), you can avoid errors in the document type generation process by
selecting the option to generate complex types as separate document types. (Selecting the
option to expand complex types inline will result in infinitely expanding nested
documents.)
Related Topics
“Creating a Publishable Document Type” on page 273
“Specifying Document Storage Type” on page 280
“Specifying the Time to Live for a Publishable Document Type” on page 282
“Specifying Validation for a Publishable Document Type” on page 283
Related Topics
“Making a Document Type Publishable” on page 273
“About the Associated Broker Document Type Name” on page 275
“About the Envelope Field” on page 277
“About Adapter Notifications and Publishable Document Types” on page 278
“Making Document Types Unpublishable” on page 279
If an IS document type contains a field named _env, you need to delete that field
before you can make the IS document type publishable. For more information about
the _env field, see “About the Envelope Field” on page 277.
The Broker prohibits the use of certain field names, for example, Java keywords, @, *,
and names containing white spaces or punctuation. If you make a document type
publishable and it contains a field name that is not valid on the Broker, you cannot
access and view the field via any Broker tool. However, the Broker transports the
contents of the field, which means that any other Integration Server connected to that
Broker has access to the field as it was displayed and implemented on the original
Integration Server. Use field names that are acceptable to the Broker. See the
webMethods Broker Administrator’s Guide for information on naming conventions for
Broker elements.
1 In the Package Navigator of Designer, double‐click the document type that you want
to make publishable.
The document type opens in the Document Type Editor window.
2 In the Properties view, set the Publishable property to True.
3 Next to the Discard property, select one of the following to indicate how long
instances of this publishable document type remain in the trigger client queue before
the Broker discards them.
Select... To...
False Specify that the Broker should never discard instances of this
publishable document type.
True Specify that the Broker should discard instances of this
publishable document type after the specified time elapses.
In the fields next to Time to live specify the time‐to‐live value and
time units.
4 Next to the Storage type property, select the storage method to use for instances of this
publishable document type.
Select... To...
Volatile Specify that instances of this publishable document type are
volatile. Volatile documents are stored in memory.
Guaranteed Specify that instances of this publishable document type are
guaranteed. Guaranteed documents are stored on disk.
For more information about selecting a storage type, see “Selecting Document
Storage Type for a Publishable Document Type” on page 281.
Note: If you want instances of this publishable
document type to be published to the Broker, you
need to create a Broker document type for this
publishable document type. When the Integration
Server is connected to a Broker, you can create the
Broker document type by pushing the
publishable document type to the Broker during
synchronization. For more information about
synchronizing, see “Synchronizing Publishable
Document Types” on page 287.
You cannot move, rename, cut, or delete the _env field from a document type.
Designer automatically removes the _env field when you make a document type
unpublishable.
The _env field is always the last field in a publishable document type.
For more information about the _env field and the contents of the pub:publish:envelope
document type, see the webMethods Integration Server Built‐In Services Reference.
Note: If an IS document type contains a field named _env, you need to delete that field
before you can make the IS document type publishable.
Each adapter notification has an associated publishable document type . When you
create an adapter notification in Designer, Integration Server automatically generates a
corresponding publishable document type. Designer assigns the publishable document
type the same name as the adapter notification, but appends PublishDocument to the
name. You can use the adapter notification publishable document type in triggers and
flow services just as you would any other publishable document type.
The adapter notification publishable document type is directly tied to its associated
adapter notification. In fact, you can only modify the publishable document type by
modifying the adapter notification. Integration Server automatically propagates the
changes from the adapter notification to the publishable document type. You cannot edit
the adapter notification publishable document type directly.
When working in Package Navigator, Designer treats an adapter notification and its
publishable document type as a single unit. If you perform an action on the adapter
notification Designer performs the same action on the publishable document type. For
example, if you rename the adapter notification, Designer automatically renames the
publishable document type. If you move, cut, copy, or paste the adapter notification
Designer moves, cuts, copies, or pastes the publishable document type.
For information about how to create and modify adapter notifications, see the
appropriate adapter user’s guide.
1 In the Package Navigator of Designer, double‐click the document type that you want
to make unpublishable.
The document type opens in the Document Type Editor window.
2 In the Properties view, set the Publishable property to False.
3 Select File > Save.
4 If the document type is associated with a Broker document type, Designer displays
the Delete Confirmation dialog box. This dialog box prompts you to specify whether
the associated Broker document type should be deleted or retained.
5 If you would like to delete the associated Broker document type from the Broker,
click Yes. Otherwise, click No.
Note: Some Broker document types have a storage type of Persistent. The
Persistent storage type automatically maps to the guaranteed storage type in the
Integration Server.
Related Topics
“Document Storage Versus Client Queue Storage” on page 281
“Selecting Document Storage Type for a Publishable Document Type” on page 281
“Working with Publishable Document Types” on page 272
If document storage type And the client queue storage The Broker saves the document
is... type is... as...
Volatile Volatile Volatile
Guaranteed Volatile
Guaranteed Volatile Volatile
Guaranteed Guaranteed
Note: On the Broker, each client queue belongs to a client group. The client queue
storage type property assigned to the client group determines the storage type for all
of the client queues in the client group. You can set the client queue storage type only
when you create the client group. By default, the Broker assigns a client queue
storage type of guaranteed for the client group created for Integration Servers. For
more information about client groups, see the webMethods Broker Administrator’s
Guide.
1 In Package Navigator view of Designer, double‐click the publishable document type
for which you want to set the storage type.
The document type opens in the Document Type Editor window.
2 In the Properties view, next to the Storage type property, select one of the following:
Select... To...
Guaranteed Specify that instances of this publishable document type should
be stored on disk.
Volatile Specify that instances of this publishable document type should
be stored in memory.
Related Topics
“Setting the Time to Live for a Publishable Document Type” on page 282
“Working with Publishable Document Types” on page 272
Changing a Publication property causes the publishable document type to be out of
sync with the associated Broker document type. For information about synchronizing
document types, see “Synchronizing Publishable Document Types” on page 287.
1 In Package Navigator view, double‐click the publishable document type for which
you want to set a time to live.
The document type opens in the Document Type Editor window.
2 In the Properties view, next to the Discard property, select one of the following:
Select... To...
False Specify that the Broker should never discard instances of this
publishable document type.
True Specify that the Broker should discard instances of this
publishable document type after the specified time elapses.
In the Time to live property, specify the time‐to‐live value and
units in which the time should be measured.
Integration Server provides two settings that you can use to configure validation for
published documents.
A global setting named watt.server.publish.validateOnIS that indicates whether
Integration Server always performs validation, never performs validation, or
performs validation on a per document type basis. You can set this property using
Integration Server Administrator. For more information about setting this property,
see the webMethods Integration Server Administrator’s Guide.
A publication property for publishable document types that indicates whether
instances of a publishable document type should be validated. Integration Server
honors the value of this property (named Validate when published) only if the
watt.server.publish.validateOnIS is set to perDoc (the default).
Note: When deciding whether to disable document validation, be sure to weigh the
advantages of a possible increase in performance against the risks of publishing,
routing, and processing invalid documents.
Related Topics
“Setting Validation for an Individual Publishable Document Type” on page 284
“Working with Publishable Document Types” on page 272
1 In Package Navigator view, double‐click the publishable document type for which
you want to specify validation.
The document type opens in the Document Type Editor window.
2 In the Properties view, under Publication, set the Validate when published property to one
of the following:
Select... To...
True Perform validation for published instances of this publishable
document type.
This is the default.
False Disable validation for published instances of this publishable
document type.
Related Topics
“Important Considerations When Modifying Publishable Document Types” on
page 285
Designer displays this message only if a Broker is configured for the Integration
Server. After you modify a publishable document type, you need to update the
associated Broker document type with the changes. For information about how to
synchronize document types, see “Synchronizing Publishable Document Types” on
page 287.
Changes you make to the contents of a publishable document type might require you
to modify the filter for the document type in a trigger condition. For example, if you
add, rename, or move fields you need to update any filter that referred to the
modified fields. You might also need to modify the service specified in the trigger
condition for the Broker/local trigger.
Related Topics
“Deleting a Publishable Document Type” on page 286
1 In Package Navigator view, select the document type you want to delete.
2 Select Edit > Delete.
If you enabled the deleting safeguards in the Preferences dialog box, and the
publishable document type is used by other elements, Designer displays a dialog box
listing all dependent elements, including triggers and flow services.
For information about enabling safeguards to check for dependents when deleting an
element, see “Configuring Dependency Checking for Elements” on page 38.
Do one of the following:
If you want to delete the publishable document type on the Integration Server,
but leave the corresponding document type on the Broker, leave the Delete
associated Broker document type on the Broker check box cleared.
If you want to delete the publishable document type on the Integration Server and
the corresponding document type on the Broker, select the Delete associated Broker
document type on the Broker check box.
3 Do one of the following:
Click... To...
Continue Delete the element from the Integration Server. References in
dependent elements remain.
Cancel Cancel the operation and preserve the element in the Integration
Server.
OK Delete the element from Integration Server. (The OK button only
appears if the publishable document type did not have any
dependents.)
Related Topics
“Synchronization Status” on page 288
“Synchronization Actions” on page 289
“Combining Synchronization Action with Synchronization Status” on page 290
“Synchronizing a Single Publishable Document Type” on page 292
“Synchronizing Multiple Document Types Simultaneously” on page 293
“Synchronizing Document Types in a Cluster” on page 293
“Synchronizing Document Types Across a Gateway” on page 293
“Importing and Overwriting References During Synchronization” on page 293
Synchronization Status
Each publishable document type on your Integration Server has a synchronization status
to indicate whether it is in sync with the Broker document type, out of sync with the
Broker document type, or not associated with a Broker document type. The following
table identifies each possible synchronization status for a document type.
Status Description
Synchronization Actions
When you synchronize document types, you decide for each publishable document type
whether to push or pull the document type to the Broker. When you push the publishable
document type to the Broker, you update the Broker document type with the publishable
document type on your Integration Server. When you pull the document type from the
Broker, you update the publishable document type on your Integration Server with the
Broker document type.
The following table describes the actions you can take when synchronizing a publishable
document type.
Action Description
Integration Server does not automatically synchronize document types because you
might need to make decisions about which version of the document type is correct. For
example, suppose that Integration Server1 and Integration Server2 contain identical
publishable document types named Customer:getCustomer. These publishable document
types have an associated Broker document type named wm::is::Customer::getCustomer. If a
developer updates Customer:getCustomer on Integration Server2 and pushes the change to
the Broker, the Broker document type wm::is::Customer::getCustomer is updated. However,
the Broker document type is now out of sync with Customer:getCustomer on Integration
Server1. The developer using Integration Server1 might not want the changes made to
the Customer:getCustomer document type by the developer using Integration Server2. The
developer using Integration Server1 can decide whether to update the
Customer:getCustomer document type when synchronizing document types with the Broker.
Note: For a subscribing Integration Server to process an incoming document
successfully, the publishable document type on a subscribing Integration Server
needs to be in sync with the corresponding document types on the publishing
Integration Server and the Broker. If the document types are out of sync, the
subscribing Integration Server may not be able to process the incoming documents. In
this case, the subscribing Integration Server logs an error message stating that the
“Broker Coder cannot decode document; the document does not conform to the
document type, documentTypeName.”
Note: If publishable document types for this
Broker document type exist on other Integration
Servers, this action changes the synchronization
status of those publishable document types to
Updated on Broker.
Note: If publishable document types for this
Broker document type exist on other Integration
Servers, this action does not affect the
synchronization status of those publishable
document types.
Tip! If a publishable document type is in sync
with the Broker document type, set the action to
Skip.
Tip! If a publishable document type is in sync
with the Broker document type, set the action to
Skip.
Note: For a publishable document type created for an adapter notification, you can
select Skip or Push to Broker only. A publishable document type for an adapter
notification can only be modified on the Integration Server on which it was created.
1 In Package Navigator view, select the publishable document type that you want to
synchronize.
2 Select File > Sync Document Type. Designer displays the Synchronize dialog box. The
Synchronize dialog box displays the synchronization status of the document type, as
described in “Synchronization Status” on page 288.
3 Under Action, do one of the following:
Select... To...
Note: The result of a synchronization action depends on the document status. For
more information about how the result of a synchronization status depends on
the synchronization status, see “Combining Synchronization Action with
Synchronization Status” on page 290.
elements and those being imported from the Broker. If there are differences, you need to
understand what they are and how importing them will affect any elements that use
them, such as services, IS document types, or triggers.
When you create a new document type from a Broker document type or when you
synchronize document types, you can use the Overwrite existing elements when importing
referenced elements check box to indicate whether existing elements should be overwritten
by imported elements of the same name.
Related Topics
“What Happens When You Overwrite Elements on the Integration Server?” on
page 294
“What Happens if You Do Not Overwrite Elements on the Integration Server?” on
page 294
Related Topics
“Creating a Launch Configuration for a Publishable Document Type” on page 295
“Testing a Publishable Document Type” on page 297
1 In Package Navigator view, open the publishable document type that you want to
test.
2 Select Run > Run Configurations to open the Run Configurations dialog box.
c If you want to save the input values that you have entered, click Save. Input
values that you save can be recalled and reused in later tests. For information
about saving input values, see “Saving Input Values” on page 234.
d Click Apply. When you enter values for constrained objects in the Input tab,
Integration Server automatically validates the values. If the value is not of the
type specified by the object constraint, Designer displays a message identifying
the variable and the expected type.
6 Click the Action tab and specify publish settings for the document type.
a Select the type of publishing for the document.
Select... To...
Note: Integration Server assigns trigger clients names according to the client prefix
specified on the Settings > Broker screen of the Integration Server Administrator.
c If you selected a publication action in which you wait for a reply, you need to
select the document type that you expect as a reply. You can enter the document
type name or click Browse to select the document type.
If you click Browse, Designer displays all the publishable document types on the
Integration Server to which you are currently connected. In the Elements Name
field, type the fully qualified name of the publishable document type that you
expect as a reply or select it from the Folder list. If the service does not expect a
specific document type as a reply, leave this field blank.
d Under Set how long Designer waits for a Reply, select one of the following:
Select... To...
7 Optionally, click the Common tab to define general information about the launch
configuration and to save the launch configuration to a file.
8 Click Apply.
9 Click Run if you want to test the publishable document type now. Otherwise, click
Close.
If Designer does not receive the reply document before the time specified next Wait for
elapses, Designer displays an error messages stating that the publish and wait (or
deliver and wait) has timed out. The Publish Results view displays null next to the
receiveDocumentTypeName field to indicate that the Integration Server did not receive a
reply document.
1 In Package Navigator view, select the publishable document type that you want to
test.
2 In Designer
Run > Run As > Publishable Document.
3 Do one of the following:
If a launch configuration exists and Prompt for data at launch is not enabled, the
configuration runs. If Prompt for data at launch is enabled, the Input dialog box
appears. View and edit the input data for the launch configuration, then click Run.
If more than one launch configuration exists, select the one you want to run from
the Launch Configurations dialog box, and then click Run.
If a launch configuration does not exist, Designer uses the default launch
configuration. When the Input dialog box appears, enter launch configuration
data for the test in the Input dialog box and then click Run.
Note: The input data is not saved after the default launch configuration runs. If
you want to save the input data in a launch configuration, see “Creating a
Launch Configuration for a Publishable Document Type” on page 295 for
instructions about creating and saving a launch configuration.
Notes:
Designer displays the instance document and publishing information in the Publish
Results view.
If you selected a publication action in which you wait for a reply, and Designer
receives a reply document, Designer displays the reply document as the value of the
receiveDocumentTypeName field in the Publish Results view.
If Designer does not receive the reply document before the time specified next Wait for
elapses, Designer displays an error messages stating that the publish and wait (or
deliver and wait) has timed out. The Publish Results view displays null next to the
receiveDocumentTypeName field to indicate that the Integration Server did not receive a
reply document.
Related Topics
“Assigning a Universal Name to a Service or Document Type” on page 149
“Universal Name Properties” on page 335
“Implicit and Explicit Universal Names” on page 150
“Deleting an Explicit Universal Name” on page 152
“The Universal Name Registry” on page 152
“Services You Use to Interact with the Universal Name Registry” on page 153
A variable can be a String, String list, String table, document, document list, document
reference, document reference list, Object, or Object list. You can use an IS document type
(including a publishable document type) to create a document reference or document
reference list field. You can assign properties and input values for a variable. You can also
apply content constraints and structural constraints to a variable for validation purposes.
Select a variable in the editor to set general properties and constraints for the variable.
Note: Specific properties in the Properties view are enabled or disabled, depending on
the type of variable you have selected.
Related topics
“Variable Properties” on page 356
“Creating a Document Reference or a Document Reference List Variable” on page 301
“Assigning Properties to Variables” on page 302
“Applying Constraints to Variables” on page 304
1 In Package Navigator view, open the document type that you want to reference.
2 On the editor palette, click and drag one of the following into the editor window:
3 In the Element Name field, type the fully qualified name of the IS document type or
select it from the list.
4 Click OK.
5 Type the name of the field.
6 Click File > Save.
Related topics
“Assigning Properties to Variables” on page 302
“Applying Constraints to Variables” on page 304
Integration Server automatically assigns an XML namespace to a field (such as an IS
document variable) when it creates a provider Web service descriptor WSDL or a
consumer Web service descriptor from an existing WSDL. Integration Server also
assigns an XML namespace from a schema when it creates a document type from an
existing XML schema.
Related topics
“Guidelines for Assigning XML Namespaces to Web Service Descriptors” on
page 303
“Assigning Properties to Variables” on page 302
1 In the editor, select the field to which you want to assign an XML namespace.
2 In the Properties view, click the XML namespace browse button ( ) and then enter a
value for the XML namespace. To assign a prefix to an IS field, precede the field name
with the prefix followed by a colon (for example, prefix:variableName).
3 Click Okay.
4 Click File > Save.
1 In the editor, select the String variable to which you want to assign properties.
2 In the Properties view, under General, assign one of the following values to the String
display type field:
Note: These options are not available for Objects and Object lists.
3 Click File > Save.
specify that the lineItem document variable must contain the child variables
itemNumber, quantity, size, color, and unitPrice. You could also specify that the lineItem
document can optionally contain the child variable specialInstructions.
Content constraints describe the data type for a variable and the possible values for the
variable at run time. You can apply content constraints to String, String list, String
table, Object, and Object list variables.
When you specify a content constraint for a String, String list or String table variable,
you can also apply a constraining facet to the content. A constraining facet places
limitations on the content (data type). For example, for a String variable named
itemQuantity, you might apply a content constraint that requires the value to be an
integer. You could then apply constraining facets that limit the content of
itemQuantity to a value between 1 and 100.
You can use simple types from an IS schema as content constraints for String, String
list, or String table variables.
For pipeline and document validation, the IS document type used as the blueprint needs
to have constraints applied to its variables. For input/output validation, constraints need
to be applied to the declared input and output parameters of the service being validated.
Note: When you create an IS document type from an XML Schema or a DTD, the
constraints applied to the elements and attributes in the original document are
preserved in the new IS document type. For more information about creating IS
document types, see “Creating a Document Type” on page 263.
Related topics
“Considerations for Object Constraints” on page 305
“Applying Constraints to a Variable” on page 306
“Customizing a String Content Type” on page 308
“Viewing the Constraints Applied to Variables” on page 309
The pub.schema:validate service runs.
A document is published. When this occurs, the contents of the document are
validated against the specified document type.
During debugging, when you enter values for a constrained Object or Object list in
the Input dialog box.
When you assign a value to an Object or Object list variable in the Pipeline view using
on the toolbar.
1 Select the variable to which you want to apply constraints.
You can apply constraints to variables in IS document types, variables in a
specification, and variables declared on the Input/Output tab.
2 In the Properties view, under Constraints, define the following properties:
Property Description
Required Specifies whether the selected variable is required to exist at
run time
Select... To...
True Require the selected variable to exist at
run time.
False Make the existence of the variable optional
at run time.
Allow null Specifies whether a variable is allowed to have a null value.
Select... To...
True Allow the variable to have a null value.
False Have the validation engine generate an
error when the variable has a null value.
Allow unspecified If the variable is a document or document list, specifies
fields whether the variable can contain undeclared child variables.
Select... To...
True Allow the variable to contain undeclared
child variables.
False Treat any child variables that exist in the
pipeline but do not appear in the declared
document field as errors at run time.
3 If the selected variable is a String, String list, or String table, and you want to specify
content constraints for the variable, click and then do one of the following:
If you want to use a content type that corresponds to a built‐in simple type in
XML Schema, in the Content type list, select the type for the variable contents. (For
a description of these content constraints, see webMethods Developer User’s Guide.)
To apply the selected type to the variable, click OK.
If you want to customize the content type by changing the constraining facets
applied to the type, see “Customizing a String Content Type” on page 308.
If you want to use a simple type from an IS schema as the content constraint, click
Browse. In the Browse dialog box, select the IS schema containing the simple type
you want to apply. Then, select the simple type you want to apply to the variable.
To apply the selected type to the variable, click OK.
Note: A content type corresponds to a simple type from an XML Schema
definition. All of the choices in the Content type list correspond to simple types
defined in XML Schema Part 2: Datatypes.
Note: In webMethods Developer, you can customize the content type by
changing the constraining facets applied to the type. This functionality is not
available in Designer. For more information, see webMethods Developer User’s
Guide.
Note: In webMethods Developer, you can edit a simple type definition in an IS
schema. This functionality is not available in Designer. For more information about
editing simple type definitions, see webMethods Developer User’s Guide.
When customizing a content type, keep the following points in mind:
When you edit the constraining facets, you can only make the constraining facet
values more restrictive. The constraining facets cannot become less restrictive.
Note: Use webMethods Developer to edit the constraining facets applied to a
content type. This functionality is not available in Designer. For more information
about setting values for constraining facets, see webMethods Developer User’s Guide.
The constraining facets you can specify depend on the content type. For more
information the constraining facets for each content type, see webMethods Developer
User’s Guide.
The customized content type applies only to the selected variable. To make changes
that affect all variables to which the content type is applied, edit the content type in
the IS schema. (String content types are simple types from IS schemas.)
Note: Use webMethods Developer to edit simple type definitions. This
functionality is not available in Designer. For more information about editing
simple type definitions, see webMethods Developer User’s Guide.
1 Select the variable to which you want to apply a customized content type.
2 In the Constraints category on the Properties view, click the Content type browse button
( ) and then do one of the following to select the content type you want to
customize:
In the Content type list, select the content type you want to customize.
If you want to customize a simple type from an IS schema, click Browse. In the
Browse dialog box, select the IS schema containing the simple type. Then, select
the simple type you want to customize and apply to the variable.
3 Click Customize. Designer makes the constraining facet fields below the Content type
list available for data entry (that is, changes the background of the constraining facet
fields from grey to white). Designer changes the name of the content type to
contentType_customized.
4 In the fields below the Content type list, specify the constraining facet values you want
to apply to the content type. For more information constraining facets, see webMethods
Developer User’s Guide.
5 Click OK. Designer saves the changes as a new content type named
contentType_customized.
Important! Integration Server throws exceptions at design time if the constraining facet
values for a content type are not valid. For more information about these exceptions,
see the webMethods Developer User’s Guide.
Optional field. The Required property is set to False.
Note: Designer displays the ‡ symbol next to String, String List, and String table
variables with a content type constraint only. Designer does not display the ‡ symbol
next to Object and Object list variables with a specified Java class constraint. Object
and Object lists with an applied Java class constraint have a unique icon. For more
information about icons for constrained Objects, see “Java Classes for Objects” on
page 386.
“Integration Server Preferences” on page 313
“Service Development Preferences” on page 315
“Properties” on page 321
“webMethods Flow Steps” on page 371
“Supported Data Types” on page 385
“Icons” on page 389
“Toolbars” on page 395
“Supported and Unsupported Elements in webMethods Designer” on page 405
Field Description
Name Name to use for this Integration Server.
Host Name or Host name or IP address of the Integration Server to which Designer
IP Address is to connect.
Port Port number on which Integration Server listens for requests.
Default By default, a new Designer installation includes a server definition
named Default. This server is marked as the default server and is
configured to use localhost:5555. If a user creates or edits a process
and no server definitions are connected, Designer automatically
connects to the default server definition.
Refer to the Process Development Help for more information.
Status Indicates whether or not Designer is connected to the Integration
Server specified in this definition.
Possible statuses are Connected, Not connected, No userid and password.
To connect to an Integration Server that has the No userid or password
status, click select the associated definition, click Edit, and enter the
userid and password information.
Offline Specifies whether Designer is to attempt to connect to this
Integration Server.
By default, if a Process Development user creates or edits a process
when no server definitions are connected, Designer will
automatically try to connect to a server. Often, when connecting to a
server, Designer will prompt the user to enter credentials. To
prevent Designer from repeatedly prompting for credentials, you
can place the server definition offline.
Refer to the Process Development Help for more information.
“Adapter Service/Notification Error Preferences” on page 315
“Flow Service Editor Preferences” on page 316
“Package Navigator Preferences” on page 317
“Publishable Document Type Preferences” on page 319
“Integration Server Preferences” on page 313
Preference Description
Automatic data validation When selected, value checking is performed on all
user input. This safeguard makes sure that all user
data are valid against current resource data.
Automatic polling of adapter When selected, Designer will reload metadata from
metadata the adapter every time it creates a new adapter
service/notification. This option can be useful for
adapter developers that are working on designing the
metadata.
Related Topics
“Flow Service Editor Preferences” on page 316
“Package Navigator Preferences” on page 317
“Publishable Document Type Preferences” on page 319
“Integration Server Preferences” on page 313
Preference Description
Services List Use this list to specify the list of services that appear
under Insert on the flow service editor Palette view.
Each row in the list represents a single command on
the menu. Commands will appear on the menu in
the order you specify them. You may add as many
services as you need.
The Name column specifies a label for the service.
The Service column specifies the services associated
with the labels on the menu.
Grid Properties When Enable Grid is selected, Designer displays a grid
on the Layout tab of the flow service editor. Use Grid
Width and Grid Height to specify the size of the grid.
Label Properties In the Layout tab, specifies the height and width
used for displaying the name of the service for an
INVOKE step.
Related Topics
“Service Development Preferences” on page 315
“Package Navigator Preferences” on page 317
“Publishable Document Type Preferences” on page 319
“Integration Server Preferences” on page 313
Preference Description
Confirm before deleting When selected, instructs Designer to notify you
before deleting an element used by other elements,
such as flow services, IS document types,
specifications, or triggers. If Designer finds
elements that depend on the element being deleted,
Designer lists those dependents and prompts you
to delete the element anyway or cancel the action. If
you clear this check box, Designer deletes the
element without prompting you.
Prompt before updating dependents When selected, instructs Designer to alert you
when renaming/moving when dependents exist. Dependents are elements
that use the selected element, such as flow services,
IS document types, specifications, or triggers.
If dependents exist, Designer lists those
dependents before renaming or moving the
selected element and prompts you to:
Rename/move the selected element and update
dependent elements with the new name and
location.
Rename/move the selected element only.
Cancel the action.
If you clear this check box, Designer automatically
updates dependents without prompting you.
Update local references when When selected, Designer updates local references
pasting multiple elements when copying and pasting a group of elements.
When two elements within a group refer to each
other, it is called a local reference. If you clear this
check box, Designer retains the original references
in the copied elements.
Preference Description
Automatically unlock upon save When selected, Designer automatically unlocks
(non-VCS servers only) elements after you save changes to them. This
prevents you from forgetting to unlock elements;
however, it may not be the best option if you save
periodically while editing an element. (Not
applicable for Java/C services.)
Important! Do not select this option if the VCS
Integration feature is enabled; it will cause
synchronization problems with the VCS repository.
Related Topics
“Service Development Preferences” on page 315
“Flow Service Editor Preferences” on page 316
“Publishable Document Type Preferences” on page 319
“Integration Server Preferences” on page 313
Preference Description
Display timeout message When selected, Designer displays a message if the
timeout limit for deliver and wait or publish and
wait request elapses before Designer receives a
response.
Related Topics
“Adapter Service/Notification Error Preferences” on page 315
“Flow Service Editor Preferences” on page 316
“Package Navigator Preferences” on page 317
“Testing Publishable Document Types” on page 295
“Integration Server Preferences” on page 313
Integration Server property information is available from the Service Development >
Package Navigator view of Designer.
Use the Properties dialog box to view and edit properties for Integration Servers and
packages. You can also use the Properties dialog box to view general information and
permissions for Integration Server elements such as document types, services, flow steps,
JMS triggers, Web service connectors, and Web service descriptors.
You can open the Properties dialog box by selecting the server, package, or element in
Package Navigator view and selecting File > Properties. You can also open the Properties
dialog box by right‐clicking the server, package, or element and selecting Properties.
You can view and configure property information for the following Integration Server
components:
“Integration Server Properties” on page 321
“Package Properties” on page 325
“Element Properties” on page 330
“Document Type Properties” on page 332
“Flow Step Properties” on page 335
“JMS Trigger Properties” on page 336
“Link Properties” on page 345
“Service Properties” on page 347
“Transformer Properties” on page 356
“Variable Properties” on page 356
“Web Service Connector Properties” on page 360
“Web Service Descriptor Properties” on page 365
Related Topics
“Event Manager Properties” on page 322
“Server ACL Information” on page 323
“Server Information” on page 324
“Server Locked Elements” on page 325
Property Description
Service The fully qualified name of the
subscriber (the event handler that
executes when the event occurs).
When you add a subscription, you can
use the browse button to select the
service.
Filter A pattern string to further specify the
events this event handler subscribes to.
The information for which you create a
filter depends on the event type you are
subscribing to.
The asterisk (*) character represents any
string of characters and is the only wild‐
card character allowed in the pattern
string. All other characters are treated
literally. Pattern strings are case
sensitive.
Property Description
Comment An optional comment describing this
subscription.
Enabled Whether this subscription is currently
active or inactive. Set this parameter to
true to activate the subscription. Set this
parameter to false to deactivate a
subscription.
You use the buttons in this page to add, edit, and delete a subscription.
Add a subscription.
Insert a blank row for a subscription.
Delete the selected subscription.
Edit the selected subscription.
Property Description
ACLs The ACLs defined on the Integration Server to which you are
connected. These include the default ACLs that were
installed with the server. To edit an ACL, use the Integration
Server Administrator.
Property Description
Server Information
View general information about a server from the Server Information page. To open this
page, select File > Properties > Server Information.
Property Description
Type Type of server. This will be Integration Server.
Name Name assigned to the Integration Server.
Location Host name and port address of the Integration Server.
User Name The user name you use to connect to this Integration Server.
Connected Indicates whether or not you are currently connected to this
Integration Server.
VCS Enabled Indicates whether this Integration Server is configured to use
a version control system (VCS)
Proxy Specifies the proxy server as set on Window > Preferences >
General > Network Connections.
Property Description
Package Properties
Use the Properties dialog box to view information about packages on the Integration
Server and to assign package dependencies, permissions, replication services, startup
and shutdown services.
To open the Properties dialog box, click the package in the Package Navigator of Designer
and select File > Properties.
Related Topics
“Package Information” on page 325
“Package Dependencies” on page 325
“Package Settings” on page 327
“Package Permissions” on page 328
“Package Replication Services” on page 328
“Package Startup/Shutdown Services” on page 329
Package Information
The Element Information page displays the type and name of the Integration Server
package.
To open this page, click the package in the Package Navigator of Designer and select File >
Properties > Element.
Package Dependencies
The Package Dependencies page displays the packages on which this package is
dependent. For example, if a package needs the services in another package to load
before it can load, you need to set up package dependencies. You might also want to
identify package dependencies if a startup service for a package invokes a service in
another package. The startup service cannot execute if the package containing the
invoked service has not yet loaded.
To open this page, click the package in the Package Navigator of Designer and select File >
Properties > Package Dependencies.
Property Description
Package The name of the package you want webMethods Integration Server to
load before the package selected in Package Navigator.
Version The version number of the package you want loaded.
More than one version of the same package might contain the services
and elements that a dependent package needs the Integration Server to
load first. You can use an asterisk (*) in the version number to indicate
that any version number greater than or equal to the specified version
will satisfy the package dependency. For example, to specify version 3.0
or later of a package, type 3.*. To specify versions 3.1 or later, type
3.1.*.
You use the buttons in this page to add, edit, and delete a package dependency.
Add a package dependency.
Insert a blank row for a package dependency.
Delete the selected package dependency.
Edit the selected package dependency.
Package Settings
The Package Settings page displays general information about a package including
package and JVM versions, build and patch numbers, publishers, and patch history.
To open this page, click the package in the Package Navigator of Designer and select File >
Properties > Package Settings.
Property Description
Name The name of the package.
Version The version number assigned to the package.
Build The build number of the package. The build
number is a generation number that a user assigns
to a package each time the package (either full
release or a patch) is regenerated.
Property Description
Description A brief description of the package or patch written
by the user who created the package release.
Time The time at which the package release (patch) was
created.
JVM Version The version of the JVM (Java virtual machine)
required to run the package.
Publisher The name of the publishing server that created the
package release.
Patch Number The patch numbers included in this release of the
package.
Package Permissions
You assign an ACL to an element in the Permissions page of the Properties dialog box.
Depending on the element you select, certain access levels are displayed. For example,
for a package, you can only set List access. For details about the different levels of access
available for elements, see the webMethods Integration Server Administrator’s Guide.
To open this page, click the package in the Package Navigator of Designer and select File >
Properties > Permissions.
Property Description
Add a replication service.
Insert a blank row for a replication service.
Delete the selected replication service
Edit the selected replication service.
Property Description
Tip! If a startup service invokes a service in another package, make
sure to identify the other package as a package dependency for the
package containing the startup service.
Property Description
Add the service selected in Available services as a
startup service for the package.
Remove the service selected in Selected services as
a start up service for the package.
Shutdown Displays the list of services that can be used as shutdown services
services and the list of assigned shutdown services in the package. A
shutdown service is one that the webMethods Integration Server
automatically executes when it unloads a package from memory.
Shutdown services are useful for executing clean‐up tasks such as
closing files and purging temporary data. You could also use them
to capture work‐in‐progress or state information before a package
unloads.
Available services Displays a list of the services that can be used as shutdown services
for the package. Any service in the package can be a shutdown
service. After you designate a service as a shutdown service, the
service does not appear in the Available services list.
Selected services Displays the shutdown services for the package.
You use the following buttons under Shutdown services to add and
remove startup services.
Use this button... To...
Add the service selected in Available services as a
shutdown service for the package.
Remove the service selected in Selected services as
a shutdown service for the package.
Element Properties
Use the Properties dialog box to view information about any Integration Server element
listed in the Package Navigator. Integration Server elements include folders, subfolders,
document types and services.
To open the Properties dialog box, click any Integration Server element in the Package
Navigator of Designer and select File > Properties.
Related Topics
“Element Information” on page 331
“Element Permissions” on page 331
Element Information
The Element Information page displays the type and name of the Integration Server
element.
To open this page, click the element in the Package Navigator of Designer and select File >
Properties > Element Information.
Element Permissions
You assign an ACL to an element in the Permissions page of the Properties dialog box.
Depending on the element you select, certain access levels are displayed. For example,
for a package, you can only set List access. For details about the different levels of access
available for elements, see the webMethods Integration Server Administrator’s Guide.
The ACLs assigned to an element are mutually exclusive; that is, an element can have
different ACLs assigned for each level of access. For example, the following element has
the Developers ACL assigned for Read access and the Administrators ACL assigned for
Write access.
To open this page, click the element in the Package Navigator of Designer and select File >
Properties > Permissions.
Property Description
Property Description
Property Description
Name Local name of the element.
Server Server definition name for the Integration Server on which
the element resides.
URL URL to the Integration Server on which the element resides.
Full name Fully qualified name of the element.
Package Package in which the element is located.
“General Properties” on page 333
“Publication Properties” on page 333
“Universal Name Properties” on page 335
“Working With Document Types” on page 263
General Properties
In the Properties view, under General, you can assign an ACL to a document type. You
can also add a comment to the document type.
Property Description
Publication Properties
In the Properties view, under Publication, you specify whether a document type can be
published and subscribed to and specify the properties of published instances of a
document type.
Property Description
Publishable Specifies whether the document type can be published and
subscribed to. For details, see the Publish‐Subscribe Developer’s
Guide.
Broker doc type Displays the name of the corresponding document type on the
Broker. This property displays Not Publishable if the document
type cannot be published. This property displays Publishable
Locally Only if instances of the document type can be published
and subscribed to within this Integration Server only.
Discard Indicates whether the Broker discards instances of this
publishable document type after the time specified in the Time
to live property elapses.
Select... To...
False Instructs the Broker to never discard
instances of this publishable document type.
True Instructs the Broker to discard the document
after the period specified in Time to live
elapses.
Property Description
Volatile Volatile documents are stored in memory and
provide at most once processing. Volatile
documents are never acknowledged and will
be lost if the resource on which they reside
shuts down.
Guaranteed Guaranteed documents are saved to disk and
provide at least once processing or exactly‐
once processing. Guaranteed documents will
be recovered upon restart if the resource on
which they reside shuts down. Resources
return acknowledgements for guaranteed
documents after successfully storing or
processing the document. The
acknowledgment allows the sending resource
to remove its copy of the document from disk
storage.
Validate when Specifies whether Integration Server validates published
published instances of this document type.
Select... To...
True Perform validation for published instances of
this document type.
This is the default.
False Disable validation for published instances of
this document type.
Property Description
Namespace The URI that will be used to qualify the name of this document type.
name You must specify a valid absolute URI.
Local name A name that uniquely identifies the document type within the
collection encompassed by Namespace name. The name can be
composed of any combination of letters, digits, or the period (.), dash
(]) and underscore (_) characters. Additionally, it must begin with a
letter or the underscore character.
Related Topics
“Assigning a Universal Name to a Service or Document Type” on page 149
Property Description
Name Name of the JMS trigger.
Enabled Specifies whether the JMS trigger is enabled or disabled.
Select... To...
True Enable the JMS trigger
False Disable the JMS trigger.
Transaction type Indicates whether or not the JMS trigger receives and
processes messages as part of a transaction.
Value Description
NO TRANSACTION The JMS trigger does not receive and
process message as part of a transaction.
XA TRANSACTION The JMS trigger receives and processes
messages as part of an XA transaction
LOCAL The JMS trigger receives and processes
TRANSACTION messages as part of a local transaction.
Property Description
Note: Designer sets the transaction type value based on the
transaction type specified for the JMS connection alias
associated with the JMS trigger.
AUTO_ACKNOWLE Automatically acknowledge the
DGE message when it is received by the JMS
trigger. The Integration Server will
acknowledge the message before the
trigger completes processing. The JMS
provider cannot redeliver the message if
Integration Server becomes unavailable
before message processing completes.
CLIENT_ACKNOWL Acknowledge or recover the message
EDGE only after the JMS trigger processes the
message completely.
This is the default.
DUPS_OK_ACKNO Lazily acknowledge the delivery of
WLEDGE messages. This may result in the
delivery of duplicate messages.
True Indicates that Integration Server stops
waiting for messages from the
remaining destination in a join after the
time specified in Expire after elapses.
False Indicates that the join does not expire.
That is, Integration Server waits
indefinitely for messages from the
remaining destinations in the join.
Property Description
Property Description
Name Name of the JMS trigger.
Enabled Specifies whether the JMS trigger is enabled or disabled.
Select... To...
True Enable the JMS trigger
False Disable the JMS trigger.
Transaction type Indicates whether or not the JMS trigger receives and
processes messages as part of a transaction.
Value Description
NO The JMS trigger does not receive and
TRANSACTION process message as part of a transaction.
XA TRANSACTION The JMS trigger receives and processes
messages as part of an XA transaction
LOCAL The JMS trigger receives and processes
TRANSACTION messages as part of a local transaction.
Property Description
Note: Designer sets the transaction type value based on the
transaction type specified for the JMS connection alias
associated with the JMS trigger.
Message Processing
In the Properties view, under Message processing, you enable or disable a JMS trigger, set
the transaction type, specify the acknowledgement mode, expiration, and execution user
credentials.
Property Description
Serial Specify that Integration Server should
process messages received by the trigger
one after the other.
Concurrent Specify that Integration Server should
process multiple messages for this trigger
at one time.
Max execution threads Specify the maximum number of messages that Integration
Server can process concurrently. Integration Server uses one
thread to process each message. The default is 1 server
thread.
Max batch messages Specify the maximum number of messages that the trigger
service can receive at one time. If you do not want the trigger
to perform batch processing, leave this property set to 1. The
default is 1.
Property Description
True Instruct Integration Server to suspend the
trigger when a trigger service ends with a
fatal error.
False Indicate that Integration Server should not
suspend the JMS trigger when a trigger
service ends with a fatal error
This is the default.
Property Description
Property Description
Select... To...
Property Description
Note: A resource monitoring service must use the
pub.trigger:resourceMonitoringSpec as the service signature.
Property Description
Property Description
Note: A resource monitoring service must use the
pub.trigger:resourceMonitoringSpec as the service signature.
Property Description
True Specifies that exactly‐once processing is
provided for documents received by this
trigger and instructs the server to check a
document’s redelivery count to determine
whether the trigger received the document
previously. The redelivery count indicates the
number of times the routing resource has
redelivered a document to the trigger.
False Specifies that exactly‐once processing is not
provided for documents received by this
trigger.
Note: The Integration Server provides exactly‐once
processing for guaranteed documents only.
True Indicates that Integration Server maintains a
history of messages processed by the trigger.
When the trigger receives a message, the
Integration Server compares the message’s
universally unique identifier (UUID) to the
UUIDs of messages processed by the trigger.
If there is a match, the Integration Server
either determines the second message is a
duplicate and discards it or, if the first
message has not finished processing, marks
the second message’s status as In Doubt.
False Indicates Integration Server does not
maintain a document history database. The
Integration Server will not use document
history to determine whether a message is a
duplicate of one already processed by the
trigger.
Property Description
Note: To perform duplicate detection using a document
history database, the audit subsystem must be stored in a
relational database and the Integration Server Administrator
must define a JDBC connection pool for the Integration
Server to use to connect to the document history database.
Link Properties
Use the Properties view to apply conditions to the link you have drawn between two
variables or specify which element of an array you want to link to or from.
To view properties for a link, double‐click the link in the Pipeline editor.
Related Topics
“General Link Properties” on page 346
Property Description
True Instruct Integration Server to execute the link
only if the condition specified in Copy
Condition evaluates to true.
False Instruct Integration Server to execute the link
without evaluating it against a copy
condition.
Copy condition Specifies the expression that must evaluate to true before the
Integration Server will execute the link between fields. The
server evaluates the condition at run time only if the Evaluate
copy condition property is set to True. Click to specify a
condition. Use the syntax provided by webMethods to write
the condition. For details on the syntax, see the webMethods
Developer User’s Guide.
Indices To specify which element in an array variable you want to
link to or from, click . Select one of the following from the
Link Indices page:
Select... To...
Source Display the variables for which you need to
specify an array index. You only need to
specify indexes for Source variables if the
source variable (the variable you are linking
from) is an array or is a child of an array.
Index
Specifies the array index for the element
whose value you want to link to the target
variable.
Property Description
Destination Displays the variables for which you need to
specify an array index. You only need to
specify indexes for Destination variables if
the target variable is an array or is the child of
an array.
Index
Specifies the array index for the element to
which you want to link the source variable.
Service Properties
To view properties for a service, double‐click the service in the Package Navigator of
Designer. In the Properties view, under Service Properties, you can configure the Runtime,
Retry on ISRuntimeException, Universal Name, Audit, and Output Template properties for the
service.
To edit the properties for a service, you must have Write access to it and own the lock.
Related Topics
“General Service Properties” on page 347
“Run Time Properties for Services” on page 348
“Transient Error Handling Properties” on page 349
“Audit Properties” on page 350
“Universal Name Properties for Services” on page 355
“Output Template Properties for Services” on page 355
Property Description
Important! The Runtime properties on the Properties view should only be set by
someone who is thoroughly familiar with the structure and operation of the selected
service. Improper use of these options can lead to a service failure at run time and/or
the return of invalid data to the client program.
Property Description
Stateless Specifies whether or not Integration Server is required to maintain
state information for this service for the duration of the client
session. Select True if the service is a self‐contained, atomic unit of
work and does not need access to state information. This reduces
the number of server resources it consumes at run time. Select False
if the service is part of a multi‐service transaction or if you are
unsure of its state requirements.
The default is False
Cache results Indicates whether Integration Server stores the service results in a
local cache for the time period specified in the Cache expire property.
After the service executes, the server places the entire pipeline
contents into a local cache. When subsequent requests for the
service provide the same set of input values, the server returns the
cached results instead of invoking the service again. Select True to
cache the service results. Select False if you do not want to cache
service results. Cache results for stateless services only.
The default is False.
Note: Caching is only available for data that can be written to the
repository. Because XML nodes cannot be written to the repository,
they cannot be cached.
Property Description
Note: The cache may not be refreshed at the exact time the last hit
fulfills the Prefetch Activation requirement. It may vary from 0 to 15
seconds, according to the cache sweeper thread. For details, see the
watt.server.cache.flushMins setting in Integration Server.
Property Description
Note: Integration Server enforces a maximum retry period when you
configure service retry properties. The maximum retry period
indicates the total amount of time that can elapse if the Integration
Server makes the maximum retry attempts. By default, the
maximum retry period is 15,000 milliseconds (15 seconds). When
you configure service retry, Integration Server verifies that the retry
period for that service will not exceed the maximum retry period.
Integration Server determines the retry period for the service by
multiplying the maximum retry attempts by the retry interval. If
this value exceeds the maximum retry period, Designer displays an
error indicating that either the maximum attempts or the retry
interval needs to be modified.
Audit Properties
In the Properties view, under Audit, you enable auditing and specify when a service
should generate audit data.
Property Description
Never Indicate that the service should never generate
audit data. Select this option if you do not want to
be able to audit this service.
Property Description
Property Description
Property Description
Select… To…
Never Indicate that the input pipeline should never be
included in the audit log. Select this option if you
are using a flat file for the audit log or if you do not
want to be able to resubmit the service to
Integration Server.
Performance Impact: This option requires minimal
network bandwidth because Integration Server
needs to send only the audit data generated by the
service to the audit log.
On errors only Indicate that the input pipeline should be included
in the audit log only when the service ends because
of errors. Select this option if you want to use the
resubmission capabilities of webMethods Monitor
to reinvoke a failed service. For more information
about webMethods Monitor, see the webMethods
Monitor documentation.
Performance Impact: For successful service
invocations, the On errors only option requires
minimal network bandwidth. Service invocations
that end in failure require more network
bandwidth because the Integration Server must
save the audit data and the input pipeline. The
actual network bandwidth needed depends on the
size of the initial input pipeline. A large pipeline
can degrade performance because it may
negatively impact the rate at which the data is
saved to the audit log.
Property Description
Always Indicate that Integration Server saves a copy of the
input pipeline to the audit log every time the
service generates audit data. If the service
generates data at the start and end of execution
(Log on is set to Error, success, and start), the input
pipeline is saved with the audit log entry for the
start of service execution. If a service does not
generate audit data, Integration Server does not
include a copy of the input pipeline.
Select the Always option if you want to be able to
use the resubmission capabilities of the
webMethods Monitor to reinvoke the service,
regardless of whether the original service
invocation succeeded or failed. Including the
pipeline can be useful if a resource experiences a
fatal failure (such as hard disk failure). To restore
the resource to its pre‐failure state, you could
resubmit all the service invocations that occurred
since the last time the resource was backed up. This
is sometimes called a full audit for recovery.
Performance Impact: The Always option is the most
expensive option under Include pipeline. This option
places the greatest demand on network bandwidth
because Integration Server must write a copy of the
input pipeline to the audit log every time a service
executes. The actual network bandwidth needed
depends on the size of the initial input pipeline. A
large input pipeline can negatively impact the rate
at which the data is saved to the audit log.
Note: If you want audit events generated by this service to pass a copy
of the input pipeline to any subscribed event handlers, select On errors
only or Always.
Important! The options you select can be overwritten at run time by the value of the
watt.server.auditLog server property, set in the server configuration file. This
property specifies whether to globally enable or disable service logging. The default
enables customized logging on a service‐by‐service basis.
Property Description
Property Description
Name Specifies the name of the file that contains the output template for
the selected service. To assign an existing template to this service,
type the name of the template file in this field. To create a new
template file for this service, type a name for the template in this
field or accept the name that is suggested by Designer.
Template source Opens the Template source page so that you can edit the existing
output template.
Note: Changes you make to an output template are written to the
template file when you click Save in the Template source page.
Changes that you make to a template file affect all the services in the
package that use the template, not just the service that is currently
open in the editor.
Note: You can only edit an output template in Designer if it one already assigned to
the service. To assign an output template to a service, use Developer.
Transformer Properties
In the Properties view, you can set the properties for a transformer inserted into a MAP
step.
To view properties for a transformer, double‐click the transformer in the Pipeline view of
Designer.
Related Topics
“General Properties for Transformers” on page 356
Property Description
Service Specifies the fully qualified name of the service that is invoked at
run time. When you insert a transformer, Designer automatically
assigns the name of that service to the Service property.
If the service that a transformer invokes is moved, renamed, or
deleted, you must change the Service property. Specify the service’s
fully qualified name in the folderName:serviceName format or click
to select a service from a list.
Validate input Specifies whether or not the Integration Server validates the input to
the transformer against the input signature of the service. Select True
if you want to validate the input of the service. Select False if you do
not want to validate the input of the service.
Validate output Specifies whether or not the Integration Server validates the output
of the transformer against the output signature of the service. Select
True if you want to validate the output of the service. Select False if
you do not want to validate the output of the service.
Variable Properties
You can specify the data type and input values for a variable. You can also apply content
constraints and structural constraints to a variable for validation purposes. A variable can
be a String, String list, String table, document, document list, document reference,
document reference list, Object, or Object list.
In the Properties view, select a variable in the editor to set general properties and
constraints for the variable.
Note: Specific properties in the Properties view are enabled or disabled, depending on
the type of variable you have selected.
Property Description
Name Specifies the name of the variable. To change the name of a variable,
rename it in the editor.
Type Specifies the data type of the variable.
XML namespace Specifies the XML namespace to which the variable belongs.
Comments Specifies a comment about the variable.
String display Specifies how you want to enter input data for this variable. You can
type only select a display type if the variable is a String. Select one of the
following:
Select… To…
Property Description
Document For a document reference or document reference list, this property
reference specifies the fully qualified name of the document type in the
Package Navigator view that the variable references.
Substitution If the variable represents an element that is a member of a
group substitution group, identifies the head element for which this
element can be substituted.
Property Description
Required Specifies whether or not the variable needs to exist at run time.
Select... To...
True The default value. Specifies that the variable
must exist in the pipeline at run time.
False Specifies that the existence of the variable is
optional at run time.
Allow null Specifies whether null is a valid value for this variable.
Select... To...
True The default value. Specifies that a null value will
not result in a validation error at run time.
False Specifies that a null value will cause a validation
error at run time.
Allow unspecified Specifies whether the document is open or closed. This property is
fields enabled only if the variable is a document or document list.
Select... To...
True The default value. The document is considered
open. At run time, fields that exist in the
document but are not declared in the document
field will not cause errors.
False The document or document list is considered
closed. At run time, fields that exist in the
document but are not declared in the document
field will be treated as errors.
Property Description
To view and edit the content constraint for a variable, click and
select one of the following:
Select… To…
Note: Designer displays the ‡ symbol next to String, String list, and String table variables
with a content type constraint only. Designer does not display the ‡ symbol next to Object
and Object list variables with a specified Java class constraint. Object and Object lists with
an applied Java class constraint have a unique icon. For more information about icons for
constrained Objects, see “Java Classes for Objects” on page 386.
General Properties
In the Properties view, under General, you can assign an ACL to a Web service connector.
You can also add a comment to the service.
Property Description
Important! The Run time properties in the Properties view should only be set by
someone who is thoroughly familiar with the structure and operation of the selected
service. Improper use of these options can lead to a service failure at run time and/or
the return of invalid data to the client program.
Property Description
Stateless Specifies whether or not Integration Server is required to maintain
state information for this service for the duration of the client
session. Select True if the service is a self‐contained, atomic unit of
work and does not need access to state information. This reduces
the number of server resources it consumes at run time. Select False
if the service is part of a multi‐service transaction or if you are
unsure of its state requirements.
The default is False
Cache results Indicates whether Integration Server stores the service results in a
local cache for the time period specified in the Cache expire property.
After the service executes, the server places the entire pipeline
contents into a local cache. When subsequent requests for the
service provide the same set of input values, the server returns the
cached results instead of invoking the service again. Select True to
cache the service results. Select False if you do not want to cache
service results. Cache results for stateless services only.
The default is False.
Note: Caching is only available for data that can be written to the
repository server. Because XML nodes cannot be written to the
repository, they cannot be cached.
Property Description
Prefetch Determines whether Integration Server automatically refreshes a
cached result when it expires by re‐executing the service using the
same inputs. To automatically refresh this serviceʹs cached results,
set Prefetch to True. (Prefetch can consume a substantial amount of
server memory; consult your Server Administrator before using this
option.)
The cache may not be refreshed at the exact time specified in Cache
expire. It may vary from 0 to 15 seconds, according to the cache
sweeper thread. For details, see the watt.server.cache.flushMins
setting in Integration Server.
Prefetch Specifies the minimum number of times that a cached result must be
activation accessed (hit) with the same inputs in order for the server to
prefetch results when it expires. If you enable Prefetch, you must
specify an integer representing the minimum number of hits a
cached result must receive to be eligible for prefetch. (Entries that
do not receive the minimum number hits are released from
memory.)
The cache may not be refreshed at the exact time the last hit fulfills
the Prefetch Activation requirement. It may vary from 0 to 15 seconds,
according to the cache sweeper thread. For details, see the
watt.server.cache.flushMins setting in Integration Server.
Execution locale Specifies the locale in which this service will be executed.
Audit Properties
In the Properties view, under Audit, you enable auditing and specify when a service
should generate audit data.
Property Description
Never Indicate that the service should never generate
audit data.
When top-level Indicate that the service should generate audit
service only data only when it is invoked by a client request
or a trigger.
Always Indicate that the service should generate audit
data every time it executes.
Property Description
Log on Specifies the execution points at which the service generates audit
data.
Select… To…
Never Indicate that the input pipeline should never be
included in the audit log.
On errors only Indicate that the input pipeline should be
included in the audit log only when the service
ends because of errors.
Always Indicate that the input pipeline should always
be included in the audit log.
Note: If you want audit events generated by this service to pass a
copy of the input pipeline to any subscribed event handlers, select
On errors only or Always.
Important! The options you select can be overwritten at run time by the value of the
watt.server.auditLog server property, set in the server configuration file. This
property specifies whether to globally enable or disable service logging. The default
enables customized logging on a service‐by‐service basis.
Property Description
Note: Most webMethods users use the unqualified portion of the
service name as the local name.
Property Description
Name Specifies the name of the file that contains the output template for
the selected service. To assign an existing template to this service,
type the name of the template file in this field. To create a new
template file for this service, type a name for the template in this
field or accept the name that is suggested by Designer.
Template source Opens the Template source page so that you can edit the existing
output template.
Note: Changes you make to an output template are written to the
template file when you click Save in the Template source page.
Changes that you make to a template file affect all the services in the
package that use the template, not just the service that is currently
open in the editor.
Note: You can only edit an output template in Designer if it is already assigned to the
service. To assign an output template to a service, use Developer.
General Properties
In the Properties view, under General, you can view and assign properties to a Web
service descriptor.
Property Description
Name Displays the name of the Web service descriptor.
Direction Displays whether the Web service descriptor is for a provider Web
service (that can be invoked by an external user) or for a consumer
Web service (that requests the use of a provider entityʹs Web
service).
WS-I compliance Specifies whether the Web service descriptor enforces compliance
with the WS‐I Basic Profile 1.1 standards.
Target Displays the XML Target Namespace of the Web service. By default
namespace this is set to the fully qualified URL of the host server.
WSDL URL URL used to retrieve the WSDL for the Web service.
Namespaces Displays a list of the XML namespaces used within the document.
This is an array of Namespace Prefixes and their associated XML
Namespace names.
Attachment Specifies whether any attachment should be enabled. The default is
enabled False.
Note: Selecting the Response or Request element in an operation simply displays the
properties for the operation as a whole. You must select the individual Header, Body,
or Fault to display its properties.
Related Topics
“Operation Properties” on page 366
“Body Element Properties” on page 366
“Header Element Properties” on page 367
Operation Properties
In the Properties view, under General, you can view basic information about an operation
in the Web service descriptor.
Property Description
Property Description
Name Name of the Body element.
Document type Fully‐qualified name of the IS Document type that defines the body.
Namespace Namespace owner of the Body element.
owner
Signature type Signature type of the Body element.
Schema URL Schema URL, if the signature is from a schema.
Property Description
Property Description
Name Displays the name of the Header element.
Document type Displays the fully‐qualified name of the IS Document type that
defines the Header element.
Must understand Indicates whether the Header element must be understood by the
SOAP node in order for the message to be processed.
“Must Understand” is a SOAPHeader attribute. If MustUnderstand
is set and the SOAP Node Receives a Header that it does not
understand, it must not process the SOAP Request and the SOAP
Node must return a “Not Understood” Fault.
If this attribute is set to True for a consumer Web service descriptor,
the Must Understand attribute of the Header is set to true in the
request.
Role URI naming the Actor (for SOAP 1.1) or Role (for SOAP 1.2) at
which this header element is targeted. A Header is “targeted” at a
SOAP Node if the node is acting in the role specified on that Header.
The possible values are defined by the SOAP Specification.
General Properties
In the Properties view, under General, you can view basic information about a Fault
element in an operation’s request or response.
Property Description
Name Displays the name of the Fault element.
Document type Displays the fully‐qualified name of the IS Document type defining
the Fault element.
Binder Properties
In Properties view, you can view basic information about the binder for a Web service
descriptor when you select a binder in Binders tab in the Web services descriptor editor.
General Properties
In the Properties view, under General, you can view basic information about the binder
for the Web service descriptor.
Property Description
Property Description
General Properties
In the Properties view, under General, you can view basic information about the header
handler.
Property Description
“BRANCH” on page 371
“EXIT” on page 374
“INVOKE” on page 375
“LOOP” on page 376
“MAP” on page 378
“REPEAT” on page 379
“SEQUENCE” on page 382
BRANCH
The BRANCH step selects and executes a child step based on the value of one or more
variables in the pipeline. You indicate the variables you want to branch on by specifying a
switch value or by writing an expression that includes the variables.
Related Topics
“Branching on a Switch Value” on page 371
“Branching on Expressions” on page 372
“BRANCH Properties” on page 373
“Conditions that Will Cause a BRANCH Step to Fail” on page 373
Name1
if the value of choice is
Name2
if the value of choice is
Name of the
switch field is NameN
choice if the value of choice is
$null
if choice does not exist or has
a value of ‘$null’
no
if the value of choice is an
empty string “ “
$defaul
Otherwise
Branching on Expressions
When you branch on expressions, you set the Evaluate labels property of the BRANCH
step to true. In the Label property for each child step, you write an expression that
includes one or more variables. At run time, the BRANCH step executes the first child
step with an expression that evaluates to true.
If you want to specify a child step to execute when none of the expressions are true, set
the label of the child step to $default.
Child2
if the expression of second child is true
Evaluate
labels is set to
true ChildN
if the expression of nth child is
$defau
Otherwise
BRANCH Properties
The BRANCH step has the following properties
Property Description
Comments Optional. Specifies a descriptive comment for the step.
Scope Optional. Specifies the name of a document (IData object) in the
pipeline to which you want to restrict this step. If you want this step to
have access to the entire pipeline, leave this property blank.
Timeout Optional. Specifies the maximum number of seconds that this step
should run. If this time elapses before the step completes, the server
waits for the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this BRANCH step as a target for
another BRANCH or EXIT step.) Specifies a name for this instance of
the BRANCH step, or a null, unmatched, or empty string ($null,
$default, blank).
Switch Specifies the String field that the BRANCH step uses to determine
which child flow step to execute. The BRANCH step executes the child
flow step whose label matches the value of the field specified in the
Switch property. Do not specify a value if you set the Evaluate labels
property to True.
Evaluate Specifies whether or not you want the server to evaluate labels of child
labels steps as conditional expressions. When you branch on expressions, you
enter expressions in the Label property for the children of the BRANCH
step. At run time, the server executes the first child step whose label
evaluates to True. To branch on expressions, select True. To branch on the
Switch value, select False.
EXIT
The EXIT step exits the entire flow service or a single flow step. Specifically, it may exit
from the nearest ancestor loop step, a specified ancestor step, the parent step, or the
entire flow service.
The EXIT step can throw an exception if the exit is considered a failure. When an
exception is thrown, user‐specified error message text is displayed by typing it directly or
by assigning it to a variable in the pipeline.
Related Topics
“EXIT Properties” on page 374
“Examples of When to Use” on page 375
EXIT Properties
The EXIT step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for the step.
Label Optional. (Required if you are using this EXIT step as a target for a
BRANCH step.) Specifies a name for this specific step, or a null,
unmatched, or empty string ($null, $default, blank).
Exit from Required. Specifies the flow step or service from which you want to
exit.
Specify this value… To exit the…
$parent Parent flow step, regardless of the type of step.
$loop Nearest parent LOOP or REPEAT step.
$flow Entire flow.
label Nearest ancestor step that has a label that
matches this value.
Note: If the label you specify does not match the
label of an ancestor flow step, the flow will exit
with an exception.
Property Description
Signal Required. Specifies whether the exit is considered a success or a
failure. A SUCCESS condition exits the flow service or step. A FAILURE
condition exits the flow service or step and throws an exception. The
text of the exception message is contained in the Failure message
property.
Failure Optional. Specifies the text of the exception message that is displayed
message when Signal is set to FAILURE. If you want to use the value of a pipeline
variable for this property, type the variable name between % symbols.
For example, %mymessage%.
INVOKE
The INVOKE flow step invokes another service. You can use it to invoke any type of
service, including another flow service.
Related Topics
“INVOKE Properties” on page 375
“Conditions that Will Cause an INVOKE Step to Fail” on page 376
INVOKE Properties
The INVOKE step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for the step.
Scope Optional. Specifies the name of a document (IData object) in the
pipeline to which you want to restrict this step. If you want this step
to have access to the entire pipeline, leave this property blank.
Property Description
Timeout Optional. Specifies the maximum number of seconds that this step
should run. If this time elapses before the step completes, the server
waits for the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property,
type the variable name between % symbols. For example,
%expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this step as a target for a
BRANCH or EXIT step.) Specifies a name for this specific step, or a
null, unmatched, or empty string ($null, $default, blank).
Service Required. Specifies the fully qualified name of the service to invoke.
Validate input Optional. Specifies whether the server validates the input to the
service against the service input signature. If you want the input to be
validated, select True. If you do not want the input to be validated,
select False.
Validate output Optional. Specifies whether the server validates the output of the
service against the service output signature. If you want the output to
be validated, select True. If you do not want the output to be validated,
select False.
LOOP
The LOOP step takes as input an array variable that is in the pipeline. It loops over the
members of an input array, executing its child steps each time through the loop. For
example, if you have a service that takes a string as input and a string list in the pipeline,
use the LOOP step to invoke the service one time for each string in the string list.
You identify a single array variable to use as input when you set the properties for the
LOOP step. You can also designate a single variable for output. The LOOP step collects
an output value each time it runs through the loop and creates an output array that
contains the collected output values. If you want to collect more than one variable,
specify a document that contains the fields you want to collect for the output variable.
more input
array
input is
members?
an array
Yes
get next
member of child child child
input array
Related Topics
“LOOP Properties” on page 377
“Conditions that Will Cause a LOOP Step to Fail” on page 378
LOOP Properties
The LOOP step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for the step.
Scope Optional. Specifies the name of a document (IData object) in the
pipeline to which you want to restrict this step. If you want this step to
have access to the entire pipeline, leave this property blank.
Timeout Optional. Specifies the maximum number of seconds that this step
should run. If this time elapses before the step completes, the server
waits for the step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this step as a target for a BRANCH
or EXIT step.) Specifies a name for this specific step, or a null,
unmatched, or empty string ($null, $default, blank).
Property Description
MAP
The MAP step adjusts the pipeline at any point in a flow. It makes pipeline modifications
that are independent of an INVOKE step.
Within the MAP step, you can:
Link (copy) the value of a pipeline input field to a new or existing pipeline output
field.
Drop an existing pipeline input field. (Keep in mind that once you drop a field from
the pipeline, it is no longer available to subsequent services in the flow.)
Assign a value to a pipeline output field.
Perform document‐to‐document mapping in a single view by inserting transformers.
Related Topics
“MAP Properties” on page 379
“Example of When to Use” on page 379
MAP Properties
The MAP step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for this step.
Scope Optional. Specifies the name of a document (IData) in the pipeline to which
you want to restrict this step. If you want this step to have access to the
entire pipeline, leave this property blank.
Timeout Optional. Specifies the maximum number of seconds that this step should
run. If this time elapses before the step completes, the server waits for the
step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this step as a target for a BRANCH or
EXIT step.) Specifies a name for this specific step, or a null, unmatched, or
empty string ($null, $default, blank).
REPEAT
The REPEAT step repeatedly executes its child steps up to a maximum number of times
that you specify. It determines whether to re‐execute the child steps based on a Repeat on
condition. You can set the repeat condition to one of the following:
Repeat if any one of the child steps fails.
Repeat if all of the elements succeed.
You can also specify a time period that you want the REPEAT flow step to wait before it
re‐executes its child steps.
reps = reps + 1
Related Topics
“REPEAT Properties” on page 380
“When Does REPEAT Fail?” on page 381
“Examples of When to Use” on page 381
REPEAT Properties
The REPEAT step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for this step.
Scope Optional. Specifies the name of a document (IData object) in the pipeline
to which you want to restrict this step. If you want this step to have access
to the entire pipeline, leave this property blank.
Timeout Optional. Specifies the maximum number of seconds that this step should
run. If this time elapses before the step completes, the server waits for the
step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this step as a target for a BRANCH
or EXIT step.) Specifies a name for this specific step, or a null, unmatched,
or empty string ($null, $default, blank).
Property Description
Count Required. Specifies the maximum number of times the server re‐executes
the child steps in the REPEAT step. Set Count to 0 (zero) to instruct the
server that the child steps should not be re‐executed. Set Count to a value
greater than zero to instruct the server to re‐execute the child steps up to a
specified number of times. Set Count to -1 to instruct the server to re‐
execute the child steps as long as the specified Repeat on condition is true.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %servicecount%.
Repeat Optional. Specifies the number of seconds the server waits before re‐
interval executing the child steps. Specify 0 (zero) to re‐execute the child steps
without a delay.
If you want to use the value of a pipeline variable for this property, type
the variable name between % symbols. For example, %waittime%.
Repeat on Required. Specifies when the server re‐executes the REPEAT child steps.
Select SUCCESS to re‐execute the child steps when the all the child steps
complete successfully. Select FAILURE to re‐execute the child steps when
any one of the child steps fails.
SUCCESS A child within the REPEAT block fails.
FAILURE The Count limit is reached before its children execute
successfully.
If the REPEAT step is a child of another step, the failure is propagated to its parent.
SEQUENCE
The SEQUENCE step forms a collection of child steps that execute sequentially. This is
useful when you want to group a set of steps as a target for a BRANCH step.
You can set an exit condition that indicates whether the sequence should exit prematurely
and, if so, under what condition. Specify one of the following exit conditions:
Exit the sequence when a child step fails. Use this condition when you want to ensure that
all child steps are completed successfully. If any child step fails, the sequence ends
prematurely and the sequence fails.
Exit the sequence when a child step succeeds. Use this condition when you want to define
a set of alternative services, so that if one fails, another is attempted. If a child step
succeeds, the sequence ends prematurely and the sequence succeeds.
Exit the sequence after executing all child steps. Use this condition when you want to
execute all of the child steps regardless of their outcome. The sequence does not end
prematurely.
Related Topics
“INVOKE Properties” on page 375
“Conditions that Will Cause an INVOKE Step to Fail” on page 376
SEQUENCE Properties
The SEQUENCE step has the following properties.
Property Description
Comments Optional. Specifies a descriptive comment for this step.
Scope Optional. Specifies the name of a document (IData object) in the pipeline to
which you want to restrict this step. If you want this step to have access to
the entire pipeline, leave this property blank.
Property Description
Timeout Optional. Specifies the maximum number of seconds that this step should
run. If this time elapses before the step completes, the server waits for the
step to complete and then raises an exception.
If you want to use the value of a pipeline variable for this property, type the
variable name between % symbols. For example, %expiration%.
If you do not need to specify a time‐out period, leave Timeout blank.
Label Optional. (Required if you are using this step as a target for a BRANCH or
EXIT step.) Specifies a name for this specific step, or a null, unmatched, or
empty string ($null, $default, blank).
Exit on Required. Specifies when to exit the SEQUENCE step.
Specify this value... To...
FAILURE Exit the sequence when a child step fails. (Execution
continues with the next flow step in the flow service.)
The SEQUENCE step executes its child steps until either
one fails or until it executes all its child steps. This is the
default.
Note: When a SEQUENCE step exits on failure, the
Integration Server rolls back the pipeline contents. That
is, the Integration Server returns the pipeline to the state
it was in before the SEQUENCE step executed.
SUCCESS Exit the sequence when a child step executes
successfully or after all child steps fail. (Execution
continues with the next flow step in the flow service.)
DONE Exit the sequence after all child steps execute.
The SEQUENCE step executes all of its child steps
regardless of whether they succeed or fail.
If Exit on is set to SUCCESS, conditions that will cause a failure include:
All the child steps fail.
The SEQUENCE step does not complete before the time‐out period expires.
If Exit on is set to DONE, conditions that will cause a failure include:
The SEQUENCE step does not complete before the time‐out period expires.
“Data Types” on page 385
“Java Classes for Objects” on page 386
“How Designer Supports Tables” on page 388
Data Types
Data is passed in and out of a service through an IData object. An IData object is the
collection of name/value pairs on which a service operates. An IData object can contain
any number of elements of any valid Java objects, including additional IData objects and
IDataCodable objects.
Each element stored in an IData object corresponds to a data type. The following table
identifies the data types supported by Designer.
Note: Designer displays small symbols next to a variable icon to indicate validation
constraints. Designer uses to indicate an optional variable and the ‡ symbol to
denote a variable with a content constraint.
You can assign values to variables in the pipeline using on the Pipeline view
toolbar..
Note: When you input values for a constrained Object during debugging or when
assigning a value in the pipeline, Designer validates the data to make sure it is of the
correct type.
The following table identifies the Java classes you can apply to Objects and Object list
variables in Designer.
18 Icons
“Package Navigator View Icons” on page 389
“UDDI Registry View Icons” on page 392
“Flow Step Icons” on page 393
“Data Types” on page 385
“Java Classes for Objects” on page 386
Note: Designer places Trading Networks document types in a package
named “Trading Networks Documents”.
A folder. A folder contains related services and optional folders (called
subfolders). To display the contents of a folder, click next to its name.
A flow service. A flow service is a service written in the webMethods flow
language.
A Java service. A Java service is a service written in Java.
A C service. A C service is a service written in C/C++.
Related Topics
“UDDI Registry View Icons” on page 392
“Flow Step Icons” on page 393
“Data Types” on page 385
“Java Classes for Objects” on page 386
Related Topics
“Package Navigator View Icons” on page 389
“Flow Step Icons” on page 393
“Data Types” on page 385
“Java Classes for Objects” on page 386
MAP Performs specified editing operations on the pipeline (such
as mapping variables in the pipeline, adding variables to
the pipeline, and dropping variables from the pipeline).
BRANCH Executes a specified flow step based on the value of a
specified variable in the pipeline.
LOOP Executes a set of flow steps once for each element in a
specified array.
REPEAT Re‐executes a set of flow steps up to a specified number of
times based on the successful or non‐successful
completion of the set.
SEQUENCE Groups a set of flow steps into a series. The SEQUENCE
step is implicit in most flow services (that is, the steps in a
flow service are treated as a series). However, at times it is
necessary to explicitly group a subset of flow steps using
SEQUENCE so that they can be treated as a unit.
EXIT Controls the execution of a flow step (for example, abort
an entire flow service from within a series of deeply nested
steps, throw an exception without writing a Java service,
or exit a LOOP or REPEAT without throwing an
exception).
Related Topics
“Package Navigator View Icons” on page 389
“UDDI Registry View Icons” on page 392
“Data Types” on page 385
“Java Classes for Objects” on page 386
19 Toolbars
“Document Type Editor Toolbar” on page 395
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Variables View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
Button Description
Reverses the previous action. Equivalent to Edit > Undo.
Repeats the previous action. Equivalent to Edit > Redo.
Cuts elements. Equivalent to Edit > Cut.
Copies elements. Equivalent to Edit > Copy.
Pastes elements after performing a copy or cut. Equivalent to Edit > Paste.
Deletes the selected variable. If you select a variable that has children, the
children are deleted as well. Equivalent to Edit > Delete.
Moves the selected variable up one position. If the selected variable
cannot be moved up from its current position, this button is not available.
(Try promoting or demoting it first.)
Moves the selected variable down one position. If the selected variable
cannot be moved down from its current position, this button is not
available. (Try promoting or demoting it first.)
Promotes the selected variable one position to the left. You use this button
to move a variable out of a document or document list. If the variable
cannot be shifted left from its current position, this button is not available.
Button Description
Demotes the selected variable one position to the right. You use this
button to make a variable a member of a document or document list. If
the variable cannot be shifted right from its current position, this button is
not available.
Displays a list of data types that you can use to create variables for the
document type. To create a variable for the document type, select the
appropriate data type from this list, and then give the new variable a
name.
Related Topics
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Variables View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Working With Document Types” on page 263
Button Description
Deletes the selected flow step. If you select a step that has children, the
children are deleted as well. Equivalent to Edit > Delete.
Moves the selected flow step up in the list. If the selected step cannot be
moved up from its current position, this button is not available. (Try
promoting or demoting it first.)
Moves the selected flow step down in the list. If the selected step cannot
be moved down from its current position, this button is not available. (Try
promoting or demoting it first.)
Promotes a flow step in the parent/child hierarchy. This action moves the
step up one level in the hierarchy.
Button Description
Demotes a flow step in the parent/child hierarchy. This action makes the
selected step a child of the preceding parent step. (This button is only
available when you select a step that can become a child.)
Inserts the previously inserted flow step.
Related Topics
“Document Type Editor Toolbar” on page 395
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Building Flow Services” on page 155
Button Description
Collapses all of the expanded Integration Servers in Package Navigator
view.
Opens the editor for the selected element in Package Navigator view.
Filters the contents of Package Navigator view by displaying elements of
a specified type only.
Opens Integration Servers preferences where you can add, edit, or
remove Integration Server definitions.
Sorts the contents of Package Navigator view alphabetically by name or
alphabetically by element type.
Related Topics
“Document Type Editor Toolbar” on page 395
“Flow Service Editor Toolbar” on page 396
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Working with Elements” on page 33
“Working with webMethods Integration Server” on page 19
Button Description
Creates a link between the variables in the pipeline. Links can be
created between variables in Pipeline In and Service In, or between Service
Out and Pipeline Out. In a MAP step, links can be created between
variables in Pipeline In and Transformers, or between Transformers and
Pipeline Out. To link a variable from one stage to another, select the two
variables, and then click the link button. This button is not available
unless you select two variables that can be linked successfully.
Assigns a value to the selected variable in the Service In or Pipeline Out
stage.
Drops the selected variable from the pipeline. You may remove a
variable from the Pipeline In or Pipeline Out stage. When you drop a
variable, that variable is removed permanently from the pipeline and is
not available to subsequent services in the flow.
Adds a new variable to the selected stage in the pipeline. This is a useful
way to create a variable that is used by a service in a flow (that is, taken
as input or produced as output), but was omitted from the input/output
signature.
Moves the selected variable up one position. If the selected variable
cannot be moved up from its current position, this button is not
available. (Try promoting or demoting it first.)
Moves the selected variable down one position. If the selected variable
cannot be moved down from its current position, this button is not
available. (Try promoting or demoting it first.)
Promotes the selected variable one position to the left. If the variable
cannot be shifted left from its current position, this button is not
available.
Demotes the selected variable one position to the right. If the variable
cannot be shifted right from its current position, this button is not
available.
Inserts a service for use as a transformer in a MAP step. This feature is
only available when a MAP step is selected in the editor.
Related Topics
“Document Type Editor Toolbar” on page 395
“Variables View Toolbar” on page 401
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Mapping Data in Flow Services” on page 193
Button Description
Goes to the flow step at which an error occurred while running or
debugging a flow service.
Saves the service results pipeline to a file in your local file system.
Saves the service results pipeline to the
IntegrationServer_directory\pipeline directory on the machine that hosts
Integration Server.
Restores the pipeline contents from a file on your local file system.
Restores the pipeline contents from the
IntegrationServer_directory\pipeline directory on the machine that hosts
Integration Server.
Related Topics
“Document Type Editor Toolbar” on page 395
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“UDDI Registry View Toolbar” on page 401
“Variables View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Debugging a Flow Service” on page 240
Button Description
Connect to a UDDI Registry while working in Designer.
Disconnect from a UDDI Registry while working in Designer.
Refresh the display of Web services.
Create an expression that filters the contents of the UDDI Registry view
based on the value of a Web service property.
Remove the filter from the contents of the UDDI Registry view and
display all the published Web services.
Create a Web service descriptor (WSD) from the Web service selected in
the UDDI Registry view.
Related Topics
“Document Type Editor Toolbar” on page 395
“Variables View Toolbar” on page 401
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“Web Service Descriptor Editor Toolbar” on page 402
Button Description
Drop a selected variable from the pipeline passed to the next step in a
debugging session.
Deletes a row in a table for the selected variable.
Saves the pipeline as an XML document to your local file system..
Button Description
Loads a pipeline from a local file. The pipeline you load completely
replaces the current debugging pipeline.
Saves the pipeline as an XML file on in the
IntegrationServer_directory\pipeline directory on the machine that hosts
the Integration Server.
Loads a pipeline from a file in the IntegrationServer_directory\pipeline
directory on the machine that hosts the Integration Server.
Related Topics
“Document Type Editor Toolbar” on page 395
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Web Service Descriptor Editor Toolbar” on page 402
“Debugging a Flow Service” on page 240
“Modifying the Pipeline while Debugging” on page 251
Button Description
Adds one or more operations to a Web service descriptor.
Enabled only for provider Web service descriptors created from an
Integration Server service (in other words, you cannot add an operation
to a consumer Web service descriptor or a provider Web service
descriptor created from a WSDL URL or a UDDI Registry). The operation
is added to the view in the Operations area as well as the Binders tab.
Adds a binder definition (SOAP/Transport/Use‐Style) to a Web service
descriptor.
Enabled only for provider Web service descriptors created from an
Integration Server service (in other words, you cannot add a binder
definition to a consumer Web service descriptor or a provider Web service
descriptor created from a WSDL URL or a UDDI Registry). All existing
operations are duplicated within the new binder.
Button Description
Adds a header or fault element to a Request or Response.
If a fault element is selected when you click this button, the default
Designer document selector dialog enables you to add a document for the
fault.
If a header element is selected when you click this button, a special
document selector displays only those document types supported by the
header handlers listed in the Handler tab.
Add a header handler to a Web service descriptor.
Opens a drop‐down list of the existing header handlers. The selected
handler is added to the top of the list.
Analyze Web service descriptor for WS I conformance.
Regenerate the specified Web service connectors.
Enabled only for consumer Web service descriptors. When no operations
are selected, this button refreshes (regenerates) all Web service connectors
in the Web service descriptor. When one or more operations are selected,
only the Web service connectors for the selected operations are refreshed.
This process overwrites existing Web service connectors.
Related Topics
“Document Type Editor Toolbar” on page 395
“Variables View Toolbar” on page 401
“Flow Service Editor Toolbar” on page 396
“Package Navigator View Toolbar” on page 398
“Pipeline View Toolbar” on page 399
“Service Result View Toolbar” on page 400
“UDDI Registry View Toolbar” on page 401
“Supported Elements” on page 405
“Unsupported Elements” on page 405
Supported Elements
Designer provides support for the following elements originally in webMethods
Developer.
Document types
Flow services
JMS triggers
Web service connectors
Web service descriptors
Related Topics
“Unsupported Elements” on page 405
Unsupported Elements
Designer does not yet provide full support for the following elements from webMethods
Developer. While you can perform some basic tasks such as moving, copying, renaming,
or deleting, Designer cannot be used to create or modify these elements. To create or
modify any of the elements listed below, use webMethods Developer.
Adapter services or adapter notifications
Broker/local triggers
C services
Connections
Flat file dictionaries or flat file schemas
IS schemas
Java services
Listeners
.NET services
Specifications
XSLT services
Note: While you cannot yet create an IS schema in Designer, any IS schema created
when you use Designer to create an IS document type will appear in Package
Navigator view.
Note: Even though Java services, C/C++ services, and specifications are not fully
supported in Designer Version 7.2, you can view the signature of the services or
specifications. If you double‐click a Java service, C/C++ service, or specification in
Package Navigator view, Designer displays the element signature on the
Input/Output tab for the editor.
Related Topics
“Supported Elements” on page 405