单据体新增导入、更新导入和新增并更新导入功能介绍

1. 业务场景
在录入HR人员信息、物料等数据的场景中,这些数据大部分是单据体的数据,并不需要同时导入单头的数据,因此需要单独导入单据体数据的功能。
2. 适用版本
单据体新增导入:金蝶云苍穹 V5.0.011及以上版本。
单据体更新导入、更新并新增导入:金蝶云苍穹 V7.0.01及以上版本。
3. 操作流程
3.1. 新增数据
1) 配置单据体导入操作
在单据工具栏中配置“单据体导入”操作按钮。

2) 配置单据体导入模板
模板可以通过两个入口进行配置:
V6.0.0.0前:
a.【配置工具】->【导入导出模板】->【单据体导入模板】
V6.0.0.0后
a.【公共设置】->【导入导出模板】->【单据体导入模板】

b.【单据页面】->【单据体导入按钮】->【单据体导入起始页】->【模板下载】->【下载单据体导入模板】

上述两个入口均可进入单据体导入模板的编辑界面。

模板编辑界面中,可以在“单据体选择”多选下拉列表中,选择需要生成模板的单据体。配置好需要导入的字段,其中基础资料字段需要配置导入属性(可选编码/名称)。
3) 录入数据
下载的模板中,单据体展示在Excel的工作表中,单据体与工作表一一对应,工作表名称为单据体名称。如下图所示:


4) 导入数据
上传导入文件,文件校验通过后(校验不通过时,文件无法上传成功),点击“导入数据”。导入完成后,可查看每个单据体的导入结果,如下图所示:

导入结果:
导入结果界面按单据体分别展示导入成功数据及失败数据。

如全部数据导入成功,下方显示【关闭】按钮;
如存在错误数据,下方显示【导出错误数据】超链接(如在上传文件界面,勾选"是否导出所有错误数据",则展示导出全量错误数据),错误信息统一录在Excel工作表的第一列,如果单据体不存在错误信息,则对应的工作表不会输出至错误文件。
点击【继续导入】,重新进入单据体导入界面。
按照错误提示修改数据后,可使用错误文件再次导入。

3.2. 更新数据
1) 在单据体导入模板中,将需要更新单据体的“匹配id”的“是否导入”属性打开,按单据体导入模板导出数据(该功能介绍详见:),对需要更新的数据进行修改。例如原已订货数量为3,需要将数据更新为5。




2) 再点击“单据体导入”操作,打开单据体导入界面,选择“导入方式为更新数据”,默认根据单据体的“匹配id”更新数据,上传更新后的文件,然后点击“导入数据”。

3) 默认根据匹配id更新数据,导入成功后即可看到字段值更新,例如下方的“已订货数量”更新为5。

3.3. 更新已有数据并添加新的数据
1) 在单据体导入模板中,将需要更新单据体的“匹配id”的“是否导入”属性打开,按单据体导入模板导出数据(该功能介绍详见:),对需要更新的数据进行修改。例如原已订货数量为3,需要将数据更新为5,并新增一条数据。




2) 再点击“单据体导入”操作,打开单据体导入界面,选择“导入方式为更新数据”,默认根据单据体的“匹配id”更新数据,上传更新后的文件,然后点击“导入数据”。

3) 默认根据匹配id更新数据,匹配上的就更新,没匹配上的就新增,导入成功后即可看到更新和新增的数据,例如下方的“已订货数量”更新为5,并增加一条数据。

4 插件干预
单据体引入支持两种方式进行插件干预:
模板下载:
在模板编辑界面中,通过“插件”编辑框,注册插件。该插件用于下载模板时,将模板中“基础资料”类型的列,设置单元格格式为下拉选项,并给下拉项赋值。
例:将标识为“basedatafield1”的字段,下拉值列表设置为"0002", "0003", "0004","0005","0006","0007"
import java.util.Arrays;
public class TestImportEntryBaseDataPlugin implements ImportEntryTemplateListener{
//将标识为“basedatafield1”的字段
//下拉值列表设置为"0002", "0003", "0004","0005","0006","0007"
@Override
public void beforeSetBaseData(BeforeDownloadImportEntryTemplateEvent evt) {
evt.getBaseDataDropDownValues().put("basedatafield1", Arrays.asList("客户","0002","0003","0004","0005","0006","0007"));
}
}
效果如下:

修改数据:
编写表单插件,继承表单插件基类AbstractFormPlugin,实现beforeImportEntry方法,在设计器界面注册表单插件。

例:校验单据体数据,并填入自定义错误信息,移除错误数据不予引入。
public class TestBeforeImportEntryPlugin extends AbstractFormPlugin {
@Override
public void beforeImportEntry(BeforeImportEntryEventArgs e) {
//key为单据体标识
Set<Map.Entry<String, List<ImportEntryData>>> entries = source.entrySet();
for (Map.Entry<String, List<ImportEntryData>> entry : entries) {
entryName = entry.getKey();
List<ImportEntryData> entryEntityImportDataList = entry.getValue();
if (CollectionUtils.isEmpty(entryEntityImportDataList) ) {
return;
}
// 校验并返回Map<行号, 业务自定义错误信息>
// validateEntry为自定义的校验方法
Map<Integer, Stri单据体新增导入、更新导入和新增并更新导入功能介绍
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



