使用引入插件干预数据,自定义校验信息原创
金蝶云社区-唯爱_
唯爱_
3人赞赏了该文章 2,744次浏览 未经作者许可,禁止转载编辑于2023年01月19日 10:36:04

1.需求背景

单据引入如何使用引入插件干预数据,查到一个基础资料的属性填充到另一个字段上,查询不到就返回自定义校验信息

单据元数据请查看附件,java插件代码请查看实现过程或者附件。

2.配置引入模板

image.png

image.png

image.png

image.png

3.Java代码

public class ImportBatchImportPlugin extends BatchImportPlugin {

    @Override
    protected ApiResult save(List<ImportBillData> rowdatas, ImportLogger logger) {
        Iterator<ImportBillData> it = rowdatas.iterator();
        while(it.hasNext()){
            ImportBillData data = it.next();
            Map<String , Object> billData = data.getData();
            JSONArray entryentity = (JSONArray) billData.get("ki5f_entryentity");//单据体
            for (int i = 0; i < entryentity.size(); i++) {
                JSONObject entry = entryentity.getJSONObject(i);
                JSONObject material = entry.getJSONObject("ki5f_material");//物料
                String number = material.getString("number");//物料.编码

                QFilter qFilter = new QFilter("number", QCP.equals,number);
                DynamicObject bd_material = BusinessDataServiceHelper.loadSingle("bd_material", "id,name,baseunit", qFilter.toArray());
                if(bd_material==null){
                    //返回校验信息
                    String validMsg = "物料.编码:" + number + "找不到对应的物料";
                    //有校验提示,校验不通过,记录日志,移除数据
                    logger.log(data.getStartIndex(), validMsg).fail();
                    it.remove();
                }else{
                    entry.put("ki5f_name",number);

                    //组装需要带出的基本单位(基础资料)
                    JSONObject baseunit = new JSONObject();
                    baseunit.put("importprop","number");
                    baseunit.put("number",bd_material.getDynamicObject("baseunit").getString("number"));

                    entry.put("ki5f_baseunit",baseunit);
                }
            }
        }
        // 调用缺省方法保存合法的数据
        return super.save(rowdatas, logger);
    }

}

4.效果图

4.1 没加插件效果图

image.png

4.2 加了插件效果图

image.png

4.3 加了插件,自定义校验信息效果图

image.png

image.png

image.png

5.链接

5.1 参考链接

https://developer.kingdee.com/knowledge/specialDetail/218022218066869248?category=253953609808121856&id=226286566404892160&productLineId=29

5.2 相关链接

开发商标志不一致处理:https://developer.kingdee.com/article/127784023740974592?productLineId=29

赞 3