EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

乐观并发控制

乐观并发控制,如果你从任何的继承(OCC)机制在XAF应用中基础的持久化类(有例外XPLiteObject)。本主题描述XAF应用程序中如何处理数据冲突。

对象级锁定

请考虑以下情形。两个用户访问同一个对象,并在不同的工作站上对其进行编辑。第一个用户对对象的属性进行修改,并将其保存在数据库中。第二个用户也进行了修改,但是在第一个用户已经进行了修改之后尝试保留它们。在这种情况下,第二个用户将收到以下消息。

在WinForms应用程序中:

并发赢

在ASP.NET Web应用程序中:

并发网

在移动应用程序中:

并发移动

刷新对象后(如果需要),第二个用户将能够对更新后的对象进行修改并保留它们。如果第一个用户删除了该对象,则第二个用户将无法进行任何修改,而是会收到以下消息。

并发删除

现场级锁定

在多用户数据感知应用程序中,有时一个用户编辑一条记录而另一位用户编辑同一条记录。只要所做的更改不会影响相同的字段(例如,一个用户修改任务描述,而另一个用户附加文件),则XAF应用程序可以解决这种情况,并合并由不同用户进行的同时更改。要启用字段级锁定,请将静态XpoDefault.TrackPropertiesModifications属性设置为true

  • 在WinForms应用程序项目的Program.cs(vb)文件中:

    static void Main() {
        DevExpress.Xpo.XpoDefault.TrackPropertiesModifications = true;
        // ...
    }
    
  • 在ASP.NET应用程序项目的Global.asax.cs(vb)文件中:

    protected void Session_Start(object sender, EventArgs e) {
        DevExpress.Xpo.XpoDefault.TrackPropertiesModifications = true;
        // ...
    }
    

如果将此属性设置为true,并且用户修改了另一个用户已更改的对象,则会显示一个对话框窗口,提示合并更改。

  • 在WinForms应用程序中:

    并发合并

  • 在ASP.NET Web应用程序中:

    并发合并

当用户修改不同字段的值时,可以合并。如果两个用户都更改相同的字段值,则无法合并,并且用户可以刷新数据或取消保存。

  • 在WinForms应用程序中:

    并发刷新

  • 在ASP.NET Web应用程序中:

    并发刷新

上面显示的对话框由SystemModule模块的ProcessDataLockingInfoController控制器提供。

注意

要查看实际的字段级锁定,请参阅随XAF一起安装的Feature Center演示的“并发修改”部分。默认情况下,Feature Center演示安装在%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ FeatureCenter中。

视图级锁定

除了在数据级的并发控制,则LockControllerSystemWindowsForms模块在视图级别轨道变化(Winforms中的应用程序)。在两个或多个不同的View中修改对象时,它将显示以下消息。

并发锁

转载保留此链接,注明出处