金蝶云星空二开执行列表之C#定时插件,定时执行sql更新!!
大家好,我叫大伟,今天开始给大家继续倒腾金蝶二开插件案列分享,大部分都是非常实用而且能够提升工作效率和增强体验感的小功能。
很早的时候收到过这样的一个需求,是什么呢,目前很多公司应收单和收款单都是没有关联,都是手工进行核销产生关联,有些是通过导入收款单进行核销,也有些是手工和下推结合,那就导致了应收单和收款单没有关联无法上下查,目前还在研究如何关联的问题,但是今天的需求重点是,用户在应收单知道收款日期,那如果下推生成的可以通过反写规则进行实现,如果不是下推是导入或手工收款,则这部分就无法获取收款日期,那我想了一个方案,通过sql语句定期从应收核销表获取收款日期,我觉得这个只是临时的一个方案,可能会有更好的,大家可以自行探索一番,也可以通过执行插件实现别的需求,只要掌握了,很多简单定时任务都可以使用该方案解决。
针对这个需求,如果使用定时任务的方式,python是无法实现的,只能使用C#插件,还有服务端接口开发、执行计划定时任务开发、继承重写标准插件,都是python实现不了的,一定要C#,那我们废话不多说,直接展示代码,具体代码的理解会展示处理。
Python插件案例一之表单插件
按钮事件
(按单号打开业务单据列表)
代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Contexts;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
//从金蝶服务端安装的bin录获取相关dll组件并添加应用
using Kingdee.BOS.Contracts;
using Kingdee.BOS;
using Kingdee.BOS.Core;
using Kingdee.BOS.ServiceHelper;
//定义命名空间名称
namespace getRecPaymentDate
{
//定义getRecPaymentDatePlan类 继承 IScheduleService 定时任务基类服务接口
public class getRecPaymentDatePlan : IScheduleService
{
//定时任务的run方法
public void Run(Kingdee.BOS.Context ctx, Schedule schedule)
{
//通过核销记录更新收款日期 调用DBServiceHelper静态工具类执行数据库操作,当然也可以使用DBUtils
DBServiceHelper.Execute(ctx,”/*dialect*/exec UpdateReceivablePaymentDate “);
}
}
}


操作步骤如下
1、在VS 2022社区版(这个版本免费)右边解决方案管理器,右击项目名称,点击生成.dll组件文件。如图:

2、复制路径并打开找到getRecPaymentDate.dll文件,Ctrl+C复制一下


3、将getRecPaymentDate.dll文件复制到粘贴到金蝶服务端安装BIN目录下,根据自己的服务端路径进行粘贴操作。如图:

4.重启iis,以管理员打开CRM命令dos窗口,输入iisreset命令,看到启动成功,代表OK了。如图:

5.打开金蝶,搜索执行计划并打开,新增执行计划,因为已经新增了,我就不再展示新增步骤,这个很简单,重点强调关键问题。如下图:

本次使用的是Cron,能实现复杂的定时逻辑(不懂CRON可以直接问ai生成你想要的结果),每周一到周五固定的9点和16点执行一次,当然你也可以按照分,天,周,月等,进行设置。

配置开始结束时间和配置服务插件,服务插件是重点,必须按照金蝶的规则,否则无法执行,规则是:
getRecPaymentDate.getRecPaymentDatePlan,getRecPaymentDate命名空间.类名,组件名称(即生成的.dll的文件名)


如果这篇文章对你有帮助,欢迎点赞、收藏、转发!有任何问题也欢迎在评论区留言交流!
夜雨聆风