【应用场景】

目前供应商联系人的操作,是表单插件实现,没有标准对外的接口。这时候想要通过API的方式调用禁用、反禁用操作,需要自行二开自定义接口。

主要是修改t_BD_SupplierContact和T_BD_COMMONCONTACT的FFORBIDSTATUS字段的值

FFORBIDSTATUS=B为禁用状态,FFORBIDSTATUS=A为不禁用


【代码案例】

  /// 供应商联系人禁用/反禁用
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="pkValue">传入供应商联系人表中的FCOMMONCONTACTID </param>
        /// <param name="forbidStatus">A为不禁用,B为禁用</param>
public bool UpdateContactForbidStatus(Context ctx, string pkValue, string forbidStatus) {
    
    if(string.IsNullOrWhiteSpace(pkValue)) {
        return false;
    }
    
    
    List <SqlObject> lstObj = new List <SqlObject> ();
    string sql = "
    update T_BD_COMMONCONTACT 
    set FFORBIDSTATUS=@STATUS WHERE FCONTACTID =@FID";
    
    List <SqlParam> paras = new List <SqlParam> ();
    paras.Add(new SqlParam("@STATUS", KDDbType.String, forbidStatus));
    paras.Add(new SqlParam("@FID", KDDbType.String, pkValue));
    lstObj.Add(new SqlObject(sql, paras));
    
    
    sql = "
    update t_BD_SupplierContact 
    set FFORBIDSTATUS=@STATUS  WHERE FCOMMONCONTACTID =@FID";
    
    lstObj.Add(new SqlObject(sql, paras));
    
    
    int rows = 0; // 添加事务处理 
               
    using(KDTransactionScope trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required)) {
        rows = DBUtils.ExecuteBatch(ctx, lstObj);
        trans.Complete();
    }
    
    if(rows > 0) {
        return true;
    }
    else {
        return false;
    }
}


--供应商联系人表
select FCOMMONCONTACTID,FFORBIDSTATUS 
from
t_BD_SupplierContact

 
--联系人表 
select FCONTACTID,FFORBIDSTATUS 
from
T_BD_COMMONCONTACT




【参考资料】

自定义接口的封装参考:

二开案例.WebApi.从零开发自定义WebApi接口 (kingdee.com)

WebApi自定义接口 (kingdee.com)