Abap Dinamik Select Sorgusu

28 Ağustos

2015

Abap Dinamik Select Sorgusu :
stype_fields tipinde bir tablo tanımlıyoruz.


TYPES : 
BEGIN OF stype_fields,
fieldname TYPE name_feld, 
END OF stype_fields

Itabımızı tanımlıyoruz


DATA:
gt_itab type standard table of MSEG with header line.

Dinamik sorgu için kullanacağımız field isimlerinin bulunduğu tablo


data : g_t_fields type standard table of stype_fields.

Burada sütun isimlerini kafamıza göre belirliyoruz.


append 'MSEG~ANLN1' to g_t_fields.
append 'MSEG~ANLN2' to g_t_fields.
append 'MSEG~APLZL' to g_t_fields.
append 'MSEG~AUFNR' to g_t_fields.
append 'MSEG~AUFPL' to g_t_fields.

Select sorgumuz


select (g_t_fields)
into corresponding fields of table gt_itab
from MSEG.

Transaction Bazında Badi Bulma

28 Ağustos

2015

Transaction Bazında Badi Bulma :

SE37 —> SXV_GET_CLIF_BY_NAME Fonksiyonun içine break-point koyun.

Transactionı çalıştırdığınızda buraya düşecek.Debug moddaki EXIT_NAME badi isimlerini vericektir.

Abap Progress Bar Yapımı

25 Ağustos

2015

Abap Progress Bar Yapımı :

Abapta yapılan işlem sırasında işlemin yüzdelik olarak aşağıda gösterilmesini sağlamak istiyorsanız aşağıdaki kodlamayla yapabilirsiniz.


TYPES: BEGIN OF t_mara,
  matnr LIKE mara-matnr,
END OF t_mara.
DATA: it_mara TYPE STANDARD TABLE OF t_mara INITIAL SIZE 0,
      wa_mara TYPE t_mara.
DATA: mara_lines TYPE I,
      gd_percent TYPE I.
START-OF-SELECTION.

SELECT matnr
INTO TABLE it_mara
FROM mara.

CHECK sy-subrc EQ 0.
mara_lines = sy-dbcnt.
CLEAR: gd_percent.

LOOP AT it_mara INTO wa_mara.
  PERFORM progress_bar USING 'Veriler alınıyor...'(001)
        sy-tabix
        mara_lines.

ENDLOOP.

FORM progress_bar USING    p_value
      p_tabix
      p_nlines.

  DATA: w_text(40),
        w_percentage TYPE p,
        w_percent_char(3).

  w_percentage = ( p_tabix / p_nlines ) * 100.
  w_percent_char = w_percentage.
  SHIFT w_percent_char LEFT DELETING LEADING ' '.
  CONCATENATE p_value w_percent_char '% Tamamlandı'(002) INTO w_text.

  IF w_percentage GT gd_percent OR p_tabix EQ 1.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = w_percentage
      TEXT       = w_text.
    gd_percent = w_percentage.
  ENDIF.
ENDFORM.                    " PROGRESS_BAR

25 Ağustos

2015

Abap Transaction kodu bazinda USER EXIT listesi :


TABLES : TSTC,
  TADIR,
  MODSAPT,
  MODACT,
  TRDIR,
  TFDIR,
  ENLFDIR,
  SXS_ATTRT ,
  TSTCT.

DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.

PARAMETERS : P_TCODE LIKE TSTC-TCODE,
P_PGMNA LIKE TSTC-PGMNA .

DATA wa_tadir TYPE tadir.

START-OF-SELECTION.

IF NOT P_TCODE IS INITIAL.
  SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.

ELSEIF NOT P_PGMNA IS INITIAL.
  TSTC-PGMNA = P_PGMNA.
ENDIF.

IF SY-SUBRC EQ 0.
  SELECT SINGLE * FROM TADIR
  WHERE PGMID = 'R3TR'
  AND OBJECT = 'PROG'
  AND OBJ_NAME = TSTC-PGMNA.

  MOVE : TADIR-DEVCLASS TO V_DEVCLASS.

  IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
      SELECT SINGLE * FROM TFDIR
      WHERE PNAME = TSTC-PGMNA.

      SELECT SINGLE * FROM ENLFDIR
      WHERE FUNCNAME = TFDIR-FUNCNAME.

      SELECT SINGLE * FROM TADIR
      WHERE PGMID = 'R3TR'
      AND OBJECT = 'FUGR'
      AND OBJ_NAME EQ ENLFDIR-AREA.

      MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
  ENDIF.

  SELECT * FROM TADIR INTO TABLE JTAB
  WHERE PGMID = 'R3TR'
  AND OBJECT IN ('SMOD', 'SXSD')
  AND DEVCLASS = V_DEVCLASS.

  SELECT SINGLE * FROM TSTCT
  WHERE SPRSL EQ SY-LANGU
  AND TCODE EQ P_TCODE.

  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
  WRITE:/(19) 'Transaction Code - ',
  20(20) P_TCODE,
  45(50) TSTCT-TTEXT.
  SKIP.
  IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.

* ITAB ı sıralarız

    SORT jtab BY OBJECT.
    DATA : wf_txt(60) TYPE C,
          wf_smod TYPE I ,
          wf_badi TYPE I ,
          wf_object2(30) TYPE C.
    CLEAR : wf_smod, wf_badi , wf_object2.

* Toplam SMOD

    LOOP AT JTAB INTO wa_tadir.
      AT FIRST.
        FORMAT COLOR COL_HEADING INTENSIFIED ON.

        WRITE:/1 SY-VLINE,
        2 'Enhancement/ Business Add-in',
        41 SY-VLINE ,
        42 'Description',
        105 SY-VLINE.
        WRITE:/(105) SY-ULINE.
      ENDAT.
      CLEAR wf_txt.
      AT NEW object.
        IF wa_tadir-object = 'SMOD'.
          wf_object2 = 'Enhancement' .
      ELSEIF wa_tadir-object = 'SXSD'.
          wf_object2 = ' Business Add-in'.

        ENDIF.
        FORMAT COLOR COL_GROUP INTENSIFIED ON.

        WRITE:/1 SY-VLINE,

        2 wf_object2,
        105 SY-VLINE.
      ENDAT.

      CASE wa_tadir-object.
      WHEN 'SMOD'.
        wf_smod = wf_smod + 1.
        SELECT SINGLE MODTEXT INTO wf_txt
        FROM MODSAPT
        WHERE SPRSL = SY-LANGU
        AND NAME = wa_tadir-OBJ_NAME.
        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

      WHEN 'SXSD'.

*BADi

        wf_badi = wf_badi + 1 .
        SELECT SINGLE TEXT INTO wf_txt
        FROM SXS_ATTRT
        WHERE sprsl = sy-langu
        AND EXIT_NAME = wa_tadir-OBJ_NAME.
        FORMAT COLOR COL_NORMAL INTENSIFIED ON.

      ENDCASE.


      WRITE:/1 SY-VLINE,
      2 wa_tadir-OBJ_NAME HOTSPOT ON,
      41 SY-VLINE ,
      42 wf_txt,
      105 SY-VLINE.
      AT END OF object.
        WRITE : /(105) sy-ULINE.
      ENDAT.

    ENDLOOP.

    WRITE:/(105) SY-ULINE.


    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.

  ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
  ENDIF.
ELSE.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
  WRITE:/(105) 'Transaction does not exist'.
ENDIF.

AT LINE-SELECTION.

DATA : wf_object TYPE tadir-object.
CLEAR wf_object.

GET CURSOR FIELD FIELD1.
CHECK FIELD1(8) EQ 'WA_TADIR'.
READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).
MOVE jtab-object TO wf_object.

CASE wf_object.
WHEN 'SMOD'.
  SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).

  CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
WHEN 'SXSD'.
  SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
  CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
ENDCASE.

ibrahimemur.com_transaction_kodu_bazinda_user_exit_listesi_01

ibrahimemur.com_transaction_kodu_bazinda_user_exit_listesi_02

Abap Dosya Seçme Alanı Ekleme

25 Ağustos

2015

Abap Dosya Seçme Alanı Ekleme :

Abap ekranına dosya seçme ekranı eklemek için :


PARAMETERS : FILEX LIKE RLGRAP-FILENAME DEFAULT 'C:\' OBLIGATORY.
"////////////////////////////////////////////////
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEX .
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = FILEX .

Abap Malzeme Ölçü Dönüşümü

25 Ağustos

2015

Abap Malzeme Ölçü Dönüşümü :

Sap sisteminde abap kodlarken malzeme ölçü birimi dönüşümü yaparken kullanılan fonksiyor : MD_CONVERT_MATERIAL_UNIT


DATA:
pmatnr LIKE mara-matnr,
pmein1 LIKE mara-meins,
pmein2 LIKE mara-meins,
pmeng1 LIKE ekpo-menge,
pmeng2 LIKE ekpo-menge.

CLEAR : pmatnr, pmein1, pmein2, pmeng1, pmeng2.


CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr  = pmatnr "Malzeme Numarası
i_in_me  = pmein1 "Dönüştürülecek Ölçü Birimi
i_out_me = pmein2 "Dönüştürülmek İstenen Ölçü Birimi
i_menge  = pmeng1 "Miktar
IMPORTING
e_menge  = pmeng2  "Dönen Miktar
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.

C# Web Browser Veri Çekme

24 Ağustos

2015

C# Web Browser Veri Çekme :

Eğer HTML’de Body Tagının içindeki kısmı almak istiyorsanız :


webBrowser1.Document.Body.InnerHtml.ToString();

Eğer HTML’de herhangi bir formun kod kısmını almak istiyorsanız :


webBrowser1.Document.Forms[0].InnerHtml.ToString();

Hepsini almak istiyorsanız :


webBrowser1.DocumentText.ToString();

19 Ağustos

2015

Php : Maximum execution time of 30 seconds exceeded hatası

Sizde benim gibi php kodlamada bu hatayı alıyorsanız hatayı aldığınız sayfaya aşağıdaki kodu ekleyerek hatayı geçebilirsiniz.


set_time_limit(0);

Abap Sıralı Numara Üretme

17 Ağustos

2015

Sap sisteminde siralı numara üretmek için

SNRO Transactionından zli yapı oluşturulur.

ibrahim_emur_snro

SNRO dan oluşturduğumuz sıralı numaralara ulaşabilmek içinde aşağıdaki kodu kullanabiliriz.


data : ld_number   TYPE numc10,
       ld_error    LIKE	INRI-RETURNCODE.


CALL FUNCTION 'NUMBER_GET_NEXT'
    EXPORTING
      NR_RANGE_NR                   = '01'       
      OBJECT                        = 'ZZ_FI_W_ENT' 
    IMPORTING
      NUMBER                        = ld_number
      RETURNCODE                    = ld_error
    EXCEPTIONS
      INTERVAL_NOT_FOUND            = 1
      NUMBER_RANGE_NOT_INTERN       = 2
      OBJECT_NOT_FOUND              = 3
      QUANTITY_IS_0                 = 4
      QUANTITY_IS_NOT_1             = 5
      INTERVAL_OVERFLOW             = 6
      BUFFER_OVERFLOW               = 7
      OTHERS                        = 8.


Abap String İşlemleri

14 Ağustos

2015

Abap String İşlemleri :

Birleştirme :


CONCATENATE string_1 string_2 INTO lv_string .

Ayraçlı Birleştirme :


CONCATENATE string_1 string_2 INTO lv_string SEPARATED BY "\".

Split :


SPLIT LIST AT "," INTO string_1 string_2 string_3.

Split to internal table :



SPLIT LIST AT "," INTO TABLE NAMES.

Büyük Harfe Çevirme :


SHIFT string_1.
SHIFT string_2 BY 3 PLACES.
SHIFT string_3 RIGHT.

Boşlukları Silerek Büyük Harfe Çevirme :


SHIFT NAMES RIGHT DELETING TRAILING SPACE.

Replace ve Translate :


DATA: STRING(80),

REPLACE "&" WITH "X" INTO STRING.

TRANSLATE STRING USING "&X".

EXPRESSION = "a ** 2 + b ** 2 = c ** 2".
TRANSLATE EXPRESSION USING "axbycz".
   REPLACE "," WITH "" INTO lv_degisken.
   REPLACE ALL OCCURRENCES OF "," IN lv_degisken WITH "".

İtab Search String :


SEARCH TEXT FOR "California".
IF SY-SUBRC NE 0. WRITE "Not found". ENDIF.
SEARCH TEXT FOR "cAliforniA".
IF SY-SUBRC NE 0. WRITE "Not found". ENDIF.
SEARCH TEXT FOR "New M".
IF SY-SUBRC NE 0. WRITE "Not found". ENDIF.
Toplam 2 sayfa, 1. sayfa gösteriliyor.12