| 定义转换设置 (ecedi5115s000) |  |
| 使用此进程来记录用于转换外发商务文件的字段、顺序和选项。 注意 此进程受保护，因此，对于影响此进程的进程以及受此进程影响的进程，此进程无法与之同时运行。 相关主题 使用详细进程 使用转换设置（定义）
字段 | 说明
组织 | 代表在电子数据交换 (EDI) 通信中使用的一组标准的代码，例如 ANSI X12、UN/EDIFACT 和 VDA。
组织 | 代码的名称或说明
EDI 商务文件 | 应用程序支持的接收和/或外发商务文件。 这些商务文件可以是处于活动状态的（在公司内实际使用的）商务文件，也可以是处于非活动状态的商务文件。 相关主题 使用支持的电子数据交换 (EDI) 商务文件
EDI 商务文件 | 代码的名称或说明
方向 | 电子数据交换 (EDI) 商务文件的方向
字段类型 | ASCII 文件格式 注意 如果文件中的字段使用字段分隔符隔开，或字段具有固定长度，则可以为该文件创建转换设置。
转换设置代码 | 标识转换设置的代码
转换设置代码 | 代码的名称或说明
目标 | 外发商务文件中字段的来源，已在转换设置（关系） (ecedi5112m000) 进程中定义。
字段 | 字段的名称，例如：tdsls400.ofbp。对于外发转换设置，也可使用常量。常量必须以双引号 (") 起始。双引号内的所有文本均将放入商务文件中。 注意 如果要在文本字符串中使用双引号标记，则必须额外输入双引号。例如，""ABC"" 的输出是 "ABC"。
字段 | 代码的名称或说明
序号 | 字段的序号。可以多次包含同一字段。如果字段在转换设置中只出现一次，则可以将该字段设置为 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) <> ""。如果仓库字段未填入任何值，则表达式为真。 以下按照优先级列出运算符： () -（负号） * / \ & + -（加号和减号） = > < <> <= >= 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。 注意 必须先处理赋值表达式中引用的所有表字段，然后才可以处理该表达式赋值至的字段。赋值表达式中引用的字段必须具有较低的处理顺序，该顺序在转换设置定义中定义。例如，在上述示例中，字段 tdsls400.prdt 的处理顺序必须低于字段 tdsls400.ddat，该顺序在转换设置定义中定义。
转换表 | 用于转换字段的转换表
找不到转换表时的措施 | 如果在转换外发商务文件期间出现错误，将会采取此措施。 由于转换表中找不到该字段，所以可能会发生错误。 注意 选择的值必须受处理进程支持。
文本段 | 文本字段中文本段的最大数量 注意 由于商务文件中的文本具有特殊结构，即，每个文本均由一定数量的段组成，而每个段由一定数量的字段组成，因此需要进行单独处理。
按文本段列出的最大文本字段数 | 文本段中字段的最大数量 注意 由于商务文件中的文本具有特殊结构，即，每个文本均由一定数量的段组成，而每个段由一定数量的字段组成，因此需要进行单独处理。
起始位置定义 | 第一个定义的起始位置。ERP 电子数据交换 (EDI) 中的某些代码转换需要代码标识。代码标识是代码转换期间使用的定义，它可用于转换附加的数据明细单，该标识在转换设置定义的第一个定义位置内进行转换。 注意 如果网络 (ecedi0120s000) 进程中“字段类型”字段为“固定长度”，则必须输入字段的实际起始位置。如果在网络 (ecedi0120s000) 进程中“字段类型”字段为“定界”，则必须输入字段编号，从数字 1 开始。
定义长度 | 定义的实际长度 注意 仅当字段类型为“固定长度”时，才可以输入此值。字段类型在 EDI 参数 (ecedi0100s000) 进程中定义。
默认定义 | 如果商务文件中不使用定义，则使用此值。 注意 如果选择使用“物料代码系统”表的物料代码来转换外发物料，则可以在此处输入“物料代码系统”字段的值。 可以使用“物料代码标识”表将此定义的值转换为商务文件中使用的值。 通过在按业务伙伴列出的应用程序支持的 EDI 商务文件 (ecedi0111s000) 进程填写“物料代码系统”字段，可以改写此处输入的值。
转换表 | 用于转换定义的转换表
找不到转换表时的措施 | 如果在转换外发商务文件期间出现错误，将会采取此措施。 由于转换表中找不到该字段，所以可能会发生错误。
字段 | 此说明性字段与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息。此说明性字段仅用于提供信息以及报告。
定义 1 | 第一个定义与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息
定义 2 | 第二个定义与电子数据交换 (EDI) 商务文件中对应数据要素的映射信息