PROGRAM:-----
*&---------------------------------------------------------------------*
*& Report ZPROFIT_CENTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPC_TEST.
*----------------------------------------------------------------------*
* TYPES
*----------------------------------------------------------------------*
TYPES: BEGIN OF T_PCU, "Structure for profit center upload
CO_AREA TYPE KOKRS,
PROFIT_CENTRE TYPE PRCTR ,
VALID_FROM TYPE SYDATUM ,
VALID_TO TYPE SYDATUM ,
NAME TYPE KTEXT ,
DESCRIPTION TYPE LTEXT ,
PERSON TYPE VERAPC ,
DEPARTMENT TYPE ABTEIL ,
GROUP TYPE PHINR,
END OF T_PCU,
BEGIN OF T_LOG, "Structure for log
PRCTR TYPE PRCTR,
MESSAGE TYPE BAPI_MSG,
END OF T_LOG.
*----------------------------------------------------------------------*
* DATA
*----------------------------------------------------------------------*
DATA: WA_PCID TYPE BAPI0015ID2,
WA_S1 TYPE BAPI0015_4,
LV_FROM TYPE BAPI0015_3-DATE,
LV_TO TYPE BAPI0015_3-DATE,
WA_RETURN TYPE BAPIRET2,
WA_RETURN1 TYPE BAPIRET2,
WA_BASIC_DATA TYPE BAPI0015_4,
WA_ID TYPE BAPI0015ID2,
LV_FROM_DATE TYPE SYDATUM,
LV_TO_DATE TYPE SYDATUM,
WA_ERROR TYPE T_LOG,
WA_SUCCESS TYPE T_LOG,
LI_ERROR TYPE STANDARD TABLE OF T_LOG,
LI_SUCCESS TYPE STANDARD TABLE OF T_LOG,
LV_ERROR TYPE I,
LV_SUCCESS TYPE I,
LV_TOTAL TYPE I,
IT TYPE STANDARD TABLE OF T_PCU, "declaration of internal table
WA TYPE T_PCU, " work area declaration
LV_SUBRC LIKE SY-SUBRC,
LT_IT_TAB TYPE FILETABLE.
*----------------------------------------------------------------------*
* SELECTION SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLOCK-1 WITH FRAME TITLE TEXT-001.
PARAMETERS : F_LOC LIKE RLGRAP-FILENAME DEFAULT 'D:\RT.XLS'.
SELECTION-SCREEN END OF BLOCK BLOCK-1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_LOC.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'F_LOC'
IMPORTING
FILE_NAME = F_LOC.
*----------------------------------------------------------------------*
* GUI UPLOAD
*----------------------------------------------------------------------*
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'D:/RT.XLS'
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 =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT
* 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.
ENDIF.
DELETE IT INDEX 1.
LOOP AT IT INTO WA.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA-CO_AREA
IMPORTING
OUTPUT = WA-CO_AREA.
WA_ID-CO_AREA = WA-CO_AREA.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA-PROFIT_CENTRE
IMPORTING
OUTPUT = WA-PROFIT_CENTRE.
WA_ID-PROFIT_CTR = WA-PROFIT_CENTRE.
WA_BASIC_DATA-PRCTR_NAME = WA-NAME.
WA_BASIC_DATA-LONG_TEXT = WA-DESCRIPTION.
WA_BASIC_DATA-IN_CHARGE = WA-PERSON.
WA_BASIC_DATA-DEPARTMENT = WA-DEPARTMENT.
WA_BASIC_DATA-PRCTR_HIER_GRP = WA-GROUP.
*----------------------------------------------------------------------*
* BAPI PROFIT CENTER CREARTE FUNCTION MODULE
*----------------------------------------------------------------------*
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
EXPORTING
PROFITCENTERID = WA_ID
VALIDFROM = WA-VALID_FROM
VALIDTO = WA-VALID_TO
BASICDATA = WA_BASIC_DATA
* ADDRESS =
* COMMUNICATION =
* INDICATORS =
* TESTRUN =
* LANGUAGE =
IMPORTING
RETURN = WA_RETURN
* PROFITCENTER =
* CONTROLLINGAREA =
* TABLES
* COMPANYCODES =
.
IF WA_RETURN-TYPE NE 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = WA_RETURN1.
WA_SUCCESS-PRCTR = WA-PROFIT_CENTRE.
WA_SUCCESS-MESSAGE = WA_RETURN-MESSAGE.
APPEND WA_SUCCESS TO LI_SUCCESS.
CLEAR WA_SUCCESS.
ADD 1 TO LV_SUCCESS.
ELSE.
WA_ERROR-PRCTR = WA-PROFIT_CENTRE.
WA_ERROR-MESSAGE = WA_RETURN-MESSAGE.
APPEND WA_ERROR TO LI_ERROR.
CLEAR WA_ERROR.
ADD 1 TO LV_ERROR.
ENDIF.
ENDLOOP.
LV_TOTAL = LV_ERROR + LV_SUCCESS.
WRITE:/10(45)'Total no of profit centers processed:', LV_TOTAL,
/10(45)'Total no of successfully created profit centers:', LV_SUCCESS,
/10(45)'Total no of failed profit centers:', LV_ERROR.
IF LV_SUCCESS IS NOT INITIAL.
SKIP 2.
WRITE:/10'Susseccfully created profit centers'.
WRITE:/10 SY-ULINE(102).
WRITE:/10 SY-VLINE,
(25) 'Profit Center No'COLOR COL_HEADING, SY-VLINE,
(70) ' Message'COLOR COL_HEADING, SY-VLINE.
WRITE:/10 SY-ULINE(102).
LOOP AT LI_SUCCESS INTO WA_SUCCESS.
WRITE:/10 SY-VLINE,
(25)WA_SUCCESS-PRCTR ,SY-VLINE,
(70)WA_SUCCESS-MESSAGE, SY-VLINE.
WRITE:/10 SY-ULINE(102).
ENDLOOP.
ENDIF.
IF LV_ERROR IS NOT INITIAL.
SKIP 2.
WRITE:/10'Unsuccessful profit centers'.
WRITE:/10 SY-ULINE(102).
WRITE:/10 SY-VLINE,
(25) 'Profit Center No'COLOR COL_HEADING, SY-VLINE,
(70) ' Message'COLOR COL_HEADING, SY-VLINE.
WRITE:/10 SY-ULINE(102).
LOOP AT LI_ERROR INTO WA_ERROR.
WRITE:/10 SY-VLINE,
(25)WA_ERROR-PRCTR ,SY-VLINE,
(70)WA_ERROR-MESSAGE, SY-VLINE.
WRITE:/10 SY-ULINE(102).
ENDLOOP.
ENDIF.
END-OF-SELECTION.
*& Report ZPROFIT_CENTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPC_TEST.
*----------------------------------------------------------------------*
* TYPES
*----------------------------------------------------------------------*
TYPES: BEGIN OF T_PCU, "Structure for profit center upload
CO_AREA TYPE KOKRS,
PROFIT_CENTRE TYPE PRCTR ,
VALID_FROM TYPE SYDATUM ,
VALID_TO TYPE SYDATUM ,
NAME TYPE KTEXT ,
DESCRIPTION TYPE LTEXT ,
PERSON TYPE VERAPC ,
DEPARTMENT TYPE ABTEIL ,
GROUP TYPE PHINR,
END OF T_PCU,
BEGIN OF T_LOG, "Structure for log
PRCTR TYPE PRCTR,
MESSAGE TYPE BAPI_MSG,
END OF T_LOG.
*----------------------------------------------------------------------*
* DATA
*----------------------------------------------------------------------*
DATA: WA_PCID TYPE BAPI0015ID2,
WA_S1 TYPE BAPI0015_4,
LV_FROM TYPE BAPI0015_3-DATE,
LV_TO TYPE BAPI0015_3-DATE,
WA_RETURN TYPE BAPIRET2,
WA_RETURN1 TYPE BAPIRET2,
WA_BASIC_DATA TYPE BAPI0015_4,
WA_ID TYPE BAPI0015ID2,
LV_FROM_DATE TYPE SYDATUM,
LV_TO_DATE TYPE SYDATUM,
WA_ERROR TYPE T_LOG,
WA_SUCCESS TYPE T_LOG,
LI_ERROR TYPE STANDARD TABLE OF T_LOG,
LI_SUCCESS TYPE STANDARD TABLE OF T_LOG,
LV_ERROR TYPE I,
LV_SUCCESS TYPE I,
LV_TOTAL TYPE I,
IT TYPE STANDARD TABLE OF T_PCU, "declaration of internal table
WA TYPE T_PCU, " work area declaration
LV_SUBRC LIKE SY-SUBRC,
LT_IT_TAB TYPE FILETABLE.
*----------------------------------------------------------------------*
* SELECTION SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLOCK-1 WITH FRAME TITLE TEXT-001.
PARAMETERS : F_LOC LIKE RLGRAP-FILENAME DEFAULT 'D:\RT.XLS'.
SELECTION-SCREEN END OF BLOCK BLOCK-1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_LOC.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'F_LOC'
IMPORTING
FILE_NAME = F_LOC.
*----------------------------------------------------------------------*
* GUI UPLOAD
*----------------------------------------------------------------------*
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'D:/RT.XLS'
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 =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT
* 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.
ENDIF.
DELETE IT INDEX 1.
LOOP AT IT INTO WA.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA-CO_AREA
IMPORTING
OUTPUT = WA-CO_AREA.
WA_ID-CO_AREA = WA-CO_AREA.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA-PROFIT_CENTRE
IMPORTING
OUTPUT = WA-PROFIT_CENTRE.
WA_ID-PROFIT_CTR = WA-PROFIT_CENTRE.
WA_BASIC_DATA-PRCTR_NAME = WA-NAME.
WA_BASIC_DATA-LONG_TEXT = WA-DESCRIPTION.
WA_BASIC_DATA-IN_CHARGE = WA-PERSON.
WA_BASIC_DATA-DEPARTMENT = WA-DEPARTMENT.
WA_BASIC_DATA-PRCTR_HIER_GRP = WA-GROUP.
*----------------------------------------------------------------------*
* BAPI PROFIT CENTER CREARTE FUNCTION MODULE
*----------------------------------------------------------------------*
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
EXPORTING
PROFITCENTERID = WA_ID
VALIDFROM = WA-VALID_FROM
VALIDTO = WA-VALID_TO
BASICDATA = WA_BASIC_DATA
* ADDRESS =
* COMMUNICATION =
* INDICATORS =
* TESTRUN =
* LANGUAGE =
IMPORTING
RETURN = WA_RETURN
* PROFITCENTER =
* CONTROLLINGAREA =
* TABLES
* COMPANYCODES =
.
IF WA_RETURN-TYPE NE 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = WA_RETURN1.
WA_SUCCESS-PRCTR = WA-PROFIT_CENTRE.
WA_SUCCESS-MESSAGE = WA_RETURN-MESSAGE.
APPEND WA_SUCCESS TO LI_SUCCESS.
CLEAR WA_SUCCESS.
ADD 1 TO LV_SUCCESS.
ELSE.
WA_ERROR-PRCTR = WA-PROFIT_CENTRE.
WA_ERROR-MESSAGE = WA_RETURN-MESSAGE.
APPEND WA_ERROR TO LI_ERROR.
CLEAR WA_ERROR.
ADD 1 TO LV_ERROR.
ENDIF.
ENDLOOP.
LV_TOTAL = LV_ERROR + LV_SUCCESS.
WRITE:/10(45)'Total no of profit centers processed:', LV_TOTAL,
/10(45)'Total no of successfully created profit centers:', LV_SUCCESS,
/10(45)'Total no of failed profit centers:', LV_ERROR.
IF LV_SUCCESS IS NOT INITIAL.
SKIP 2.
WRITE:/10'Susseccfully created profit centers'.
WRITE:/10 SY-ULINE(102).
WRITE:/10 SY-VLINE,
(25) 'Profit Center No'COLOR COL_HEADING, SY-VLINE,
(70) ' Message'COLOR COL_HEADING, SY-VLINE.
WRITE:/10 SY-ULINE(102).
LOOP AT LI_SUCCESS INTO WA_SUCCESS.
WRITE:/10 SY-VLINE,
(25)WA_SUCCESS-PRCTR ,SY-VLINE,
(70)WA_SUCCESS-MESSAGE, SY-VLINE.
WRITE:/10 SY-ULINE(102).
ENDLOOP.
ENDIF.
IF LV_ERROR IS NOT INITIAL.
SKIP 2.
WRITE:/10'Unsuccessful profit centers'.
WRITE:/10 SY-ULINE(102).
WRITE:/10 SY-VLINE,
(25) 'Profit Center No'COLOR COL_HEADING, SY-VLINE,
(70) ' Message'COLOR COL_HEADING, SY-VLINE.
WRITE:/10 SY-ULINE(102).
LOOP AT LI_ERROR INTO WA_ERROR.
WRITE:/10 SY-VLINE,
(25)WA_ERROR-PRCTR ,SY-VLINE,
(70)WA_ERROR-MESSAGE, SY-VLINE.
WRITE:/10 SY-ULINE(102).
ENDLOOP.
ENDIF.
END-OF-SELECTION.
No comments:
Post a Comment