Table Synchronize Error
During the customization of AX 2009, I always get this error prompt out when modifing table, index, EDI or even compile the whole AOT:
Cannot execute a data definition language command on ().The SQL database has issued an error.It told neither what table nor index have error. Finally I found a job which can tell you what table cause the synchronization error.
static void SIT_ForceDbSynchronize(Args _args) { Dictionary dict; int idx, lastIdx, totalTables; TableId tableId; Application application; SysOperationProgress progress; StackBase errorStack; ErrorTxt errorTxt; ; application = new Application(); dict = new Dictionary(); totalTables = dict.tableCnt(); progress = new SysOperationProgress(); progress.setTotal(totalTables); progress.setCaption("@SYS90206"); errorStack = new StackBase(Types::String); lastIdx = 0; try { for (idx = lastIdx+1; idx <= totalTables; idx++) { tableId = dict.tableCnt2Id(idx); progress.setText(dict.tableName(tableId)); lastIdx = idx; application.dbSynchronize(tableId, false, true, false); progress.incCount(); } } catch (Exception::Error) { errorTxt = strFmt("Error in table '%1' (%2)", tableId, dict.tableName(tableId)); errorStack.push(errorTxt); retry; } setPrefix("@SYS86407"); errorTxt = errorStack.pop(); while (errorTxt) { error(errorTxt); errorTxt = errorStack.pop(); } }
Comments