<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.dovetailsoftware.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Marek Pawelczyk</title><link>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>Query Converter - a New Tool to Migrate ClarifyCRM Queries to fcQuery Objects</title><link>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/archive/2008/11/18/query-converter-a-new-tool-to-migrate-clarifycrm-queries-to-fcquery-objects.aspx</link><pubDate>Tue, 18 Nov 2008 20:43:30 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11572</guid><dc:creator>Marek</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/comments/11572.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/commentrss.aspx?PostID=11572</wfw:commentRss><description>&lt;p&gt;Long time ClarifyCRM users may have a number of traditional Clarify queries accumulated over time. After such a business acquires Dovetail Software CRM products for Clarify database, it becomes one of the migration issues: how to reuse Clarify queries in the new thin client. &lt;/p&gt;  &lt;p&gt;Dovetail Software Agent has no built-in support for Clarify queries, and for a good reason. fcQuery is far superior to traditional Clarify query model and all the users are highly encouraged to abandon Clarify queries in favor of fcQueries. If the business no longer uses Clarify Classic Client, migration is a must.&lt;/p&gt;  &lt;p&gt;Until the release of Dovetail Agent v.4.2. the only way to move a Clarify query to fcQuery was to recreate it manually.&lt;/p&gt;  &lt;p&gt;The new Dovetail &lt;strong&gt;Query Converter&lt;/strong&gt; makes migration of Clarify queries into fcQueries very easy.&lt;/p&gt;  &lt;h3&gt;Clarify Query vs. fcQuery&lt;/h3&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;These are the main points of distinction between both designs:&lt;/p&gt;  &lt;p&gt;ClarifyCRM Queries:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;only nine database objects can have queries defined, &lt;/li&gt;    &lt;li&gt;search results are presented using a view not the base table, which limits the set of available columns, &lt;/li&gt;    &lt;li&gt;search results can be sorted only by one data element, &lt;/li&gt;    &lt;li&gt;to add a column to a query three Clarify forms and the view must be customized, &lt;/li&gt;    &lt;li&gt;a query executes in two steps: filtering step followed by presentation step. First, a base-table query is executed using defined keywords and properties to retrieve a list of objids. Next, a view query uses the list of found objids to retrieve the final set of records. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;fcQueries:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;any database object can have queries defined, &lt;/li&gt;    &lt;li&gt;the way search results are presented are defined by system administrator who decides which columns are included and are visible, &lt;/li&gt;    &lt;li&gt;search results can be sorted by up to two data elements, &lt;/li&gt;    &lt;li&gt;to add a column to a query no customizations are required, can be done online by system administrator, &lt;/li&gt;    &lt;li&gt;a query executes in one step, all selection criteria are applied immediately. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are many more goodies available in fcQuery making it flexible and efficient. More details can be found in these blog posts: &lt;a href="http://blogs.dovetailsoftware.com/blogs/styson/archive/2008/08/07/opening-view-objects-from-query-results.aspx" target="_blank"&gt;Opening View Objects from Query Results&lt;/a&gt; and &lt;a href="http://blogs.dovetailsoftware.com/blogs/styson/archive/2008/09/22/run-time-query-parameter-evaluation.aspx" target="_blank"&gt;Run-Time Query Parameter Evaluation&lt;/a&gt; by &lt;a href="http://blogs.dovetailsoftware.com/blogs/styson/default.aspx" target="_blank"&gt;Sam Tyson&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;The query migration process&lt;/h3&gt;  &lt;p&gt;The tool is designed as a batch script to run on the server in either 'preview' or 'convert' mode. The 'preview' mode allows for evaluation of final results to make sure they meet the expectations. Even after the actual conversion is done and it is found that a resulting query is deficient, it can be modified in Dovetail or deleted and recreated.&lt;/p&gt;  &lt;p&gt;The script can be run against a single query, all the queries created by a single user, or all the queries in the database. The original Clarify queries are not affected in any way, they remain available for use. The script may be re-run over and over again, if a query has already been migrated it will be ignored (if it has changed since last run, it won't be recreated or updated. In such a case it is better to delete it in Dovetail and recreate entirely).&lt;/p&gt;  &lt;p&gt;As a result:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;each Clarify query will have its fcQuery counterpart created under the same name, &lt;/li&gt;    &lt;li&gt;all selection and sort criteria will be preserved, &lt;/li&gt;    &lt;li&gt;the output columns will have the same headings and sequence as the original result view, &lt;/li&gt;    &lt;li&gt;query ownership will be preserved, &lt;/li&gt;    &lt;li&gt;if a query was iconified in Clarify it will be iconified in Dovetail Agent, &lt;/li&gt;    &lt;li&gt;if a query was shared in Clarify it will be shared in Dovetail Agent with the same users. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Things to consider&lt;/h3&gt;  &lt;p&gt;When it is done manually, fcQueries are created in two places, in this sequence:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;system administrator defines an fcQuery Object which defines a custom 'view' of the data. It is not a view in database terms, rather, it is a 'mask'. Only the 'unmasked' data elements defined for the fcQuery Object will be available later to the users. &lt;/li&gt;    &lt;li&gt;agents personalize the fcQuery Object and create actual queries used to retrieve data. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Query Converter will create one fcQuery Object for each base Clarify query table - that means that up to nine fcQuery Objects may be created. Then, all the Clarify queries for a specific object will be tied to the same fcQuery Object, i.e. all the Clarify case queries defined by all the users will refer to the same fcQuery Object with alias name of 'case query'. This 'case query' fcQuery Object will then contain all the columns:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;defined as result view columns in the database, &lt;/li&gt;    &lt;li&gt;defined as search criteria properties in any case query, &lt;/li&gt;    &lt;li&gt;defined as sort properties in any case query, &lt;/li&gt;    &lt;li&gt;case_history column because it is used by keyword search. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It may also happen that Clarify Query forms have been customized to include additional result view columns and/or search/sort criteria properties. Some users may be grouped in base resource configuration having access only to out-of-box queries while others may have access to the customized ones. Query Converter treats these queries as they are separate entities, both base and custom queries will be migrated. The custom ones for cases will be associated with a separate fcQuery Object with alias name of 'case query &lt;em&gt;ver_customer&lt;/em&gt;' where &lt;em&gt;ver_customer&lt;/em&gt; is the version name of Clarify Query Edit form #806.&lt;/p&gt;  &lt;h3&gt;After the migration&lt;/h3&gt;  &lt;p&gt;After the Clarify queries are migrated to fcQueries, it is recommended that system administrator does a thorough review of the fcQuery Objects and eventually add/remove/reorder the columns. Then it is up to the owners to further personalize, iconify, share and refuse the queries.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11572" width="1" height="1"&gt;</description></item><item><title>Site And Contact Merge Tools in Dovetail Agent</title><link>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/archive/2008/11/18/site-and-contact-merge-tools-in-dovetail-agent.aspx</link><pubDate>Tue, 18 Nov 2008 15:16:41 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11563</guid><dc:creator>Marek</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/comments/11563.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/commentrss.aspx?PostID=11563</wfw:commentRss><description>&lt;p&gt;Dovetail Agent v.4.1 has been expanded to include two tools to merge duplicate sites and contacts.&lt;/p&gt;  &lt;p&gt;Before Dovetail Agent v.4.1, this functionality was available as Clarify Classic Client extension known as fcMerge, which is still available as a separate product. While fcMerge is also capable of handling duplicate address, part, and employee records, Dovetail Agent version of the tool concentrates on sites and contacts only, as these are the most likely ones in need of merging. The new tools do not use any Clarify technology. No more Clarify form customizations are required.&lt;/p&gt;  &lt;p&gt;I'd like to use this opportunity to stress out the importance of having contact and site duplicates eliminated from the business process.&lt;/p&gt;  &lt;h3&gt;Why is this important ?&lt;/h3&gt;  &lt;p&gt;Due to spelling errors made by Call Center agents or automated feeds, there may be a situation when one contact or site is represented more than once in the database. For example, three contact records: &amp;quot;Mary Smith&amp;quot;, &amp;quot;Mary J. Smith&amp;quot; and &amp;quot;Mary Joan Smith&amp;quot; represent the same individual customer &amp;quot;Mary Smith&amp;quot;. This may lead to problems with proper identification of the contact later, resulting possibly with service being provided to a wrong customer. &lt;/p&gt;  &lt;p&gt;It is highly desired to eliminate these duplicate records as soon as they appear.&lt;/p&gt;  &lt;h3&gt;How to deal with this problem ?&lt;/h3&gt;  &lt;p&gt;The superfluous records must be identified and made obsolete. All the objects associated with these duplicates (i.e. for contacts they include: alerts, commit logs, phone logs, contract-site roles, demand headers, cases, and contracts) must be reassigned to the record being kept. For this very reason, it is not recommended to do it manually! The Dovetail Agent Site/Contact Merge tools are the best choice to have it done safely and effectively. After the merge, duplicate records are no longer active and the remaining 'master' record now represents the contact providing access to all the associated objects.&lt;/p&gt;  &lt;p&gt;The duplicate record elimination is a two-step process:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;selection of the records to be kept or eliminated, &lt;/li&gt;    &lt;li&gt;actual merging. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Step 1. is a manual action taken by a Dovetail Agent user. For a contact which is represented by more than one record it must be decided which one to keep and designate it as a 'master'. A new 'Mark Contacts for Merge' screen makes it possible. The same screen is&amp;#160; used to identify the duplicates to be eliminated - they must be marked as 'aliases'. Similar 'Mark Sites for Merge' screen is available to perform this step for sites.&lt;/p&gt;  &lt;p&gt;Step 2. is a batch script run which can be triggered manually on demand or scheduled to run periodically. The script reassigns all the objects from 'alias' contacts (or sites) to the 'master' contact (or site), and makes the 'alias' ones obsolete.&lt;/p&gt;  &lt;h3&gt;What is the best way to do it ?&lt;/h3&gt;  &lt;p&gt;It depends on how you become aware of the fact that duplicate contact or site records proliferate in your database.&lt;/p&gt;  &lt;p&gt;For example, a call center agent may realize during a conversation with a customer that more than one contact records can be found for that person. This may be the best opportunity to take immediate action, obtain clarification of customer's details, and mark duplicate contact records as 'aliases'.&lt;/p&gt;  &lt;p&gt;On the other hand, system administrators and business analysts who periodically run database queries and reports may realize that multiple contact records exist for the same customer. They can use 'Mark for Merge' screens to designate 'master' and 'alias' records.&lt;/p&gt;  &lt;p&gt;No matter when the designation process takes place and by whom, it is later required to run the batch merge script to do actual merging. It is important to remember that until this script is executed in 'merge' mode, duplicate records remain visible and accessible to the users - just marking them as 'aliases' does not yet prevent the system from using them. The frequency of running the merge script depends on how quickly new duplicates appear, but the script may run 'on empty' without any harm to the database - if no records are marked for elimination, none will be affected. Therefore it is safe to run it regularly, unattended.&lt;/p&gt;  &lt;p&gt;One more thing: a record marked as 'master' or 'alias' can be 'unmarked'. This is an 'undo' capability for phase one of the merge process. For as long as the merge script has not been run, 'master'/'alias' designations of contacts and sites can be modified. Once the merge script has been executed, there is no going back - the duplicates are eliminated.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11563" width="1" height="1"&gt;</description></item><item><title>Parent and Child Cases In Dovetail Agent</title><link>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/archive/2008/08/20/parent-and-child-cases-in-dovetail-agent.aspx</link><pubDate>Wed, 20 Aug 2008 21:04:47 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11431</guid><dc:creator>Marek</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/comments/11431.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/commentrss.aspx?PostID=11431</wfw:commentRss><description>&lt;p&gt;The 4.0 Release of Dovetail Agent brings support for parent-child relationship among support cases to the users.&lt;/p&gt;  &lt;p&gt;Having a functionality available to designate one support case as parent of other cases may play important role in the way your customer support responds to a situation when a large number of cases report the same problem, but in many different ways.&lt;/p&gt;  &lt;p&gt;Let's consider an example of a communication company with a range of services usually bundled to include: Internet access, VOIP, and cable TV. When a local hub goes down, customers start reporting problems with symptoms like: 'my phone line is dead', 'can't watch the news', 'my e-mail is not working', etc. These are some examples of case titles, which at first may not suggest that all these cases have much in common. Once a root cause if found, all these cases may be identified as 'child' cases of just one case which either was reported first, or explains the situation best.&lt;/p&gt;  &lt;p&gt;Having a number of cases linked as child ones to a parent case has many advantages:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;all the cases related to specific problem are now easy to find, &lt;/li&gt;    &lt;li&gt;they can be managed together, for example closed in response to the parent case being closed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Parent-child management for support cases has been known to ClarifyCRM users for a long time, Dovetail Agent now offers the same functionality but in a slightly different manner.&lt;/p&gt;  &lt;p&gt;Our implementation follows the same general rules as ClarifyCRM:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A parent case can have many child cases and cannot have a parent case. &lt;/li&gt;    &lt;li&gt;A child case can have only one parent case and cannot have child cases. &lt;/li&gt;    &lt;li&gt;A case cannot be its own parent. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This is where we are different:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The &lt;strong&gt;Parent Case&lt;/strong&gt; check-box on the Case screen is not available. &lt;/li&gt;    &lt;li&gt;The &lt;strong&gt;Parent Case&lt;/strong&gt; and &lt;strong&gt;Child Cases&lt;/strong&gt; tabs are combined into one tab. &lt;/li&gt;    &lt;li&gt;Attaching a child case to a new parent case is instantaneous upon clicking the &lt;strong&gt;Attach&lt;/strong&gt; button. You do not need to click &lt;strong&gt;Save&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;The Parent-Child relationship can be altered regardless of case ownership. &lt;/li&gt;    &lt;li&gt;The Parent-Child relationship can be altered regardless of case status. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Parent Case&lt;/strong&gt; tab is not available on the New Case screen. The &lt;strong&gt;Parent/Child&lt;/strong&gt; tab becomes available once the new case has been created. &lt;/li&gt;    &lt;li&gt;A new screen to search for a parent case has been added. &lt;/li&gt;    &lt;li&gt;A new function to search for and attach multiple child cases to a parent case has been added. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Let me explain these differences in more detail:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#1: Parent Case check-box on the Case screen not available&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;You no longer designate a case to be a parent one by checking the Parent Case box on the Case screen in Dovetail Agent before making another case a child of this one. Although the table_case.is_supercase field is still there and we maintain it for compatibility with ClarifyCRM, it is set to 1 at the time a case becomes an actual parent. It gets reset to 0 when the last child case is detached.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#2: Only one tab with caption of Parent/Child, Parent Case, or Child Cases&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Because a case can be either a parent or a child at the same time and never both, there is only one tab in Dovetail Agent dedicated to this subject and it changes its contents and caption depending on the situation. If a case is not a parent and not a child, this tab is used to explain what parent-child relationship for support cases is about and provide links as starting points to make a case a parent or a child.&lt;/p&gt;  &lt;p&gt;Once a case becomes a parent or a child of another case, this tab changes its caption accordingly and shows the parent or a list of child cases for the current case.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#3: Immediate bonding of child case to its new parent&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;If you are on Parent Case tab and you have chosen a new parent case for the current one, there is an 'Attach' button to be used to associate these two cases. Selecting a new parent case does not make the case screen 'dirty'. Therefore, clicking on 'Save' instead of 'Attach' will not have any effect on parent-child relationship for this case. On the other hand, if you made some other changes to the current case, i.e. you changed its title, clicking 'Attach' button will only change parent-child relationship for this case but will not save the case itself, you must also follow up by clicking 'Save'.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#4: Power to the administrator&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;In fact, you don't have to even be member of any administrative privilege class to be able to manipulate parent-child relationships for cases you don't own. All you need is to have the Parent-Child Cases privilege. This is intended to allow bundling of cases by anybody who knows they belong together without yanking from and assigning back to the current owner.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#5: Old cases count too&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;A case may be made a parent or a child of another case even if it is now closed. This responds to a situation when some of the cases related to the root cause have been already resolved before you knew what the root cause was. Later, when you find out that they refer to this cause you may find them and assign to the right parent case without a need to reopen.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#6: Create a case first, make it a parent or child of another case later&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;This is a side effect of not having the Parent Case box on the Case screen available in Dovetail Agent. So you have to create a case, save it, and only then the Parent/Child tab becomes available.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#7: Finding new parent case is easy&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;When you are trying to locate a parent case for the current one, you have a 'Find' button available in 'New Parent Case' section of the 'Parent Case' tab. It takes you to 'Select Parent Case For Case: id_number' screen where you have access to a set of convenient filtering and sorting features, no need to define and store any 'filters'. Your search results are not limited to only those cases which are not closed.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;#8: Attaching many cases at once to a parent is now possible&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;This function is not available in ClarifyCRM.&lt;/p&gt;  &lt;p&gt;Imagine a situation when you have a large number of cases identified as being related to the same root cause. Now it's time to pick one of them and make it a parent of all the other ones. Some of them may have been already closed. How to do it quickly ? All you need to do is pick one of these cases, go to 'Parent/Child' tab, and follow the 'attach child case(s)' link which takes you to 'Select New Child Case(s) For 'Parent Case: id_number' screen. Here you have access to familiar search/sort features which may allow you to locate the cases you want to attach to the chosen parent. Once the grid is filled, you may attach the cases selectively or use 'Select All' button to mark them all. One important thing to mention is that if a case being attached to a new parent had a parent case before, it will be 'moved' from the old parent to the new one.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Please refer to Dovetail Agent documentation, Parent-Child Cases chapter, for more information about how to use this new functionality. It contains the screen shots and description of typical scenarios.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There is also an article by &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/default.aspx" target="_blank"&gt;Gary Sherman&lt;/a&gt; about how to &lt;a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2007/10/26/cctvtmmain-a-useful-but-broken-and-poorly-named-utility-for-closing-child-cases.aspx" target="_blank"&gt;close all child cases&lt;/a&gt; when their parent case is closed.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11431" width="1" height="1"&gt;</description></item><item><title>Unicode Database Conversion And Usage</title><link>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/archive/2008/08/19/unicode-database-conversion-and-usage.aspx</link><pubDate>Tue, 19 Aug 2008 14:47:45 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11428</guid><dc:creator>Marek</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/comments/11428.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/mpawelczyk/commentrss.aspx?PostID=11428</wfw:commentRss><description>&lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;Long-time ClarifyCRM users may find themselves in a situation driven by their business international expansion which calls for ability to handle client data in languages other than English and character set other than ASCII. If the database was not originally planed to store non-ASCII data, it needs to be 'converted' to be able to use Unicode.&lt;/p&gt;  &lt;p&gt;The conversion may involve entire database, or only selected columns, depending on the needs.&lt;/p&gt;  &lt;p&gt;Once the decision is made to store Unicode characters in existing non-Unicode Clarify database, there are several conversion scenarios to consider, depending on: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;database system: MS SQL or Oracle &lt;/li&gt;    &lt;li&gt;whether all the information stored must be in Unicode or only selected data items. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.dovetailsoftware.com/" target="_blank"&gt;Dovetail Software, Inc.&lt;/a&gt; researched four scenarios how to make a database which was not originally intended to store Unicode data capable of just that, and allow manipulation by both Clarify Classic Client and Dovetail Software Agent.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Terms&lt;/h3&gt;  &lt;p&gt;&lt;b&gt;Database Conversion&lt;/b&gt; means the process of modifying a database such that Unicode characters can be properly handled by Clarify and Dovetail applications that use that database for &lt;b&gt;all&lt;/b&gt; string columns. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Partial Database Conversion&lt;/b&gt; means the process of modifying a database such that Unicode characters can be properly handled by Clarify and Dovetail applications that use that database for &lt;b&gt;selected&lt;/b&gt; string columns. &lt;/p&gt;  &lt;p&gt;Clarify documentation describes only entire database conversion process and does not mention any possibility of partial conversion or its adverse impact. Because entire database conversion is going to result in significant size increase of the database, partial conversion scenarios may be of interest to some users. &lt;/p&gt;  &lt;p&gt;Dovetail Software applications are fully capable of handling Unicode databases, however, Dovetail Software doesn't currently offer any product that performs the process of converting a database to Unicode.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Summary Of Results&lt;/h3&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;ClarifyCRM v. 11.1 or higher&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;Dovetail Software&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;supports Unicode data before database conversion&lt;/td&gt;        &lt;td&gt;no&lt;/td&gt;        &lt;td&gt;         &lt;p&gt;MS SQL - no&lt;/p&gt;          &lt;p&gt;Oracle - yes (*) &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;supports Unicode data after entire database conversion&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;supports Unicode data after partial database conversion&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;ability to store/display Unicode via GUI&lt;/td&gt;        &lt;td&gt;via multiline textbox fields only (**)&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;relies on Clarify Unicode flag&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;        &lt;td&gt;yes&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;(*) Need to be aware of issues with multibyte characters in regards to defined column sizes. As long as the data will fit in the column, all is well, see Oracle Database Concepts, explanation of VARCHAR2 datatype dependencies. &lt;/p&gt;  &lt;p&gt;(**) During our testing, Unicode data only seemed to work properly if the UI control was a multiline textbox. Unicode data in simple textboxes did not work properly. Further research on this issue is suggested.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Oracle Database Concepts&lt;/h3&gt;  &lt;p&gt;Oracle databases support Unicode by default. Therefore, in this article we understand 'Oracle non-Unicode database' in Clarify terms, not Oracle terms. &lt;/p&gt;  &lt;p&gt;Oracle supports a reliable Unicode datatype through &lt;b&gt;NCHAR&lt;/b&gt;, &lt;b&gt;NVARCHAR2&lt;/b&gt;, and &lt;b&gt;NCLOB&lt;/b&gt;. The character sets used by NCHAR/NVARCHAR2 can be either UTF8 or AL16UTF16, depending on the setting of the national character set when the database is created. These datatypes allow character data in Unicode to be stored in a database that may or may not use Unicode as database character set. The NCHAR datatype stores fixed-length character strings that correspond to the national character set. The NVARCHAR2 datatype stores variable length character strings. When you create a table with an NCHAR or NVARCHAR2 column, the maximum size specified is always in character length semantics which is the default and only length semantics for NCHAR or NVARCHAR2. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;VARCHAR2&lt;/b&gt; and &lt;b&gt;VARCHAR&lt;/b&gt; Datatypes: the VARCHAR2 datatype stores variable-length character strings. When you create a table with a VARCHAR2 column, you specify a maximum string length (in bytes or characters) between 1 and 4000 bytes for the VARCHAR2 column. For each row, Oracle stores each value in the column as a variable-length field unless a value exceeds the column&amp;#8217;s maximum length, in which case Oracle returns an error. Using VARCHAR2 and VARCHAR saves on space used by the table. Columns of both types can store Unicode characters, you need to be careful when specifying the size if you use byte length semantics to make sure there is enough room for expected data. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;CLOB&lt;/b&gt; and &lt;b&gt;NCLOB&lt;/b&gt; datatypes store single-byte and multibyte character strings of up to (4 gigabytes - 1) * (the value obtained from DBMS_LOB.GETCHUNKSIZE). Columns of both types can store Unicode characters. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;LONG&lt;/b&gt; datatype stores variable-length character strings containing up to two gigabytes, but with many restrictions. This datatype is provided only for backward compatibility with existing applications. In general, new applications should use CLOB and NCLOB datatypes to store large amounts of character data, and BLOB and BFILE to store large amounts of binary data. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;As a summary&lt;/b&gt;: CHAR, VARCHAR2, CLOB, and LONG columns can also store Unicode text. If the VARCHAR2 column is defined in character length semantics then it can store Unicode text up to the length specified. If the VARCHAR2 column is defined in byte length semantics then the length of the Unicode text it can handle (in Unicode characters) varies. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Database Character Set&lt;/b&gt;: An Oracle database has a database character set defined either at the installation time or as UTF-8 by default. This database character set can be changed after the database has been created. In most cases, a full export/import is needed to properly convert all data to the new character set. However, if, and only if, the new character set is a strict superset of all of the schema data, then it is possible to use the CSALTER script to expedite the change in the database character set. This article does not elaborate on the use of CSALTER script, refer to Oracle documentation for details. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Character Set Conversion Between Clients and the Server&lt;/b&gt;: If the database character set is different from the character set on the client operating system, then the Oracle database can convert the operating system character set to the database character set. Character set conversion increases the overhead and can sometimes cause data loss. Any characters that are not available in target character set are converted to a replacement character. The replacement character is often specified as a question mark or as a linguistically related character. The best way to prevent character conversion problems is to set a character set on Client system the same as the database character set. You set up the character set on Client MS Windows system by updating HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1\NLS_LANG registry key. For example, AMERICAN_AMERICA.AL32UTF8 value defines AL32UTF8 as Client system character set. &lt;/p&gt;  &lt;p&gt;The best way to minimize problems with future conversions of a database to Unicode is to make it the most Unicode-ready by setting these values at the database creation time: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;NLS_CHARACTERSET as AL32UTF8 &lt;/li&gt;    &lt;li&gt;NLS_NCHAR_CHARACTERSET as AL16UTF16 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These are the most recent versions of Unicode character set and should also be used on Client systems accessing the database. Oracle Database 10g Release 2 supports the Unicode Standard, Version 4.0. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; All Oracle conversion scenarios described in this article have been performed on Oracle Database 10g Express Edition Release 10.2.0.1.0 database, ClarifyCRM e|FrontOffice 12.5, Schema Revision 60. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a name="MS_SQL_Database_Concepts"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;MS SQL Database Concepts&lt;/h3&gt;  &lt;p&gt;In MS SQL Server, only &lt;b&gt;NCHAR&lt;/b&gt;, &lt;b&gt;NVARCHAR&lt;/b&gt;, and &lt;b&gt;NTEXT&lt;/b&gt; data types support Unicode data. Use of NCHAR, NVARCHAR, and NTEXT is the same as CHAR, VARCHAR, and TEXT, respectively, except that: &lt;/p&gt; - Unicode supports a wider range of characters.&lt;br&gt;- More space is needed to store Unicode characters.&lt;br&gt;- The maximum size of NCHAR columns is 4,000 characters, not 8,000 characters like CHAR and VARCHAR.&lt;br&gt;- The maximum size for NVARCHAR columns, using the max specifier, is 2^31-1 bytes.&lt;br&gt;- NTEXT columns store variable-length Unicode data with a maximum length of (2^30&amp;#8211;2)/2 (536,870,911) characters. Storage size, in bytes, is two times the number of characters entered. &lt;b&gt;NTEXT is no longer supported in string functions&lt;/b&gt;.&lt;br&gt;- All Unicode data uses the character set defined by the Unicode standard. Unicode collations used for Unicode columns are based on attributes such as case sensitivity, accent sensitivity, Kana sensitivity, width sensitivity, and binary.   &lt;p&gt;SQL Server 2005 supports the Unicode Standard, Version 3.2. &lt;/p&gt;  &lt;p&gt;Unicode data types store each character with two bytes instead of one byte. SQL Server column limit is 8000 bytes for both Non-Unicode and Unicode column. The maximum size of a Unicode column is 4000 characters. When migrating to Unicode, all column data beyond 4000 characters will be truncated. Column data should be scanned to prevent data loss. If a Unicode column needs to hold more than 4000 characters, the column should be converted to NVARCHAR(max). Using NVARCHAR(max) also prevents problems related to SQL Server page overflow - the server will automatically allow page overflow in case of a record length greater than 8060 bytes, serious performance factor. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; All MS SQL conversion scenarios described in this article have been performed on MS SQL Server 2005 database, ClarifyCRM e|FrontOffice 12.5, Schema Revision 60.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;ClarifyCRM Concepts&lt;/h3&gt;  &lt;h4&gt;Database Flags&lt;/h4&gt;  &lt;p&gt;A column named 'flags' of type INT (on MS SQL Server) or NUMBER (on Oracle) in ADP_DB_HEADER table:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td align="center"&gt;&lt;strong&gt;bit number from right to left&lt;/strong&gt;&lt;/td&gt;        &lt;td align="center"&gt;&lt;strong&gt;hexadecimal mask&lt;/strong&gt;&lt;/td&gt;        &lt;td align="center"&gt;&lt;strong&gt;decimal mask&lt;/strong&gt;&lt;/td&gt;        &lt;td align="center"&gt;&lt;strong&gt;meaning&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;1&lt;/td&gt;        &lt;td&gt;0x0001&lt;/td&gt;        &lt;td&gt;1&lt;/td&gt;        &lt;td&gt;case insensitive ('searchable' columns added for certain columns with names starting with S_ )&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;2&lt;/td&gt;        &lt;td&gt;0x0002&lt;/td&gt;        &lt;td&gt;2&lt;/td&gt;        &lt;td&gt;password encrypted&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;3&lt;/td&gt;        &lt;td&gt;0x0004&lt;/td&gt;        &lt;td&gt;4&lt;/td&gt;        &lt;td&gt;DWE enabled&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;4&lt;/td&gt;        &lt;td&gt;0x0008&lt;/td&gt;        &lt;td&gt;8&lt;/td&gt;        &lt;td&gt;secure query enabled&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;5&lt;/td&gt;        &lt;td&gt;0x0010&lt;/td&gt;        &lt;td&gt;16&lt;/td&gt;        &lt;td&gt;reserved&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;6&lt;/td&gt;        &lt;td&gt;0x0020&lt;/td&gt;        &lt;td&gt;32&lt;/td&gt;        &lt;td&gt;Traveler enabled&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;7&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;0x0040&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;64&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Unicode database&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;h4&gt;Unicode Flag&lt;/h4&gt;  &lt;p&gt;The 7th bit from right in ADP_DB_HEADER.FLAGS column. If set to 1 it indicates that this database is Unicode-enabled in ClarifyCRM terms. Both ClarifyCRM and Dovetail Software products rely on this flag when handling Unicode data. &lt;/p&gt;  &lt;p&gt;The Unicode Flag is the only bit in ADP_DB_HEADER.FLAGS of concern for the purpose of this article.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Entire Database Conversion To Unicode&lt;/h3&gt;  &lt;h4&gt;MS SQL Database&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;The goal&lt;/b&gt;: convert entire MS SQL non-Unicode database to a Unicode-enabled one and allow both Clarify Classic Client and Dovetail Agent to store/retrieve Unicode text. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Steps to perform:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use Clarify dataex utility to export database schema: &lt;/li&gt; &lt;/ul&gt; dataex -gen_sc dbname.sch   &lt;ul&gt;   &lt;li&gt;Use Clarify ddcomp utility to upgrade and convert the database (note that there will be no actual upgrade unless the schema file changes): &lt;/li&gt; &lt;/ul&gt; ddcomp dbname servername userid password dbname.sch -unicode -upgrade -sqllog&lt;br&gt;the run should finish with the following message: &amp;quot;*** Schema Upgrade SUCCEEDED! ***&amp;quot;   &lt;ul&gt;   &lt;li&gt;Verify successful conversion to Unicode database: &lt;/li&gt; &lt;/ul&gt; Run SQL statement:&lt;br&gt;SELECT flags FROM adp_db_header&lt;br&gt;Expected result:&lt;br&gt;The Unicode Flag is set to 1&lt;br&gt;Examine table column types: former char, varchar, and text columns should now have types of nchar, nvarchar, and ntext.   &lt;ul&gt;   &lt;li&gt;Prepare Clarify Classic Client: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Run SQL statement: select * from table_locale &lt;/li&gt;    &lt;li&gt;Find the row corresponding to the target locale. For Japanese text look for iso_cntry = 'JP', note the value of win32_lcid column (should be equal to 1041). &lt;/li&gt;    &lt;li&gt;Delete Clarify Classic Client cache files. &lt;/li&gt;    &lt;li&gt;Update Clarify Classic Client command line parameters: add -lcid 1041 (1041 should be the value of table_locale.win32_lcid column for Japanese) &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Execute Verification Test for both Clarify Classic Client and Dovetail Agent. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Oracle Database&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;The goal&lt;/b&gt;: convert entire Oracle non-Unicode database to a Unicode-enabled one and allow both Clarify Classic Client and Dovetail Agent to store/retrieve Unicode text. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Initial verification:&lt;/b&gt;&lt;/p&gt; Run SQL statement:&lt;br&gt;SELECT * from NLS_DATABASE_PARAMETERS;&lt;br&gt;Expected result:&lt;br&gt;NLS_LANGUAGE = AMERICAN&lt;br&gt;NLS_TERRITORY = AMERICA&lt;br&gt;NLS_CHARACTERSET and NLS_NCHAR_CHARACTERSET values are not set.&lt;br&gt;Run SQL statement:&lt;br&gt;SELECT flags FROM adp_db_header&lt;br&gt;Expected result:&lt;br&gt;The Unicode Flag is set to 0   &lt;p&gt;&lt;b&gt;Steps to perform:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use Clarify dataex utility to export database schema: &lt;/li&gt; &lt;/ul&gt; dataex -gen_sc dbname.sch   &lt;ul&gt;   &lt;li&gt;Use Clarify ddcomp utility to upgrade and convert the database (note that there will be no actual upgrade unless the schema file changes): &lt;/li&gt; &lt;/ul&gt; ddcomp dbname servername userid password dbname.sch -unicode -upgrade -allow_drops -sqllog&lt;br&gt; the run should finish with the following message: &amp;quot;*** Schema Upgrade SUCCEEDED! ***&amp;quot;   &lt;ul&gt;   &lt;li&gt;Verify successful conversion to Unicode database: &lt;/li&gt; &lt;/ul&gt; Run SQL statement:&lt;br&gt;SELECT flags FROM adp_db_header&lt;br&gt;Expected result:&lt;br&gt;The Unicode Flag is set to 1&lt;br&gt;Run SQL statement:&lt;br&gt;SELECT * from NLS_DATABASE_PARAMETERS;&lt;br&gt;Expected result:&lt;br&gt;NLS_LANGUAGE = AMERICAN&lt;br&gt;NLS_TERRITORY = AMERICA&lt;br&gt;NLS_CHARACTERSET = AL32UTF8&lt;br&gt;NLS_NCHAR_CHARACTERSET = AL16UTF1&lt;br&gt;Examine table column types: VARCHAR2 columns should now have their sizes increased threefold, for example table_act_entry.addnl_info column size increases from 255 to 765.   &lt;ul&gt;   &lt;li&gt;Change NLS_LANG for Client Windows: &lt;/li&gt; &lt;/ul&gt; Update Windows registry key:&lt;br&gt;HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1&lt;br&gt; Change NLS_LANG entry to AMERICAN_AMERICA.AL32UTF8   &lt;ul&gt;   &lt;li&gt;Prepare Clarify Classic Client: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Run SQL statement: select * from table_locale &lt;/li&gt;    &lt;li&gt;Find the row corresponding to the target locale. For Japanese text look for iso_cntry = 'JP', note the value of win32_lcid column (should be equal to 1041). &lt;/li&gt;    &lt;li&gt;Delete Clarify Classic Client cache files. &lt;/li&gt;    &lt;li&gt;Update Clarify Classic Client command line parameters: add -lcid 1041 (1041 should be the value of table_locale.win32_lcid column for Japanese) &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Execute Verification Test for both Clarify Classic Client and Dovetail Agent. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;What Happens During Conversion Of Entire Database To Unicode&lt;/h4&gt;  &lt;p&gt;To convert entire database to Unicode, Clarify tool &lt;i&gt;ddcomp&lt;/i&gt; does the following: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;for every user table (with name starting with &lt;i&gt;table_&lt;/i&gt;): &lt;/li&gt; &lt;/ul&gt; - creates a temporary table with text columns enlarged (i.e. VARCHAR2 for Oracle) or text columns types changed (i.e. VARCHAR to NVARCHAR for MS SQL, the declared length remains unchanged),&lt;br&gt;- grants access privileges on the newly created table,&lt;br&gt;- copies the data from original table to the temporary one,&lt;br&gt;- drops the original table,&lt;br&gt;- renames the temporary table to original name,&lt;br&gt;- recreates all indexes defined for the table,&lt;br&gt;- drops all the views referring to the table,&lt;br&gt;- creates all the views referring to the table,&lt;br&gt;- drops all the csp_get_&lt;i&gt;name&lt;/i&gt; stored procedures referring to the table or a view,&lt;br&gt;- creates all the csp_get_&lt;i&gt;name&lt;/i&gt; stored procedures referring to the table or a view   &lt;ul&gt;   &lt;li&gt;for adp tables &lt;/li&gt; &lt;/ul&gt; - updates adp_db_header with new timestamp (last_modify, clarify_schema_date, and cust_schema_date fields),&lt;br&gt;- updates adp_db_header: the Unicode Flag is set to 1,&lt;br&gt;- recreates adp_sch_index entry for every index,&lt;br&gt;- recreates adp_tbl_name_map entry for every table,&lt;br&gt;- recreates adp_sch_info entry for every table column (ARRAY_SIZE value remains unchanged),&lt;br&gt;- recreates adp_sch_rel_info entry for every table relation,&lt;br&gt;- adds new entry to adp_db_comments table with comment = 'Upgraded database to Clarify schema revision 60, customer revision '   &lt;ul&gt;   &lt;li&gt;for internal DBMS tables (Oracle only) &lt;/li&gt; &lt;/ul&gt; sets NLS_DATABASE_PARAMETERS.NLS_CHARACTERSET and NLS_DATABASE_PARAMETERS.NLS_NCHAR_CHARACTERSET fields.  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Partial Database Conversion To Unicode&lt;/h3&gt;  &lt;p&gt;Clarify does not support partial database conversion process through its products. Such possibility is not even mentioned anywhere in Clarify literature. &lt;/p&gt;  &lt;p&gt;Dovetail Software has researched Partial Unicode Database Conversion scenarios and executed them successfully in test environment. The key to success lies in proper determination of all the data elements that need to be Unicode-enabled. For example, if the goal is to have all the notes Unicode-enabled the user must determine the list of all table columns which must be converted. &lt;/p&gt;  &lt;p&gt;Partial conversion scenarios described here are based on the following assumptions: &lt;/p&gt; - tables are not recreated,&lt;br&gt;- table columns types are redefined,&lt;br&gt;- indexes are not recreated,&lt;br&gt;- views are not recreated,&lt;br&gt;- stored procedures are not recreated,&lt;br&gt;- adp tables are not recreated,&lt;br&gt;- adp_db_header.flags field is updated with Unicode Flag set to 1,&lt;br&gt;- no Clarify schema changes are needed, the values of all CMN_TYPE, DB_TYPE, and ARRAY_SIZE columns for all adp_sch_info rows remain unchanged,&lt;br&gt;- no export/import of entire database or even affected tables is required,&lt;br&gt;- Oracle CSALTER script is not used,&lt;br&gt;- no Clarify tools (i.e. ddcomp) are used,&lt;br&gt;- no verification has been made whether the database after partial conversion remains compatible with other ClarifyCRM components, like: Rule Manager, DDEditor, ddcomp, dataex.   &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h4&gt;MS SQL Database&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;The goal&lt;/b&gt;: convert selected columns in MS SQL non-Unicode database and allow both Clarify Classic Client and Dovetail Agent to store/retrieve Unicode text in these columns. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Initial verification:&lt;/b&gt;&lt;/p&gt; Run SQL statement:&lt;br&gt;SELECT flags FROM adp_db_header&lt;br&gt;Expected result:&lt;br&gt;The Unicode Flag is set to 0   &lt;p&gt;&lt;b&gt;Steps to perform:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Change column types: &lt;/li&gt; &lt;/ul&gt; For each columns being converted execute SQL statement:&lt;br&gt;ALTER TABLE &lt;i&gt;table_name&lt;/i&gt; ALTER COLUMN &lt;i&gt;column_name&lt;/i&gt; &lt;i&gt;new_type&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;br&gt;where &lt;i&gt;new_type&lt;/i&gt; = NVARCHAR(max) when converting from TEXT&lt;br&gt;NVARCHAR(&lt;i&gt;n&lt;/i&gt;) when converting from VARCHAR(&lt;i&gt;n&lt;/i&gt;)&lt;br&gt;NCHAR(&lt;i&gt;n&lt;/i&gt;) when converting from CHAR(&lt;i&gt;n&lt;/i&gt;)&lt;br&gt;where &lt;i&gt;n&lt;/i&gt; = original column width&lt;br&gt;For each column being converted with original type of TEXT also execute SQL statement:&lt;br&gt;ALTER TABLE &lt;i&gt;table_name&lt;/i&gt; ALTER COLUMN &lt;i&gt;column_name&lt;/i&gt; NTEXT&lt;br&gt;(a column would not directly convert from TEXT to NTEXT, must go through intermediate state of NVARCHAR(max))   &lt;ul&gt;   &lt;li&gt;Set Unicode Flag &lt;/li&gt; &lt;/ul&gt; Run SQL statement:&lt;br&gt;UPDATE adp_db_header SET flags = (SELECT flags + 64 FROM adp_db_header)   &lt;ul&gt;   &lt;li&gt;Convert table_source.code_chunk column to NVARCHAR(max) &lt;/li&gt; &lt;/ul&gt; Run SQL statement:&lt;br&gt;ALTER TABLE table_source ALTER COLUMN code_chunk NVARCHAR(max)&lt;br&gt;Without this conversion Clarify Client would not start.   &lt;ul&gt;   &lt;li&gt;Prepare Clarify Classic Client: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Run SQL statement: select * from table_locale &lt;/li&gt;    &lt;li&gt;Find the row corresponding to the target locale. For Japanese text look for iso_cntry = 'JP', note the value of win32_lcid column (should be equal to 1041). &lt;/li&gt;    &lt;li&gt;Delete Clarify Classic Client cache files. &lt;/li&gt;    &lt;li&gt;Update Clarify Classic Client command line parameters: add -lcid 1041 (1041 should be the value of table_locale.win32_lcid column for Japanese) &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Execute Verification Test for both Clarify Classic Client and Dovetail Agent. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a name="Oracle_Database_2"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Oracle Database&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;The goal&lt;/b&gt;: convert selected columns in Oracle non-Unicode database and allow both Clarify Classic Client and Dovetail Agent to store/retrieve Unicode text in these columns. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Initial verification:&lt;/b&gt;&lt;/p&gt; Run SQL statement:&lt;br&gt;SELECT * from NLS_DATABASE_PARAMETERS;&lt;br&gt;Expected result:&lt;br&gt;NLS_LANGUAGE = AMERICAN&lt;br&gt;NLS_TERRITORY = AMERICA&lt;br&gt;NLS_CHARACTERSET and NLS_NCHAR_CHARACTERSET values are not set.&lt;br&gt;Run SQL statement:&lt;br&gt;SELECT flags FROM adp_db_header&lt;br&gt;Expected result:&lt;br&gt;The Unicode Flag is set to 0   &lt;p&gt;&lt;b&gt;Steps to perform:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Change column types: &lt;/li&gt; &lt;/ul&gt; For each columns being converted execute SQL statement:&lt;br&gt;ALTER TABLE &lt;i&gt;table_name&lt;/i&gt; MODIFY (&lt;i&gt;column_name&lt;/i&gt; VARCHAR2(&lt;i&gt;n&lt;/i&gt;)) where &lt;i&gt;n&lt;/i&gt; = 3 * ARRAY_SIZE   &lt;ul&gt;   &lt;li&gt;Set Unicode Flag &lt;/li&gt; &lt;/ul&gt; Run SQL statement:&lt;br&gt;UPDATE adp_db_header SET flags = (SELECT flags + 64 FROM adp_db_header)   &lt;ul&gt;   &lt;li&gt;Change NLS_LANG for Client Windows: &lt;/li&gt; &lt;/ul&gt; Update Windows registry key:&lt;br&gt;HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1&lt;br&gt;Change NLS_LANG entry to AMERICAN_AMERICA.AL32UTF8   &lt;ul&gt;   &lt;li&gt;Prepare Clarify Classic Client: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Run SQL statement: select * from table_locale &lt;/li&gt;    &lt;li&gt;Find the row corresponding to the target locale. For Japanese text look for iso_cntry = 'JP', note the value of win32_lcid column (should be equal to 1041). &lt;/li&gt;    &lt;li&gt;Delete Clarify Classic Client cache files. &lt;/li&gt;    &lt;li&gt;Update Clarify Classic Client command line parameters: add -lcid 1041 (1041 should be the value of table_locale.win32_lcid column for Japanese) &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Execute Verification Test for both Clarify Classic Client and Dovetail Agent. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Verification Test&lt;/h3&gt;  &lt;p&gt;After each scenario is executed, the following test is performed to verify successful conversion (use Japanese text sample which may be obtained here: &lt;a href="http://www.lorem-ipsum.info/generator3"&gt;http://www.lorem-ipsum.info/generator3&lt;/a&gt; ): &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Start Clarify Classic Client &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Test Clarify application: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Open a screen which accesses the column(s) modified, in edit mode, &lt;/li&gt;    &lt;li&gt;Paste a sample of Japanese text into these fields. It should show Japanese characters. Save the data. &lt;/li&gt;    &lt;li&gt;Open the same screen again. These fields should show the text in Japanese. &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Prepare Dovetail Agent: &lt;/li&gt; &lt;/ul&gt; Unload the Dovetail Agent web page in IIS.   &lt;ul&gt;   &lt;li&gt;Start Dovetail Agent &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Test Dovetail Agent: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Open a screen which accesses the column(s) modified, in edit mode, &lt;/li&gt;    &lt;li&gt;Paste a sample of Japanese text into these fields. It should show Japanese characters. Save the data. &lt;/li&gt;    &lt;li&gt;Open the same screen again. These fields should show the text in Japanese. &lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Test inter-application compatibility: &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Save a sample of Japanese text into the modified fields in Clarify Client. &lt;/li&gt;    &lt;li&gt;Go to Dovetail Agent, access the same information. It should show Japanese characters. &lt;/li&gt;    &lt;li&gt;Save a sample of Japanese text into the modified fields in Dovetail Agent. &lt;/li&gt;    &lt;li&gt;Go to Clarify Client, access the same information. It should show Japanese characters. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;References&lt;/h3&gt;  &lt;p&gt;For more information on ClarifyCRM, MS SQL Server, and Oracle refer to the following documentation: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Clarify Upgrade Guide &lt;/li&gt;    &lt;li&gt;Clarify System Administration Guide &lt;/li&gt;    &lt;li&gt;MS SQL Server Database Engine Guide &lt;/li&gt;    &lt;li&gt;MSDN Articles on MS SQL Server &lt;/li&gt;    &lt;li&gt;Oracle Database Concepts Guide &lt;/li&gt;    &lt;li&gt;Oracle Database Application Developer&amp;#8217;s Guide &lt;/li&gt;    &lt;li&gt;Oracle Globalization Support Guide &lt;/li&gt;    &lt;li&gt;Oracle Unicode Support Guide &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11428" width="1" height="1"&gt;</description></item></channel></rss>