1、构建插件类库,.net版本4.5.2,项目名称任意,比如Supcon.UnifiedPlatform.ExtendEventsTest
2、添加平台相关依赖程序集,一般需三个:
Castle.Core.dll、Supcon.Utilities.dll、
SupconMes.dll、
Supcon.UnifiedPlatform.ExtendEvents.dll
不足请自行在附件lib下引用添加。
3、构建插件注册类,实现AbpModule,该类主要告诉系统有插件模块存在,且实现了具体类的依赖注入注册:
namespace Supcon.UnifiedPlatform.ExtendEventsTest
{
public class ExtendEventsTestModule:AbpModule
{
public override void Initialize()
{
//实现事件类注册,见第四点
IocManager.Register<ICustomEventHandle,MyEventHandle>();
}
}
}
4、实现事件调用类:
public class MyEventHandle : ICustomEventHandle
{
public ILogger Logger { get; set; }
public MyEventHandle()
{
this.Logger = NullLogger.Instance;
}
public void EventHandle(CustomEventData data)
{
//可以通过方法调用平台配置中心参数获取方法
//var someCfg =data.CfgHelper.GetConfigValueByKey("cfgKey");
//获取发生变化类型,新增、修改和删除
// var changetype = data.ChangeType;
if (data.EntityName.Equals("OrganizationEntity"))
{
//如果是组织机构发生变化
//获取发生变化实体
OrganizationEventDto dto = data.Dto as OrganizationEventDto;
}
else if(data.EntityName.Equals("PositionEntity"))
{
//职位发生变化
PositionEventDto dto = data.Dto as PositionEventDto;
}
else if (data.EntityName.Equals("JobEntity"))
{
//岗位发生变化
JobEventDto dto = data.Dto as JobEventDto;
}
else if (data.EntityName.Equals("EmployeeMainEntity"))
{
//人员发生变化
EmployeeEventDto dto = data.Dto as EmployeeEventDto;
}
else if (data.EntityName.Equals("UserEntity"))
{
//账号发生变化
UserEventDto dto = data.Dto as UserEventDto;
}
Logger.Info("调试阶段可以输出日志到平台logs文件下");
}
}
5、编译成程序集,拷贝到平台MESIP站点下Plugin文件夹,如果没有改文件夹则新建即可。
6、测试可以通过日志输出查看是否发生了事件调用,如果需要关闭插件,请删除插件DLL即可。