When you are finished renamed the Item number Jobs
When you are finished renamed the Item number, you must record original Item number, related configure and so on!
static void Jimmy_ItemRenamedAfterUpdate(Args _args) { InventTableCompany ITCompany,delITCompany; InventTable IT,ITUpdateOrg; ConfigTable ConfigTable; InventDimCombination Combination; Dialog dlg = new Dialog("updated to comoany Items infomation"); DialogField dlgItem = dlg.addField(types::String,'after rename Items:',"Format such as :Items + ',' + Items + ',' + items"); ListEnumerator le; ItemId ItemConfig; InventTrans InventTrans; int ITCompanys,Combinations,NoConfig; SysDataBaseLog SysDataBaseLog; Container Con; fieldId fieldId; List datalist; ListEnumerator enumerator; ; dlgItem.displayHeight(20); dlgItem.displayLength(50); dlg.doInit(); if(!dlg.run()) return ; le = global::strSplit(dlgItem.value(),',').getEnumerator(); while (le.moveNext()) { ttsbegin; ITUpdateOrg = InventTable::find(le.current(),true); if(ITUpdateOrg) { select firstonly SysDataBaseLog where SysDataBaseLog.table == tablenum(InventTable) && SysDataBaseLog.LogType == DatabaseLogType::RenameKey && SysDataBaseLog.Description like ITUpdateOrg.ItemId + '*'; if(SysDataBaseLog) { datalist = SysDataBaseLog.getDataAslist(); enumerator = datalist.getEnumerator(); while (enumerator.moveNext()) { Con = enumerator.current(); fieldId = conpeek(Con, 1); ITUpdateOrg.OrgItemId = sysdatabaselog.contents2Str(conpeek(Con, 3), fieldId); break; } } if(!ITUpdateOrg.OrgItemId) ITUpdateOrg.OrgItemId = ITUpdateOrg.ItemId; ITUpdateOrg.Update(); } ttscommit; select firstonly forupdate IT where IT.ItemId == le.current(); if(IT) { /* select firstonly InventTrans where InventTrans.ItemId == le.current(); if(InventTrans) throw Error(StrFmt("The ItemId %1 Exists InventTrans,do not rename of Items!",le.current())); */ select firstonly ConfigTable where ConfigTable.ItemId == IT.ItemId; //Have Configuration ItemConfig = ''; if(ConfigTable) { ConfigTable.clear(); while select ConfigTable where ConfigTable.ItemId == IT.ItemId { ItemConfig = IT.ItemId + '_' + ConfigTable.ConfigId; ttsbegin; select firstonly forupdate ITCompany where ITCompany.ItemId == ItemConfig; if(!ITCompany) { ITCompany.initValue(); ITCompany.ItemId = ItemConfig; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.insert(); ITCompanys++; } else { ITCompany.ItemId = ItemConfig; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.update(); } ttscommit; ttsbegin; delete_from delITCompany where delITCompany.ItemId == IT.OrgItemId + '_' + ConfigTable.ConfigId && delITCompany.OrgItemId == '' && delITCompany.NormalItemId == ''; ttscommit; ttsbegin; select firstonly forupdate Combination where Combination.ItemId == ConfigTable.ItemId && Combination.ConfigId == ConfigTable.ConfigId; if(Combination) { Combination.ItemIdCompany = ItemConfig; Combination.update(); Combinations++; } ttscommit; } } else //Have not Configuration { ttsbegin; select firstonly forupdate ITCompany where ITCompany.ItemId == IT.ItemId; if(!ITCompany) { ITCompany.initValue(); ITCompany.ItemId = IT.ItemId; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.insert(); } else { ITCompany.ItemId = IT.ItemId; ITCompany.Name = IT.itemName; ITCompany.OrgItemId = IT.OrgItemId; ITCompany.NormalItemId = IT.ItemId; ITCompany.update(); } ttscommit; ttsbegin; IT.ItemIdCompany = it.ItemId; IT.update(); ttscommit; NoConfig ++; info(IT.ItemId); } } ELSE info("Not exists Item detail " + le.current()); } info(strfmt("NoConfig : %1,Combinations : %2,ITCompanys : %3",NoConfig,Combinations,ITCompanys)); }