谁能告诉我这个BPM中有什么错误

时间:2015-09-17 13:41:48

标签: linq bpm epicorerp

此代码将自动生成新的部件号。这是BO GetNewPart的后处理BPM

int iPartnum = 0;
string cPartid = string.Empty;
Erp.Tables.Company Company;
foreach (var ttpart_xRow in ttPart)
{
    var ttpartRow = ttpart_xRow;
    Company = (from Company_Row in Db.Company
               where Company_Row.Company == Session.CompanyID
    select Company_Row).FirstOrDefault();
    iPartnum = (decimal)Company["AutoGenerate_c"] + 1;
    cPartid = System.Convert.ToString(iPartnum);
    ttpartRow.PartNum = cPartid;
    Services.Lib.UpdateTableBuffer._UpdateTableBuffer(Company,"AutoGenerate_c", iPartnum);
}

1 个答案:

答案 0 :(得分:0)

它只是不工作还是有错误信息?

Services.Lib.UpdateTableBuffer._UpdateTableBuffer(Company,"AutoGenerate_c", iPartnum);

我个人从未使用或甚至看过这个Lib项目,所以我无法保证。我会在事务范围内手动更新对象,因为我怀疑GetNewPart曾触及该数据库,因此可能无法创建事务。

using (System.Transactions.TransactionScope txScope = IceDataContext.CreateDefaultTransactionScope())//start the transaction
{
   //Your Logics go here
   Db.Validate();
   txScope.Complete();//commit the transaction
}

作为旁注,我试图将这些类型的东西保留在公司记录之外,因为系统中的几乎所有过程都接触到它,并且我不想要一个进程来锁定它或导致奇怪的竞争条件。我通常喜欢保留一条只为此特定目的而触及的记录,因此我有一个UDCodeType / UDCode用于此类事情。