bc Technical Guide for Correspondence Generation Building Block February 2010 © 2010 Adobe Systems Incorporated. All rights reserved. Technical Guide for Correspondence Generation Building Block for Microsoft® Windows®, Mac OS, and UNIX® Edition 2.0, February 2010 This getting started guide is licensed for use under the terms of the Creative Commons Attribution Non-Commercial 3.0 License. This License allows users to copy, distribute, and transmit the guide for noncommercial purposes only so long as (1) proper attribution to Adobe is given as the owner of the guide; and (2) any reuse or distribution of the guide contains a notice that use of the guide is governed by these terms. The best way to provide notice is to include the following link. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/. Adobe, Adobe logo, and LiveCycle are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Mac OS is a trademark of Apple Inc., registered in the United States and other countries. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. UNIX is a registered trademark of The Open Group in the US and other countries. All other trademarks are the property of their respective owners. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA. 3 Contents 1. Getting started ........................................................................................................................... 4 2. Correspondence Generation basics ....................................................................................................... 6 3. What’s in the Correspondence Generation building block ................................................................................ 8 4. Building block deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Step 1. Configure the deployment environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Step 2. Deploy the building blocks Uninstalling the building blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5. How Correspondence Generation works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6. Creating content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Defining repository structure and content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Customizing the tag library Creating fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7. Starting a new letter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Creating the letter content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Creating the letter template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Creating the letter filling experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8. The Correspondence Generation samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Appendix - Manual deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Optional - Manual Uninstall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Appendix - Ant properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Appendix - Building Correspondence Generation components Appendix - The installation framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4 1. Getting started This documentation introduces the Correspondence Generation building block, and guides the reader through deployment of the components and assets. To learn more about the solution accelerator program, see Adobe Solution Accelerators. Who should read this documentation This documentation is intended for anyone developing a solution that implements the Correspondence Generation building block. After reading this documentation, readers will know how to use the components, resources, and assets included in the building block. The Correspondence Generation building block enables practice leads and architects to accelerate the design, development, and deployment of Adobe LiveCycle ES2 solutions for correspondence generation. This documentation provides guidance on the best starting points and the resources available as part of this building block. After reading this documentation, a reader will know what is included in the building block, how to install (deploy) the contents of the kit, and what steps to take to begin developing a solution based on this building block. File path conventions This documentation uses the following naming conventions for common file locations. Name Default value Description [LiveCycleES2 root] Windows: C:\Adobe\Adobe LiveCycle ES2\ The installation directory is used for all LiveCycle ES2 solution components. This directory contains subdirectories for LiveCycle Configuration Manager, the LiveCycle ES2 SDK, and each installed LiveCycle ES2 solution component. [appserver root] This path is an example installation location; your install location may be different. The home location of the application server that runs the LiveCycle ES2 services. [LiveCycleES2 root]\jboss [sa_root] This file path is an example installation location; your installation location The root location of the solution accelerators components and assets. may be different. C:\sa Using this documentation This guide describes best practices at the time of authoring. As improved ways to implement solutions with LiveCycle ES2 are discovered, the assets that are associated with the building block will be updated to provide the most current information about solution implementation with LiveCycle ES2. Installation and deployment of this building block is described in “Building block deployment” on page 11. CORRESPONDENCE GENERATION BUILDING BLOCK Getting started 5 Technical Guide for Correspondence Generation Overview documentation is available for architects and others who need to understand the entire solution and how it addresses real-world business problems. Guides such as the Solution Guide for Adobe Solution Accelerators provide industry-specific use case examples, and explain how to use building blocks to implement a solution. Support and resources Architects, designers, and developers have access to a range of support and resources through Adobe and its partner community. LiveCycle ES2 training Instructor-led training for LiveCycle ES2 is available from Adobe Authorized Training Partners. The courses include these LiveCycle ES2 topics: • • • Building Applications Designing Forms Developing Forms Adobe system integrators Adobe partners with leading companies in many industries. Maximize your technology investment by connecting with our partners who provide product training, sell, or integrate complete Adobe solutions. Customer support Customer support programs are available for LiveCycle ES2. Enterprise Developer Support is designed to solve the needs for the individual and collaborative developer. Adobe Customer Care can help your IT organization design, plan, deploy, and maintain itsLiveCycle ES2 installations in the midst of rapidly changing business environments, while reducing development costs and maximizing return on investment. Developer community support LiveCycle ES2 developers can exchange problems and ideas with other developers through sites posted and maintained by Adobe, and the user community. Adobe developer connection Join the Adobe developer community at Adobe Developer Connection. The LiveCycle Developer Center includes Quick Start content, tutorials, videos, downloads, sample, technical guides, blogs, and much more. User forum You can post questions and share ideas with other solution accelerator users and developers in the Adobe Prerelease Community user forum for Adobe Solution Accelerators and building blocks. Blog The Solution Accelerator blog contains information, insight, and best practices relating to the Adobe Solution Accelerators. 6 2. Correspondence Generation basics The main purpose of the Correspondence Generation building block is to provide the following capabilities: • Authoring Correspondence Templates • Defining Correspondence filling experiences • Generating personalized correspondence The Correspondence Generation building block is a set of components that work together to provide the ability to create interactive correspondence solutions, including the following components: A correspondence management model Flex library Contains fragment and letter creation APIs, and LiveCycle ES2 repository persis- tence and query APIs (source code included) A correspondence management layout Flex library Aform guide library containing custom correspondence wrappers, layouts, and controls used for creation of the letter-filling experience. All source code is included. An XFO Object library A set of Designer XFOs used to control the inclusion of fragments in a letter An Adobe AIR import application A tool used to import correspondence management files into the LiveCycle ES2 repository and illus- trates usage of the correspondence management model repository API A Correspondence Generation XFA library Contains a Flex XFA authoring API A repository tree A sample tree layout used as a basis for storing correspondence management structured applications Samples Simple samples that illustrate the elements of fragment and letter template design and also the letter filling experience based on form guide user interfaces The building block is provided as part of the Adobe Solution Accelerator program, and contributes to the implementation of specific solutions. Solution accelerators include several resources: Solution template An example implementation of a solution for the business problem addressed by the solution accelerator, built using one or more building blocks. The solution template is customizable and can be used as either an example of a solution or a basis for customization. Getting Started Guide An introduction to the solution accelerator, including installation and configuration instructions. CORRESPONDENCE GENERATION BUILDING BLOCK Correspondence Generation basics 7 Technical Guide for Correspondence Generation Solution Guide Explores a business problem in detail and maps out a comprehensive implementation strategy. Building blocks The reusable technical resources that are provided with Adobe Solution Accelerators. They include the resources that add extended functionality to LiveCycle ES2. A solution architect uses the solution accelerator, and its assets and guides to design a solution. A developer uses the building blocks to create or customize the solution. 8 3. What’s in the Correspondence Generation building block Adobe Solution Accelerators are a combination of extensible code and best-practice methodologies that are created to help customers reduce development time and increase the quality of their enterprise applications. Adobe Engineering, with input from Adobe Consulting and Adobe enterprise partners, develop the solution accelerators. They are designed to be extended and customized by customers or partners. Solution accelerators include a set of resources, which can be downloaded from Adobe Developer Connection. The solution accelerator contains the following components: Solution, Getting Started, and Technical Guides Created for project managers and technical architects, these guides help with requirements-gathering, technical integration, and project planning. They provide in-depth information and helpful resources, such as use cases, diagrams, planning templates, and requirements’ checklists, that can be used in organizing and managing a project rollout. Solution template An example implementation of a solution for the business problem solution accelerator addresses, built by using one or more building blocks. The solution template is customizable and can be used as either an example of a solution or a basis for customization. Building blocks Provide the technology assets that contribute to the creation of the solution that is defined in the solution accelerator. Building blocks are predefined, developed, and tested assets that can be leveraged to perform specific business functions. They are not vertical application specific, but horizontal in nature. This is supported by technical documentation that explain how assets can be customized for developing proof of concepts. CORRESPONDENCE GENERATION BUILDING BLOCK What’s in the Correspondence Generation building block 9 Technical Guide for Correspondence Generation Correspondence Generation building block directory structure The Correspondence Generation building block includes all the components, assets, tools, and APIs that you require to build a human capital solution by using LiveCycle ES2. The SDK structure is designed to make it easy to find files and assets when you need them. Directory Description \sa The root directory for solution accelerators, solution templates, and building blocks. \sa\building_blocks The root directory for building blocks. Building blocks include resources that can be shared among solution accelerators. \sa\building_blocks\cgr_2_0 The root directory for the Correspondence Generation building block \sa\building_blocks\cgr_2_0\cgrAsdoc ASDocs build files \sa\building_blocks\cgr_2_0\cgrImport cgrImport build files \sa\building_blocks\cgr_2_0\cgrLayouts cgrLayout build files \sa\building_blocks\cgr_2_0\cgrModel cgrModel build files \sa\building_blocks\cgr_2_0\cgrXfa cgrXFA build files \sa\building_blocks\cgr_2_0\dist Installation components, including DSC, LCA, JAR, WAR, and EAR files \sa\building_blocks\cgr_2_0\install XML and properties files used during deployment and compilation \sa\building_blocks\cgr_2_0\libs SWC resources \sa\building_blocks\cgr_2_0\objectLibrary Object library for import into Designer ES2 \sa\building_blocks\cgr_2_0\repository Repository content files \sa\building_blocks\cgr_2_0\samples Sample application and collateral \sa\install XML and properties files used during deployment and compilation \sa\tools Third-party libraries, build utilities, and other custom utilities Correspondence Generation building block resources The Correspondence Generation building block includes applications, processes, samples, and resources that support correspondence generation activities. The following resources are included in the building block: CMG Object Library This object library is imported into Workbench ES2 to provide tools that you use to add and qualify body content in a letter template. CGRImport Utility A utility for importing content into the LiveCycle ES2 repository. The tool automatically assigns a type to the content that it imports, so that it is usable by CCRContentCreator. XDPs that contain what the API identifies as a paragraph fragment will be typed as such so that you can edit them in CCRContentCreator. Content Creator This utility is delivered with the Content creation building block, but is used by Correspondence Generation building block, so is included in this list. Customer communications Call Application A sample application that simulates a customer support desk, and the production of a custom letter based on the data captured by the support representative. Correspondence samples Templates, document fragments, and a customizable tag library. CORRESPONDENCE GENERATION BUILDING BLOCK What’s in the Correspondence Generation building block • • • • Technical Guide for Correspondence Generation CmStartingPoint Custom Communications Family Assist Insuricorp LiveCycle ES2 repository tree Provides base assets for generating correspondence using LiveCycle ES2. Contains framework directory structure, and promotes re-use of assets. • • • /cm/baseline: The base correspondence template from which all correspondence templates should be built. • /cm/samples: Four small samples that show-case various capabilities of the Correspondence Generation building block tools /cm/content: Empty folder ready for storing new correspondence templates and content. /cm/share: Correspondence Generation components for templates (fragments) and form guides (specialized XFA, Model and form guide libraries) 10 11 4. Building block deployment Building blocks are included and deployed with the solution accelerators. If the building blocks are customized, or required for a new solution accelerator, they can all be downloaded in a single archive file. From this archive, any or all of the building blocks can be deployed. Configuration and deployment of the building blocks involves the following tasks: Step 1. Configure the deployment environment Step 2. Deploy the building blocks To install, configure, and use the building blocks, have the appropriate developer tools installed and available, and follow the deployment steps. These steps include installing prerequisite software and ensuring that the developer tools and LiveCycle ES2 services are available. Step 1. Configure the deployment environment Before engaging in a solution accelerator project, a developer should have done the following tasks: • • Worked through, and understood the concepts in the LiveCycle ES2 Getting Started guides Attended LiveCycle ES2 training LiveCycle ES2 requirements The building block assets requires a LiveCycle ES2 installation. It is recommended that you create separate development, test, pilot, and production installations. Your environment should have at least the following LiveCycle ES2 solution components installed: For Common building block: • Adobe LiveCycle Process Management ES2 For Content Creation building block: • No LiveCycle ES2 services required. For Correspondence Generation building block: • • • Adobe LiveCycle Forms ES2 Adobe LiveCycle Output ES2 (only required for the Custom Communications sample.) Adobe LiveCycle Process Management ES2 For On-Demand Assembly building block: • • Adobe LiveCycle Forms ES2 Adobe LiveCycle Output ES2 For Review, Commenting, and Approval building block: • • • Adobe LiveCycle Forms ES2 Adobe LiveCycle PDF Generator ES2 Adobe LiveCycle Process Management ES2 CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 12 Technical Guide for Correspondence Generation For Selection and Capture building block: • • • • Adobe LiveCycle Content Services ES2 Adobe LiveCycle Digital Signatures ES2 Adobe LiveCycle Reader Extensions ES2 Optional: • • Adobe LiveCycle PDF Generator ES2 Adobe LiveCycle Barcoded Forms ES2: Required to enable users to submit supporting document offline Developer and installation tools You must have the following tools installed and available in your development environment: For all building blocks: • • Adobe LiveCycle Workbench ES2 on a development computer with access to the LiveCycle ES2 repository. Adobe Flash® Player - version 9.0.151.0 or later. Download from http://www.adobe.com/products/flashplayer/. For Content Creation building block and Correspondence Generation building block: • • • Adobe AIR - version 1.5.0.7220 or later, available from http://get.adobe.com/air/ Adobe Acrobat® Professional version 9.0 or later Adobe Designer ES (8.2.1.2) and Adobe Designer ES2 For On-Demand Assembly building block: • • • • Adobe Flex® Builder™ 3.0.1 or later Adobe Reader® version 8.1.3 or later. Download from http://www.adobe.com/products/reader/. Adobe Designer ES2 on a development computer with access to the LiveCycle ES2 repository. A JSP editor on a development computer to create the DXFA and CSC files For Review, Commenting, and Approval building block: • • Adobe Flex® Builder™ 3.0.1 or later Adobe Reader® version 8.1.3 or later. Download from http://www.adobe.com/products/reader/. For Selection and Capture building block: • • Adobe Flex Builder™ 3.0.1or later Adobe Reader® version 8.1.3 or later. Download from http://www.adobe.com/products/reader/. Browsers The building blocks have been designed to support the browsers supported by LiveCycle ES2. Download and extract the building blocks Download and extract the building block distribution file, building_blocks_2_0.zip, to a local folder. The folder where the files are extracted could be on your LiveCycle ES2 server, as you need to deploy resources to the application server. If the files are extracted to a different computer, such as a developer computer, you need access to the LiveCycle ES2 server to complete the deployment. The solution accelerator root folder is identified in these instructions as [sa_root]. CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 13 Technical Guide for Correspondence Generation Configure the application server The following building blocks require application server configuration. Configure your application server as described here. • • • • Common building block On-Demand Assembly building block Review, Commenting, and Approval building block Selection and Capture building block Configure JBoss application server For Red Hat® JBoss® Application Server, no specific configuration is required. Configure WebSphere application server, XA Data Source in WebSphere/DB2 For IBM® WebSphere® Application Server, create a data source with the name SA_DS that points to the database identified by IDP_DS data source. Make sure that the SA_DS data source uses an XA data source provider that supports 2 Phase Transaction Commits. WebSphere users require an XA data source to access the database tables in the LiveCycle ES2 database. They cannot use the default NonXA LiveCycle IDP_DS data source because of a known issue in WebSphere with Non-XA data source. The following instructions guide you through creating the XA Data Source (the JNDI name SA_DS) in WebSphere for a DB2 database. Configuring an XA data source involves creating a DB2 JDBC provider and then creating the XA data source using the new JDBC provider. Both tasks are detailed in the two procedures that follow: Create a DB2 JDBC provider: 1 Log in to WebSphere Integrated Solutions Console with your user ID. 2 In the WebSphere Administrative Console navigation tree, click Resources > JDBC > JDBC Providers. 3 In the drop-down list in the right pane, select Node=[appropriate node name] and then click New. 4 Click New, set the JDBC provider configuration, and then click Next. Scope: cells:solutionstestNode01Cell:nodes:solutionstestNode01 Database type: DB2 Provider Type: DB2 Universal JDBC Driver Provider Implementation Type: XA data source Name: DB2 Universal JDBC Driver Provider (XA) Description: Two-phase commit DB2 JCC provider that supports JDBC 3.0. Data sources that use this provider support the use of XA to perform 2-phase commit processing. Use of driver type 2 on the application server for z/OS is not supported for data sources created under this provider. 5 Enter the database class path information, and then click Next. Class path: ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar ${UNIVERSAL_IDBC_DRIVER_PATH}/db2jcc_license_cu.jar ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar Directory location: On Windows, by default, this folder is at C:/Program Files/IBM/db2cmv8/lib/. 6 Verify the summary and click Finish. 7 In the Messages box at the top of the page, click Save directly to master configuration. The XA JDBC provider is now created. Create the XA data source: 1 In the navigation tree, click Resources > JDBC > Data Sources. CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 14 Technical Guide for Correspondence Generation 2 In the Data Sources pane, select the same scope similar to the scope of LiveCycle - db2 - IDP_DS data source, Node=[appropriate node name], and then click New. 3 Enter the data source details, and then click Next. Scope: cells:solutionstestNode01Cell:nodes:solutionstestNode01 Data source name: SA_DS JNDI name: SA_DS 4 Select Select an existing JDBC provider and, from the list, select the XA JDBC Provider that you created. 5 Click Next, enter the database-specific properties, and then click Next again. Database name: [name] Driver type: 4 Server name: [server name] Port number: 50000 Select Use this data source in container managed persistence (CMP). 6 Click Next, enter the Setup security aliases properties: Authentication alias for XA recovery: IDP_DS/db2-db2admin Component managed authentication alias: IDP_DS/db2-db2admin Mapping-configuration alias: none Container-managed authentication alias: IDP_DS/db2-db2admin 7 Click Next. 8 Verify the Summary of actions and click Finish. 9 Click Save to save the changes. The new data source, SA_DS is created. 10 Select SA_DS from the list of data sources and click Test Connection to test the data source. Configure WebLogic application server LiveCycle ES2 supports WebLogic Server® 10.3. Install a patch on the WebLogic Server, Patch ID: IQXV. This is a private patch by Oracle. Use the smart updater utility bundled in the WebLogic installation, log in using their support credentials, download, and apply this patch. The patch is not effective if the managed server’s classpath is overridden. In this case, prepend (not append) the classpath with the patch jar. After the server’s classpath has the patch jar included, restart the server. If you don’t install this patch, at the time of deploying adobe-bb-oda-app-weblogic.ear, the following exception is thrown: An error occurred during activation of changes, please see the log for details. weblogic.application.ModuleException: com.ctc.wstx.stax.WstxInputFactory cannot be cast to javax.xml.stream.XMLInputFactory Deployment by the installation framework requires exclusive access to the domain edit lock. If the domain edit lock is owned by another session in non-exclusive mode, the deployment can fail. If you are using “Automatically Acquire Lock and Activate Changes” in the console, then the lock will expire shortly so you may need to retry this operation. The best practice is to ensure that the domain edit lock is available and exclusive. This is an issue with WebLogic and is a Deployer Subsystem Messages. It is mentioned in BEA WebLogic Server Documentation. Step 2. Deploy the building blocks Deploying any solution or building block involves several specific steps. These steps are categorized in three sections: CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 1 15 Technical Guide for Correspondence Generation Deployment Deployment can be based on the installation framework that automatically deploys all of the assets of the solution. Alternatively, users may choose to do a manual deployment. The deployment section has following steps categorized in following sections. Optional steps are marked as optional: The installation framework-based deployment has following steps: • • • Edit the Ant properties Configure the building blocks Run the install script Manual deployment has the following steps: 2 • Install the components manually Post-installation configuration Acronym usage The following acronyms identify the building blocks in many of the command-line commands: • • • • • • cmn represents Common building block ccr represents Content Creation building block cgr represents Correspondence Generation building block oda represents On-Demand Assembly building block rca represents Review, Commenting, and Approval building block snc represents Selection and Capture building block Deployment The building blocks are part of the Adobe Solution Accelerator program. All solution accelerators and building blocks share resources, including deployment resources. To successfully install the building blocks and the solution template, adjust the configuration settings as described in the following sections. Configure the ant.properties To prepare for deployment, configure the values of the installation properties by editing the file [sa_root]\install\ant.properties. Many of the defaults can be left unchanged, but all values should be validated for your LiveCycle ES2 environment. Complete details about this file are available in Appendix - Ant properties. LiveCycle ES2 Turnkey installation properties For a standard LiveCycle ES2 turnkey installation, the following properties in [sa_root]\install\ant.properties should be validated and edited as required. Property name Description Required lc.sdk Location of LiveCycle ES SDK. LiveCycle ES SDK is also Yes located in the Workbench ES2 install folder. Default value C:/Adobe/Adobe LiveCycle ES2/LiveCycle_ES_SDK CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment Technical Guide for Correspondence Generation LiveCycle ES2 server properties The following LiveCycle ES2 properties in [sa_root]\install\ant.properties should be validated and edited as required. Property name Description Required Default value lc.sdk Location of LiveCycle ES SDK. LiveCycle ES SDK is also Yes located in the Workbench ES2 install folder. C:/Adobe/Adobe LiveCycle ES2/LiveCycle_ES_SDK server.type Type of the application server. Only jboss, websphere, Yes or weblogic are supported jboss server.hostname LiveCycle ES2 server host name Yes localhost server.http.port LiveCycle ES2 server http listener port Yes 8080 server.username LiveCycle ES2 user name with administrative rights Yes administrator server.password Password for the user, specified using server.username parameter Yes password WebLogic-specific properties For a LiveCycle ES2 installation, on WebLogic application server, the following properties in [sa_root]\install\ant.properties should be validated and edited as required. Property name Description Required Default value weblogic.location Location of the WebLogic application server. For example ${env.WL_HOME}or C:/Weblogic_install No ${env.WL_HOME} WebLogic administrator user name No weblogic.user Required only if server.type is weblogic weblogic Required only if server.type is weblogic weblogic.password WebLogic administrator password No weblogic Required only if server.type is weblogic weblogic.adminurl WebLogic admin url. The value is localhost, as remote No deployment is not supported Required only if server.type is weblogic t3://localhost:7001 weblogic.targets WebLogic server instance myserver No Required only if server.type is weblogic 16 CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 17 Technical Guide for Correspondence Generation WebSphere-specific properties For a LiveCycle ES2 installation, on WebSphere application server, the following properties in [sa_root]\install\ant.properties should be validated and edited as required. Property name Description Required Default value websphere.location Install location for WebSphere application server No ${env.WAS_HOME} Required only if server.type is websphere websphere.host Hostname for WebSphere No localhost Required only if server.type is websphere websphere.port websphere.user SOAP connector port for WebSphere. Please note that it is not http port, it is a soap connector port No WebSphere administrator user name No 8880 Required only if server.type is websphere system Required only if server.type is websphere websphere.password WebSphere administrator password No manager Required only if server.type is websphere websphere.profile.name Name of WebSphere server profile No AppSrv01 Required only if server.type is websphere Configure the email service You can configure LiveCycle EmailService using Ant based install. To configure EmailService, set the configure.email.service flag to true in [sa_root]\install\ant.properties. Modify other required properties based on the following table: Property name Description Required Default value configure.email.service If this flag is true, install configures the LiveCycle EmailService. If EmailService configuration is not required, set this value to false. If EmailService is already configured, then also set it to false. Yes false email.smtp.host Host name for SMTP Server Yes email.smtp.port SMTP port number for the server Yes email.smtp.authenticate Set this flag to true, if SMTP server requires authenti- Yes cation email.smtp.user The user name is used to authenticate to SMTP server. Required only if email.smtp.authenticate is true email.smtp.password The password is used to authenticate to SMTP server. Required only if email.smtp.authenticate is true 25 true CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 18 Technical Guide for Correspondence Generation Configure the database connection settings Validate, and modify the database properties to match your environment, based on the following table: Property name Description Required Default value database.driver.jar Database driver location Yes C:/Adobe/Adobe LiveCycle ES2/jboss/server/lc_turnkey/lib/mysqlconnector-java-5.1.6-bin.jar database.driver.class Database driver class Yes com.mysql.jdbc.Driver database.connection.url Database connection URL Yes jdbc:mysql://localhost/adobe database.username Database user name for authentication Yes adobe database.password Database password Yes password Optional - Remote deployment properties Remote deployment of enterprise applications is not supported for WebLogic and WebSphere application servers using Ant-based deployment. For deployment to JBoss application server, the remote server must have access credentials to the path configured for ear deployment. To use Ant deployment on a remote server, set the flag export.ears.only=true in the file [sa_root]\install\ant.properties. This creates a folder named “export” inside [sa_root]. All of the deployable ears are copied to this location. Users are expected to deploy them manually. If deployment is run for a second time with the export.ears.only property set to true, delete the previous instance of the export folder (if one exists) before running the deployment. The second deployment does not over-write the first instance of the export folder. Import Reader Extensions Ant-based installation downloads trial Reader Extensions ES2 credential from adobe.com and imports them to LiveCycle ES2 using the RE_SA_ALIAS alias. The download requires an internet connection. If internet connection is not available, then set re.cert.source=none in the file [sa_root]\install\ant.properties. The user may also provide an existing Reader Extensions ES2 certificate in the trust store to create RE_SA_ALIAS. For more advanced options, refer to Appendix - Ant properties. Property name Description Required Default value re.cert.alias Reader Extension Alias. This alias name is used to import the Reader Extensions ES2 certificate. No RE_SA_ALIAS re.cert.url LiveCycle ES2 trial Reader Extensions ES2 certificate will be downloaded from cert.url. No http://www.adobe.com/go/reader_ext_ce rt re.cert.source Source of the Reader Extensions ES2 certificate. No Possible values are: file, url. If the value is url, then the value of re.cert.url is used. If the value is set to file, then re.cert.file and re.cert.password properties will be used. Any other value means that a Reader Extensions ES2 certificate is not imported. re.cert.file The cert file path. For example: C:/sa/cert.pfx or C:/sa/cert.cer Required only if re.cert.source=file re.cert.password The password for the certificate in clear text. For example: password Required only if re.cert.source=file url CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 19 Technical Guide for Correspondence Generation Importing demo assets By default, the install script installs demo assets, including demo user database, sample orchestrations, and other demo related artifacts. To turn off demo assets deployment, set deploy.demo.assets=false in [sa_root]\install\ant.properties. Optional - Configure Common building block The file [sa_root]\install\CMNConfig.xml contains values for configuring the following Common building block services: • Nonce Manager • Configuration Manager While many of the default values may be correct for your environment, modify the values of these properties to match your environment, as needed. Parameter Name Module Name Description Default Value dbSchemaOwner NonceManager Name of the database schema owner, in case, you have used a username other than the schema owner while creating the datasource. None. dbSchemaOwner ConfigurationManager Name of the database schema owner. If you have used a username other than the schema owner while creating the datasource, then set the schema owner. None configFileLocation ConfigurationManager Location of configuration files in LiveCycle ES2 repository. The /Applications/BBCommon Configuration service, stores all the db based config- Common/1.0/resources/config uration files in the LiveCycle ES2 repository. Do not change this value. It is given here for reference. In case you want to change any db based configuration file, import these files into a LiveCycle ES2 Application. Modify and redeploy the application to change the configuration. For more details, refer to Technical Guide for Common Building Block. Configure Content Creation building block The Content Creation building block does not require any specific manual configuration. Configure Correspondence Generation building block While many of the default values may be correct for your environment, modify the values of these properties to match your environment, as needed. See the full list of properties in Appendix - Ant properties. Property name Description Required Default cgrImport.app.path The path to the Adobe CGRImport.exe file, Yes once the CGRImport.air application has been installed cgrImport.log.path The path to the log file for the CGRImport application No lc.designer.user.dir The folder location for the default Designer User Settings. If this property is unset, empty, or invalid, the CGR Object Library will not be installed No ${env.APPDATA}/Adobe/Designer/8.2 flash.security.config.dir Folder location for Flash Player Security Configuration Files (required for Family Assist sample) No ${env.APPDATA}/Macromedia/Flash Player/#Security/FlashPlayerTrust C:/Program Files (x86)/Adobe/CGRImport/CGRImport.exe CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 20 Technical Guide for Correspondence Generation Optional - Configure On-Demand Assembly building block On-Demand Assembly does not require any manual configuration. The configuration file, [sa_root]\install\ODAConfig.xml, is generated and overwritten automatically at deployment time. Configure Review, Commenting, and Approval building block The file [sa_root]\install\RCAConfig.xml contains values for configuring the following Review, Commenting, and Approval building block services: • RCACore • ReviewZoneProvider • ExternalUserRegistration • BB-ReviewCommentingAndApproval/processes/notification/SendNotification While many of the default values may be correct for your environment, modify the values of these properties to match your environment, as needed. See the full list of properties in Appendix - Ant properties. Parameter Name Module Name Description Default Value useReaderExtension RCACore If set, the Review Document will be Reader Extended using the false readerExtensionCredential (another configuration of RCACore) as the Trust Store Alias. readerExtensionCredential RCACore The Trust Store Alias of the Reader Extension Credential which is used for Reader Extending the Review Document provided useReaderExtension (another configuration of RCACore) is set to true. RE_SA_ALIAS rzpWebDavLocation ReviewZoneProvider Used only when Content Services ES2 based ReviewZoneProvider is used. This configuration is the root webdav location of ReviewZoneProvider. http://localhost:8080/contentspace/webdav/RCA emailTemplateLocation BB-ReviewCommentingAndApproval/processes/notification/SendNotification The repository location of templates used to send emails. This location must be a repository location and contain Velocity templates for emails. /Applications/BB-ReviewCommentingAndApproval/1.0/resources/templates/email / fromAddress BB-ReviewCommentingAndApproval/processes/notification/SendNotification The from address used in the notification emails. [email protected] lcWorkspaceUrl BB-ReviewCommentingAndApproval/processes/notification/SendNotification URL of Workspace ES2. This is injected in the notification emails http://localhost:8080/workspace when a new review or approval task is assigned to a participant. Configure Selection and Capture building block Selection and Capture-specific installation properties are listed in the file [sa_root]\install\snc.ant.properties. The following properties should be validated and modified as required. See the full list of properties in Appendix - Ant properties. Property name Description Required Default Invoker.DSC_DEFAULT_EJB_ENDPOINT The endpoint of LiveCycle ES2 server to which the Invoker communicates Yes jnp://localhost:1099 Invoker.DSC_TRANSPORT_PROTOCOL The transport protocol used by Invoker to communicate to LiveCycle ES2 server Yes EJB Invoker.DSC_SERVER_TYPE The type of LiveCycle ES2 server: JBoss, WebSphere, or WebLogic Yes JBoss CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 21 Technical Guide for Correspondence Generation Property name Description Required Default Invoker.DSC_CREDENTIAL_USERNAME LiveCycle ES2 user name with DSC Invoca- Yes tion rights. Defaults to the user with administrative privileges. administrator Invoker.DSC_CREDENTIAL_PASSWORD Password for the user Yes password snc.data.store.dir The storage location at LiveCycle ES2 server Yes C:/Adobe/Adobe LiveCycle ES2/jboss/server/lc_turnkey/svcnative/ Deploy the building blocks Building blocks are deployed individually, but some building blocks have dependencies on other building blocks. Follow the instructions that match your building block requirements. Remote deployment of enterprise applications is not supported for WebLogic and WebSphere application servers using Ant-based deployment. For deployment to JBoss application server, the remote server must have access credentials to the path configured for ear deployment. To use Ant deployment on a remote server, set the flag export.ears.only=true in the file [sa_root]\install\ant.properties. This creates a folder named “export” inside [sa_root]. All of the deployable ears are copied to this location. Users are expected to deploy them manually. Deploy all building blocks Deploy all building blocks on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install install install install install install -Ddeploy.list=cmn -Ddeploy.list=oda -Ddeploy.list=rca -Ddeploy.list=snc -Ddeploy.list=ccr -Ddeploy.list=cgr Deploy all building blocks on the Unix or AIX operating systems: 1 Open a shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh -Ddeploy.list=cmn ./install.sh -Ddeploy.list=oda ./install.sh -Ddeploy.list=rca ./install.sh -Ddeploy.list=snc Note: The Content Creation (ccr) and Correspondence Generation (cgr) building blocks must be deployed from a Windows operating system. The building blocks are now deployed. Deploy Common building block Deploy Common building block on the Windows operating system: 1 Open a Command Prompt window. CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: Technical Guide for Correspondence Generation install -Ddeploy.list=cmn Deploy Common building block on the Unix or AIX operating systems: 1 Open a shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh -Ddeploy.list=cmn The Common building block is now deployed. Deploy the Content Creation building block Content Creation building block must be deployed done from a Windows operating system. Note: Installing Content Creation building block will automatically install Correspondence Generation building block, so Correspondence Generation does not need to be installed separately, if Content Creation building block is installed. Deploy Content Creation on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install -Ddeploy.list=ccr The Content Creation building block is now deployed. Deploy the Correspondence Generation building block Correspondence Generation building block must be deployed from a Windows operating system. Note: Installing Content Creation building block will automatically install Correspondence Generation building block, so Correspondence Generation does not need to be installed separately, if Content Creation building block is installed. Deploy Correspondence Generation on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install -Ddeploy.list=cgr The Correspondence Generation building block is now successfully deployed. Deploy the On-Demand Assembly building block Deploy On-Demand Assembly on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install -Ddeploy.list=cmn install -Ddeploy.list=oda 22 CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment Deploy On-Demand Assembly on the Unix or AIX operating systems: 1 Open a shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh -Ddeploy.list=cmn ./install.sh -Ddeploy.list=oda The On-Demand Assembly building block is now successfully deployed. Deploy the Review, Commenting, and Approval building block Deploy Review, Commenting, and Approval on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install -Ddeploy.list=cmn install -Ddeploy.list=oda install -Ddeploy.list=rca Deploy Review, Commenting, and Approval on the Unix or AIX operating systems: 1 Open a shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh -Ddeploy.list=cmn ./install.sh -Ddeploy.list=oda ./install.sh -Ddeploy.list=rca The Review, Commenting, and Approval building block is now successfully deployed. Deploy the Selection and Capture building block Deploy Selection and Capture on the Windows operating system: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\install 3 At the prompt, enter and run: install -Ddeploy.list=cmn install -Ddeploy.list=oda install -Ddeploy.list=snc Deploy Selection and Capture on the Unix or AIX operating systems: 1 Open a shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh -Ddeploy.list=cmn ./install.sh -Ddeploy.list=oda Technical Guide for Correspondence Generation 23 CORRESPONDENCE GENERATION BUILDING BLOCK Building block deployment 24 Technical Guide for Correspondence Generation ./install.sh -Ddeploy.list=snc Optional - Manual deployment Deployment is typically done use the methods described in this section. However, if manual deployment is required, see Appendix - Manual deployment. Post-installation tasks Handling solution accelerator updates By default, the solution accelerator deployment process will not overwrite a previous installation, if the installed version and the incoming version of the building blocks or solution accelerator are the same. However, in the case of a version conflict, or if you want to force an overwrite of a previous installation, you can always undeploy and redeploy the building block or solution accelerator. Alternatively, you can change ant.properties value for force.asset.redeployment to true and deploy the solution accelerator again. It will now overwrite any previous installation of the building blocks or solution accelerator. Uninstalling the building blocks To uninstall the building blocks and their resources, follow these instructions. These steps uninstall all building blocks. Remove the building blocks that you do not want to uninstall from the deploy.list. Uninstall the building blocks from Windows: 1 Open a command prompt. 2 Change the current directory to [sa_root]\install 3 Run install undeploy -Ddeploy.list="rca,snc,ccr,cgr,oda,cmn" Uninstall the building blocks from Unix or AIX: 1 Open shell console 2 Change the current directory to [sa_root]/install 3 Run chmod 777 install.sh ./install.sh undeploy -Ddeploy.list="rca,snc,oda,cmn" The building blocks are now uninstalled. 25 5. How Correspondence Generation works Correspondence Generation is a building block built with a combination of various out-of-the-box LiveCycle ES2 components (Designer ES2, Workbench ES2, Guide Builder, Workspace ES2, Forms ES2, and others), a Flex-based API for creating XFA content directly in the LiveCycle ES2 repository. A Flex application called Content Creator is provided with the Content Creation building block for creating paragraphs (XFA fragments containing rich text) that can be re-used in various letters. The building block provides LiveCycle ES2 customers with an SDK that includes all of the tools they need to quickly get started in creating paragraph content, and the letters that use them. Paragraph content can be hooked-up to live data in the letter using XFA’s floating field technology, and letters can have data connections to schemas, databases, or web services. Since data is bound to fields in the letter and not in the paragraph content, paragraphs can easily be re-used in multiple letters even if those letters use different data connections and data bindings. Solution developers can make use of Correspondence Generation queries. A query is defined in a letter and is executed during letter filling, using a Form Guide designed to fill the letter with content. The result is a dynamic list of paragraphs (fragments from the Repository) based on criteria such as tags assigned to the content using Content Creator. The major advantage over traditional fragments is that the letter does not need to be modified to include new paragraphs or remove old ones that are no longer applicable. Define the letterhead Think of “letterhead” as a physical preprinted letter stock on which the letter contents are printed. Define the letter template The letter template is a form that defines the general layout of the letter and the letter content. This step also includes the definition of the rules to decide whether a content piece should be included in any specific instance of a letter. A standard Correspondence Generation base template is provided with this kit. The template is an XDP file that provides for standard header and footer processing, fragment inclusion samples, and applicable scripting utilities. By starting with a copy of the base template and replacing placeholder content within that base template with previously created content fragments, you can create a “letter template”. This letter template is also an XDP file. The letter template contains control fields that allow for the creation of a letter filling experience from which letters are created as PDFs or printed. Define the letter filling experience The next step is to define the letter filling experience. The target audience for the result is clerks or analysts who do not have any LiveCycle ES2 expertise. The author of the “letter filling experience” must have that target audience in mind. Given the Letter Template complete with control fields, the Guide Builder facility in Designer ES2 is used to create the letter filling experience. That experience takes the shape of a form guide. Form guides are highly customizable so the variations possible in the letter filling experience are quite wide. The submit operation of a form guide results in sending the captured data to a LiveCycle ES2 process. Select a letter type to create The next step is the letter filling experience that enables a user to select create a letter to create. The actual initiation of the letter filling experience can be done using an external application that is part of your existing system (for example, a Customer Service Representative System), a link on a web page, or as a “Start Process” task in Workspace ES2. Using Data Services ES2, it is easy to initiate a LiveCycle ES2 process, a process that might begin with a letter filling experience. CORRESPONDENCE GENERATION BUILDING BLOCK How Correspondence Generation works 26 Technical Guide for Correspondence Generation Define the process The seventh and final step is to create a process in Workbench ES2. What happens when a letter is filled? That is, some data was entered and the appropriate letter content piece selections have been made? The letter is meant to go to its recipient but the corporation may have many more things to do than just print the letter. The end operation of the letter filling experience is to submit the letter (its data) to a LiveCycle ES2 process. The result is usually a printed or e-mailed, and possibly archived letter. This is where the flexibility of the LiveCycle ES2 architecture really comes into play. As a developer, you can define a LiveCycle ES2 process that does just about anything, for example: • • • • • • Recreate the letter in flat (non-interactive) PDFs or print the letter using Output ES2. Bundle the letter with other materials using Assembler. Certify the letter using Digital Signatures ES2. Add or extract metadata using the XMP Utilities service. Create your own document services to update corporate databases. Forward the letter to other users for approvals with a LiveCycle ES2 user-centric process. The Correspondence Generation model The runtime portion of correspondence management is the letter filling experience, which is an interactive process of filling in a letter to create a piece of correspondence. This is all based on the layering of the following components. CmBaseTemplate A reference template upon which a letter should be based Designer CMG Object Library Includes CM Content and CM Query XFOs. Specially designed XFOs that are inserted into your letter to define how and where the various correspondence fragments are incorporated into the letter Custom Form Guide Users incorporate CmList and CmQuery controls that map to the XFOs These are built using the following SDK libraries: Flex XFA Authoring Library: Low-level Flex library that provides methods to create various XFA objects. Located in [cgr root]\cgrXfa. CmModel Library: Higher level library that provides methods to create correspondence generation-specific objects, such as letters and fragments using the XFA library. Located in [cgr root]\cgrModel. Layout Library: Higher level library, that uses CmModel library to build Guide controls that are used as part of the letter filling experience. Located in [cgr root]\cgrLayouts. CORRESPONDENCE GENERATION BUILDING BLOCK How Correspondence Generation works 27 Technical Guide for Correspondence Generation Flex XFA Authoring Library The Flex XFA Authoring Library provides a standard subset of recognizable, tangible XFA objects implemented in Flex, including low-level XFA authoring capabilities. The library provides an XfaRichTextEditor control (extending the Flex RichTextEditor) which is used to convert between Flex and XFA Rich Text. This library is used in the Content Creator tool, which is included in the Content Creation building block, to create new, and edit existing paragraph fragments. It is used by the CmList and CmQuery control in correspondence filling experience form guides to edit paragraph content in real time. CORRESPONDENCE GENERATION BUILDING BLOCK How Correspondence Generation works 28 Technical Guide for Correspondence Generation CmModel Model Library This library contains an object model best suited to creating fragments and letters to be combined into correspondence stored in the LiveCycle ES2 repository. Create new or load existing content fragments from the LiveCycle ES2 repository (com.adobe.solutions.cgr.model.frag) • Paragraph (CmParaFrag) • Image (CmImageFrag) • Script Object (CmScriptObjFrag) Tag and query content fragments and other assets directly in the LiveCycle ES2 repository. Create new or load existing assets from the LiveCycle ES2 repository using the ICmRepository interface and the CmRepositoryFactory object (com.adobe.solutions.cgr.model.repository) LiveCycle Designer CMG Object Library This shared library contains a set of objects (XFOs) used to control the inclusion of content in a correspondence template. CM Content Subform containing static content fragment references and special control fields to dictate how content is included in the section (mandatory, optional, conditional, editable). CM Query Subform containing dynamic content fragment references (determined at runtime based on query results rather than fragment location paths) and special control fields to dictate how query results are included in the section (mandatory, optional, conditional, editable, numbered/bulleted). CORRESPONDENCE GENERATION BUILDING BLOCK How Correspondence Generation works 29 Technical Guide for Correspondence Generation The objects work in tandem with CmList and CmQuery controls in the correspondence filling experience form guide. CmList The control manages content from CM Content objects in the correspondence template. CmQuery The control manages content from CM Query objects in the correspondence template. Flex Correspondence Filling Experience Library This library contains enhanced controls and wrappers for creating correspondence filling experiences based on LiveCycle ES2 form guides. CmAdjacentView wrapper Optional side-by-side view of the form guide and the PDF (WYSIWYG correspondence preview). CmList control List view of content fragments (paragraphs, images, complex) to be included in the final correspondence (one for each CM Content template object). CmQuery control List view of results retrieved by a query on paragraph content fragments stored in the LiveCycle ES2 repository for inclusion in the final correspondence (one for each CM Query template object). 30 6. Creating content To create content for use in letters, complete the following tasks: “Defining repository structure and content” on page 30 “Customizing the tag library” on page 30 “Creating fragments” on page 32 Defining repository structure and content Content is stored in a folder structure within LiveCycle ES2 repository. A consistent folder structure helps keep projects organized, but you can use whatever structure makes sense for your projects. Set up the folder structure: 1 In Workbench ES2, set up a category folder in the Resources view for the new letter. Right-click the root folder in the Resources view, and click New Folder. Provide a meaningful Folder Name such as myProjects. Click OK. 2 In the new category folder, create a folder for the new letter. Right-click the new category folder that you just created, and click New Folder. Provide a meaningful Folder Name such as myLetter1. Click OK. 3 Under the new letter folder, create these subfolders: • • • • data doc frag res Collect content for the letter: 1 Copy the text provided as input to the letter project into the doc folder. 2 Gather or establish some sample data files that you can use during development and testing. You can put the schema for the data files in the data folder you just created for your new letter. It is possible to use a higher level corporate master schema. That is, you can store the master schema in a higher level 'share' folder in the repository hierarchy. You can add a note to this effect in the doc folder you created for your letter. 3 Copy images such as company logos into the res (resource) folder. Customizing the tag library Think of every letter as a project. Keep the collateral for a project in the LiveCycle ES2 repository as a record of the project and potentially for review if updates are required. Many letters are related. It is worth the initial effort to come up with a categorization scheme for the letters. This scheme can be hierarchical and represented as a folder structure in the repository. Create tags to categorize fragments. Tags are persisted in the LiveCycle ES2 repository as custom properties that are saved with the asset. Define tags in the file cm/system/cm_default_tags.xml, in the repository. The tags you define in this file appear in Content Creator and enable the user to apply them to any fragment. It is also possible to use tags to search for fragments and filter fragments in Content Creator. CORRESPONDENCE GENERATION BUILDING BLOCK Creating content 31 Technical Guide for Correspondence Generation This is the initial cm_default_tags.xml file provided with Correspondence Generation, after the samples have been imported. CGRImport updates this file as it find tag files in the tree. <cm> <category id="t0" text="Region"> <category id="t1" text="North America"> <tag id="t2" text="Canada"/> <tag id="t3" text="US"/> </category> <tag id="t4" text="Europe"/> <tag id="t5" text="Asia"/> </category> <category id="cc_sample" text="Custom Communications"> <tag id="cc_common" text="Common"/> </category> <category id="g0" text="Government State Policy"> <tag id="g7" text="Decision"/> <tag id="g2" text="Finding of Fact"/> <tag id="g3" text="Analysis"/> <tag id="g4" text="Issue"/> <tag id="g5" text="Exhibit"/> <tag id="g1" text="Conclusion of Policy"/> <tag id="g6" text="Recommendation"/> </category> <category id="auto-0" text="Automobile Insurance"> <category id="auto-policy" text="Policy Coverages"> <tag id="auto-10" text="Liability"/> <tag id="auto-13" text="Medical"/> <tag id="auto-14" text="Equipment"/> <tag id="auto-12" text="Comprehensive"/> <tag id="auto-11" text="Collision"/> <tag id="auto-15" text="Towing"/> </category> </category> <category id="auto-discount" text="Policy Discounts"> <tag id="auto-20" text="Good Driver"/> <tag id="auto-21" text="Multiple Auto"/> </category> </cm> CORRESPONDENCE GENERATION BUILDING BLOCK Creating content 32 Technical Guide for Correspondence Generation Note: The id attribute must be unique and can contain alphanumeric, '.', or '_' characters. Creating fragments Create the fragments for the various content pieces of the letter and place the fragments in the frag folder. Some of the fragments may apply to an entire category of letters, so you may store those fragments in a higher level 'share' folder in the repository category folder structure. You can create textual fragments in Content Creator (provided with the Content Creation building block) or Designer ES2, but you can only assign tags to those fragments through Content Creator. For graphical fragments, use Designer ES2 and make sure that you embed the image (instead of linking to it) when you create the image object. In addition, when using Designer ES2 to create fragments, you must access it from Workbench ES2 so that you can store the fragments in the repository. Whether you use Content Creator or Designer ES2, it is recommended that you give each fragment the same name as specified in your letter project's source collateral. For example, for paragraphs, use the paragraph name as the fragment name. If you do not have names provided to you, it is helpful to do some up front planning so you can use meaningful, recognizable, but systematic names. Also make sure that you provide an appropriate description for each fragment. This enables users in Content Creator to perform full text searching of the descriptions. CORRESPONDENCE GENERATION BUILDING BLOCK Creating content 33 Technical Guide for Correspondence Generation When adding a fragment in Designer ES2, do not modify the minimum, maximum, and initial occurrence settings. Ensure that the fragment is set to min=1 and max=1 which is the default setting. For consistency, it is also recommended that the filename be the same as the fragment name (with an .xdp extension). Creating simple text fragments It is expected that the majority of fragments that you will create are text fragments that are essentially “clauses” for printout to the recipient. If a source text document exists for the pre-approved paragraphs, you can copy and paste them in Content Creator. For multiple paragraphs that are always grouped in a letter, you can copy and paste all the paragraphs to create a single text fragment. Ensure that you to save the fragments in their proper category (folder) in the repository. Create a simple text fragment with Content Creator: 1 Open a web browser to http://[server]:8080/ContentCreator/ (if this is a JBoss implementation). 2 Log in to Content Creator with the following credentials (or use any other valid credentials): User: administrator Password: password 3 Click Login. 4 Click New to create a new fragment. 5 Enter and format the text for the fragment. 6 Select the tags that categorize this fragment. 7 Enter a Title. 8 Save the fragment. Creating text fragments with embedded fields Paragraphs can contain text that derives from data. For example, the data is specific to the recipient, such as their account, and the service offering. The recipient’s name appears in the salutation of a letter, such as Dear <firstname>, and the recipient’s account information “You owe <amount>”, appears in the body of the letter. When you create the fragment for the paragraph, you can insert a floating field into the text object for the paragraph. A floating field is an object that supports the merging of text, numeric values, run-time properties, and scripting within a text object when the form is rendered. You can bind a floating field to a data source to display specific text or numeric values. Insert a field into a fragment: 1 Open or create a fragment in Content Creator. 2 Click inside the fragment, where you want to place the field. 3 Click Insert Field. 4 Enter a Field Name. The optional Default Value is not currently used. The field may be bound to a variety of data sources, and may be used in a variety of letters. The field is bound to the data source within the letter itself. When creating the letter template, create fields in the cmDataFields subform (inside the cmControlPage subform) for each of the floating field references you inserted into the paragraphs in Content Creator. These cmDataFields fields must have names that match the names specified for the floating field references in Content Creator. For example, if you inserted a field named Amount into a paragraph such as “You owe {Amount}”, create a numeric field inside the cmDataFields subform and bind it to the amount data. When the letter template is rendered into a letter, the data bound into this field is displayed inside the “You own {Amount}” paragraph, if it is included in the letter. CORRESPONDENCE GENERATION BUILDING BLOCK Creating content 34 Technical Guide for Correspondence Generation Search for fragments Once you customize the cm_default_tags.xml to hold your tags, you can use Content Creator to verify that your tag is visible in the tag list. Then, you can use it to tag a fragment. And, you can use its search feature to verify you can locate that fragment using your tag. Once that works, you can edit your template to incorporate that tag id as part of a CM Query definition. You can verify this by once you get to the form guide definition and preview step. After fragments are created and tagged, searches can be conducted by identifying any of the following attributes: • Description text • Category or tag • Dates Content Creator search returns a list of documents that match the search criteria that you provide. Alternatively, you can use the Browse panel in the lower-left corner to navigate through the repository directory structure. 35 7. Starting a new letter Use the Correspondence Generation building block to create paragraph content, and the letters that use them. • • • A sample letter is located in the repository at /cm/samples/CustomCommunications/resellerInfo/resellerInfo.xdp. Fragments for the letter are in the repository at /cm/samples/CustomCommunications/resellerInfo/frag/. Common paragraphs included as part of a dynamic content section (CM Query) are in the repository at /cm/samples/CustomCommunications/share/frag/. Assume that a project is begun to issue a new letter from your corporation that addresses a certain service offering. It is expected that procedures are in place for relevant departments, for example, Marketing and Legal, to draft the content that may go into the letter. The textual portions are typically created using a rich text word-processing application such as Microsoft Word. The text and graphics then undergo a review and approval process. During this phase, it is also expected that the rules for when to include a paragraph in the letter are defined. Beyond the paragraph content, it is also important to understand the variable data content that you may want to insert into each letter as it is generated. For example, the variable data content can consist of personalized data or account-specific details that are to flow into the letter’s paragraphs. Text, graphics, rules definitions, and sample data files are necessary inputs to the project. It is recommended that you store all the collateral in the repository at the beginning of the project. Creation of a sample project involves the following steps: “Creating the letter content” on page 35 “Creating the letter template” on page 36 “Creating the letter filling experience” on page 41 Creating the letter content Before starting a new project, tags are defined and fragments are categorized with those tags. Edit the cm_default_tags.xml file to add a category for the company, and define an acceptance paragraph (plus others as needed). See “Customizing the tag library” on page 30. Create the letter content, using Content Creator. See “Creating fragments” on page 32. • • Create header and footer content. • Create fragments that represent the paragraphs of the letter. Where appropriate, insert fields that contain data from a data capture form, database, or other data source. Create the address block with fields for first name, last name, company, street, city, state, and zip. Give these fields a meaningful title, such as “Address Block”. This becomes the id or name of the subform. Save to the logical location in the repository. CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 36 Technical Guide for Correspondence Generation Creating the letter template The letter template for the Custom Communications, resellerInfo.xdp, is a collection of CM Content XFOs and one CM Query XFO. A letter can contain many XFOs, as shown in the following model. CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 37 Technical Guide for Correspondence Generation Headers and footers There are various parts to the letter template XDP. The XDP has two master pages, one for the first page, and one for other pages. This allows us to apply different headers and footers, depending on how many pages are required. Headers are applied on a master page inside a cmHeaders subform. Footers are applied inside a cmFooters subform. Headers are static sets of graphics and text. Footers are a little bit more complicated, as they can change, based on context. There are two subforms inside the cmFooters subform, one for a single page document and one for a multiple page document. These headers and footers are all provided with the base letter template. All of these header and footer objects are important because there are scripts on them that contain the logic to determine which headers and footers to display, based on the number of pages in the document. The first major step in creating the letter template is to add the headers and footers. The base template provides different headers and footers depending on whether the letter is a single page or multiple pages. Letter template body content All of the flowable content of the letter is contained within cmBodyContent. To populate the cmBodyContent, use the Correspondence Generation XFOs, CM Content, and CM Query. CM Content CM Content XFO is used to include static fragment references to existing paragraphs. Each CM Content can contain a specific fragment, such as a salutation, an address block, an opening paragraph, and so on. The object can also contain a control field which sets whether the content is editable. This determines whether during the letter filling experience, the user has the ability to edit the content of this paragraph. A CM Content XFO can contain more than one fragment. In this case a selection list is provided. The selection list can be designed to provide several selection options: choose all, choose any, or choose one. CM Query CM Query XFO is used when there is a need to provide a query capability. This subform contains dynamic content fragment references (determined at runtime based on query results rather than fragment location paths), and special control fields to dictate how query results are included in the section (mandatory, optional, conditional, editable, numbered, or bulleted). The query is specified in script as handcoded XML, using the script editor. This is the script from the cmQuerySpec of the Cnt_Common object: cc.cmBodyContent.Cnt_Common.cmQuerySpec::initialize - (JavaScript, client) // Enter the query specification here. This example is based on a query by tag ID value. // Replace 'TAG_ID_HERE' with a tag ID that corresponds to one found in the cm_default_tags.xml file. this.rawValue = "<cmQuery>" + "<cmQueryByProperty>" + "<selection property='tag' operator='equals' value='cc_common'/>" + "</cmQueryByProperty>" + "</cmQuery>" In this example, we query by property, and the property is a tag identified by cc_common, the ID of the common tag that we choose in Content Creator. CM Content and CM Query compared XFO Pros Cons CM Content Well defined up-front, and easier to work with in Designer ES2 preview PDF size is increased as all fragments are included Faster Need to maintain set of fragments that are potentially displayed Easier to include (fewer dependencies) Can include custom fragments that include form-fields CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 38 Technical Guide for Correspondence Generation XFO Pros Cons CM Query Resulting PDF contains only those fragments selected, so smaller output More ambiguous since fragments are defined by a query, and are not placed inside the template at design-time Dynamic, can pick up changes without changing definition Slower Can only be paragraph fragments Requires that cm_default_tags.xml contains the tag definition, and the query be defined in cmQuerySpec Letter template control page The recommended approach for providing data to the letter is to put all of the real data in an invisible letter filling controls page. Real data means that it is the fields in the letter filling controls page that bind to supplied data. The contents of those data fields can be used throughout the letter using floating fields. By going through the letter filling controls page, the fragment’s floating field can bind to the correct data item name in the letter filling controls page. The floating field-to-data item binding serves as a layer of indirection. The critical piece of documentation (or metadata) about a fragment is the name of the field that the fragment references for field embedding purposes. Many of the fragments added to a letter contain floating field references, such as a salutation name, or address block elements. The cmControlPage is where the data fields are stored in a cmDataFields subform, and the data sources are merged into the letter template. The data fields are referenced by various paragraphs. In this sample paragraph, the blue text is a Scripting Model Object (SOM) expression for a floating field named Product. The SOM expression replaces the data placeholder, Product, that was inserted into the paragraph in Content Creator. When you create the letter template, you go to the hidden cmControlPage subform, where the cmDataFields subform contains the data field values. In this case, this is where the field Product is actually bound to the source value. Batch letter production It is also expected that a corporation can have a requirement to produce letters in batch, in addition to having a letter filling person produce letters. Producing letters in batch does not require human interaction. Therefore, the selection of the fragments that appear in a letter is defined in the data. If data items exist in any file that the corporation uses, then it is assumed that those data items belong in the corporation’s master schema. It is assumed that these fragment selection fields are real fields. These fields, in the letter filling controls page, are bound to the data source. This means that the data alone can cause complete reconstitution of the letter as previewed by the letter filler. It also means that batch production of letters can have full control over the content selection for each letter. CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 39 Technical Guide for Correspondence Generation Text Fields Text Field objects are added from the Standard Object Library to the cmDataFields subform. A Text Field is added for each data element that appears in the letter. Each Text Field is named to match the floating field that it will fill. After the Text Fields are created and renamed, they are bound to the data node, so the data can come into them, and then be pushed to the fragment floating fields. Specify the binding in the object palette on the Binding tab. Letter template submit button The cmSubmitButton subform in the base template is a subform that contains two buttons in the hierarchy: cmGuideSubmitButton and cmPdfSubmitButton. Only the cmGuideSubmitButton is visible on the canvas (the other one is hidden) in Designer ES2. The cmGuideSubmitButton is never visible in the letter at runtime. The user is expected to set the cmGuideSubmitButton as the letter filling experience form guide's submit button in the panel where you configure overall guide options. This button provides an indirection to the cmPdfSubmitButton, which should be used to configure how data is submitted from the letter filling experience. By default, XDP data is submitted. XDP format is recommended over plain XML data if the data will contain XHTML (rich text) from editable paragraph overrides, or from other means. PDF should be the submitted format, when submitting signed documents. At run-time, the cmGuideSubmitButton automatically displays a submit button in the last panel of the form guide for the letter filling experience. When a user runs the letter filling experience in Workspace ES2, Workspace ES2 automatically removes the guide submit button and replaces it with a “Complete” button that appears in the Workspace ES2 frame in the lower-right corner. The button's click event will be triggered by Workspace ES2's “Complete” button. Guide Builder and the form guide Use Guide Builder to create the form guide that represents the letter filling experience. The CM Content or CM Query subforms that have been designed in the letter template, in a previous step, are incorporated as part of the form guide design. To do this, select a field from each of the CM Content or CM Query subforms, found in the template shown in the Form objects panel, and drag them into the current form guide panel. In the field properties window, the 'display field' for this object must be changed to either a cmList or CM Query. CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 40 Technical Guide for Correspondence Generation Once these fields are added, you can preview the form guide. If any CM Query objects have been included, ensure that the fragments are in place in the repository where the query can find them. Since the query must operate on the LiveCycle ES2 repository, it will request a login, to collect credentials to allow access the repository. When the form is moved to LiveCycle ES2, and accessed through Workspace ES2, the credentials will be detected and used without prompting. There is a custom login panel design included in the adobe-bb-cgr-layouts library that can be used if required. The form guide defined on this XDP is defined by Guide Builder. The XDP includes four custom libraries, three of which are mandatory and provided as part of the Correspondence Generation building block: • adobe-bb-cgr-layouts.swc • adobe-bb-cgr-model.swc • adobe-bb-cgr-xfa.swc Other libraries that might be included are any custom form guide style libraries, or custom application-specific libraries. Debug assistance Debug variables are provided with the letter template that are useful for debugging purposes. The following variables are available: • • • cmShowControlFieldsInPdf: Displays the control fields in the PDF output. Possible values are 0 (disabled) and 1 (enabled). cmShowLetterControlPage: Displays the control page in the PDF output. Possible values are 0 (disabled) and 1 (enabled). cmDebugOutputLevel: Levels 1-3 Generate output in the Acrobat console at runtime. Possible values are 0, 1, 2, and 3, with each increasing value increasing the level of verbosity. CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter Technical Guide for Correspondence Generation The variables are enabled on the Form Properties Panel. Open Edit > Form Properties > Variables tab to add the variables to the form. Creating the letter filling experience In summary, creation of the letter filling experience includes the following steps: • Define any custom tags required to support planned queries in the repository file cm/system/cm_default_tags.xml. See “Customizing the tag library” on page 30. • Create the paragraphs using Content Creator either from scratch, or by copying text and paragraphs from an existing document or source. See “Creating fragments” on page 32. • Create a new letter template by making a copy of the cmBaseTemplate or the startingPoint templates., or modify a sample from the repository. • • Add header and footer content. See “Headers and footers” on page 37. Add paragraph fragments to the letter. If the paragraphs are static, add them as CM Content objects. If the paragraphs are dynamic, based on content, add them as CM Query objects. See “Letter template body content” on page 37. 41 CORRESPONDENCE GENERATION BUILDING BLOCK Starting a new letter 42 Technical Guide for Correspondence Generation • Add a query as needed for content that is dependent on query results. Set the value of the Select Type and List Type to allow the correct selection model. • Each CM Content and CM Query section should be bound to a unique data group node. This binding is direct and doesn't go through the cmDataFields subform. By default, a CM Content section (subform) is bound to a cmData.content data group node, and a CM Query section (subform) is bound to a cmData.query data group node. These bindings are relative to the enclosing container, which by default should be the root subform (since cmBodyContent is not bound to data). If there are any CM Content or CM Query sections that don't have unique data group node bindings, they will be highlighted with a red rectangle. An error message output to the JavaScript Console (if the cmDebugOutputLevel debug form variable is 1 or higher) when the letter is rendered as PDF, either through form rendering in LiveCycle ES2 or through Designer Preview. • Add the custom libraries to the form guide. See “Guide Builder and the form guide” on page 39. 43 8. The Correspondence Generation samples The Correspondence Generation building block includes samples to show a range of features, and possibilities when implementing a correspondence generation solution. The building block includes the following samples: “Custom Communications” on page 43 “CmStartingPoint” on page 45 “Insuracorp” on page 45 “Family Assist” on page 46 Custom Communications The Custom Communications sample uses a Flex AIR application to represent the external Customer Service Representative's (CSR) corporate application. The CSR uses this application to collect customer call information and initiate a LiveCycle ES2 process to conduct the letter-filling processing. ArchiveLetter process A LiveCycle ES2 process is provided to support the Custom Communications sample. It includes a set of operations: • • • • Configure form URL Fill in follow-up letter Generate PDF/A Document Save the PDF document These resources work together to provide a sample of a correspondence generation application, and to provide you with customizable and extendable resources and templates. Open the sample Call Application: 1 Open a browser and enter the URL http://[server-name]:8080/CustomCommunications/ 2 Enter data for a customer call including the server name, or localhost, and a task is created for the administrator. CORRESPONDENCE GENERATION BUILDING BLOCK The Correspondence Generation samples 3 44 Technical Guide for Correspondence Generation Open Workspace ES2 to see the administrator task. Log in to Workspace ES2 as administrator at http://[server name]:8080/workspace/ (for a JBoss implementation). 4 On the main screen, click To Do. 5 Complete the customer correspondence, by editing or accepting the letter paragraphs. 6 When you finish modifying the letter, click Complete. Workbench ES2 creates the final outbound customer letter (FollowUpLetter.pdf) in the root directory of the [server name] server. CORRESPONDENCE GENERATION BUILDING BLOCK The Correspondence Generation samples 45 Technical Guide for Correspondence Generation The application provides form fields to collect the pertinent customer data. The data is defined as XML, where the format is compliant with the Correspondence Generation example form’s expected schema. This is what the sample data looks like: <cc> <customer> <firstName>Kel</firstName> <lastName>Varsen</lastName> <company>Digital Phones Inc.</company> <street>125 New Haven Ave.</street> <city>Portsmouth</city> <state>ME</state> <zip>01144-8292</zip> <budget>50000</budget> </customer> <conversationType>phone</conversationType> <product>Tel-X 100</product> <bonusProduct>Mob-B 100</bonusProduct> <policy>NMAP</policy> <accountExec> <execName>Rye Woodward</execName> </accountExec> </cc> The CSR application uses the Flex RemoteObject class that provides access to classes on the LiveCycle ES2 server. The RemoteObject destination’s attribute name maps to the LiveCycle ES2 process name. Credentials are provided to the RemoteObject class so that it can authenticate and log into LiveCycle ES2 to invoke the process. Since the LiveCycle ES2 process type is a long-lived process, the operation that is exposed using its remoting endpoint is invoke_Async, reflecting the asynchronous nature of the process. The process is designed with a single input parameter of type “xml” to hold the CSR customer data. This is passed as an argument via the invoke_Async operation invocation: Remoting_Endpoint.invoke_Async({inXMLData:getData()}); The jobId returned by this invocation can be used to get the status and results of the asynchronous operation. LiveCycle Remoting provides the JobManager class for this purpose. The CSR application must link to the adobe-remoting-provider.swc and adobe-remotingprovider_rb.swc to use LiveCycle Remoting. The source code for this application is available at [cgr root]\samples\applications\CustomCommunications\src. CmStartingPoint The CmStartingPoint example is a basic template used as a starting point for creating other samples. It contains content and a form guide, unlike the cmBaseTemplate, which has no content at all. Insuracorp The Insuracorp example displays summary insurance information for vehicles, and then reveals details on each vehicle's policy. It uses a repeating subform into which CM Content and CM Query XFOs are placed. CORRESPONDENCE GENERATION BUILDING BLOCK The Correspondence Generation samples Technical Guide for Correspondence Generation Family Assist The FamilyAssist example displays a legal hearing decision that collects information pertaining to the decision. It uses a collection of CM Content and CM Query XFOs, and uses conditions to include fragments. 46 47 Appendix - Manual deployment Note: The installation of the Correspondence Generation building block must be done through a Microsoft Windows computer. This has no bearing on which platform is being used for the LiveCycle ES2 server. All components of the solution accelerator are optimized for ANT deployment. However, if you customize a service, an application, or a resource, you may want to deploy just the customized files. The following procedures describe the manual deployment process. Manual deployment does not provide a complete installation. Some tasks, such as setting up and populating the database, can only be accomplished by using an ANT deployment. Pre-installation for manual deployment For manual deployment, the pre-installation task must be completed before following these instructions. Import the Reader Extensions credentials: 1 Download the Reader Extensions file from http://www.adobe.com/go/reader_ext_cert, which provides a ZIP file with a certificate (.pfx) and a password (.txt). 2 Log in to LiveCycle Administration Console with administrator privileges, and navigate to Settings >Trust Store Management > Local Credentials. (If an ARES Credential is already present on the server, re-import the same credential and define the alias as RE_SA_ALIAS.) 3 Click Import. 4 Select the option Reader Extensions Credential. 5 Enter the Alias as RE_SA_ALIAS 6 To enter the Credential, browse to the downloaded PFX file. 7 Enter Password as provided in the downloaded password (.txt) file. Manually deploy Common building block Deploy the Common building block service: 1 Log in to Workbench ES2. 2 In the Components view, right-click the Components folder and click Install Component. If the Components view is not displayed, click Window > Show View > Components. 3 Navigate to [sa_root]\ building_blocks\cmn_2_0\dist\dsc\adobe-bb-cmn-service-dsc.jar and click Open. 4 Right-click SolutionAcceleratorCommon and click Start Component. Use the LiveCycle Administration Console to import the LiveCycle ES2 archive file that contains the processes used by the Common building block. Import the Common building block archive for LiveCycle ES2: 1 Log in to the LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 48 Technical Guide for Correspondence Generation 3 Click Import, and browse to and open [sa_root]\ building_blocks\cmn_2_0\dist\lca\adobe-bb-cmn.lca. 4 Click Preview. 5 Select the checkbox “Deploy assets to runtime when import is complete”. 6 Click Import. Optional - Import the Common building block test archive for LiveCycle ES2: 1 Log in to the LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Click Import, and browse to and open [sa_root]\ building_blocks\cmn_2_0\dist\lca\ adobe-bb-cmn-test.lca. 4 Click Preview. 5 Select the checkbox “Deploy assets to runtime when import is complete”. 6 Click Import. The Common building block is now manually deployed. Manually deploy Correspondence Generation building block Regardless of which operating system server platform is used, install Correspondence Generation resources on a Windows computer. This is ideally the computer on which you run Workbench ES2 and Designer ES (8.2). LiveCycle ES2 server can be running on any platform. You must install CGRImport Utility on the same Windows computer. You can deploy the cm repository content to a AIX or Solaris server by specifying the remote hostname and port. Installation of the Correspondence Generation building block requires the following steps: • • • • Install the CGRImport Utility Import repository assets Optional - Import the CMG Object Library Optional - Deploy the samples Install CGRImport Utility: Install CGRImport Utility to deploy the building block data. Use this tool rather than drag-and-drop the contents into the LiveCycle ES2 repository. 1 Navigate to [sa_root]\building_blocks\cgr_2_0\dist\flex-sdk-3.4.x or [sa_root]\building_blocks\cgr_2_0\dist\flex-sdk-3.0.x (depending on your Flex SDK version). 2 Double-click CGRImport.air and follow the installation wizard. Upon successful installation, if you left the relevant options selected, CGRImport Utility automatically opens, and the Adobe CGRImport shortcut appears on your desktop. Import repository assets using CGRImport Utility: 1 Launch CGRImport Utility from desktop shortcut or Start > Programs > Adobe > CGRImport. 2 Change any server or user settings as necessary, such as the server name, port, and user credentials. • • • • • Server: The URL to your LiveCycle ES2 server Server Port: Port number (usually 8080) User: User to use for importing collateral (usually 'administrator') Password: Password for the User Content Root: Leave this as '/cm' CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 3 4 5 49 Technical Guide for Correspondence Generation • Content type: Leave this as '[all files]' • Overwrite: Leave unchecked Click Import folder and navigate to [sa_root]\building_blocks\cgr_2_0\dist\repository\cm. Click OK. After the folder is imported, click OK, and Close. Optional - Import the CMG Object Library into Designer ES: 1 Launch Designer ES 8.2.1.x. 2 Click the Object Library palette menu at the upper-right hand corner of the palette. 3 Click Shared Library Location from the Object Library palette menu. 4 Browse to the file [sa_root]\building_blocks\cgr_2_0\objectLibrary\cmObjectLibrary.xml, click Open and click OK. You should now have a CMG 2.0 Object Library panel in the Object Library palette. 5 Close Designer ES. Optional - Deploy the samples: 1 Deploy the Custom Communications sample EAR to your LiveCycle ES2 server. The EAR is located at [sa_root]\building_blocks\cgr_2_0\dist\flex-sdk-3.4.x\adobe-bb-cgr-customcommunications.ear 2 Import the Custom Communications sample archive. Log into LiveCycle Administration Console as an administrator. 3 Navigate to Home > Services > Applications and Services > Application Management and click Import. 4 Locate the archive at [sa_root]\building_blocks\cgr_2_0\dist\repository\lca\adobe-bb-cgr-customcommunications.lca. Click Preview. 5 Check the Deploy assets to runtime when import is complete option. 6 Click Import. 7 Add a Flash Security Configuration file to enable the Family Assist sample. 8 a Using Windows Explorer, locate the Documents and Settings\[user]\Application Data\Macromedia\Flash Player directory. If there is no "#Security" directory within it, create one and open it. Otherwise, just open the directory. If there is no "FlashPlayerTrust" directory within it, create one and open it. Otherwise, just open it. b In the Documents and Settings\[user]\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust directory, create a new file called cgr-family-assist.cfg. In that file, enter the location (full path) of the Family Assist sample located at [sa_root]\sa\building_blocks\cgr_2_0\samples\samplesCollateral\FamilyAssist. Save your changes. If there were any browser windows open at the time, close and re-open them. The Correspondence Generation building block is now manually deployed. Manually deploy Content Creation building block Note: The installation of the Content Creation building block must be done through a Microsoft Windows computer. This has no bearing on which platform is being used for the LiveCycle ES2 server. Deploying the Content Creation building block requires that you deploy Content Creator and install the CGRImport Utility. Deploying the Content Creator data is optional. Manually deploy the Content Creator building block: ❖ To deploy manually, copy the file [sa_root]\building_blocks\ccr_2_0\dist\adobe-bb-ccr-contentcreator.ear to [LiveCycle ES2 root]\jboss\server\all\deploy\ (assuming a JBoss implementation). CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 50 Technical Guide for Correspondence Generation For WebSphere and WebLogic, deployment of the EAR is done through their respective administrative consoles. The Content Creation building block is now manually deployed. Manually deploy On-Demand Assembly building block Deploy the On-Demand Assembly building block service: 1 Log in to Workbench ES2. 2 In the Components view, right-click the Components folder and click Install Component. If the Components view is not displayed, click Window > Show View > Components. 3 Navigate to [sa_root]\ building_blocks\oda_2_0\dist\adobe-bb-oda-dsc.jar and click Open. 4 Right-click ODAService and click Start Component. 5 Right-click ODAService. Select Edit Service Configuration. Specify the value of ODA WebApp URL. • • • For JBoss application server, use a URL such as http://localhost:8080/adobe-bb-oda-webapp. For WebLogic, the URL should be http://localhost:8001/adobe-bb-oda-webapp. For WebSphere, the URL should be http://localhost:9080/adobe-bb-oda-webapp. The server name is localhost, as both the service and the EAR are deployed on the same application server. 6 Click OK. Deploy the On-Demand Assembly building block web application: ❖ Deploy the adobe-bb-oda-app-[application server].ear file to the application server. The procedure varies depending on the application server you are using. The following versions are included: adobe-bb-oda-app-jboss.ear: for JBoss adobe-bb-oda-app-weblogic.ear: for WebLogic adobe-bb-oda-app-websphere.ear: for Websphere For a JBoss Turnkey installation, copy [sa_root]\building_blocks\oda_2_0\dist\adobe-bb-oda-app-jboss.ear to [LiveCycleES root]\jboss\server\lc_turnkey\deploy. For WebSphere or WebLogic application servers, deploy this file using the application server's administration console. Optional - Deploy the On-Demand Assembly building block sample: 1 Browse to [sa_root]\ building_blocks\oda_2_0\dist\samples\odaWebSample\adobe-bb-oda-sample.ear 2 Deploy adobe-bb-oda-sample.ear to your application server. Optional - Import the On Demand Assembly building block sample archive for LiveCycle ES2: 1 Log in to the LiveCycle Administration Consolewith administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Click Import, and browse to and open [sa_root]\ building_blocks\oda_2_0\samples\odaServiceSample\adobe-bb-oda-sample.lca. 4 Click Preview. 5 Select the checkbox “Deploy assets to runtime when import is complete”. 6 Click Import. The On-Demand Assembly building block is now manually deployed. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 51 Technical Guide for Correspondence Generation Manually deploy Review, Commenting, and Approval building block Review, Commenting, and Approval uses following building blocks to work. Before we install Review, Commenting, and Approval manually, install Common and On-Demand Assembly building blocks (in order). • • Common building block. On-Demand Assembly building block. Create the user domain: 1 Open LiveCycle Administration Console. 2 Navigate to Home > Settings > User Management > Domain Management. 3 Create a New Local Domain: external-users. 4 Navigate to Home > Settings > User Management > Role Management. 5 Assign the role 'RCA User' to All Principals in domain external-users. Install the Review, Commenting, and Approval building block: 1 Install [sa_root]\building_blocks\rca_2_0\dist\adobe-bb-rca-core-dsc.jar, with Workbench ES2. 2 Install [sa_root]\building_blocks\rca_2_0\dist\adobe-bb-rca-externalUser-dsc.jar., with Workbench ES2. 3 If LiveCycle ES2 ContentSpace-based storage is required (as the backend storage for Review, Commenting, and Approval building block) install [sa_root]\building_blocks\rca_2_0\dist\dsc\adobe-bb-rca-rzp-cs-dsc.jar. ContentSpace ES2 should already be installed on the LiveCycle ES2 server. 4 If a file system based storage is required (as the backend storage for Review, Commenting, and Approval building block) install [sa_root]\building_blocks\rca_2_0\dist\dsc\adobe-bb-rca-rzp-dsc.jar. 5 Deploy the enterprise application [sa_root]\building_blocks\rca_2_0\dist\ear\adobe-bb-rca.ear to the application server which is running LiveCycle ES2. 6 Install [sa_root]\building_blocks\rca_2_0\dist\lca\adobe-bb-rca.lca through LiveCycle Administration Console. 7 Optionally, you can also install Review, Commenting, and Approval samples. To install the samples, install [sa_root]\building_blocks\rca_2_0\dist\lca\adobe-bb-rca-sample.lca through LiveCycle Administration Console. The Review, Commenting, and Approval building blockis now deployed. Configure Review, Commenting, and Approval building block 1 Open LiveCycle Administration Console. 2 Navigate to Home > Services > Applications and Services > Service Management. 3 Search for RCACore and modify the following configurations: a Check Use Reader Extension checkbox if Reader Extension is required. b If Use Reader Extension is checked, specify the trust store alias for Reader Extension credential in the field Trust Store Alias for Reader Extension Credential. 4 Search for the service EmailService, and configure it to send email. Define an SMTP server and its credentials. Review, Commenting, and Approval uses LiveCycle ES2's EmailService to send email notifications. 5 If the ContentSpace based ReviewZoneProvider is installed, search for the service ReviewZoneProvider and define the following configuration: a ContentSpace Store Name: Set its value as SpacesStore b Root Node of Review Zone: Set its value as /Company Home/RCA CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment c 6 52 Technical Guide for Correspondence Generation Root Node WebDav Location: Set its value as http://[server:port]/contentspace/webdav/RCA with [server:port] replaced with the server name and web port, for example for JBoss: http://localhost:8080/contentspace/webdav/RCA. If the file system-based ReviewZoneProvider is installed, search for the service ReviewZoneProvider and define the following configuration: a Root directory of Review Zone: This is the root directory or space where all documents and comments are stored by Review, Commenting, and Approval services. If file system based storage is used, this property should point to the directory path, for example: C:/RCA/storage. b Share name of Review Zone: This is the network share or webdav URL of the location where documents and comments are stored by Review, Commenting, and Approval services. For file system based storage, it is a network shared folder, for example \\machinename\RCA. For file system-based storage, the folder selected as the root of ReviewZone should be shared with Write privilege for all. Certificate Installation The VerifyCertifyAndArchive process, which is called by the ReviewDocumentManager process, uses a certificate to certify the document in the Digital Signatures > SignatureService > Certify PDF operation called Certify Review Document. This certificate must be imported through LiveCycle Administration Console. Import the Digital Signatures certificate: 1 Get the trial certificate at http://www.adobe.com/go/reader_ext_cert and extract the .zip file. 2 Log in to LiveCycle Administration Console as an administrator. 3 Navigate to Settings > Trust Store Management > Local Credentials and click Import. 4 Under Trust Store Type, select Document Signing Credential. 5 Enter the Alias. If you are using the trial certificate, enter LCRE_ES_CERTIFICATE_TRIAL. 6 Click Browse to locate the credential .pfx file. 7 Enter the Password of the credential. If you are using the trial certificate, enter the password that is located in the downloaded .txt file. 8 Click OK. If the error message “Failed to import credential due to either incorrect file format, or incorrect password?” appears, verify that the password is valid. If you change this credential in the future, update the Certify Review Document operation in the VerifyCertifyAndArchiveDocument process. Export a credential: 1 In LiveCycle Administration Console, navigate to Settings >Trust Store Management > Local Credentials. 2 Click the alias name of the credential to export and then click Export. 3 In the Credential Password box, type the password. This password is new and is used to encrypt the exported credential. 4 Click Export, follow the directions to export the credential, and then click OK. 5 Alias is what you provide in the Trust Store Alias for Reader Extension Credential configuration parameter. Register external users: 1 Log in to the ReviewPortal as an administrator. 2 Navigate to and click the External Users tab. 3 Provide the first name, last name, and email of the invited users. Mail is sent to all the invited users and includes a link. Invited users can click the link to go to the registration page. 4 On the registration page, provide the required details. The system creates a user with the user ID (the user’s email address) as provided by the administrator in step 3. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 5 53 Technical Guide for Correspondence Generation Add the new external users to the domain as configured in Domain name for external user. Invited users can log on to Workspace ES2 and Contentspace ES2. Add an Administrator account to all reviews When using the review portal, users can only see reviews to which they have been assigned (as a reviewer, approver, or moderator). No user can view a review to which they have not been assigned. By adding an administrator as a moderator for all reviews, the administrator has they capacity to look at any review, if there is a problem with any review. To add an administrator account to view all reviews, assign the 'RCA Administrator' role to the user/group that would act as the administrator account. This user and group is able to view all reviews Assign document upload permissions Any user who needs to upload a document as part of a review requires upload permissions. Use the LiveCycle Administration Console to assign the Document Upload permission or Document Upload Application User role to any user who needs this capability. The Review, Commenting, and Approval building block is now manually deployed. Manual deployment of Selection and Capture building block Selection and Capture uses following building blocks to work. Before we install Selection and Capture manually, install Common and OnDemand Assembly building blocks (in order). • • Common building block. On-Demand Assembly building block. Deploy the Selection and Capture building block service: 1 Log in to Workbench ES2. 2 In the Components view, right-click the Components folder and click Install Component. If the Components view is not open, click Window > Show View > Components. 3 Navigate to [sa_root]\building_blocks\snc_2_0\dist\dsc\adobe-bb-snc-service-dsc.jar and click Open. 4 Right-click SelectionAndCapture and click Start Component. Import the Selection and Capture building block archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Archive Management. 3 Click Import, and browse to and open [sa_root]\building_blocks\snc_2_0\dist\lca\adobe-bb-snc.lca. 4 Click Preview. 5 Click Import. 6 Click Deploy. Create the Selection and Capture database tables: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\building_blocks\snc_2_0\ 3 On a Windows operating system, at the prompt, enter and run: schema-update.bat CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 54 Technical Guide for Correspondence Generation On a non-Windows operating system, at the prompt, enter and run: schema-update.sh Deploy adobe-bb-snc-invoker.ear: Deploy the adobe-bb-snc-invoker.ear file to the application server. The procedure varies depending on the application server you are using. ❖ For a JBoss Turnkey installation, copy [sa_root]\building_blocks\snc_2_0\dist\webapp\adobe-bb-snc-invoker.ear to [LiveCycleES root]\jboss\server\lc_turnkey\deploy. The invoker war includes default values for a JBoss turnkey installation. For any other configurations or platforms, this will need to be built again. Use the Selection and Capture deployer to (Ant) build a version for other application servers. 1 Open the file [sa_root]\building_blocks\snc_2_0\install\ant.properties 2 Edit the following properties to match your configuration: 3 4 5 • Invoker.DSC_DEFAULT_EJB_ENDPOINT • Invoker.DSC_TRANSPORT_PROTOCOL • Invoker.DSC_SERVER_TYPE • Invoker.DSC_CREDENTIAL_USERNAME • Invoker.DSC_CREDENTIAL_PASSWORD Open a Command Prompt window. Change the current directory to [snc_root]\install At the prompt, enter and run: ant pre-deploy-invoker 6 Deploy the adobe-bb-snc-invoker.ear located at [sa_root]\building_blocks\snc_2_0\dist\webapp\adobe-bb-sncinvoker.ear to your application server. Optional - Deploy the Selection and Capture Sample Portal: SNC Sample Portal is a sample application that showcases Selection and Capture functionality. The application contains all the required artifacts like config bean, forms, and a web application. This sample can be used by the user to understand Selection and Capture functionality. 1 Deploy the config bean, located at [sa_root]\building_blocks\snc_2_0\snc_portal\resources\snc-portal\adobe-bb-snc-sample-configbeans.xml. Open a Command Prompt window. 2 Change the current directory to [sa_root]\building_blocks\snc_2_0\install 3 For the Windows operating system, at the prompt, enter and run: ant call-deployer -Ddeployer.targets=import-data.bat -Dconfig.beans.path=[sa_root]\building_blocks\snc_2_0\resources\snc-portal\adobe-bb-snc-sample-configbeans.xml Dbundle.dir=[sa_root]\building_blocks\snc_2_0\resources\snc_portal\bundles For a non-windows operating system, at the prompt, enter and run: import-data.sh -Dconfig.beans.path=[sa_root]\building_blocks\snc_2_0\resources\snc-portal\adobe-bb-sncsample-configbeans.xml Dbundle.dir=[sa_root]\building_blocks\snc_2_0\resources\snc_portal\bundles 4 To deploy the archive, log in to LiveCycle Administration Console with administrator privileges. 5 Navigate to Services > Applications and Services > Application Management. 6 Click Import, and browse to and open [sa_root]\building_blocks\snc_2_0\dist\snc_portal\lca\adobe-bb-snc-sample.lca. 7 Click Preview. 8 Click Import. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 9 Technical Guide for Correspondence Generation Click Deploy. 10 Deploy the [sa_root]\building_blocks\snc_2_0\snc_portal\dist\snc_portal\adobe-bb-snc-portal.ear file to the application server. The procedure varies depending on the application server you are using. For a JBoss Turnkey installation, copy [sa_root]\building_blocks\snc_2_0\snc_portal\dist\snc_portal\adobe-bb-snc-portal.ear to [LiveCycleES root]\jboss\server\lc_turnkey\deploy. For WebSphere or WebLogic application servers, deploy this file using the application server's administration console. 11 Access the installed web application using the URL http://[server:port]/adobe-bb-snc-portal. The Selection and Capture building block is now manually deployed. Post-installation tasks Optional - Assign user permissions: This change to permissions allows users to upload non-PDF documents. 1 2 Assign the following permissions to the 'SNC User' Role: • PDFGUser (Optional. Only required if PDF Generator ES2 is used.) Permission assignment can be done through the following procedure: • Log in to LiveCycle Administration Console with administrator privileges and navigate to Settings > User Management > Role Management. • Search for 'SNC User'. Click on the role and go to the Permissions tab. Click Find Permissions and assign the permissions listed above. Optional - Manual Uninstall The building blocks would typically be uninstalled using the “install undeploy” command. However, uninstallation can also be done manually. Manually uninstall Common building block Undeploy the Common building block service: 1 Log in to Workbench ES2. 2 If the Components view is not displayed, click Window > Show View > Components. 3 Right-click SolutionAcceleratorCommon. 4 Click Stop Component and then Uninstall. Remove the Common building block archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-Common. 4 Click Undeploy 5 Select the checkbox for BB-Common. 6 Click Remove 55 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment Technical Guide for Correspondence Generation Remove the Common building block test archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-Common-Test 4 Click Undeploy 5 Select the checkbox for BB-Common-Test. 6 Click Remove The Common building block is now manually uninstalled. Manually uninstall On-Demand Assembly building block Undeploy the On-Demand Assembly building block service: 1 Log in to Workbench ES2. 2 If the Components view is not displayed, click Window > Show View > Components. 3 Navigate to ODAService. 4 Right-click and click Stop Component and then Uninstall. Remove the On-Demand Assembly building block sample archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-OnDemandAssembly-Sample 4 Click Undeploy. 5 Select the checkbox for BB-OnDemandAssembly-Sample. 6 Click Remove. Undeploy the On-Demand Assembly web application: ❖ For JBoss application server, delete the file [LiveCycle ES2 root]\jboss\server\lc_turnkey\deploy\adobe-bb-oda-app-[server.type].ear. For WebSphere and WebLogic, uninstall the EAR through their respective administrative consoles. The On-Demand Assembly building block is now manually uninstalled. Manually uninstall Review, Commenting, and Approval building block Undeploy the Review, Commenting, and Approval building block service: 1 Log in to Workbench ES2. 2 In the Components view, right-click the Components folder. If the Components view is not displayed, click Window > Show View > Components. 3 Navigate to, and right-click RCAService. 4 Click Stop Component and then Uninstall. 5 Navigateto, and right-click ReviewZoneProvider. 6 Click Stop Component and then Uninstall. 56 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment Technical Guide for Correspondence Generation Remove the Review, Commenting, and Approval building block archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-ReviewCommentingAndApproval. 4 Click Undeploy. 5 Select the checkbox for BB-ReviewCommentingAndApproval. 6 Click Remove. Remove the Review, Commenting, and Approval building block sample archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-ReviewCommentingAndApproval -Sample 4 Click Undeploy. 5 Select the checkbox for BB-ReviewCommentingAndApproval -Sample. 6 Click Remove. The Review, Commenting, and Approval building block is now manually uninstalled. Manually uninstall Selection and Capture building block Undeploy the Selection and Capture building block service: 1 Log in to Workbench ES2. 2 If the Components view is not displayed, click Window > Show View > Components. 3 Right-click SelectionAndCapture. 4 Click Stop Component and then Uninstall. Delete the Selection and Capture building block archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-SelectionAndCapture. 4 Click Undeploy. 5 Select the checkbox for BB-SelectionAndCapture. 6 Click Remove. Undeploy adobe-bb-snc-invoker.ear: For JBoss application server, delete the file [LiveCycle ES2 root]\jboss\server\lc_turnkey\deploy\adobe-bb-snc-invoker.ear For WebSphere and WebLogic, uninstall the EAR through their respective administrative consoles. Optional - UnDeploy the Selection and Capture Sample Portal: 1 Open a Command Prompt window. 2 Change the current directory to [sa_root]\building_blocks\snc_2_0\install 3 For the Windows operating system, at the prompt, enter and run: delete-wizard.bat -Dwizard.name=SNC-sampleWizard 57 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Manual deployment 4 Technical Guide for Correspondence Generation For a non-windows operating system, at the prompt, enter and run: Chmod 777 delete-wizard.sh delete-wizard.sh -Dwizard.name=SNC-sampleWizard Optional-Delete the Selection and Capture sample archive for LiveCycle ES2: 1 Log in to LiveCycle Administration Console with administrator privileges. 2 Navigate to Services > Applications and Services > Application Management. 3 Select the checkbox for BB-SelectionAndCapture-Sample. 4 Click Undeploy. 5 Select the checkbox for BB-SelectionAndCapture-Sample. 6 Click Remove. Optional-Undeploy adobe-bb-snc-portal.ear: For JBoss application server, delete the file [LiveCycle ES2 root]\jboss\server\lc_turnkey\deploy\ adobe-bb-snc-portal.ear For WebSphere and WebLogic, uninstall the EAR through their respective administrative consoles. The Selection and Capture building block is now manually uninstalled. 58 59 Appendix - Ant properties Solution accelerators and building blocks can be deployed easily using the ANT scripts provided in the [sa_root]\install folder. Before running the installation script, validate the values of the properties in ant.properties, and edit them to match your deployment environment. This table lists all of the deploy-time configurable properties. The property defaults are values appropriate for a LiveCycle ES2 turnkey installation. If you have LiveCycle turnkey installed, then you may skip this section. But, it is recommended that you verify and edit as needed the properties in the table. Note: Remote deployment of enterprise applications is not supported for WebLogic and WebSphere application servers using Ant-based deployment. For deployment to JBoss application server, the remote server must have access credentials to the path configured for ear deployment. To use Ant deployment on a remote server, set the flag export.ear.only=true in the file ant.properties.This creates a folder named "export" inside [sa_root]. All of the deployable ears are copied to this location. Users are expected to deploy them manually. Note: You can configure LiveCycle EmailService using Ant based install. To configure EmailService, set the configure.email.service flag to true in ant.properties. As well, set the values of the email.smtp properties. Configure [sa_root]\install\ant.properties To prepare for deployment, configure the values of the installation properties by editing the file [sa_root]\install\ant.properties. The following table shows all of the properties of the ant.properties file, and their default values. Property name Description lc.sdk Location of LiveCycle ES SDK. LiveCycle ES SDK is also Yes located in the Workbench ES2 install folder. C:/Adobe/Adobe LiveCycle ES2/LiveCycle_ES_SDK server.type Type of the application server. Only jboss, websphere, Yes or weblogic are supported jboss server.hostname LiveCycle ES2 server host name Yes localhost server.http.port LiveCycle ES2 server http listener port Yes 8080 server.username LiveCycle ES2 user name with administrative rights Yes administrator server.password Password for the user, specified using server.username parameter Yes password server.https.port The port number used when SSL support is required No 8443 deploy.sa.demo.assets Demo assets like users, domains, and groups are created if this value is set to true. And any samples would only be deployed if this flag is true. Yes true deploy.test.assets Test assets are the assets required for unit test runs. Yes Setting this flag to true deploys test assets. For use on development machines. true force.asset.redeployment By default, if a particular version of building block or Yes solution template is already installed, it is not reinstalled. Setting this flag to true, allows you to override that behavior. false This is used if you want to overwrite any previous installation, or in case of any other conflict. Required Default value CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Ant properties Technical Guide for Correspondence Generation Property name Description Required Default value export.ears.only If set to true, EARs are exported to [sa_root]\export folder. Set this value to true if your application server is on a remote machine and automated EAR deployment is not feasible. Yes false No C:/Adobe/Adobe LiveCycle ES2/jboss When the value is set to true, deployment will pause after deploy stage, allowing you to deploy the exported ears. jboss.location Location for JBoss application server Required only if server.type is jboss jboss.server.name JBoss server name No lc_turnkey Required only if server.type is jboss weblogic.location weblogic.user Location of the WebLogic application server. For example ${env.WL_HOME}or C:/Weblogic_install No WebLogic administrator user name No ${env.WL_HOME} Required only if server.type is weblogic weblogic Required only if server.type is weblogic weblogic.password WebLogic administrator password No weblogic Required only if server.type is weblogic weblogic.adminurl WebLogic admin url. It is localhost, as remote deploy- No ment is not supported Required only if server.type is weblogic t3://localhost:7001 weblogic.targets WebLogic server instance myserver No Required only if server.type is weblogic websphere.location Install location for WebSphere application server No ${env.WAS_HOME} Required only if server.type is websphere websphere.host Hostname for WebSphere No localhost Required only if server.type is websphere websphere.port websphere.user SOAP connector port for WebSphere. Please note that it is not http port, it is a soap connector port No WebSphere administrator user name No 8880 Required only if server.type is websphere system Required only if server.type is websphere websphere.password WebSphere administrator password No Required only if server.type is websphere manager 60 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Ant properties Technical Guide for Correspondence Generation Property name Description Required Default value websphere.profile.name Name of WebSphere server profile No AppSrv01 Required only if server.type is websphere configure.email.service If this flag is true, install configures the LiveCycle EmailService. If EmailService configuration is not required, set this value to false. If EmailService is already configured, then also set it to false. Yes false email.smtp.host Host name for SMTP Server Yes email.smtp.port SMTP port number for the server Yes email.smtp.authenticate Set this flag to true, if SMTP server requires authenti- Yes cation email.smtp.user The user name is used to authenticate to SMTP server. Required only if email.smtp.authenticate is true email.smtp.password The password is used to authenticate to SMTP server. Required only if email.smtp.authenticate is true database.driver.jar Database driver location Yes C:/Adobe/Adobe LiveCycle ES2/jboss/server/lc_turnkey/lib/mysqlconnector-java-5.1.6-bin.jar database.driver.class Database driver class Yes com.mysql.jdbc.Driver database.connection.url Database connection URL Yes jdbc:mysql://localhost/adobe database.username Database user name for authentication Yes adobe database.password Database password Yes password re.cert.alias Reader Extension Alias. This alias name is used to import the Reader Extensions ES2 certificate. No RE_SA_ALIAS re.cert.url LiveCycle ES2 trial Reader Extensions ES2 certificate is downloaded from cert.url. No http://www.adobe.com/go/reader_ext_cert re.cert.source Source of the Reader Extensions ES2 certificate. No Possible values are: file, url. If the value is url, then the value of re.cert.url is used. If the value is set to "file", then re.cert.file and re.cert.password properties are used. Any other value means that a Reader Extensions ES2 certificate is not imported. re.cert.file The cert file path Required only if re.cert.source=file re.cert.password Reader Extensions ES2 password Required only if re.cert.source=file 25 true url 61 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Ant properties Technical Guide for Correspondence Generation Configure [sa_root]\install\cgr.ant.properties While many of the default values may be correct for your environment, modify the values of these properties to match your environment, as needed. Property name Description Required Default cgrImport.auto.install If yes, the CGRImport AIR application is automatically installed and uninstalled during the deployment and undeployment of the CGR Building Block Yes yes cgrImport.app.path The path to the Adobe CGRImport.exe file, Yes once the CGRImport.air application has been installed C:/Program Files (x86)/Adobe/CGRImport/CGRImport.exe cgrImport.overwrite Overwrite existing collateral when deploying the building block. By default, CGRImport doesn't overwrite content in the LiveCycle Repository when importing collateral. Set to yes to overwrite existing collateral Yes no cgrImport.log.path The path to the log file for the CGRImport application No lc.designer.user.dir The folder location for the default Designer User Settings. If this property is unset, empty, or invalid, the CGR Object Library will not be installed No ${env.APPDATA}/Adobe/Designer/8.2 lc.designer.user.locale Locale code for Designer User Settings No EN deploy.cgr.samples Set to yes to deploy Correspondence Generation building block samples No no samples.lca.file Correspondence Generation Samples archive file name to deploy or undeploy No adobe-bb-cgr-customcommunications.lca samples.lca.id Correspondence Generation Samples archive ID to deploy or undeploy No BB-CorrespondenceGeneration flash.security.config.dir Folder location for Flash Player Security Configuration Files (required for Family Assist sample) No ${env.APPDATA}/Macromedia/Flash Player/#Security/FlashPlayerTrust Configure [sa_root]\install\snc.ant.properties Selection and Capture-specific installation properties are listed in the file [sa_root]\install\snc.ant.properties. The following properties should be validated and modified as required. Property name Description Required Default Invoker.DSC_DEFAULT_EJB_ENDPOINT The endpoint of LiveCycle ES2 server to which the Invoker communicates Yes jnp://localhost:1099 Invoker.DSC_TRANSPORT_PROTOCOL The transport protocol used by Invoker to communicate to LiveCycle ES2 server Yes EJB Invoker.DSC_SERVER_TYPE The type of LiveCycle ES2 server: JBoss, WebSphere, or WebLogic Yes JBoss 62 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Ant properties Technical Guide for Correspondence Generation Property name Description Required Default Invoker.DSC_CREDENTIAL_USERNAME LiveCycle ES2 user name with DSC Invoca- Yes tion rights. Defaults to the user with administrative privileges. administrator Invoker.DSC_CREDENTIAL_PASSWORD Password for the user Yes password snc.data.store.dir The storage location at LiveCycle ES2 server Yes C:/Adobe/Adobe LiveCycle ES2/jboss/server/lc_turnkey/svcnative/ snc.save.location.session The session storage location. Defaulted with respect to snc.data.store.dir Yes ${snc.data.store.dir}/SNCSession/ snc.save.location.context The context data storage location. Defaulted with respect to snc.data.store.dir Yes ${snc.data.store.dir}/SNCContext/ snc.save.location.case Yes The storage location where case files are persisted. Defaulted with respect to snc.data.store.dir. This location has to be changed to a Content Services path in case the Content Services Implementation for case storage is used in the corresponding config-beans.xml ${snc.data.store.dir}/SNCCase/ 63 64 Appendix - Building Correspondence Generation components The Correspondence Generation building block includes prebuilt components that are located in [cgr_root]\dist. Build Correspondence Generation only when the source code is changed or customized. The variable [sa_root] represents the root directory for the solution accelerators. The variable [cgr_root] represents the root direct for the Correspondence Generation building block. Note: When using Ant to build solution accelerators or building blocks, be sure to use the version of Ant that is provided in [sa_root}\tools\thirdparty\ant_tp\apache-ant-1.7.1. Building Correspondence Generation building block To build the Correspondence Generation building block, configure the cgr.properties file, and run ant. Ant property configuration for Content Creation building block Edit the following ant properties in [cgr_root]\install\cgr.properties before building the Correspondence Generation building block. Property Default Value Description lc.home C:/Adobe/Adobe LiveCycle ES2/LiveCycle_ES_SDK The location where you have installed or copied the LiveCycle ES2 SDK ant.home C:/apache-ant-1.7.1 The Apache Ant home location flex.sdk C:/Program Files/Adobe/Flex Builder 3 Plug-in/sdks/3.0.0 The path to the Flex SDK root directory flex.sdk.home ${flex.sdk} The path to the Flex SDK root directory, as set with flex.sdk flex.debug true Enable debugging output (true, or false) appserver.name jboss Specify the application server name: • jboss • weblogic • websphere appserver.hostname localhost The LiveCycle ES2 server appserver.username administrator LiveCycle ES2 server user name for authentication appserver.password password LiveCycle ES2 server password for authentication. The password should match the password set in [LiveCycleES root]\jboss\server\all\deploy\adobe-ds.xml. appserver.http.port 8080 Port at which LiveCycle ES2 server is running appserver_home_dir C:/Adobe/Adobe LiveCycle ES2/jboss The home directory of the application server Ant targets for Content Creation building block To build the Correspondence Generation building block, navigate to [cgr_root]\install, and run CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - Building Correspondence Generation components ant dist Technical Guide for Correspondence Generation 65 66 Appendix - The installation framework This information is provided to explain the automated installation process used for building blocks and solution accelerators. The solution accelerator installation framework provides utilities to support automated Ant-based deployment of solution accelerators, solution templates, and building blocks. By using the installation framework, a customer can deploy a solution accelerator, and all of its related resources, quickly and reliably. Objective The installation framework has several core objectives: • • • • • Provide a unified installation experience for solution accelerator customers Reduce the overall time taken for installation Reduce the number of configuration steps Provide better error reporting and validation at install time to avoid installation cycles Provide a single-step installer, similar to LiveCycle ES2 turn key Install Experience At a high level, following diagram represents the installation experience. As the diagram shows, the installation experience can be broken into the following simple steps: • • Download and unzip the solution accelerator to a local file system. • Modify or override the default properties for the solution accelerator. This step is optional, and the users require a table that details the properties and their default values. • Execute the batch file to deploy the solution accelerator. The user is able to install all available solution accelerators in a single command. Complete the pre-installation Steps. Pre-installation steps include prerequisite and other steps that could not be automated using an Ant-based installation. During the execution of the batch file, the process first assesses that all the dependencies are successfully resolved, and that the key configuration entries are correct. For example, the reference to the J2EE Jar location is validated, so that deployment does not fail. Errors are shown immediately after running the verification, rather than later in the deployment cycle, when the actual error occurs. • View the installation summary and validation report on the console. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - The installation framework • Technical Guide for Correspondence Generation Perform any post-installation steps that are required. Deploy flow Ant-based deploy has been divided into various stages, so that it is able to do timely error reporting, validate input, and do checkpoint validation. Deployment goes though following stages: 1 Deploy sequence and dependency resolution 2 Ant properties validation 3 Deploy 4 Load configuration 5 Deploy validation 6 Validate configuration 67 CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - The installation framework 68 Technical Guide for Correspondence Generation The following diagram illustrates the installation framework deployment flow: Deploy sequence and dependency resolution The customer runs the install script and provided deploy.list. This list can contain a comma-separated list of three-letter acronyms (TLA). Each TLA corresponds to a building block or solution accelerator. For each TLA in the list: • • bb.list is read from Manifest.properties. Order of deployment of these building blocks is read from left to right. bb.list is added to deploy.list. CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - The installation framework 69 Technical Guide for Correspondence Generation • The dependency tree is traversed for every dependent TLA. • While traversing the dependency tree, the script builds the list in the order of deployment. The output of this stage is the list of building blocks and solution accelerators to be deployed. These lists are bb.install.list and sa.install.list. Ant properties validation The purpose of this stage is to try and validate ant.properties for all building blocks and solution accelerators, before calling any other ant target. This stage should prevent the build failing at a later stage because of an incorrect property. In this stage, • For each building block in bb.install.list: • Invoke validate_build_properties target on the building block’s build.xml For each solution accelerator in sa.install.list: • Invoke validate_build_properties target on Solution accelerator’s build.xml • Once all the validation targets are fired: • Check if there are any errors • If there are errors, collect the error messages, and generate the validation report • If there are no errors, go to next stage If there are errors in this stage, check the validation report on the console and correct or provide the missing or wrong property values. • Deploy In this stage, the actual deployment happens. • For each building block in bb.install.list: • Invoke deploy target on the building block's build.xml • For each solution accelerator in sa.install.list: • Invoke deploy target on the solution accelerator's build.xml It is the responsibility of each building block or solution accelerator's deploy target to check the installed version of the building block or solution accelerator, and compare it with incoming version. Any deploy target should not overwrite a newer installed version, unless the property force.asset.redeployment is set to true. This flag can be set in [sa_root]/install/ant.properties. If there is any error thrown during this stage, contact the solution accelerator development team. Load configuration The installation framework Configuration Loader lets you configure a LiveCycle ES2 service using Ant script, rather opening LiveCycle Administration Console and settingthe configuration parameters. In this stage: • For each building block in bb.install.list: • • load_config is called with [TLA]Config.xml For each solution accelerator in sa.install.list: • load_config is called with [TLA]Config.xml Deploy validation In this stage, deployment is validated. During deployment validation, a specific building block or solution accelerator can check whether the LiveCycle ES2 component has been installed, archive import was successful or not, and web applications have been successfully deployed. In this stage: CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - The installation framework • 70 Technical Guide for Correspondence Generation For each building block in bb.install.list: • Invoke validate_install target on the building block's build.xml For each solution accelerator in sa.install.list: • Invoke validate_install target on the solution accelerator's build.xml • Once all the validation targets are fired: • Check if there are is any error • In case of an error, collect the error messages and generate the validation report • If there is no error, go to next stage If there is any validation error, verify if all pre-installation steps were performed. • Validate configuration At this stage, each building block or solution accelerator can verify if the particular component is properly configured. Building block or solution accelerator scripts can also execute unit tests to verify the installed component. In this stage: • For each building block in bb.install.list: • Invoke validate_config_params target on the building block's build.xml For each solution accelerator in sa.install.list: • Invoke validate_config_params target on the solution accelerator's build.xml • Once, all the validation targets are fired • Check if there are is any error • In case of error, collect the error messages and generate the validation report • If there is no error, go to next stage If there is any validation error, verify if all pre-installation steps were performed and all configuration values are correctly specified. • Targets exposed by the installation framework install script Overview The installation framework install script acts as the controller for the install process. It is passed in the list of TLAs of the solution accelerators and building blocks to install and validate, and acts on the list accordingly. It passes to all called scripts a property, inside.global.sa.deploy, with the value true, to allow them to check if they are being invoked by the installation framework. Syntax The general syntax to call the installation framework is: install -D<arguments> <target> The installation framework install script accepts various arguments through the -D flag. Argument Purpose Default Value deploy.list List of building block or solution accelerators to act upon. Multiple solution accelerators or building blocks can be deployed together. A comma-separated three-letter acronym (TLA) list can be passed. For example: Install -Ddeploy.list="esm/aen" deploy Must be manually specified CORRESPONDENCE GENERATION BUILDING BLOCK Appendix - The installation framework Technical Guide for Correspondence Generation Targets The installation framework exposes various targets: Target Purpose deploy This is the default target. Deploys the listed TLAs and dependencies to the server . undeploy Undeploys the specified list of TLAs without traversing to the dependencies. Invoke target undeploy to undeploy a building block or solution accelerator. This target takes TLA names as deploy.list. Undeploy does not undeploy dependencies. load_config Reloads configuration based on the passed in list of TLAs. This does not load dependencies. This target uses [TLA]Config.xml in base directory for the TLA list passed as deploy.list to reload. Update corresponding [TLA]Config.xml before calling this target. validate_config_params Validates configuration of passed in list of TLAs and dependencies Validate_build_properties Invoke validate_build_properties to validate the Ant build properties. Validate_install Invoke validate_install to validate the installation of building blocks or solution accelerators. 71
© Copyright 2024