Hai
I want to insert an validations logic in bdc call transaction method.could u please let me help out this.
DATA: BEGIN OF W_CSKS,
KOKRS TYPE KOKRS,
KOSTL TYPE KOSTL,
DATBI TYPE DATBI,
DATAB TYPE DATAB,
NAME1 TYPE NAME1_GP,
BUKRS TYPE BUKRS,
GSBER TYPE GSBER,
KOSAR TYPE KOSAR,
VERAK TYPE VERAK,
WAERS TYPE WAERS,
PRCTR TYPE PRCTR,
ERSDA TYPE ERFDT,
USNAM TYPE ERFNM,
ABTEI TYPE ABTEI,
KHINR TYPE KHINR,
KOMPL TYPE KSKOM,
OBJNR TYPE J_OBJNR,
FUNC_AREA TYPE FKBER,
END OF W_CSKS.
DATA: I_CSKS LIKE TABLE OF W_CSKS,
I_BDCDATA LIKE TABLE OF BDCDATA,
W_BDCDATA LIKE LINE OF I_BDCDATA,
I_BDCMSGCOLL LIKE TABLE OF BDCMSGCOLL,
W_BDCMSGCOLL LIKE LINE OF I_BDCMSGCOLL.
DATA C_FILE TYPE STRING.
*CONSTANTS
CONSTANTS: C_KS01(4) TYPE C VALUE 'KS01',
X(1) TYPE C VALUE 'X',
A(1) TYPE C VALUE 'A'.
* SELECTION SCREEN LOGIC FOR FILE
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-123.
PARAMETERS F_FILE TYPE FC03TAB-PL00_FILE OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_FILE.
PERFORM FILE USING F_FILE.
START-OF-SELECTION.
C_FILE = F_FILE.
* UPLOAD DATA FROM FLAT FILE TO ITAB.
PERFORM ITAB USING C_FILE CHANGING I_CSKS.
* SCREEN DEATILS
LOOP AT I_CSKS INTO W_CSKS.
REFRESH I_BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPLKMA1' '0200' 'X'.
*CURSOR DETAILS.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CSKS-KOKRS'.
* FIELD DETAILS
PERFORM BDC_FIELD USING 'CSKS-KOKRS' W_CSKS-KOKRS.
PERFORM BDC_FIELD USING 'CSKS-KOSTL' W_CSKS-KOSTL.
PERFORM BDC_FIELD USING 'CSKS-DATBI' W_CSKS-DATBI.
PERFORM BDC_FIELD USING 'CSKS-DATAB' W_CSKS-DATAB.
* 2ND SCREEN DETAILS
PERFORM BDC_DYNPRO USING 'SAPLKMA1' '0299' 'X'.
* SUB SCREEN FIELD DETAILS
PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'BDC_SUBSCR'.
* CURSOR DETAILS
PERFORM BDC_FIELD USING 'CSKS-NAME1' W_CSKS-NAME1.
*SUBSCREEN FIELD DETAILS
PERFORM BDC_FIELD USING 'CSKS-BUKRS' W_CSKS-BUKRS.
PERFORM BDC_FIELD USING 'CSKS-GSBER' W_CSKS-GSBER.
PERFORM BDC_FIELD USING 'CSKS-KOSAR' W_CSKS-KOSAR.
PERFORM BDC_FIELD USING 'CSKS-VERAK' W_CSKS-VERAK.
PERFORM BDC_FIELD USING 'CSKS-WAERS' W_CSKS-WAERS.
PERFORM BDC_FIELD USING 'CSKS-PRCTR' W_CSKS-PRCTR.
PERFORM BDC_FIELD USING 'CSKS-ERSDA' W_CSKS-ERSDA.
PERFORM BDC_FIELD USING 'CSKS-USNAM' W_CSKS-USNAM.
PERFORM BDC_FIELD USING 'CSKS-ABTEI' W_CSKS-ABTEI.
PERFORM BDC_FIELD USING 'CSKS-KHINR' W_CSKS-KHINR.
PERFORM BDC_FIELD USING 'CSKS-KOMPL' W_CSKS-KOMPL.
PERFORM BDC_FIELD USING 'CSKS-OBJNR' W_CSKS-OBJNR.
PERFORM BDC_FIELD USING 'CSKS-FUNC_AREA' W_CSKS-FUNC_AREA.
* CALL TRANSACTION
CALL TRANSACTION C_KS01 USING I_BDCDATA MODE A
MESSAGES INTO I_BDCMSGCOLL.
ENDLOOP.
*FORM FOR SCREEN DETAILS
FORM BDC_DYNPRO USING: PROGRAM LIKE BDCDATA-PROGRAM
DYNPRO LIKE BDCDATA-DYNPRO
DYNBEGIN LIKE BDCDATA-DYNBEGIN.
CLEAR W_BDCDATA.
W_BDCDATA-PROGRAM = PROGRAM.
W_BDCDATA-DYNPRO = DYNPRO.
W_BDCDATA-DYNBEGIN = DYNBEGIN.
APPEND W_BDCDATA TO I_BDCDATA.
ENDFORM.
* FORM FOR FIELD DETAILS
FORM BDC_FIELD USING FNAM FVAL.
CLEAR W_BDCDATA.
W_BDCDATA-FNAM = FNAM.
W_BDCDATA-FVAL = FVAL.
APPEND W_BDCDATA TO I_BDCDATA.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_F_FILE text
*----------------------------------------------------------------------*
FORM FILE USING P_F_FILE.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = 'SYST-REPID'
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'F_FILE'
CHANGING
FILE_NAME = F_FILE.
.
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. " FILE
*&---------------------------------------------------------------------*
*& Form ITAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_C_FILE text
* <--P_I_CSKS text
*----------------------------------------------------------------------*
FORM ITAB USING P_C_FILE
CHANGING P_I_CSKS LIKE I_CSKS.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_C_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = P_I_CSKS.
ENDFORM. " ITAB