+ -

Pages

Sunday, July 27, 2014

Batch Input and Call Transaction

Recording


With the recording function SAP automatically cazn genererate the BDC table.


  • Find the transaction code for the screen that you wan't to record
  • Open transaction SM35 - Batch Input
  • Push the button Recording
  • In the Recording screen, enter then name you want to give the recording, anmd push the Create button
  • You will now be prompted for the transaction code. Enter the transaction code. Push the enter button. You are now in the screen where you enter the transactions.
  • Enter transactions as normal, and leave the transaction when finished.
  • You will now hen se an overview of the recording.
  • Save the recording.
  • Go back
  • Push the Overview ( Mountain) button, to se the recording.
  • You can know generate a program  (push the Generate program button ) or create a session ( Push the Create session button ).
  • If you have created a session, go back to the initial screen of SM35 and push the Overview button.
  • Select your batch input session, and process it either in back- or foreground.   


Example of program for Batch Input and  Call Transaction

This example shows how to use Call Transaction. If Call Transaction fails,
a batch input session is created.


DATA: BEGIN OF BDC_TAB OCCURS 0.
        INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.



FORM Create_Transaction.
* Table for messages from call transaction. The table is automatically
* filled with messags from call transaction.                      
  DATA BEGIN OF messtab OCCURS 10.                              

          INCLUDE STRUCTURE bdcmsgcoll.                         
  DATA END OF messtab.                                           
  
  REFRESH bdc_tab.
 
* Create new dynpro 
 PERFORM bdc_newdynpro USING 'SAPML03T' '101'.
 
 
* Insert fields
 PERFORM bdc_field USING 'LTAK-BWLVS' w_screen1000-io_bwls.

 PERFORM bdc_field USING 'LTAP-MATNR' w_screen1000-io_matnr.

 PERFORM bdc_field USING 'RL03T-ANFME' w_tmpstr.

 PERFORM bdc_field USING 'LTAP-CHARG' w_screen1000-io_charg.

 PERFORM bdc_field USING 'BDC_OKCODE' '=TAM'.


  ................. And much more of the same    .................. 
  

**** Use this part if you want to use call transaction
* Call the transaction. Messages from Call Transaction are stored in the
* internal table messtab  
  CALL TRANSACTION 'LT01' USING bdc_tab MODE 'N' UPDATE 'S'
  MESSAGES INTO messtab.

  IF sy-subrc = 0.                                                  
* Call transaction successfull,  get the number of the Transfer Order that
* was created                                                     
    LOOP AT messtab.                                                
      IF messtab-dynumb = '0104' AND messtab-msgnr = '016'.         
        w_transportorderno = messtab-msgv1.                         
      ENDIF.                                                        
    ENDLOOP.
  ELSE.
* Call transaction failed, create a batch input session instead.
    PERFORM open_group.                         

    PERFORM bdc_insert USING 'LT01'.            
    PERFORM close_group.                        
ENDIF.

  

ENDFORM.


Here are the strandard forms used for call transaction and batch input
 
******************************************************************* 
* Starts a new screen
*******************************************************************
FORM bdc_newdynpro USING program dynpro.
   CLEAR bdc_tab.
   bdc_tab-program  = program.
   bdc_tab-dynpro   = dynpro.

   bdc_tab-dynbegin = 'X'.
   APPEND bdc_tab.
ENDFORM.

*******************************************************************
* Inserts a field in bdc_tab
*******************************************************************
FORM bdc_field USING fnam fval.
  CLEAR bdc_tab.
  bdc_tab-fnam = fnam.
  bdc_tab-fval = fval.
  APPEND bdc_tab.
 ENDFORM.
 

*******************************************************************
* Opens group
*******************************************************************

FORM open_group.
  CALL FUNCTION 'BDC_OPEN_GROUP'
      EXPORTING
           client              = sy-mandt
*           DEST             = FILLER8
           group             = 'ZSM02'
*           HOLDDATE   = FILLER8
           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.
ENDFORM.

*******************************************************************
* Closes group 
*******************************************************************

FORM close_group.
  CALL FUNCTION 'BDC_CLOSE_GROUP'
        EXCEPTIONS
             not_open    = 1
             queue_error = 2
             OTHERS      = 3.
ENDFORM.

*******************************************************************
* BDC_INSERT 
*******************************************************************
FORM bdc_insert USING tcode.
   CALL FUNCTION 'BDC_INSERT'
      EXPORTING
           tcode            = tcode
*         POST_LOCAL       = NOVBLOCAL

*         PRINTING         = NOPRINT
          TABLES
              dynprotab        = bdc_tab
 
      EXCEPTIONS
           internal_error   = 1
           not_open         = 2
           queue_error      = 3
           tcode_invalid    = 4
           printing_invalid = 5
           posting_invalid  = 6
           OTHERS           = 7.
ENDFORM.    
5 ABAP Tips: Batch Input and Call Transaction Recording With the recording function SAP automatically cazn genererate the BDC table. Find the transaction code for the screen that y...

No comments:

Post a Comment

< >