‎2010 Mar 04 9:03 AM
i have created a bdc for transaction f-43. when i used it for call trasaction then it works successfully but when i use session method then an error occured. the functiom module (bdc_insert) doesn't call. session is generated but log doesn't generated . can anyone help me?
‎2010 Mar 04 11:12 AM
Hi,
Can you please paste your code here so that it is easy to analyze.
Cheers
VJ
‎2010 Mar 04 11:12 AM
Hi,
Can you please paste your code here so that it is easy to analyze.
Cheers
VJ
‎2010 Mar 04 11:49 AM
REPORT ZWT_MONTH_CONTRIBUTION_UPLOAD
NO STANDARD PAGE HEADING LINE-SIZE 255.
TYPE-POOLS : TRUXS.
TYPES: BEGIN OF TS_WAGETYPE,
ROW TYPE I,
TEMP(10) TYPE C
PERSONNEL_NO(10) ,
WAGE_TYPE(10) TYPE C,
AMOUNT(10) TYPE C ,
END OF TS_WAGETYPE.
TYPES: BEGIN OF TS_FINAL,
PERSONNEL_NO TYPE PA0001-PERNR,
BUIS_AREA(10) TYPE C,
WAGE_TYPE(10) TYPE C,
AMOUNT TYPE BSIK-DMBTR,
NEWUM TYPE RF05A-NEWUM,
NEWUM8 TYPE RF05A-NEWUM,
NEWUM9 TYPE RF05A-NEWUM,
AMOUNT8 TYPE BSIK-DMBTR,
AMOUNT9 TYPE BSIK-DMBTR,
TOTAL_AMOUNT TYPE BSIK-DMBTR ,
END OF TS_FINAL.
TYPES: BEGIN OF TS_MAIN,
PERSONNEL_NO(10),
BUIS_AREA(10),
AMOUNT7(10),
NEWUM7(2),
NEWUM8(2),
NEWUM9(2),
AMOUNT8(10),
AMOUNT9(10),
M_DATE(10),
TOTAL_AMOUNT(15),
END OF TS_MAIN.
TYPES: BEGIN OF TS_PERNR,
PERSONNEL_NO TYPE PA0001-PERNR,
END OF TS_PERNR.
DATA : IT_PAREA TYPE STANDARD TABLE OF TS_PAREA INITIAL SIZE 0,
IT_WAGETYPE TYPE STANDARD TABLE OF TS_WAGETYPE INITIAL SIZE 0,
IT_FINAL TYPE STANDARD TABLE OF TS_FINAL INITIAL SIZE 0,
IT_PERNR TYPE STANDARD TABLE OF TS_PERNR INITIAL SIZE 0,
IT_MAIN TYPE STANDARD TABLE OF TS_MAIN INITIAL SIZE 0,
IT_BSIK TYPE STANDARD TABLE OF TS_BSIK INITIAL SIZE 0.
DATA: ITAB LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA : G_RAW_DATA TYPE TRUXS_T_TEXT_DATA.
DATA : BEGIN OF BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA : END OF BDCDATA.
DATA : BEGIN OF MESTAB OCCURS 0.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA : END OF MESTAB.
DATA : WA_PAREA TYPE TS_PAREA.
DATA : WA_WAGETYPE TYPE TS_WAGETYPE.
DATA : WA_FINAL TYPE TS_FINAL.
DATA : WA_PERNR TYPE TS_PERNR.
DATA : WA_MAIN TYPE TS_MAIN.
DATA : WA_BSIK TYPE TS_BSIK.
&----
*& SELECTION SCREEN
&----
PERFORM GET_FORMATE_DATE.
PERFORM GET_BDC_DATA_WAGETYPE.
ERFORM BDC_F-43_INSERT.
&----
*& Form UPLOADEXCELDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPLOADEXCELDATA .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = PA_FILE
I_BEGIN_COL = '1'
I_BEGIN_ROW = '3' "Do not require headings
I_END_COL = '6'
I_END_ROW = '65536'
TABLES
INTERN = ITAB
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
LOOP AT ITAB.
WA_WAGETYPE-ROW = ITAB-ROW.
APPEND WA_WAGETYPE TO IT_WAGETYPE.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_WAGETYPE COMPARING ROW.
LOOP AT IT_WAGETYPE INTO WA_WAGETYPE.
LOOP AT ITAB WHERE ROW = WA_WAGETYPE-ROW.
IF ITAB-COL = '0002'.
WA_WAGETYPE-TEMP = ITAB-VALUE .
MODIFY IT_WAGETYPE FROM WA_WAGETYPE TRANSPORTING TEMP..
ELSEIF ITAB-COL = '0003'.
. WA_WAGETYPE-PERSONNEL_NO = ITAB-VALUE .
MODIFY IT_WAGETYPE FROM WA_WAGETYPE TRANSPORTING PERSONNEL_NO.
ELSEIF ITAB-COL = '0004'.
WA_WAGETYPE-WAGE_TYPE = ITAB-VALUE .
MODIFY IT_WAGETYPE FROM WA_WAGETYPE TRANSPORTING WAGE_TYPE.
ELSEIF ITAB-COL = '0005'.
WA_WAGETYPE-AMOUNT = ITAB-VALUE .
MODIFY IT_WAGETYPE FROM WA_WAGETYPE TRANSPORTING AMOUNT.
ENDIF.
ENDLOOP.
ENDLOOP.
IF SY-SUBRC <> 0.
WRITE:/ 'Upload Error ', SY-SUBRC.
ENDIF.
ENDFORM. " UPLOADEXCELDATA
&----
*& Form GET_BDC_DATA_F43
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_BDC_DATA_F43 .
LOOP AT IT_FINAL INTO WA_FINAL.
WA_MAIN-PERSONNEL_NO = WA_FINAL-PERSONNEL_NO.
WA_MAIN-BUIS_AREA = WA_FINAL-BUIS_AREA.
WA_MAIN-AMOUNT7 = WA_FINAL-AMOUNT.
WA_MAIN-NEWUM7 = WA_FINAL-NEWUM.
WA_MAIN-NEWUM8 = WA_FINAL-NEWUM8.
WA_MAIN-NEWUM9 = WA_FINAL-NEWUM9.
WA_MAIN-AMOUNT8 = WA_FINAL-AMOUNT8.
WA_MAIN-AMOUNT9 = WA_FINAL-AMOUNT9.
WA_MAIN-M_DATE = DATE_H.
WA_MAIN-TOTAL_AMOUNT = WA_FINAL-TOTAL_AMOUNT.
APPEND WA_MAIN TO IT_MAIN.
ENDLOOP.
ENDFORM. " BDC_F-43_INSERT
&----
*& Form BDC_F-43_INSERT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_F-43_INSERT .
PERFORM BDC_OPEN_GROUP.
LOOP AT IT_MAIN INTO WA_MAIN.
REFRESH BDCDATA.
CLEAR BDCDATA.
IF WA_MAIN-BUIS_AREA = 'IN'.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BKPF-BLDAT'
DATE_H_F43.
PERFORM BDC_FIELD USING 'BKPF-BLART'
'cp'.
PERFORM BDC_FIELD USING 'BKPF-BUKRS'
'044'.
PERFORM BDC_FIELD USING 'BKPF-BUDAT'
DATE_H_F43.
PERFORM BDC_FIELD USING 'BKPF-MONAT'
I_MONAT .
PERFORM BDC_FIELD USING 'BKPF-WAERS'
'INR'.
PERFORM BDC_FIELD USING 'BKPF-BKTXT'
'CONTRIBUTION POSTING'.
PERFORM BDC_FIELD USING 'FS006-DOCID'
'*'.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM7.
*******************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT7.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM8.
**********************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT8.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM9.
***************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT9.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'01'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
'1000511'.
********************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0301'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-GSBER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
'*'.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
DATE_H_F43.
*****************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0301'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-TOTAL_AMOUNT.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
DATE_H_F43.
PERFORM BDC_TRANSACTION USING 'F-43'.
PERFORM BDC_INSERT .
PERFORM BDC_TRANSACTION USING 'F-43'.
ENDIF.
ENDIF.
ENDLOOP.
PERFORM CLOSE_GROUP.
ENDFORM. " GET_BDC_DATA_F43
&----
*& Form bdc_dynpro
&----
text
----
-->P_0174 text
-->P_0175 text
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD
*&----
*& Form bdc_transaction
*&----
text
*----
-->P_0479 text
*----
FORM BDC_TRANSACTION USING TCODE.
CALL TRANSACTION TCODE USING BDCDATA
MODE CTUMODE
UPDATE 'A'
MESSAGES INTO MESTAB.
ENDFORM. " bdc_transaction
&----
*& Form OPEN_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM OPEN_GROUP .
B_GROUP = 'PF'.
SKIP.
WRITE: /(20) 'Create group'(I01), B_GROUP.
SKIP.
open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = B_GROUP
USER = SY-UNAME
KEEP = 'X'.
WRITE: /(30) 'BDC_OPEN_GROUP'(I02),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. " OPEN_GROUP
&----
*& Form BDC_INSERT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_INSERT .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'F-43'
TABLES
DYNPROTAB = BDCDATA.
REFRESH BDCDATA.
ENDFORM. " BDC_INSERT
&----
*& Form CLOSE_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM CLOSE_GROUP .
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. " CLOSE_GROUP
‎2010 Mar 04 12:20 PM
Hi,
I found something strange in your code. You are trying to insert the records into session before opening it (You are not defining Subroutine ' BDC_OPEN_GROUP', in your program. Instead you are defining 'OPEN_GROUP') As a result FM 'BDC_OPEN_GROUP' is not being called. Therefore do the following changes and try once again.
FORM OPEN_GROUP . "Here change it to BDC_OPEN_GROUP
B_GROUP = 'PF'.
SKIP.
WRITE: /(20) 'Create group'(I01), B_GROUP.
SKIP.
open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = B_GROUP
USER = SY-UNAME
KEEP = 'X'.
WRITE: /(30) 'BDC_OPEN_GROUP'(I02),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. " OPEN_GROUP
***************************************************************************************
OR
PERFORM BDC_OPEN_GROUP. " Change it to PERFORM OPEN_GROUP.
Please let me know if you are still facing some issues.
Cheers
VJ
Edited by: Vishal Jindal on Mar 5, 2010 4:39 AM
‎2010 Mar 05 5:05 AM
hi, i have changed what u suggest , but still i m facing the problem. the FM 'bdc_insert' doesn't call. sssion is generated but log doesn't generated.
‎2010 Mar 05 5:30 AM
" the FM 'bdc_insert' doesn't call. sssion is generated but log doesn't generated"
I am still not able to understand which 'LOG' you are talking about. " 'BDC_INSERT' doesn't call "?? Did you check in debugging mode that whether this FM is getting executed. As far as LOG is concerned, it will be generated only after you are finished up processing the session which you can see in 'SM35'.
Please clarify.
Cheers
VJ
‎2010 Mar 05 5:55 AM
Hi, when i debugg the program and when the cursor goes to the FM 'bdc_insert' then cursor directly jumps out of the function module (bdc_insert). After the overall process completion , i checked with sm35 . Here session shown but when i enter into the session , here screens and transactions shows but log doesn't show.
‎2010 Mar 05 6:52 AM
Please check the following in debugging mode :
1. Your internal table 'ITAB' or 'IT_MAIN' is having all the values.
2. If your internal table IT_MAIN is having all the values , Check whether ' IF WA_MAIN-BUIS_AREA = 'IN' is getting satisified (coz if this condition is not satisfied then BDC_INSERT won't be reachable, as per your code).
Revert back if facing some issues.
Cheers
VJ
‎2010 Mar 05 8:46 AM
I have checked it_main , all the values comes correctly in it_main . it also satisfies ( IF WA_MAIN-BUIS_AREA = 'IN') and all the values stored in bdcdata correctly . i don't understand where is the problem.
‎2010 Mar 05 8:54 AM
I tried running your code with some modification and file with 1 record. In my case, one session of 1 record is getting created in SM35.
‎2010 Mar 05 9:09 AM
is there any log generated in the session? what modification u have done in code. plz mention.
Edited by: prbhat on Mar 5, 2010 10:09 AM
‎2010 Mar 05 9:24 AM
Likewise I said earlier there won't be any creation of the log until unless you process the session in SM35. In my case, after processing the session only ( 1 record) , I could see the error log.
I think the code which you gave was not complete. So I did some modifications :
* PERFORM GET_FORMATE_DATE.
* PERFORM GET_BDC_DATA_WAGETYPE.
PERFORM UPLOADEXCELDATA . " Call this subroutine first. Although you were defining this routine but were not using it
PERFORM BDC_F-43_INSERT. "After UPLOADEXCELDATA use this subroutine
*&---------------------------------------------------------------------*
*& Form UPLOADEXCELDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM UPLOADEXCELDATA .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Documents and Settings\VISHAL.JINDAL\Desktop\Material.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
tables
data_tab = itab
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.
ENDFORM. " UPLOADEXCELDATA
*&---------------------------------------------------------------------*
*& Form GET_BDC_DATA_F43
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
****FORM GET_BDC_DATA_F43 .
****
**** LOOP AT IT_FINAL INTO WA_FINAL.
**** WA_MAIN-PERSONNEL_NO = WA_FINAL-PERSONNEL_NO.
**** WA_MAIN-BUIS_AREA = WA_FINAL-BUIS_AREA.
**** WA_MAIN-AMOUNT7 = WA_FINAL-AMOUNT.
**** WA_MAIN-NEWUM7 = WA_FINAL-NEWUM.
**** WA_MAIN-NEWUM8 = WA_FINAL-NEWUM8.
**** WA_MAIN-NEWUM9 = WA_FINAL-NEWUM9.
**** WA_MAIN-AMOUNT8 = WA_FINAL-AMOUNT8.
*** WA_MAIN-AMOUNT9 = WA_FINAL-AMOUNT9.
**** WA_MAIN-M_DATE = DATE_H.
*** WA_MAIN-TOTAL_AMOUNT = WA_FINAL-TOTAL_AMOUNT.
*** APPEND WA_MAIN TO IT_MAIN.
*** ENDLOOP.
*ENDFORM. " BDC_F-43_INSERT
*&---------------------------------------------------------------------*
*& Form BDC_F-43_INSERT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BDC_F-43_INSERT .
PERFORM OPEN_GROUP.
LOOP AT ITab INTO WA_test.
REFRESH BDCDATA.
CLEAR BDCDATA.
* IF WA_MAIN-BUIS_AREA = 'IN'.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
* PERFORM BDC_FIELD USING 'BKPF-BLDAT'
* DATE_H_F43.
PERFORM BDC_FIELD USING 'BKPF-BLART'
'cp'.
PERFORM BDC_FIELD USING 'BKPF-BUKRS'
'044'.
* PERFORM BDC_FIELD USING 'BKPF-BUDAT'
* DATE_H_F43.
* PERFORM BDC_FIELD USING 'BKPF-MONAT'
* I_MONAT .
PERFORM BDC_FIELD USING 'BKPF-WAERS'
'INR'.
PERFORM BDC_FIELD USING 'BKPF-BKTXT'
'CONTRIBUTION POSTING'.
PERFORM BDC_FIELD USING 'FS006-DOCID'
'*'.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM7.
*******************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT7.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
* PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
* DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM8.
**********************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT8.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
* PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
* DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'39'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
WA_MAIN-PERSONNEL_NO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM'
WA_MAIN-NEWUM9.
***************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0303'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-AMOUNT9.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
* PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
* DATE_H_F43.
PERFORM BDC_FIELD USING 'RF05A-NEWBS'
'01'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
'1000511'.
********************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0301'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-GSBER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
'*'.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
* PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
* DATE_H_F43.
*****************************************************************************************
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0301'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_MAIN-TOTAL_AMOUNT.
PERFORM BDC_FIELD USING 'BSEG-GSBER'
'PF01'.
* PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
* DATE_H_F43.
* PERFORM BDC_TRANSACTION USING 'F-43'.
PERFORM BDC_INSERT .
* PERFORM BDC_TRANSACTION USING 'F-43'.
* ENDIF.
* ENDIF.
ENDLOOP.
PERFORM CLOSE_GROUP.
ENDFORM. " GET_BDC_DATA_F43
*&---------------------------------------------------------------------*
*& Form bdc_dynpro
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0174 text
* -->P_0175 text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD
*&---------------------------------------------------------------------
*& Form bdc_transaction
*&---------------------------------------------------------------------
* text
*----------------------------------------------------------------------
* -->P_0479 text
*----------------------------------------------------------------------
FORM BDC_TRANSACTION USING TCODE.
CALL TRANSACTION TCODE USING BDCDATA
MODE 'A'
UPDATE 'A'
MESSAGES INTO MESTAB.
ENDFORM. " bdc_transaction
*&---------------------------------------------------------------------*
*& Form OPEN_GROUP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM OPEN_GROUP .
* B_GROUP = 'PF'.
* SKIP.
* WRITE: /(20) 'Create group'(I01), B_GROUP.
* SKIP.
* open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'TEST'
USER = SY-UNAME
KEEP = 'X'.
* WRITE: /(30) 'BDC_OPEN_GROUP'(I02),
* (12) 'returncode:'(I05),
* SY-SUBRC.
ENDFORM. " OPEN_GROUP
*&---------------------------------------------------------------------*
*& Form BDC_INSERT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BDC_INSERT .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'F-43'
TABLES
DYNPROTAB = BDCDATA.
REFRESH BDCDATA.
ENDFORM. " BDC_INSERT
*&---------------------------------------------------------------------*
*& Form CLOSE_GROUP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CLOSE_GROUP .
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. " CLOSE_GROUP
VJ
‎2010 Mar 05 4:47 AM
For keep the session for error log
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = SESSION_NAME
USER = SY-UNAME
KEEP = 'X'.
‎2010 Mar 05 5:19 AM
hi, ( group = session_name) what does it mean, is it a variable or a system defined.
‎2010 Mar 05 5:40 AM
( group = session_name) what does it mean, is it a variable or a system defined
As Rao mentioned, here Session_name is a variable of type 'apqi-groupid' and not system field. This particular variable can be assigned any value which will appear as session name in SM35.
Data : ses_nam LIKE apqi-groupid value 'QIP'.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = ses_nam
keep = 'X'
user = sy-uname
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.
So your session will have name as 'QIP'.
Cheers
VJ
Edited by: Vishal Jindal on Mar 5, 2010 6:41 AM