工艺路线批导需求:
Step2. 功能按钮”工艺路线模板下载“下载EXCEL 模板
Step3. 做工艺路线批量导入
Step3. 1 数据有效性检查:
1 工厂---工厂为选择屏幕输入的工厂。如果不同,显示错误信息“请检查工厂信息”,退出。
2 物料工厂视图---父件的编码在MARC表存在,如果不存在显示错误信息“XXXX物料没有扩展工厂视图,请再次检查所有数据”,退出。
3 工艺路线组号/组计数器检查----根据设置的参数,确定是否为初始化账号。如果是初始化账号,还是检查工艺路线组号/组计数器是否完整,如果为空,显示错误信息“工艺路线组号/组计数器不能为空”,退出。
如果是初始化账号,检查对应的工艺路线是否存在(取MAPL表,删除标识MAPL-LOEKZ为空,根据物料号和工厂取黄色字段。MAPL-WERKS = 输入工厂),如果系统中已经存在,
显示错误信息“XXXX物料的工艺路线已经存在,不允许初始化导入”,退出。
4 工序编号---相同的父件-工厂-工艺路线组号-组计数器工序编号不能重复。如重复显示错误信息“父件XXXX工序编号重复”,退出。
5 标准值1-6检查----最多保留小数点后3位 ,如果超出3位,显示错误信息”请检查父件XXX工序XXX的标准值X 的数值XXXX超出3位 “,退出。
6 全部检查完成无错误,显示信息“检查完成,未发现错误。”,回车后继续其他操作。
创建BAPICALL FUNCTION 'BAPI_ROUTING_CREATE'
* EXPORTING
* TESTRUN = 'X'
* PROFILE =
* BOMUSAGE =
* APPLICATION =
* IMPORTING
* GROUP =
* GROUPCOUNTER =
TABLES
task = it_task
materialtaskallocation = it_matask
* sequence = it_sequence
operation = it_operation[]
* SUBOPERATION =
* REFERENCEOPERATION =
* WORKCENTERREFERENCE =
* COMPONENTALLOCATION =
* PRODUCTIONRESOURCE =
inspcharacteristic = it_check[]
* TEXTALLOCATION =
* TEXT =
return = lt_return[].
READ TABLE lt_return WITH KEY type = 'E' .
IF sy-subrc = 0.
ROLLBACK WORK.
LOOP AT lt_return.
WRITE:/
lt_return-type,
lw_matnr-matnr,
lt_return-id,
lt_return-number,
lt_return-message,
lt_return-message_v1 ,
lt_return-message_v2 ,
lt_return-message_v3 ,
lt_return-message_v4 ,
'调用工艺路线 BAPI 出错'.
ENDLOOP.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = space. " dont pass X
CLEAR l_mes.
l_mes = lt_return-message_v2 .
CONCATENATE '组' space space l_mes 2(8) INTO l_mes.
WRITE: /
'物料',
lw_matnr-matnr,
'导入完毕',
l_mes.
ENDIF.
2 删除工艺路线 CA98
物料编号、工厂和组为必输