上一篇介绍了项目的新增,这一片主要是项目的修改和状态的编辑。

  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、网络、作业 (二)相关推荐

  1. PS 模块BAPI新建修改项目、WBS、网络、作业 (一)

    新公司有上线PS模块,其实也不能算完全上线吧,外部用的是oracle的PS系统,数据存储和立项又在SAP上操作,新公司挺多模块都是这么做的,对我们这个ABAP真的是难受,面对那些陌生的BAPI老是在查 ...

  2. IntelliJ IDEA修改项目的根目录名称_修改包目录的名称_修改模块名称_修改项目名称

    文章目录 修改项目根目录的名称 修改包目录的名称 模块重命名 修改了项目根目录后,必须删除项目和 .idea 文件,重新导入(重点) 新版本的 IDEA 取消了 Import Project 入口 修 ...

  3. SAP PS 第12节 PS常用BAPI调用示例

    SAP PS BAPI篇 1项目定义 1.1 查询 1.1.1 BAPI_PROJECTDEF_GETLIST生成选择标准的项目定义的清单 1.1.2 BAPI_PROJECTDEF_GETDETAI ...

  4. SAP PS 模块,项目、WBS与网络作业概念

    项目定义        项目定义是项目的唯一标识.通过项目定义,决定了包含于其中的所有WBS元素的组织结构.计划方法.预算方式以及结算方法等信息.而项目定义中的数据,则主要来源于"项目参数文 ...

  5. SAP License:PS模块WBS预算更改

    修改WBS之前通过CJ30附件查询投资程序,如果投资程序不进行修改,WBS预算无法进行修改.如果上年投资程序没被结转,则需要对投资程序进行结转,结转完再追究预算然后在通过CJ32进行预算追究,预算总体 ...

  6. IntelliJ IDEA for Mac 修改项目模块的名称

    按下组合键 Command +; 打开项目结构窗口,选择左侧边栏的菜单[Modules],然后选择你要修改的模块,在右侧的[Name]输入框可以修改名称,具体操作如下图所示: 注:模块名称虽然修改了, ...

  7. IDEA使用技巧 - 修改项目名称和模块名称

    修改项目名称 步骤1:File->Project Structure->Project 修改Project name即可修改项目名称 修改模块名称

  8. AUTOCAD_ELECTRICAL从入门到放弃(一)新建一个项目和修改编辑块的属性

    AUTOCAD_ELECTRICAL从入门到放弃(一)新建一个项目和修改编辑块的属性 AUTOCAD ELECTRICAL据说画电路图比AUTOCAD要好用一点,那么就下载下来入坑看一看,到底使用起来 ...

  9. cj20n sap 报错未知列的名称_SAP,PS模块配置和操作手册

    SAP PS模块配置和操作手册 SAP PS模块配置和操作手册 Overview 项目管理 项目管理总的来说就是需要管理整个项目实施的过程,在这个过程中,需要将各级任务进行分解,也就是通常说的WBS. ...

  10. cj20n sap 报错未知列的名称_sap ps模块全称 SAP,PS模块配置和操作手册

     SAP PS模块配置和操作手册 SAP PS模块配置和操作手册 Overview 项目管理 项目管理总的来说就是需要管理整个项目实施的过程,在这个过程中,需要将各级任务进行分解,也就是通常说的WB ...

最新文章

  1. 外包公司做遗留项目有意思么?
  2. java webservice ip_通过Web Service实现IP地址查询功能的示例
  3. vivo X Fold或首发国产最强屏幕:120Hz LTPO 3.0
  4. Taro button点击切换选中状态
  5. 趋势科技防毒墙—控管中心
  6. stm32f103不同系列之间的代码移植
  7. 《PHP入门篇之使用教程》
  8. 常数1的傅里叶变换详解过程
  9. 开源私有云盘python_搭建Windows版Seafile开源私有云盘
  10. 史上最简单的免费短信验证码案例
  11. FFmpeg源代码简单学习:avformat_find_stream_info()
  12. 常见Shell编程脚本
  13. windows7 安装哪个版本的vs_门套安装45度拼接VS直角拼接,哪个更好?
  14. 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
  15. 英语作文计算机国际会议开幕词,英语作文会议开幕词
  16. 软件测试——基础篇(软件测试的生命周期和BUG的概念)
  17. 小米红米3(全网通/免解锁)解BL锁教程申请BootLoader解锁教程
  18. ebay html 如何编辑,ebay:批量编辑Brand和MPN的步骤
  19. 整车研发项目阶段归纳
  20. UIImagePickerController 选照片 拍照 录视频

热门文章

  1. windows 搭建代理服务器 - Apache httpd
  2. 您尝试安装的Adobe Flash Player版本不是最新版本解决办法
  3. ui设计app设计风格有哪些?ui设计app界面设计流程是什么?
  4. 惠普重新定义IT基础设施
  5. 腾讯电脑管家怎么阻止软件自动安装
  6. 测度论与概率论笔记6:符号测度
  7. 测试theano有无使用GPU
  8. Linux操作系统基本概述
  9. 平均值绝对偏差最大c语言,请教平均值和最大偏差值得使用
  10. C语言排序(冒泡排序、选择排序、插入排序和快速排序)