Banner

Attention: open in a new window. PDFPrintE-mail

2009
11
Feb

How to start a transaction in a new session

If you need to have functionality where you can kick off a transaction in another window then do the following…. 

To call the function: 

Structure: ZSE_ITAB

  • FIELD  CHAR40
  • VALUE CHAR40 

DATA: itab_fields type STANDARD TABLE OF ZSE_ITAB,
      wa_field    
type ZSE_ITAB.       wa_field-field = 'BELNR'.
      wa_field-
value = t_invoice.
      
APPEND wa_field TO itab_fields.

      
CALL FUNCTION 'Z_CALL_TRANSACTION_SESS'
        
STARTING NEW TASK 'TA'
        
EXPORTING
          tcode          =
'VF03'
          
skip           = 'X'
        
TABLES
          itab_data      = itab_fields
        
EXCEPTIONS
          no_transaction =
1
          
OTHERS         = 2. 

Function Module Defined: Must be a remotely enabled function module 

FUNCTION z_call_transaction_sess.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(TCODE) TYPE  TCODE
*"     VALUE(SKIP) TYPE  FLAG OPTIONAL
*"  TABLES
*"      ITAB_DATA STRUCTURE  ZSE_ITAB OPTIONAL
*"  EXCEPTIONS
*"      NO_TRANSACTION
*"----------------------------------------------------------------------
  
TABLES: tstc.

  
DATA: itab_message TYPE TABLE OF bdcmsgcoll.

  
DATA: t_vkorg LIKE vbak-vkorg,
        t_vbeln
LIKE vbak-vbeln,
        t_ebeln
LIKE ekko-ebeln,
        t_bukrs
LIKE ekko-bukrs,
        t_belnr
LIKE vbrk-vbeln,
        t_vtweg
LIKE vbak-vtweg,
        t_spart
LIKE vbak-spart,
        t_kunnr
LIKE kna1-kunnr,
        t_lifnr
LIKE lfa1-lifnr,
        t_kschl
LIKE rv13a-kschl,
        t_accnt
LIKE bkpf-belnr,
        t_skip.

  
DATA: in_docnums TYPE STANDARD TABLE OF idcdocnum,
        wa_docnums
TYPE idcdocnum.

  
SELECT SINGLE tcode INTO tstc-tcode FROM tstc
    
WHERE tcode = tcode.
  
IF sy-subrc <> 0.
    
RAISE no_transaction.
  
ENDIF.

  
CLEAR t_skip.

  
LOOP AT itab_data.
    
CASE itab_data-field.
      
WHEN 'DOCNUM'.
        
REFRESH in_docnums.
        wa_docnums-docnum = itab_data-
value.
        
APPEND wa_docnums TO in_docnums.

        
CALL FUNCTION 'EDI_DISPLAY_IDOCS'
          
TABLES
            in_docnums = in_docnums.
        t_skip =
'X'.

      
WHEN 'EBELN'.
        t_ebeln = itab_data-
value.
        
SET PARAMETER ID 'BES' FIELD t_ebeln.
      
WHEN 'BELNR'.
        t_belnr = itab_data-
value.
        
SET PARAMETER ID 'VF' FIELD t_belnr.
      
WHEN 'VBELN'.
        t_vbeln = itab_data-
value.
        
SET PARAMETER ID 'AUN' FIELD t_vbeln.
      
WHEN 'VKORG'.
        t_vkorg = itab_data-
value.
        
SET PARAMETER ID 'VKO' FIELD t_vkorg.
      
WHEN 'VTWEG'.
        t_vtweg = itab_data-
value.
        
SET PARAMETER ID 'VTW' FIELD t_vtweg.
      
WHEN 'SPART'.
        t_spart = itab_data-
value.
        
SET PARAMETER ID 'SPA' FIELD t_spart.
      
WHEN 'KUNNR'.
        t_kunnr = itab_data-
value.
        
SET PARAMETER ID 'KUN' FIELD t_kunnr.
      
WHEN 'KSCHL'.
        t_kschl = itab_data-
value.
        
SET PARAMETER ID 'VKS' FIELD t_kschl.
      
WHEN 'BUKRS'.
        t_bukrs = itab_data-
value.
        
SET PARAMETER ID 'BUK' FIELD t_bukrs.
      
WHEN 'ACCNT'.
        t_accnt = itab_data-
value.
        
SET PARAMETER ID 'BLN' FIELD t_accnt.
      
WHEN 'LIFNR'.
        t_lifnr = itab_data-
value.
        
SET PARAMETER ID 'LIF' FIELD t_lifnr.
    
ENDCASE.
  
ENDLOOP.

  
IF t_skip IS INITIAL.

    
CASE skip.
      
WHEN 'X'.
        
CALL TRANSACTION tcode AND SKIP FIRST SCREEN.
      
WHEN OTHERS.
        
CALL TRANSACTION tcode.
    
ENDCASE.

  
ENDIF.

ENDFUNCTION.

Last Updated (Thursday, 12 February 2009 20:19)