# PLM与E10接口

物料接口 Action Handler: QF_ERP_wl

BOM接口 Action Handler: QF_ERP_BOM

日志位置：`%TEMP%/tc_用户id/QF_ERP_wl_20210525.txt` 和 `%TEMP%/tc_用户id/QF_ERP_BOM_20210525.txt`

### 参数：

```text
-bypass: 配置后开启旁路执行
```

### 首选项：

全部首选项都是多值、站点

#### 1. 物料接口

> Connor_ERP_wl: 
>
> ```text
> 配置host, service, parameter标签信息
> ```
>
> Connor_ERP_wl_gi: 
>
> ```text
> 配置<detail name="GI">下的field标签信息
> ```
>
> Connor_ERP_wl_pli
>
> ```text
> 配置<detail name="PLI">下的field标签信息
> ```

#### 2. BOM接口

> Connor_ERP_BOM:
>
> ```text
> 配置host, service, parameter标签信息
> ```
>
> Connor_ERP_BOM_parent:
>
> ```text
> 配置<data name="BOM">下的field标签信息，导出对象是BOM父行
> ```
>
> Connor_ERP_BOM_child
>
> ```text
> 配置<detail name="BOM_D">下的field标签信息，导出对象是BOM子行
> ```
>
> Connor_ERP_BOM_parent_zizhi:
>
> ```text
> 配置<data name="BOM">下的field标签信息，导出对象是底层自制件
> ```
>
> Connor_ERP_BOM_child_zizhi
>
> ```text
> 配置<detail name="BOM_D">下的field标签信息，导出对象是自制件下的原材料
> ```
>

### 首选项格式：

首选项格式分两类，一种是host,、service、parameter标签的信息；另一种是field标签的信息

#### 1. host、service和parameter配置

**相关首选项**

> Connor_ERP_wl
>
> Connor_ERP_BOM

**格式**

```text
首选项共13行
第1行为调用的webservice地址
第2行是host标签中prod属性的值
第3行是host标签中ver属性的值
第4行是host标签中ip属性的值
第5行是host标签中lang属性的值
第6行是host标签中acct属性的值
第7行是service标签中prod属性的值
第8行是service标签中name属性的值
第9行是service标签中ip属性的值
第10行是key为productName的parameter标签的值
第11行是key为templateName的parameter标签的值
第12行是host标签中id属性的值
第13行是service标签中id属性的值
```

**示例**

```text
http://192.168.8.115:9999/IntegrationEntry
XThirdParty
1.0
127.0.0.1
zh_CN
dcms
E10
GROUP_ITEM.ImportData
192.168.11.17
XThirdParty
GROUP_ITEM.I01
```

#### 2. field配置

**相关首选项**

> Connor_ERP_wl_gi
>
> Connor_ERP_wl_pli
>
> Connor_ERP_BOM_parent
>
> Connor_ERP_BOM_child

**格式**

```text
总体格式为“ERP字段名称=ERP字段类型=属性提取配置”
写入到xml中后的结果为“<field name="ERP字段名称" type="ERP字段类型">属性提取配置获得的值</field>”
```

**属性提取配置**

属性提取配置分为三种类型：固定值，非引用属性，引用属性

2.1 固定值

```text
格式：直接配置需要填写的值，注意不能包含点“.”
示例：itemcode=string=零组件ID
```

2.2 非引用属性

```
格式：属性位置.属性名称
属性位置：包含bom、item、rev、form，分别对应bom行、对象、版本、版本表单
特殊属性位置：pbom、prev，对部分BOM子行配置适用，用于提取父项信息，如Connor_ERP_BOM_child、Connor_ERP_BOM_child_zizhi
属性名称：属性真实名称
示例：ITEM_CODE=string=item.item_id

工艺属性位置增加：rawitem、rawrev、rawform，分别对应原材料的对象、版本、版本表单
原材料提取逻辑：获取自制零件的原材料信息；如果工艺的关联（IMAN_METarget）
目标类型为QF8PartRevision且表单属性qf8laiyuan为自制，则获取其QF8SCXXrelation关系下QF8RawMaterialsRevision类型对象的信息
```

2.3 引用属性

```text
格式：属性位置.引用属性名称.非引用属性名称
通过引用属性名称获取到引用的对象，再通过非引用属性名称提取引用对象的属性
示例：Datasets=string=rev.IMAN_specification.object_name
```

**特殊配置**

2.4 替换通过属性提取配置获取的值

```text
在以上配置行的后面添加内容：“:属性值1=替换值1;属性值2=替换值2”
如果需要配置默认值，可以配置“default=默认值”，当属性值获取为空时，将数据替换成默认值
如果需要把所有值替换，可以配置“*=替换值”，当属性值获取不为空时，将数据进行替换
```

2.5 分割属性值

```text
对获取并替换后的值进行分割，在erp字段名称后追加配置
格式：“erp字段名称@@分割字符@@数据索引”，数据索引从零开始
示例：“分母@@/@@1=string=item.object_desc”，取对象描述的值用“/”分割后的第二个值
```

2.6 特殊属性名称

```text
ICS: (大写)填写当前提取位置的分类id，示例：ERP字段=string=rev.ICS
ICSORTYPE: (大写)填写当前提取位置的分类id，如果未分类则取其类型名称，示例：ERP字段=string=rev.ICSORTYPE
UID: (大写)填写当前提取位置的uid，示例：ERP字段=string=item.UID
```

2.7 提取字符串属性的显示值

```text
字符串类型的属性默认提取真实值，如果需要提取显示值，在erp字段名称前加“$”
示例：$对象显示类型=string=item.object_type
```

2.8 属性拼接配置

```text
连续配置的ERP字段名称会被自动拼接
```

**示例**

```text
$ERP字段=ERP类型=ITEM.object_type
ITEM_CODE=string=item.item_id
ITEM_NAME=string=item.object_name
ITEM_SPECIFICATION=string=form.qf8xhgg
FEATURE_GROUP_CODE=string=rev.ICS
UNIT_CODE=string=form.qf8mrdw
UDF021=string=rev.item_revision_id
DRAWING_NO=string=form.qf8th
UDF022=string=拼接到前面
UDF022=string=form.qf8ywmc
UDF022=string=拼接到后面
SHORTCUT=string=form.qf8jbm
UDF023=string=form.qf8cl
LIFECYCLE_CODE=string=form.qf8cpjd
UDF024=string=form.qf8gzjsx
UDF025=string=form.qf8sfbj
UDF026=string=rev.release_status_list.object_string:TCM 已发布=通用
PLM_DATAKEY=string=rev.UID
分子@@/@@0=string=item.object_desc
分母@@/@@1=string=item.object_desc
```



# PLM与MES接口

接口 Action Handler: QF_ERP_BOP

日志位置：`%TEMP%/tc_用户id/QF_ERP_BOP_20210525.txt`

### 参数：

```text
-bypass: 配置后开启旁路执行
```

### 首选项：

全部首选项都是多值、站点

#### 1. 物料接口

> Connor_MES_wl: 
>
> ```text
> 配置host, service等标签信息
> ```
>
> Connor_MES_wl_data: 
>
> ```text
> 配置<data name="item">下的field标签信息
> ```

#### 2. BOP接口

> Connor_MES_BOP:
>
> ```text
> 配置host, service等标签信息
> ```
>
> Connor_MES_BOP_parent:
>
> ```text
> 配置<data name="process">下的field标签信息，导出对象是BOM父行
> ```
>
> Connor_MES_BOP_opstaiton_detail
>
> ```text
> 配置<detail name="opstaiton_detail">下的field标签信息，导出对象是工序行
> ```
>
> Connor_MES_BOP_opresource_detail
>
> ```text
> 配置<detail name="opresource_detail">下的field标签信息，导出对象是工艺资源行
> ```
>
> Connor_MES_BOP_opsup_detail
>
> ```text
> 配置<detail name="opsup_detail">下的field标签信息，导出对象是工艺辅料行
> ```
>
> Connor_MES_BOP_material_detail
>
> ```text
> 配置<detail name="material_detail">下的field标签信息，导出对象是材料行
> 
> 20220304:修改为原材料，只有一个，提取逻辑见属性位置
> ```

#### 3. 文件

> 首选项：QF_PLM_MES_FILE
>
> 需要两行数据
>
> 第一行：传到接口中的地址前缀
>
> 第二行：本地文件夹路径
>
> 注意路径后需要添加“\”
>
> 示例：
>
> ```text
> \\192.168.1.106\autocode\
> C:\autocode\
> ```

### 首选项格式：

首选项格式分两类，一种是host,、service等标签的信息；另一种是field标签的信息

#### 1. host、service配置

**相关首选项**

> Connor_MES_wl
>
> Connor_MES_BOP

**格式**

```text
物料首选项共10行，bom首选项共13行
第1行为调用的webservice地址
第2行是host标签中prod属性的值
第3行是host标签中ver属性的值
第4行是host标签中ip属性的值
第5行是host标签中id属性的值
第6行是host标签中acct属性的值
第7行是service标签中prod属性的值
第8行是service标签中ip属性的值
第9行是service标签中id属性的值
第10行是service标签中name属性的值

以下是Connor_MES_wl首选项需要额外添加的配置

第11行是name为EntId的datakey标签的值
第12行是name为CompanyId的datakey标签的值
第13行是name为item_no的datakey标签的值
```

**示例**

```text
http://192.168.8.115:9999/IntegrationEntry
OTHER
1.0
127.0.0.1
TEST
user01
MES
192.168.11.17
sMESPROD
item.create
01
01
MO-21030404-4
```

#### 2. field配置

**相关首选项**

> Connor_MES_wl_data
>
> Connor_MES_BOP_opstaiton_detail
>
> Connor_MES_BOP_opresource_detail
>
> Connor_MES_BOP_opsup_detail
>
> Connor_MES_BOP_material_detail

**格式**

```text
总体格式为“ERP字段名称=ERP字段类型=属性提取配置”
写入到xml中后的结果为“<field name="ERP字段名称" type="ERP字段类型">属性提取配置获得的值</field>”
```

**属性提取配置**

属性提取配置分为三种类型：固定值，非引用属性，引用属性

2.1 固定值

```text
格式：直接配置需要填写的值，注意不能包含点“.”
示例：itemcode=string=零组件ID
```

2.2 非引用属性

```
格式：属性位置.属性名称
属性位置：包含bom、item、rev、form，分别对应bom行、对象、版本、版本表单
属性名称：属性真实名称
示例：ITEM_CODE=string=item.item_id
```

2.3 引用属性

```text
格式：属性位置.引用属性名称.非引用属性名称通过引用属性名称获取到引用的对象，再通过非引用属性名称提取引用对象的属性示例：Datasets=string=rev.IMAN_specification.object_name
```

**特殊配置**

2.4 替换通过属性提取配置获取的值

```text
在以上配置行的后面添加内容：“:属性值1=替换值1;属性值2=替换值2”如果需要配置默认值，可以配置“default=默认值”，当属性值获取为空时，将数据替换成默认值如果需要把所有值替换，可以配置“*=替换值”，当属性值获取不为空时，将数据进行替换
```

2.5 分割属性值

```text
对获取并替换后的值进行分割，在erp字段名称后追加配置格式：“erp字段名称@@分割字符@@数据索引”，数据索引从零开始示例：“分母@@/@@1=string=item.object_desc”，取对象描述的值用“/”分割后的第二个值
```

2.6 特殊属性名称

```text
ICS: (大写)填写当前提取位置的分类id，示例：ERP字段=string=rev.ICSUID: (大写)填写当前提取位置的uid，示例：ERP字段=string=item.UID
ICSNAME：（大写）填写当前提取位置的分类名称
GCBH：（大写）从当前提取位置的IMAN_MEWorkArea关系查找工厂编号
本站工艺和下站工艺在代码中处理，但仍需要进行配置
GWBM：（大写）从当前提取位置的子行查找工位编码，即需要配置为 ERP字段名称=string=bom.GWBM
GWMC：（大写）从当前提取位置的子行查找工位名称，即需要配置为 ERP字段名称=string=bom.GWMC
```

2.7 提取字符串属性的显示值

```text
字符串类型的属性默认提取真实值，如果需要提取显示值，在erp字段名称前加“$”示例：$对象显示类型=string=item.object_type
```