Wednesday, April 22, 2015

Installing CMS 9 on Windows 2008 R2 with Oracle 10g

Recently I have been tasked with installing CMS 9 on Windows 2008 R2 with Oracle 10g.  It has been an adventure.
  1. Install the Oracle Client.  Make sure the oracle client version or, NOT any other version because other versions are not recommended for CMS 9.  When asked what type of installation, select Administrator, which comes with almost all components, including the ones CMS 9 needed: SQL Plus, Oracle Provider for OLE DB, and Oracle Data Provider for .NET.
  2. Configure Oracle client and ensure the Oracle database is reachable via TNSPING.
  3. The existing CMS 9.0 installer is not Windows 2008 R2 compatible.  CMS 9 SP1 is Windows 2008 R2 compatible, but it is not available as a stand alone installer.  Download the CMS 9.0 installation .zip file, download the latest CMS 9 SP1 patch (, unzip both .zip files, merge the two folders.
  4. Move the now merged CMS 9 installation folder to C:\.  Rename the CMS 9 installation folder to something simple with no special characters.  The path to the setup.exe is something like "C:\CMS9\setup.exe".  This is important, else one will encounter oracle connection errors later.
  5. Right click on setup.exe and click on "Run as Administrator" to begin the installation process.
  6. Ensure the CMS installation path is something simple like "C:\RedDot", else there will be oracle connection errors.
  7. Proceed through the installation process, before clicking on "finish", do the following to ensure the post installation database modification process starts after the oracle client, else there will be oracle connection errors.

    Open notepad, write "run once", press "ENTER".

    Clicking "finish" on CMS installation screen.  The installer will attempt to restart the machine, but the unsaved notepad file will halt it.

    Open regedit, navigate to "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce"

    Copy and paste the installer entry value into notepad, save notepad file.

    Restart server.
  8. Open command prompt by "Run as Administrator", copy and paste in the runonce installer entry value saved previously, press "ENTER".
  9. Complete the rest of the CMS installation.

Friday, December 12, 2014

Last Modified Report



  • 7.x
  • 9.x
  • 10.x
  • 11.x

  1. Generate report based user name, content class, and last modified date
  2. Generated report can be saved to a CSV format

  • In SmartTree, Start -> Administer Content Classes, action menu, Last Modified Report
  • In SmartTree, Start -> Administer Content Classes -> [Content Class Folder] -> [Content Class], action menu, Last Modified Report

Thursday, November 13, 2014

Management Server and Content Server Integration Details

  1. A link a document is assigned in a text editor
  2. Going into source code view in the text editor, you should see
  3. [ioID]2D7611CC2E8D412EA25B5BD322333DC4 refers to the GUID of the integration folder
  4. In the project database end, the corresponding entry is created (via RQL by the application)
    THB3 is the folder guid
    THB1 is the mapping key from the text editor entry to the DB table entry
    THB4 is the mapping key information from Management Server to Content Server (NOTE OBJECTID)

Wednesday, September 10, 2014

Windows 2012 and Management Server 11 Installation Note

Even for basic installation, that is without the mobile client, prior to Management Server installation, ensure to go to Windows Server Manager, navigate to Add Roles and Features Wizard > Select Features > Features > .NET Framework 4.5 Features > WCF Services and select HTTP Activation.

This is important. Else one will get an error when creating a text placeholder or saving text to a text placeholder.

The error is a complaint about not about to access /cms/webservice/Elements.svc/

RedDot CMS Date Conversion in MS 11

Since COM and DCOM is going away in Management Server 11, the following RedDot date conversion code using "RDCMSAsp.RDPageData" may not work.

ASP (From RQL Manual)
' From an RQL assign a value to a variable
OldDate = EinObjekt("changedate")

' Convert value by calling the DecodeDate function
' and output in both variants.
response.write "Date from attribute=" & OldDate & " --> Convert date=" & DecodeDate(OldDate)

Function DecodeDate(OldDate)
    Dim objIO As Object                              ' Define object
    Set objIO = CreateObject("RDCMSAsp.RDPageData")  ' Create object
    DecodeDate = objIO.decodedate(OldDate)           ' Convert number into date
End Function

Here are the new code that should work in all versions.

Function ConvertToRedDotDate(DateObject)
    ConvertToRedDotDate = DateDiff("d","12/30/1899", DateObject)
End Function

Function ConvertFromRedDotDate(RedDotDate)
    Dim DateObj, Int_Days
    DateObj = "12/30/1899"
    Int_Days = Int(RedDotDate)
    DateObj = DateAdd("d",RedDotDate,DateObj)
    DateObj = DateAdd("s",(RedDotDate-Int_Days)*86400,DateObj)
    ConvertFromRedDotDate = DateObj
End Function

DateTime DecodeFromOADate(double OADate)  
    return DateTime.FromOADate(OADate);  
double EncodeToOADate(DateTime RegDate)  
    return RegDate.ToOADate();  

function ConvertToRedDotDate(DateObj)
    // day in milliseconds
    var DAY_IN_MILLISECONDS = 1000 * 60 * 60 * 24;
    var BEGINING_DATE_MIllISECONDS = new Date(1899,11,30).getTime();

    var DateObj_Milliseconds = DateObj.getTime();

    return Math.round(Math.abs(DateObj_Milliseconds - BEGINING_DATE_MIllISECONDS)/DAY_IN_MILLISECONDS);

function ConvertFromRedDotDate(ReddotDate)
    var days = Math.floor(ReddotDate);
    var milliseconds = Math.round((ReddotDate-days)*86400000);
    var adjusted_days_in_millseconds = (days-25569) * 86400000;
    var RetDate = new Date();
    RetDate.setTime(adjusted_days_in_millseconds + milliseconds);
    var ajusted_minutes = RetDate.getTimezoneOffset();
    RetDate.setMinutes(RetDate.getMinutes() + ajusted_minutes);
    return RetDate;  

Monday, August 25, 2014

CMS/WSM/MS won't accept a license key

If CMS doesn’t accept a key that is supposed to be working, you might want to update the database settings manually.

  1. Logon to the Database and navigate to Databases -> IoAdministration -> Tables -> dbo.IO_CMP
  2. Right click and choose open table
  3. Make sure that there is the correct server name or the IP address of the CMS server is in the column CMP2. CMP1 is the connection name and you may change this as well. The proper license key should be entered in the column CMP6.

Credit goes to the Anjam for remembering this and David Vogt for writing it down

Tuesday, June 3, 2014

Template won't save, especially CSS

The template editor is written in ASP. "Maximum Requesting Entity Body Limit" is the mechanism used to transit and save the code in the template editor.  By default, ASP setting in IIS is configured to accept a maximum of 200KB.

Solution: increase your "Maximum Requesting Entity Body Limit" setting under ASP under your CMS web application.