ABAP

ABAP

Friday, July 19, 2013

Matematiksel İşlemler

Function
Result
ABS
Absolute value of argument.
SIGN
Sign of argument:                      1 X > 0
                                              SIGN( X) = 0 if X = 0
                                                               -1 X < 0
CEIL
Smallest integer value not smaller than the argument.
FLOOR
Largest integer value not larger than the argument.
TRUNC
Integer part of argument.
FRAC
Fraction part of argument.



Ceıl -- >  sayıya yuvarlama
Floor - > sayıya yuvarlama
Trunc ->  sayının decimalsız  kısmı
Frac -- > sayının decimal kısmı

      gs_fatura-fat_mktr TRUNCgt_items-fkimg ).
      CONDENSE gs_fatura-fat_mktr.


  
N = ABS( M ).   WRITE:   'ABS:  ', N.
N = SIGN( M ).  WRITE: / 'SIGN: ', N.
N = CEIL( M ).  WRITE: / 'CEIL: ', N.
N = FLOOR( M ). WRITE: / 'FLOOR:', N.
N = TRUNC( M ). WRITE: / 'TRUNC:', N.
N = FRAC( M ).  WRITE: / 'FRAC: ', N.


DATA:
  lv_decimal TYPE mara-ntgew,
  lv_frac    TYPE mara-ntgew,
  lv_string(11) .
  lv_decimal '22.592'.

lv_frac FRAClv_decimal ) .
IF lv_frac IS INITIAL .
  WRITE lv_decimal TO lv_string DECIMALS .
  WRITE  lv_string.
  else.
    WRITE lv_frac .


ENDIF.

Table Kontrol Yaratma / Table Control Creation , Alan Kapama

DATA BEGIN OF gt_out OCCURS ,
       kunnr    TYPE zsd_edi_check-kunnr,
       zzbeltyp TYPE zsd_edi_check-zzbeltyp ,
       type     TYPE zsd_edi_check-type ,
       alan_adi TYPE zsd_edi_checkvlt-alan_adi ,
       alan     TYPE zsd_edi_checkvlt-alan ,
       chk      TYPE xflag ,
       END OF  gt_out.

DATAgt_out2 LIKE TABLE OF gt_out WITH HEADER LINE,
      gs_out2 LIKE LINE OF gt_out2,

      gs_out  LIKE LINE OF  gt_out.



Check satır bazlı kontrol icin kullanılır .


Oncelikle bir screen yaratılır . 
 Daha sonra layout acılır table control wizard secilerek asağıdaki ekrana gelinir .

Table Kontrol Adı  Girilir 

Daha sonra kullanacağımız tablolar secilir istersek kendi tanımladığımız tablodan kullanabiliriz .İstersek ınternal bir tablo kullanabiliriz . 



Tablolar Girilir 


Istenilen alanlar secilir . 



İstenilen özellikler eklenir  .

Dinamik olarak table kontrolde alan kapama 


*&SPWIZARD: OUTPUT MODULE FOR TC 'GT_CONTROL'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE gt_control_change_tc_attr OUTPUT.
  DESCRIBE TABLE xvbep LINES gt_control-lines.
ENDMODULE.                    "GT_CONTROL_CHANGE_TC_ATTR OUTPUT

*&SPWIZARD: OUTPUT MODULE FOR TC 'GT_CONTROL'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE gt_control_get_lines OUTPUT.
  g_gt_control_lines sy-loopc.
  break xsozyurt.
*  IF GT_CONTROL-CURRENT_LINE EQ 1.
*    LOOP AT SCREEN.
*      screen-input = 0.
*      MODIFY SCREEN .
*    ENDLOOP.
*  ENDIF.
  DATA BEGIN OF gt_rantra OCCURS 0,
         zzranno   TYPE lips-zzranno,
         zztransid TYPE lips-zztransid,
         END OF gt_rantra.
  READ TABLE xvbep INDEX gt_control-current_line.
  IF sy-subrc EQ 0.
    REFRESH gt_rantra .
    SELECT zzranno zztransid
      FROM lips
  INTO TABLE gt_rantra
     WHERE vgbel     xvbep-vbeln
       AND vgpos     xvbep-posnr
       AND zzranno   xvbep-zzranno
       AND zztransid xvbep-zztransid.
      IF sy-subrc EQ 0.
    LOOP AT SCREEN.
      screen-input 0.
      MODIFY SCREEN .
    ENDLOOP.
      ENDIF.
  ENDIF.
ENDMODULE.                    "GT_CONTROL_GET_LINES OUTPUT


Farklı sekılde yapımı // 




FTP connection / Ftp Bağlantı Kodları

*****FTP CONNECTION
*****FTP Bağlantı Klasöre Dosya Atma 
FORM f_ftp_file_customer TABLES p_text.

  DATA:  gv_user(30)   TYPE c VALUE 'user name of ftp server'
         gv_pwd(30)    TYPE c VALUE 'password of ftp server'
         gv_host(64)   TYPE c VALUE 'ip address of FTP server'
         gv_dest       LIKE rfcdesrfcdest VALUE 'SAPFTPA',"Background RFC destination
         lv_patha(20)  TYPE C,
         COMMANDS      TYPE TABLE OF TEXT WITH HEADER LINE,
         COMMAND_INDEX TYPE I,
         RESULT        TYPE TABLE OF TEXT WITH HEADER LINE.
  DATAgv_hdl  TYPE i,
        gv_doc  TYPE c LENGTH 128,
        lv_key  TYPE i VALUE 26101957,
        lv_slen TYPE i.

*HTTP_SCRAMBLE: used to scramble the password provided into a format, which is been recognized by SAP.
  SET EXTENDED CHECK OFF.
  lv_slen STRLENgv_pwd ).

  CALL FUNCTION 'HTTP_SCRAMBLE'
    EXPORTING
      SOURCE      gv_pwd
      sourcelen   lv_slen
      key         lv_key
    IMPORTING
      destination gv_pwd.
* To Connect to the Server using FTP
  CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
      user            gv_user
      password        gv_pwd
      host            gv_host
      rfc_destination gv_dest
    IMPORTING
      handle          gv_hdl
    EXCEPTIONS
      OTHERS          1.

  "ftp Command
  lv_patha 'GIDEN\FATURA'.
  CONCATENATE 'cd' lv_patha INTO COMMANDS SEPARATED BY SPACE.
  APPEND COMMANDS.
  COMMANDS 'ls'.
  APPEND COMMANDS.

  CALL FUNCTION 'FTP_COMMAND_LIST'
    EXPORTING
      HANDLE        gv_hdl
    IMPORTING
      COMMAND_INDEX COMMAND_INDEX
    TABLES
      DATA          RESULT
      COMMANDS      COMMANDS
    EXCEPTIONS
      COMMAND_ERROR 1
      TCPIP_ERROR   2
      ERROR_MESSAGE 3
      OTHERS        4.

 *FTP_R3_TO_SERVER:used to transfer the internal table data as a file to other system in the character mode.
  CONCATENATE SY-DATUM+6(2)
              SY-DATUM+4(2)
              SY-DATUM(4)
              'DOSYA ADI'
              '.TXT'
              INTO gv_doc.

  CALL FUNCTION 'FTP_R3_TO_SERVER'
    EXPORTING
      handle         gv_hdl
      fname          gv_doc          "file path of destination system
      character_mode 'X'
    TABLES
      text           p_text
    EXCEPTIONS
      tcpip_error    1
      command_error  2
      data_error     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
    RAISING invalid_output_file.
  ENDIF.

*FTP_DISCONNECT: This is used to disconnect the connection between SAP and other system.

* To disconnect the FTP
  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      handle gv_hdl.


*RFC_CONNECTION_CLOSE:This is used to disconnect the RFC connection between SAP and other system.

  CALL FUNCTION 'RFC_CONNECTION_CLOSE'
    EXPORTING
      destination gv_dest
    EXCEPTIONS
      OTHERS      1.

ENDFORM.                    " FTP_FILE_CUSTOMER

Tuesday, January 15, 2013

Ranges , Join , Split , List Box

Ranges 


****  populate range table to receive entries within a range
wa_ebeln-sign   = 'I'.   "I = include, E = exclude
wa_ebeln-option = 'BT'.  "EQ, BT, NE ....
wa_ebeln-low    = '11111111'.
wa_ebeln-high   = '99999999'.

append wa_ebeln to r_ebeln.

select ebeln ebelp statu aedat matnr menge meins netpr peinh
  from ekpo
  into table it_ekko
 where ebeln in r_ebeln.





  RANGES: r_ustyp FOR usr02-ustyp.
  LOOP AT gt_list.
    r_ustyp-option = 'EQ'.
    r_ustyp-sign   = 'I' .
    r_ustyp-low    = gt_list-key.
    APPEND r_ustyp.
  ENDLOOP.


JOIN


    select vbak~vbeln  vbak~erdat vbak~auart
           vbak~vkorg  vbak~kunnr vbak~vdatu
           vbap~posnr
           vbap~matnr  vbap~werks vbap~vstel
           vbap~kwmeng vbap~vrkme vbap~netwr
           vbap~meins  vbap~prodh vbap~abgru vbap~zzilreqdeldate
           vbap~zzreason vbap~zzreason1 vbap~zzilordqty
           vbap~zzinuom  vbap~zzlastcustqty vbap~zzlastsaveqty
           vbap~zzlastunit vbap~zzlastrdd vbap~zzilweekdat
           vbap~zzlcrdd vbap~zzlcuom vbap~pstyv
      into corresponding fields of table lt_vbeln
      from vbak as vbak inner join vbap as vbap
      on vbak~vbeln = vbap~vbeln
      where vbak~vbeln in s1_vbeln
        and vbap~pstyv ne 'TAPA'.


SPLIT

Asağıdaki kodda sunu sağlıyoruz diyelimki elimizde 

2000/2001/2002/2003/2000/2001 diye bir string olsun . 

Bunları tek tek olacak sekılde '/' 'dan bolerek gt_split tablosuna atıyoruz . 
Daha sonra burdan aynı kayıtları siliyoruz ve tekrar  birlestiriyoruz . Bu komutla elimizdeki string degiskeni belli bir ayrıracla birbirlerine baglılarsa ıstedıgımız gibi ayırmıs oluyoruz . 


  DATA:  BEGIN OF gt_split OCCURS 0,
         split(50) TYPE c,
         END OF gt_split.



*----->>> Added by SOZYURT CR9519 14.01.2013 10:57:20
      SPLIT it_mara-variants AT '/' INTO TABLE gt_split .
      SORT gt_split.
      DELETE ADJACENT DUPLICATES FROM gt_split.
      CLEAR : l_variant.
      LOOP AT gt_split.
        CONCATENATE l_variant '/' gt_split-split INTO l_variant.
      ENDLOOP.
      MOVE l_variant TO it_mara-variants.
*-----<<< Added by SOZYURT


like 9% 


LIST BOX

parameters:     p_select type char10 as listbox visible length 20
                         modif id alv default 'A'.



at selection-screen output.
perform f_fill_list.


*&---------------------------------------------------------------------*
*&      Form  f_fill_list
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form f_fill_list.
  clear: gt_list, gt_list[].
  gs_stab-key  = 'A'.
  gs_stab-text = text-015."Dialog
  append gs_stab to gt_list.
  gs_stab-key  = 'B'.
  gs_stab-text = text-016."System
  append gs_stab to gt_list.
  gs_stab-key  = 'C'.
  gs_stab-text = text-017."Com Data
  append gs_stab to gt_list.
  gs_stab-key  = 'L'.
  gs_stab-text = text-018."Ref
  append gs_stab to gt_list.
  gs_stab-key  = 'S'.
  gs_stab-text = text-019."Service
  append gs_stab to gt_list.

  call function 'VRM_SET_VALUES'
    exporting
      id     = 'P_SELECT'
      values = gt_list.

endform.                    "f_fill_list



Total Pageviews