2009 Feb 25 5:49 AM
hi all,
Cont. after commit in bdc how to use it in coding ... if its possable please send the code
2009 Feb 25 5:53 AM
Hi Santosh
Check the link
https://www.sdn.sap.com/irj/scn/profile?editmode=true&userid=3828796
and check my answer.
Regards
Sachin
hi all,
Cont. after commit in bdc how to use it in coding ... if its possable please send the code
2009 Feb 25 5:53 AM
Hi,
Once you save your recording there is a option to create a program in SHDB only. From that you can create the program directly and use it in you own way.
Thanks,
Bharathi.
2009 Feb 25 5:55 AM
hi,
but Cont. after commit is not work when by the genrated program..... i think we as t write coding...
2009 Feb 25 5:53 AM
Hi Santosh
Check the link
https://www.sdn.sap.com/irj/scn/profile?editmode=true&userid=3828796
and check my answer.
Regards
Sachin
2009 Feb 25 5:55 AM
<CONSTANTS: GR_NAME LIKE APQI-GROUPID VALUE 'ZSATXD01', "HOLDS GROUP NAME
T_CODE LIKE TSTC-TCODE VALUE 'XD01'. "HOLDS TR CODE
DATA: S_FLAG. "FLAG TO HOLD SESSION STATUS
DATA: DATE1 LIKE SY-DATUM. "VARIABLE TO HOLD THE CURRENT DATE
*INTERNAL TABLE HODS THE XD01 FIELDS
DATA: BEGIN OF IT_RECORD OCCURS 0,
KTOKD(4),
KUNNR(16),
BUKRS(4),
VKORG(4),
VTWEG(2),
SPART(2),
REF_KUNNR(16),
ANRED(15),
NAME1(35),
SORTL(10),
LAND1(3),
SPRAS(2),
CIVVE(1),
AWAHR(3),
WAERS(5),
KZAZU(1),
ANTLF(1),
END OF IT_RECORD.
*INTERNAL TABLE FOR BDCDATA STRUCTURE
DATA: BEGIN OF IT_BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF IT_BDCDATA.
*INTERNAL TABLE HOLDS MESSAGES
DATA: BEGIN OF IT_BDCMSGCOLL OCCURS 0.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF IT_BDCMSGCOLL.
*INTERNAL TABLE FOR MENU
*DATA: BEGIN OF IT_MENU1 OCCURS 0,
ITEM(10),
END OF IT_MENU1.
DATE1 = SY-DATUM.
START-OF-SELECTION.
*Sub Routine to Read Data from Presentation Server Flat file
PERFORM READ_DATA.
*Sub Routine to Write Data to App Srv
PERFORM DATA_TO_APP_SRV.
*Sub Routine to Read Data form App Srv into Internal Table
PERFORM READ_APP_DATA.
*Sub Routine to Write Data to Session
PERFORM WRITE_DATA.
END-OF-SELECTION.
WRITE:/30 'CLICK OPEN SESSION BUTTON TO SEE THE ERRONEOUS RECORDS'.
SET TITLEBAR 'ZTL1' WITH SY-UNAME SY-DATUM.
SET PF-STATUS 'ZM1'.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SM35'.
MESSAGE I010 WITH TEXT-003.
CALL TRANSACTION 'SM35'.
WHEN 'ALOG'.
MESSAGE I010 WITH TEXT-004.
SUBMIT RSBDCLOG WITH MAPPE = GR_NAME AND RETURN.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DELS'.
SUBMIT RSBDCDRU WITH MAPPE = GR_NAME AND RETURN.
ENDCASE.
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDIF.
ENDFORM.
FORM READ_DATA.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = 'C:\ABC'
FILETYPE = 'ASC'
ITEM = ' '
FILEMASK_MASK = ' '
FILEMASK_TEXT = ' '
FILETYPE_NO_CHANGE = ' '
FILEMASK_ALL = ' '
FILETYPE_NO_SHOW = ' '
LINE_EXIT = ' '
USER_FORM = ' '
USER_PROG = ' '
SILENT = 'S'
IMPORTING
FILESIZE =
CANCEL =
ACT_FILENAME =
ACT_FILETYPE =
TABLES
DATA_TAB = IT_RECORD
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
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. " READ_DATA
FORM WRITE_DATA.
LOOP AT IT_RECORD.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'ENTR'.
PERFORM BDC_FIELD USING 'RF02D-KTOKD'
IT_RECORD-KTOKD.
PERFORM BDC_FIELD USING 'RF02D-KUNNR'
IT_RECORD-KUNNR.
PERFORM BDC_FIELD USING 'RF02D-BUKRS'
IT_RECORD-BUKRS.
PERFORM BDC_FIELD USING 'RF02D-VKORG'
IT_RECORD-VKORG.
PERFORM BDC_FIELD USING 'RF02D-VTWEG'
IT_RECORD-VTWEG.
PERFORM BDC_FIELD USING 'RF02D-SPART'
IT_RECORD-SPART.
PERFORM BDC_FIELD USING 'RF02D-REF_KUNNR'
IT_RECORD-REF_KUNNR.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0110'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-SPRAS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'KNA1-ANRED'
IT_RECORD-ANRED.
PERFORM BDC_FIELD USING 'KNA1-NAME1'
IT_RECORD-NAME1.
PERFORM BDC_FIELD USING 'KNA1-SORTL'
IT_RECORD-SORTL.
PERFORM BDC_FIELD USING 'KNA1-LAND1'
IT_RECORD-LAND1.
PERFORM BDC_FIELD USING 'KNA1-SPRAS'
IT_RECORD-SPRAS.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0120'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-LIFNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0125'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-NIELS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNBK-BANKS(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0340'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0370'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_FIELD USING 'KNA1-CIVVE'
IT_RECORD-CIVVE.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0360'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0210'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNB1-AKONT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0215'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNB1-ZTERM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNB5-MAHNA'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0230'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNB1-VRSNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0310'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVV-BZIRK'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'KNVV-AWAHR'
IT_RECORD-AWAHR.
PERFORM BDC_FIELD USING 'KNVV-WAERS'
IT_RECORD-WAERS.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0315'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVV-LPRIO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'KNVV-KZAZU'
IT_RECORD-KZAZU.
PERFORM BDC_FIELD USING 'KNVV-ANTLF'
IT_RECORD-ANTLF.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0320'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVV-PERFK'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '1350'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0324'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVP-PARVW(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
*Calling the XD01 transaction and placing erroneous messages into
*BDCMSGCOLL
CALL TRANSACTION 'XD01'
USING IT_BDCDATA
MODE 'N'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
*If Transaction is not Successfull then open a Session
IF SY-SUBRC <> 0.
IF S_FLAG EQ SPACE.
PERFORM OPEN_GROUP.
S_FLAG = 'X'.
ENDIF.
*Writing Erroneous Records into Session
PERFORM INSERT_REC.
ENDIF.
REFRESH IT_BDCDATA.
ENDLOOP.
*Closing the Session if it is opened
IF S_FLAG = 'X'.
PERFORM CLOSE_GROUP.
ENDIF.
ENDFORM. " WRITE_DATA
FORM DATA_TO_APP_SRV.
IF NOT IT_RECORD[] IS INITIAL.
OPEN DATASET 'SATXD01' FOR OUTPUT IN TEXT MODE.
LOOP AT IT_RECORD.
TRANSFER IT_RECORD TO 'SATXD01'.
ENDLOOP.
ELSE.
MESSAGE E010 WITH TEXT-001.
ENDIF.
CLOSE DATASET 'SATXD01'.
ENDFORM. " DATA_TO_APP_SRV
FORM READ_APP_DATA.
CLEAR IT_RECORD.
REFRESH IT_RECORD.
OPEN DATASET 'SATXD01' FOR INPUT IN TEXT MODE.
DO.
READ DATASET 'SATXD01' INTO IT_RECORD.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
APPEND IT_RECORD.
ENDDO.
CLOSE DATASET 'SATXD01'.
ENDFORM. " READ_APP_DATA
FORM OPEN_GROUP.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = GR_NAME
HOLDDATE = DATE1
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
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.
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. " OPEN_GROUP
&----
*& Form INSERT_REC
&----
SUB ROUTINE WRITES DATA TO SESSION
----
--> p1 text
<-- p2 text
----
FORM INSERT_REC.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = T_CODE
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
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.
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. " INSERT_REC
&----
*& Form CLOSE_GROUP
&----
SUB ROUTINE CLOSES SESSION
----
--> p1 text
<-- p2 text
----
FORM CLOSE_GROUP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
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. " CLOSE_GROUP >
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |