You are on page 1of 6

*&---------------------------------------------------------------------*

*& Report ZKA06_SAJIDN


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZKA06_SAJIDN.
TYPE-POOLS: TRUXS.
TYPES: BEGIN OF TY_FINAL,
KOKRS TYPE KOKRS ,
KSTAR TYPE KSTAR ,
DATAB TYPE CHAR10 ,
DATBI TYPE CHAR10 ,
KTEXT TYPE KTEXT ,
LTEXT TYPE LTEXT ,
KATYP TYPE KATYP ,
END OF TY_FINAL.
DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL,
IT_RAW TYPE TRUXS_T_TEXT_DATA,
IT_BDCDATA TYPE TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA,
IT_MSG TYPE TABLE OF BDCMSGCOLL,
WA_MSG TYPE BDCMSGCOLL,
IT_MSG1 TYPE TABLE OF BDCMSGCOLL,
WA_MSG1 TYPE BDCMSGCOLL.
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME,
R1 RADIOBUTTON GROUP GR1 DEFAULT 'X',
R2 RADIOBUTTON GROUP GR1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.


CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'p_file '
IMPORTING
FILE_NAME = P_FILE.

START-OF-SELECTION.
PERFORM F_GET_DATA.

END-OF-SELECTION.
IF NOT IT_FINAL IS INITIAL AND R1 = 'X'.
PERFORM F_CALL_BDC.
ELSEIF R2 = 'X'.
PERFORM F_SESSION_BDC.
ENDIF.
IF NOT IT_MSG1 IS INITIAL.
PERFORM F_DSIPAY_DATA.
ENDIF.
*&---------------------------------------------------------------------*
*& Form F_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_GET_DATA .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = IT_RAW
I_FILENAME = P_FILE
TABLES
I_TAB_CONVERTED_DATA = IT_FINAL
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.
ENDFORM. " F_GET_DATA
*&---------------------------------------------------------------------*
*& Form F_CALL_BDC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_CALL_BDC .
LOOP AT IT_FINAL INTO WA_FINAL.
REFRESH : IT_BDCDATA,
IT_MSG.
PERFORM BDC_DYNPRO USING 'SAPLKMA4' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'CSKBZ-DATBI_ANFO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'CSKBZ-KOKRS'
WA_FINAL-KOKRS. "'1000'.
PERFORM BDC_FIELD USING 'CSKBZ-KSTAR'
WA_FINAL-KSTAR."'wa2002001'.
PERFORM BDC_FIELD USING 'CSKBZ-DATAB_ANFO'
WA_FINAL-DATAB."'01.01.2014'.
PERFORM BDC_FIELD USING 'CSKBZ-DATBI_ANFO'
WA_FINAL-DATBI."'31.12.9999'.
PERFORM BDC_DYNPRO USING 'SAPLKMA4' '0299'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'CSKBZ-KATYP'.
PERFORM BDC_FIELD USING 'CSKBZ-KTEXT'
WA_FINAL-KTEXT."'tESTING SAJID'.
PERFORM BDC_FIELD USING 'CSKBZ-LTEXT'
WA_FINAL-LTEXT."'TESTING SAJID'.
PERFORM BDC_FIELD USING 'CSKBZ-KATYP'
WA_FINAL-KATYP. "'43'.
CALL TRANSACTION 'KA06' USING IT_BDCDATA MODE 'N' UPDATE 'S' MESSAGES INTO
IT_MSG.
IF NOT IT_MSG IS INITIAL.
LOOP AT IT_MSG INTO WA_MSG.
WA_MSG1 = WA_MSG.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = WA_MSG-MSGID
MSGNR = WA_MSG-MSGNR
MSGV1 = WA_MSG-MSGV1
MSGV2 = WA_MSG-MSGV3
MSGV3 = WA_MSG-MSGV3
MSGV4 = WA_MSG-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = WA_MSG1-MSGV1.
APPEND WA_MSG1 TO IT_MSG1.
CLEAR WA_MSG1.
ENDLOOP.
ENDIF.
ENDLOOP.

IF IT_MSG1 IS INITIAL.
MESSAGE 'All Records Successfully Processed' TYPE 'I'.

ENDIF.

ENDFORM. " F_CALL_BDC


*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
*&---------------------------------------------------------------------*
*& Form F_DSIPAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_DSIPAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'BDCMSGCOLL'
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
* 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_MSG1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

ENDFORM. " F_DSIPAY_DATA


*&---------------------------------------------------------------------*
*& Form F_SESSION_BDC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM F_SESSION_BDC .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'KA06'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
PROG = SY-CPROG
* DCPFM = '%'
* DATFM = '%'
* IMPORTING
* QID =
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
LOOP AT IT_FINAL INTO WA_FINAL.
REFRESH : IT_BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPLKMA4' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'CSKBZ-DATBI_ANFO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'CSKBZ-KOKRS'
WA_FINAL-KOKRS. "'1000'.
PERFORM BDC_FIELD USING 'CSKBZ-KSTAR'
WA_FINAL-KSTAR."'wa2002001'.
PERFORM BDC_FIELD USING 'CSKBZ-DATAB_ANFO'
WA_FINAL-DATAB."'01.01.2014'.
PERFORM BDC_FIELD USING 'CSKBZ-DATBI_ANFO'
WA_FINAL-DATBI."'31.12.9999'.
PERFORM BDC_DYNPRO USING 'SAPLKMA4' '0299'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'CSKBZ-KATYP'.
PERFORM BDC_FIELD USING 'CSKBZ-KTEXT'
WA_FINAL-KTEXT."'tESTING SAJID'.
PERFORM BDC_FIELD USING 'CSKBZ-LTEXT'
WA_FINAL-LTEXT."'TESTING SAJID'.
PERFORM BDC_FIELD USING 'CSKBZ-KATYP'
WA_FINAL-KATYP. "'43'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'KA06'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH = ' '
* CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.

MESSAGE 'Please check SM35 to proces further' TYPE 'I'.


ENDIF.

ENDFORM. " F_SESSION_BDC

You might also like