ibm unica distributed marketing: release notes€¦ · release notes. note before using this...

30
IBM Unica Distributed Marketing Version 8 Release 6 June 14, 2013 Release Notes

Upload: others

Post on 13-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

IBM Unica Distributed MarketingVersion 8 Release 6June 14, 2013

Release Notes

���

Page 2: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

NoteBefore using this information and the product it supports, read the information in “Notices” on page 21.

This edition applies to version 8, release 6, modification 0 of IBM Unica Distributed Marketing and to allsubsequent releases and modifications until otherwise indicated in new editions.

© Copyright IBM Corporation 2001, 2012.US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contractwith IBM Corp.

Page 3: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Contents

System requirements and compatibility 1New features and changes in version 8.6.0 . . . . 2Fixed defects . . . . . . . . . . . . . . 13Known issues. . . . . . . . . . . . . . 13Known limitations . . . . . . . . . . . . 16New features and changes in version 8.5.0 . . . . 17

Contacting IBM Unica technicalsupport . . . . . . . . . . . . . . 19

Notices . . . . . . . . . . . . . . 21Trademarks . . . . . . . . . . . . . . 23

© Copyright IBM Corp. 2001, 2012 iii

Page 4: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

iv IBM Unica Distributed Marketing: Release Notes

Page 5: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

System requirements and compatibility

IBM® Unica® Distributed Marketing operates as part of the IBM Unica MarketingPlatform. Version 8.6.0 requires:v IBM Unica Marketing Platform 8.6.0v IBM Unica Campaign 8.6.0

Upgrade paths

You can perform an in-place installation of Distributed Marketing 8.6.0 overversion 8.5. For Affinium Collaborate 7.x or pre-8.2 versions of DistributedMarketing, you must first upgrade to version 8.5 before you can upgrade toversion 8.6.0.

For details, see the IBM Unica Distributed Marketing Installation Guide.

Database setup during installation or re-installation

The IBM Unica Distributed Marketing installer offers two options for system tabledatabase setup: automatic or manual. If you choose automatic database setup, theinstaller drops and then recreates the Distributed Marketing system tables. This istrue for new installations and re-installations.

If you choose the manual option for a new installation, you must set up the systemtables after installation by running the appropriate scripts for your database type.

If you are performing a re-installation and you have already set up the DistributedMarketing system tables, you can avoid dropping and recreating the tables bychoosing the manual option without running the database setup scripts after there-installation.

Where to find complete system requirement and compatibilityinformation

For a list of IBM Unica Marketing product versions compatible with this product,see the IBM Unica Compatibility Matrix and any other product compatibilitydocuments posted under Documentation on the IBM Unica Product TechnicalSupport website: (http://www.unica.com/about/product-technical-support).

For a list of third-party requirements for this product, see the Recommended SoftwareEnvironments and Minimum System Requirements document. This file is posted underDocumentation on the IBM Unica Product Technical Support website:(http://www.unica.com/about/product-technical-support). You can also access thisdocument by selecting Help > Product documentation when you are logged in toIBM Unica Marketing.

Where to find report package reference documentation

Reference documentation for report packages is no longer available on thedocumentation server where the PDF versions of the product documentation areposted. You can access the reference documentation for report packages after youinstall the reporting schemas on the machine where the Marketing Platform is

© Copyright IBM Corp. 2001, 2012 1

Page 6: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

installed. The reference documentation is in a subdirectory of the Cognos10directory under the report package installation.

New features and changes in version 8.6.0Custom Form Validation / Integration Procedure Module(ENH51091)

This fix is available in the 8.6.0.3 fix pack and beyond.

A procedure is a custom or standard Java class hosted by IBM Unica DistributedMarketing that does custom validation of the forms that are used in projects orinstances of On-demand Campaigns or List templates. Procedures provide a wayfor customers, partners, and IBM Unica Professional Services to extend DistributedMarketing in-built validation in wanted ways. Procedures follow a simpleprogramming model, by using a well-defined API to validate On-demand and Listcomponents that are managed by Distributed Marketing. Procedures are discoveredthrough a simple lookup mechanism and XML-based definition file. DistributedMarketing runs the procedures, while in the wizard mode, while it creates or editsan On-demand Campaign or List. Procedures run synchronously regarding theirclient; results are made available directly to the client, and through a persistedauditing mechanism. Procedures must be written in Java.

Note the following assumptions that concern procedures.v The procedure implementation classes are packaged into a separate classes tree

or JAR file and made available to IBM Unica Distributed Marketing through aURL path. The procedure execution manager uses an independent class loader toload these classes as needed. By default, Distributed Marketing looks in thefollowing directory: <Distributed_Marketing_Home>devkits/integration/examples/classes/. To change this default, set theintegrationProcedureClasspathURL parameter under Settings > Configuration >Distributed Marketing > UDM Configuration Settings> Integration Services.

v The procedure implementation class name follows the accepted Java namingconventions to avoid package collisions with Unica and classes from othervendors. In particular, customers must not place procedures under the com.unicaor com.unicacorp package tree.

v The procedure implementation is coded to the Java runtime version used byIBM Unica Distributed Marketing on the application server (at least JRE 1.5).

v IBM Unica Distributed Marketing provides some number of open source andthird-party libraries; application servers also use different versions of theselibraries. Generally, this list changes from release to release. Note: To avoidpossible compatibility problems, procedures should not use any open source,third-party, or application server-specific libraries. However, if such packages areused by a procedure, or by the secondary classes that are imported by theprocedure, their use must agree exactly with the packages provided byDistributed Marketing and the application server. In this case, you may have torework your procedure code, if a later version of Distributed Marketingupgrades or abandons a library.

v The procedure implementation class is loaded by the class loading policy that isnormally used by IBM Unica Distributed Marketing (typically parent-last). Theapplication server may provide development tools and options to reload classesthat would apply to Distributed Marketing procedures, but that is not required.

v The procedure must be thread-safe regarding its own state; that is, its runmethod cannot depend on internal state changes from call to call.

2 IBM Unica Distributed Marketing: Release Notes

Page 7: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

v A procedure cannot create threads on its own.

The design should focus on validating the form data that is submitted by the userwhile they create or edit an On-demand or List Campaign. The procedureimplementation class uses an implementation of IExecutionContext, whichprovides vital information like user ID, locale, connection of the system datasource, campaign id of the campaign that is validated and the current form namethat is submitted. The implementation class is provided a map ofFormName.AttributeName as key and an object of IAttribute as value.

Note: Implementing procedure should be using the parameters that are providedin the run method only to validate the submitted data. The map contains all theattributes with their user filled values or default values, if any, including summarytab attributes. After coded and compiled, the procedure implementation classesmust be made available to Distributed Marketing. The build scripts that aresupplied with the Distributed Marketing Integration Services place the compiledprocedures in the default location. The final development step is to update thecustom procedure plug-in definition file that is used by Distributed Marketing todiscover the custom procedures. The procedure must implement thecom.unica.publicapi.collaborate.plugin.procedure interface and have aparameter-less constructor (usual JavaBeans model). Coding and compilation ofeach procedure is done in a Java IDE of the customer’s choice, such as Eclipse,Borland JBuilder, Idea. Sample code is provided with IBM Unica DistributedMarketing as developer toolkits, in this location: <Distributed_Marketing_Home>/devkits/integration/examples/src/procedure.

Use the parameters under Settings > Configuration Marketing > UDMConfiguration Settings> Integration Services to configure the DistributedMarketing Integration Module as shown.v enableIntegrationServices: Enables/disables the custom form validation feature.v integrationProcedureDefintionPath: Specifies the location of the

procedure-plugins.xml. Default Value: [udm-home]/devkits/integration/examples/src/procedure/procedure-plugins.xml. Update the location as peryour preference.

v integrationProcedureClasspathURL: Specifies the location of the compiled binaryfiles of the custom validation classes that are defined in theprocedure-plugins.xml. Default Value: file://[udm-home]/devkits/integration/examples/classes/. Update the location as per your preference.

Note: The forward slash at the end of this path is mandatory.

The runtime lifecycle of a procedure:1. Discovery and initialization2. Selection (optional)3. Execution

IBM Unica Distributed Marketing must be made aware of all standard and customprocedures available for a particular installation instance. This process is calleddiscovery. Custom procedures are defined in the procedure plug-in definition file.The Distributed Marketing plug-in manager reads this file during initialization. Foreach procedure found, the plug-in manager does the following.1. Instantiate the procedure; transition its state to instantiated.2. Create a new procedure audit record.

System requirements and compatibility 3

Page 8: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

3. If the procedure could be instantiated, its initialize() method is called with anyinitialization parameters found in its plug-in description file. If this methodthrows an exception, the status is logged and the procedure is abandoned.Otherwise, the procedure transitions to the instantiated state. It is ready toexecute.

4. Create a new procedure audit record.5. If the procedure could be initialized, its getKey() method is called to determine

the key used by clients to reference the procedure. This key is associated withthe instance and saved for later lookup.

IBM Unica Distributed Marketing may need to present a list of availableprocedures to users while it creates On-demand and List templates to associate theCustom Validation procedure with it. This is done only after the procedure isinitialized. The procedure’s getDisplayName() method are used for this purpose.

While it creates or edits On-demand or List Campaigns, after the procedure isinitialized, IBM Unica Distributed Marketing receives a request to run theprocedure. This happens when the template that is used to create the campaigns isassociated with a Custom Validation class. This may happen concurrently withother procedures, or the same procedure, running on other threads.

At execution time, the procedure execution manager does the following.1. Start a database transaction2. Set the procedure state to running.3. Create a new procedure audit record.4. Call the procedure’s execute() method with an execution context and any

execute parameters provided by the client. This method uses theIExecutionContext and map of attributes in all forms of the On-DemandCampaign or List (including summary tab attributes) to validate the datasubmitted by DM users. If the execute method throws an exception, theexecution manager marks the transaction for rollback. If the execute method issuccessful it returns the result back to Distributed Marketing application. If thevalidation is successful user is allowed to continue with the operations orerrors are shown on the top and the user is asked to rectify the values.

5. Commit or rollback the transaction according to the execution results; setprocedure state to executed.

6. Create a new procedure audit record.

Note: The execute() method should not alter the procedure instance data.

The procedure execution manager automatically wraps execution of the procedurewith a database transaction, committing or rolling it back as appropriate based onthe outcome of the procedure execution. This guarantees that updates to the IBMUnica Distributed Marketing database are not visible to other users untilcommitted and that the updates are atomic. The procedure writer still must acquirethe necessary edit locks to ensure that other users cannot write changes to thedatabase before the procedure execution completes.

Note: The connection that is provided as part of the IExecutionContext is forreading data from the system database of Distributed Marketing. Although, we donot restrict edits by using this connection, it is not recommended to use theconnection to edit data in Distributed Marketing system tables.

4 IBM Unica Distributed Marketing: Release Notes

Page 9: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

The execute() method of a procedure returns an integer status code (error statuscode is -1) and zero or more messages, which are logged and persisted to the IBMUnica Distributed Marketing procedure audit table. The client must use the errorstatus code as -1. Clients must create an object of ProcedureResult with status codeand an array of ProcedureMessage. The error messages must follow thisconvention: <FormName>.<AttributeName><Separater><Error Message>. Client maychoose to set the separator by using setSeparator() method of the classProcedureResult. Default separator is "||". The error messages are shown as theyare on the user interface. See the section on the Procedure example, which explainssetting of error messages by using an example.

IBM Unica Distributed Marketing uses system log for procedures as well:<Distributed_Marketing_home>\logs\system.log. Implementation classes ofIProcedure have to make sure that they create an object of the class UALogger.This class is available in the affinium_collaborate.jar present in the<Distributed_Marketing_Home>\devkits\integration\examples\lib directory. Seethe Procedure example to understand the usage.

The procedure execution manager logs the lifecycle of each procedure and createsaudit records.1. logInfo(): write an informational message to the procedure log2. logWarning(): write a warning message to the procedure log3. logError(): write an error message to the procedure log4. logException(): dump the stack trace for the exception to the procedure log

The supplied integration development kit contains a set of Javadoc for the publicIBM Distributed Marketing API and supporting classes. Refer to the IBM UnicaDistributed Marketing Public API Specification sections 3.2.11 and 3.2.12 for theclasses, which have attribute names, values, and metadata that is submitted byusers. These classes are not documented in the Javadoc mentioned.

IProcedure (com.unica.publicapi.collaborate.plugin.procedure) is an interfacethat all procedures must implement. Procedures go through a well-defined lifecycleand implement the following method that is mentioned./*** Procedure’s execute method.* <p>* If called from webservice, it is the responsibiliy of the caller to convert.* NameValue parameters to their non-sequence map form, i.e.,* <pre>* "Form1.Attribute1", IAttribute1* "Form1.Attribute2", IAttribute2* ==>* one map entry:* entry.key = "Form1.Attribute1"* entry.value = IAttribute1* </pre>* </p>* This work is done automatically by the ProcedureManager. ** @param context caller’s execution context* @param parameters a map of procedure parameters.* @return result of procedure execution* @throws ProcedureExecutionException*/ ProcedureResult execute(IExecutionContext context, Map parameters)

throws ProcedureExecutionException;

IExecutionContext (com.unica.collaborate.common.api): interface of opaquecontext object that is handed to the procedure by the execution manager.

System requirements and compatibility 5

Page 10: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Implementers of IProcedure have to cast this object toCustomValidationExecutionContext, as shown in the procedure example, whichprovides vital information like user ID, locale, connection of the system datasource, campaign ID of the campaign that is validated and the current form namethat is submitted. Fields of this class are as below:v runAsLocale: locale of the logged in user.v runAsUser: User object of the logged in user.v connection: Connection to the System database.v projectId: Id of the On-Demand or List Campaign being validated.v currentFormName: Tab which is being validated and submitted.

The following is an example of the Distributed Marketing procedure that attemptsto validate data across two forms: Selection Form and Offer Assignment.

Following validations are carried out:1. Validates two text attributes against given date formats.2. Validates the total of two number attributes across both the forms.

Note: This class is not shipped with the product as it requires the forms andattributes with exact names.

This is sample procedure and can be used by creating the forms and attributeswith names specified in the class constants.package procedure;

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Locale;import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.unica.afc.logger.UALogger;import com.unica.collaborate.common.api.CustomValidationExecutionContext;import com.unica.collaborate.common.api.IExecutionContext;import com.unica.collaborate.common.component.attribute.IAttribute;import com.unica.collaborate.common.component.attribute.IntegerAttribute;import com.unica.collaborate.common.component.attribute.TextAttribute;import com.unica.publicapi.collaborate.plugin.PluginVersion;import com.unica.publicapi.collaborate.plugin.procedure.IProcedure;import com.unica.publicapi.collaborate.plugin.procedure.ProcedureInitializationException;import com.unica.publicapi.collaborate.plugin.procedure.ProcedureMessage;import com.unica.publicapi.collaborate.plugin.procedure.ProcedureMessageTypeEnum;import com.unica.publicapi.collaborate.plugin.procedure.ProcedureResult;

/*** ValidateAttributesForCustomValidationExampleTemplate is an example of* Distributed Marketing procedure that attempts to validated data across 2 forms:* Selection Form and Offer Assignment. Following validations are carried out:

* 1. Validates 2 text attributes against given date formats.* 2. Validates the total of 2 number attributes across both the forms. *

* <p>* Expects the following initialization parameters:* <ul>* <li>debug: Boolean object, true or false, indicating if* debug tracing is enabled or not</li>* </ul>*

6 IBM Unica Distributed Marketing: Release Notes

Page 11: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

*<p>* Epxects the following execute parameters:* <ul>*<li>parameters: Map of summary and custom tab attributes identified by*’<FormName>.<Attribute Name>’ as key and object of IAttribute as value</li>* </ul>**/

public final class ValidateAttributesForCustomValidationExampleTemplateimplements IProcedure {

// Logger object for audit logging.private static UALogger _logger = (UALogger) UALogger

.getLogger(ValidateAttributesForCustomValidationExampleTemplate.class);

// our status codesprivate final static int STATUS_SUCCESS = 0;private static final int STATUS_FAILED = -1;// initialization parametersprivate final static String DEBUG_INITPARAMETER_NAME = "debug";// Date format to be validated againstpublic static final String DATE_FORMAT = "MM/dd/yyyy";// Total of multiple fields across formspublic static final String OFFER_Percentage = "ct_offer_percentage";

// Form Name and attribute constants for Selection Formprivate static final String Selection_Form = "Selection Form";/**Text attributes in New Group 14 which are to be treated as dates* and hence to be validated against the format specified above.*/public static final String New_GROUP_14_From = "inexp_from_date";public static final String New_GROUP_14_To = "inexp_end_date";

// Form Name and attribute constants for Offer Assignment Formprivate static final String Offer_Assignment_Form = "Offer Assignment Form";public static final String TIER_3_OFFER_Percentage = "offer_assignment_percentage";// Total of multiple attributes to be validated against.public static final int TOTAL_OF_OFFER_PERCENTS = 100;

private boolean _debug = false;

private boolean isDebug() {return _debug;}

// simple name is unqualified class namepublic String getName() {return "ValidateAttributesForCustomValidationExampleTemplate";}

// display name is always namepublic String getDisplayName(Locale locale) {return getName();}

// description always in englishpublic String getDescription(Locale locale) {// only do EN for nowreturn "Example of Custom Validation Class for new "

+ "feature introduced in UDM 8.6.0.3.";}

// version we’re coded to; must be 1.0.0 for nowpublic PluginVersion getVersion() {return new PluginVersion(1, 0, 0);}

System requirements and compatibility 7

Page 12: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

// initialize instance from init parameterspublic void initialize(Map initParameters)

throws ProcedureInitializationException {// the only init parameter we have is: debug, Booleanif (initParameters.containsKey(DEBUG_INITPARAMETER_NAME)) {try {_debug = ((Boolean) initParameters

.get(DEBUG_INITPARAMETER_NAME)).booleanValue();} catch (Exception exception) {throw new ProcedureInitializationException("Problem using "

+ DEBUG_INITPARAMETER_NAME + " init parameter: "+ exception.getMessage());

}}}

/*** Custom Validation Class’s execute method.** This method is called for custom validation of the project forms.** @param context* caller’s execution context* @param parameters* a map of project parameters.* @return result of procedure execution*/public ProcedureResult execute(IExecutionContext context, Map parameters) {/*** CustomValidationExecutionContext class provides the following information* required to validate the attributes:* 1. runAsLocale: locale of the logged in user.* 2. runAsUser: User object of the logged in user.* 3. connection: Connection to the System database.* 4. projectId: Id of the On-Demand or List Campaign being validated.* 5. currentFormName: Tab which is being validated and submitted.*/

CustomValidationExecutionContextcustomValidationContext= (CustomValidationExecutionContext) context;

List<Procedure>errorMessages = newArrayList<ProcedureMessage>();ProcedureResult result = null;

if (Selection_Form.equalsIgnoreCase(customValidationContext.getCurrentFormName())) {if(isDebug()){_logger.debug(getName() + "::Validating Selection Form.");}//Get the text attributes to be validated as datesIAttribute dateFromAttr = (IAttribute) parameters

.get(Selection_Form + "." + New_GROUP_14_From);

IAttribute dateToAttr = (IAttribute) parameters.get(Selection_Form+ "." + New_GROUP_14_To);

//Validate the text attributes for date format.errorMessages.addAll(validateDateForGivenFormat(Selection_Form,

dateFromAttr, DATE_FORMAT));

errorMessages.addAll(validateDateForGivenFormat(Selection_Form,dateToAttr, DATE_FORMAT));

if (errorMessages.size() == 0)// Procedure result with 1 status shows successful validation of// the form/project.result = new ProcedureResult(STATUS_SUCCESS,

8 IBM Unica Distributed Marketing: Release Notes

Page 13: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

new ProcedureMessage[] {});else {if(isDebug()){_logger.debug(getName() + "::Errors while validating Selection Form.");}// ProcedureResult with -1 status shows validation failure for// some of the attributes.

ProcedureMessage[] proMessages = new ProcedureMessage[errorMessages.size()];

result = new ProcedureResult(STATUS_FAILED, errorMessages.toArray(proMessages), "||");

}} else if (Offer_Assignment_Form

.equalsIgnoreCase(customValidationContext.getCurrentFormName())) {

if(isDebug()){_logger.debug(getName() + "::Validating Offer Assignment Form.");}

String csFormOfferPercentage = Selection_Form + "."+ OFFER_Percentage;

//get the Offer percentage attribute from Selection Form.IAttribute ctOfferPercentageAttr = (IAttribute) parameters

.get(csFormOfferPercentage);

String tier3OfferPercentage = Offer_Assignment_Form + "."+ TIER_3_OFFER_Percentage;

//get the Offer percentage attribute from Offer Assignment Form.IAttribute tier3OfferPercentageAttr = (IAttribute) parameters

.get(tier3OfferPercentage);

//Add the attributes to a list.

ProcedureMessage[] proMessages = new ProcedureMessage[errorMessages.size()];

result = new ProcedureResult(STATUS_FAILED, errorMessages.toArray(proMessages), "||");

}} else if (Offer_Assignment_Form

.equalsIgnoreCase(customValidationContext.getCurrentFormName())) {

if(isDebug()){_logger.debug(getName() + "::Validating Offer Assignment Form.");}

String csFormOfferPercentage = Selection_Form + "."+ OFFER_Percentage;

//get the Offer percentage attribute from Selection Form.IAttribute ctOfferPercentageAttr = (IAttribute) parameters

.get(csFormOfferPercentage);

String tier3OfferPercentage = Offer_Assignment_Form + "."+ TIER_3_OFFER_Percentage;

//get the Offer percentage attribute from Offer Assignment Form.IAttribute tier3OfferPercentageAttr = (IAttribute) parameters

.get(tier3OfferPercentage);

//Add the attributes to a list.List<IAttribute>listOfAttributesForTotal = newArrayList<IAttribute>();listOfAttributesForTotal.add(ctOfferPercentageAttr);

listOfAttributesForTotal.add(tier3OfferPercentageAttr);

//Call method to find if total is 100boolean isTotalCorrect = validateTotalPercentageForGivenAttributes(

listOfAttributesForTotal, TOTAL_OF_OFFER_PERCENTS);

System requirements and compatibility 9

Page 14: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

if (isTotalCorrect) {// Procedure result with 1 status shows successful validation of// the form/project.result = new ProcedureResult(STATUS_SUCCESS,

new ProcedureMessage[] {});} else {result = new ProcedureResult(STATUS_FAILED,

new ProcedureMessage[] { (new ProcedureMessage(ProcedureMessageTypeEnum.ERROR,tier3OfferPercentageAttr.getName() + "||"

+ csFormOfferPercentage + " and "+ tier3OfferPercentage+ "should add up to 100")) }, "||");

}} else {result = new ProcedureResult(STATUS_SUCCESS,

new ProcedureMessage[] {});}return result;

}

/*** Validates if the number attribute is greater than 10* @param numberAttribute* @return*/

public static boolean validateNumber(IAttribute numberAttribute) {if (numberAttribute != null) {Long[] values = ((IntegerAttribute) numberAttribute).getValues();for (int i = 0; i < values.length; i++) {if (values[i] > 10) {return false;}}}return true;}

/*** Validates a given date against a given format.** @param selectionForm* @param dateFromAttr* @param dateFormat* @return*/

public static List<ProcedureMessage> validateDateForGivenFormat(String selectionForm, IAttribute dateFromAttr,

String dateFormat) {String dateString = null;

List<ProcedureMessage>errorMessages = newArrayList<ProcedureMessage>();if (dateFromAttr != null) {

if (dateFromAttr instanceof TextAttribute) {dateString = ((TextAttribute) dateFromAttr).getValue();if (StringUtils.isNotEmpty(dateString)) {SimpleDateFormat sdf = new SimpleDateFormat(

DATE_FORMAT);try {sdf.parse(dateString);} catch (ParseException e) {// if the date is not in mentioned format, add an error// messageerrorMessages

.add(new ProcedureMessage(

10 IBM Unica Distributed Marketing: Release Notes

Page 15: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

ProcedureMessageTypeEnum.ERROR,dateFromAttr.getName()+ "||"+ selectionForm+ "." +dateFromAttr.getName()+ "should be in "+ DATE_FORMAT+ " format "));

}}} else {errorMessages.add(new ProcedureMessage(

ProcedureMessageTypeEnum.ERROR, dateFromAttr.getName()+ "||" + "TextDate can not be empty."));

}}return errorMessages;}

/*** Validates whether the total of the provided attributes is equal to* @param listOfAttributesForTotal

* @param totalOfOfferPercents* @return*/public static boolean validateTotalPercentageForGivenAttributes(

List<IAttribute>listOfAttributesForTotal, int totalOfOfferPercents) {long total = 0;

if (listOfAttributesForTotal != null&& listOfAttributesForTotal.size() > 0) {for (Iterator iterator = listOfAttributesForTotal.iterator(); iterator

.hasNext();) {IntegerAttribute iAttribute = (IntegerAttribute) iterator

.next();if (iAttribute != null && iAttribute.getValues() != null

&& iAttribute.getValues().length > 0) {long percent = iAttribute.getValues()[0];total += percent;}}}return (total > 0 && total == totalOfOfferPercents)

|| total == 0;}

public void destroy() {// we don’t need to do anything}

}

The procedure plug-in definition file defines implementation class, metadata, andother information about the custom procedures to be hosted in IBM UnicaDistributed Marketing. By default, the procedure plug-in definition is assumed tobe in the following path: <Distributed_Marketing_Home>\devkits/integration/examples/src/procedure/procedure-plugins.xml. This file is an XML documentthat contains the information described.

Procedures: a list of zero or more Procedure elements.

Procedure: an element that defines a procedure. Each procedure contains thefollowing elements.

System requirements and compatibility 11

Page 16: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

v Key (optional): string that defines the lookup key for the procedure. This keymust be unique regarding all standard (IBM-supplied) and custom proceduresthat are hosted by a particular Distributed Marketing instance. If not defined,defaults to the fully qualified version of the className element. Names startingwith the string "uap" are reserved for use by IBM Unica Distributed Marketing

v className (required): fully qualified package name of the procedure class. Thisclass must implement the IProcedure class(com.unica.publicapi.collaborate.plugin.procedure).

v initParameters (optional): a list of zero or more initParameter elements.initParameter(optional): parameter to be passed to the initialize() method of theprocedure. This element includes the nested parameter name, type, and valueelements.– Name: string that defines the parameter name– Type: optional class name of the Java wrapper class that defines the type of

the parameter value. Must be one of the following types:- java.lang.String (the default)- java.lang.Integer- java.lang.Double- java.lang.Calendar- java.lang.Boolean

– Value: string form of the attribute value according to its type.

Migrate Distributed Marketing Settings to Marketing Platform(ENH11237)

Distributed Marketing settings are migrated from the current XML file(collaborate_config.xml) to Marketing Platform. The migration reducesmaintenance of XML data during upgrades and also enhances readability foradministrators who can update settings from the application directly instead ofediting XML files. Distributed Marketing configuration settings were stored earlierin collaborate_config.xml, and these settings are now in Marketing Platform. Inthe case of an upgrade, the old configuration (in collaborate_config.xml) isretrieved and inserted in DistributedMarketing_configuration.xml before theregistration in Marketing Platform.

SSDOR and SSDAR attribute types available in the Form Editor

In version 8.6.0, users create single select drop-down attributes that are based ondatabase tables. You can select only one value at a time from a drop-down list or aradio group, depending on the display format that is selected while creating theattribute. These attributes are typically used when the underlying table identifies toa lookup entity. Single Select Database Object Reference (SSDOR) attributes extendthe capability of an SSDB attribute and provides users the ability to createattributes that represent an entity with multiple properties. Single Select DatabaseAttribute Reference (SSDAR) attributes represent one column or property for theselected object or entity. An SSDAR attribute is always associated with an SSDORattribute as a dependent.

Collaborate automatically cleans up unused lookup tables orviews (ENH10894)

Distributed Marketing automatically cleans up unused database lookup views orlookup tables in the background. A new monitor to clean up unused lookup tables

12 IBM Unica Distributed Marketing: Release Notes

Page 17: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

or views is added. There are two new configuration parameters:lookupCleanupMonitorStartDay and lookupCleanupMonitorStartTime to indicate theday of the week and the time to run the clean up. The frequency is weekly.

Unrestricted file upload

Two new parameters are added: upload_allowedFileTypes andupload_fileMaxSize. upload_allowedFileTypes indicates the types of files that canbe uploaded in Distributed Marketing. The default values are doc ppt xls pdf gifjpeg png mpp. If the list is empty, no file is uploaded. upload_fileMaxSize indicatesthe limit on the maximum size of the file that can be uploaded. The default is5000000 and is the maximum size for the uploaded files in bytes. These filters areapplied only for attachments in task, list, and On-demand Campaigns.

Fixed defectsThis section lists defects fixed in Distributed Marketing version 8.6.0, sorted bydefect number then by incident number (if applicable).

Issue ID Description

DEF059988 Slow Performance while saving a Template in Collaborate (IBM USA -Collaborate Patch 7.5.1.4)

DEF060064 Wizard page takes 30+ seconds to load after selecting a templateduring instance creation" (IBM USA - Collaborate Patch 7.5.1.4)

DEF058574 If imported form is edited in Distributed Marketing, screen goes blank.

DEF029760 versionId mismatch after republishing causes Generate List fail. Thishas been resolved.

DEF056015 Lengthy user variable names result in database error on lkup tablecreation. This has been resolved.

DEF053747 Unable to assign a group of users to a role on People tab. This hasbeen resolved.

DEF060361 The EDIT_STATUS field of a Distributed Marketing object is not alwaysupdated when the form is merged. This has been resolved.

DEF033756 Within Distributed Marketing configuration, it appears that theAffinium Plan Code was copied. This has been resolved.

Known issuesThis section lists known issues in Distributed Marketing 8.6.0.

Issue Issue ID Description

REGRR: pt_BR: Date Timeformat shown is wrong

DEF063001 The date time format should be localized as per "pt_BR"locale; however, the date time format is displayed in wrongformat.

Flowchart is shown ascompleted on "Summary," inprogress in workflow

DEF062595 The status of task shown on Summary is not in synch withwhat is shown in workflow.

Summary shows ‘Queued’and monitoring page shows‘Running’

DEF062748 The status of the ONDC summary is shown as ‘Queued’;however, the status on monitoring page is "Running" for thesame flowchart.

System requirements and compatibility 13

Page 18: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Issue Issue ID Description

Page hangs when useropens page.

DEF062127 If user opens any of the pages such as "Active Lists," "ActiveOn-Demand Campaigns," or "Active Corporate Campaigns,"then the page hangs.

Long time to save CustomerForm (WW TacticRegistration v2)

DEF061166 If there is a form with many dependent SSDBs & SSDORfields with lot of data in the lookup table then, it takes longtime to save or open a form in FE.

Long time to openCustomer Form (WW TacticRegistration v2)

DEF061157 It takes more than one minute to load form when loadingneeds to place in a reasonable time.

Attribute type cannot beedited in Forms Editor aftercreation

DEF018596 In the Forms Editor, the attribute type cannot be changedafter it has been published from Campaign. To change theattribute type, remove the attribute from the form and add anattribute with the correct type.

People tab contents copiedwhen you copy CorporateCampaigns

DEF020160 If you copy a Corporate Campaign, remove the membersfrom the People tab on the copy after you copy thecampaign.

For On-demand Campaigns,attached files are copied

DEF020199 If you execute an On-demand Campaign and copy it, allattachments, including those generated by executing thecampaign, are copied.

On-demand Campaignattaches wrong file whengenerated list contains norecords

DEF020781 When the fulfillment task is run for a Corporate Campaign orOn-demand Campaign and no records are found, anattachment is added that is identical to the previous run ofthe fulfillment task. This occurs whether the previous run isfrom a previous wave of a recurring On-demand Campaignor Corporate Campaign, or is from a previous run in thesame wave.

If the fulfillment flowchart query ran successfully once, thenon a subsequent run returns 0 records, there is an invalidattachment for that run.

File and database encodingmust be set properly forCampaign in order forDistributed Marketing touse the files properly

DEF021467 When you add a Mail List process or Call List process to aflowchart in Campaign, you can specify the output file namefor the process. To enable Distributed Marketing to use thefiles properly, the file name format, and the file and databaseencoding must be set to suit your operating environment.

In Marketing Platform, the systemStringEncoding propertyspecifies the encoding used to interpret values (such as filesystem paths and file names) coming into Campaign from theoperating system as well as the encoding in which Campaignpresents values back to the operating system. To verify fileencoding, in Marketing Platform, open the ConfigurationManager and navigate to Campaign/unicaACListener/systemStringEncoding. Provide an encoding value compatiblewith your operating environment.

To ensure proper database encoding, navigate toCampaign/partitions/partition/dataSources/[data_source_name] >StringEncoding. Confirm that the valuematches the encoding used on the database client. You mustalso set the encoding for the Java™ virtual machine. Forexample, in WebSphere® or WebLogic where DistributedMarketing is deployed (as opposed to where Campaign isdeployed), set JVM encoding to -Dfile.encoding=CP1252.

14 IBM Unica Distributed Marketing: Release Notes

Page 19: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Issue Issue ID Description

Error when publishing aDistributed Marketingflowchart containingmultiple Select processes

DEF023486 In Campaign, if you have multiple select boxes as inputs to asingle sample or segment, the run history page in DistributedMarketing may display duplicate rows. To work around thisissue, use one sample box per select box.

List not generated afterremoving linked campaignand creating a campaign

DEF031248 When you perform the following tasks, the CorporateCampaign does not generate a list:

v Create a Corporate Campaign.

v Modify the workflow so that the first wave runs when thecampaign is started.

v Create a linked campaign.

v Create the flowcharts for the linked campaign and publishthem.

v In Distributed Marketing, remove the linked campaign.

v Create a new linked campaign.

v Create and publish the flowcharts for the new linkedcampaign.

v Start the campaign.

The campaign does not complete and the list is notgenerated. In this state, you can recover by copying theCorporate Campaign and creating new flowcharts for it.

Empty tab in Summarypage when no List Reviewtask

DEF034776 If a Corporate Campaign does not have a List Review task,the Summary page contains an empty tab.

Permission errors in log files DEF047480 The Marketing Platform log file may contain authenticationwarnings and the following error:

ERROR - permission with id: -1 is not found

To prevent this error:

v If you are using custom reports, enable the analysis menu:

v If you are not using custom reports, delete the Analysismenu:

Error retrieving alerts afteruninstalling DistributedMarketing

DEF047052 If you uninstall Distributed Marketing, the MarketingPlatform continues to attempt to retrieve DistributedMarketing alerts, causing in error in the web applicationserver.

To prevent this error:

1. Log in as a user with Marketing Platform administrationprivileges.

2. From the Settings menu, select Configuration.

3. Browse to Platform/Platform-wide navigation/Alerts/Distributed Marketing Alerts and click Delete Category.

4. Confirm the deletion.

Recent list is not updated DEF056580 The recent list is not updated for Distributed Marketingpages if the domain name is not given in the URLs forDistributed Marketing.

System requirements and compatibility 15

Page 20: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Issue Issue ID Description

People tab not refreshedafter running Notify FieldMarketers task multipletimes

DEF056599 If you run a Notify Field Marketers task with a set of filtercriteria, the People tab is populated with the list of FieldMarketers. If you repeat the Corporate Campaign with adifferent set of filter criteria, the original Field Marketers listin the People tab is not deleted. These Field Marketerscontinue to have access to the Corporate Campaign, butcannot view the list of customers.

Default value of integerfields gets restored afterbeing deleted

DEF056738 If you delete a default integer value in a Corporate Campaignor OnDemand Campaign, then save, when you edit thecampaign again the default value is restored.

Cannot search the campaigninstances from MarketingPlatform search if thedomain name is notconfigured

DEF056541 If the domain name is not configured in the MarketingPlatform, you cannot use the Marketing Platform searchfunction to search for Corporate Campaign and OnDemandCampaign instances. You must set the domain name and useit across all configured URLs to resolve this issue.

Error when creating alinked campaign secondtime

DEF056906 When working with a Corporate Campaign, when you createa linked campaign, unlink the campaign, then try to create alinked campaign again, you receive a Null Pointer Exception.

Cannot import workflowtemplate or icon if namecontains Unicode characters

DEF059034 Distributed Marketing does not allow workflow templates oricons to be imported if their names contain Unicodecharacters.

Long offer names anddescriptions not supported

DEF059295 Distributed Marketing does not support offers with nameslonger than 130 characters or descriptions longer than 512characters.

Known limitationsThis section lists known limitations in Distributed Marketing 8.6.0.

Issue Issue ID Description

Template IDs must bealphanumeric

DEF058998 When creating a list, advanced list, On-demand Campaign, orCorporate Campaign, the template ID must be inalphanumeric characters only, even if automatic template IDgeneration is disabled.

Codes entered in Unicodecharacters produce error

DEF059161 When entering the code for a list, advanced list, On-demandCampaign, or Corporate Campaign, Unicode charactersproduce an error. The code must be entered in alphanumericASCII characters only.

User variable value cannotaccept double-bytecharacters for SQL serverdatabase

DEF059517 When using Distributed Marketing with a SQL Serverdatabase, a user variable cannot be assigned a value thatincludes double-byte characters. These characters are replacedby a "?" character.

Duplicate SQL script file onupgrade

DEF059748 When upgrading Distributed Marketing from version 8.2 to8.5, there are duplicate SQL scripts present in the respectivedatabase folders for each locale. The administrator canidentify the correct script by comparing the timestamp andfile name of the files. The SQL scripts shipped withDistributed Marketing 8.5 have both the language code andthe country code in the file names.

16 IBM Unica Distributed Marketing: Release Notes

Page 21: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

New features and changes in version 8.5.0Ability to assign offers in Distributed Marketing (ENH03000)

In version 8.5.0, field marketers have the ability to assign offers from within theCustom Tab when creating or editing an On-demand Campaign. When a fieldmarketer creates or edits an instance of an On-demand Campaign using a formthat contains offers, an Offers subtab lists all cells that have offers assigned to themand the corresponding offers for each cell. The field marketer can choose from theavailable offers for each cell. The selected offers are used during flowchartexecution in IBM Unica Campaign.

If a Campaign user changes the offer association in the target cells of a publishedflowchart, such as adding or deleting offers, the flowchart is republished when theCampaign user clicks Save & Finish. This creates a new version of the flowchart,which is then available in Distributed Marketing. On the Form Definitions page inDistributed Marketing, a merge notification is displayed for the modified flowchartform. When the user opens the form, Distributed Marketing prompts the user tomerge with the latest list of offers. Field marketers cannot use any On-demandCampaign instances that use this form until the form is merged and republished.

Template administrators can disable the offer integration feature on atemplate-by-template basis. That is, template administrators can configure atemplate so that the field marketer does not have access to offers from within theCustom Tab. Administrators can create two templates for the same form: onetemplate that exposes offers and another template that does not. If the offerselection is disabled, then the flowchart will be executed with all offers selected forthe cell.

Flowcharts with assigned offers that were published to earlier versions ofDistributed Marketing must be republished in Campaign to allow field marketersto assign offers in Distributed Marketing. If these flowcharts are not republished,they function as they did in earlier versions of Distributed Marketing; offers for thecells in these flowcharts are not exposed to field marketers in DistributedMarketing.

The offer integration feature is available only for On-demand Campaigns; it is notavailable for Simple Lists, Advanced Lists, or Corporate Campaigns.

Error message for failed flowchart runs (ENH07712)

When a flowchart fails in IBM Unica Campaign, the runtime error in theCampaign process box is displayed in Distributed Marketing on the Summarypage. This error is added to the existing run fail message. In the revision history,the failure message on the process box is added to the task fail message andlogged.

Progress indicator for flowchart execution (ENH07713)

When a flowchart is running in IBM Unica Campaign, the Summary page for aList or On-demand Campaign includes a Progress link. When a user clicks thislink, a status message displays that shows the percentage of the flowchart that hasexecuted.

System requirements and compatibility 17

Page 22: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

18 IBM Unica Distributed Marketing: Release Notes

Page 23: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Contacting IBM Unica technical support

If you encounter a problem that you cannot resolve by consulting thedocumentation, your company’s designated support contact can log a call withIBM Unica technical support. Use the information in this section to ensure thatyour problem is resolved efficiently and successfully.

If you are not a designated support contact at your company, contact your IBMUnica administrator for information.

Information to gather

Before you contact IBM Unica technical support, gather the following information:v A brief description of the nature of your issue.v Detailed error messages you see when the issue occurs.v Detailed steps to reproduce the issue.v Related log files, session files, configuration files, and data files.v Information about your product and system environment, which you can obtain

as described in "System information."

System information

When you call IBM Unica technical support, you might be asked to provideinformation about your environment.

If your problem does not prevent you from logging in, much of this information isavailable on the About page, which provides information about your installed IBMUnica applications.

You can access the About page by selecting Help > About. If the About page is notaccessible, you can obtain the version number of any IBM Unica application byviewing the version.txt file located under the installation directory for eachapplication.

Contact information for IBM Unica technical support

For ways to contact IBM Unica technical support, see the IBM Unica ProductTechnical Support website: (http://www.unica.com/about/product-technical-support.htm).

© Copyright IBM Corp. 2001, 2012 19

Page 24: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

20 IBM Unica Distributed Marketing: Release Notes

Page 25: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

Notices

This information was developed for products and services offered in the U.S.A.

IBM may not offer the products, services, or features discussed in this document inother countries. Consult your local IBM representative for information about theproducts and services currently available in your area. Any reference to an IBMproduct, program, or service is not intended to state or imply that only that IBMproduct, program, or service may be used. Any functionally equivalent product,program, or service that does not infringe any IBM intellectual property right maybe used instead. However, it is the user's responsibility to evaluate and verify theoperation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matterdescribed in this document. The furnishing of this document does not grant youany license to these patents. You can send license inquiries, in writing, to:

IBM Director of LicensingIBM CorporationNorth Castle DriveArmonk, NY 10504-1785U.S.A.

For license inquiries regarding double-byte (DBCS) information, contact the IBMIntellectual Property Department in your country or send inquiries, in writing, to:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.1623-14, Shimotsuruma, Yamato-shiKanagawa 242-8502 Japan

The following paragraph does not apply to the United Kingdom or any othercountry where such provisions are inconsistent with local law: INTERNATIONALBUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFNON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULARPURPOSE. Some states do not allow disclaimer of express or implied warranties incertain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors.Changes are periodically made to the information herein; these changes will beincorporated in new editions of the publication. IBM may make improvementsand/or changes in the product(s) and/or the program(s) described in thispublication at any time without notice.

Any references in this information to non-IBM websites are provided forconvenience only and do not in any manner serve as an endorsement of thosewebsites. The materials at those websites are not part of the materials for this IBMproduct and use of those websites is at your own risk.

© Copyright IBM Corp. 2001, 2012 21

Page 26: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

IBM may use or distribute any of the information you supply in any way itbelieves appropriate without incurring any obligation to you.

Licensees of this program who wish to have information about it for the purposeof enabling: (i) the exchange of information between independently createdprograms and other programs (including this one) and (ii) the mutual use of theinformation which has been exchanged, should contact:

IBM Corporation170 Tracer LaneWaltham, MA 02451U.S.A.

Such information may be available, subject to appropriate terms and conditions,including in some cases, payment of a fee.

The licensed program described in this document and all licensed materialavailable for it are provided by IBM under terms of the IBM Customer Agreement,IBM International Program License Agreement or any equivalent agreementbetween us.

Any performance data contained herein was determined in a controlledenvironment. Therefore, the results obtained in other operating environments mayvary significantly. Some measurements may have been made on development-levelsystems and there is no guarantee that these measurements will be the same ongenerally available systems. Furthermore, some measurements may have beenestimated through extrapolation. Actual results may vary. Users of this documentshould verify the applicable data for their specific environment.

Information concerning non-IBM products was obtained from the suppliers ofthose products, their published announcements or other publicly available sources.IBM has not tested those products and cannot confirm the accuracy ofperformance, compatibility or any other claims related to non-IBM products.Questions on the capabilities of non-IBM products should be addressed to thesuppliers of those products.

All statements regarding IBM's future direction or intent are subject to change orwithdrawal without notice, and represent goals and objectives only.

All IBM prices shown are IBM's suggested retail prices, are current and are subjectto change without notice. Dealer prices may vary.

This information contains examples of data and reports used in daily businessoperations. To illustrate them as completely as possible, the examples include thenames of individuals, companies, brands, and products. All of these names arefictitious and any similarity to the names and addresses used by an actual businessenterprise is entirely coincidental.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, whichillustrate programming techniques on various operating platforms. You may copy,modify, and distribute these sample programs in any form without payment toIBM, for the purposes of developing, using, marketing or distributing applicationprograms conforming to the application programming interface for the operatingplatform for which the sample programs are written. These examples have not

22 IBM Unica Distributed Marketing: Release Notes

Page 27: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

been thoroughly tested under all conditions. IBM, therefore, cannot guarantee orimply reliability, serviceability, or function of these programs. The sampleprograms are provided "AS IS", without warranty of any kind. IBM shall not beliable for any damages arising out of your use of the sample programs.

If you are viewing this information softcopy, the photographs and colorillustrations may not appear.

TrademarksIBM, the IBM logo, and ibm.com® are trademarks or registered trademarks ofInternational Business Machines Corp., registered in many jurisdictions worldwide.Other product and service names might be trademarks of IBM or other companies.A current list of IBM trademarks is available on the Web at “Copyright andtrademark information” at www.ibm.com/legal/copytrade.shtml.

Notices 23

Page 28: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

24 IBM Unica Distributed Marketing: Release Notes

Page 29: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page
Page 30: IBM Unica Distributed Marketing: Release Notes€¦ · Release Notes. Note Before using this information and the product it supports, read the information in “Notices” on page

����

Printed in USA