K3Cloud BOS 设计 C# 单据转换插件 自动提交审核
Python插件参考
C# 插件
依次 保存 提交 审核
完整代码
public override void AfterConvert(AfterConvertEventArgs e)
{
base.AfterConvert(e);
string key = e.TargetBusinessInfo.GetEntity(0).Key;
List<DynamicObject> list = new List<DynamicObject>();
foreach (var ed in e.Result.FindByEntityKey(key))
{
DynamicObject dy = ed.DataEntity;
list.Add(dy);
}
FormMetadata formMetadata = (FormMetadata)AppServiceContext.MetadataService.Load(this.Context, "SAL_SaleOrder", true);
IOperationResult operationResult = AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, list.ToArray(), null, "");
if (operationResult.IsSuccess)
{
List<DynamicObject> list2 = operationResult.SuccessDataEnity.ToList<DynamicObject>();
object[] pkArray = (from p in list2 select p[0]).ToArray();
operationResult = AppServiceContext.SubmitService.Submit(this.Context, formMetadata.BusinessInfo, pkArray, "Submit", null);
if (operationResult.IsSuccess)
{
List<KeyValuePair<object, object>> pkEntityIds = new List<KeyValuePair<object, object>>();
foreach (var pkValue in pkArray)
{
pkEntityIds.Add(new KeyValuePair<object, object>(pkValue, ""));
}
List<object> paras = new List<object>();
paras.Add("1");
paras.Add("");
operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null);
}
}
var s = operationResult.OperateResult.GetFailResult()[0].Message;
this.OperationResult.OperateResult = operationResult.OperateResult;
this.OperationResult.IsSuccess = operationResult.IsSuccess;
this.OperationResult.ValidationErrors = operationResult.ValidationErrors;
this.OperationResult.OperateResult = operationResult.OperateResult;
}
审核 代码 替换
operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null);
替换为
operationResult = AppServiceContext.AuditService.Audit(this.Context, formMetadata.BusinessInfo, pkArray, null);
operationResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, formMetadata.BusinessInfo, pkEntityIds, paras, "Audit", null);
// 替换为
operationResult = AppServiceContext.AuditService.Audit(this.Context, formMetadata.BusinessInfo, pkArray, null);
自动提交审核
自动提交审核,不会提示 单据校验详细信息,
会提示“此操作对该事务的状态无效。”
public override void AfterConvert(AfterConvertEventArgs e)
{
string key = e.TargetBusinessInfo.GetEntity(0).Key;
List<DynamicObject> list = new List<DynamicObject>();
foreach (var ed in e.Result.FindByEntityKey(key))
{
DynamicObject dy = ed.DataEntity;
list.Add(dy);
}
FormMetadata formMetadata = (FormMetadata)AppServiceContext.MetadataService.Load(this.Context, "SAL_SaleOrder", true);
var op = OperateOption.Create();
op.SetVariableValue("IsAutoSubmitAndAudit", true);
IOperationResult operationResult = AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, list.ToArray(), op, "");
this.OperationResult.OperateResult = operationResult.OperateResult;
this.OperationResult.IsSuccess = operationResult.IsSuccess;
this.OperationResult.ValidationErrors = operationResult.ValidationErrors;
}
返回错误、提示信息
直接抛出异常
throw new KDException("", "提示信息!");
操作返回结果赋值 可以显示系统返回的明细信息
this.OperationResult.OperateResult = operationResult.OperateResult;
this.OperationResult.ValidationErrors = operationResult.ValidationErrors;
this.OperationResult.IsSuccess = operationResult.IsSuccess;