SourceForge.net Logo

<< New features in openCRX v1.5 (Release Notes) >>


Advanced XML Export

Starting with openCRX v1.5 the XML exporter will export the respective object, all the referenced objects, and the code value texts of all used codes. The level of dereferencing can be specified by parameter (by default, this level is set to 1 so that the respective object and all the directly referenced objects will be exported). All XML files are automatically zipped together:

This enhancement makes the XML exporter much more usable.

^top


MS Word XML Merge

openCRX v1.5 will showcase a seamless integration of openCRX with MS Word. The development of this feature is fully funded by a substantial donation from a corporate client of CRIXP Corp. who wishes to remain unnamed.

Even though a client-side integration of openCRX with MS Word is certainly not the ultimate high volume document merge engine, this feature it is still well suited to create content-driven documents with little effort. Adding openCRX features to an existing Word document (--> template) is a matter of minutes (if you are comfortable writing VBA scripts you can even do this yourself). Once everything is properly configured you can create merged documents by clicking a single button:

This feature requires IE (or any other ActiveX-enabled browser) and MS Word installed on the client. It should be pretty straight-forward for the open source community to extend/adapt this example integration and make it available for other office suites as well (e.g. OpenOffice, StarOffice). Similar approaches can be used to integrate other Microsoft Office applications (e.g. MS Excel, MS Outlook, etc.).

You can test drive this feature on our demo server by following these instructions (please note that this feature requires you to connect to our demo server with Internet Explorer and you must have MS Word installed on your computer - furthermore, you will most likely have to adjust the security settings of your browser as the default settings would prevent our demo server from launching MS Word on your computer):

  1. Verify the security settings of your browser (Internet Explorer) based on instructions available from our demo server (you must add demo.opencrx.org to your trusted sites and allow ActiveX controls to be executed).
  2. Connect (with Internet Explorer) to our demo server (login with username guest and password guest) and navigate to the contact "Joe Brown".
  3. Click on the button [Word Sample Letter]:
  4. Click on the [OK] button to start the export to Word. After a few seconds you should see the exported item:
  5. Click on the button [Exported Item] to launch MS Word (you might get some warnings related to ActiveX controls depending on your security settings; if nothing happens, your browser (most likely) does not have sufficient permissions to launch ActiveX controls - verify your security settings based on the information available from our demo server). If all the settings are correct, MS Word will load and a few seconds later you will already see the merged document:
  6. With MS Word active you can click <CTRL>-<Z> a few times to undo the merging if you want to see what the template looks like:

The VBA code specific to this template is just a few lines (all the generic functions are distributed with openCRX, i.e. you don't have to worry about writing those scripts):

   contact = getObj(xmlclean, "org.opencrx.kernel.account1.Contact")
   localeIdx = 0
   Call ReplaceField("salutationCode$ShortText", getCodeValueText(xmlclean, "salutationCode", Val(getTagValue(contact, "salutationCode")), localeIdx, False), False)
   Call ReplaceField("lastName", getTagValue(contact, "lastName"), False)
   'primary mailing address
   ReDim usagefilter(0, 1)
   usagefilter(0, 0) = "usage"
   usagefilter(0, 1) = "300" 'primary
   mailingAddress = getObjList(getContent(xmlclean, "org.opencrx.kernel.account1.Contact"), "address", usagefilter, "postalStreet")
   Call ReplaceField("postalAddressLine", getTagMultiValueAsString(getTagValue(mailingAddress(0), "postalAddressLine"), itemTag), False)
   Call ReplaceField("postalStreet", getTagMultiValueAsString(getTagValue(mailingAddress(0), "postalStreet"), itemTag), False)
   Call ReplaceField("postalCity", getTagValue(mailingAddress(0), "postalCity"), False)
   Call ReplaceField("postalState", getTagValue(mailingAddress(0), "postalState"), False)
   Call ReplaceField("postalCode", getTagValue(mailingAddress(0), "postalCode"), False)
   Call ReplaceField("postalCountry$ShortText", getCodeValueText(xmlclean, "country", Val(getTagValue(mailingAddress(0), "postalCountry")), localeIdx, False), False)
   phoneNumber = getObjList(getContent(xmlclean, "org.opencrx.kernel.account1.Contact"), "address", usagefilter, "phoneNumberFull")
   Call ReplaceField("primaryPhone", getTagValue(phoneNumber(0), "phoneNumberFull"), False)

Customizing such a MS Word XML Merge operation is also very straight-forward. All it takes is an <additionalElementDefinition> block attached to the already existing ElementDefinition of the XML Export. The following extract from the ui config file common.xml shows the ElementDefinition as it exists on the demo server. Highlighted is the <additionalElementDefinition> block required to configure the MS Word XML Merge operation on contact objects with the MS Word document sample-letter.doc:

   <org.openmdx.ui1.ElementDefinition name="org:opencrx:kernel:base:XmlExporter:Pane:Op:Tab:exportXml">
    <_object>
     <active>true</active>
     <toolTip>
      <_item>Export XML</_item>
     </toolTip>
     <label>
      <_item>Export XML</_item>
     </label>
     <iconKey>org:opencrx:kernel:Export</iconKey>
     <order>
      <_item>0</_item>
      <_item>0</_item>
      <_item>5</_item>
     </order>
    </_object>
    <_content>
   <additionalElementDefinition>
      <org.openmdx.ui1.AdditionalElementDefinition id="ExportContactToWord">
       <_object>
        <active>true</active>
        <toolTip>
         <_item>Export to Word</_item>
        </toolTip>
        <label>
         <_item>Word Sample Letter</_item>
        </label>
        <iconKey>org:opencrx:kernel:Export</iconKey>
        <order>
         <_item>0</_item>
         <_item>0</_item>
         <_item>6</_item>
        </order>
        <forClass>
         <_item>org:opencrx:kernel:account1:Contact</_item>
        </forClass>
        <memberDefinitionElementName>
         <_item>item</_item>
        </memberDefinitionElementName>
        <memberDefinitionMimeType>
         <_item>application/x-openmdx-xml-for-word-export;template=documents/sample-letter.doc;macro=xmlMerge;visible=true</_item>
        </memberDefinitionMimeType>
       </_object>
      </org.openmdx.ui1.AdditionalElementDefinition>
     </additionalElementDefinition>
    </_content>
   </org.openmdx.ui1.ElementDefinition>

^top


Audit Trail (pervasive / system-wide)

In various settings (e.g. financial institutions, healthcare, call centers, ...) it is absolutely crucial that every change to any object is protocolled. openCRX takes care of all these requirements with a system-wide audit trail enabling the auditor (or other authorized/interested people) to inspect the complete history of any openCRX object.

Example Audit Trail:

Example Audit Entry:

Audit Trail is one of those enterprise features that was extremely easy to implement with openMDX, the leading open source MDA platform:
1. UML Models (30 minutes)

2. Implementation (3 hours)
Write and test plugin org.opencrx.kernel.layer.persistence.Audit_1.java  (~300 lines of code).

3. GUI Customizing (30 minutes)
Write and test XML file audit.xml  (~225 lines).

      <org.openmdx.ui1.ElementDefinition name="org:opencrx:kernel:base:Auditee:audit">
       <_object>
        <active>true</active>
        <toolTip>
         <_item>Audit Entries</_item>
        </toolTip>
        <label>
         <_item>»Audit Entries</_item>
        </label>
        <order>
         <_item>0</_item>
         <_item>0</_item>
         <_item>1100</_item>
        </order>
       </_object>
      <_content/>
     </org.openmdx.ui1.ElementDefinition>
     <!--Inspector Definitions-->
     <org.openmdx.ui1.ElementDefinition name="org:opencrx:kernel:base:AuditEntry">
      <_object>
        <active>true</active>
        ...

^top


Integration Support for Legacy Systems

Starting with openCRX v1.5 you have an additional option to integrating openCRX with third-party products. This new option is particularly useful if the third-party product lacks a well-defined API to read/write objects as it is often the case with legacy systems. If it is easier to directly access the DB than getting those old-school-programmers to come up with a decent API to access their system you will love our improved support for updatable user-defined DB objects.

^top


Event Subscription / Notification Service

Subscribe to any openCRX event (e.g. new account, account modified, new pipeline item, pipeline item modified, etc.) and receive immediate notification whenever an event you subscribed to occurs. If a gateway is provided (e.g. your company's mail server or SMS gateway), the openCRX notification service can also send out e-mails, short text messages (SMS), etc.

Overview Event Subscription and Notification Service:

Example Notification E-mail (with various links for 1-click access to the relevant openCRX objects):

Note that the notification e-mail does not contain any confidential information. Clicking on the URLs will take you to the openCRX server where you will have to login before you get access to any information. Hence, even if a notification e-mail ends up in the wrong hands there is nothing to fear.

Users can subscribe to topics (e.g. Account Modification) and define for which event types (e.g. creation, replacement, removal) they would like to receive a notification:

^top


E-mail outbound (SMTP Adapter)

Connect your openCRX account with your e-mail account and receive - for example - openCRX alerts by e-mail / SMS.

^top


Viewer for multi-line texts

The default GUI is carefully customized with the goal to reduce page scrolling to a minimum. That is why text fields do not grow even if you enter multiple lines of text. Unfortunately, this will force you to use the scroll-bars of the text control to read the complete text. Starting with openCRX v1.5 such text controls feature an expansion icon () in the top left corner. Click on this icon in the text control below to start the multi-line text viewer. You can close it again by clicking on the close button (X) in the top right corner of the multi-line text viewer (please note that this feature requires Javascript).

Note
Title:
multi-line note
Text: o
What are the benefits of openCRX?
  • True Open Source
    openCRX is open source software - no hidden agenda, no gimmicks like "patent-pending team-selling features" and absolutely no reason to buy a professional/commercial version later to get all the features (because there is no commercial version...) - in addition to the openCRX source code you also get all the UML models and the full Javadoc (everything plublished with a truly open and OSI-certified BSD style license)

  • Professional CRM suite - limitless relationship management
    powerful and comprehensive best-of-breed features for sales, service, marketing, contact center, and analytics; multi-entity enabled with multi-language and multi-currency support for players in a global market --> read more or take a tour

  • Deployment-free client - simply connect with your browser
    no need to deploy proprietary clients throughout your organization, openCRX works with any recent version of IE, Opera, Mozilla, Firefox, etc. - try our demo

  • Easy to integrate and highly interoperable
    easy integration with your existing applications (ERP, IVR, CTI, ...) is the best protection for your previous investments and openCRX supports all common technologies like RMI, CORBA, JMS, SOAP, and JCA; openCRX also includes smart front-ends for typical add-ons like document management, inventory tracking, facility management, etc.

  • Highly scalable
    from a single-user environment on a laptop to enterprise-class globally distributed systems with tens of thousands of concurrent users - openCRX is designed to fit your needs

  • Extremely low operations and maintenance costs
    open standards, low complexity, highest quality, designed for true 24x7 availability - if you think that hosted/on-demand CRM is a cost-effective solution, think again!

  • Platform-independent and vendor-neutral
    openCRX runs on any platform with a J2EE-compliant AppServer (e.g. JBoss, BEA WebLogic or IBM WebSphere) and one of the major database management systems (e.g. MySQL, MaxDB, PostgreSQL, MS SQL, Oracle, or IBM DB2).

  • Easyto customize
    XML-based customization, straight-forward, fast, and flexible (including multi-language features)

  • Easy to extend
    write your own workflows or develop your own extensions - it's an easy task thanks to openCRX's component-based architecture and open standards like J2EE, MDA, etc.


^top


Select/Delete multiple grid objects

This new features enables you to remove multiple grid objects rather efficiently:

^top


Enhanced Error Handling

If it is not possible to save a newly created object or a changed/edited object your manul input is no longer lost. You are sent back to the edit screen and all your changes are still available for further processing.

^top


Demo SimpleClient

A demo client (SimpleClient) is included in the distribution showing how to program a Java client to access the openCRX Server.

Developers: try the client with ant target 'ant demo-SimpleClient'. The client connects to http://localhost:8080/opencrx-core-CRX. The client looks up accounts with the name specified with the option --name=... and prints them to the console. If you want to connect to a different host you must modify opencrx\core\src\ear\demo.opencrx-core-CRX-SimpleClient.ear\server.rar\META-INF\ra.xml.

Sample Output

      C:\pj\omex\opencrx\core>ant -Dsimple.client.name=Guest demo-SimpleClient
      Buildfile: build.xml

      demo-SimpleClient:
           [java] Deployment of Application Client 'file:src/ear/demo.opencrx-core-CRX-SimpleClient.ear'
                  successfully completed (see log for details)
           [java] openCRX SimpleClient: Find accounts with name LIKE Guest

           [java] account=xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/
                  f0fe74d0-12ec-11d9-9ab3-9d41e6fd0a25
           [java]   full name=Guest,

           [echo] You can specify a different account name with option -Dsimple.client.name=...
           [echo] You can perform an XML export with option -Dsimple.client.xmlExport=true

The package org.opencrx.demo contains the source code.

^top


Ordered Loading of UI Configuration Files / Overloading of UI Configuration

These features enable customizers to better control changes to the default UI configuration of openCRX:

  • UI configuration files are loaded in alphabetical order
  • ElementDefinitions can be overloaded (if multiple definitions exist for the same ElementDefinition, the one loaded last wins)

Hence, you can now collect your changes to the UI configuration in a set of files loaded at the end of the UI loading process, overwriting the default configuration. This makes it much easier to preserve your changes through version upgrades.

^top


New Language: Polish (pl_PL)

A BIG "thank you" to Jarek Solowski (www.solowski.com) and Adam Sobkowicz (CBI - Center of Business Information Polska) who donated the Polish translation to the openCRX project! You can already to try out the Polish version of openCRX on our demo server at http://demo.opencrx.org/

^top


http://www.crixp.com/ http://www.openmdx.org/