10 Ağustos 2011 Çarşamba

SAP/ABAP: REUSE_ALV_POPUP_TO_SELECT

TYPE-POOLS: SLIS.
TABLES: USR01.

DATA: IT_USR01 TYPE STANDARD TABLE OF USR01 INITIAL SIZE 0,
WA_USR01 TYPE USR01.

*Structure declaration for output
TYPES : BEGIN OF TY_OUTPUT,
BNAME TYPE USR01-BNAME,
CHECKBOX(1),
END OF TY_OUTPUT.

*Internal table and work area declaration for output in pop up
DATA : IT_OUTPUT TYPE TABLE OF TY_OUTPUT INITIAL SIZE 0,
WA_OUTPUT TYPE TY_OUTPUT.
*Internal table and workarea declaration for alv dialog display
DATA : IT_DISPLAY TYPE STANDARD TABLE OF TY_OUTPUT INITIAL SIZE 0,
WA_DISPLAY TYPE TY_OUTPUT.

DATA:LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FIELDCATLOG TYPE SLIS_FIELDCAT_ALV,
LT_FIELDCATLOG TYPE SLIS_T_FIELDCAT_ALV,
LT_LAYOUT TYPE SLIS_LAYOUT_ALV.

PERFORM POPUP_DISPLAY.

*&---------------------------------------------------------------------*
*& Form POPUP_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM POPUP_DISPLAY .

IF IT_USR01 IS INITIAL.
SELECT BNAME INTO TABLE IT_USR01 FROM USR01 .

LOOP AT IT_USR01 INTO WA_USR01.
MOVE-CORRESPONDING WA_USR01 TO WA_OUTPUT.
APPEND WA_OUTPUT TO IT_OUTPUT.
CLEAR WA_OUTPUT.
ENDLOOP.

CLEAR LS_FIELDCAT.

LS_FIELDCAT-ROW_POS = '1'.
LS_FIELDCAT-COL_POS = '1'.
LS_FIELDCAT-FIELDNAME = 'CHECKBOX'.
LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.
LS_FIELDCAT-SELTEXT_M = 'SEÇ'.
APPEND LS_FIELDCAT TO LT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-ROW_POS = '1'.
LS_FIELDCAT-COL_POS = '2'.
LS_FIELDCAT-FIELDNAME = 'BNAME'.
LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.
LS_FIELDCAT-SELTEXT_M = 'KULLANICI'.
LS_FIELDCAT-OUTPUTLEN = 50.
APPEND LS_FIELDCAT TO LT_FIELDCAT.

ENDIF.
* Display data in a POPUP
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_ZEBRA = 'X'
IT_FIELDCAT = LT_FIELDCAT
I_TABNAME = 'IT_OUTPUT'
I_CHECKBOX_FIELDNAME = 'CHECKBOX'
TABLES
T_OUTTAB = IT_OUTPUT.
*Appending the selected infotypes only to internal table
LOOP AT IT_OUTPUT INTO WA_OUTPUT
WHERE CHECKBOX = 'X'.
*Do something here...
ENDLOOP.
ENDFORM.

9 Ağustos 2011 Salı

SAP/ABAP: POPUP_CONTINUE_YES_NO FM

FORM onay CHANGING p_answer.
  CLEAR p_answer.
  CALL FUNCTION 'POPUP_CONTINUE_YES_NO'
    EXPORTING
      defaultoption = 'N'
      textline1     = type text here'
      textline2     = 'if necessary, you can type text here too'
      titel         = 'title'
    IMPORTING
      answer        = p_answer
    EXCEPTIONS
      OTHERS        = 1.
ENDFORM.

3 Ağustos 2011 Çarşamba

SAP/ABAP: AT SELECTION SCREEN, Radio Button gizler

selection-screen begin of block m1r with frame title text-003.
parameters : _br6 radiobutton group radi modif id pdv,
_br7 radiobutton group radi default 'X' modif id pdv .
selection-screen end of block m1r.
at selection-screen output.
loop at screen.
if screen-group1 = 'PDV'.
screen-input = 0.
screen-invisible = 1.
modify screen.
elseif screen-group1 = 'PDV'.
screen-input = 0.
screen-invisible = 1.
modify screen.
endif.
endloop.

28 Temmuz 2011 Perşembe

SAP/ABAP: MAKRO

REPORT  ZABAP_DEFINE_MAKRO                      .

DATA: BEGIN OF GS_STR,
FIELD1(10),
FIELD2(30),
END OF GS_STR.
DATA: GT_ITAB LIKE TABLE OF GS_STR.

DEFINE SATIR_EKLE.
  CLEAR GS_STR.
  GS_STR-FIELD1 = &1.
  GS_STR-FIELD2 = &2.
  APPEND GS_STR TO GT_ITAB.
END-OF-DEFINITION.

*makroyu cagiriyorum!!!!
SATIR_EKLE 'Birinci' 'satir'.
SATIR_EKLE 'ikinci'  'satir'.
SATIR_EKLE 'Böyle'   'satir ekleniyor'.

LOOP AT GT_ITAB INTO GS_STR.
  WRITE:/ GS_STR-FIELD1, GS_STR-FIELD2.
ENDLOOP.

23 Temmuz 2011 Cumartesi

SAP/ABAP: Parameters on same line in selection screen

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (33) text-p01 FOR FIELD p_equnr.
PARAMETERS: p_equnr TYPE equi-equnr.
PARAMETERS: p_eqktx TYPE eqkt-eqktx  MODIF ID md1.
PARAMETERS: p_eqtyp TYPE equi-eqtyp  MODIF ID md1.
PARAMETERS: p_typtx TYPE t370u-typtx MODIF ID md1.
SELECTION-SCREEN END OF LINE.

18 Temmuz 2011 Pazartesi

SAP/ABAP: ALV Coloring

DATA : BEGIN OF GT_DATA OCCURS 0,
SEL,
CELLCOLOR TYPE LVC_T_SCOL.
INCLUDE STRUCTURE ZMM_TEKLIF_DEG.
DATA : END OF GT_DATA.



IF GT_DATA-SA7 LT 70 AND
GT_DATA-SA7 GT 0.
LS_CELLCOLOR-FNAME = 'SA7'.
LS_CELLCOLOR-COLOR-COL = 6.
LS_CELLCOLOR-COLOR-INT = '1'.
LS_CELLCOLOR-COLOR-INV = '0'.

APPEND LS_CELLCOLOR TO GT_DATA-CELLCOLOR.
MODIFY GT_DATA.

ENDIF.

16 Temmuz 2011 Cumartesi

SAP/ABAP: OXT_MESSAGE_TO_POPUP FM

data: lt_msg   type bapirettab with header line,
           lv_pernr type pa0001-pernr.
  clear:lv_pernr.

  shift gt_out-pernr left deleting leading '0'.

  loop at gt_mesaj where pernr = gt_out-pernr.

lt_msg-type = gt_mesaj-msgtyp.
lt_msg-id = gt_mesaj-msgid.
lt_msg-number = gt_mesaj-msgnr.
lt_msg-message_v1 = gt_mesaj-msgv1.
lt_msg-message_v2 = gt_mesaj-msgv2.
lt_msg-message_v3 = gt_mesaj-msgv3.
lt_msg-message_v4 = gt_mesaj-msgv4.
    append lt_msg.
  endloop.

  check lt_msg[] is not initial.
  call function 'OXT_MESSAGE_TO_POPUP'
    exporting
      it_message = lt_msg[]
    exceptions
      bal_error  = 1
      others     = 2.
  if sy-subrc ne 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.

8 Temmuz 2011 Cuma

SAP/ABAP: Smartforms, SF Symbols

use this:
&symbol(.N)& Display upto N decimal places
Other options
&symbol(Z)& Omit Leading Zeros
&symbol(S)& Omit Leading Sign
&symbol(<)& Display Leading Sign to the Left &symbol(>)& Display Leading Sign to the Right
&symbol(C)& Compress Spaces
&symbol(.N)& Display upto N decimal places
&symbol(T)& Omit thousands separator
&symbol(R)& Right justified
&symbol(I)& Suppress output of the initial value
eg &SFSY-FORMPAGES(3ZC)& —outputlen,c-condense,z-Omit Leading Zeros
*—————————————————-
my requirement is to suppress the zeros for field MENGE NETPR NETWR.output is as follows
10,000 10,00 100,00
but i want it as
10 10 100
code it like &WS_NETWR(18.2)&
If you do not want any zero after decimal…&WS_NETWR(18.0)&

5 Temmuz 2011 Salı

SAP/ABAP: EXIT, CONTINUE



DATA: LT_MARA TYPE TABLE OF MARA WITH HEADER LINE.

DATA: LV_CONTINUE TYPE I,
      LV_EXIT     TYPE I.

SELECT *
  FROM MARA
  INTO TABLE LT_MARA
  UP TO 20 ROWS.

LOOP AT LT_MARA.

  LV_CONTINUE = SY-TABIX.

  IF SY-TABIX EQ 6.
    CONTINUE.
  ENDIF.

ENDLOOP.

LOOP AT LT_MARA.

  LV_EXIT = SY-TABIX.

  IF SY-TABIX EQ 6.
    EXIT.
  ENDIF.

ENDLOOP.

WRITE: / 'LV_CONTINUE', 12 ' = ', LV_CONTINUE,
       / 'LV_EXIT'    , 12 ' = ', LV_EXIT    .

22 Haziran 2011 Çarşamba

SAP/ABAP: POPUP_TO_DECIDE_LIST

*&---------------------------------------------------------------------*
*&      Form  MTERS_AYRISTIR
*&---------------------------------------------------------------------*
  DATA: LS_SPOPLI LIKE SPOPLI,
        LT_SPOPLI LIKE TABLE OF SPOPLI.

  CLEAR: LT_SPOPLI[].
  CLEAR: GV_453_861,
         GV_453_311,
         GV_453_861_453_311,
         GV_311.

  LS_SPOPLI-SELFLAG = 1.
  LS_SPOPLI-VAROPTION = '453_861'.
  APPEND LS_SPOPLI TO LT_SPOPLI.

  LS_SPOPLI-SELFLAG = 2.
  LS_SPOPLI-VAROPTION = '453_311'.
  APPEND LS_SPOPLI TO LT_SPOPLI.

  LS_SPOPLI-SELFLAG = 3.
  LS_SPOPLI-VAROPTION = '453_861 ve 453_311'.
  APPEND LS_SPOPLI TO LT_SPOPLI.

  LS_SPOPLI-SELFLAG = 4.
  LS_SPOPLI-VAROPTION = '311'.
  APPEND LS_SPOPLI TO LT_SPOPLI.


  CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
    EXPORTING
*     CURSORLINE               = 1
*     MARK_FLAG                = ' '
*     MARK_MAX                 = 1
*     START_COL                = 0
*     START_ROW                = 0
      TEXTLINE1                =
      'Ters kayıt alınacak malzeme belge türü seçiniz'
*     TEXTLINE2                = ' '
*     TEXTLINE3                = ' '
      TITEL                    = 'Ayrıştırma'
*     DISPLAY_ONLY             = ' '
*   IMPORTING
*     ANSWER                   =
    TABLES
      T_SPOPLI                 = LT_SPOPLI
*   EXCEPTIONS
*     NOT_ENOUGH_ANSWERS       = 1
*     TOO_MUCH_ANSWERS         = 2
*     TOO_MUCH_MARKS           = 3
*     OTHERS                   = 4
            .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ELSE.

    READ TABLE LT_SPOPLI INTO LS_SPOPLI
      WITH KEY SELFLAG = 'X'.

    CASE LS_SPOPLI-VAROPTION.

      WHEN '453_861'.
        GV_453_861 = 'X'.
      WHEN '453_311'.
        GV_453_311 = 'X'.
      WHEN '453_861 ve 453_311'.
        GV_453_861_453_311 = 'X'.
      WHEN '311'.
        GV_311 = 'X'.
    ENDCASE.


  ENDIF.


ENDFORM.                    " MTERS_AYRISTIR

18 Haziran 2011 Cumartesi

SAP/ABAP: NUMBER_GET_NEXT FM, SNRO

SNRO –> Numara aralığı nesnesi bakım ekranı, nesne yaratılır…


DATA: LV_NUMBER TYPE I.

CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = '01'
OBJECT = 'ZCZM_ACKLM'
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
NUMBER = LV_NUMBER
* QUANTITY =
* RETURNCODE =
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
.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

14 Haziran 2011 Salı

SAP/ABAP: EFG_GEN_GET_USER_EMAIL

DATA: LV_SMTP TYPE AD_SMTPADR.

CALL FUNCTION 'EFG_GEN_GET_USER_EMAIL'
EXPORTING
I_UNAME                 = 'MZBASCIL'"user name!!
* IMPORTING
*   E_EMAIL_ADDRESS         = LV_SMTP
*   EXCEPTIONS
*   NOT_QUALIFIED           = 1
*   USER_NOT_FOUND          = 2
*   ADDRESS_NOT_FOUND       = 3
*   OTHERS                  = 4
.
IF SY-SUBRC NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

12 Haziran 2011 Pazar

İnsdroid

Sabahtan beri çatada çutada çatada çutada… Bitmedi yine de… Neyse, yolumuz uzun, toparlıyorum çantamı, adaptörü falan tıkıştırıyorum bir şekilde.
Asansörde kollarını kıvırıyorum gömleğimin, dirseklerimin üzerine kadar. Otomatik kapıdan dışarıya adımımı atar atmaz sıkıştırıyorum sigarayı ağzıma, ama çakmağı masamda unutmuşum. Hiç te geri dönesim yok, hem de çakmak için!? Ama bu sigaranın da yanması lazım. “Yerim lan çakmağını!” çıkartıyorum cebimden Jedi kılıcımı, kaşlarımı falan tutuşturmadan yakıyorum sigaramı, kimseye de çaktırmadan yerine koyuyorum.
Karnım acıkmış, sokaktaki yürüyen bantta-uçan otobüse doğru giderken hissediyorum. Hemen cebimden çıkartıyorum termal kameralı, teleskoplu, altından isviçre çakısı çıkan, suya-darbelere dayanıklı, afetlere hazırlıklı, solar enerjili, bir sürü ıvır-zıvır özelliği olan, hatta çakmağı bile olan, ve nasıl cebime sığdığını anlayamadığım cep telefonumu. O an hatırlıyorum “Ulan Jedi kılıcını boşuna çıkardık demin, telefonun çakmağıyla yakardık sigarayı” diyorum. Neyse, cep telefonumdan evdeki buz dolabına bağlanıyorum efendim, bakıyorum; ne var evde, ne yenir? Kızarmış patlıcan ve kabak kapsülleri, döner beyti mineralleri, phoenix yumurtaları ve dinazor tşşağından başka bir şey yok evde. Ne yesek ki şimdi? Neyse efendim, hemen o hışımla açlığımın da verdiği itici güçle süpermarkete bağlanmaya çalışıyorum, olağan üstü telefonumla… Ama nereye bağlanıyorum? Bizim Muzaffer Abi’nin Süpermarketi hacklemişler, bütün trafiği de Hilmi Abi’nin markete vermişler. Hilmi Abi’nin işi mi acaba bu? Ulan, Hilmi Abi’ye de borcum var, iyi mi? Neyse, Hilmi Abi’den alış-veriş yapmamak için Sonay Ablanın Mikro Mantıcısına bağlanıyorum, maazallah Hilmi Abi’ye yakalanmayalım akşam akşam.
Uçan otobüse de geldim bu arada. Ama taaaaa bilmem kaç yılındayız, hala otobüse binmek için insanlar birbirlerini eziyor… Sıkıştım bir şekilde, uçuyoruz…
Siparişimi de verdim bu esnada, mikro küçük, minik, ufacık mantılardan söyledim kendime. Otobüs te çok sıcakmış, 60000mt yükseklikte çektiğimiz çileye bak. Yine çıkartıyorum tabi olağan üstü telefonumu. Hemen klimaya mesaj gönderiyorum, evi soğutsun ben gidene kadar…
Ulan hep te uzak galaksilerde çalışıyorum iyi mi? Bunca yıldır, bir bizim galakside çalışamadım, nedir benim bu yollardan çektiğim… Uçan otobüsün android muavini, göbeğindeki çip okuyucusu ile uzay aracının içinde tek tek yolcuları dolaşıyor ve indi-bindi, biniş o biniş ücretlerini topluyor.
Tam android’in göbeğine çipimi okutucam, “şlaakkk” diye bir ses ensemde, “noluyo amuagoyyym” derken, eş güdümlü iki şaplak daha kulaklarıma –sanırım bu dengemi bozmak içindi- galaksim döndü yani. Bir baktım Kenoboğullarından Obi-Wan!!
“Lan!” dedi, “sen o Tatooine gezegenindeki lavuk değil misin?” dedi.
-Yok abi ben bilmem Tatooine, matooine… Geonasis’liyim ben.
– … vay ben senin…
‘diye girişti bir daha Obi-Wan, kafama kafama vuruyor. Aldı cebimdeki Jedi kılıcını da. Meğer Obi-Wan’ınınmış kılıç… Abi dedim, ıvırzıvır.com’dan aldım dedim. Yok diyo Geonasis muharebesinde araklamıştın, bir rezil etti beni, bir rezil etti… Sonra atladı camdan, uçtu gitti kılıçla.
Tabi ben sendeliyoum hala… Muavin android geldi, meğer o da C-3PO imiş… Abi dedi, beni de gereksiz yere döverdi hep dedi. Anlattı da anlattı garibim, dolmuş iyice. Android mandroid, neticede onun da canı var. Para da almadı benden bu arada… Acıdım ben de ona, bize gittik uçan otobüsten inince.
Bir güzel yağladım ben bunu, kirini pasını aldım, temizledim.
Sonra,… sonra mı? Boy boy insdroidlerimiz oldu, mutlu-mesut yaşadık.
iyiboyle

7 Haziran 2011 Salı

SAP/ABAP: RSCRMBW_DISPLAY_BAPIRET2 FM

  CALL FUNCTION 'RSCRMBW_DISPLAY_BAPIRET2'
    TABLES
      IT_RETURN = GT_RETURN.

  IF SY-SUBRC NE 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

İnsdroid

Sabahtan beri çatada çutada çatada çutada… Bitmedi yine de… Neyse, yolumuz uzun, toparlıyorum çantamı, adaptörü falan tıkıştırıyorum bir şe...