今天做了个程序,调整SAP APO计划订单生产日期,居然成功了,放博客记录一下。
1、APO的订单表:/SAPAPO/ORDKEY,这里面放了LC里面生产订单的ID。
2、拿到订单ID后,通过函数获取订单的工艺,整车有冲焊涂总4大工艺,会有4个工艺的日期,调整工艺日期,就是调整整车的生产日期。
3、把指定的日期,函数放入参数中。
4、调用函数更新LC中订单的工艺日期。
前提条件:
APO的OM订单管理函数,都需要开一个SESSION号,需要这个号才能执行,我从标准程序中找到了这个号的创建函数。
CALL FUNCTION '/SAPAPO/RRP_SIMSESSION_CREATE'
EXPORTING
iv_simid = gv_simid
IMPORTING
ev_simsession = gv_simsession
EXCEPTIONS
error_message = 1.
取得工艺函数:
CALL FUNCTION '/SAPAPO/OM_ACT_GET_BY_ORDER'
EXPORTING
is_gen_params = gs_gen_params
iv_simsession = gv_simsession
it_order = lt_order
iv_start_time = '19970101010101'
iv_end_time = '20991231235959'
IMPORTING
et_cap_reqs = gt_cap_reqs
EXCEPTIONS
lc_connect_failed = 1
lc_com_error = 2
lc_appl_error = 3
OTHERS = 4.
调整工艺时间函数,从乃天的程序中拷贝到的。
* 取得策略参数
PERFORM frm_get_schedulepara CHANGING ls_get_changed_options
ls_sched_control
lt_sched_params.
CALL FUNCTION '/SAPAPO/OM_ACT_SCHEDULE'
EXPORTING
is_gen_params = gs_gen_params
iv_simsession = gv_simsession
it_activities = lt_act
is_controlparameters = ls_sched_control
it_sched_params = lt_sched_params
is_get_changed_options = ls_get_changed_options
IMPORTING
et_rc = lt_rc
et_changed_orders = lt_changed_orders
et_changed_cap_reqs = lt_changed_cap_reqs
et_sched_failures = lt_sched_failures
et_sched_log = lt_sched_log
et_overflows = lt_overflows
EXCEPTIONS
lc_connect_failed = 1
lc_com_error = 2
lc_appl_error = 3
OTHERS = 4.
APO函数修改完成,还要提交到LC:
FORM frm_save_activities .
IF 1 = 0.
PERFORM activities_save_changes IN PROGRAM /sapapo/saplseq_visual_01 IF FOUND
USING gc_true.
ELSE.
CALL FUNCTION '/SAPAPO/SEQM_RRP_COMMIT'
EXCEPTIONS
commit_error = 1
OTHERS = 2.
IF sy-subrc = 0.
ELSE.
ENDIF.
CALL FUNCTION 'RPM_FCODE_SAVE'
EXPORTING
iv_simid = gv_simid
iv_popup = space
iv_show_msg = space
EXCEPTIONS
fatal_error = 1
other_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDFORM.