测试目的:
通过接口表将主组织中的所有外购总成分配至库存组织BJ中,并对物料的打中小分类进行更新,从而验证通过接口表分配物料的快捷性和准确性。
数据准备:
1 通过以下sql语句查看主组织9WH中所有的外购总成,并且是库存组织BJ中没有的
SELECT SEGMENT1,DESCRIPTION FROM MTL_SYSTEM_ITEMS_B
WHERE ITEM_TYPE='外购总成'
AND SEGMENT1 LIKE 'S%'
AND ORGANIZATION_ID=83
AND SEGMENT1 NOT IN
(
SELECT SEGMENT1
FROM MTL_SYSTEM_ITEMS_B
WHERE
SEGMENT1 LIKE 'S%'
AND ORGANIZATION_ID=103
)
共161条记录
2 新建物料模板BJF自制总成模板(路径:库存管理系统 设置->物料->模板),并选择组织为BJ,详细定义此模板的属性。
测试过程
1 将物料分配到BJ中
(1)将物料插入到接口表中mtl_system_items_interface
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1,description,TEMPLATE_NAME)
SELECT
1,
1,
'CREATE',
103,
MSIB.SEGMENT1,
MSIB.DESCRIPTION,
’BJF自制总成模板_BJ’
FROM
MTL_SYSTEM_ITEMS_B MSIB
WHERE
MSIB.ORGANIZATION_ID=84
AND MSIB.SEGMENT1 IN (
SELECT SEGMENT1,DESCRIPTION FROM MTL_SYSTEM_ITEMS_B
WHERE ITEM_TYPE='外购总成'
AND SEGMENT1 LIKE 'S%'
AND ORGANIZATION_ID=83
AND SEGMENT1 NOT IN
(
SELECT SEGMENT1
FROM MTL_SYSTEM_ITEMS_B
WHERE
SEGMENT1 LIKE 'S%'
AND ORGANIZATION_ID=103
)
)
(2)
COMMIT
(3)转到ERP应用系统,运行请求,导入物料,路径:库存管理系统 物料->导入->导入物料
参数 所有组织:否 其他默认
(4)用以下sql语句查看是否分配成功,
SELECT SEGMENT1
FROM MTL_SYSTEM_ITEMS_B
WHERE
SEGMENT1 LIKE 'S%'
AND ORGANIZATION_ID=103
也可以用以下sql语句查看是否有记录在导入过程中卡住了,并查看错误消息,
SELECT * FROM MTL_INTERFACE_ERRORS
结果:正常,161条记录被分配至BJ库存组织,并将BJF自制总成模板的属性应用到所有被分配的物料。
2 对分配到BJ库存中的物料的大中小分类进行更新,此时被分配的物料的默认的大中小分类是原材料.配套件.标准件
(1)先删除大中小分类,通过以下sql语句插入接口表MTL_ITEM_CATEGORIES_INTERFACE
insert into MTL_ITEM_CATEGORIES_INTERFACE
(item_number,category_set_id, category_id,process_flag, organization_id ,set_process_id, transaction_type)
SELECT
MSIB.SEGMENT1,
MIC.CATEGORY_SET_ID,
MIC.CATEGORY_ID,
'1',
'103',
'1',
'DELETE'
FROM
MTL_ITEM_CATEGORIES MIC,
MTL_SYSTEM_ITEMS_B MSIB,
MTL_CATEGORIES_V MCV
WHERE
MIC.INVENTORY_ITEM_ID=MSIB.INVENTORY_ITEM_ID
AND MSIB.ORGANIZATION_ID=103
AND MIC.ORGANIZATION_ID=103
AND MIC.CATEGORY_ID=MCV.CATEGORY_ID
AND MSIB.SEGMENT1 IN
(
SELECT
MSIB.SEGMENT1
FROM
MTL_ITEM_CATEGORIES MIC,
MTL_SYSTEM_ITEMS_B MSIB,
MTL_CATEGORIES_V MCV
WHERE
MIC.INVENTORY_ITEM_ID=MSIB.INVENTORY_ITEM_ID
AND MSIB.ORGANIZATION_ID=103
AND MIC.ORGANIZATION_ID=103
AND MIC.CATEGORY_ID=142
AND MCV.ENABLED_FLAG='Y'
AND MIC.CATEGORY_ID=MCV.CATEGORY_ID
AND MSIB.SEGMENT1 IN (SELECT SEGMENT1 FROM MTL_SYSTEM_ITEMS_B MSIB WHERE SEGMENT1 LIKE 'S%' AND ORGANIZATION_ID=103 AND SEGMENT1<>'S001')
)
(2) commit
(3) 转到ERP应用系统,运行请求: 物料类别分配开放接口,导入物料,路径:库存管理系统 物料->导入->物料类别分配开放接口
参数 记录集标识:1 其他默认
(4)此时到BJ库存组织查看刚才分配的物料,其类别都已被清空.
(5)对被置空分类的物料按相同的大中小分类进行分组,分组后分别进行更新,此步比较麻烦。此处只对一个分组进行更新,以作测试,
38 5TA-B S016
39 5TA-B S028
40 5TA-B S073
41 5TA-B S078
42 5TA-B S093
43 5TA-B S094
44 5TA-B S101
45 5TA-B S1013
46 5TA-B S1269
47 5TA-B S1322
48 5TA-B S1349
49 5TA-B S1386
50 5TA-B S173
51 5TA-B S176
52 5TA-B S208
53 5TA-B S223
54 5TA-B S224
55 5TA-B S302
56 5TA-B S333
57 5TA-B S388
58 5TA-B S389
59 5TA-B S402
60 5TA-B S429
61 5TA-B S478
62 5TA-B S500
63 5TA-B S557
64 5TA-B S568
65 5TA-B S765
66 5TA-B S904
67 5TA-B S938
68 5TA-B+QC50 S258
69 5TA-B+QC65 S1167
70 5TA-B+QC65 S1230
71 5TA-B+QC65 S1460
72 5TA-B+QC65 S588
73 5TA-B+QC65 S781
74 5TA-B+QC65 S793
75 5TA-B+QC65 S870
76 5TA-B+QC65A S072
77 5TA-B+QC65A S306
78 5TA-B+QCZ50 S357
79 5TA-B+QL40A S030
以上42个物料为相同的物料类别,都是产成品.自制总成.5TA-B,如果物料类别中没有此类别请先定义,路径:库存管理系统 设置->物料->类别->类别代码。
通过以下sql语句查看类别 产成品.自制总成.5TA-B的category_id,
SELECT CATEGORY_ID,DESCRIPTION FROM MTL_CATEGORIES WHERE DESCRIPTION=’产成品.自制总成.5TA-B’
查得结果为1087,插入记录到接口表MTL_ITEM_CATEGORIES_INTERFACE
insert into MTL_ITEM_CATEGORIES_INTERFACE
(item_number,category_set_id, category_id,process_flag, organization_id ,set_process_id, transaction_type)
SELECT
MSIB.SEGMENT1,
'1', --category_set_id ALWAYS 1
'1087', --category_id
'1',
'103',
'1',
'CREATE'
FROM
MTL_SYSTEM_ITEMS_B MSIB
WHERE
MSIB.ORGANIZATION_ID=103
AND MSIB.SEGMENT1 in
(
'S016',
'S028',
'S073',
'S078',
'S093',
'S094',
'S101',
'S1013',
'S1269',
'S1322',
'S1349',
'S1386',
'S173',
'S176',
'S208',
'S223',
'S224',
'S302',
'S333',
'S388',
'S389',
'S402',
'S429',
'S478',
'S500',
'S557',
'S568',
'S765',
'S904',
'S938',
'S258',
'S1167',
'S1230',
'S1460',
'S588',
'S781',
'S793',
'S870',
'S072',
'S306',
'S357',
'S030'
)
(6)COMMIT;
(7) 转到ERP应用系统,运行请求: 物料类别分配开放接口,导入物料,路径:库存管理系统 物料->导入->物料类别分配开放接口
参数 记录集标识:1 其他默认
(8)通过应用或sql语句查看结果,
SELECT
MSIB.SEGMENT1,
MIC.CATEGORY_ID,
MCV.DESCRIPTION
FROM
MTL_ITEM_CATEGORIES MIC,
MTL_SYSTEM_ITEMS_B MSIB,
MTL_CATEGORIES_V MCV
WHERE
MIC.INVENTORY_ITEM_ID=MSIB.INVENTORY_ITEM_ID
AND MSIB.ORGANIZATION_ID=103
AND MIC.ORGANIZATION_ID=103
AND MCV.ENABLED_FLAG='Y'
AND MIC.CATEGORY_ID=MCV.CATEGORY_ID
AND MSIB.SEGMENT1 IN
('S016',
'S028',
'S073',
'S078',
'S093',
'S094',
'S101',
'S1013',
'S1269',
'S1322',
'S1349',
'S1386',
'S173',
'S176',
'S208',
'S223',
'S224',
'S302',
'S333',
'S388',
'S389',
'S402',
'S429',
'S478',
'S500',
'S557',
'S568',
'S765',
'S904',
'S938',
'S258',
'S1167',
'S1230',
'S1460',
'S588',
'S781',
'S793',
'S870',
'S072',
'S306',
'S357',
'S030'
)
结果如下:
| SEGMENT1 | CATEGORY_ID | DESCRIPTION |
1 | S016 | 1087 | 产成品.自制总成.5TA-B |
2 | S028 | 1087 | 产成品.自制总成.5TA-B |
3 | S030 | 1087 | 产成品.自制总成.5TA-B |
4 | S072 | 1087 | 产成品.自制总成.5TA-B |
5 | S073 | 1087 | 产成品.自制总成.5TA-B |
6 | S078 | 1087 | 产成品.自制总成.5TA-B |
7 | S093 | 1087 | 产成品.自制总成.5TA-B |
8 | S094 | 1087 | 产成品.自制总成.5TA-B |
9 | S101 | 1087 | 产成品.自制总成.5TA-B |
10 | S1013 | 1087 | 产成品.自制总成.5TA-B |
11 | S1167 | 1087 | 产成品.自制总成.5TA-B |
12 | S1230 | 1087 | 产成品.自制总成.5TA-B |
13 | S1269 | 1087 | 产成品.自制总成.5TA-B |
14 | S1322 | 1087 | 产成品.自制总成.5TA-B |
15 | S1349 | 1087 | 产成品.自制总成.5TA-B |
16 | S1386 | 1087 | 产成品.自制总成.5TA-B |
17 | S1460 | 1087 | 产成品.自制总成.5TA-B |
18 | S173 | 1087 | 产成品.自制总成.5TA-B |
19 | S176 | 1087 | 产成品.自制总成.5TA-B |
20 | S208 | 1087 | 产成品.自制总成.5TA-B |
21 | S223 | 1087 | 产成品.自制总成.5TA-B |
22 | S224 | 1087 | 产成品.自制总成.5TA-B |
23 | S258 | 1087 | 产成品.自制总成.5TA-B |
24 | S302 | 1087 | 产成品.自制总成.5TA-B |
25 | S306 | 1087 | 产成品.自制总成.5TA-B |
26 | S333 | 1087 | 产成品.自制总成.5TA-B |
27 | S357 | 1087 | 产成品.自制总成.5TA-B |
28 | S388 | 1087 | 产成品.自制总成.5TA-B |
29 | S389 | 1087 | 产成品.自制总成.5TA-B |
30 | S402 | 1087 | 产成品.自制总成.5TA-B |
31 | S429 | 1087 | 产成品.自制总成.5TA-B |
32 | S478 | 1087 | 产成品.自制总成.5TA-B |
33 | S500 | 1087 | 产成品.自制总成.5TA-B |
34 | S557 | 1087 | 产成品.自制总成.5TA-B |
35 | S568 | 1087 | 产成品.自制总成.5TA-B |
36 | S588 | 1087 | 产成品.自制总成.5TA-B |
37 | S765 | 1087 | 产成品.自制总成.5TA-B |
38 | S781 | 1087 | 产成品.自制总成.5TA-B |
39 | S793 | 1087 | 产成品.自制总成.5TA-B |
40 | S870 | 1087 | 产成品.自制总成.5TA-B |
41 | S904 | 1087 | 产成品.自制总成.5TA-B |
42 | S938 | 1087 | 产成品.自制总成.5TA-B |
结果正确 。
总结:
整个过程分两大步,第一将物料分配到子库存组织,第二步更改物料的类别。第一步相对简单,但要保证物料模板属性定义的正确;第二步比较耗时,需要对一个大类的物料进行到小类的分组,然后进行类别的删除和更新。主要的工作都在检查和控制,以确保准确和正确,真正的实现则比较简单,执行的时间也相当短。最重要的一点就是每一次每个过程从开始到结束,都要对记录和记录数进行比较和确认,如果发现不一致,须尽快核查原因,是sql语句问题或是有记录卡在接口表里等,从而保证数据前后的一致性。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/209689/viewspace-584313/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/209689/viewspace-584313/