22 Ekim 2011 Cumartesi

SAP/ABAP: Edit Mask

data: saat type t value '010110'.

write:/ saat.

write:/(8) saat using edit mask '__:__:__'.

21 Ekim 2011 Cuma

SAP/ABAP: İlgili ayın ilk ve son günlerini getiren fonksiyon

      CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
        EXPORTING
          IV_DATE                   = SY-DATUM
       IMPORTING
          EV_MONTH_BEGIN_DATE       = GT_QDATA-BEGDA
          EV_MONTH_END_DATE         = GT_QDATA-ENDDA
                .

SAP/ABAP: Önceki ayın son gününü getiren fonksiyon

CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'
        EXPORTING
          I_DATE_OLD = SY-DATUM
        IMPORTING
          E_DATE_NEW = GT_QDATA-BUDAT.

15 Ekim 2011 Cumartesi

HTML5: Coğrafi konumunu harita üzerinde göster

<html>
<body>
<p id="button">Lokasyonunu harita üzerinde gösterir:</p>
<button onclick="getLocation()">Haritada göster</button>
<div id="mapholder"></div>
<script>
var x=document.getElementById("button");
function getLocation()
  {
  if (navigator.geolocation)
    {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    }
  else{x.innerHTML="Web tarayıcısını güncellemek gerekiyor olabilir...";}
  }

function showPosition(position)
  {
  var latlon=position.coords.latitude+","+position.coords.longitude;

  var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
  +latlon+"&zoom=14&size=400x300&sensor=false";
  document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";
  }

function showError(error)
  {
  switch(error.code) 
    {
    case error.PERMISSION_DENIED:
      x.innerHTML="Yetkisel bir sıkıntı var."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML="Sıkıntı var"
      break;
    case error.TIMEOUT:
      x.innerHTML="Time out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML="Bir sıkıntı var."
      break;
    }
  }
</script>
</body>
</html>

5 Ekim 2011 Çarşamba

SAP/ABAP: BADI bulalım

1.Yöntem;
“SXV_GET_CLIF_BY_NAME” fonksiyon modülüne session break-point koyuyoruz.
– Yeni bir oturum açıp(mevcut oturumda denemek işe yaramıyor, muhakkak yeni bir oturum açılmalı),
BADI’lerini aramak istediğimiz işlem kodunu yazıyoruz.
-Oturum hata ayıklama moduna düşecektir.
-Burada “Exit Name” ya da “Name” adlı parametreye çift tıklayınca BADI’nin adını görebiliyoruz…
2.Yöntem;
1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
2. In ‘Display’ mode, go to ‘Methods’ tab.
3. Double click the method ‘Get Instance’ to display it source code.
4. Set a breakpoint on ‘CALL METHOD cl_exithandler=&gt;get_class_name_by_interface’.
5. Then run your transaction.
6. The screen will stop at this method.
7. Check the value of parameter ‘EXIT_NAME’. It will show you the BADI for that transaction.
SE37 işlem kodundan “SXV_GET_CLIF_BY_NAME” fonksiyon modülüne break-point koyulur.
Sonrasında yeni bir oturum açılır(mevcut olan oturumlarla denemek işe yaramıyor, muhakkak yeni bir oturum olmalı!!) ve BADI’sini aramak istediğimiz işlem kodunu yazıyoruz.
Oturum hata ayıklama moduna düşecektir(debug).
Burada “EXIT_NAME” ya da “NAME” adlı parametreye çift tıkladığımızda, işlem kodundaki BADI’nin adını görürüz.

3 Ekim 2011 Pazartesi

SAP/ABAP: Refresh ALV

*&---------------------------------------------------------------------*
* FORM USER_COMMAND *
*&---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
     RS_SELFIELD  TYPE SLIS_SELFIELD.

  DATA : REF_GRID TYPE REF TO CL_GUI_ALV_GRID.

  CASE R_UCOMM.

    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      LEAVE TO SCREEN 0.

    WHEN 'AKTAR'.
      PERFORM BAPI.

  ENDCASE.

      RS_SELFIELD-REFRESH = 'X'.

ENDFORM.                    "USER_COMMAND

2 Ekim 2011 Pazar

SAP/ABAP: Add new buttons to selection screen beside standart ones

AT SELECTION-SCREEN OUTPUT.

  SET PF-STATUS 'PFS'."Create whatever you want here...

AT SELECTION-SCREEN.

  CASE sy-ucomm."control whatever you want...

Another way;

INCLUDE : <icon>.
TABLES: sscrfields.
DATA: l_sel_button TYPE smp_dyntxt.

INITIALIZATION.
  l_sel_button-icon_id = icon_start_viewer.
  l_sel_button-text    = 'Edit recipient list'.
  l_sel_button-icon_text = 'Edit recipient list'.
  sscrfields-functxt_01 = l_sel_button.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'FC01'.
*      PERFORM start.
  ENDCASE.

SAP/ABAP: TXT to SAP ( ‘GUI_UPLOAD’ FM )



FORM TXT_TO_SAP .

DATA: LT_FILETABLE TYPE FILETABLE,
LF_RC TYPE I,
LV_FNAME(50) TYPE C,
LV_FEXT(3) TYPE C.

* Function module to show File open Dialog
CALL METHOD CL_GUI_FRONTEND_SERVICES-&gt;FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE            = 'Bir txt dosyası seçin'
FILE_FILTER             = '*.txt'
MULTISELECTION          = ABAP_FALSE
CHANGING
FILE_TABLE              = LT_FILETABLE
RC                      = LF_RC
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR              = 2
ERROR_NO_GUI            = 3
NOT_SUPPORTED_BY_GUI    = 4
OTHERS                  = 5.

IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
DISPLAY LIKE 'E'
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
EXIT.
ENDIF.

CHECK LF_RC = 1.

DATA: LS_FILE TYPE FILE_TABLE.

READ TABLE LT_FILETABLE INTO LS_FILE INDEX 1.
CHECK SY-SUBRC = 0.
PA_FILE = LS_FILE-FILENAME.

SPLIT  PA_FILE AT '.' INTO LV_FNAME LV_FEXT.
* Check if Text file is Selected
IF LV_FEXT NE 'txt'.
MESSAGE 'Dosya tipinde bir sıkıntı var' TYPE 'I'.
ENDIF.

*--------------------------------------------------------------------*

DATA: LV_FILENAME TYPE STRING.

LV_FILENAME = PA_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME                = LV_FILENAME
FILETYPE                = 'ASC'
HAS_FIELD_SEPARATOR     = 'X'
TABLES
DATA_TAB                = ITAB
EXCEPTIONS
FILE_OPEN_ERROR         = 1
FILE_READ_ERROR         = 2
NO_BATCH                = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE            = 5
NO_AUTHORITY            = 6
UNKNOWN_ERROR           = 7
BAD_DATA_FORMAT         = 8
HEADER_NOT_ALLOWED      = 9
SEPARATOR_NOT_ALLOWED   = 10
HEADER_TOO_LONG         = 11
UNKNOWN_DP_ERROR        = 12
ACCESS_DENIED           = 13
DP_OUT_OF_MEMORY        = 14
DISK_FULL               = 15
DP_TIMEOUT              = 16
OTHERS                  = 17.
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.


ENDFORM.                    " TXT_TO_SAP

İ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...