Customizing and Extending IBM Content Navigator

Book description

IBM® Content Navigator provides a unified user interface for your Enterprise Content Management (ECM) solutions. It also provides a robust development platform so you can build customized user interface and applications to deliver value and an intelligent, business-centric experience.

This IBM Redbooks® publication guides you through the Content Navigator platform, its architecture, and the available programming interfaces. It describes how you can configure and customize the user interface with the administration tools provided, and how you can customize and extend Content Navigator using available development options with sample code. Specifically, the book shows how to set up a development environment, and develop plug-ins that add an action, service, and feature to the user interface. Customization topics include implementing request and response filters, external data services (EDS), creating custom step processors, and using Content Navigator widgets in other applications. This book also covers mobile development, viewer customization, component deployment, and debugging and troubleshooting.

This book is intended for IT architects, application designers and developers working with IBM Content Navigator and IBM ECM products. It offers a high-level description of how to extend and customize IBM Content Navigator and also more technical details of how to do implementations with sample code.

Table of contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  4. Summary of changes
    1. May 2014, Second Edition
  5. Part 1 Introduction
  6. Chapter 1. Extension points and customization options
    1. 1.1 Before you begin
      1. 1.1.1 IBM Content Navigator terms
    2. 1.2 Development options with IBM Content Navigator
      1. 1.2.1 Configuring IBM Content Navigator
      2. 1.2.2 Implementing the EDS interface
      3. 1.2.3 Implementing a plug-in
      4. 1.2.4 Developing or integrating a custom application
      5. 1.2.5 Delivering mobile access
      6. 1.2.6 Common use cases and their development options summary
    3. 1.3 IBM Content Navigator development architecture
      1. 1.3.1 Programming interfaces
      2. 1.3.2 Communication flows
    4. 1.4 Developing with IBM Content Navigator APIs
      1. 1.4.1 URL API
      2. 1.4.2 External data services
      3. 1.4.3 Plug-in API
      4. 1.4.4 Content Navigator JavaScript API
    5. 1.5 IBM Content Navigator samples
      1. 1.5.1 Sample external data service
      2. 1.5.2 Sample web pages
      3. 1.5.3 Sample plug-in application
      4. 1.5.4 Sample mobile application
      5. 1.5.5 Sample mobile plug-in
    6. 1.6 Samples we developed for this book
    7. 1.7 Conclusion
  7. Chapter 2. Customizing desktop appearance
    1. 2.1 Customizing the desktop appearance
    2. 2.2 Adding a logo and banner color
    3. 2.3 Adding login notes
    4. 2.4 Adding password rules
      1. 2.4.1 Testing the password rules
    5. 2.5 Conclusion
  8. Chapter 3. Setting up the development environment
    1. 3.1 Prerequisites for plug-in development
      1. 3.1.1 IBM Rational Application Developer
      2. 3.1.2 Eclipse development environment
      3. 3.1.3 WebLogic and Eclipse
    2. 3.2 Setting up development environment
      1. 3.2.1 Installing the Eclipse plug-in in base Eclipse environments
      2. 3.2.2 Installing the Eclipse plug-in in Rational Application Developer
      3. 3.2.3 Troubleshooting Eclipse plug-in installation
      4. 3.2.4 Verifying Eclipse plug-in installation
    3. 3.3 Plug-in development
      1. 3.3.1 Creating a simple plug-in project using the wizard
      2. 3.3.2 Creating plug-in extension
      3. 3.3.3 Packaging and building a plug-in
      4. 3.3.4 Registering and testing a plug-in
    4. 3.4 Creating a new empty EDS project using the wizard
    5. 3.5 Getting started with the SamplePlugin
    6. 3.6 Building a plug-in JAR manually
    7. 3.7 Debugging plug-ins
      1. 3.7.1 Remote debugging
      2. 3.7.2 Local debugging
    8. 3.8 Conclusion
  9. Part 2 Customizing Content Navigator
  10. Chapter 4. Developing a plug-in with basic extension points
    1. 4.1 Example overview
    2. 4.2 Developing the Create Dossier action
      1. 4.2.1 Setting up a new plug-in project
      2. 4.2.2 Packaging and deploying
      3. 4.2.3 Adding the action
      4. 4.2.4 Implementing the action JavaScript
      5. 4.2.5 Preparing ECM system and deploying current version
    3. 4.3 Developing a plug-in service to create the substructure of the dossier
      1. 4.3.1 Server type independent code: CreateSubStructureService
      2. 4.3.2 IBM FileNet P8 code: CreateSubStructureServiceP8
      3. 4.3.3 IBM Content Manager code: CreateSubStructureServiceCM
      4. 4.3.4 Deploying and verifying
    4. 4.4 Developing the Open Dossier action
      1. 4.4.1 Adding an action to the plug-in
      2. 4.4.2 Extending the Action model
      3. 4.4.3 Packing, deploying, and configuring
      4. 4.4.4 Enhancing the Create Dossier action to also open the dossier
    5. 4.5 Open dossier view in its own feature
      1. 4.5.1 Adding the feature
      2. 4.5.2 Deploying and configuring the feature
      3. 4.5.3 Developing a dossier feature by using the browse feature
    6. 4.6 Adding configuration
      1. 4.6.1 Adding a configuration panel
      2. 4.6.2 Adapting code to use configuration values
    7. 4.7 Dossier management in the real world
    8. 4.8 Conclusion
  11. Chapter 5. Building a custom repository search service
    1. 5.1 Example overview
    2. 5.2 Viewing results in ContentList widget
    3. 5.3 Custom repository search service in sample plug-in
      1. 5.3.1 Sample code of custom repository search service
    4. 5.4 Query string for search against repositories
      1. 5.4.1 IBM Content Manager query string
      2. 5.4.2 IBM FileNet Content Manager query string
    5. 5.5 Creating a new plug-in with custom repository search service
      1. 5.5.1 Creating a new plug-in project
      2. 5.5.2 Importing search service from sample plug-in
      3. 5.5.3 Importing feature pane from sample plug-in
      4. 5.5.4 Building and deploying the new plug-in
    6. 5.6 Adding a new function to the existing search service
      1. 5.6.1 Adding a paging function
      2. 5.6.2 Getting the result properties setting from admin configuration
      3. 5.6.3 Main files of custom search plug-in
    7. 5.7 Conclusion
  12. Chapter 6. Creating a feature with search services and widgets
    1. 6.1 Example overview
    2. 6.2 Adjusting the layout of the feature
    3. 6.3 Creating a tree widget to show a custom tree
    4. 6.4 Adding function on the class node to search and show results
    5. 6.5 Configuring more modules to the ContentList widget
    6. 6.6 Conclusion
  13. Chapter 7. Implementing request and response filters and external data services
    1. 7.1 Request and response filter overview
      1. 7.1.1 When to implement request and response filters
    2. 7.2 External data service (EDS) overview
      1. 7.2.1 When to use EDS
      2. 7.2.2 Sample EDS service provided with IBM Content Navigator
    3. 7.3 Example overview
    4. 7.4 Setting up the sample EDS project
    5. 7.5 Choice lists
      1. 7.5.1 Simple choice lists
      2. 7.5.2 Dependant choice lists
    6. 7.6 Property field validation
    7. 7.7 Setting field properties
      1. 7.7.1 Setting field status
      2. 7.7.2 Setting field minimum and maximum values
    8. 7.8 Ordering properties on the add dialog
    9. 7.9 Filter for large choice lists
    10. 7.10 Deployment and configuration
    11. 7.11 Conclusion
  14. Chapter 8. Creating a custom step processor
    1. 8.1 Workflow step processors overview
    2. 8.2 IBM Content Navigator step processors
    3. 8.3 Custom step processors
    4. 8.4 Example overview
    5. 8.5 Creating a custom step processor
      1. 8.5.1 StepProcessorRedbkLayout.html
      2. 8.5.2 StepProcessorRedbkLayout.js
      3. 8.5.3 StepProcessorRedbkLayout.jsp
    6. 8.6 Deploying the custom step processor
    7. 8.7 Registering the custom step processor
    8. 8.8 Configuring Application Space and in-basket
    9. 8.9 Adding an action to use an embedded viewer
      1. 8.9.1 Updating StepProcessorAction.java
      2. 8.9.2 Updating StepProcessorActionPlugin.js
      3. 8.9.3 Building and deploying the action plug-in
    10. 8.10 Using and testing the custom step processor
      1. 8.10.1 Creating the workflow with custom step processor
      2. 8.10.2 Adding subscription to initiate workflow
    11. 8.11 Adding external data services
      1. 8.11.1 Testing the workflow and custom step processor
    12. 8.12 Conclusion
  15. Chapter 9. Using Content Navigator widgets in other applications
    1. 9.1 Integration into other applications overview
    2. 9.2 Example overview
    3. 9.3 Externalizing IBM Content Navigator widgets
      1. 9.3.1 Approaches of IBM Content Navigator externalization
      2. 9.3.2 Simulation of IBM Content Navigator integration part 1
    4. 9.4 Integrating Content Navigator with URL API
    5. 9.5 Integrating Content Navigator with a specific feature
    6. 9.6 Integrating Content Navigator with a specific layout
      1. 9.6.1 Setting up a new plug-in project
      2. 9.6.2 Adding the layout
      3. 9.6.3 Adding the ContentList widget to the layout
    7. 9.7 Integrating specific widgets of Content Navigator
      1. 9.7.1 Initialization phase of Content Navigator
      2. 9.7.2 Step 1: Initialize Dojo and Content Navigator libraries
      3. 9.7.3 Step 2: Select the appropriate visual widget
      4. 9.7.4 Step 3: Select and initialize the necessary model classes
      5. 9.7.5 Step 4: Wire the widgets together through event registration
    8. 9.8 Integrating the externalized widgets (Step 5)
      1. 9.8.1 Deploying the externalized widget (unbound integration)
      2. 9.8.2 Setting up external widgets in the container (bound integration)
      3. 9.8.3 Defining a reverse proxy in an HTTP Server
      4. 9.8.4 Outline of a bound integration
    9. 9.9 Integrating stand-alone widgets in a Microsoft SharePoint page
      1. 9.9.1 Example overview
      2. 9.9.2 Implementing the Microsoft SharePoint integration
    10. 9.10 Integrating stand-alone widgets as a portlet in WebSphere Portal
    11. 9.11 Conclusion
  16. Chapter 10. Customizing built-in viewers and integrating third-party viewers
    1. 10.1 Built-in viewers overview
    2. 10.2 Example overview
    3. 10.3 Customizing the FileNet Viewer
      1. 10.3.1 Adding headers and footers to documents for branding and confidentiality requirements
      2. 10.3.2 Making annotations anonymous
      3. 10.3.3 Disabling document streaming
    4. 10.4 Exploring viewer extensibility
      1. 10.4.1 Viewer architecture
      2. 10.4.2 Extension points
    5. 10.5 Integrating third-party viewers into IBM Content Navigator
      1. 10.5.1 Snowbound VirtualViewer
      2. 10.5.2 Informative Graphics Brava! Enterprise Viewer
    6. 10.6 Conclusion
  17. Chapter 11. Extending solutions to mobile platform
    1. 11.1 IBM Content Navigator mobile solutions
      1. 11.1.1 Mobile development options
    2. 11.2 Example overview
    3. 11.3 Customizing IBM Worklight sample
      1. 11.3.1 Example overview
      2. 11.3.2 Environment preparation
      3. 11.3.3 Updating model layer
      4. 11.3.4 Developing views
      5. 11.3.5 Adding controller for WorkView
      6. 11.3.6 Integrating to sample
      7. 11.3.7 Packaging and deployment
    4. 11.4 Conclusion
  18. Chapter 12. Extending Profile Plug-in for Microsoft Lync Server
    1. 12.1 What is available in IBM Content Navigator 2.0.2
    2. 12.2 Microsoft Lync Server and UCWA
      1. 12.2.1 UCMA
      2. 12.2.2 UCWA
    3. 12.3 Example overview
    4. 12.4 High-level design
      1. 12.4.1 Goals of the new plug-in
      2. 12.4.2 Contact card or business card function
      3. 12.4.3 Microsoft Lync Contact Card and Status Service
    5. 12.5 Implementing the Lync Plug-in
      1. 12.5.1 Configuring the Lync Plug-in
      2. 12.5.2 Microsoft Lync Service user interface
      3. 12.5.3 Error handling
      4. 12.5.4 Log in to Microsoft Lync Service
      5. 12.5.5 Getting contact information from Microsoft Lync Server
      6. 12.5.6 Adding a response filter to user name fields
    6. 12.6 Object-oriented design for Java and JavaScript
      1. 12.6.1 Java objects of the Lync Plug-in
      2. 12.6.2 Extending the existing Java classes
      3. 12.6.3 Extending JavaScript classes
      4. 12.6.4 Extending the configuration pane
      5. 12.6.5 Notes for programming with Microsoft Lync UCWA Service
      6. 12.6.6 Displaying business card
    7. 12.7 Setup, installation, and enhancements
      1. 12.7.1 Considerations for development environment
      2. 12.7.2 Performance
      3. 12.7.3 Debugging the plug-in application
      4. 12.7.4 Installing and setting up the Lync Plug-in
      5. 12.7.5 Future enhancements
    8. 12.8 Conclusion
  19. Part 3 Deployment, debugging, and troubleshooting
  20. Chapter 13. Component deployment
    1. 13.1 Strategies for managing a production environment
    2. 13.2 Identifying the components of your application
      1. 13.2.1 Component hierarchy
      2. 13.2.2 Persistence characteristics
      3. 13.2.3 Database layer
    3. 13.3 Manual deployment of an IBM Content Navigator solution
      1. 13.3.1 Repository dependencies
      2. 13.3.2 IBM Content Navigator desktop
    4. 13.4 Injecting a level of predictability in your environment
    5. 13.5 Using export and import to deploy a Content Navigator solution
      1. 13.5.1 Using the Export function within the Administration Desktop
      2. 13.5.2 Using the Import function within the Administration Desktop
      3. 13.5.3 Import summary and reports
    6. 13.6 Conclusion
  21. Chapter 14. Debugging and troubleshooting
    1. 14.1 Client debugging
      1. 14.1.1 Firefox
      2. 14.1.2 Chrome
      3. 14.1.3 Fiddler
    2. 14.2 Client logging
      1. 14.2.1 Logging levels and browser types
      2. 14.2.2 Enabling logging in JavaScript files
    3. 14.3 Server-side logging
    4. 14.4 Log and trace files
      1. 14.4.1 IBM Content Navigator log files
      2. 14.4.2 Application server log files
    5. 14.5 Troubleshooting
      1. 14.5.1 IBM Content Navigator troubleshooting tools
    6. 14.6 Conclusion
  22. Part 4 Appendixes
  23. Appendix A. Action privileges
  24. Appendix B. Document class definition
    1. Adding example class to IBM FileNet Content Manager
    2. Adding example class to IBM Content Manager
  25. Appendix C. Core code for the custom search plug-in project
    1. VirtualFolderBrowsePane.js
    2. Enhanced SamplePluginSearchServiceP8.java code
  26. Appendix D. Additional material
    1. Locating the web material
    2. Using the web material
  27. Related publications
    1. IBM Redbooks
    2. Online resources
    3. Help from IBM
  28. Back cover
  29. IBM System x Reference Architecture for Hadoop: IBM InfoSphere BigInsights Reference Architecture
    1. Introduction
    2. Business problem and business value
    3. Reference architecture use
    4. Requirements
    5. InfoSphere BigInsights predefined configuration
    6. InfoSphere BigInsights HBase predefined configuration
    7. Deployment considerations
    8. Customizing the predefined configurations
    9. Predefined configuration bill of materials
    10. References
    11. The team who wrote this paper
    12. Now you can become a published author, too!
    13. Stay connected to IBM Redbooks
  30. Notices
    1. Trademarks

Product information

  • Title: Customizing and Extending IBM Content Navigator
  • Author(s):
  • Release date: May 2014
  • Publisher(s): IBM Redbooks
  • ISBN: None