Making a Document Type Publishable
Keep the following points in mind when making a document type publishable:
You can only make an IS document type publishable if you own the lock on the IS document type (or you have it checked out) and you have write permission to the IS document type.
If you want to publish instances of the document type to a
webMethods messaging provider (
Broker or
Universal Messaging), make sure that a messaging connection alias exists for the provider. If no messaging connection alias exists, all publishable document types will be publishable locally only.
Instances of a publishable document type that uses
Universal Messaging the messaging provider cannot be published locally.
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.
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. Additionally,
Broker cannot apply a filter to the contents of the field. 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
Administering webMethods Broker for information on naming conventions for
Broker elements.
The protocol buffers encoding type, which can be used with publishable document types that work with
Universal Messaging, does not support certain field names or data types. These fields cannot be represented in protocol buffers and will be passed through to
Universal Messaging .
Universal Messaging cannot filter on the contents of these fields. However, subscribing triggers that receive the document will decode the field and include it in the pipeline. For more information about protocol buffers and supported field names and data types. see
Using Protocol Buffers as the Encoding
TypeAn IS document type that contains a Document Reference field or Document Reference list field named “group” cannot become a publishable document type with an encoding type of protocol buffers. The document type can only use the IData encoding type. The name “group” is a reserved name for protocol buffers.
If a document type contains a
_properties field at the top-level and the associated messaging provider is
Universal Messaging,
Integration Server and
Universal Messaging treat the contents of
_properties as custom header fields in the published document. For more information about the
_properties field, see
About the Properties Field.
Designer makes an IS document type generated from an e-form template a publishable document type automatically.
You can make a document type publishable when the
Linked to source property is set to true. When a document type is linked to its source, you cannot change the structure or contents of the document type. However,
Designer does not consider the addition of the
_env field to be a structural change that breaks the association with the source file.
To make a document type publishable
1. In the Package Navigator view of the Service Development perspective, 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 Connection alias name, do one of the following:
Select the name of the messaging connection alias with which instances of this document type will be published.
Select DEFAULT (
defaultAliasName) to use the default messaging connection alias.
Leave the
Connection alias name property blank to use the default messaging connection alias.
To publishable instances of this document locally only, select IS_LOCAL_CONNECTION.
Note: | You can publish a document associated with a Broker connection alias locally by setting the local input parameter of the publishing service to true. |
4. If you selected a Universal Messaging connection alias for the Connection alias name property or you selected DEFAULT and the default messaging connection alias is a Universal Messaging connection alias, next to Encoding type, select one of the following to indicate the format used to encode and decode instances of this publishable document type.
Select... | To encode and decode published documents as... |
IData | A serialized IData object. An IData object is the universal container that Integration Server uses to receive input and deliver output. An IData object contains an ordered collection of key/value pairs. When a document is encoded as IData, triggers that subscribe to the document type can specify provider filters for the _properties header only. |
Protocol buffers | A protocol buffer. Protocol buffers is an approach to encoding and decoding structured data developed by Google. This is the default. When a document is encoded as a protocol buffer, triggers that subscribe to the document type can specify provider filters for the body of the message only. Note that the body of the message includes the headers as well. |
For more information about setting the encoding type, see
About the Encoding Type for a Publishable Document
Type.
5. Next to the Discard property, select one of the following to indicate how long instances of this publishable document type remain on the provider before the messaging provider discards them.
Select... | To... |
False | Specify that the messaging provider should never discard instances of this publishable document type. |
True | Specify that the messaging provider 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. |
6. 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. |
7. Select File > Save. Designer displays beside the document type name in the Package Navigator to indicate it is a publishable document type. 8. If you selected protocol buffers as the encoding type and a field in the publishable document type cannot be represented in protocol buffers, Designer displays a warning message to that effect. Click OK to dismiss the message.
Notes:
In the
Connection alias type property,
Designer displays
Broker or
Universal Messaging to indicate which messaging provider is used by the selected alias.
In the Properties view, the
Provider definition property displays the name of the corresponding object created on the messaging provider.
Universal Messaging creates a channel that corresponds to the document type. The channel name uses the following naming convention:
wm/is/folderName/subFolderName/documentTypeName. If a channel with that name already exists,
Integration Server does not create a new channel.
Note: | When the Universal Messaging server is in a cluster, Universal Messaging creates the channel on all of the servers in the cluster. |
Broker has a
Broker document type that corresponds to the publishable document type. The
Broker document type uses the following naming convention:
wm::is::folderName::documentTypeName. If a document type with this name already exists on the
Broker,
Integration Server appends “_1” to the
Broker document type name.
If the messaging connection alias specified in the
Connection alias name property is not enabled at the time you make the document type publishable, one of the following occurs:
If the
Connection alias type is
Broker, the publishable document type can be used only in local publishes. The
Provider definition property displays “Publishable Locally Only”. Later, when the messaging connection alias is enabled, you can create a corresponding
Broker document type by pushing the document type to the
Broker during synchronization.
If the
Connection alias type is
Universal Messaging, the
Provider definition property displays the name of the channel. However, the channel may not exist on
Universal Messaging. Later, when the messaging connection alias is enabled, you can create a channel by pushing the document type to
Universal Messaging during synchronization.
When you make a document type publishable, the
Integration Server adds an envelope field (
_env) to the document type automatically. When a document is published,
Integration Server and/or the messaging provider populate this field with metadata about the document. For more information about this field, see
About the Envelope Field.
If you selected protocol buffers as the encoding type,
Integration Server creates a message descriptor for the publishable document type. For more information about using protocol buffers as the encoding type, see
Using Protocol Buffers as the Encoding
Type.
Once a publishable document type corresponds to an associated provider definition, you need to make sure that the document type and provider definition remain in sync. You can update one with changes in the other by synchronizing them. For information about synchronizing document types, see
About Synchronizing Publishable
Document TypesIf you change messaging connection alias assigned to a publishable document type, you might need to synchronize the publishable document type with its associated provider definition.