Hi, we are moving an existing ZEN-Application to a new version of Caché (2017.2.2). It is a rather old application and we need to do some modifications due to the thightend security of ZEN in this and prior release (we came from 2013.1). One of the changes required is to alter a table Name of a ZEN-Table on the server-side. Anyway this gives us a problem, since we receive an error ERROR #5001: Client modification of protected property ( tableName) disallowed for security reasons. SOURCELEMENT: %ZEN.Component.tablePane (tpSimilarity) The tableName change is triggered from a js method ClientMethod changeView() [ Language = javascript ]
{
var table zenPage.getComponentById('tpSimilarity');
var selectedView zenPage.getComponentById('SearchType').getProperty('text');</p>

var tSyncMode zenSynchronousMode;
zenSynchronousMode true;
zenPage.SetTableName('tpSimilarity', "MyApp_Maps.dyn" selectedView "View");
zenSynchronousMode tSyncMode;
alert(table.getProperty('tableName'));

// label name: 'View: <conf>'
table.setProperty("label", "View: " selectedView);

zenPage.doRefresh();
}

invoking the ZenMethod SetTableName on the server

Method SetTableName(
pComponent,
pTableName) As %Status [ ZenMethod ]
{
Set %page.%GetComponentById(pComponent).tableName = pTableName
Quit $$$OK
}</p>

When view is to be changed we receive the above mentioned error. Is there something wrong in the way we are trying to set the tableName property of the table on the server? How can a change on the server be done?

kind regards,

sebastian


 

</body></html>