点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
早安专家,我正在使用 asp.net 的Web应用程序来创建销售报价 。 通过执行一些测试,我意识到当两个用户想要同时创建一个文档时会出现问题。
如果我开始一项事务并等待其完成以立即开始新事务,则没有问题,两个文档均正确创建; 但是,如果在处理第一个事务的过程中,我并行启动第二个事务,那就是问题出在这里:无限期地加载两个用户的页面并且冻结数据库中的表(我想避免数据损坏或 相似的东西)。
我知道DI API不支持多线程,并且一次只需要完成一个事务,我想问一下您是否知道有什么方法可以使"等待行" 等待(保留)第二笔交易,直到该笔交易正在正确完成。
创建文档的方法如下:
int iret = Cotizacion.Add(); 如果(iret == 0) { docEntry = oCompany.GetNewObjectKey(); 如果(oCompany.InTransaction) oCompany.EndTransaction(BoWfTransOpt.wf_Commit); 如果(oCompany.Connected) oCompany.Disconnect(); System.Runtime.InteropServices.Marshal.ReleaseComObject(Cotizacion); ShowMessage(" Correct!"); con.Close(); } 其他 { int errNum; 字符串errMsj; oCompany.GetLastError(out errNum,out errMsj); 如果(oCompany.InTransaction) oCompany.EndTransaction(BoWfTransOpt.wf_RollBack); 字符串错误="错误:" + errMsj +" |代码:" + errNum.ToString(); ShowMessage(错误,MessageType.Error); }
我先感谢您能给我的任何支持,例子或指导。 最好的问候。
您好路易斯·比利亚雷亚尔,
你是对的。 请注意,物品将在创建交货时被锁定,以保持交货/订单中每个项目的承诺/库存数量。
这将意味着创建具有相同项目的文档,这些文档按顺序而不是并行进行。
因此,我们将要求您对每个文档的不同项目进行测试。
希望有帮助!
亲切的问候,
ANKIT CHAUHAN
SAP Business One支持
您好,Ankit谢谢您的回答,因为该页面的目标是多个用户可以创建退出,所以要求他们可以向某些用户注册文档 文章在同一时间。
是否有一种方法可以通过DI API保持事务直到当前事务结束? 这样,可以防止发生相同的问题。
关于。 -路易斯。
一周热门 更多>