PS 模块BAPI新建修改项目、WBS、网络、作业 (二)
上一篇介绍了项目的新增,这一片主要是项目的修改和状态的编辑。
gs_proj_bus2001_chg-project_definition = is_proj-pspid. "项目编号gs_proj_bus2001_chg-description = is_proj-post1. "PS: 短描述 (第一行文本)gs_proj_bus2001_chg-responsible_no = lv_vernr. "负责人编号 - 负责人姓名gs_proj_bus2001_chg-start = is_proj-plfaz. "开始日期gs_proj_bus2001_chg-finish = is_proj-plsez. "完成日期gs_proj_bus2001_chg-company_code = is_proj-vbukr. "项目的公司代码gs_proj_bus2001_chg-profit_ctr = is_proj-prctr. "利润中心gs_proj_bus2001_chg-plant = is_proj-werks. "工厂gs_proj_bus2001_upd-description = 'X'.gs_proj_bus2001_upd-responsible_no = 'X'.gs_proj_bus2001_upd-start = 'X'.gs_proj_bus2001_upd-finish = 'X'.gs_proj_bus2001_upd-company_code = 'X'.gs_proj_bus2001_upd-profit_ctr = 'X'.gs_proj_bus2001_upd-plant = 'X'.CALL FUNCTION 'BAPI_PS_INITIALIZATION'.CALL FUNCTION 'BAPI_BUS2001_CHANGE'EXPORTINGi_project_definition = gs_proj_bus2001_chgi_project_definition_upd = gs_proj_bus2001_updTABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ENDIF.CHECK sy-subrc NE 0.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.* 项目定义基本信息修改成功ls_return-status = gcon_suc.READ TABLE gt_pomp_msnm INTO DATA(ls_ztpomp_msnm) WITH KEY mesnum = lc_mesnum12BINARY SEARCH.CONCATENATE ls_ztpomp_msnm-mesnum '-' ls_ztpomp_msnm-message INTO ls_return-message.APPEND ls_return TO et_return.ENDIF.
* 90120930 WBS查询出结构,如果位置未变更,不做处理CALL FUNCTION 'BAPI_BUS2054_GETDATA'EXPORTINGi_project_definition = iv_pspidTABLESet_wbs_element = lt_wbs_old.LOOP AT it_wbs INTO gs_wbs.CLEAR : gs_wbs_bus2054_chg,gs_wbs_bus2054_upd,lv_wbs_element,lv_wbs_left,lv_wbs_up.IF gs_wbs-posid IS NOT INITIAL.CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'EXPORTINGinput = gs_wbs-posidIMPORTINGoutput = lv_wbs_element.ENDIF.IF gs_wbs-left_posid IS NOT INITIAL.CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'EXPORTINGinput = gs_wbs-left_posidIMPORTINGoutput = lv_wbs_left.ENDIF.IF gs_wbs-up_posid IS NOT INITIAL.CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'EXPORTINGinput = gs_wbs-up_posidIMPORTINGoutput = lv_wbs_up.ENDIF.* 项目负责人
* 根据负责人姓名取负责人编号SELECT SINGLE vernrFROM tcj04INTO lv_vernrWHERE verna = gs_wbs-verna.* 90120930 WBS查询出结构,如果位置未变更,不做处理READ TABLE lt_wbs_old INTO ls_wbs_old WITH KEY wbs_element = lv_wbs_element.IF sy-subrc EQ 0.IF lv_wbs_left = ls_wbs_old-wbs_left AND lv_wbs_up = ls_wbs_old-wbs_up."Do nothing...ELSE.IF gs_wbs-left_posid IS NOT INITIAL OR gs_wbs-up_posid IS NOT INITIAL.gs_wbs_bus2054_chg-wbs_left = gs_wbs-left_posid."左侧WBSgs_wbs_bus2054_chg-wbs_up = gs_wbs-up_posid. "上级WBSgs_wbs_bus2054_upd-wbs_left = 'X'.gs_wbs_bus2054_upd-wbs_up = 'X'.ENDIF.ENDIF.ELSE.IF gs_wbs-left_posid IS NOT INITIAL OR gs_wbs-up_posid IS NOT INITIAL.gs_wbs_bus2054_chg-wbs_left = gs_wbs-left_posid."左侧WBSgs_wbs_bus2054_chg-wbs_up = gs_wbs-up_posid. "上级WBSgs_wbs_bus2054_upd-wbs_left = 'X'.gs_wbs_bus2054_upd-wbs_up = 'X'.ENDIF.ENDIF.gs_wbs_bus2054_chg-wbs_element = gs_wbs-posid. "工作分解结构元素 (WBS 元素)gs_wbs_bus2054_chg-description = gs_wbs-post1. "PS: 短描述 (第一行文本)gs_wbs_bus2054_chg-responsible_no = lv_vernr. "负责人编号gs_wbs_bus2054_chg-profit_ctr = gs_wbs-prctr. "利润中心gs_wbs_bus2054_chg-proj_type = gs_wbs-prart. "项目类型gs_wbs_bus2054_chg-wbs_account_assignment_element = gs_wbs-belkz. "标志:科目分配元素gs_wbs_bus2054_chg-wbs_billing_element = gs_wbs-fakkz. "标识符: 开票元素gs_wbs_bus2054_chg-user_field_char20_1 = gs_wbs-usr00. "业务类别gs_wbs_bus2054_chg-user_field_char20_2 = gs_wbs-usr01. "CRM 商机编码gs_wbs_bus2054_chg-statistical = gs_wbs-xstat. "统计gs_wbs_bus2054_chg-wbs_cctr_posted_actual = gs_wbs-kostl. "CCtr 过账APPEND gs_wbs_bus2054_chg TO gt_wbs_bus2054_chg.gs_wbs_bus2054_upd-wbs_element = gs_wbs-posid. "工作分解结构元素 (WBS 元素)gs_wbs_bus2054_upd-description = 'X'.gs_wbs_bus2054_upd-responsible_no = 'X'.gs_wbs_bus2054_upd-profit_ctr = 'X'.gs_wbs_bus2054_upd-proj_type = 'X'.gs_wbs_bus2054_upd-wbs_account_assignment_element = 'X'.gs_wbs_bus2054_upd-wbs_billing_element = 'X'.gs_wbs_bus2054_upd-user_field_char20_1 = 'X'.gs_wbs_bus2054_upd-user_field_char20_2 = 'X'.gs_wbs_bus2054_upd-statistical = 'X'.gs_wbs_bus2054_upd-wbs_cctr_posted_actual = 'X'.APPEND gs_wbs_bus2054_upd TO gt_wbs_bus2054_upd.ENDLOOP.CALL FUNCTION 'BAPI_PS_INITIALIZATION'.CALL FUNCTION 'BAPI_BUS2054_CHANGE_MULTI'EXPORTINGi_project_definition = iv_pspidTABLESit_wbs_element = gt_wbs_bus2054_chgit_update_wbs_element = gt_wbs_bus2054_updet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ENDIF.CHECK sy-subrc NE 0.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.* WBS元素基本信息修改成功ls_return-status = gcon_suc.READ TABLE gt_pomp_msnm INTO DATA(ls_ztpomp_msnm) WITH KEY mesnum = lc_mesnum15BINARY SEARCH.CONCATENATE ls_ztpomp_msnm-mesnum '-' ls_ztpomp_msnm-message INTO ls_return-message.APPEND ls_return TO et_return.ENDIF.
暂时需求中没有网络的修改,以后有需求变动再补上。
作业层的修改:
LOOP AT it_activity INTO gs_activity.CLEAR : gs_act_bus2002_chg.gs_act_bus2002_chg-activity = gs_activity-vornr. "在网络和库网络中的作业编号gs_act_bus2002_chg-description = gs_activity-ltxa1. "工序短文本gs_act_bus2002_chg-wbs_element = gs_activity-posid. "工作分解结构元素 (WBS 元素)gs_act_bus2002_chg-control_key = gs_activity-steus. "控制码-内协(ZPS1)和成本(ZPS3)gs_act_bus2002_chg-work_cntr = gs_activity-arbpl. "工作中心gs_act_bus2002_chg-work_activity = gs_activity-arbei. "工作(时间单位H)
*-------------MOD ON 20200423--------Begin-----------------------------------
* gs_act_bus2002_new-calculation_key = gs_activity-indet. "用于计算的码IF gs_activity-steus = 'ZPS1' AND gs_activity-arbei IS INITIAL.gs_act_bus2002_chg-calculation_key = 0. "用于计算的码ELSE.gs_act_bus2002_chg-calculation_key = gs_activity-indet. "用于计算的码ENDIF.
*-------------MOD ON 20200423--------End-------------------------------------gs_act_bus2002_chg-acttype = gs_activity-larnt. "活动类型gs_act_bus2002_chg-cost_elem = gs_activity-sakto. "成本要素编码
* gs_act_bus2002_chg-activity_costs = gs_activity-prkst. "作业中的成本gs_act_bus2002_chg-profit_ctr = gs_activity-prctr. "利润中心IF gs_activity-steus EQ 'ZPS3'.gs_act_bus2002_chg-activity_costs = gs_activity-prkst. "作业中的成本
* ELSE.
* gs_act_bus2002_chg-user_field_curr1 = gs_activity-prkst. "用户字段 - 值3ENDIF.APPEND gs_act_bus2002_chg TO gt_act_bus2002_chg.CLEAR : gs_act_bus2002_upd.gs_act_bus2002_upd-activity = gs_activity-vornr. "在网络和库网络中的作业编号gs_act_bus2002_upd-description = 'X'. "工序短文本gs_act_bus2002_upd-wbs_element = 'X'. "工作分解结构元素 (WBS 元素)gs_act_bus2002_upd-control_key = 'X'. "控制码gs_act_bus2002_upd-work_cntr = 'X'. "工作中心gs_act_bus2002_upd-work_activity = 'X'. "工作(时间单位H)gs_act_bus2002_upd-calculation_key = 'X'. "用于计算的码gs_act_bus2002_upd-acttype = 'X'. "活动类型gs_act_bus2002_upd-cost_elem = 'X'. "成本要素编码
* gs_act_bus2002_upd-activity_costs = 'X'. "作业中的成本gs_act_bus2002_upd-profit_ctr = 'X'. "利润中心IF gs_activity-steus EQ 'ZPS3'.gs_act_bus2002_upd-activity_costs = 'X'. "作业中的成本ELSE.gs_act_bus2002_upd-user_field_curr1 = 'X'. "用户字段 - 值3ENDIF.APPEND gs_act_bus2002_upd TO gt_act_bus2002_upd.ENDLOOP.CALL FUNCTION 'BAPI_PS_INITIALIZATION'.CALL FUNCTION 'BAPI_BUS2002_ACT_CHANGE_MULTI'EXPORTINGi_number = iv_aufnrTABLESit_activity = gt_act_bus2002_chgit_update_activity = gt_act_bus2002_updet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ENDIF.CHECK sy-subrc NE 0.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.* 作业修改成功ls_return-status = gcon_suc.READ TABLE gt_pomp_msnm INTO DATA(ls_ztpomp_msnm) WITH KEY mesnum = lc_mesnum21BINARY SEARCH.CONCATENATE ls_ztpomp_msnm-mesnum '-' ls_ztpomp_msnm-message INTO ls_return-message.APPEND ls_return TO et_return.ENDIF.
当调用BDC后再执行PS相关的BAPI维护项目数据时,可能会报错“GUID 分配时出错: 不可能保存”。(前人经验,未曾考证)
更新物料计划:compoment 组件
下面是BDC的操作,也可以使用BAPI:
作业(Activity)下挂接组件(Component):
创建:BAPI_NETWORK_COMP_ADD
修改:BAPI_NETWORK_COMP_CHANGE
明细:BAPI_NETWORK_COMP_GETDETAIL
LOOP AT it_network.* 内协(ZPS1)成本,即为物料成本
* BDC CN22 写值IF it_network-steus EQ 'ZPS1'." AND it_network-prkst IS NOT INITIAL.REFRESH : gt_bdcdata.* CN22 输入网络编号PERFORM bdc_dynpro USING 'SAPLCOKO' '2000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'CAUFVD-AUFNR' iv_aufnrCHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=LIST'CHANGING gt_bdcdata.* 选择作业定位PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=POSI'CHANGING gt_bdcdata.* 输入作业编号-确认PERFORM bdc_dynpro USING 'SAPLCOVG' '2200'CHANGING gt_bdcdata.PERFORM bdc_field USING 'AFVGD-VORNR' it_network-vornrCHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=ENT1'CHANGING gt_bdcdata.* 选择作业PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=PICK'CHANGING gt_bdcdata.* 跳转到“分配”页签PERFORM bdc_dynpro USING 'SAPLCONW' '1000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=ZUOD'CHANGING gt_bdcdata.* 输入物料计划PERFORM bdc_dynpro USING 'SAPLCONW' '1000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'AFVGD-MAT_PRKST' it_network-prkstCHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'CHANGING gt_bdcdata.* 保存PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'CHANGING gt_bdcdata.PERFORM bdc_field USING 'BDC_OKCODE' '=BU'CHANGING gt_bdcdata.CLEAR : ls_opt.ls_opt-dismode = lv_bdc_mode. "A:调试 N:不显示 E:错误时调试ls_opt-updmode = lv_bdc_upd.ls_opt-cattmode = lv_bdc_cmode.CALL TRANSACTION 'CN22'USING gt_bdcdataOPTIONS FROM ls_optMESSAGES INTO lt_messtab.IF sy-subrc EQ 0.* Do nothing...ELSE.IF sy-subrc EQ '1001'.CLEAR : ls_return.ls_return-status = gcon_err.ls_return-message = '更新物料计划失败'.ELSE.LOOP AT lt_messtab WHERE msgtyp CA 'EA'.CLEAR : ls_return.ls_return-status = gcon_err.MESSAGE ID lt_messtab-msgid TYPE lt_messtab-msgtyp NUMBER lt_messtab-msgnrINTO ls_return-messageWITH lt_messtab-msgv1 lt_messtab-msgv2lt_messtab-msgv3 lt_messtab-msgv4.APPEND ls_return TO et_return.ENDLOOP.ENDIF.ENDIF.ENDIF.ENDLOOP.
更新项目、WBS、网络、作业的状态,项目、WBS状态可以重复REL不报E错误消息,网络和作业的状态一起更新,不可以重复REL,必须先REL项目和WBS才可以对网络进行REL,项目TECO的前提必须网络处于REL状态。
CALL FUNCTION 'BAPI_PS_INITIALIZATION'.* 冻结:SET_SYSTEM_STATUS - MDLK
* 解冻: UNDO_SYSTEM_STATUS - MDLKCALL FUNCTION 'BAPI_BUS2001_SET_STATUS'EXPORTINGproject_definition = is_proj-pspidundo_system_status = is_proj-undo_sys_statusset_system_status = is_proj-sys_statset_user_status = is_proj-user_statIMPORTINGreturn = gs_bapiret1TABLESe_result = gt_bapirest.IF gs_bapiret1-type CA 'EA'.LOOP AT gt_bapirest INTO gs_bapirest.ls_return-status = gcon_err.ls_return-message = gs_bapirest-message_text.APPEND ls_return TO et_return.ENDLOOP.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.RETURN.ENDIF.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.* 项目定义状态更新成功ls_return-status = gcon_suc.READ TABLE gt_pomp_msnm INTO DATA(ls_ztpomp_msnm) WITH KEY mesnum = lc_mesnum13BINARY SEARCH.CONCATENATE ls_ztpomp_msnm-mesnum '-' ls_ztpomp_msnm-message INTO ls_return-message.APPEND ls_return TO et_return.ENDIF.
CALL FUNCTION 'BAPI_PS_INITIALIZATION'.CALL FUNCTION 'BAPI_BUS2054_SET_STATUS'IMPORTINGreturn = gs_bapiret1TABLESi_wbs_system_status = gt_wbs_system_statusi_wbs_user_status = gt_wbs_user_statuse_result = gt_bapirest.IF gs_bapiret1-type CA 'EA'.LOOP AT gt_bapirest INTO gs_bapirest.ls_return-status = gcon_err.ls_return-message = gs_bapirest-message_text.APPEND ls_return TO et_return.ENDLOOP.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.RETURN.ENDIF.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.* WBS元素状态更新成功ls_return-status = gcon_suc.READ TABLE gt_pomp_msnm INTO DATA(ls_ztpomp_msnm) WITH KEY mesnum = lc_mesnum16BINARY SEARCH.CONCATENATE ls_ztpomp_msnm-mesnum '-' ls_ztpomp_msnm-message INTO ls_return-message.APPEND ls_return TO et_return.ENDIF.
SELECT SINGLE objnr FROM aufk INTO @DATA(lv_objnr) WHERE aufnr = @pv_aufnr.IF sy-subrc <> 0.RETURN.ENDIF.CALL FUNCTION 'STATUS_TEXT_EDIT'EXPORTINGclient = sy-mandtobjnr = lv_objnronly_active = 'X'spras = '1'IMPORTINGline = lv_lineEXCEPTIONSobject_not_found = 1OTHERS = 2.IF lv_line CS is_proj-sys_stat. "网络状态不可以重复操作RETURN.ELSE.ENDIF.CALL FUNCTION 'BAPI_PS_INITIALIZATION'.CALL FUNCTION 'BAPI_BUS2002_SET_STATUS'EXPORTINGnumber = is_network_status-aufnrset_system_status = is_network_status-sys_statundo_system_status = is_network_status-undo_sys_statusIMPORTINGreturn = gs_bapiret1TABLESe_result = gt_bapirest.IF gs_bapiret1-type CA 'EA'.LOOP AT gt_bapirest INTO gs_bapirest.ls_return-status = gcon_err.ls_return-message = gs_bapirest-message_text.APPEND ls_return TO et_return.ENDLOOP.CALL FUNCTION 'PS_FLAG_INIT_GLOBAL_FLAGS'.CALL FUNCTION 'PS_FLAG_SET_GLOBAL_FLAGS'EXPORTINGi_precommit_ok = 'Y'.RETURN.ENDIF.CALL FUNCTION 'BAPI_PS_PRECOMMIT'TABLESet_return = gt_bapiret2.LOOP AT gt_bapiret2 INTO gs_bapiret2 WHERE type CA 'AE'.ls_return-status = gcon_err.MESSAGE ID gs_bapiret2-id TYPE gs_bapiret2-type NUMBER gs_bapiret2-numberINTO ls_return-messageWITH gs_bapiret2-message_v1 gs_bapiret2-message_v2gs_bapiret2-message_v3 gs_bapiret2-message_v4.APPEND ls_return TO et_return.ENDLOOP.IF sy-subrc EQ 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'IMPORTINGreturn = gs_bapiret2.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'IMPORTINGreturn = gs_bapiret2.ls_return-status = gcon_suc.ls_return-message = TEXT-s17.APPEND ls_return TO et_return.ENDIF.
PS 模块BAPI新建修改项目、WBS、网络、作业 (二)相关推荐
- PS 模块BAPI新建修改项目、WBS、网络、作业 (一)
新公司有上线PS模块,其实也不能算完全上线吧,外部用的是oracle的PS系统,数据存储和立项又在SAP上操作,新公司挺多模块都是这么做的,对我们这个ABAP真的是难受,面对那些陌生的BAPI老是在查 ...
- IntelliJ IDEA修改项目的根目录名称_修改包目录的名称_修改模块名称_修改项目名称
文章目录 修改项目根目录的名称 修改包目录的名称 模块重命名 修改了项目根目录后,必须删除项目和 .idea 文件,重新导入(重点) 新版本的 IDEA 取消了 Import Project 入口 修 ...
- SAP PS 第12节 PS常用BAPI调用示例
SAP PS BAPI篇 1项目定义 1.1 查询 1.1.1 BAPI_PROJECTDEF_GETLIST生成选择标准的项目定义的清单 1.1.2 BAPI_PROJECTDEF_GETDETAI ...
- SAP PS 模块,项目、WBS与网络作业概念
项目定义 项目定义是项目的唯一标识.通过项目定义,决定了包含于其中的所有WBS元素的组织结构.计划方法.预算方式以及结算方法等信息.而项目定义中的数据,则主要来源于"项目参数文 ...
- SAP License:PS模块WBS预算更改
修改WBS之前通过CJ30附件查询投资程序,如果投资程序不进行修改,WBS预算无法进行修改.如果上年投资程序没被结转,则需要对投资程序进行结转,结转完再追究预算然后在通过CJ32进行预算追究,预算总体 ...
- IntelliJ IDEA for Mac 修改项目模块的名称
按下组合键 Command +; 打开项目结构窗口,选择左侧边栏的菜单[Modules],然后选择你要修改的模块,在右侧的[Name]输入框可以修改名称,具体操作如下图所示: 注:模块名称虽然修改了, ...
- IDEA使用技巧 - 修改项目名称和模块名称
修改项目名称 步骤1:File->Project Structure->Project 修改Project name即可修改项目名称 修改模块名称
- AUTOCAD_ELECTRICAL从入门到放弃(一)新建一个项目和修改编辑块的属性
AUTOCAD_ELECTRICAL从入门到放弃(一)新建一个项目和修改编辑块的属性 AUTOCAD ELECTRICAL据说画电路图比AUTOCAD要好用一点,那么就下载下来入坑看一看,到底使用起来 ...
- cj20n sap 报错未知列的名称_SAP,PS模块配置和操作手册
SAP PS模块配置和操作手册 SAP PS模块配置和操作手册 Overview 项目管理 项目管理总的来说就是需要管理整个项目实施的过程,在这个过程中,需要将各级任务进行分解,也就是通常说的WBS. ...
- cj20n sap 报错未知列的名称_sap ps模块全称 SAP,PS模块配置和操作手册
SAP PS模块配置和操作手册 SAP PS模块配置和操作手册 Overview 项目管理 项目管理总的来说就是需要管理整个项目实施的过程,在这个过程中,需要将各级任务进行分解,也就是通常说的WB ...
最新文章
- 外包公司做遗留项目有意思么?
- java webservice ip_通过Web Service实现IP地址查询功能的示例
- vivo X Fold或首发国产最强屏幕:120Hz LTPO 3.0
- Taro button点击切换选中状态
- 趋势科技防毒墙—控管中心
- stm32f103不同系列之间的代码移植
- 《PHP入门篇之使用教程》
- 常数1的傅里叶变换详解过程
- 开源私有云盘python_搭建Windows版Seafile开源私有云盘
- 史上最简单的免费短信验证码案例
- FFmpeg源代码简单学习:avformat_find_stream_info()
- 常见Shell编程脚本
- windows7 安装哪个版本的vs_门套安装45度拼接VS直角拼接,哪个更好?
- 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
- 英语作文计算机国际会议开幕词,英语作文会议开幕词
- 软件测试——基础篇(软件测试的生命周期和BUG的概念)
- 小米红米3(全网通/免解锁)解BL锁教程申请BootLoader解锁教程
- ebay html 如何编辑,ebay:批量编辑Brand和MPN的步骤
- 整车研发项目阶段归纳
- UIImagePickerController 选照片 拍照 录视频