![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Version
DRAFT
Table of Contents 1.2 What do you need to understand this book 7 3.1.1 Basic Concepts and Conventions 9 3.1.2 Permissions / Access Control 12 3.4 Security Settings of New Objects 16 3.5.1 Application Server Login 17 4.1.1 Create Users Manually 19 4.1.2 Import Subjects and Application Login Principals 20 4.2 Disable/Deactivate Users 22 4.3 Disabling Users at the level Application Server 22 4.4 Disabling Users at the level openCRX 22 5.1 Typical Deployment Scenarios 23 5.2 Multi Entity Deployment Scenarios 24 5.2.1 Multiple Data Segments in a single DB 24 5.2.3 Multiple Applications 25 5.3 openCRX Custom Applications 25 6.1 Servlet SubscriptionHandler 27 6.2 Servlet WorkflowHandler 28 6.4 Trouble Shooting Servlets 29 7 Subscribe / Notify Services 30 7.1 Example Subscription – Activity Modifications 32 7.2 Trouble Shooting Notification Services 34 8.1 Import E-mails from a Mail Client into openCRX 36 8.2 Use openCRX as an E-mail Archive/Audit Tool 37 8.3 Send E-mail directly from openCRX 38 8.4 Export E-mails from openCRX to your Mail Client 39 8.5 Installing JavaMail and opencrx-ssl.jar 41 8.6 Configuring E-mail Services 41 8.6.1 Outbound E-mail / Users 42 8.6.2 Outbound E-mail / Users relying on SYSTEM Account 44 8.6.3 Outbound E-mail (SYSTEM) / Segment Administrator 45 8.6.4 Inbound E-mail / Segment Administrator 46 8.6.5 Trouble Shooting E-mail Services 54 9.1 Importing Data into openCRX 56 9.2.1 Importing vCard Files ( openCRX Contacts) 59 9.2.2 Importing iCalendar Files ( openCRX Meetings) 59 9.3 Exporting Data from openCRX 60 9.3.2 Exporting openCRX Contacts ( vCard Files) 60 9.3.3 Exporting openCRX Contacts ( Outlook Contacts) 60 9.3.4 Exporting openCRX Meetings ( iCalendar Files) 60 10.3.2 Multiple Applications 62 11.1 Restrictions/Pitfalls of using BIRT with openCRX 63 11.2 How to design and deploy a BIRT report 64 11.3 Report Debugging / BIRT Logging 67 11.4 Additional BIRT-Servlet Options 68 11.5 Outlook BIRT-Integration with openCRX 68
List of Figures Figure 1: Security Realms, Principals and Subjects after Initial Setup 10 Figure 2: Segment Administration 11 Figure 3: Role Drop Down with list of available Segment Login Principals 11 Figure 4: openCRX UML Model – Class Diagram SecureObject 12 Figure 5: System attributes of an openCRX object as shown in the GUI 13 Figure 6: Table kernel_Segment after default installation (QuickStart) 15 Figure 7: Table kernel_Segment after modification 15 Figure 8: Role Drop Down with list of available Segment Login Principals 17 Figure 9: Operation Actions > Import Login Principals (admin-Root) 20 Figure 10: Operation Actions > Import Users (admin-Standard) 21 Figure 11: Disabling of Segment Login Principal guest by admin-Standard 22 Figure 12: 3-Tier with Application Server 23 Figure 13: 4-Tier with Application Server 23 Figure 14: 4-Tier with Clustered Application Servers 23 Figure 15: 4-Tier with Servlet Engine 23 Figure 16: Multiple Data Segments in a single DB 24 Figure 17: Dedicated DB for each Entity 25 Figure 18: Accessing the openCRX Workflow Controller 26 Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only 26 Figure 20: openCRX MailImporterServlet 28 Figure 21: Event and Notification Service 30 Figure 22: Standard Topics included in the openCRX distribution 31 Figure 23: Create a new Subscription – step 1 32 Figure 24: Create a new Subscription – step 2 32 Figure 25: Create a new Subscription – step 3 33 Figure 26: Create a new Subscription – step 3 33 Figure 27: Flow of data between openCRX, mail server and mail client 35 Figure 28: Import E-Mails from Mail Client 36 Figure 29: E-Mail Audit – import all inbound/outbound e-mail messages 37 Figure 30: Send E-Mail from openCRX – Overview 38 Figure 31: Send E-Mail from openCRX with Actions > Follow Up 38 Figure 32: Export E-Mail from openCRX – Overview 39 Figure 33: Export E-Mail from openCRX with Actions > Follow Up 39 Figure 34: Envelope E-mail with exported E-Mail Activity as attachment 40 Figure 35: MS Outlook – Resend This Message to edit/send e-mail 40 Figure 36: MS Outlook – Send message 41 Figure 37: Create a new E-Mail Account – step 1 42 Figure 38: Create a new E-Mail Account – step 2 42 Figure 39: Create a new E-Mail Account – step 3 43 Figure 40: E-mail subject prefix and Web access URL 43 Figure 41: Create a new E-Mail Account – use SMTP-info from SYSTEM 44 Figure 42: Example of outbound E-mail Action Log Entries 45 Figure 43: Create a new SYSTEM E-Mail Account – step 1 45 Figure 44: Create a new SYSTEM E-Mail Account – step 2 46 Figure 45: Grid Workflow Processes with entry MailImporterServlet 46 Figure 46: MailImporterServlet Default Settings 47 Figure 47: Configuration of MailImporterServlet – Default Server 48 Figure 48: Configuration of MailImporterServlet – Mail Server 48 Figure 49: Configuration of MailImporterServlet – Account and Password 49 Figure 50: Envelope E-Mail with attached E-Mail to be imported 50 Figure 51: Activity Tracker E-Mail is created automatically 51 Figure 52: Activity Tracker E-Mail with newly imported e-mail 51 Figure 53: Newly imported e-mail 52 Figure 54: Activity Creator Default E-mail Creator 53 Figure 55: MailImporterServlet Entry 54 Figure 56: XML import from 3rd party system – overview 57 Figure 57: Interactive import of XML Files 57 Figure 58: Interactive import of XML Files 58 Figure 59: Operation vCard Import 59 Figure 60: BIRT Report Designer – Data Source Definition mysql-crx 64 Figure 61: BIRT Report Designer – Data Set Query 65 Figure 62: BIRT Report in openCRX GUI 65 Figure 63: BIRT Report Designer – Title and Description of openCRX Report 66 Figure 64: Integration of BIRT with BIRT ODA Implementation 68
List of Listings Listing 1: File Format Subjects and Application Login Principals 20 Listing 2: Example File Subjects and Application Login Principals 20 Listing 3: File Format Users 21 Listing 4: Example File Users 21 Listing 5: Subscription Handler checking table kernel_AuditEntry 27 Listing 6: Mark Audit Entries as visited by Subscription Handler 27 Listing 7: Servlets managed by Workflow Controller log to server.log 29 Listing 8: Debug Output of MailImporterServlet 50 Listing 9: Importing Certificate 55 Listing 10: Locales in web.xml 61 Listing 11: Activating/Deactivating Locales in web.xml 61 Listing 12: Sample Data Source Definition for MySQL 64 Listing 13: Sample Data Set for Activity Group Report from MySQL 65 Listing 14: openCRX Report Title and Description 66 Listing 15: Setting BIRT Logging Level in web.xml 67 Listing 16: Setting BIRT Log Directory in web.xml 68 Listing 17: Setting Additional Options of BIRT-Servlet in web.xml 68
1 About this BookThis book describes various configuration settings and tasks an openCRX administrator should know about. openCRX is the leading enterprise-class open source CRM suite. openCRX is based on openMDX, an open source MDA framework based on the OMG's model driven architecture (MDA) standards. This guarantees total openness, standards compliance, a state-of-the-art component-based architecture, and virtually unlimited scalability. 1.1 Who this book is forThe intended audience are openCRX administrators. 1.2 What do you need to understand this bookThis book describes some of the settings and configurations an openCRX administrator can use to control the behavior of openCRX. 1.3 Tips, Warnings, etc.We make use the following pictograms:
2 PrerequisitesopenCRX installed (please refer to the QuickStart guide available from http://www.opencrx.org/documents.htm for installation instructions). 3 SecurityIn this chapter we will present a high-level overview of openCRX security and discuss a few select issues. Additional information is available in the openCRX Security Guide available from http://www.opencrx.org/documents.htm.
3.1 Introduction3.1.1 Basic Concepts and Conventions
The following figure shows the situation after the initial setup of openCRX (assuming you worked through the QuickStart guide):
Figure 1: Security Realms, Principals and Subjects after Initial Setup Summarizing the above:
The segment administrator (e.g. admin-Standard) creates principals and User Homepages with the operation createUser():
Figure 2: Segment Administration While each “real user” (typically) has 1 application login principal only, “real users” may have multiple segment login principals (e.g. because a “real user” is allowed to access multiple segments or because a “real user” is allowed to access a particular segment in different roles like Head of Sales or CFO). Available segment login principals are listed in the so-called Role Drop Down:
Figure 3: Role Drop Down with list of available Segment Login Principals 3.1.2 Permissions / Access ControlThe openCRX security framework makes a distinction between Ownership Permissions (i.e. permissions granted on a particular object are based on object ownership) and Model Permissions (i.e. permissions are granted on a particular model element). As the latter is not yet implemented we only talk about Ownership Permissions in this guide. Ownership permissions are used to control browse/delete/update access to openCRX objects by Users and UserGroups. Ownership access control was introduced with openCRX v1.4.0. Every openCRX object is a SecureObject. The following figure shows an extract from the UML model (if you are interested in all the details and the formally correct and complete specifications you should refer to the latest openCRX UML models):
Figure 4: openCRX UML Model – Class Diagram SecureObject
The most important security attributes of an object X are discussed below:
Figure 5: System attributes of an openCRX object as shown in the GUI The following access levels are available to control which users / user groups are granted permission to browse/delete/update a particular object X:
3.2 Default SettingsDefault access level settings for non-Root segments (e.g. segment Standard) after a clean install are as follows:
Figure 6: Table kernel_Segment after default installation (QuickStart) Due to the setting access_level_browse = 4 (global) any user with access to a particular segment is allowed to browse top level objects (e.g. browse all accounts, browse all activities). These default settings are suitable for test environments and deployments in smaller companies/teams with a liberal access policy; for most real-world applications, however, it is more appropriate to set access_level_browse = 3 (deep) for non-Root segments. You can do this by changing the values in the column access_level_browse from 4 to 3 (table kernel_Segment). After this change, the table kernel_Segment will look as shown in the following figure:
Figure 7: Table kernel_Segment after modification You may also decide to change the browse access level for some non-Root segments.
3.3 Activating SecurityThe openCRX security provider manages all security data and provides access control services for all requests through the openCRX API. Hence, you can rely on openCRX access control even if you write you own clients or adapters for openCRX. Security (including Access Control) is an integral part of openCRX; openCRX Access Control is always activated.
3.4 Security Settings of New ObjectsNew objects are by default created with the following security settings:
3.5 Login ProcedureThe openCRX login procedure consists of 2 levels: 3.5.1 Application Server LoginThe application server login procedure depends on various parameters:
Please note that even though openCRX might be involved in managing some of the above-mentioned realms (e.g. DB-based realm) the application server login is not really under control of openCRX. Many login problems are related to faulty application server configuration settings. 3.5.2 Segment LoginAccess to segments is managed/controlled by the ObjectInspectorServlet. The included DefaultRoleMapper identifies all Segment Login Principals of a given Subject and grants access to the respective segments through the Role Drop Down:
Figure 8: Role Drop Down with list of available Segment Login Principals It is possible to deploy user-specific implementations of the DefaultRoleMapper so that you can adapt the segment login procedure to your requirements. 3.5.3 Disabling LoginPlease refer to the chapter “Disable/Deactivate Users”. 3.6 Resetting Security
If you (or one of your users) managed to screw up the security settings in a major way you might be forced to reset all security settings to a well-defined state. Not an easy task – it typically involves a lot of manual work.
4 Managing Users
4.1 Creating UsersThe following steps are required to create a new openCRX user:
Have a look at Figure 1: Security Realms, Principals and Subjects after Initial Setup and Figure 2: Segment Administration to see how this all fits together. 4.1.1 Create Users ManuallyThe openCRX QuickStart guide (http://www.opencrx.org/documents.htm) contains a very detailed step-by-step example of how to manually create a new openCRX user. 4.1.2 Import Subjects and Application Login PrincipalsCreating large numbers of subjects/principals by hand can be quite a tedious job. If you prepare a text file containing the appropriate information in the file format as outlined below, the Root administrator (admin-Root) can use the operation Actions > Import Login Principals to create Subjects and Application Login Principals automatically.
Figure 9: Operation Actions > Import Login Principals (admin-Root) Listing 1: File Format Subjects and Application Login Principals Subject;<subject
name>;<subject description>
Listing 2: Example File Subjects and Application Login Principals Subject;joe;Doe,
Joe 4.1.3 Import UsersSimilarly to importing Subjects and Application Login Principals from a file you can also import Users from a file. If you prepare a text file containing the appropriate information in the file format as outlined below, the Segment administrator (admin-<SegmentName>) can use the operation Actions > Import Users to create Users automatically.
Figure 10: Operation Actions > Import Users (admin-Standard) Listing 3: File Format Users Users;<principal>;<account alias>;<account full name>;<primary group>;<password> Please note that <password> is a clear-text value. Listing 4: Example File Users User;joe;JD;Doe,
Joe;Users;2%jOd.IT
4.2 Disable/Deactivate UsersThere are various ways of disabling/deactivating users. To fully understand your options it is helpful if you are familiar with the openCRX Login Procedure. 4.3 Disabling Users at the level Application ServerDepending on the configuration of your application server you can disable users at that level. For example, if you rely on file-based realms with JBoss you can simply remove users from the file users.properties to prevent access to openCRX. If you block access at the level Application Server such users cannot access any segment of openCRX anymore. However, as the Application Server Login procedure is not entirely controlled by openCRX you must consult your AppServer Admin for details. 4.4 Disabling Users at the level openCRXThe segment administrator (e.g. admin-Standard) can prevent a user from accessing a particular openCRX segment by either disabling the respective Segment Login Principal or by deleting it altogether. Disabling is the preferred option to prevent access temporarily. If a user has multiple Segment Login Principals you must disable all of them to prevent access to the openCRX application.
Figure 11: Disabling of Segment Login Principal guest by admin-Standard
5 Deployment Scenarios5.1 Typical Deployment ScenariosThe following table lists some of the pros and cons of the 4 most common deployment scenarios:
5.2 Multi Entity Deployment ScenariosThe open source MDA platform openMDX supports a multitude of deployment scenarios and persistency configurations. The most common multi entity deployment scenarios are discussed in the following sections. 5.2.1 Multiple Data Segments in a single DBThe setup “Multiple Data Segments in a single DB” provides adequate security for many use cases and is relatively easy to manage. As all the data is stored in a single database, however, security configuration mistakes (e.g. principals linked to the wrong subject, etc.) can lead to situations where a user is granted access to the data of a particular company/client that should not be accessible to her. Furthermore, this setup is not recommended if users can get direct access to the database, e.g. with third party reporting tools as those tools typically bypass the openCRX API.
Figure 16: Multiple Data Segments in a single DB 5.2.2 Multiple DBsThe highest level of security is provided by setting up a dedicated database for each entity so that data sets of the various entities are physically separated:
Figure 17: Dedicated DB for each Entity 5.2.3 Multiple Applications<documentation pending> 5.3 openCRX Custom Applications<documentation pending> 6 Workflow ControllerWith the Workflow Controller the openCRX Root administrator (admin-Root) can enable/disable various servlets (configured in web.xml) included in the openCRX distribution. This chapter gives an overview over the currently available servlets and explains how to start/stop them. You can access the Workflow Controller by navigating to the URL http://127.0.0.1:8080/opencrx-core-CRX/WorkflowController or starting the Workflow Controller Wizard as shown in the figure below:
Figure 18: Accessing the openCRX Workflow Controller
The following figure shows the Workflow Controller of openCRX v1.9.1 (the look and feel may be different for other openCRX versions):
Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only
You can start (stop) servlets by clicking on “Turn On” (“Turn Off”). Please note that you can control servlets on a segment by segment basis. For example, if you created a segment “MyCompany” in addition to the segment “Standard” you can start/stop servlets of the segment “MyCompany” without interfering with the servlets of the segment “Standard”. By adjusting the ping rate you can control the time interval between individual runs of Workflow Controllers. For example, a ping rate setting of “1 ping every 5 minute(s)” will have the SubscriptionHandler check for new events once every 5 minutes. At the same interval all the other servlets will be triggered. 6.1 Servlet SubscriptionHandlerThe openCRX SubscriptionHandler is the backbone of the openCRX Subscribe / Notify Services. The Subscription Handler does not require any configuration by the openCRX administrator, i.e. it is designed to work “out of the box”. Turning on the SubscriptionHandler of a particular segment is required if you want that segment to provide Alerts and E-mail Notifications to its Users. The SubscriptionHandler checks openCRX audit entries on a regular basis and – if matching Subscriptions exist – executes the Workflow Process referenced by the Subscription using Userhome.executeWorkflow(). Listing 5: Subscription Handler checking table kernel_AuditEntry SELECT * FROM
kernel_AuditEntry The polling frequency can be set by the Root administrator (see Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only).
Userhome.executeWorkflow() – implemented by the openCRX plugin – creates an entry in Userhome.wfProcessInstance (accessible through the grid Workflow Process Instances) and executes synchronous workflows immediately. Beyond creating entries for asynchronous workflows, executeWorkflow() does not do anything with them (the Servlet WorkflowHandler is spezialized in dealing with asynchronous workflows – see below for details). 6.2 Servlet WorkflowHandlerThe openCRX WorkflowHandler is responsible for executing WfProcessInstances based on asynchronous WfProcesses like:
The execution frequency can be set by the Root administrator (see Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only). Please note that the WorkflowHandler is required for outbound E-Mail Services. The WorkflowHandler executes Workflow Process Instances that have not been executed yet.
6.3 MailImporterServletThe MailImporterServlet provides generic E-mail Services. The servlet regularly connects to e-mail boxes and fetches messages for import.
Figure 20: openCRX MailImporterServlet The polling frequency can be set by the Root administrator (see Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only). 6.4 Trouble Shooting ServletsAll the openCRX servlets controlled by the Workflow Controller log their actions to the server log file (e.g. D:\jboss-4.0.3SP1\server\default\log\server.log on JBoss). The following log file extract shows, for example, that both the Subscription Handler and the Workflow Handler seem to be working fine, whereas the MailImporterServlet cannot connect to the mail box (due to missing configuration): Listing 7: Servlets managed by Workflow Controller log to server.log 2006-04-04
14:04:25,936 INFO [STDOUT] Tue Apr 04 14:04:25 CEST 2006:
openCRX/SubscriptionHandler:
CRX/Standard openCRX Exceptions (like NullPointers, etc.), however, are still logged to the application log file as configured during the installation (see QuickStart guide). It is always worth checking whether the Workflow Handlers actually are active; they must be started by the Root administrator. You can find out by connecting to the Workflow Controller (see Figure 19: openCRX v1.9.1 Workflow Controller – connect with http only).
7 Subscribe / Notify ServicesopenCRX features a powerful event subscription and notification service:
Figure 21: Event and Notification Service Once a topic is created, openCRX users can subscribe to it. Users manage their subscriptions individually on their UserHomes. If a topic has subscribed users and a monitored event occurs then the predefined actions are performed. If the action is set to – for example – creating an alert for subscribed users, then each subscribed user will receive an alert on her UserHome.
The openCRX distribution includes quite a few default topics (see Figure 22: Standard Topics included in the openCRX distribution) to get you started:
Figure 22: Standard Topics included in the openCRX distribution Users can easily custom-tailor their subscriptions with filters and by selecting event types like Object Creation, Object Replacement, and Object Removal.
7.1 Example Subscription – Activity ModificationsIn this example we will create a subscription to the standard Topic Activity Modifications for the user “guest”.
Figure 23: Create a new Subscription – step 1
Figure 24: Create a new Subscription – step 2
Figure 25: Create a new Subscription – step 3
Figure 26: Create a new Subscription – step 3
7.2 Trouble Shooting Notification ServicesThe following table lists some of the common issues and how to fix them:
8 E-mail ServicesPlease note that you can use your favorite e-mail client with openCRX. None of our E-mail Services are platform dependent and they work with any e-mail client and with any mail server as long as they support standard protocols like SMTP, POP3, IMAP, etc. Inbound and outbound E-mail Services are based on JavaMail. Installation of JavaMail is not required to run openCRX, but it is required if you want to make use of openCRX E-Mail Services. The following figure shows the potential data flows between openCRX, mail server, and mail client:
Figure 27: Flow of data between openCRX, mail server and mail client In the following few sections we will first discuss various important use cases and subsequently show how to configure openCRX in order to make use of the available functionality. 8.1 Import E-mails from a Mail Client into openCRXInstead of offering platform specific plugins for a multitude of mail clients like MS Outlook, MS Outlook Express, Thunderbird, Eudora, Elm, etc. openCRX features a platform neutral e-mail importer. The advantages are obvious:
The following figure shows an overview of how you can import e-mails from your mail client into openCRX:
Figure 28: Import E-Mails from Mail Client The whole setup is quite straightforward; in a first step you configure the MailImporterServlet (see Inbound E-mail) so that it fetches e-mails from a mailbox, e.g. named “import”. Optionally, you can create a custom-tailored Activity Creator to handle imported E-mails exactly the way you like, but in most cases the provided Default E-mail Creator is sufficient. To import an e mail message from your mail client into openCRX, you create a new message to be sent to your importer mailbox, e.g. by entering import@company.com into the TO field of the new message. Optionally you can specify the name of the Activity Creator in the Subject of the new message. Next you attach the message(s) to be imported to that new message (yes, you can attach multiple e-mail messages and if those messages contain attachments themselves they will also be imported) and send it off. Once delivered to the appropriate mailbox (called “import” in our example) the MailImporterServlet will fetch it from there and then import the messages attached to that envelope message. This process works for messages in your Inbox, Outbox or any other folder. 8.2 Use openCRX as an E-mail Archive/Audit ToolopenCRX can easily keep track of all your e-mail traffic, inbound and/or outbound (and given the increasingly more stringent rules on e-mail retention – Sarbanes-Oxley, etc. – it is probably worthwhile considering the advantages of importing all e-mail messages by default). The following figure shows a configuration where the mail server puts a copy of each received message (inbound traffic) and all sent messages (outbound traffic) into the mailbox audit; configuring such audit accounts can easily be done with most Mail Transport Agents (MTAs) like qmail, postfix, etc. With the appropriate configuration (see Inbound E-mail), the MailImporterServlet can import all messages from that audit mailbox and attach it to an Activity Tracker of your choice:
Figure 29: E-Mail Audit – import all inbound/outbound e-mail messages 8.3 Send E-mail directly from openCRXAny openCRX E-Mail Activity can be sent as e-mail directly from openCRX:
Figure 30: Send E-Mail from openCRX – Overview The idea behind this functionality is less that you will use openCRX as a mail client, rather the SendMailWorkflow is an important element of the openCRX campaign management functionality. E-Mail Activities of type “E-Mails” are controlled by the Activity Process E-mail Process. Send E-Mail Activities to all recipients by executing the operation Actions > Follow Up and then selecting the Transition Send as mail as shown below:
Figure 31: Send E-Mail from openCRX with Actions > Follow Up
8.4 Export E-mails from openCRX to your Mail ClientAny openCRX E-Mail Activity can be exported to your mail client:
Figure 32: Export E-Mail from openCRX – Overview The idea behind this functionality is that you might want to put some finishing touches on an e-mail before you actually send it from your mail client. E-Mail Activities of type “E-Mails” are managed by the standard Activity Process E mail Process, i.e. they can be exported to the user's default mail account by executing the operation Actions > Follow Up and then selecting the Transition Export as mail attachment:
Figure 33: Export E-Mail from openCRX with Actions > Follow Up
The following figure shows an example envelope e-mail with the attachment “test message.msg” representing the exported E-Mail Activity:
Figure 34: Envelope E-mail with exported E-Mail Activity as attachment With a few simple steps you can typically open and edit the exported message and then send it. The following example shows how to do this with MS Outlook (but the steps are similar for other mail clients):
Figure 35: MS Outlook – Resend This Message to edit/send e-mail
Figure 36: MS Outlook – Send message 8.5 Installing JavaMail and opencrx-ssl.jarDetailed installation instructions are provided at the JavaMail home: http://java.sun.com/products/javamail/FAQ.html And here is the short version:
In addition to JavaMail you also must install opencrx-ssl.jar – included in the openCRX distribution – into the directory JAVA_HOME\jre\lib\ext.
8.6 Configuring E-mail ServicesAfter Installing JavaMail and opencrx-ssl.jar you should verify that the options of the Java VM running openCRX include the following one: -Dmail.SSLSocketFactory.class=org.opencrx.ssl.DefaultSSLSocketFactory
The following chapters explain how to configure various in- and outbound E mail Services. 8.6.1 Outbound E-mail / UsersopenCRX users can configure e-mail accounts on their Homepage indicating where they would like to receive e-mail notifications (e.g. generated by subscriptions):
Figure 37: Create a new E-Mail Account – step 1
Figure 38: Create a new E-Mail Account – step 2
The various fields have the following meanings:
Figure 39: Create a new E-Mail Account – step 3
Figure 40: E-mail subject prefix and Web access URL
The meaning of the two fields is as follows: 8.6.2 Outbound E-mail / Users relying on SYSTEM AccountIf the Segment Administrator (e.g. admin-Standard) configured a SYSTEM account – see Outbound E-mail (SYSTEM) – users do not need to provide any SMTP-related information; it is sufficient to provide values for the fields E-mail address and Reply address. Furthermore, you still need to check Default if you want openCRX to use this account:
Figure 41: Create a new E-Mail Account – use SMTP-info from SYSTEM You can easily test your e-mail settings if you create a subscription for Activity Modifications (see Example Subscription – Activity Modifications) and then work through the following steps:
Figure 42: Example of outbound E-mail Action Log Entries 8.6.3 Outbound E-mail (SYSTEM) / Segment AdministratorThe Segment Administrator (e.g. admin-Standard) can define an outbound E mail that can be used by all users of a segment without sharing any critical information (e.g. username/password required to authenticate for relaying e mails, etc.). This is done as follows:
Figure 43: Create a new SYSTEM E-Mail Account – step 1
Figure 44: Create a new SYSTEM E-Mail Account – step 2
From now on Users can define their outbound e-mail settings with a minimal set of information (see Users relying on SYSTEM Account for details). 8.6.4 Inbound E-mail / Segment AdministratorThe Root Administrator (admin-Root) must turn on the MailImporterServlet (see Workflow Controller for information on how this is done). Segment Administrators (e.g. admin-Standard) can now configure the openCRX Mail Importer for their segment as follows:
Figure 45: Grid Workflow Processes with entry MailImporterServlet
Figure 46: MailImporterServlet Default Settings
To connect to a mail server with the name “mail.company.com”, for example, you would follow the following steps:
Figure 47: Configuration of MailImporterServlet – Default Server
Figure 48: Configuration of MailImporterServlet – Mail Server
Figure 49: Configuration of MailImporterServlet – Account and Password
Figure 50: Envelope E-Mail with attached E-Mail to be imported
Listing 8: Debug Output of MailImporterServlet
18:42:57,779 INFO [STDOUT] DEBUG: JavaMail version
1.3.3
Figure 51: Activity Tracker E-Mail is created automatically
Figure 52: Activity Tracker E-Mail with newly imported e-mail
Figure 53: Newly imported e-mail The mail importer will automatically link imported e-mails with corresponding objects (if they exist in openCRX) and create various additional useful objects:
8.6.5 Trouble Shooting E-mail ServicesThe following table lists some of the common issues and how to fix them:
9 Data Import/ExportThere are many ways of importing data (from other systems into openCRX) and exporting data (from openCRX to other systems). Generally speaking, there is no best way of doing imports/exports because depending on how much weight you put on the pros and cons of the various methods you may come to a different conclusion. Some issues to consider are:
In this chapter we will cover some of the basic options you can choose from, but there are obviously other (and sometimes better) options to consider.
9.1 Importing Data into openCRXThe task of importing data is handled by importers. In principle, you can import almost anything into openCRX, it’s really only a matter of writing an appropriate importer.
The Open Source distribution of openCRX includes importers for vCard and iCalendar files in addition to the XML importer. 9.2 Importing XML FilesYou can import virtually any data into openCRX as long as you provide it in the form of schema-compliant XML files. The openCRX schema files can be found in the file opencrx-1.9.1\jre-1.4\core\lib\opencrx-kernel.jar (unzip and look for xmi subdirectories). Alternatively, you can export example objects as XML files and look at the produced XML files. Some of the data provided with openCRX is also provided in the form of XML files and imported during system setup (e.g. units of measurement are loaded from opencrx-core-CRX-Web.ear\opencrx-core-CRX.war\WEB-INF\config\data\ Root\uom_SI_and_Paper.xml). An XML import from a third party system might typically involve the following steps:
Figure 56: XML import from 3rd party system – overview You can import schema-compliant XML files with the following methods:
9.2.1 Importing vCard Files ( openCRX Contacts)vCard is file format standard for personal data interchange, specifically electronic business cards (additional information is for example available from http://en.wikipedia.org/wiki/VCard). These are the steps to import a vCard file:
Figure 59: Operation vCard Import
9.2.2 Importing iCalendar Files ( openCRX Meetings)iCalendar is a standard for calendar data exchange (additional information is for example available from http://en.wikipedia.org/wiki/ICalendar). These are the steps to import an iCalendar file:
9.2.3 Other OptionsThere are various other options to consider. You could for example develop a custom-tailored JSP Wizard to import data on demand or on a regular basis (e.g. controlled by the openCRX WorkflowController). Sometimes it is more appropriate to develop a specific openCRX client to handle imports, and in a typical enterprise class environment you will probably consider developing adapters to connect/integrate openCRX with 3rd party systems on a real-time basis. 9.3 Exporting Data from openCRXThe task of exporting data is handled by exporters. The Open Source distribution of openCRX includes exporters for vCard and iCalendar files in addition to the XML exporter. This allows you to export contacts and meetings/sales visits or any other object from openCRX. vCard and iCalendar files can be imported by a large variety of other applications, including Microsoft Outlook. This chapter shows how to export data. 9.3.1 Exporting XML FilesNavigate to the object to be exported as XML file and execute the operation File > Export XML as shown below:
Figure 60: Exporting Contact as XML File In order to better control which additional objects (composites, referenced objects, ...) the XLM exporter should export together with the object loaded in the Inspector, you can (optionally) provide a reference filter. The default reference filter is :*/:* meaning that all composites and referenced objects up to 2 levels deep will be exported together with the main object (this should be sufficient for most use cases). Limiting the scope of the export by providing a reference filter as in the example above might be necessary to limit the size of the XML file. If the export is successful the exporter will terminate with status OK and you will be provided with a link to a zip file containing the raw data and all the referenced code tables:
Figure 61: XML Exporter provides XML data file and code tables as ZIP file 9.3.2 Exporting openCRX Contacts ( vCard Files)These are the steps to export a contact to a vCard file:
Figure 62: Export Contact as vCard If the export operation was successful the result will contain a link to the vCard file. Click on that link to download the vCard file from the openCRX server. 9.3.3 Exporting openCRX Contacts ( Outlook Contacts)Navigate to the contact you want to export to MS Outlook and execute the Wizard Export to MS Outlook:
Figure 63: Export Contact to MS Outlook
The Wizard creates a new MS Outlook Contact from the openCRX Contact. If you want to add it permanently to your MS Outlook file, simply click the button [Save and Close], otherwise close the Contact window to discard:
Figure 64: MS Outlook Contact created from openCRX Contact An animation is available at http://www.opencrx.org/opencrx/1.9/new.htm#ops 9.3.4 Exporting openCRX Meetings ( iCalendar Files)These are the steps to export a meeting (or a sales visit) to an iCalendar file:
Figure 65: Exporting Meeting / Sales Visit as iCalendar File 9.3.5 Other OptionsThere are various other options to consider. You could for example develop a custom-tailored JSP Wizard to export data on demand or on a regular basis (e.g. controlled by the openCRX WorkflowController). Sometimes it is more appropriate to develop a specific openCRX client to handle exports, and in a typical enterprise class environment you will probably consider developing adapters to connect/integrate openCRX with 3rd party systems on a real-time basis. 10 Customizing openCRX
10.1 Managing LocalesThe default installation of openCRX activates all locales that are included in the Open Source distribution. The openCRX administrator may wish to deactivate certain locales from the locale list. This chapter shows how you can achieve this. The locale list is contained in the file opencrx-core-CRX-Web.ear\opencrx-core-CRX.war\WEB-INF\web.xml Look for the section <!-- locales --> where you will find a list of all available locales: Listing 10: Locales in web.xml <!-- locales
-->
You can deactivate locales by simply commenting them out. The following example shows how to deactivate the locale de_CH. Listing 11: Activating/Deactivating Locales in web.xml <!-- locales
-->
10.2 Managing Packages<documentation pending> 10.3 Role-based UI<documentation pending> 10.3.1 Model Permissions<documentation pending> 10.3.2 Multiple Applications<documentation pending> 10.3.3 Custom JSPs<documentation pending> 11 Reporting with BIRTA clean integration of BIRT (Business Intelligence and Reporting Tools, available from http://www.eclipse.org/birt/) is on the openCRX roadmap, but there are still a few pieces missing. In the mean time, we offer experimental support for BIRT and the following notes should help you navigate around the current restrictions and pitfalls of using BIRT with openCRX. 11.1 Restrictions/Pitfalls of using BIRT with openCRXopenCRX is distributed with the BIRT Report Engine, i.e. it is possible to develop reports with the BIRT Report Designer (not distributed with openCRX, but available from the BIRT website) and then use such reports with openCRX. Before we look at the steps required to create/deploy a report it is worthwhile noting some restrictions and pitfalls inherent to the current setup:
11.2 How to design and deploy a BIRT report
Figure 66: BIRT Report Designer – Data Source Definition mysql-crx
Listing 12: Sample Data Source Definition for MySQL
<data-sources>
Figure 67: BIRT Report Designer – Data Set Query The above will look as follows in the report definition file (note that you refer to the Data Source by its name): Listing 13: Sample Data Set for Activity Group Report from MySQL <data-sets>
Figure 68: BIRT Report in openCRX GUI openCRX
report title and description are defined by the value of the BIRT
report property Description as follows:
<title>-<description>.
Figure 69: BIRT Report Designer – Title and Description of openCRX Report The above will look as follows in the report definition file: Listing 14: openCRX Report Title and Description <html-property name="description">Activity Groups-BIRT Report: Activity Groups</html-property>
11.3 Report Debugging / BIRT LoggingUnfortunately, by default BIRT logs to a directory inside the openCRX EAR: opencrx-core-CRX-web.ear\opencrx-core-CRX.war\logs To debug a report causing problems you must create this directory and make sure that it is writable (on JBoss you can simply explode the EAR and the WAR files to directories with the appropriate name and then delete the archive files). The BIRT Report Viewer distributed with openCRX logs at the level “FINEST”. You can change this settings in the file opencrx-core-CRX-web.ear\opencrx-core-CRX.war\WEB-INF\web.xml Listing 15: Setting BIRT Logging Level in web.xml
<?xml version="1.0" encoding="UTF-8"?> Alternatively, you can set a value for BIRT_VIEWER_LOG_DIR in the file opencrx-core-CRX-web.ear\opencrx-core-CRX.war\WEB-INF\web.xml so that BIRT logs to a directory of your choice: Listing 16: Setting BIRT Log Directory in web.xml ...
11.4 Additional BIRT-Servlet OptionsYou might want to refer to the BIRT documentation for a full list of options, but the following ones might be useful in combination with openCRX: Listing 17: Setting Additional Options of BIRT-Servlet in web.xml ...
11.5 Outlook BIRT-Integration with openCRXAs mentioned earlier, support for BIRT is currently experimental. A clean integration of BIRT with openCRX would make use of a BIRT ODA implementation (ODA = Open Data Access):
Figure 70: Integration of BIRT with BIRT ODA Implementation At this time there are ODA-Implementations for flatfile, jdbc, and xml. Alternatively, one could fetch data through the openCRX API and then pass it to the BIRT Engine. 12 Integration with Office Suites<documentation pending>
12.1 MS Office<documentation pending> 12.2 Open Office<documentation pending>
13 Next StepsYou might want to have a look at some of the additional documentation published at http://www.opencrx.org/documents.htm. License
The contents of this file are
subject to a BSD license (the "License"); you may not use
this file except in compliance with the License. You may obtain a
copy of the License at http://
Copyright 2006 ©
CRIXP Corp. All rights reserved. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||