24 Kasım 2011 Perşembe

SAP/ABAP: ISP_GET_WEEKDAY_NAME FM

METHOD IF_EX_MRM_PAYMENT_TERMS~PAYMENT_TERMS_SET.

*   {ADD Mert Zeki Başcıl 19.10.2012 11:24:17

  BREAK MZBASCIL.

  IF I_RBKPV-ZTERM EQ 'Z011'.

    DATA: LV_ENDDA    TYPE SY-DATUM,
          LV_DATUM    TYPE SY-DATUM,
          LV_LAST_DAY TYPE SY-DATUM,
          LV_OK       TYPE C,
          LV_TEXT(2)  TYPE C.

    E_ZFBDT  = I_RBKPV-BLDAT + 21.

    LV_DATUM = E_ZFBDT.

    CLEAR LV_OK.

    WHILE LV_OK IS INITIAL .

      CALL FUNCTION 'LAST_DAY_OF_MONTHS'
        EXPORTING
          DAY_IN            = LV_DATUM
        IMPORTING
          LAST_DAY_OF_MONTH = LV_ENDDA.

      LV_LAST_DAY = LV_ENDDA.

      WHILE LV_OK IS INITIAL AND LV_DATUM <= LV_LAST_DAY .

        CALL FUNCTION 'ISP_GET_WEEKDAY_NAME'
          EXPORTING
            DATE      = LV_LAST_DAY
            LANGUAGE  = 'E'
          IMPORTING
            SHORTTEXT = LV_TEXT.

        IF LV_TEXT = 'TU'.
          LV_OK = 'X'.
        ELSE.
          LV_LAST_DAY = LV_LAST_DAY - 1.
        ENDIF.

      ENDWHILE.

      IF LV_OK <> 'X'.
        LV_DATUM = LV_ENDDA + 1.
      ENDIF.

    ENDWHILE.

    E_ZFBDT = LV_LAST_DAY.

  ELSE.

    E_ZFBDT = I_RBKPV-ZFBDT.
    E_ZBD1T = I_RBKPV-ZBD1T.

  ENDIF.

*    } ADD Mert Zeki Başcıl 19.10.2012 11:24:17

ENDMETHOD.

23 Kasım 2011 Çarşamba

SAP/ABAP: Smartforms, SSF_OPEN, SSF_CLOSE

REPORT  zsmart_ssf.

DATA : gv_formname TYPE tdsfname VALUE 'ZSMART',
gv_fm_name  TYPE rs38l_fnam,

gt_01 LIKE pa0001 OCCURS 0 WITH HEADER LINE,

gs_cont TYPE ssfctrlop.

PARAMETERS : p_pernr TYPE persno.

START-OF-SELECTION.
SELECT * FROM pa0001 INTO TABLE gt_01.

gs_cont-no_open  = 'X'.
gs_cont-no_close = 'X'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname                 = gv_formname
*   VARIANT                  = ' '
*   DIRECT_CALL              = ' '
IMPORTING
FM_NAME                  = gv_fm_name
* EXCEPTIONS
*   NO_FORM                  = 1
*   NO_FUNCTION_MODULE       = 2
*   OTHERS                   = 3
.

CALL FUNCTION 'SSF_OPEN'
EXPORTING
*     ARCHIVE_PARAMETERS       =
*     USER_SETTINGS            = 'X'
*     MAIL_SENDER              =
*     MAIL_RECIPIENT           =
*     MAIL_APPL_OBJ            =
*     OUTPUT_OPTIONS           =
control_parameters       = gs_cont
EXCEPTIONS
formatting_error         = 1
internal_error           = 2
send_error               = 3
user_canceled            = 4
OTHERS                   = 5
.

DO 20 TIMES.

CALL FUNCTION gv_fm_name
EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
control_parameters         = gs_cont
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             =
*   USER_SETTINGS              = 'X'
i_pernr                    = p_pernr
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
TABLES
t_pers                     = gt_01
EXCEPTIONS
formatting_error           = 1
internal_error             = 2
send_error                 = 3
user_canceled              = 4
OTHERS                     = 5
.

ENDDO.

CALL FUNCTION 'SSF_CLOSE'
*   IMPORTING
*     JOB_OUTPUT_INFO        =
EXCEPTIONS
formatting_error       = 1
internal_error         = 2
send_error             = 3
OTHERS                 = 4
.

21 Kasım 2011 Pazartesi

SAP/ABAP: Log Göster

Biraz dandik bir yöntem ama basit ve kullanışlı…
 DATA: BEGIN OF LS_LOG,
    METIN(255),
    END OF LS_LOG,
    LT_LOG LIKE TABLE OF LS_LOG.
  IF LT_LOG[] IS NOT INITIAL.
    PERFORM LT_LOG_GOSTER TABLES LT_LOG.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  LT_LOG_GOSTER
*&---------------------------------------------------------------------*
FORM LT_LOG_GOSTER  TABLES   P_LT_LOG STRUCTURE TY_LOG.

  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.

  CLEAR LS_FIELDCATLOG.

  LS_FIELDCATLOG-ROW_POS   = '1'.
  LS_FIELDCATLOG-COL_POS   = '1'.
  LS_FIELDCATLOG-FIELDNAME = 'METIN'.
  LS_FIELDCATLOG-TABNAME   = 'P_LT_LOG'.
  LS_FIELDCATLOG-SELTEXT_M = 'Log'.
  APPEND LS_FIELDCATLOG TO LT_FIELDCATLOG.

  LT_LAYOUT-ZEBRA = 'X'.

  LT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM    = SY-REPID
      I_GRID_TITLE          = 'Log'
      IS_LAYOUT             = LT_LAYOUT
      IT_FIELDCAT           = LT_FIELDCATLOG
      I_SCREEN_START_COLUMN = 10
      I_SCREEN_START_LINE   = 20
      I_SCREEN_END_COLUMN   = 100
      I_SCREEN_END_LINE     = 40
    TABLES
      T_OUTTAB              = P_LT_LOG
    EXCEPTIONS
      PROGRAM_ERROR         = 1
      OTHERS                = 2.
  IF SY-SUBRC &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " LT_LOG_GOSTER

15 Kasım 2011 Salı

SAP/ABAP: SO10 Standart Text nesnesinin taşınması

SO10 işlem kodundan bir Standart Text ile ilgili yapacağımız değişikliklerde sistem bize request sormuyor. Bu değişiklikleri taşımak için;
Bir adet Workbench request oluşturuyoruz.














Unclassified olan Task’a çift tıklıyorum ve,
















Unclassified olan Taskın tipini Development Correction’a çeviriyorum.

Şimdi SO10 işlem kodundan yaptığım değişiklikleri bu requestin içine almaya gelelim;
SE38 işlem kodundan RSTXTRAN programını çalıştırıyorum.








Name of correction kısmına Workbench requestimin Task’ının numarasını yazıyorum.
Text key-name kısmına SO10 nesnemin adını.
Ve hangi dilde çalışma yaptıysam, ilgili dil kodunu.
F8’e bastım.






Sol üst köşedeki yürüt butonuna basıyorum.





Yine sol üst köşedeki Trsfr texts to corr. ‘a tıklıyorum.







Ve tamamdır…


Şimdi requestin içine aldığımız değişiklikleri farklı bir clienttan çağıralım;
Çağıracağım clienttan SCC1 işlem koduna giriyorum ve;








Workbench requestimin numarasını yazıyorum.  Tabii ki kaynak client birim numarasını da yazıyorum.
Subtaskları da include et dediğimizde taskları da alacaktır. Start Immediately’e tıklıyorum…
Hepsi bu kadar.

SAP/ABAP: GUI_EXEC FM

REPORT  ZABAP_GUI_EXEC_FM                       .

DATA: GV_APP   TYPE C LENGTH 10,
      GV_PATH  TYPE C LENGTH 60,
      GV_SUBRC TYPE SY-SUBRC.

GV_APP = 'NOTEPAD'.
GV_PATH = 'C:kodbloguiyiboyle.txt'.

CALL FUNCTION 'GUI_EXEC'
  EXPORTING
    COMMAND    = GV_APP
    PARAMETER  = GV_PATH
  IMPORTING
    RETURNCODE = GV_SUBRC.

IF GV_SUBRC NE 0.
  MESSAGE 'bir sikinti var, muhtemelen ilgili yerde cagirilan dosya yok'
 TYPE 'I'.
ELSE.
  WRITE: 'bravo!'.
ENDIF.

14 Kasım 2011 Pazartesi

SAP/ABAP: BAPI_OBJCL_GETDETAIL FM (Customer characteristic)

DATA: lt_allocvaluesnum   TYPE  TABLE OF bapi1003_alloc_values_num  ,
      lt_allocvalueschar TYPE TABLE OF bapi1003_alloc_values_char ,
      lt_allocvaluescurr TYPE  TABLE OF bapi1003_alloc_values_curr ,
      lt_return2         TYPE TABLE OF bapiret2                   ,
      ls_allocvalueschar TYPE          bapi1003_alloc_values_char ,
      l_objectkey        TYPE          bapi1003_key-object        ,
      l_kunnr2(10)                                                .

DATA: lv_kunnr(10),
lv_objectkey TYPE bapi1003_key-object.

lv_kunnr = '10073222'.

UNPACK lv_kunnr TO lv_kunnr.
lv_objectkey = lv_kunnr.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
  EXPORTING
    objectkey       = lv_objectkey
    objecttable     = 'KNA1'
    classnum        = 'Z_ES01'
    classtype       = '011'
    keydate         = sy-datum
    language        = sy-langu
  TABLES
    allocvaluesnum  = lt_allocvaluesnum
    allocvalueschar = lt_allocvalueschar
    allocvaluescurr = lt_allocvaluescurr
    return          = lt_return2.

SAP/ABAP: TR_POPUP_INPUT_DATE FM

CALL FUNCTION 'TR_POPUP_INPUT_DATE'
   EXPORTING
     IV_TITLE                     = 'Tarih'
     IV_DESCRIPTION1              = 'Belge tarihi'
*   IV_DESCRIPTION2              =
     IV_DATE                      = SY-DATUM
   IMPORTING
     EV_DATE                      = GV_DATE
   EXCEPTIONS
     ACTION_ABORTED_BY_USER       = 1
     VALUE_NOT_CHANGED            = 2
     OTHERS                       = 3 .

13 Kasım 2011 Pazar

SAP/ABAP: MONTH_NAMES_GET FM

CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
language              = sy-langu
TABLES
month_names           = lt_month
EXCEPTIONS
month_names_not_found = 1
OTHERS                = 2.

7 Kasım 2011 Pazartesi

SAP/ABAP: TERM_CONTROL_EDIT FM

DATA: BEGIN OF INT_TEXT,
 TEXT(255),
END OF INT_TEXT,

LV_TEXT(255).

CALL FUNCTION 'TERM_CONTROL_EDIT'
      EXPORTING
        TITEL          = TEXT-001
        LANGU          = SY-LANGU
      TABLES
        TEXTLINES      = INT_TEXT
      EXCEPTIONS
        USER_CANCELLED = 1
        OTHERS         = 2.
    IF SY-SUBRC &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    CONCATENATE LINES OF INT_TEXT INTO LV_TEXT.

3 Kasım 2011 Perşembe

SAP/ABAP: Send mail

  DATA: lt_mailsubject     TYPE sodocchgi1.
  DATA: lt_mailrecipients  TYPE STANDARD TABLE OF somlrec90 WITH HEADER LINE.
  DATA: lt_mailtxt         TYPE STANDARD TABLE OF soli      WITH HEADER LINE.

* Recipients
  lt_mailrecipients-rec_type  = 'U'.
  lt_mailrecipients-receiver = 'mz@bascil.com'.
  APPEND lt_mailrecipients .
  CLEAR lt_mailrecipients .

* Subject.
  lt_mailsubject-obj_name = 'TEST'.
  lt_mailsubject-obj_langu = sy-langu.
  lt_mailsubject-obj_descr = 'Mail Subject'.

* Mail Contents
  lt_mailtxt = 'This is a test mail'.
  APPEND lt_mailtxt. CLEAR lt_mailtxt.

* Send Mail
  CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
    EXPORTING
      document_data              = lt_mailsubject
    TABLES
      object_content             = lt_mailtxt
      receivers                  = lt_mailrecipients
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      document_type_not_exist    = 3
      operation_no_authorization = 4
      parameter_error            = 5
      x_error                    = 6
      enqueue_error              = 7
      OTHERS                     = 8.
  IF sy-subrc EQ 0.
    COMMIT WORK.
*   Push mail out from SAP outbox
    SUBMIT rsconn01 WITH mode = 'INT' AND RETURN.
  ENDIF.

1 Kasım 2011 Salı

SAP/ABAP: FI, Validations-Substitutions-Rules

“RGGBS000 and RGGBR000 kaynak kodlarını Z’li hale gitiriyoruz.
“Formları bağlama kısmını genellikle modülcü arkadaşlar yapıyorlar.

TABLES: COBL.

FORM U001.

IF COBL-KOSTL IS NOT INITIAL.

COBL-BUKRS = COBL-KOSTL.

ENDIF.

ENDFORM.
” U harfi, geliştiriciler tarafından tanımlanan çıkışlar için ayrılmış.
” S harfi ise, standarttaki exit’ler için
User exit type
Description
Application
Example
1
No
parameters are defined for the user exit.
Rules,
validations, and substitutions (prerequisite)
See
form pool RGGBR000, parameter type C_EXIT_PARAM_NONE
2
Same
as user exit type 1, except one parameter (the field to be substituted) is
defined in the user exit. For example, you can create a substitution routine
that analyzes the cost center irrespective of the field used.
Substitution
See
form pool RGGBS000, parameter type C_EXIT_PARAM_FIELD
3
All
data is passed as one parameter; this exit type can only be used in matrix
validations and substitutions.
Rules, validations, and substitutions
(prerequisite)
See
form pool RGGBR000, parameter type C_EXIT_PARAM_CLASS
*** tablo http://help.sap.com/saphelp_erp60_sp/helpdata/en/5b/d231a843c611d182b30000e829fbfe/content.htm sitesinden alıntıdır. ayrıca linkte daha ayrıntılı bilgi mevcut.

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