| # 定义转换设置 (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) 商务文件中对应数据要素的映射信息 |