ABAP

ABAP

Custom tablo yaratma,number range yaratma,search help,yararlı transaction ve tablolar,field-exit yaratma ve kullanma,ikili fonksiyon çalıştırma test sequence

Custom tablo yaratma


Custom tablonun requestli olarak update edilmesini istiyorsak. Delivery Class'ı 'C' olarak ayarlıyoruz.



Bu işlemden sonra, tablo için gerekli işlemleri  yaptıktan sonra, Menü'den Utilities>>Table Maintenance Generator'a giriyoruz. Recording routine bölümünü 'Standard recording routine' olarak ayarlıyoruz.

















Search-help yaratma

SE11 t-code'unda search help kısmına search help in ismi yazılır. Create butonuna basılır.


Sonra elemantary search help seçeneğini seçiyoruz. Elemantary direk data ların geldiği bir search help. Collective arama yapılan menünün gelmesini sağlıyor.



Yukarıdaki selection method kısmına datanın gelmesini istediğimiz tabloyu yazıyoruz. Aşağıdaki listeye de o alanları yazıyoruz. Yan yana olmasını istediğimiz LPOS SPOS alanlarına 1 1 2 2 yazıp birden çok olan dataların yan yana gelme sırasını belirtebiliyoruz.  Search help exit kısmına da belli bir şekillde kısıtlanması istenen search help, bir function yazılıp, bu search help exit kısmına belirtiliyor.
Function'da parametreler aşağıda belirtilmiştir.
Changing kısmı :



Tables kısmı


Number-Range Yaratma

Oncelıkle number range sıralı sayılar almak amacı ile kullanılır . Mesela bankadan alınan bir dekont ama soyle bır durum var canlı kullanımda farklı serverlar olabılecegınden bır server 1-100 arası bır sayı verırken diger server 100-200 arası gıbı bır sayı uretebilir sonucta butun sayılar uretilir ama nasıl bir durum olusabılır sayılar sırayla gitmez eger biz sayıların sırayla ılerlemesini istiyorsak no buffering yapmamız lazım  .

Birde warning gibi bir durum var seceneklerdeki warning ters mantık calısıyor %10 dersek  %90 ı doldugunda uyarı verecek yani kalan yuzdesi ordaki yuzde remaining perc.

Daha sonra number range interval yaratılır  .
No   Year        From Number     To Number   C.Num
01 2011 0000000001 9999999999 2    seklınde

No Numaraları verırken kullanacagız year gecerlı oldugu yıl baslangıc ve bitis noları ve suanda hangi numarada oldugu bunları her sistemde yaratmamız gerekiyor . Tasıma gibi bir durum olmuyor . Ben banka dekontu icin bunu kullandım yarattıktan sonra nasıl kullandıgımıza gelınce programımızda

    call function 'NUMBER_GET_NEXT'   fonksiyonunu cagırıyoruz  .
        exporting
        nr_range_nr                   = '01'
        object                            = 'YPKFI_CUSD'
*      QUANTITY                  = '1'
*      SUBOBJECT                = ' '
        toyear                            = '2011'
*      IGNORE_BUFFER      = ' '
        importing
        number                          = gt_header-number

Atadıgımız number range numberla ,obje adıyla ve yılla buda bize sayıyı dondurmekte . 
Daha sonra aldıgımız bu sayıyı ıstedıgımız gıbı kullanabılırız  .




Yararlı Transaction ve Tablolar 

su01   =>>>>user yetkiler
su21    =>>>> maintain authorization object
su20    =>>>> yeni authorization field ekleme
su53    =>>>> hata mesajları
st22    =>>>> dump
sq01   =>>>> query ve query'e baglı insofeti gorme
sq02   =>>>> infoset
se01   =>>>> trans organizer
se03    =>>>>requestlerle alakalı durumlar
se11    =>>>>database table view data type type group vs
se14    =>>>>adjust table (tablo adjust hatasında girilir )  = > utilities>>database object>>d.base utility
se16    =>>>>tablo data goruntuleme  ( sap_edit yapılarak kayıtlar yetki olması dahilinde degıstırılebılır)
se19    =>>>>badi builder
se24    =>>>>object type class builder
se38    =>>>>abap editor
se54   =>>>>auth group vs  .
se51   =>>>> screen painter
se71   =>>>>sap script
se78   =>>>>smartform graphics yukleme
se80   =>>>> object navigator
se91   =>>>> message class
se93   =>>>> trx yaratma
we19  =>>>> idoc bak
we31  =>>>> idoc segment
wedi    =>>>>  idocla alakalı trxler
shdb    =>>>>  batch input record
sm12   =>>>>tablo kitleme vs
sm13   =>>>>updatelerde hatalar vs update termination
sbwp   =>>>> business workplace
sm30   =>>>>  tablo maintaince ( tablo data girisi )
sm37   =>>>> job overview
al11    =>>>> sap directories
so10   --- standart textler
snum  --- number ranges

sproxy --- >> abap proxy
sxmb_moni  burdan   monitor edıyorsun



smartforms  =>>>>  smartformlar
smartstyles =>>>>  yazı tipleri smartform icin
spad --->> spool ayarlar

sp01 --->> spool
spro
smod --->> sap enchacements 
cmod ----> p.m of sap encha     smodları cmoda baglamak lazım tasıttıgında kullandıgın exitin aktif gıtmesı ıcın
modsap =>>>> sap enhancement 

rstxscrp =>>>> sap script export import program
rsaqr3tr =>>>> query infoset import export program


MM --- >>   nace -- >>>  cıktı turleri baglama
                     mm02-- >> malzeme degıstır
BW --- >>   rsa3-rsa6  -- >>>  datasource isleri

SD --- ->>   vf23  -- >> invoice list
                    va02  -- >> sales order-->>  müşteri siparişi
                    vl03n -- >> outbound.d-->>  teslimat
vf02 -- >> fatura


AQGQCAT --->>> Query ve Infoset ilişkisini gösteriyor.
TSTC          --->>>  Transaction ve Program ilişkisini gösteriyor
TSTCP       ---->>> Transaction ve Table ilişkisini gösteriyor.
MODSAP   --->>>  Function exit ve Enhancement ilişkisini gösteriyor.
TNAPR      ---->>> Cıktı Turleri


Field-Exit Yaratma 

Once Cmod 'a girilir daha sonra prfb yazılır field exit menusu acılır . Burdan field exit yaratılır buna baglı olarak otamatik sekılde function yaratılır .

Functionda istenilen yapılır ve daha sonra hangi programda hangi ekran icin yapılmıssa bu atanır .

FUNCTION FIELD_EXIT_CTLPC_CM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------
  TABLES : yutsd0065.
  DATA : lv_kkber TYPE rf02l-kkber.
  GET PARAMETER ID 'KKB' FIELD lv_kkber.
  IF lv_kkber IS NOT INITIAL.
    SELECT SINGLE * FROM yutsd0065
            WHERE kkber EQ lv_kkber.
    IF output IS INITIAL AND sy-subrc EQ 0.
      MESSAGE e007(yusd) WITH text-001.
    ENDIF.
  ENDIF.
ENDFUNCTION.

İkili Fonksiyon Çalıştırma ( Test Sequence )

Art arda iki tane fonksiyonu manuel olarak çalıştırma.
Mesela bizim örneğimizde:

BAPI_CONTRACT_CREATE fonksiyonunu manuel olarak çagırdıktan sonra onu commit etmek için
BAPI_TRANSACTION_COMMIT fonksiyonunu manuel olarak çağırmanın yolunu incelicez.

SE37 t-code'una girdikten sonra
Sol üst Function Module >> Test >> Test Sequence ' e tıklıyoruz



Sonra karşımıza çıkan ekranda:



İki fonksiyonu'da yazıyoruz. Ve execute tuşuna basıyoruz .

No comments:

Post a Comment

Total Pageviews