Sunday, June 22, 2014

Function Module to Convert From and To Date to Fiscal Year

DATAV_FROM_GJAHR TYPE GJAHR.
DATAV_TO_GJAHR TYPE GJAHR.

* Function Module from From Fiscal Year
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
  EXPORTING
    I_DATE               I_FROM_BUDAT
*   I_MONMIT             = 00
    I_PERIV              'V3'    "Your Fiscal Year Variant
  IMPORTING
*   E_BUPER              =
    E_GJAHR              V_FROM_GJAHR
* EXCEPTIONS
*   INPUT_FALSE          = 1
*   T009_NOTFOUND        = 2
*   T009B_NOTFOUND       = 3
*   OTHERS               = 4
          .

* Function Module from To Fiscal Year
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
  EXPORTING
    I_DATE               I_TO_BUDAT
*   I_MONMIT             = 00
    I_PERIV              'V3'    "Your Fiscal Year Variant
  IMPORTING
*   E_BUPER              =
    E_GJAHR              V_TO_GJAHR
* EXCEPTIONS
*   INPUT_FALSE          = 1
*   T009_NOTFOUND        = 2
*   T009B_NOTFOUND       = 3
*   OTHERS               = 4
          .

WRITEV_FROM_GJAHR.
WRITEV_TO_GJAHR.

Friday, June 13, 2014

Function Module for Vendor Master Details

To Get The Details Of The Vendor, Here The Steps-
Step 1 - Create The Structure By Going To The T-Code SE11.
LIFNR
ADRNR
REGIO
TELF1
NAME1
SMTP_ADDR
AKONT
ZWELS
STCEG
ANRED
BANKL
BANKN
KOINH
J_1IEXCD
J_1IEXRN
J_1IEXRG
J_1IEXDI
J_1IEXCO
J_1ICSTNO
J_1ILSTNO
J_1IPANNO
J_1IEXCIVE
J_1ISSIST
J_1IVTYP
J_1IVENCRE
J_1ISERN
J_1IPANREF
STR_SUPPL1
STR_SUPPL2
STREET
HOUSE_NUM1
POST_CODE1
CITY1
COUNTRY

Step 2 - Create A Function Module By T-Code SE37
In Import Parameter Give I_LIFNR.

Here is the Source Code -
SELECT
  LIFNR
        ADRNR
        REGIO
        TELF1
        NAME1
        STCEG
        ANRED
  INTO ITAB
  FROM LFA1 WHERE LIFNR I_LIFNR.


 APPEND ITAB.


ENDSELECT.
LOOP AT ITAB.
  SELECT
    SMTP_ADDR
   INTO CORRESPONDING FIELDS OF ITAB FROM ADR6 WHERE  ADDRNUMBER ITAB-ADRNR.
ENDSELECT.

MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP.

   LOOP AT ITAB.
  SELECT
    AKONT
    ZWELS
    INTO CORRESPONDING FIELDS OF ITAB FROM LFB1 WHERE  LIFNR ITAB-LIFNR.
ENDSELECT.

MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP.

  LOOP AT ITAB.
  SELECT
    J_1IEXCD
    J_1IEXRN
     J_1IEXRG
      J_1IEXDI
      J_1IEXCO
      J_1ICSTNO
      J_1ILSTNO
      J_1IPANNO
         J_1IEXCIVE
        J_1ISSIST
        J_1IVTYP
        J_1IVENCRE
        J_1ISERN
        J_1IPANREF
    INTO CORRESPONDING FIELDS OF ITAB FROM J_1IMOVEND WHERE  LIFNR ITAB-LIFNR.
ENDSELECT.

MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP.


   LOOP AT ITAB.
  SELECT
      BANKL
     BANKN
     KOINH
    INTO CORRESPONDING FIELDS OF ITAB FROM LFBK WHERE  LIFNR ITAB-LIFNR.
ENDSELECT.

MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP.

       LOOP AT ITAB.
  SELECT
    STR_SUPPL1
    STR_SUPPL2
    STREET
     HOUSE_NUM1
    POST_CODE1
    CITY1
    COUNTRY
    INTO CORRESPONDING FIELDS OF ITAB FROM ADRC WHERE  ADDRNUMBER ITAB-ADRNR.
ENDSELECT.

MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP. 
 

Function Module for Customer Master Details

To Get The Details Of The Customer, Here The Steps-
Step 1 - Create The Structure By Going To The T-Code SE11.
KUNNR
NAME1
STRAS
TELF1
TELF2
ADRNR
SMTP_ADDR
STREET
NAME_CO
CITY1
POST_CODE1
COUNTRY
TRANSPZONE
TEL_NUMBER
J_1IEXCD

J_1ICSTNO
J_1ILSTNO
J_1IPANNO


Step 2 - Create A Function Module By T-Code SE37
In Import Parameter Give IKUNNR.
Here Is The Source Code - 

FUNCTION ZCUST_INFO.
*"----------------------------------------------------------------------
*"*"LOCAL INTERFACE:
*"  IMPORTING
*"     VALUE(IKUNNR) TYPE  KNA1-KUNNR
*"  TABLES
*"      ITAB STRUCTURE  ZCUSTOMERINFO
*"----------------------------------------------------------------------

"GET THE ALL DETAILS FROM KNA1
SELECT
      KUNNR
      NAME1
      STRAS
      TELF1
      TELF2
      ADRNR
       INTO CORRESPONDING FIELDS OF ITAB
     FROM KNA1
     WHERE
     KUNNR = IKUNNR.
ENDSELECT.
IF SY-SUBRC <> 0.
ELSE.
APPEND ITAB.

"THIS WILL GIVE YOU EMAIL ADDRESS
LOOP AT ITAB INTO WA_ZEMAIL.
SELECT SMTP_ADDR
  INTO CORRESPONDING FIELDS OF ITAB
  FROM ADR6
  WHERE ADDRNUMBER = ITAB-ADRNR.
  ENDSELECT.
ENDLOOP.
APPEND ITAB.
"THIS WILL GIVE YOU THE ADDRESS
LOOP AT ITAB INTO WA_ZADDRESS1.
SELECT
  STREET
  NAME_CO
  CITY1
  POST_CODE1
  COUNTRY
  INTO CORRESPONDING FIELDS OF ITAB
  FROM ADRC
  WHERE ADDRNUMBER = ITAB-ADRNR.
  ENDSELECT.
ENDLOOP.
APPEND ITAB.
"THIS WILL GIVE YOU MOBILE AND TELEPHONE
LOOP AT ITAB INTO WA_ZTEL1.
SELECT
  TEL_NUMBER
  INTO CORRESPONDING FIELDS OF ITAB
  FROM ADR2
  WHERE ADDRNUMBER = ITAB-ADRNR AND R3_USER = '1'.
  ENDSELECT.
  ITAB-TELF1 = ITAB-TEL_NUMBER.
ENDLOOP.
APPEND ITAB.

LOOP AT ITAB INTO WA_ZTEL1.
SELECT
  TEL_NUMBER
  INTO CORRESPONDING FIELDS OF ITAB
  FROM ADR2
  WHERE ADDRNUMBER = ITAB-ADRNR AND R3_USER IN ('2','3').
  ENDSELECT.
  ITAB-TELF2 = ITAB-TEL_NUMBER.
ENDLOOP.
APPEND ITAB.

"THIS WILL GIVE EXCISE RELATED INFORMATION AND PAN NUMBER
LOOP AT ITAB INTO WA_ZBANK1.
SELECT
  J_1IEXCD
  J_1ICSTNO
  J_1ILSTNO
  J_1IPANNO
  INTO CORRESPONDING FIELDS OF ITAB
  FROM J_1IMOCUST
  WHERE KUNNR = IKUNNR.
  ENDSELECT.

ENDLOOP.
APPEND ITAB.

SORT ITAB DESCENDING BY SMTP_ADDR STREET NAME_CO J_1IEXCD.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ADRNR.
ENDIF.

ENDFUNCTION.

Tuesday, June 10, 2014

Move File from One Directory to Another in ABAP

*&---------------------------------------------------------------------*
*& REPORT  YFILEMOVE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YFILEMOVE.

SELECTION-SCREEN:BEGIN OF BLOCK F1 WITH FRAME TITLE TEXT-001.
PARAMETERSFILEPATH LIKE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK F1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEPATH.

  CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
   EXPORTING
    DIRECTORY              'YOUR DIRECTORY PATH HERE'
*    FILEMASK               = ' '
   IMPORTING
     SERVERFILE             =  FILEPATH
*   EXCEPTIONS
*    CANCELED_BY_USER       = 1
*    OTHERS                 = 2
            .
  IF SY-SUBRC 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    "MESSAGE 'SUCCESS' TYPE 'I'.
  ENDIF.

 "----------------------------------------------------------------------------"

  START-OF-SELECTION.

  DATAL_MSG(100),
        P_W_CONF_MSG(100),
        P_WA_ANSWER(100).

  L_MSG 'Confirm'.  " YOUR TEXT
  P_W_CONF_MSG 'Are You Sure You Want To Move The File?'.

  CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    TITLEBAR              =  L_MSG
    TEXT_QUESTION         P_W_CONF_MSG
    TEXT_BUTTON_1         'Yes'(002)
    TEXT_BUTTON_2         'No'(005)
    DEFAULT_BUTTON        '1'
    DISPLAY_CANCEL_BUTTON ''
  IMPORTING
    ANSWER                P_WA_ANSWER.

IF P_WA_ANSWER EQ '1'.

  DATAD1 TYPE LOCALFILE,
  P1(100),
  P2(100),
  P3(100),
  P4(100),
  P5 TYPE EPSFILNAM,
  DEL(1VALUE '/'.

  D1 FILEPATH.
* WRITE D1.

"Building up the filename in P5.
  SPLIT D1 AT DEL INTO P1 P2 P3 P4 P5.

*  WRITE / P1.
*  WRITE / P2.
*  WRITE / P3.
*  WRITE / P4.

  DATAD2(100)D3 TYPE LOCALFILE.
  D2 '/FOLDER NAME/'.
  CONCATENATE D2 P5 INTO D3.
* WRITE / D3.

  DATABEGIN OF ITAB OCCURS 0,
        REC(100TYPE C,
        END OF ITAB.
  DATAWA(100TYPE C.


    CALL METHOD CL_CTS_LANGUAGE_FILE_IO=>COPY_FILES_LOCAL
    EXPORTING
      IM_SOURCE_FILE           P5
      IM_SOURCE_DIRECTORY      'SOURCE PATH'
      IM_TARGET_FILE           P5
      IM_TARGET_DIRECTORY      'DESTINATION PATH'
*      IM_OVERWRITE_MODE        = SPACE
*    IMPORTING
*      EX_FILE_SIZE             =
    EXCEPTIONS
      OPEN_INPUT_FILE_FAILED   1
      OPEN_OUTPUT_FILE_FAILED  2
      WRITE_BLOCK_FAILED       3
      READ_BLOCK_FAILED        4
      CLOSE_OUTPUT_FILE_FAILED 5
      OTHERS                   6.

     IF SY-SUBRC 0.
      MESSAGE 'File Moved.' TYPE 'I'.
      DELETE DATASET D1.
     ELSE.
      MESSAGE 'File Not Moved' TYPE 'E'.
     ENDIF.
ENDIF.

Print Internal Table to Excel File in ABAP

PARAMETERS  LV_FILE1(50).
DATALV_FILE TYPE STRING.
LV_FILE LV_FILE1.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
  EXPORTING
    FILENAME                  LV_FILE
    FILETYPE                  'DAT'
  CHANGING
    DATA_TAB                  ITAB[].