二开案例.服务插件.元数据异常检测之主表被改

【应用场景】
WebApi保存单据,返回结果提示保存成功,实际并未成功,因为系统中查不到对应的数据。
原因分析:
返回结果说,那数据应该是保存成功了,找不到可能原因有:
<1>账套搞错了。
<2>奇怪的插件逻辑把刚生成的单据删掉了。
<3>元数据被错误的改坏了,例如主表表名被改了,数据被存到意想不到的表里去了。
【案例演示】
客户,WebApi保存,如果主表不对,拦截保存操作,写异常日志。

【实现步骤】
<1>编写服务插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Log;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using System;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.App.PlugIn
{
/// <summary>
/// 【服务插件】元数据异常检测之主表被改
/// </summary>
[Description("【服务插件】元数据异常检测之主表被改"), HotUpdate]
public class CheckMetaForTableNameServicePlugIn : AbstractOperationServicePlugIn
{
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
if (this.FormOperation.OperationId != 8)
{
// 只处理保存操作
return;
}
var formId = this.BusinessInfo.GetForm().Id;
var tableName = this.BusinessInfo.GetEntity(0).TableName;
if (formId.EqualsIgnoreCase("BD_Customer"))
{
// 表名不匹配,或者内码长度有问题,都视之为异常数据
if (!tableName.Eq
二开案例.服务插件.元数据异常检测之主表被改
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



