26 Ağustos 2011 Cuma

SAP/ABAP: XLS to SAP

PARAMETERS: P_FILE    LIKE RLGRAP-FILENAME                         .
  PERFORM XLS_TO_SAP
    USING P_FILE
          'GT_ITAB[]'.
*&---------------------------------------------------------------------*
*&      Form  XLS_TO_SAP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE  text
*      -->P_0061   text
*----------------------------------------------------------------------*
FORM XLS_TO_SAP  USING    P_FILE
                          P_TABLE.

  IF P_FILE IS INITIAL.
    MESSAGE 'Dosya seçmediniz!' TYPE 'I' .

  ELSE.

    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    ASSIGN (P_TABLE) TO <TABLE>.

    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
*     I_FIELD_SEPERATOR        =
        I_LINE_HEADER            =  'X'
        I_TAB_RAW_DATA           =  IT_RAW    " WORK TABLE
        I_FILENAME               =  P_FILE
      TABLES
        I_TAB_CONVERTED_DATA     = <TABLE>    "ACTUAL DATA
     EXCEPTIONS
        CONVERSION_FAILED        = 1
        OTHERS                   = 2.

    IF SY-SUBRC <> 0.
      "Helloo, subrc 0 değilse standart hatanı ver hacı...
    ENDIF.

  ENDIF.

ENDFORM.                    " XLS_TO_SAP

22 Ağustos 2011 Pazartesi

SAP/ABAP: USER_EXISTS FM

CALL FUNCTION 'USER_EXISTS'
  EXPORTING
    BNAME                 = PA_UNAME
 EXCEPTIONS
   USER_DONT_EXIST       = 1
   USER_EXISTS           = 2.

IF SY-SUBRC EQ 1.
  WRITE: PA_UNAME, 'diye bir killanici yok'.
ELSEIF SY-SUBRC EQ 2.
  WRITE: PA_UNAME,  'sistemde mevcut'.
ENDIF.

16 Ağustos 2011 Salı

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 = &amp;1.
  GS_STR-FIELD2 = &amp;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.

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