如何在生产订单行状态变更前后处理自定义事件原创
金蝶云社区-插秧小能手
插秧小能手
2人赞赏了该文章 465次浏览 未经作者许可,禁止转载编辑于2022年09月05日 13:21:52

【原贴】https://vip.kingdee.com/article/306357106494839808?productLineId=1


背景:希望在生产订单行执行或反行执行操作前后处理相关的业务,则可在该插件中编写。

下达、开工、完工等状态时处理业务。

一、代码示例

[Description("生产订单状态机插件")]
public class MOStatePlugIn : AbstractStateTransferServicePlugIn
{
    /// <summary>
    /// 状态执行转换后
    /// </summary>
    /// <remarks>
    /// e.StateCode表示状态执行到哪个状态 1:计划  2:计划确认 3:下达 4:开工 5:完工 6:结案 7:结算
    /// e.IsExecuteForward == true 表示正向执行,执行至  反之false就是反执行
    /// e.InputDataItems 状态机数据执行包
    /// </remarks>        
    /// <param name="e"></param>
    public override void AfterExecuteState(AfterExecuteArg e)
    {
        base.AfterExecuteState(e);
        if (e.StateCode == 3 && e.IsExecuteForward == true)
        {
            //Todo
        }
    }
    
    /// <summary>
    /// 状态执行转换前
    /// </summary>
    public override void BeforeExecuteState(BeforeExecuteArg e)
    {
        base.BeforeExecuteState(e);
    }
}

二、注册方式(sql语句插入)

    INSERT INTO T_MFG_BIZPLUGINENTRY(FID,FENTRYID,FSEQ,FPLUGIN,FPLUGINID) VALUES   (40371,100003,1,‘EK.Kingdee.K3.MFG.PRD.App.ServicePlugIn.MOStartPlugIn,EK.Kingdee.K3.MFG.PRD.App.ServicePlugIn’,‘D0AAEEA0-4D56-4901-B733-9B9E61609111’) ;

    字段说明:

        生产订单FID:40371

        委外订单FID:40373

        FENTRY:为主键,不重复即可,

        FPLUGINID:使用随机ID不重复标识即可。

        FPLUGIN:插件


赞 2