Thursday, 23 October 2025

Code Syntax Try...Endtry

 Code :

Report Try.

Parameters NUMBER type I.

data RESULT type decimals 2.
data OREF type ref to CX_ROOT.
data TEXT type STRING.

start-of-selection.

write'Testing division and Sqare root with'NUMBER.

uline

try.

if ABSNUMBER 100.
  raise exception type CX_DEMO_ABS_TOO_LARGE.
endif.

try.
RESULT NUMBER.
write'Result of division:'RESULT.
RESULT SQRTNUMBER ).

write'Result of square root:'RESULT.

catch CX_SY_ZERODIVIDE into OREF.

TEXT OREF->GET_TEXT).
cleanup.

clear RESULT.
endtry.
catch CX_SY_ARITHMETIC_ERROR into OREF.

TEXT OREF->GET_TEXT).

catch CX_ROOT into OREF.

TEXT OREF->GET_TEXT).

endtry.

if not TEXT is initial.

write TEXT.

endif.

write'Final result:'RESULT.

**

Wednesday, 22 October 2025

Abap Code Fibonachi Number

 Code :

Report zfibo.

PARAMETERSp_from TYPE i,
             p_to   TYPE i.

 DATAv_from      TYPE i,
       v_to        TYPE i.

 DATATYPE i,
       b TYPE i,
       TYPE i,
      cnt type i.

 START-OF-SELECTION.

   v_from p_from.
   v_to   p_to.

   MOVE v_from TO b.

   cnt 0.
   DO  v_to times.


     IF v_to < cnt.
       EXIT.
     ENDIF.

     a + b.
     a b.
     b c.

     writec.

     cnt b + 1.
   enddo.

Result :














Tuesday, 21 October 2025

Abap Code Prime Number

Code : 

Report Prime_no.

 PARAMETERS: p_from TYPE i,

                             p_to   TYPE i.


DATA: v_from      TYPE i,

            v_to        TYPE i,

            v_remainder TYPE i,

           v_is_prime  TYPE c,

           v_divisor   TYPE i.


START-OF-SELECTION.

  v_from = p_from.

  v_to   = p_to.


  DO.

    IF v_from = v_to.

      EXIT.

    ENDIF.

    CLEAR v_is_prime.

    DO v_from TIMES.

      v_divisor = sy-index.

      v_remainder = v_from MOD v_divisor.

      IF v_divisor <> 1      AND

         v_divisor <> v_from AND

         v_remainder = 0.

*-- not a prime

        v_is_prime = 'N'.

        EXIT.

      ENDIF.

    ENDDO.

    IF v_is_prime IS INITIAL.

*-- the number is prime 

      WRITE:/ v_from.

    ENDIF.

    v_from = v_from + 1.

  ENDDO.


*****************************************************************

Result :





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.
 


Sunday, 6 October 2024

Sample Code Abap SE38

 Sample Code 



Report  ZTEST.


  tables mseg.
  type-poolsslis,icon,vimty,abap,truxs.

 databegin of it_mseg occurs 0,
         mjahr type mseg-mjahr,
         matnr type mseg-matnr,
         kdauf type mseg-kdauf,
         dmbtr type mseg-dmbtr,
       end of it_mseg.

*ALV
data:  d_repid      type sy-repid,
       t_fldcat     type slis_t_fieldcat_alv,
       t_sort       type slis_t_sortinfo_alv,
       x_layout     type slis_layout_alv,
       s_fldcat     type slis_fieldcat_alv.

initialization.
perform binit.

select-optionss_kdauf for mseg-kdauf,
                s_mjahr for  mseg-mjahr.
.

at selection-screen output.

start-of-selection.

at selection-screen.

start-of-selection.
  select into corresponding fields of table it_mseg
    from mseg
    where kdauf in s_kdauf
      and mjahr in s_mjahr.

  loop at it_mseg.
    multiply it_mseg-dmbtr by 100.
    modify it_mseg.
  endloop.

  perform  l_build_layout_ist.
  perform  build_fieldcat_ist.
  perform  display_ist.
*


end-of-selection.
*&---------------------------------------------------------------------*
*&      Form  BINIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form binit .
    define f_fldcat.
    clear s_fldcat.
    s_fldcat-fieldname &1.
    s_fldcat-decimals_out  &2.
    s_fldcat-seltext_l &3.
    s_fldcat-outputlen  &4.
    s_fldcat-just      &5.
    s_fldcat-no_out    &6.
    s_fldcat-datatype  &7.
    s_fldcat-qfieldname &8.
    s_fldcat-no_zero  &9.
    append s_fldcat to t_fldcat.
  end-of-definition.
endform.                    " BINIT
*&---------------------------------------------------------------------*
*&      Form  L_BUILD_LAYOUT_IST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form l_build_layout_ist .
  x_layout-colwidth_optimize  'X'.
   x_layout-info_fieldname     'LINE_COLOR'.
   x_layout-def_status         'X'.
*  x_layout-lights_fieldname  = 'TRF_LIGHT'.
*  x_layout-lights_tabname    = 'I_LIGHTS'.
endform.                    " L_BUILD_LAYOUT_IST
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT_IST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form build_fieldcat_ist .
   f_fldcat 'MJAHR' '' 'Year' '' 'L' ''  'CHAR' '' '' .
   f_fldcat 'KDAUF' '' 'Sales order' '' 'L' ''  'CHAR' '' '' .
   f_fldcat 'MATNR' '' 'Material' '' 'L' ''  '' '' '' .
   f_fldcat 'DMBTR' '0' 'Amount' '' 'R' ''  'DEC' '' '' .
   clear s_fldcat.
endform.                    " BUILD_FIELDCAT_IST
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_IST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form display_ist .
 d_repid sy-repid.
   call function 'REUSE_ALV_GRID_DISPLAY'
     exporting
       i_callback_program       d_repid
       i_callback_pf_status_set 'STAT_SET'
       i_callback_user_command  'USER_COMMAND'
       it_fieldcat              t_fldcat[]
       it_sort                  t_sort[]
       is_layout                x_layout
       i_default                ''
       i_save                   ''
     tables
       t_outtab                 it_mseg[]
     exceptions
       program_error            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.
endform.                    " DISPLAY_IST


*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_UCOMM    text
*      -->P_SELFIELD text
*----------------------------------------------------------------------*
 form user_command  using p_ucomm    like sy-ucomm
                          rs_selfield type slis_selfield.
   case p_ucomm.
     when '&PRO'.
     when '&BACK'.
       leave to screen 0.
     when '&EXIT'.
       leave to screen 0.
     when '&CNCL'.
       leave to screen 0.
   endcase.
 endform.                    "USER_COMMAND


*&---------------------------------------------------------------------*
*&      Form  f_status_set
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RT_EXTAB   text
*----------------------------------------------------------------------*
 form stat_set using rt_extab type slis_t_extab.
   set pf-status 'ZALV2'.
 endform.                    "stat_set

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...