<< 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.
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):
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>
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:
2. Implementation (3 hours)
3. GUI Customizing (30 minutes)
<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> ...
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.
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:
E-mail outbound (SMTP Adapter)
Connect your openCRX account with your e-mail account and receive - for example - openCRX alerts by e-mail / SMS.
Viewer for multi-line texts
Select/Delete multiple grid objects
This new features enables you to remove multiple grid objects rather efficiently:
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.
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.
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.
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:
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.
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/