金蝶云星空的网络控制设置

金蝶网控设置主要用户多个用户操作一个业务单据时,对于冲突操作的处理限制。

网控实体

csharp 复制代码
public class NetworkCtrl
    {
        /// <summary>
        /// 网控对象ID
        /// </summary>
        public string NetCtrlId { get; set; }

        /// <summary>
        /// 业务对象ID
        /// </summary>
        public string InterID { get; set; }

        /// <summary>
        /// 业务操作
        /// </summary>
        public string OperationDesc { get; set; }

    }

手动添加网络控制,参数:网控对象ID、业务对象ID、业务操作

csharp 复制代码
        /// <summary>
        /// 插入网控数据
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="ncList">网控集合</param>
        public void BatchStartNetworkCtrl(Context ctx, List<NetworkCtrl> ncList)
        {
            foreach (var ian in ncList)
            {
                NetWorkCtrlMonitorInfo mInfo = new NetWorkCtrlMonitorInfo();
                mInfo.Id = SequentialGuid.NewGuid().ToString();//网控主键
                mInfo.NetCtrlType = NetworkCtrlType.BusinessObjOperateMutex;
                mInfo.OrgID = ((ctx.CurrentOrganizationInfo == null) ? 1 : ctx.CurrentOrganizationInfo.ID);//执行组织ID
                mInfo.StartMenID = Convert.ToInt32(ctx.UserId);//当前用户
                mInfo.ComputerName = ctx.ComputerName;//登录电脑名称
                mInfo.IP = ctx.IpAddress;//登录IP地址
                mInfo.NetCtrlId = ian.NetCtrlId;//网控对象ID
                mInfo.OperationDesc = ian.OperationDesc;//业务操作
                mInfo.InterID = ian.InterID;//业务对象ID
                mInfo.Token = ctx.ContextId;//上下文ID
                SaleServiceHelper.StartNetworkCtrl(ctx, mInfo);// Kingdee.K3.SCM.ServiceHelper
            }
        }

清除网络控制代码,参数:网控对象ID、业务对象ID

csharp 复制代码
			 /// <summary>
        /// 清除网络控制(单个)
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="FNetCtrlID">网控对象ID</param>
        /// <param name="FinterID">业务对象ID,比如单据的内码</param>
        /// <returns>返回执行成功的条数</returns>
        public int ClearNetworkCtrl(Context ctx, string FNetCtrlID, long FinterID)
        {
            string strSQL = string.Format(@"{0}DELETE T_BAS_NETWORKCTRLRECORDS  WHERE FNETCTRLID = '{1}' AND FINTERID ={2}; "
                                        ,OtherConst.DIALECT, FNetCtrlID, FinterID);
            return DBUtils.Execute(ctx, strSQL);
        }

/// <summary>
        /// 清除网络控制(批量)
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="FNetCtrlID">网控对象ID</param>
        /// <param name="FinterID">业务对象ID,比如单据的内码【集合】</param>
        /// <returns>返回执行成功的条数</returns>
        public int ClearNetworkCtrl(Context ctx, string FNetCtrlID, List<long> FinterID)
        {
            string strSQL = string.Format(@"{0}DELETE T_BAS_NETWORKCTRLRECORDS  WHERE FNETCTRLID = '{1}' AND FINTERID  in ({2}); "
                                        , OtherConst.DIALECT, FNetCtrlID, string.Join(",", FinterID));
            return DBUtils.Execute(ctx, strSQL);
        }

/// <summary>
        /// 清除网络控制(批量,参数是拼接好的业务对象)
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="FNetCtrlID">网控对象ID</param>
        /// <param name="FinterID">业务对象ID,比如单据的内码【拼接好的字符串】</param>
        /// <returns>返回执行成功的条数</returns>
        public int ClearNetworkCtrl(Context ctx, string FNetCtrlID, string FinterID)
        {
            string strSQL = string.Format(@"{0}DELETE T_BAS_NETWORKCTRLRECORDS  WHERE FNETCTRLID = '{1}' AND FINTERID  in ({2}); "
                                        , OtherConst.DIALECT, FNetCtrlID, FinterID);
            return DBUtils.Execute(ctx, strSQL);
        }
相关推荐
白帽攻防录1 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛2 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
2603_965148112 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya3 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
学逆向的3 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
小坏讲微服务3 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
CORNERSTONE3655 小时前
多品种、小批量生产,系统选型前要梳理哪些业务规则?
低代码·erp·企业数字化
打工仔折腾 AI5 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
MATLAB代码顾问5 小时前
Simulink PI 参数扫描与批量仿真完整 MATLAB 代码
开发语言·matlab
Want5955 小时前
Python跳动的爱心②
开发语言·python·数学建模