总部老师好:
根据客户需求开发电商平台与Cloud系统平台的接口,对接订单及退货单的数据。最近在使用中遇到自动平台执行的问题。即一旦自动平台执行事务遇到异常时,事务即刻挂起,而不会按照计划在下一个执行点继续执行。具体异常反馈为;
执行出错,出错时间:2017-01-20 03:37:51;
错误信息:One or more errors occurred.;
错误堆栈: at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at kingdee.BOS.xzg.SaleOrderBill.addSaleOrderBill.addbillTest()
at kingdee.BOS.xzg.SaleOrderBill.addSaleOrderBill.Run(Context ctx, Schedule schedule)
at Kingdee.BOS.App.Core.ScheduleService.ScheduleService.RunSchedule(Context ctx, Schedule schedule)
此异常方法
为调用的包System.Threading.Tasks自带的方法,而不在此次开发的代码中。查询具体异常为告知任务取消的异常。 由于API接口涉及多方的网络连接及数据等,可能有网络不通等偶发状况,而异常报告中不包含程序的更多错误信息,故此异常属于客户可以接受的异常状况。
此时需要重新把任务状态改为准备,事务才能按计划继续执行。
针对该问题,建议总部老师,是否可以提供自动平台异常处理的修改机制:即若执行失败,写入失败日志,平台继续按计划在下一个执行节点执行计划,而非直接挂起,需要手动去启用,或连续执行失败多次(如3次)后中止此事务,需要人工重新启用。若每次都是即可挂起,对于自动事务的执行会产生较大影响,也会增加人工成本(需要不定期监控)。
推荐阅读