Tuesday, 27 May 2025

Get Variant or Range Select option or Parameter

 

  Variant Or Range

  If Your program want fill program with Select-option , Parameters or Range. You Can Use Tcode

          TCode - STVARV - Display Table TVARVC   *

          TCode - STVARVC - Display Table TVARVC  

  it maintain Table TVARVC.

*  Common Use 

 Code : 

* S4Hana

  DATA(r_sodo_flow_lfart) = zcl_didca_utilities=>get_stvarv_selection_option( i_name =     

                                                        'ZDIDSD_S_SF_SODOFLOW_LFART' ). 

* ECC6

DATA:
  ls_tvarvc TYPE tvarvc.

SELECT SINGLE *
  INTO ls_tvarvc
  FROM tvarvc
  WHERE name = 'Z_MY_PROGRAM_LAST_IDOC'.

CHECK sy-subrc = 0.

ls_tvarvc-low = ls_tvarvc-low + 5.
MODIFY tvarvc FROM ls_tvarvc.

SELECT SINGLE *
  INTO ls_tvarvc
  FROM tvarvc
  WHERE name = 'Z_MY_PROGRAM_LAST_DATE'.

CHECK sy-subrc = 0.

ls_tvarvc-low = sy-datum.
MODIFY tvarvc FROM ls_tvarvc.

SELECT SINGLE *
  INTO ls_tvarvc
  FROM tvarvc
  WHERE name = 'Z_MY_PROGRAM_LAST_TIME'.

CHECK sy-subrc = 0.

ls_tvarvc-low = sy-uzeit.
MODIFY tvarvc FROM ls_tvarvc.



  TCODE  STVARV:

   - Parameter :


   - Select-Option :


 - Individual Maintance
















   


Monday, 5 May 2025

Download XML from Excel

 Download XML from Excel


Create Struc Table ZTAX_HEADER    (SE11)


Create Struc Table ZTAX_ITEM
 (SE11)

  
Create Table Type  (SE11)


Create Structure
   (SE11)


C
reate Table Type    




 Tcode : XSLT_TOOL







Program :

Report Z_XML_SAMPLE.
*----------------------------------------------------------------------*
*   data definition
*----------------------------------------------------------------------*
*       Batchinputdata of single transaction
DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
*       messages of call transaction
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*       error session opened (' ' or 'X')

DATA:  BEGIN OF IT_MESSTAB OCCURS 0 .
        INCLUDE STRUCTURE BDCMSGCOLL.
DATA:  L_MSTRING(480) TYPE C.
DATA:  END OF IT_MESSTAB.

DATA:   E_GROUP_OPENED.
*       message texts
TABLES: T100.

DATA : BEGIN OF t_output1 OCCURS 0,
        col1(5) TYPE c,
        col2(20) TYPE c,
        col3(200) TYPE c,
        col4(60) TYPE c,
        col5(20) TYPE c,
        col6(20) TYPE c,
        col7(20) TYPE c,
        col8(30) TYPE c,
        col9(150) TYPE c,
        col10(255) TYPE c,
        col11(20) TYPE c,
        col12(20) TYPE c,
        col13(25) TYPE c,
        col14(40) TYPE c,
        col15(225) TYPE c,
        col16(20) TYPE c,
        col17(25) TYPE c,
        col18(20) TYPE c,
        col19(100) TYPE c,
        col20(30) TYPE c, "ba+ jtjen02, 08.01.2022
        col21(3),
        no_urut(3) type n,
       END OF t_output1.

 Data : t_output2 like TABLE OF t_output1 WITH HEADER LINE.



DATA: it_folder   LIKE STANDARD TABLE OF sdokpath,
      it_file     LIKE STANDARD TABLE OF sdokpath,
      it_fol_fil  LIKE STANDARD TABLE OF sdokpath,
      wa_fol_fil  LIKE sdokpath,
      file_count  TYPE i,
      dir_count   TYPE i.

DATA : CNTR_NO(4) TYPE N,
       LINE_NO(4) TYPE N.

DATA : vf_start_col TYPE i,   "start column
       vf_start_row TYPE i,   "start row
       vf_end_col   TYPE i,   "maximum column
       vf_end_row   TYPE i,   "maximum row
       p_text(20).

DATA: itabb TYPE STANDARD TABLE OF kcde_cells WITH HEADER LINE,
      vf_index TYPE i,
      itabb2 TYPE STANDARD TABLE OF kcde_cells WITH HEADER LINE.

DATA: tab type table of itab,
      wa_tab like itab.

*  Check In Uplad File Have Same Component dan Date
DATA : DG_MATNR TYPE MATNR,
       DG_DATUV TYPE DATUV,
       DG_IDNRK TYPE IDNRK.

FIELD-SYMBOLS: <fs>.

DATA: DG_DATUVF TYPE SY-DATUM,
      DG_DATUVL TYPE SY-DATUM.

SELECTION-SCREEN BEGIN OF BLOCK SEL1 WITH FRAME TITLE TEXT-003.
PARAMETERS : RB_UP RADIOBUTTON GROUP RB_1 DEFAULT 'X' USER-COMMAND ucom.
PARAMETERS : P_FNAME TYPE IBIPPARMS-PATH .
PARAMETERS : P_FNAME2 TYPE IBIPPARMS-PATH .
*SELECTION-SCREEN SKIP 1.
PARAMETERS : RB_TMP RADIOBUTTON GROUP RB_1.
PARAMETER  : pdirp   TYPE pfeflnamel DEFAULT 'D:\',
             p_psavep  TYPE string DEFAULT 'Material Template.XLS'.
SELECTION-SCREEN SKIP 1.
PARAMETERS : RB_DWN RADIOBUTTON GROUP RB_1.

SELECTION-SCREEN END OF BLOCK SEL1.

AT SELECTION-SCREEN OUTPUT.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
  DATA: PATH LIKE RLGRAP-FILENAME.
  PATH = 'D:\'.
  CALL FUNCTION 'WS_FILENAME_GET'
  EXPORTING
    DEF_FILENAME     = SPACE
    DEF_PATH         = PATH
*    MASK             = ',.xls , .xlsx.'
*      MASK             = ', .txt , .txt.'
    MODE             = 'O'
    TITLE            = 'PC-File-Selection'
  IMPORTING
    FILENAME         = p_fname
  EXCEPTIONS
    INV_WINSYS       = 1
    NO_BATCH         = 2
    SELECTION_CANCEL = 3
    SELECTION_ERROR  = 4
    OTHERS           = 5.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pdirp.
  DATA: fname TYPE string.

  CALL METHOD cl_gui_frontend_services=>directory_browse
    EXPORTING
      window_title         = 'Select Directory'
    CHANGING
      selected_folder      = fname
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  pdirp = fname.

INITIALIZATION.

START-OF-SELECTION.

*  SPLIT data Form Excel
  vf_start_col = '1'.
  vf_start_row = '2'.
  vf_end_col = '60'.
  vf_end_row = '10000'.

  CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT' " Function to download data
                                               " from excel
        EXPORTING
          filename                = p_fname
          i_begin_col             = vf_start_col
          i_begin_row             = vf_start_row
          i_end_col               = vf_end_col
          i_end_row               = vf_end_row
        TABLES
          intern                  = itabb "B09
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 2
          OTHERS                  = 3.
  IF sy-subrc <> 0.
    MESSAGE i454(0) WITH 'File not found'.
  ENDIF.


  CLEAR: itabb .
  SORT itabb BY row col.
  LOOP AT itabb.
    MOVE : itabb-col TO vf_index.
    ASSIGN COMPONENT vf_index OF STRUCTURE t_output1 TO <fs>.
    MOVE : itabb-value TO <fs>.
    AT END OF row.
      APPEND t_output1.
    ENDAT.
  ENDLOOP.


  CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT' " Function to download data
                                               " from excel
        EXPORTING
          filename                = p_fname2
          i_begin_col             = vf_start_col
          i_begin_row             = vf_start_row
          i_end_col               = vf_end_col
          i_end_row               = vf_end_row
        TABLES
          intern                  = itabb2 "B09
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 2
          OTHERS                  = 3.
  IF sy-subrc <> 0.
    MESSAGE i454(0) WITH 'File not found'.
  ENDIF.

  CLEAR: itabb2 .
  SORT itabb2 BY row col.
  LOOP AT itabb2.
    MOVE : itabb2-col TO vf_index.
    ASSIGN COMPONENT vf_index OF STRUCTURE t_output2 TO <fs>.
    MOVE : itabb2-value TO <fs>.
    AT END OF row.
      APPEND t_output2.
    ENDAT.
  ENDLOOP.


data : gt_faktur_out  type ztax_faktur_tt,
       gs_faktur_out  like line of gt_faktur_out,
       lv_file TYPE string,
      gv_xml_result type string.

Loop at t_output1.
  gs_faktur_out-tax_header = t_output1.
  Loop at t_output2 where col1 = t_output1-col1.
    append t_output2 to gs_faktur_out-tax_item.
  Endloop.
    append gs_faktur_out to gt_faktur_out.
    clear gs_faktur_out.
Endloop.


*  Call the transformation
CALL TRANSFORMATION  ZFAKTUR_TAX
  SOURCE
    FAKTUR = gt_faktur_out[]
  RESULT XML
    gv_xml_result.

DATA: lo_xml_doc TYPE ref TO CL_XML_DOCUMENT.

*File path
  lv_file = 'D:\Dataku\Core Tax\Facktur.xml'.

CREATE OBJECT lo_xml_doc.
lo_xml_doc->parse_string( gv_xml_result ).
* Render To XML Table

data it_xml TYPE DCXMLLINES.

CALL FUNCTION 'SDIXML_DOM_TO_XML'
  EXPORTING
    document            = lo_xml_doc->m_document
   PRETTY_PRINT        = 'X'
* IMPORTING
*   XML_AS_STRING       =
*   SIZE                =
 TABLES
   XML_AS_TABLE        = it_xml
* EXCEPTIONS
*   NO_DOCUMENT         = 1
*   OTHERS              = 2
          .
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename     = lv_file
      filetype     = 'BIN'
    TABLES
      data_tab     = it_xml
    EXCEPTIONS
      OTHERS       = 1.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
 


Visitor

Code Syntax Try...Endtry

  Code : Report Try. Parameters  NUMBER  type  I . data  RESULT  type  P  decimals  2 . data  OREF  type  ref  to  CX_ROOT . data  TEXT  typ...