We also using selection groups like radiogrouos and etc. This code making this features on ALV.

Read the rest of this entry »

Sequential Hirarchial ALV Display

Read the rest of this entry »

Bir önceki mesajda REUSE_ALV_GRID_DISPLAY kullanan bir function eklemiştim. Bu fonksiyon genel kullanım için gayet güzel. Şimdi ekleyeceğim ise bu işi classlarla yapıyor ve diğerinde olmayan birçok özelliği barındırıyor.

Read the rest of this entry »

Genelde bütün raporlarda klasik olarak sonucu bir grid de display ettiriyoruz. Rutine binen bu işler için normalde ya Include kullanıyoruz ya da copy paste ediyoruz.

Genel programcılık mantığı ile bu işi bir FM (Function Module) ile halledelim.

Read the rest of this entry »

Hep internal table daki datayı MS Accsess e atacak halimiz yok ya. Bi de tersini yapalım

Read the rest of this entry »

Elde ettiğimiz sonuçların mail edilmesi ile alakalı daha önce bir rapor yazmıştım. Şimdiki rapor elde ettiğimiz internal table sonucunu XLS formatına çeviriyor. Elde edilen bu dosya gönderilecek e-mail adresine attach ediliyor.

Read the rest of this entry »

Abap programcısının gelişen SAP dünyasında yerini muhafaza etmesi için Netweaver öğrenmesine ihtiyaç var. Bu bilgiyi öğrendiğim 2005 SAP Forum dan beri bu konu da çalışmış olsaydım eminim çok iyi bir durumda olabilirdim. Maalesef şirketin bu konuda destek çıkmaması. Küçük çaplı çalışmalarımın ehemminetini ortadan kaldırdı.

Read the rest of this entry »

Bir önceki mesajda background job olarak çalışan raporlar için bir örnek hazırlamıştık. Bu örneğimizde ise online raporlar için olan kodu ekliyoruz. Yaptığımız şey oluşturulan online rapor için bir spool numarası alıp background job olarak yollamak.

Read the rest of this entry »

Oluştuduğumuz listelerin, çıktıların e-mail ile yollanması gerekebilir. Aşağıdaki örnek önce bir tane çıktı üretiyor, ardından bu çıktıyı pdf e çevirip mail ile yolluyor. Bu örneğin özelliği background job olarak çalıştırılması gerekliliği. Background da çalışacak şekilde ayarladığınız raporlarınız için ideal.

Read the rest of this entry »

LM05 transactionı ile alakalı bir kaç ekran atlatmam gerekiyordu. Tek ekran olsa

  set parameter id 'BES' field rs_selfield-value.
  CALL TRANSACTION ‘ME23N’ AND SKIP FIRST SCREEN.

gibi bir kodla atlatabiliyorduk. Fakat bu iş için bir Batch Input gerekiyor. Bunun için SHDB transactionını kullanarak bir Batch Input oluşturdum. Oluşturulan çıktı aşağıdaki gibiydi.

Batch

Burada otomatik Perform BDC komutu oluşturuluyor. Aşağıdaki function kullanılarak
=CONCATENATE("PERFORM ADD_BDC USING ","'",TRIM(B2),"' ","'",TRIM(C2),"' ","'",TRIM(D2),"' ","'",TRIM(E2),"'.")

Elde ettiğimiz bu değerleri direk kodun içerisine gömüyoruz. En sonunda transactionı oluşturduğumuz bu BDC ile çağırıyoruz. Burada önemli olan notlardan biri MODE olayı.

  • ‘A’ Ekranı Görüntüle (Display screen )
  • ‘E’ Eğer hata olursa ekranı görüntüle (Display only if an error occurs )
  • ‘N’ Gösterme (Do not display )
  • ‘P’ Gösterme, Debug edilebilinir (Do not display; debugging possible)

Çalışan kod
DATA : BDCTAB LIKE BDCDATA OCCURS 1 WITH HEADER LINE.

Aşağıda transactionı çağırıp hata mesajlarını ise bir tabloya attığımız kod parçası var.

FORM FillBDC USING P_NIKOD.
  DATA: IERROR LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
  REFRESH : BDCTAB.
PERFORM ADD_BDC USING 'SAPLLMOB' '2100' ' ' ' '.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_CURSOR’ ‘INP_100′.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_OKCODE’ ‘=NEXT’.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘INP_100′ P_NIKOD.
  PERFORM ADD_BDC USING ‘SAPLLMOB’ ‘2502′ ‘ ‘ ‘ ‘.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_CURSOR’ ‘LTAP-VLPLA’.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_OKCODE’ ‘=SAVE’.
  PERFORM ADD_BDC USING ‘SAPLLMOB’ ‘2502′ ‘ ‘ ‘ ‘.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_CURSOR’ ‘LTAP-VLPLA’.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_OKCODE’ ‘=CMPL’.
  PERFORM ADD_BDC USING ‘SAPLLMOB’ ‘2302′ ‘ ‘ ‘ ‘.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_CURSOR’ ‘LTAP-NLPLA’.
  PERFORM ADD_BDC USING ‘ ‘ ‘ ‘ ‘BDC_OKCODE’ ‘=BU’.
call transaction 'LM05' USING BDCTAB MODE 'E' MESSAGES into ierror.
ENDFORM. ” FillBDC

Kullandığımız ADD_BDC nin kodu ise aşağıdaki gibidir.

FORM ADD_BDC USING PROGRAM DYNPRO FNAME FVALUE .
  CLEAR BDCTAB .
  IF FNAME EQ SPACE .
    BDCTAB-PROGRAM = PROGRAM .
    BDCTAB-DYNPRO = DYNPRO .
    BDCTAB-DYNBEGIN = ‘X’ .
  ELSE .
    BDCTAB-FNAM = FNAME .
    BDCTAB-FVAL = FVALUE .
  ENDIF .
  APPEND BDCTAB .
ENDFORM. ” ADD_BDC

a