0 Comments

When using the out-of-the-box Pivotal PCM module, there are missing LD Strings for the error messages related with non-existing fields/tables.

Missing LD string errorFor example, if you try to use the data access API to get a non-existing field, as shown in the following example, you will get an HRESULT exception. The thing is that this error doesn’t tell us anything and it hides the real error, which is that the field we’re trying to access doesn’t exist.


using(DataTable t = this.DefaultDataAccess.GetDataTable("Contact",new string[] { "NonExistingColumn"}))
{
    // do something
}

In the example above, we are trying to get a non-existing field called NonExistingColumn from the Contact table. The error is non-intuitive and it is hard to debug, since it will not show any debug information in the event viewer and developers think that it is some error related with the platform.

As mentioned before, the problem is due to the lack of some LD Strings in the BM. I have reported this error to Pivotal and we hope to have a PCM version that solves this in the near future. Meanwhile, the solution is to import the missing LD Strings.

My good friend Pablo Oliveira, from Grupo Lanka has created a file with the missing LD Strings:

APPLICATION ERROR CODE,NoType,NoType,Lanka system string,0x0409
APPLICATION ERROR CODE,Choice,Choice,Lanka system string,0x0409
APPLICATION ERROR CODE,ClientTask,ClientTask,Lanka system string,0x0409
APPLICATION ERROR CODE,Command,Command,Lanka system string,0x0409
APPLICATION ERROR CODE,CommandHandler,CommandHandler,Lanka system string,0x0409
APPLICATION ERROR CODE,DataSection,DataSection,Lanka system string,0x0409
APPLICATION ERROR CODE,DataTemplate,DataTemplate,Lanka system string,0x0409
APPLICATION ERROR CODE,Form,Form,Lanka system string,0x0409
APPLICATION ERROR CODE,InContextTableMenuItem,InContextTableMenuItem,Lanka system string,0x0409
APPLICATION ERROR CODE,InboundCommunicationAddress,InboundCommunicationAddress,Lanka system string,0x0409
APPLICATION ERROR CODE,LDGroup,LDGroup,Lanka system string,0x0409
APPLICATION ERROR CODE,LDLanguage,LDLanguage,Lanka system string,0x0409
APPLICATION ERROR CODE,LDString,LDString,Lanka system string,0x0409
APPLICATION ERROR CODE,LetterExpress,LetterExpress,Lanka system string,0x0409
APPLICATION ERROR CODE,List,List,Lanka system string,0x0409
APPLICATION ERROR CODE,Query,Query,Lanka system string,0x0409
APPLICATION ERROR CODE,Report,Report,Lanka system string,0x0409
APPLICATION ERROR CODE,Security,Security,Lanka system string,0x0409
APPLICATION ERROR CODE,Search,Search,Lanka system string,0x0409
APPLICATION ERROR CODE,SearchResultsList,SearchResultsList,Lanka system string,0x0409
APPLICATION ERROR CODE,ServerTask,ServerTask,Lanka system string,0x0409
APPLICATION ERROR CODE,SmartPortalCategory,SmartPortalCategory,Lanka system string,0x0409
APPLICATION ERROR CODE,SmartPortalContentItem,SmartPortalContentItem,Lanka system string,0x0409
APPLICATION ERROR CODE,SmartPortalPlugIn,SmartPortalPlugIn,Lanka system string,0x0409
APPLICATION ERROR CODE,SmartPortalPlugInAttr,SmartPortalPlugInAttr,Lanka system string,0x0409
APPLICATION ERROR CODE,Subject,Subject,Lanka system string,0x0409
APPLICATION ERROR CODE,Table,Table,Lanka system string,0x0409
APPLICATION ERROR CODE,TableField,TableField,Lanka system string,0x0409
APPLICATION ERROR CODE,Task,Task,Lanka system string,0x0409
APPLICATION ERROR CODE,TaskGroup,TaskGroup,Lanka system string,0x0409
APPLICATION ERROR CODE,TaskPad,TaskPad,Lanka system string,0x0409
APPLICATION ERROR CODE,Topic,Topic,Lanka system string,0x0409

You can copy and paste the above text in a file with a .csv extension, and then use the Toolkit to import it in the BM (use the agent “Import System Strings”). Once imported you will get the right error when trying to reference non-existing objects using the data access API.

Correct error for non existing objects