ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CJ37/CJ38 增加和返回预算

2022-03-04 12:02:17  阅读:135  来源: 互联网

标签:return bpak lt CJ38 ls 预算 CJ37 prps


一、预算补充CJ37/预算返回CJ38

二、补充预算CJ37,点击保存

预算返回CJ38,点击保存

三、代码示例

预算补充代码

    SELECT
      pspnr,
      posid,
      objnr
    FROM prps
    INTO TABLE @DATA(lt_prps)
    FOR ALL ENTRIES IN @lt_ysbc
    WHERE posid = @lt_ysbc-posid. //WBS

    IF lt_prps IS NOT INITIAL.
      SORT lt_prps BY posid.
      "参数 I_BUDGET_ACTIVITY 是业务交易,支持以下这些业务交易。
      "原始预算
      "– KBUD 预算修改(TCODE:CJ30/CJ32)
      "– KBN0 预算补充(TCODE:CJ37)
      "– KBR0 预算返回(TCODE:CJ38)
      "
      "总体规划
      "– KSTP 总收入(TCODE:CJ40)
      "– KSTR(仅项目 TCODE:CJ42)
      LOOP AT lt_ysbc INTO ls_ysbc.
        READ TABLE lt_prps INTO DATA(ls_prps) WITH KEY posid = ls_ysbc-posid BINARY SEARCH.
        IF sy-subrc EQ 0.
          CLEAR:ls_bpak.
          ls_bpak-e_objnr = ls_prps-objnr.
          ls_bpak-twaer    = 'CNY'.
          ls_bpak-wert    = ls_ysbc-wtges.
          "ls_bpak-e_ges   = 'X'.
          "ls_bpak-e_versn = '001'.
          "ls_bpak-e_wrttp  = '01'.
          APPEND ls_bpak TO lt_bpak.
        ENDIF.

        CLEAR:ls_ysbc.
      ENDLOOP.

      CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
        EXPORTING
          i_budget_activity      = 'KBN0'
          i_budget_activ_sup_ret = ' '
          i_delta_amounts        = 'X'
          i_rollup_data          = 'X'
          i_check_plan_data      = 'X'
          i_commit_all           = 'Y'
        IMPORTING
          e_errors_found         = lv_oax
        TABLES
          it_bpak                = lt_bpak
          it_return              = lt_return
        EXCEPTIONS
          no_update              = 1
          OTHERS                 = 2.

      IF lv_oax IS INITIAL.
        e_return-type = 'S'.
        e_return-message = '预算维护成功'.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      ELSE.
        e_return-type = 'E'.
        e_return-message = '预算维护失败'.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.

    ELSE.
      e_return-type = 'E'.
      e_return-message = '未维护对应的WBS'.
      RETURN.
    ENDIF.

预算返回代码

CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
        EXPORTING
          i_budget_activity      = 'KBR0'
          i_budget_activ_sup_ret = ' '
          i_delta_amounts        = 'X'
          i_rollup_data          = 'X'
          i_check_plan_data      = 'X'
          i_commit_all           = 'Y'
        IMPORTING
          e_errors_found         = lv_oax
        TABLES
          it_bpak                = lt_bpak
          it_return              = lt_return
        EXCEPTIONS
          no_update              = 1
          OTHERS                 = 2.

      IF lv_oax IS INITIAL.
        e_return-type = 'S'.
        e_return-message = '预算减少成功'.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      ELSE.
        e_return-type = 'E'.
        e_return-message = '预算减少失败'.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.

 

标签:return,bpak,lt,CJ38,ls,预算,CJ37,prps
来源: https://www.cnblogs.com/BinGeneral/p/15963696.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有