Custom tablo yaratma
Custom tablonun requestli olarak update edilmesini istiyorsak. Delivery Class'ı 'C' 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
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
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 .
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
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 bakwe31 =>>>> 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