二开案例.服务插件.元数据异常检测之主表被改
【应用场景】
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.EqualsIgnoreCase("T_BD_CUSTOMER") || e.DataEntitys.Any(o => o[0].ToString().Length < 8))
{
// 捕获异常后写文件日志
var data = JsonConvert.SerializeObject(e.DataEntitys);
var log = string.Format("元数据异常,主表被改:业务对象标识:{0},主表名:{1},数据包:{2}", formId, tableName, data);
//Logger.Error("DBG", log, null);
// 抛出异常中断保存操作
throw new Exception(log);
}
}
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展客户,保存操作注册服务插件,保存元数据,开发完毕。
【功能验证】
<1>BOSIDE修改客户的主表表名,登录业务站点,WebApi测试保存客户,保存失败,操作被拦截。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.服务插件.元数据异常检测之主表被改
本文2024-09-23 04:08:17发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163380.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf