Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc_insert doesn't call

Former Member
0 Likes
1,510

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?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,312

Hi,

Can you please paste your code here so that it is easy to analyze.

Cheers

VJ

14 REPLIES 14
Read only

Former Member
0 Likes
1,313

Hi,

Can you please paste your code here so that it is easy to analyze.

Cheers

VJ

Read only

0 Likes
1,312

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

Read only

Former Member
0 Likes
1,312

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

Read only

0 Likes
1,312

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.

Read only

0 Likes
1,312

" 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

Read only

0 Likes
1,312

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.

Read only

0 Likes
1,312

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

Read only

0 Likes
1,312

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.

Read only

0 Likes
1,312

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.

Read only

0 Likes
1,312

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

Read only

0 Likes
1,312

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

Read only

Former Member
0 Likes
1,312

For keep the session for error log

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = SESSION_NAME

USER = SY-UNAME

KEEP = 'X'.

Read only

0 Likes
1,312

hi, ( group = session_name) what does it mean, is it a variable or a system defined.

Read only

0 Likes
1,312

( 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