Monday, October 23, 2023

Document Post for FBS1 using BDC

 

report ZFBS1_01
       
no standard page heading line-size 255.

* Include bdcrecx1_s:
* The call transaction using is called WITH AUTHORITY-CHECK!
* If you have own auth.-chec,ks you can use include bdcrecx1 instead.
*include bdcrecx1_s.

INCLUDE ZFBS1_01_TOP.
INCLUDE ZFBS1_01_SEL.
INCLUDE ZFBS1_01_SUB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  
PERFORM F4_FILE_NAME.
  
START-OF-SELECTION.
 
PERFORM FILE_UPLOAD.
 
PERFORM HEAD_LINE_DATA.
 
IF IT_HEAD IS NOT INITIAL.
PERFORM RUN_BDC.
 
ENDIF.

*&---------------------------------------------------------------------*
*& Include          ZFBS1_01_TOP
*&---------------------------------------------------------------------*

TYPES BEGIN OF ty_data,
          srno    
TYPE char10,
          bldat   
TYPE bkpf-bldat,
          blart   
TYPE bkpf-blart,
          bukrs   
TYPE bkpf-bukrs,
          budat   
TYPE bkpf-budat,
          waers   
TYPE bkpf-waers,
          xblnr   
TYPE bkpf-xblnr,
          bktxt   
TYPE bkpf-bktxt,
          stgrd   
TYPE bkpf-stgrd,
          stodt   
TYPE bkpf-stodt" HEAD
*       DOCID TYPE FS006-DOCID,
*        BUZEI TYPE BSEG-BUZEI,  "LINEITEM
          newbs   
TYPE rf05a-newbs,
          newko   
TYPE rf05a-newko,
          wrbtr   
TYPE bseg-wrbtr,
          mwskz   
TYPE bseg-mwskz,
          xmwst   
TYPE bkpf-xmwst,
          bupla   
TYPE bseg-bupla,
          zuonr   
TYPE bseg-zuonr,
          sgtxt   
TYPE bseg-sgtxt,
          gsber   
TYPE cobl-gsber,
          kostl   
TYPE cobl-kostl,
          aufnr   
TYPE cobl-aufnr,
          prctr   
TYPE cobl-prctr,
          segment 
TYPE fb_segment,
          kdauf   
TYPE kdauf,
          kdpos   
TYPE kdpos,
          werks   
TYPE bseg-werks,
        
END OF ty_data.
DATAit_data TYPE TABLE OF ty_data,
      wa_data 
TYPE ty_data.
*HEADER
TYPES BEGIN OF ty_head,
          srno  
TYPE i,
          bldat 
TYPE bkpf-bldat,
          blart 
TYPE bkpf-blart,
          bukrs 
TYPE bkpf-bukrs,
          budat 
TYPE bkpf-budat,
          waers 
TYPE bkpf-waers,
          xblnr 
TYPE bkpf-xblnr,
          bktxt 
TYPE bkpf-bktxt,
          stgrd 
TYPE bkpf-stgrd,
          stodt 
TYPE bkpf-stodt" HEAD
        
END OF ty_head.
DATAit_head TYPE TABLE OF ty_head,
      wa_head 
TYPE ty_head.

**LINE ITEM
DATABEGIN  OF ty_line,
        srno    
TYPE i,
        newbs   
TYPE rf05a-newbs,
        newko   
TYPE rf05a-newko,
        wrbtr   
TYPE bseg-wrbtr,
        mwskz   
TYPE bseg-mwskz,
        xmwst   
TYPE bkpf-xmwst,
        bupla   
TYPE bseg-bupla,
        zuonr   
TYPE bseg-zuonr,
        sgtxt   
TYPE bseg-sgtxt,
        gsber   
TYPE cobl-gsber,
        kostl   
TYPE cobl-kostl,
        aufnr   
TYPE cobl-aufnr,
        prctr   
TYPE cobl-prctr,
        segment 
TYPE fb_segment,
        kdauf   
TYPE kdauf,
        kdpos   
TYPE kdpos,
        werks   
TYPE bseg-werks,
      
END OF ty_line.
DATAit_line TYPE TABLE OF ty_data,
      w_line  
TYPE ty_data.

DATA it_bdcdata TYPE STANDARD TABLE OF bdcdata,
       wa_bdcdata 
TYPE bdcdata.

DATAit_raw TYPE truxs_t_text_data.

* DATA: V_FILE LIKE RLGRAP-FILENAME.

*&---------------------------------------------------------------------*
*& Include          ZFBS1_01_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
PARAMETERS P_FILE TYPE IBIPPARMS-PATH.
SELECTION-SCREEN END OF BLOCK B1 .

*&---------------------------------------------------------------------*
*& Include          ZFBS1_01_SUB
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*

*& Form F4_FILE_NAME
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM f4_file_name .
* DATA: V_FILE LIKE DYNPREAD-FIELDNAME.

CALL FUNCTION 'F4_FILENAME'
   
EXPORTING
     PROGRAM_NAME        
SYST-CPROG
*     DYNPRO_NUMBER       = SYST-DYNNR
*     FIELD_NAME          = 'V_FILE'
   
IMPORTING
     FILE_NAME           
P_FILE.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILE_UPLOAD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM file_upload .

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
  
EXPORTING
   I_FIELD_SEPERATOR          
'X'
   I_LINE_HEADER              
='X'
    i_tab_raw_data             
IT_RAW
    i_filename                 
P_FILE
  
TABLES
    i_tab_converted_data       
IT_DATA
 
EXCEPTIONS
   CONVERSION_FAILED          
1
   
OTHERS                     2
          
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.


*&---------------------------------------------------------------------*
*& Form HEAD_LINE_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM head_line_data .
LOOP AT IT_DATA INTO WA_DATA .
*  AT NEW SRNO.
 WA_HEAD
-SRNO  WA_DATA-SRNO.
 WA_HEAD
-BLDAT WA_DATA-BLDAT.
 WA_HEAD
-BLART WA_DATA-BLART.
 WA_HEAD
-BUKRS WA_DATA-BUKRS.
 WA_HEAD
-BUDAT WA_DATA-BUDAT.
 WA_HEAD
-WAERS WA_DATA-WAERS.
 WA_HEAD
-XBLNR WA_DATA-XBLNR.
 WA_HEAD
-BKTXT WA_DATA-BKTXT.
 WA_HEAD
-STGRD WA_DATA-STGRD.
 WA_HEAD
-STODT WA_DATA-STODT.
*APPEND WA_HEAD TO IT_HEAD.
COLLECT WA_HEAD INTO IT_HEAD.
*ENDAT.
W_LINE
-SRNO  WA_DATA-SRNO.
W_LINE
-NEWBS WA_DATA-NEWBS.
W_LINE
-NEWKO WA_DATA-NEWKO.
W_LINE
-WRBTR WA_DATA-WRBTR.
W_LINE
-MWSKZ WA_DATA-MWSKZ.
W_LINE
-XMWST WA_DATA-XMWST.
W_LINE
-BUPLA WA_DATA-BUPLA.
W_LINE
-ZUONR WA_DATA-ZUONR.
W_LINE
-SGTXT WA_DATA-SGTXT.
W_LINE
-GSBER WA_DATA-GSBER.
W_LINE
-KOSTL WA_DATA-KOSTL.
W_LINE
-AUFNR WA_DATA-AUFNR.
W_LINE
-PRCTR WA_DATA-PRCTR.
W_LINE
-SEGMENT WA_DATA-SEGMENT.
W_LINE
-KDAUF WA_DATA-KDAUF.
W_LINE
-KDPOS WA_DATA-KDPOS.
W_LINE
-WERKS WA_DATA-WERKS.
APPEND W_LINE TO IT_LINE .
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form RUN_BDC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM run_bdc .
*perform open_group.

LOOP AT IT_HEAD INTO WA_HEAD.
  
REFRESH IT_BDCDATA.

* WA_DATA-SRNO = SRNO .
perform bdc_dynpro      using 'SAPMF05A' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF05A-NEWKO'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
 
CALL FUNCTION 'CONVERT_DATE_FORMAT'
  
EXPORTING
    I_DATE            
WA_HEAD-BLDAT
  
IMPORTING
    E_CALC_DATE       
WA_HEAD-BLDAT
           
.
perform bdc_field       using 'BKPF-BLDAT'wa_head-bldat.
*                              '09.02.2023'.
perform bdc_field       using 'BKPF-BLART'WA_HEAD-BLART.
*                              'SA'.
perform bdc_field       using 'BKPF-BUKRS'WA_HEAD-BUKRS.
*                              '1000'.

CALL FUNCTION 'CONVERT_DATE_FORMAT'
 
EXPORTING
   I_DATE            
WA_HEAD-BUDAT
 
IMPORTING
   E_CALC_DATE       
WA_HEAD-BUDAT
          
.
perform bdc_field       using 'BKPF-BUDAT'WA_HEAD-BUDAT.
*                              '09.02.2023'.
perform bdc_field       using 'BKPF-WAERS'WA_HEAD-WAERS.
*                              'INR'.
perform bdc_field       using 'BKPF-XBLNR' WA_HEAD-XBLNR.
*                              'Reference-001'.
perform bdc_field       using 'BKPF-BKTXT'  WA_HEAD-BKTXT.
*                              'header Tesxt-001'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  
EXPORTING
    
input         WA_HEAD-STGRD
 
IMPORTING
   
OUTPUT        WA_HEAD-STGRD
          
.
perform bdc_field       using 'BKPF-STGRD' WA_HEAD-STGRD.
*                              '05'.
CALL FUNCTION 'CONVERT_DATE_FORMAT'
 
EXPORTING
   I_DATE            
WA_HEAD-STODT
 
IMPORTING
   E_CALC_DATE       
WA_HEAD-STODT
          
.
perform bdc_field       using 'BKPF-STODT'WA_HEAD-STODT.
*                              '01.03.2023'.

perform bdc_field       using 'FS006-DOCID' '*'.

PERFORM ITEM_DATA USING wa_head-srno.

CALL TRANSACTION 'FBS1' USING IT_BDCDATA MODE 'A' UPDATE 'A'.
ENDLOOP.
IF sy-subrc EQ 0.
  
MESSAGE 'SESSION UPDATED SUCESSFUL' TYPE 'I' .
  
ENDIF.
ENDFORM.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  
CLEAR WA_BDCDATA.
  WA_BDCDATA
-PROGRAM  PROGRAM.
  WA_BDCDATA
-DYNPRO   DYNPRO.
  WA_BDCDATA
-DYNBEGIN 'X'.
  
APPEND WA_BDCDATA TO IT_BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  
IF FVAL <> SPACE"NODATA.
    
CLEAR WA_BDCDATA.
    WA_BDCDATA
-FNAM FNAM.
    WA_BDCDATA
-FVAL FVAL.
    
APPEND WA_BDCDATA TO IT_BDCDATA.
  
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ITEM_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM item_data USING uv_srno .
LOOP AT IT_LINE INTO W_LINE WHERE SRNO uv_SRNO .
perform bdc_field       using 'RF05A-NEWBS'W_LINE-NEWBS.
*                              '40'.
perform bdc_field       using 'RF05A-NEWKO'W_LINE-NEWKO.
*                              '43300000'.
perform bdc_dynpro      using 'SAPMF05A' '0300'.
perform bdc_field       using 'BDC_CURSOR'
                              
'BSEG-SGTXT'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ZK'.

DATAV_CURR TYPE STRING.
     V_CURR 
=  W_LINE-WRBTR.
SHIFT V_CURR LEFT DELETING LEADING SPACE.
*CONDENSE WRBTR.
perform bdc_field       using  'BSEG-WRBTR'V_CURR" WA_DATA-WRBTR.
*                              '5100'.
perform bdc_field       using 'BSEG-MWSKZ'W_LINE-MWSKZ.
*                              'V0'.
perform bdc_field       using 'BKPF-XMWST'W_LINE-XMWST.
*                              'X'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  
EXPORTING
    
input         W_LINE-BUPLA
 
IMPORTING
   
OUTPUT        W_LINE-BUPLA
          
.
perform bdc_field       using 'BSEG-BUPLA'W_LINE-BUPLA.
*                              '0300'.
perform bdc_field       using 'BSEG-ZUONR'W_LINE-ZUONR.
*                              'Assignment 1'.

perform bdc_field       using 'BSEG-SGTXT'W_LINE-SGTXT.
*                              'Line text1'
.
perform bdc_field       using 'DKACB-FMORE'
                              
'X'.
perform bdc_dynpro      using 'SAPLKACB' '0002'.
perform bdc_field       using 'BDC_CURSOR'
                              
'COBL-WERKS'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTE'.
perform bdc_field       using 'COBL-GSBER'W_LINE-GSBER.
*                              '2400'.
perform bdc_field       using 'COBL-KOSTL'W_LINE-KOSTL.
*                              ''.
perform bdc_field       using 'COBL-AUFNR'W_LINE-AUFNR.
*                              ''.
perform bdc_field       using 'COBL-PRCTR'W_LINE-PRCTR.
*                              '1003'.
perform bdc_field       using 'COBL-SEGMENT'W_LINE-SEGMENT.
*                              '1000'.
perform bdc_field       using 'COBL-KDAUF'W_LINE-KDAUF.
*                              '60000020'.
perform bdc_field       using 'COBL-KDPOS'W_LINE-KDPOS.
*                              '10'.
perform bdc_field       using 'COBL-WERKS'W_LINE-WERKS.
*                              '1003'.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
perform bdc_dynpro      using 'SAPMF05A' '0330'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF05A-NEWKO'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
*perform bdc_field       using 'RF05A-NEWBS',
*                              '50'.
*perform bdc_field       using 'RF05A-NEWKO'
*                              '44500000'.
perform bdc_dynpro      using 'SAPMF05A' '0300'.
perform bdc_field       using 'BDC_CURSOR'
                              
'BSEG-SGTXT'.
perform bdc_field       using 'BDC_OKCODE'
                              
'/00'.
*perform bdc_field       using 'BSEG-WRBTR'
*                              '5100'.
*perform bdc_field       using 'BSEG-MWSKZ'
*                              'V0'.
*perform bdc_field       using 'BSEG-BUPLA'
*                              ''.
*perform bdc_field       using 'BSEG-ZUONR'
*                              'Assignment2'.
*perform bdc_field       using 'BSEG-SGTXT'
*                              'Line text 2'.
perform bdc_field       using 'DKACB-FMORE'
                              
'X'.
perform bdc_dynpro      using 'SAPLKACB' '0002'.
perform bdc_field       using 'BDC_CURSOR'
                              
'COBL-WERKS'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTE'.
*perform bdc_field       using 'COBL-KOSTL'
*                              'FINHO00001'.
perform bdc_dynpro      using 'SAPMF05A' '0300'.
perform bdc_field       using 'BDC_CURSOR'
                              
'BSEG-WRBTR'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=BS'.
*perform bdc_field       using 'BSEG-WRBTR'
*                              '5,100.00'.
*perform bdc_field       using 'BSEG-MWSKZ'
*                              'V0'.
*perform bdc_field       using 'BSEG-ZUONR'
*                              'Assignment2'.
*perform bdc_field       using 'BSEG-SGTXT'
*                              'Line text 2'.
perform bdc_field       using 'DKACB-FMORE'
                              
'X'.
perform bdc_dynpro      using 'SAPLKACB' '0002'.
perform bdc_field       using 'BDC_CURSOR'
                              
'COBL-GSBER'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=ENTE'.
*perform bdc_field       using 'COBL-GSBER'
*                              '2400'.
*perform bdc_field       using 'COBL-KOSTL'
*                              'FINHO00001'.
*perform bdc_field       using 'COBL-PRCTR'
*                              '1003'.
*perform bdc_field       using 'COBL-SEGMENT'
*                              '1000'.
perform bdc_dynpro      using 'SAPMF05A' '0700'.
perform bdc_field       using 'BDC_CURSOR'
                              
'RF05A-NEWBS'.
perform bdc_field       using 'BDC_OKCODE'
                              
'=BU'.
*perform bdc_field       using 'BKPF-XBLNR'
*                              'REFERENCE-001'.
*perform bdc_field       using 'BKPF-BKTXT'
*                              'header Tesxt-001'.
*perform bdc_field       using 'BKPF-VATDATE'
*                              '09.02.2023'.
*perform bdc_transaction using 'FBS1'.

ENDLOOP.
ENDFORM.

OUTPUT:



Translation of language in Smart Forms.

  Step by Step process to Translate English language to Spanish language in smart form. 1. Go to T-Code SE63 in command bar and then enter. ...