当前位置: 首页 > news >正文

长沙专业企业建站联系人武汉大学人民医院官网

长沙专业企业建站联系人,武汉大学人民医院官网,ssh实训做网站代码下载,建设网站部署环境文章目录 金蝶云星空创建自动下推并保存公共服务创建公共方法按单下推数据按明细行下推数据调用下推操作 调用公共方法 金蝶云星空创建自动下推并保存公共服务 创建公共方法 按单下推数据 /// <summary>/// 获取单据转换数据包/// </summary>public DynamicObjec…

文章目录

  • 金蝶云星空创建自动下推并保存公共服务
    • 创建公共方法
      • 按单下推数据
      • 按明细行下推数据
      • 调用下推操作
    • 调用公共方法

金蝶云星空创建自动下推并保存公共服务

创建公共方法

按单下推数据

         /// <summary>/// 获取单据转换数据包/// </summary>public DynamicObject[] GetBillObjDoPush(Context ctx, string sourceFormId, string targetFormId, List<object> sourceBillIds, string convertId = null, string billTypeId = null){IConvertService convertService = Kingdee.BOS.App.ServiceHelper.GetService<IConvertService>();var rules = convertService.GetConvertRules(ctx, sourceFormId, targetFormId);if (rules == null || rules.Count == 0){throw new KDBusinessException("", string.Format("未找到{0}到{1}之间,启用的转换规则,无法自动下推!", sourceFormId, targetFormId));}ConvertRuleElement rule = null;if (convertId.IsNullOrEmptyOrWhiteSpace()){rule = rules.FirstOrDefault(t => t.IsDefault);}else{rule = rules.FirstOrDefault(s => s.Id.Equals(convertId));}if (rule == null){rule = rules[0];}List<ListSelectedRow> srcSelectedRows = new List<ListSelectedRow>();foreach (var billId in sourceBillIds){srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), string.Empty, 0, sourceFormId));}string targetBillTypeId = billTypeId == null ? string.Empty : billTypeId;long targetOrgId = 0;Dictionary<string, object> custParams = new Dictionary<string, object>();PushArgs pushArgs = new PushArgs(rule, srcSelectedRows.ToArray()){TargetBillTypeId = targetBillTypeId,TargetOrgId = targetOrgId,CustomParams = custParams};ConvertOperationResult operationResult = convertService.Push(ctx, pushArgs, OperateOption.Create());DynamicObject[] targetBillObjs = (from p in operationResult.TargetDataEntities select p.DataEntity).ToArray();if (targetBillObjs.Length == 0){throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId));}return targetBillObjs;}

按明细行下推数据

         /// <summary>/// 获取单据转换数据包 按明细行下推/// </summary>public DynamicObject[] GetBillObjDoPushByEntryId(Context ctx, string sourceFormId, string targetFormId, IEnumerable<ListSelectedRow> srcSelectedRows, string convertId = null, string billTypeId = null){IConvertService convertService = Kingdee.BOS.App.ServiceHelper.GetService<IConvertService>();var rules = convertService.GetConvertRules(ctx, sourceFormId, targetFormId);if (rules == null || rules.Count == 0){throw new KDBusinessException("", string.Format("未找到{0}到{1}之间,启用的转换规则,无法自动下推!", sourceFormId, targetFormId));}ConvertRuleElement rule = null;if (convertId.IsNullOrEmptyOrWhiteSpace()){rule = rules.FirstOrDefault(t => t.IsDefault);}else{rule = rules.FirstOrDefault(s => s.Id.Equals(convertId));}if (rule == null){rule = rules[0];}string targetBillTypeId = billTypeId == null ? string.Empty : billTypeId;long targetOrgId = 0;Dictionary<string, object> custParams = new Dictionary<string, object>();PushArgs pushArgs = new PushArgs(rule, srcSelectedRows.ToArray()){TargetBillTypeId = targetBillTypeId,TargetOrgId = targetOrgId,CustomParams = custParams};ConvertOperationResult operationResult = convertService.Push(ctx, pushArgs, OperateOption.Create());DynamicObject[] targetBillObjs = (from p in operationResult.TargetDataEntities select p.DataEntity).ToArray();if (targetBillObjs.Length == 0){throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId));}return targetBillObjs;}

调用下推操作

 /// <summary>/// 下推操作处理/// </summary>public IOperationResult DoPushOper(Context ctx, DynamicObject[] targetBillObjs, string targetFormId, OperateOption option, IOperationResult billOperationResult, bool isSubmit = false, bool isAudit = false){IMetaDataService metaService = Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>();var targetBillMeta = metaService.Load(ctx, targetFormId) as FormMetadata;OperateOption saveOption = OperateOption.Create();saveOption.SetIgnoreWarning(true);saveOption.SetInteractionFlag(option.GetInteractionFlag());saveOption.SetIgnoreInteractionFlag(option.GetIgnoreInteractionFlag());try{var saveResult = Kingdee.K3.MFG.App.AppServiceContext.SaveService.Save(ctx, targetBillMeta.BusinessInfo, targetBillObjs, saveOption, "Save");this.CheckOpResult(saveResult, billOperationResult, saveOption);if (isSubmit && saveResult.IsSuccess){saveResult = Kingdee.K3.MFG.App.AppServiceContext.SubmitService.Submit(ctx, targetBillMeta.BusinessInfo, targetBillObjs.Select(s => s["Id"]).ToArray(), "Submit", saveOption);this.CheckOpResult(saveResult, billOperationResult, saveOption);}if (isAudit && saveResult.IsSuccess){List<KeyValuePair<object, object>> keyValuePairs = new List<KeyValuePair<object, object>>();targetBillObjs.ToList().ForEach(item => keyValuePairs.Add(new KeyValuePair<object, object>(item.GetPrimaryKeyValue(), item)));List<object> auditObjs = new List<object>();auditObjs.Add("1");auditObjs.Add("");saveResult = Kingdee.K3.MFG.App.AppServiceContext.SetStatusService.SetBillStatus(ctx, targetBillMeta.BusinessInfo, keyValuePairs, auditObjs, "Audit", saveOption);if (this.CheckOpResult(saveResult, billOperationResult, saveOption)) return saveResult;}return saveResult;}catch (Exception ex){//string aa = ex.Message;throw new KDBusinessException("", ex.Message);return null;}}/// <summary>/// 判断操作结果是否成功,如果不成功,则直接抛错中断进程/// </summary>/// <param name="opResult"></param>/// <returns></returns>private bool CheckOpResult(IOperationResult opResult, IOperationResult operationResult, OperateOption opOption = null, bool isShowError = false){bool isSuccess = false;if (opResult.IsSuccess){// 操作成功isSuccess = true;}else{if (opResult.InteractionContext != null&& opResult.InteractionContext.Option.GetInteractionFlag().Count > 0){// 有交互性提示// 传出交互提示完整信息对象operationResult.InteractionContext = opResult.InteractionContext;// 传出本次交互的标识,// 用户在确认继续后,会重新进入操作;// 将以此标识取本交互是否已经确认过,避免重复交互operationResult.Sponsor = opResult.Sponsor;if (opOption != null){if (isShowError)throw new KDException("", opResult.InteractionContext.SimpleMessage);else{//throw new KDInteractionException(opOption, opResult.Sponsor);throw new KDException("", ((AbstractInteractionResult)opResult).InteractionContext.SimpleMessage);}}else{// 抛出错误,终止本次操作throw new KDBusinessException("", "本次操作需要用户确认是否继续,暂时中断");}}else{// 操作失败,拼接失败原因,然后抛出中断opResult.MergeValidateErrors();if (opResult.OperateResult == null){// 未知原因导致提交失败throw new KDBusinessException("", "未知原因导致自动提交、审核失败!");}else{StringBuilder sb = new StringBuilder();sb.AppendLine("自动提交、审核失败,失败原因:");foreach (var operateResult in opResult.OperateResult){sb.AppendLine(operateResult.Message);}throw new KDBusinessException("", sb.ToString());}}}return isSuccess;}

调用公共方法

在这里插入图片描述
列表插件完整代码

using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Util;
using mm.K3.App.Service.Common;
using mm.K3.Core.Const;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace mm.K3.SCM.Business.PlugIn.SC
{[Description("售后单-列表界面"), HotUpdate]public class AfterOrderList : AbstractListPlugIn{public override void BarItemClick(BarItemClickEventArgs e){base.BarItemClick(e);switch (e.BarItemKey.ToUpperInvariant()){case "XXXX_TBPUSHREPLACE":#region 下推对照 XXXX_tbPushReplace#region v3.0Context ctx = this.View.Context;string sourceFormId = FormIdConst.AS_AfterOrder;//售后单string targetFormId = FormIdConst.AS_Replace;//对照表string convertRuleKey = "AS_AfterOrderToReplace";//转换规则// 获取在列表上当前选择需下推的行ListSelectedRow[] selectedRows = ((IListView)this.View).SelectedRowsInfo.ToArray();var action = new ActionCommon();try{var targetBills = action.GetBillObjDoPushByEntryId(ctx, sourceFormId, targetFormId, selectedRows, convertRuleKey);var result=action.DoPushOper(ctx, targetBills, targetFormId, null, null, false, false);//不提交 不审核//var result = action.DoPushOper(ctx, targetBills, targetFormId, null, null, true, true); //自动提交 ,审核if (result.IsSuccess){string _msg = string.Empty;if (result.OperateResult.Count() > 0){_msg += string.Join(",", result.OperateResult.Select(s => s.Message));}if (!_msg.IsNullOrEmptyOrWhiteSpace()){this.View.ShowMessage(_msg);}}else{string _msg = string.Empty;if (result.ValidationErrors.Count > 0){_msg += string.Join(",", result.ValidationErrors.Select(s => s.Message));}if (!_msg.IsNullOrEmptyOrWhiteSpace()){this.View.ShowErrMessage("", _msg, MessageBoxType.Error);}}}catch (Exception ex){this.View.ShowErrMessage("", "下推对照时存在异常:" + ex.Message, MessageBoxType.Error);e.Cancel = true;return;}#endregion#endregionbreak;}}}
}
http://www.hkea.cn/news/164576/

相关文章:

  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页
  • 做网站用哪种代码比较好推广seo发贴软件
  • 3d效果图软件宁波seo行者seo09
  • 美国做按摩广告的网站网站优化教程
  • wordpress云建站教程信息流广告公司一级代理
  • 我有一个域名怎么做网站百度一下下载
  • 郑州网站建设品牌好安装百度到桌面
  • 株洲做网站定制百度灰色词优化排名
  • 上海网页设计公司兴田德润电话排名优化外包公司
  • 做360网站优化快推广普通话宣传语手抄报
  • 动态网站开发语言有哪些大学生创新创业大赛
  • 关键词推广公司网站网络排名优化方法
  • 福州移动网站建设网络营销推广工具有哪些
  • win2008sr怎么用iis做网站国外网站加速
  • 合肥++网站建设磐石网站seo
  • 万网主机怎么上传网站如何在百度上投放广告
  • 做网站时如何给文字做超链接全球疫情最新数据消息
  • 四川省住建厅官方网站3分钟搞定网站seo优化外链建设
  • 做网站阳泉巨量千川广告投放平台
  • 温岭哪里有做网站的如何自制网站
  • 知道创于 wordpress搜索引擎优化宝典
  • 乌兰县wap网站建设公司有效获客的六大渠道
  • 微信网站开发教程视频教程百度一下主页官网
  • 网站开发专业前景关键词挖掘排名
  • 网站开发属于什么职位类别seo查询站长工具
  • wordpress postmetaseoul national university
  • 商务网站的主要存在形式杭州百度快照优化公司
  • 个人备案网站做购物网站可以不班级优化大师免费下载电脑版
  • 贸易网站建设互联网广告代理加盟