二开案例.执行计划.引出列表数据并发送邮件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.执行计划.引出列表数据并发送邮件

【应用场景】

通过执行计划,定时引出列表数据,通过邮件的方式,将引出文件发送到指定的邮箱。


【案例演示】

采购订单列表,定时引出列表数据,并发送邮件到指定的邮箱。


【实现步骤】

<1>登录星空系统,设置好邮件服务器地址,设置好登录用户的个人邮箱地址。


<2>打开菜单订单列表,设置好列表引出专用的过滤方案。


<3>编写执行计划服务插件,完整的插件代码见附件【【执行计划】引出列表数据并发送邮件.rar】。

namespace Jac.XkDemo.BOS.App.PlugIn
{
    /// <summary>
    /// 【执行计划】引出列表数据并发送邮件
    /// </summary>
    public class ExportListDataAndSendEmailScheduleService : IScheduleService
    {
        /// <summary>
        /// 执行计划入口函数
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="schedule"></param>
        public void Run(Context ctx, Schedule schedule)
        {
            try
            {
                // 设置组织(SELECT * FROM T_ORG_ORGANIZATIONS)
                ctx.CurrentOrganizationInfo = new OrganizationInfo
                {
                    ID = 1,
                    Name = "蓝海机械总公司"
                };
                // 设置用户(SELECT * FROM T_SEC_USER)
                ctx.UserId = 100008;
                ctx.UserName = "demo";
                // 设置单据
                var formId = "PUR_PurchaseOrder";// 业务对象标识
                // 设置过滤方案(SELECT * FROM T_BAS_FILTERSCHEME WHERE FFORMID='PUR_PurchaseOrder' AND FUSERID=100008)
                var schemeId = "62df6021e6f83e";// 过滤方案内码
                // 创建列表视图
                var view = new ListViewBuilder().CreateListPrintView(ctx, formId, schemeId);
                // 生成引出数据
                var listExportService = new ListExportService(view);
                var filePath = listExportService.ExportData();
                // 发送邮件
                listExportService.SendMail(filePath);
            }
            catch (Exception ex)
            {
                Logger.Error("JAC", "引出列表数据时发生异常:" + ex.Message, ex);
                throw;
            }
        }
    }
}

项目引入组件参考:


<4>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<5>打开执行计划列表,创建新的执行计划,至此,开发完毕。


【功能验证】

<1>打开执行计划列表,找到执行计划【引出列表数据并发送邮件】,点击测试,即可验证执行计划的运行效果

【备注】如果收不到邮件,可通过在代码中进行日志埋点,跟踪分析异常原因。

示例:Logger.Info("JAC", "当前正在执行XXX......");

---------------------------------------------------------------------------------------------------------

【参考资料】

【邮件发送】https://vip.kingdee.com/article/131834587734451200

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.执行计划.引出列表数据并发送邮件

【应用场景】通过执行计划,定时引出列表数据,通过邮件的方式,将引出文件发送到指定的邮箱。【案例演示】采购订单列表,定时引出列表数据...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息