KO01内部订单

1、文档说明

本文档介绍内部订单的相关概念,以及通过前台和BAPI实现的方法。

内部订单: 是一个成本对象,用于跟踪特定任务或作业的成本。它不像成本中心那样与一个常设的部门挂钩,而是与一个有始有终的具体活动相关联。

主要用途:

    成本归集: 将所有与该活动相关的费用(如物料、人工、外部服务等)收集到这一个订单上。

    预算控制: 可以为订单设定总体预算,系统会实时监控实际发生额是否超预算,并可以发出警告或错误。

    成本分析: 方便管理者分析该活动的实际成本与计划成本的差异,评估活动效益。

    期末结算: 在活动结束后,可以将内部订单上归集的成本结算到最终的成本接收对象,如固定资产、成本中心、物料等。

2、前台操作

事务代码KO01

image

输入对应数据,保存即可

image

3、BAPI实现

3.1、创建内部订单

"--------------------@斌将军--------------------
DATA:ls_master_data   LIKE  bapi2075_7,
     lv_testrun       LIKE  bapi0012_gen-testrun,
     ls_master_datb   LIKE  bapi2075_7b,
     ls_e_master_data LIKE  bapi2075_2,
     ls_e_master_datb LIKE  bapi2075_7b,
     lv_orderid       LIKE  bapi2075_2-order,
     lt_srules        TYPE TABLE OF bapi2075_6,
     ls_srules        TYPE bapi2075_6,
     lt_return        TYPE TABLE OF  bapiret2,
     ls_return        TYPE bapiret2,
     lt_extensionin   TYPE TABLE OF  bapiparex,
     ls_extensionin   TYPE bapiparex.

DATA:lv_check   TYPE char1,
     lv_message TYPE char255.

ls_master_data-co_area = '8888'. "控制范围
ls_master_data-order_type = 'ZJGC'."订单类型
ls_master_data-order_name = '订单描述'. "订单描述
ls_master_data-comp_code = '8000'."公司代码
ls_master_data-request_cctr = '80001000'. "请求成本中心
ls_master_data-ext_ord_no = ''."外部订单号

ls_master_datb-invest_profile = '000001'."投资参数文件


CALL FUNCTION 'BAPI_INTERNALORDER_CREATE'
  EXPORTING
    i_master_data = ls_master_data
*   TESTRUN       =
    i_master_datb = ls_master_datb
  IMPORTING
    e_master_data = ls_e_master_data
    e_master_datb = ls_e_master_datb
    orderid       = lv_orderid
  TABLES
    srules        = lt_srules
    return        = lt_return
*   EXTENSIONIN   = lt_extensionin
  .
CLEAR:lv_check,lv_message.
LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
  lv_check = 'E'.
  lv_message = lv_message && ls_return-message.
  CLEAR:ls_return.
ENDLOOP.

IF lv_check = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  WRITE:lv_message.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  WRITE:'SUCCESS'.
ENDIF.
"--------------------@斌将军--------------------

3.2、修改内部订单

可以使用函数ALE_INTERNALORDER_DB_CHANGE

  DATA:lt_aufk_ins  TYPE TABLE OF   aufk,
       lt_aufk_upd  TYPE TABLE OF   aufk,
       lt_jsto_ins  TYPE TABLE OF   jsto,
       lt_jsto_upd  TYPE TABLE OF   jsto,
       lt_jest_ins  TYPE TABLE OF   jest,
       lt_jest_upd  TYPE TABLE OF   jest,
       lt_objnr_del TYPE TABLE OF   ionrb.
CLEAR:lt_aufk_upd.
      READ TABLE lt_aufk INTO DATA(ls_aufk) WITH KEY aufnr = ls_input-aufnr BINARY SEARCH.
      IF sy-subrc EQ 0.
        IF ls_input-ktext IS NOT INITIAL.
          ls_aufk-ktext = ls_input-ktext.
        ENDIF.

        IF ls_input-akstl IS NOT INITIAL.
          ls_aufk-akstl = ls_input-akstl.
        ENDIF.

        IF ls_input-aufex IS NOT INITIAL.
          ls_aufk-aufex = ls_input-aufex.
        ENDIF.

        IF ls_input-phas1 IS NOT INITIAL
          OR ls_input-phas2 IS NOT INITIAL.
          ls_aufk-phas1 = ls_input-phas1.
          ls_aufk-phas2 = ls_input-phas2.
        ENDIF.
        APPEND ls_aufk TO lt_aufk_upd.

        CALL FUNCTION 'ALE_INTERNALORDER_DB_CHANGE'
          TABLES
            t_aufk_ins  = lt_aufk_ins
            t_aufk_upd  = lt_aufk_upd
            t_jsto_ins  = lt_jsto_ins
            t_jsto_upd  = lt_jsto_upd
            t_jest_ins  = lt_jest_ins
            t_jest_upd  = lt_jest_upd
            t_objnr_del = lt_objnr_del.
ENDIF.

以上就是关于KO01内部订单的介绍,希望对你有所帮助

定期更文,欢迎关注

 

posted @ 2025-10-22 10:20  斌将军  阅读(8)  评论(0)    收藏  举报