Data Management Project Using X++
Existing Index Changes D365FO
Change existing Index D365FO
As we all have a requirement in the past to perform the
changes in the existing indexes, and as we know the customization is not
allowed in the OOTB elements, so we couldn’t achieve this.
How we can achieve it?
In D365FO, we couldn’t delete or disable the existing index,
but there is one way to achieve this.
We can disable the index on SQL level by using the SQL
script even on prod.
Yes, you are reading correct, we can disable the index
and it will not enable again during package deployment, please only disable
the index not remove the index, otherwise, Microsoft classes will re-create the
index during deployment.
How you can disable the index?
public void disableIndex(str _tableName, str _indexName)
{
str sql;
Connection conn;
SqlStatementExecutePermission
permission;
;
sql= strFmt("ALTER INDEX %1 ON %2
DISABLE;", _ indexName, _tableName);
// sql = ‘delete
from custTable’;
permission = new SqlStatementExecutePermission(sql);
conn = new Connection();
permission = new SqlStatementExecutePermission(sql);
permission.assert();
conn.createStatement().executeUpdate(sql);
// the
permissions needs to be reverted back to original condition.
CodeAccessPermission::revertAssert();
}
Important
Before applying the index, please perform the analysis on your existing data, might possible
you can face the issue.
Support Faryal's Cusine
Virtual Fields Vs Computed Fields
Virtual Field: A virtual field in D365FO is a field that doesn't have a direct representation in the database. It's a field that y...
-
Release Product Using X++ You can use the below code to release the product to any legal entity using X++ or a custom batch job. Sample Co...
-
How To Access Field In A Table Using This Field Id To do this you could use the next construction: vendTable.( filednum( vendTable, VendAc...
-
What is the Difference? Refresh refresh will not reread the record from the database. It basically just refreshes the screen with whateve...