KS01 成本中心批量导入 - BAPI_COSTCENTER_CREATEMULTIPLE

该程序用于从用户指定的文本文件中上传成本中心数据,使用GUI_UPLOAD函数调用进行文件读取,然后通过BAPI_COSTCENTER_CREATEMULTIPLE创建或更新成本中心信息。同时,程序使用ALV显示数据,允许用户筛选并查看详细信息。
摘要由CSDN通过智能技术生成

目录

一、程序源代码

二、数据模版


一、程序源代码

*&---------------------------------------------------------------------*
*& Report ZBAPI002
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZBAPI002.


TYPE-POOLS: ICON.
TYPE-POOLS SLIS.
TABLES SSCRFIELDS.
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-001.
  PARAMETERS: P_PATH TYPE STRING
                       DEFAULT 'D:\ZDATA.txt' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK SCR1.


TYPES: BEGIN OF ST_TXT,
         KOKRS    TYPE CHAR4, "控制范围
         KOSTL    TYPE CHAR10, "成本中心编码
         DATAB    TYPE CHAR8, "开始时间
         DATBI    TYPE CHAR8, "结束时间
         BUKRS    TYPE CHAR4, "公司代码
         NAME     TYPE CHAR20, "名称
         DESCRIPT TYPE CHAR40, "描述
         KOSAR    TYPE CHAR1, "属性
         VERAK    TYPE CHAR20, "负责人
         KHINR    TYPE CHAR12, "层次结构范围
         FKBER    TYPE CHAR16, "功能范围
         CURRENCY TYPE CHAR5, "货币
         PRCTR    TYPE CHAR10, "利润中心

         MGEFL    TYPE CHAR1, "记录消耗数量的标志
         BKZOB    TYPE CHAR1, "未清项的冻结标志
*         ZFIELD   TYPE CHAR10,                                "自定义字段1

         ICON     TYPE ICON-NAME,
         ZSEL     TYPE CHAR1,
         TYPE     TYPE CHAR1,
         MESSAGE  TYPE CHAR255,
       END OF ST_TXT.

DATA: WA_TXT TYPE ST_TXT,
      IT_TXT LIKE TABLE OF WA_TXT.


DATA: G_TYPE TYPE C.
DATA: G_MSTRING(480).

TYPE-POOLS: ICON.
TYPE-POOLS SLIS.
DATA: IS_LAYOUT   TYPE SLIS_LAYOUT_ALV,          "ALV输出样式
      IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,    "ALV输出的头项目(内表)
      WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,      "ALV输出的头项目(工作区)
      WA_REPID    LIKE SY-REPID. "程序名


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
  PERFORM GET_PC_FILENAME.


START-OF-SELECTION.
  PERFORM UPLOAD_FILE.

  LOOP AT IT_TXT INTO WA_TXT.
    WA_TXT-ZSEL = 'X'.
    MODIFY IT_TXT FROM WA_TXT TRANSPORTING ZSEL.
  ENDLOOP.

  PERFORM FRM_DO_BAPI.

END-OF-SELECTION.
  PERFORM FRM_SHOW_DATA.



*&---------------------------------------------------------------------*
*&      Form  GET_PC_FILENAME
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_PC_FILENAME .
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      MASK             = '文本文件,*.txt.'
      MODE             = 'O'
    IMPORTING
      FILENAME         = P_PATH
    EXCEPTIONS
      INV_WINSYS       = 1
      NO_BATCH         = 2
      SELECTION_CANCEL = 3
      SELECTION_ERROR  = 4
      OTHERS           = 5.

  IF SY-SUBRC NE 0 AND SY-SUBRC NE 3.
    MESSAGE '请输入有效的文件名!' TYPE 'E'.
  ENDIF.
ENDFORM.                    " GET_PC_FILENAME
*&---------------------------------------------------------------------*
*&      Form  UPLOAD_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM UPLOAD_FILE .

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                = P_PATH
      FILETYPE                = 'ASC'
      HAS_FIELD_SEPARATOR     = 'X'
*     HEADER_LENGTH           = 0
*     READ_BY_LINE            = 'X'
*     DAT_MODE                = ' '
*     CODEPAGE                = ' '
*     IGNORE_CERR             = ABAP_TRUE
*     REPLACEMENT             = '#'
*     CHECK_BOM               = ' '
*     VIRUS_SCAN_PROFILE      =
*    IMPORTING
*     FILELENGTH              = UP_COUNT
*     HEADER                  =
    TABLES
      DATA_TAB                = IT_TXT
    EXCEPTIONS
      FILE_OPEN_ERROR         = 1
      FILE_READ_ERROR         = 2
      NO_BATCH                = 3
      GUI_REFUSE_FILETRANSFER = 4
      INVALID_TYPE            = 5
      NO_AUTHORITY            = 6
      UNKNOWN_ERROR           = 7
      BAD_DATA_FORMAT         = 8
      HEADER_NOT_ALLOWED      = 9
      SEPARATOR_NOT_ALLOWED   = 10
      HEADER_TOO_LONG         = 11
      UNKNOWN_DP_ERROR        = 12
      ACCESS_DENIED           = 13
      DP_OUT_OF_MEMORY        = 14
      DISK_FULL               = 15
      DP_TIMEOUT              = 16
      OTHERS                  = 17.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    IF IT_TXT IS INITIAL.
      MESSAGE '上载数据为空' TYPE 'E'.
    ELSE.
      DELETE IT_TXT INDEX 1.
      IF IT_TXT IS INITIAL.
        MESSAGE '上载数据为空' TYPE 'E'.
      ELSE.

      ENDIF.
    ENDIF.
  ENDIF.

ENDFORM.                    " UPLOAD_FILE
*&---------------------------------------------------------------------*
*&      Form  FRM_SHOW_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_SHOW_DATA .
  WA_REPID = SY-REPID.                     "得到程序名
  IS_LAYOUT-ZEBRA = 'X'.                   "颜色相间显示
  IS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.       "优化列宽选项
  IS_LAYOUT-BOX_FIELDNAME = 'ZSEL'.

  DATA: DE_POS TYPE I.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'ICON'.
  WA_FIELDCAT-ICON          = 'X'.
  WA_FIELDCAT-SELTEXT_L     = ''.
  WA_FIELDCAT-SELTEXT_M     = ''.
  WA_FIELDCAT-SELTEXT_S     = ''.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'KOKRS'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '控制范围'.
  WA_FIELDCAT-SELTEXT_M     = '控制范围'.
  WA_FIELDCAT-SELTEXT_S     = '控制范围'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'KOSTL'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '成本中心编码'.
  WA_FIELDCAT-SELTEXT_M     = '成本中心编码'.
  WA_FIELDCAT-SELTEXT_S     = '成本中心编码'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.


  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'DATAB'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '开始时间'.
  WA_FIELDCAT-SELTEXT_M     = '开始时间'.
  WA_FIELDCAT-SELTEXT_S     = '开始时间'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'DATBI'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '结束时间'.
  WA_FIELDCAT-SELTEXT_M     = '结束时间'.
  WA_FIELDCAT-SELTEXT_S     = '结束时间'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'BUKRS'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '公司代码'.
  WA_FIELDCAT-SELTEXT_M     = '公司代码'.
  WA_FIELDCAT-SELTEXT_S     = '公司代码'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'NAME'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '名称'.
  WA_FIELDCAT-SELTEXT_M     = '名称'.
  WA_FIELDCAT-SELTEXT_S     = '名称'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'DESCRIPT'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '描述'.
  WA_FIELDCAT-SELTEXT_M     = '描述'.
  WA_FIELDCAT-SELTEXT_S     = '描述'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'KOSAR'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '成本中心类型'.
  WA_FIELDCAT-SELTEXT_M     = '成本中心类型'.
  WA_FIELDCAT-SELTEXT_S     = '成本中心类型'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.


  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'VERAK'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '负责人'.
  WA_FIELDCAT-SELTEXT_M     = '负责人'.
  WA_FIELDCAT-SELTEXT_S     = '负责人'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'KHINR'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '层次结构范围'.
  WA_FIELDCAT-SELTEXT_M     = '层次结构范围'.
  WA_FIELDCAT-SELTEXT_S     = '层次结构范围'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'FKBER'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '功能范围'.
  WA_FIELDCAT-SELTEXT_M     = '功能范围'.
  WA_FIELDCAT-SELTEXT_S     = '功能范围'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'CURRENCY'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '货币'.
  WA_FIELDCAT-SELTEXT_M     = '货币'.
  WA_FIELDCAT-SELTEXT_S     = '货币'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'MGEFL'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '记录消耗数量的标志'.
  WA_FIELDCAT-SELTEXT_M     = '记录消耗数量的标志'.
  WA_FIELDCAT-SELTEXT_S     = '记录消耗数量的标志'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'BKZOB'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '未清项的冻结标志'.
  WA_FIELDCAT-SELTEXT_M     = '未清项的冻结标志'.
  WA_FIELDCAT-SELTEXT_S     = '未清项的冻结标志'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'ZFIELD'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '自定义字段1'.
  WA_FIELDCAT-SELTEXT_M     = '自定义字段1'.
  WA_FIELDCAT-SELTEXT_S     = '自定义字段1'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'TYPE'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '消息类型: S 成功,E 错误'.
  WA_FIELDCAT-SELTEXT_M     = '消息类型: S 成功,E 错误'.
  WA_FIELDCAT-SELTEXT_S     = '消息类型: S 成功,E 错误'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  DE_POS = DE_POS + 1.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-COL_POS       = DE_POS.
*  WA_FIELDCAT-KEY           = 'X'.
  WA_FIELDCAT-FIELDNAME     = 'MESSAGE'.
  WA_FIELDCAT-REF_TABNAME   = ''.
  WA_FIELDCAT-REF_FIELDNAME = ''.
  WA_FIELDCAT-SELTEXT_L     = '消息文本'.
  WA_FIELDCAT-SELTEXT_M     = '消息文本'.
  WA_FIELDCAT-SELTEXT_S     = '消息文本'.
  WA_FIELDCAT-DDICTXT       = 'L'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK  = ' '
*     I_BYPASSING_BUFFER = ' '
*     I_BUFFER_ACTIVE    = ' '
      I_CALLBACK_PROGRAM = WA_REPID
*     I_CALLBACK_PF_STATUS_SET          = 'SET_STATUS'
*     I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME   =
*     I_BACKGROUND_ID    = ' '
*     I_GRID_TITLE       =
*     I_GRID_SETTINGS    =
      IS_LAYOUT          = IS_LAYOUT
      IT_FIELDCAT        = IT_FIELDCAT
*     IT_EXCLUDING       =
*     IT_SPECIAL_GROUPS  =
*     IT_SORT            =
*     IT_FILTER          =
*     IS_SEL_HIDE        =
*     I_DEFAULT          = 'X'
*     I_SAVE             = ' '
*     IS_VARIANT         =
*     IT_EVENTS          =
*     IT_EVENT_EXIT      =
*     IS_PRINT           =
*     IS_REPREP_ID       =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE  = 0
*     I_HTML_HEIGHT_TOP  = 0
*     I_HTML_HEIGHT_END  = 0
*     IT_ALV_GRAPHICS    =
*     IT_HYPERLINK       =
*     IT_ADD_FIELDCAT    =
*     IT_EXCEPT_QINFO    =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB           = IT_TXT
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " FRM_SHOW_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_DO_BDC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_DO_BAPI .

*  DATA: WA_CI_CSKS TYPE CI_CSKS.

  DATA: CONTROLLINGAREA TYPE BAPI0012_GEN-CO_AREA.

  DATA: WA_COSTCENTERLIST TYPE BAPI0012_CCINPUTLIST,
        IT_COSTCENTERLIST LIKE STANDARD TABLE OF WA_COSTCENTERLIST,

        WA_RETURN         TYPE BAPIRET2,
        IT_RETURN         LIKE STANDARD TABLE OF WA_RETURN.

  DATA: WA_EXTENSIONIN TYPE BAPIPAREX,
        IT_EXTENSIONIN LIKE STANDARD TABLE OF WA_EXTENSIONIN.


  LOOP AT IT_TXT INTO WA_TXT WHERE ZSEL = 'X'.
***********************BAPI执行
    CLEAR: G_TYPE,
           G_MSTRING.
    CLEAR: CONTROLLINGAREA,
           IT_COSTCENTERLIST,
           IT_RETURN.
    CLEAR: IT_EXTENSIONIN.

    CONTROLLINGAREA = WA_TXT-KOKRS."控制范围
    CLEAR: WA_COSTCENTERLIST.
    WA_COSTCENTERLIST-COSTCENTER = WA_TXT-KOSTL."成本中心编码
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  = WA_COSTCENTERLIST-COSTCENTER
      IMPORTING
        OUTPUT = WA_COSTCENTERLIST-COSTCENTER.
    WA_COSTCENTERLIST-VALID_FROM = WA_TXT-DATAB."开始时间
    WA_COSTCENTERLIST-VALID_TO = WA_TXT-DATBI."结束时间
    WA_COSTCENTERLIST-COMP_CODE = WA_TXT-BUKRS."公司代码
    WA_COSTCENTERLIST-NAME = WA_TXT-NAME."名称
    WA_COSTCENTERLIST-DESCRIPT = WA_TXT-DESCRIPT."描述
    WA_COSTCENTERLIST-COSTCENTER_TYPE = WA_TXT-KOSAR."成本中心类型
    WA_COSTCENTERLIST-PERSON_IN_CHARGE = WA_TXT-VERAK."负责人
    WA_COSTCENTERLIST-COSTCTR_HIER_GRP = WA_TXT-KHINR."层次结构范围
    WA_COSTCENTERLIST-FUNC_AREA = WA_TXT-FKBER."层次结构范围
    WA_COSTCENTERLIST-CURRENCY = WA_TXT-CURRENCY."货币
    WA_COSTCENTERLIST-PROFIT_CTR = WA_TXT-PRCTR."利润中心
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  = WA_COSTCENTERLIST-PROFIT_CTR
      IMPORTING
        OUTPUT = WA_COSTCENTERLIST-PROFIT_CTR.


    WA_COSTCENTERLIST-RECORD_QUANTITY = WA_TXT-MGEFL."记录消耗数量的标志
    WA_COSTCENTERLIST-LOCK_IND_COMMITMENT_UPDATE = WA_TXT-BKZOB."未清项的冻结标志
    APPEND WA_COSTCENTERLIST TO IT_COSTCENTERLIST.

*    CLEAR: WA_EXTENSIONIN.
*    CLEAR: WA_CI_CSKS.
*    WA_CI_CSKS-ZFIELD = WA_TXT-ZFIELD.
*    WA_EXTENSIONIN-STRUCTURE = 'CI_CSKS'.
*    WA_EXTENSIONIN-VALUEPART1 = WA_CI_CSKS.
*    APPEND WA_EXTENSIONIN TO IT_EXTENSIONIN.

    CALL FUNCTION 'BAPI_COSTCENTER_CREATEMULTIPLE'
      EXPORTING
        CONTROLLINGAREA = CONTROLLINGAREA
*       TESTRUN         = ' '
*       MASTER_DATA_INACTIVE       = ' '
*       LANGUAGE        =
      TABLES
        COSTCENTERLIST  = IT_COSTCENTERLIST
        RETURN          = IT_RETURN
*       EXTENSIONIN     = IT_EXTENSIONIN
*       EXTENSIONOUT    =
      .

    READ TABLE IT_RETURN WITH KEY TYPE = 'E'
                         INTO WA_RETURN.
    IF SY-SUBRC = 0.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
*       IMPORTING
*         RETURN        =
        .
      G_TYPE = 'E'.
      MESSAGE ID WA_RETURN-ID TYPE WA_RETURN-TYPE NUMBER WA_RETURN-NUMBER
              WITH WA_RETURN-MESSAGE_V1 WA_RETURN-MESSAGE_V2
                   WA_RETURN-MESSAGE_V3 WA_RETURN-MESSAGE_V4
              INTO G_MSTRING.
*      G_MSTRING = WA_RETURN-MESSAGE.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT = 'X'
*       IMPORTING
*         RETURN        =
        .
      G_TYPE = 'S'.
      READ TABLE IT_RETURN WITH KEY TYPE = 'S'
                           INTO WA_RETURN.
      IF SY-SUBRC = 0.
        MESSAGE ID WA_RETURN-ID TYPE WA_RETURN-TYPE NUMBER WA_RETURN-NUMBER
                WITH WA_RETURN-MESSAGE_V1 WA_RETURN-MESSAGE_V2
                     WA_RETURN-MESSAGE_V3 WA_RETURN-MESSAGE_V4
                INTO G_MSTRING.
*        G_MSTRING = WA_RETURN-MESSAGE.
      ENDIF.
    ENDIF.


    WA_TXT-TYPE = G_TYPE.
    WA_TXT-MESSAGE = G_MSTRING.

    CASE G_TYPE.
      WHEN 'S'.
        WA_TXT-ICON = ICON_GREEN_LIGHT.
      WHEN 'E'.
        WA_TXT-ICON = ICON_RED_LIGHT.
      WHEN OTHERS.
    ENDCASE.

    MODIFY IT_TXT FROM WA_TXT TRANSPORTING ICON TYPE MESSAGE.

  ENDLOOP.
ENDFORM.                    " FRM_DO_BDC

二、数据模版

控制范围CHENCHENCHENCHEN
成本中心编码CHEN1001CHEN1002CHEN1003CHEN1004
开始时间20230101202301012023010120230101
结束时间99991231999912319999123199991231
公司代码CHENCHENCHENCHEN
名称生产部仓库生产车间设备维作部
描述生产部仓库生产车间设备维作部
属性1111
负责人张1张2张3张3
层次结构范围CHEN_1CHEN_1CHEN_1CHEN_1
功能范围1000100010001000
货币CNYCNYCNYCNY
利润中心CHENCHENCHENCHEN
记录数量  X 
未清项的冻结标志XXXX

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈送平er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值