| # 转换设置定义 (ecedi5111s000) 使用此进程来记录用于转换接收商务文件的字段、顺序和选项。 注意 此进程受保护，因此，对于影响此进程的进程以及受此进程影响的进程，此进程无法与之同时运行。 相关主题 使用转换设置（定义） 组织 代表在电子数据交换 (EDI) 通信中使用的一组标准的代码，例如 ANSI X12、UN/EDIFACT 和 VDA。 EDI 商务文件 应用程序支持的接收和/或外发商务文件。这些商务文件可以是处于活动状态的（在公司内实际使用的）商务文件，也可以是处于非活动状态的商务文件。 相关主题 使用支持的电子数据交换 (EDI) 商务文件 方向 电子数据交换 (EDI) 商务文件的方向 字段类型 ASCII 文件格式 注意 如果文件中的字段使用字段分隔符隔开，或字段具有固定长度，则可以为该文件创建转换设置。 转换设置代码 标识转换设置的代码 目标 接收商务文件中字段的目标，已在转换设置（关系） (ecedi5112m000) 进程中定义。 字段 字段的名称，例如 tdsls400.ofbp。 序号 字段的序号。可以多次包含同一字段。如果字段在转换设置中只出现一次，则可以将该字段设置为 0 或 1。如果字段在转换设置定义中出现多次，则该字段在转换设置定义中每出现一次，序号就增大 1。 处理顺序 处理字段的顺序 级别 转换设置（关系） (ecedi5112m000) 进程中定义的级别 起始位置 字段在行中的位置 注意 如果网络 (ecedi0120s000) 进程中“字段类型”字段为“固定长度”，则必须输入字段的实际起始位置。如果在网络 (ecedi0120s000) 进程中“字段类型”字段为“定界”，则必须输入字段编号，从数字 1 开始。 要素 索引字段的索引要素，或字符串变量的字符串起始位置 索引字段示例 使用字符串变量时，可以指定字符串的起始位置。此字段与“长度”字段组合使用时，可以指定一个子字符串（例如：对于字符串“ABCDEFGHIJKLMNOP”，当此字段值为 3 且长度为 5 时，会生成输出：“CDEFG”）。
字段 tdsls400.disc（标准深度 = 5 级）
级别 | 1 | 10
| 2 | 15
| 3 | 8
| 4 | 5
| 5 | 7
值为 0 时，输出整个字段：010015008005007。此选项仅用于内部通信。字段值 1 和 3 仅生成以下要素：010 和 008。此输出表明该字段也可用于外部通信。 长度 字段的实际长度 读取下一记录 如果选中此复选框，将在此级别上为接收的商务文件读取一条新记录，并为外发商务文件读取一条属于该字段的表的新记录；如果清除此复选框，则不会读取新记录，但当前记录保持活动状态。 注意 此字段指明，要处理字段内容，是否必须读取新记录。根据此字段的值，您可以确定何时可以从该同一文件中读取新行。 迭代级别 序号，指明处理完字段后光标必须移至的位置。仅当该记录针对迭代级别或转换设置的最后一个字段时，才会使用此字段。 示例 例如：您希望输入一个文本字段，将 ASCII 文件中的数据包含在订单页眉中，该操作以迭代方式执行。一旦填完最后一个文本字段，使用“序号”字段，光标会返回至序号 3 的字段。级别 2 的每一行中，都会包含关键字和三个文本字段。
字段 | 级别 | 序号 | 迭代级别
订单号 | 1 | 1 |
参考 | 1 | 2 |
文本字段 | 2 | 3 |
文本字段 | 2 | 4 |
文本字段 | 2 | 5 | 3
关键字不匹配 序号，指明关键字无效或关键字更改时，光标必须移至的位置。仅当“新建”记录为“是”时，才需要填写此字段。 示例 1 - 迭代处理 处理完所有文本字段后，读取客户编号。级别 2 是迭代的。
字段 | 级别 | 序号 | 返回 | 返回 | 新建
迭代 | 关键字记录 |  |  |  |
订单号 | 1 | 1 |  |  |
参考 | 1 | 2 |  |  |
文本字段 | 2 | 3 |  | 6 | 是
文本字段 | 2 | 4 |  |  |
文本字段 | 2 | 5 | 3 |  |
客户 | 1 | 6 |  |  |
示例 2 - 连续处理 填写完所有订单行（级别 2）后，引入一个新订单（级别 1）。
字段 | 级别 | 序号 | 返回 | 返回 | 新建
迭代 | 关键字记录 |  |  |  |
订单号 | 1 | 1 |  |  | 是
参考 | 1 | 2 |  |  |
客户 | 1 | 3 |  |  |
物料 | 2 | 4 |  | 1 | 是
数量 | 2 | 5 |  |  |
交货日期 | 2 | 6 | 4 |  |
写入记录 如果选中此复选框，则根据输出表达式的结果，在处理完接收商务文件的一个字段后，必须向相关表添加一条记录。字段的目标（前导、页眉或行）确定用来保存商务文件的表。 示例 1
字段 | 目标 | 写入记录
订单号 | 页眉 |
参考 | 页眉 |
客户 | 页眉 | 是
物料 | 行 |
数量 | 行 |
交货日期 | 行 | 是
对同一目标进行写入操作后处理的字段将不会添加至相关表中。无法针对同一记录（例如：订单行）执行若干次写入操作。由于目标具有分级结构，Infor ERP 会检查是否已写入所有较高级别目标。如果尚未写入较高级别目标，则在写入指定目标前，将写入相关目标。分级结构如下： 前导 页眉 行 示例 2
字段 | 目标 | 写入记录
订单号 | 页眉 |
参考 | 页眉 |
客户 | 页眉 |
物料 | 行 |
数量 | 行 |
交货日期 | 行 | 是
由于尚未写入页眉，因此会首先写入页眉，然后写入行。如果没有前导，则会先写入行，再写入页眉。 求值 求值表达式的代码。此表达式确定商务文件中是否包含此字段。表达式为逻辑表达式，表达式结果为真或假。此字段的默认值为 1，即真。将字段包含在商务文件中之前，会执行表达式。换言之，始终执行关联的读取和写入操作。实际上，表达式是一个等式。例如，对于采购订单上的“仓库”字段，表达式可以是：strip((tdpur400.cwar) <> ""。如果仓库字段未填入任何值，则表达式为 true。 在表达式中，可使用下列运算符： 以下按照优先级列出运算符： () -（负号） * / \ & + -（加号和减号） = > < <> <= >= NOT AND OR ?: 表达式中可以包含以下常量：
PI | 3.1415926535..
TRUE | 始终为真。
FALSE | 始终为假。
表达式中可以包含函数。 也可使用数值范围：a IN [10,20] 等价于 a>=10 AND a<=20；a IN [10,20][30,40][50,60] 等价于 a>=10 AND a<=20 OR a>=30 AND a<=40 OR a>=50 AND a<=60。 算术运算示例
() | 括号（优先） |
- | 负号（需要一个参数） | a=-b
* | 乘 | 3*5=15
/ | 除 | 6/2=3
\ | 求模 | 8\3=2
& | 链接字符串 | "A"&"B"="AB"
+ | 加 | 2+3=5
- | 减 | 3-2=1
关系运算（用于比较）示例
= 或 EQ | 等于 | 3=5 是假表达式
<> 或 NE | 不等于 | 3<>5 是真表达式
> 或 GT | 大于 | 3>5 是假表达式
< 或 LT | 小于 | 3<5 是真表达式
>= 或 GE | 大于或等于 | 3>=5 是假表达式
<= 或 LE | 小于或等于 | 3<=5 是真表达式
逻辑运算示例
AND | 与（两者均为真） | a=b AND b=c
OR | 或（两者之一为真） | a=b OR a=c
NOT | 非（非真） | NOT (a=b AND b=c)
其它： condition?true:false 如果 <condition> 为真，则执行 <true>，否则执行 <false>（请务必在 <condition> 两端加上括号，因为它具有最低优先级）。 函数
abs(N) | 求 N 的绝对值。
acos(N) | 求 N 的反余弦值（单位为弧度）。
asc(S) | 求 S 中字符的 ASCII 值的总和，asc("ABC")=65+66+67=198。
asin(N) | 求 N 的反正弦值（单位为弧度）。
atan(N) | 求 N 的反正切值（单位为弧度）。
chr(N) | 求 ASCII 值 N 对应的字符，chr(65)="A"。
cos(N) | 求角度 N（单位为弧度）的余弦值。
cosh(N) | 求角度 N（单位为弧度）的双曲余弦值。
date() | 求当前日期。
date(J,M,D) | 求由 D、M 和 J 日期格式表示的日期。
exp(N) | 求 2.718128.. 的 N 次幂。
int(N) | 求 N 的整数部分（向下舍入）。
len(S) | 求 S 中的字符个数，len("ABC")=3。
log(N) | 求 N 的自然对数。
log10(N) | 求 N 的以 10 为底数的对数。
max(N,M) | 求 N 或 M 两者中的较大值。
min(N,M) | 求 N 或 M 两者中的较小值。
pos(S,T) | 求 T 在 S 中的第一个出现位置，pos("ABCDEFEF","EF")=5。
pow(N,M) | 求 N 的 M 次幂。
round(N,D,M) | 求将 N 舍入为具有 D 个小数位的值。如果 M=0，则将 N 向下舍入，round(1.99,2,0)=1.00。如果 M=1，则 N 正常舍入，round(1.49,2,1)=1.00 而 round(1.50,2,1)=2.00。如果 M=2，则将 N 向上舍入，round(1.01,2,2)=2.00。
rpos(S,T) | 求 T 在 S 中的最后一个出现位置，rpos("ABCDEFEF,"EF")=7。
sin(N) | 求角度 N（单位为弧度）的正弦值。
sinh(N) | 求角度 N（单位为弧度）的双曲正弦值。
sqrt(N) | 求 N 的非负数平方根。
str(N) | 将数值 N 转换为字符串，str(1.04)="1.04"。
strip(S) | 求 S 且后面不带空格。
tan(N) | 求角度 N（单位为弧度）的正切值。
tanh(N) | 求角度 N（单位为弧度）的双曲正切值。
time() | 求 UUMM 格式的当前时间。
val(S) | 将 S 转换为数值，val("1.04")=1.04。
赋值 赋值表达式的代码。表达式结果将写入 ASCII 文件（外发商务文件），并更新至 Infor ERP 应用程序（接收商务文件）。 例如，如果要设置计划交货日期，使其为计划收货日期之前两天，则可为计划交货日期字段指定以下赋值表达式：tdsls400.prdt - 172800。 注意 由于日期在内部作为 UTC 日期进行处理，所以天数必须以秒表示。 因此，172800 表示两天。 必须先处理赋值表达式中引用的所有表字段，然后才可以处理该表达式赋值至的字段。赋值表达式中引用的字段必须具有较低的处理顺序，该顺序在转换设置定义中定义。例如，在上述示例中，字段 tdsls400.prdt 的处理顺序必须低于字段 tdsls400.ddat，该顺序在转换设置定义中定义。 转换字段 如果选中此复选框，则系统将使用相关转换表来转换该字段；如果清除此复选框，则代码与 Infor ERP 中的对应代码匹配，无需进行转换。 注意 可包含于接收商务文件中的所有字段均可转换。如果清除此复选框，则商务文件中的代码与 Infor ERP 中的代码匹配，无需进行转换。 针对转换错误的措施 如果在转换接收的商务文件期间出现错误，将会采取此措施。 注意 选择的值必须受处理进程支持。 代码表 要包含在商务文件中的代码。 例如，要在文本字段中输入代码。 该表包含代码 A 和说明“附加费”。 文本字段将写作“说明: 附加费”。 如果找不到代码，则文本字段将包含该代码而不是说明。 注意 仅当记录是文本字段时，才可以访问此字段。 字段说明 如果该字段是文本字段，请输入要显示于文本字段中的实际字段内容之前的文本字符串。 例如，如果在此字段中输入“说明”，且文本字段内容是“柴油机引擎阀”，则结果文本字段将写作“说明: 柴油机引擎阀”。 字段操作 如何处理接收的商务文件字段。 清空字段值 用于替换电子数据交换 (EDI) 商务文件中空字段的值。 起始位置定义 第一个定义的起始位置。ERP 电子数据交换 (EDI) 中的某些代码转换需要代码标识。代码标识是代码转换期间使用的定义，它可用于转换附加的数据明细单，该标识在转换设置定义的第一个定义位置内进行转换。 注意 如果网络 (ecedi0120s000) 进程中“字段类型”字段为“固定长度”，则必须输入字段的实际起始位置。如果在网络 (ecedi0120s000) 进程中“字段类型”字段为“定界”，则必须输入字段编号，从数字 1 开始。 定义长度 定义的实际长度 注意 仅当字段类型为“固定长度”时，才可以输入此值。字段类型在网络 (ecedi0520m000) 进程中定义。 请勿转换定义 导致不执行任何转换的定义值。 例如，假设此处指定值 SC。 如果商务文件包含定义值 SC，则不执行任何转换。如果该商务文件包含任何其它值，将会转换该值。 注意 如果读取值等于定义值，则不会应用转换表。将使用读取文件。 如果双方均使用 EAN 物料代码，则会发生此情况。 默认定义 如果商务文件中未收到定义，则使用此值。 字段 此说明性字段与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息。此说明性字段仅用于提供信息以及报告。 定义 1 第一个定义与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息 定义 2 第二个定义与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息 |