分类:
2008-06-22 21:34:02
程序跟踪顺序:
(1) 程序:SAPLCE_STRUCTURE(include:LCE_STRUCTUREF01)81行发现
IF p_bom EQ space. "no bom found
WRITE: / text-070.
ENDIF.
(2) 根据p_bom找到关联FM:CE_CFG_STRUCTURE_DISPLAY
(3) 根据这个FM在include: LCUKOF52发现这个标志是以gt_iistpom行有关系,程序在
106行
DESCRIBE TABLE gt_iistpom LINES sy-tfill.
IF sy-tfill > 1.
lv_bom = d_kreuz.
ENDIF.
(4) 根据gt_iistpom这个关键字查找添加tree情况老是只是添加了表头,未添加有表行。那么关键就要找出什么时候才能添加item项
(5) 根据以上信息查找到include:LCUKOF1P(PERFORM process_bom_item)
发现这个程序就是添加item项的,再往上层得出LCUKOF1J(PERFORM bom_explosion_assembly)
在bom_explosion_assembly了里面还有一个物料类型问题,程序在LCUKOF1P的58行 CASE is_sstru-stlty.
WHEN d_bom_material.
发现is_sstru-stlty一直为空
(6) 根据is_sstyu这个结构,在程序LCUKOF1J中的246行发现
READ TABLE istru INTO sstru WITH KEY instp = lv_instp. "539716
(7) 继续查找istru 在程序的LCUKOF1H181行调用了 PERFORM bom_explosion_path
进入bom_explosion_path查看istru 的变化情况,发现只要经过PERFORM read_material_bom_head_data就会变化。
(8) PERFORM read_material_bom_head_data根据来到了程序LCUKOFAE的54行,发现这是CUBF_GET_HEADER_MAST是读取MAST的函数,手工SE37执行也未取得MAST数据,那么可以确定这个跟is_sstru-stlty为空就关系
(9) 进入函数CUBF_GET_HEADER_MAST发现套用了CUBM_MATERIAL_BOM_READ
(10) 进入函数CUBM_MATERIAL_BOM_READ,在72行找到了读取MAST的子程序 PERFORM get_header_mast CHANGING l_handle_mast
l_bom_header
l_subrc.
(11) 进入FORM get_header_mast ,查找到 PERFORM get_header_mast_from_db CHANGING e_handle_mast
e_bom_header
e_subrc.
(12) 进入FORM get_header_mast_from_db查找到FM:CS_ALT_SELECT_MAT
(13) 进入这个FM在120发现了获取配置信息表TC04,TCS41,查看这个配置信息和IDES的对比,结果发现TCS41缺少了了一条数据,而STLAN的1是订单BOM的, TC04和TCS41是关联一起的,在TC04中的SD01决定销售使用04。