全部文档
文档中心单据引擎3.0Q&A

Q&A

前期版本的单据引擎没有保存检验机制,因此可能会在保存时,右侧弹出形如body缺少字段:mappingScheme.0.fieldMapping.0.fields.4.UserField.rule.RuleDocumentLinkage.agg的报错,排查方法:

1、以上述报错为例,应该依次检查mappingScheme.<font style="color:#DF2A3F;">0</font>.fieldMapping.<font style="color:#DF2A3F;">0</font>.fields.<font style="color:#DF2A3F;">4</font>,这能帮我们知道是【第几个映射方案/会计事件】的、【第几列】的、【第几个字段】的映射规则配置有误,例中即为【第1个】映射方案的【第1列】的第【5个字段】的取值规则有误

2、检查该字段配置的取值规则是否配置有误



参考:Q&A — 数据流3.0 | DeepFOS Docs

单据引擎主要进行以下数据处理:

1、将配置的字段规则,转换为QL,通过执行QL初步得到目标数据

2、将目标数据整合为表结构,若目标有行结构(例如凭证头+凭证行),各行的数据union

3、再应用其他预的置规则

因此,若出现调试异常,可尝试以下思路:

1、先将QL粘贴至DeepModel控制台,或者数据流组件中,查询结果,排除语法问题导致的错误;

2、用数据流组件将QL执行结果转为表格,再检查数据,以排查数据问题导致的polars在处理表格中产生的错误。

适用后端组件(adapter-engine-server3-0)版本号≤V3.0.0.0.9时。

1、获取运行的QL



2、将QL粘贴至DeepModel控制台的查询器



3、粘贴变量pk_range的值

  • 若单个调试单据,QL中用到的是等号:= <str>$pk_range,则只需要粘贴形如"key1"的来源单据业务主键值即可

  • 若多个调试单据,在≤V3.0.0.0.9版本,QL中用到的是包含关系:contains(array_agg(<str>json_array_unpack(to_json(<str>$pk_range))), .业务主键属性编码),需要粘贴形如"[\"key1\", \"key2\"]"的来源单据业务主键值

请确认好您QL中在with区域的写法,来决定pk_range的值如何写。



4、运行查询器

  • 若运行失败,说明是按配置组装的QL语句存在语法问题,按返回的语法错误提示进行配置的修改

  • 若运行成功,则是在将运行结果组组合为表格时出现问题,请复制或下载出返回结果的JSON,进行后续排查




5、使用数据流辅助排查

1)新建数据流元素,将查询器返回的JSON粘贴至开始节点的默认启动参数:



2)添加PY转换节点,添加如下代码

Copy
import pandas as pd
pd.DataFrame(Pipeline.params)

调试节点,可将启动参数的结果作为表格显示



3)结果中有子结构的,展开,有多少个列是子结构,就展开多少列



展开节点中可以设置不保留其他列,专注排查子表的数据是否正确



4)再用分支合并节点,把展开的行表合并,带前序一起调试,按报错排查问题



适用前后端组件版本号≥V3.0.0.0.10时,且数据流的deepfos≥1.1.80。

单据引擎:

  • 后端:adapter-engine-server3-0:≥V3.0.0.0.10

  • 前端:element-adapter-engine-3-0:≥V3.0.0.0.10

数据流:

  • 后端(建议):adapter-engine-server3-0:≥V3.0.0.1.38

  • 前端(建议):element-deep-pipeline-3-0:≥V3.0.0.1.38

  • deepfos(必须):≥1.1.80,注意是数据流组件的deepfos,不是py服务的deepfos


全程使用数据流辅助排查。

1、获取单据引擎运行的QL,同方式一;

2、新建数据流元素,添加【DeepModel查询】节点,用【DeepQL】查询模式,将获取的QL粘贴进【DeepQL语句】;

3、为参数pk_range赋值

  • 若单个调试单据,QL中用到的是等号:= <str>$pk_range,则可以用静态值类型赋值,只需要粘贴形如key1的来源单据业务主键值即可,

  • 若多个调试单据,QL中用到的是包含关系:contains(array_agg(<str>json_array_unpack(<json>$pk_range)), .业务主键属性编码),则需要用表达式类型复制,粘贴形如["key1", "key2"]的来源单据业务主键值列表。你可以在调试单据配置处,快速复制出业务主键列表。

请确认好您QL中在with区域的写法,来决定pk_range的值如何写。



4、运行查询器,将结果中的行全部展开,再用分支合并将展开的行合并,同方式一,检查数据并排查问题



报错

原因

方案

替代方案

Cannot destructure property ‘message’ of ‘o’ as it is null.

字段取值规则中,【业务规则】选择了不存在的业务规则

检查各字段的取值规则,修改【业务规则】类型中选择的取值规则

identifiers surrounded by double underscores are forbidden

字段取值规则中,【单据联查】选择了链接,但edgedb服务未升级

edgedb服务升级到v3.30

【单据联查】修改为该链接的业务主键(属性),而非链接

TypeError(‘unexpected value while building Series of type Float64; found value of type Int64: 0\n\nHint: Try setting strict=False to allow passing data with mixed types.’)

目标行结构的某列值有的是float,有的是int,polars处理的有点问题,要求所有类型严格一致,要不然创建不出dataframe

bugfix,升级至V3.0.0.0.10之后版本


后端:adapter-engine-server3-0:V3.0.0.0.10

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send