Issue: Invalid column name with a translation sufix

Version 1


    When a column of a Business Object is configured as Localized, and then this configuration is undone, the extended BO related to the primary one does not delete the reference to the translated columns.
    We can consider it as a bug of the product, but there is a workaround that solves the issue. This article will use the "Status_fr" column of the CI business object, but can be useful for any similar error.
    This error only occurs when accessing the application in a language other than English. In this case, the error showed to the user was: "Erreur d'accès aux données : Invalid column name 'Status_fr'.."



    This workaround is a way for cleaning the references to the translation column. The screenshots are related to French, so the field you will see is “Status_fr” of the CI business object, that would be “Status_de” in German, etc.


    Please follow these steps:


    1.     Go to the CI business object, and in the Status field REMOVE the “Localized” check. Then Save the changes (it takes some time).

    2.     If you go to the CI top level tab, once the brief form is loaded you should receive the following error

    3.     Close the CI tab and return to the CI business object, and add a new field

    4.     Select the same type of field than the “Status” one, in this case “Text Unicode(100)”, and name it with the column name in the error, and then save it.

    5.     Once created and saved, delete it from the list.  This step will remove all the references to the translated column that remained after unchecking the “Localized”  option.  Save it

    6.     Check the CI top level tab, it should be working properly

    NOTE: This article was writen for the field "Status_fr" of the CI table, but it is possible to find the table where the field is using the following SQL statement (please modify the FIELD_NAME):

    SELECT AS TableName, AS ColumnName,
    o.type AS ObjectType, AS SchemaName
    FROM syscolumns c
    INNER JOIN sysobjects o
    inner join sysusers u
    ON u.uid= o.uid
    WHERE like '%FIELD_NAME%'