23 Nisan 2009 Perşembe

ABAP : SAP NETWEAVER 7.0 ABAP TRIAL VERSION

Merhabalar, sap netweaver 7.0-7.1 abap trial version kurulumu ile ilgili bazı mailler alıyorum, özellikle hata aldıkları
ve kurulumu yapamadıkları yönünde. Karşınıza muhtemelen;

WARNING:could not delete temporary file C:\DOCUME~1\pc\LOCALS~1\Temp\ismp003\4410326

gibi hatalar çıkmaktadır. Bu hata tamamen JAVA'dan kaynaklı bir sorundur. Düzeltmek için yapmanız gerekenler, "Regional Settings / Bölgesel Ayarlar" dan , ayarları Turkish ya da Türkçe den, English ya da İngilizce'ye çekmektir. 
Bunu JAVA neden yapıyor bilmiyorum ama bu sorun JAVA tabanlı bir çok yazılımda karşımıza çıkmaktadır. Örneğin, Adobe Flex ile kodlarınızı derlerken veya bazı oyunlarda :) sorun olarak karşımıza çıkmakta saç baş yoldurmaktadır.
Hadi iyi çalışmalar, piyonları doğru yere koyun akıllı oynayın.

21 Nisan 2009 Salı

ABAP : ALV validasyonu, IS_VALID ?

Merhabalar,
Değiştirilebilir hücrelerin olduğu bir ALV de, ekrana girilen değerler uygun mu değil mi diye kontrol etmek için CHECK_CHANGED_DATA metodu ile kullanacağımız bir parametre mevcut, E_VALID parametresi.
Örneğin, sayı alanına text girip bir butona basarsanız ALV otomatik olarak size hata loglarının olduğu bir popup çıkaracaktır. Fakat PAI metodları çalışmaya devam edecektir. Yani sizin koyduğunuz bir butonun arkasında bir PERFORM mevcut ise, hataya rağmen çalışacaktır. Bunu engellemek için ekranda butona basıldıktan sonra, değiştirilebilir hücrelerde ki değerleri almak için kullandığımız CHECK_CHANGED_DATA metodundan bir parametre daha alıyoruz. IS_VALID parametresi.

Eğer ALV de ki değerler uygun ise, size X değilse boş döndürecektir. Örnek olarak;



******************************************************
DATA : lv_valid .

CLEAR lv_valid .

CALL METHOD alv_grid->check_changed_data
IMPORTING
e_valid = lv_valid.

** giriş geçerli ise
IF lv_valid = 'X' .

ENDIF .
******************************************************
Uğur Özdemir'euradan 100 puan veriyoruz, zira birde ALV classının içinde IS_VALID var ki tek başına niye çalışmıyor diye tüm günümü yedi. CHECK_CHANGED_DATA'da ki E_VALID imdadıma yetişti.


Ayrıca buradan kodları çalıp kendi sitesinde kendi yapmış gibi gösteren, sonra çıkıp "buradan çalıp başka yerlerde kullanıyorlar" diyen kişiler; dombilidir , taocudur, ver kurtulcudur, öyledir böyledir, atari salonlarında ki "ver gülüm geçiyim daha çok oynarsın" diyenlerdendir, çocukların topunu kesen amca ruhludur.

14 Nisan 2009 Salı

ABAP : Selection Screen Variant Secimi

Selamlar, uzun süredir yazamıyordum çünkü yazamıyordum :=), bu aralar after effects ile videolara görsel efekt ekleme işine sardım. Neyse, gelelim variant seçimine.
ALV'de kaydedilen variantları selection screen içinden seçip direk olarak seçtiğimiz düzenin yani variantın gelmesini istiyorsak çok kısa bir işlem yapmamız gerekecektir.
Öncelikle, seçim ekranında ki parametremizi tanımlayalım.

TYPE-POOLS: SLIS.

PARAMETERS : p_vari TYPE slis_vari.

ALV'ye göndereceğimiz parametreyi tanımlayalım. (Ekrandan seçtiğimiz varianti ALV'de kullanabilmek için)

DATA:
IS_VARIANT LIKE DISVARIANT.

Daha sonra raporumuza ait variantları getirmesi için bir fonksiyon çağırmamız gerekiyor. Öncelikle seçim ekranında ilgili parametremiz için F4 tuşuna basılınca çalışacak formları yaratalım.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM ALV_VARIANT_F4 CHANGING P_VARI.


START-OF-SELECTION.
.
.
.
END-OF-SELECTION.



Formu yazalım.


FORM ALV_VARIANT_F4 CHANGING PA_VARI.
DATA: RS_VARIANT LIKE DISVARIANT.

RS_VARIANT-REPORT = sy-repid.
RS_VARIANT-USERNAME = SY-UNAME.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = RS_VARIANT
I_SAVE = 'A'
IMPORTING
ES_VARIANT = RS_VARIANT
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
PA_VARI = RS_VARIANT-VARIANT.
ENDIF.
ENDFORM. "alv_variant_f4




İşlemler bittikten sonra, ALV'yi çağıran formumuzun içinde


is_variant-variant = p_vari.


yazmamız gerekecektir. Bu , ekrandan seçtiğimiz variantı, is_variant değişkenine atacaktır.
ALV'yi çağıran fonksiyonumuzda diğer parametlerin yanında IS_VARIANT değişkenini de gönderdiğimiz zaman, ekrandan seçilen variantın direk ALV'ye atandığını ve raporun ona göre geldiğini göreceğiz :=).

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
.
.
.
IS_VARIANT = IS_VARIANT
TABLES
.
.
.


Deveye sormuşlar boynun niye eğri diye, artık o konuyla ilgili gündeme gelmek istemiyorum demiş.
Evet sevgili ABAPçılar sizde iyi bir çocuk olursanız belki şirinleri bile görebilirsiniz :=)