代码调用页面中的操作原创
金蝶云社区-拾柒_
拾柒_
3人赞赏了该文章 909次浏览 未经作者许可,禁止转载编辑于2024年04月15日 16:16:33

方法一:

在可以获取到getView()对象的情况下,这种方式下只能调用本单据的一个操作

//不需要传输参数的情况
this.getView().invokeOperation("save");

 //并且也支持传输参数
OperateOption operateOption = OperateOption.create();
operateOption.setVariableValue("key","value");
this.getView().invokeOperation("save", operateOption);

方法二:

在获取不到getView()对象的情况下或跨单据执行操作时使用

OperateOption operateOption = OperateOption.create();
//也支持传输自定义参数
//operateOption.setVariableValue("key","value");

OperationResult opResult= OperationServiceHelper.executeOperate("save", "单据标识", new DynamicObject[] {obj},operateOption );

//在调用了这个方法时需要判断成功还是失败并且获取失败信息
 if (opResult.getSuccessPkIds().size()==0) {
      List<ValidateResult> vas = opResult.getValidateResult().getValidateErrors();   
	      StringBuilder error = new StringBuilder(opResult.getMessage());     	   
	         for (ValidateResult va : vas) {
	               for (OperateErrorInfo operr : va.getAllErrorInfo()) {
	                 error.append(operr.getMessage());
	               }
	         }
  }

其中传输自定义参数到操作中标准的参数可以参考这篇文章:调用单据操作时的一些自定义参数使用方式 (kingdee.com)


赞 3