You are on page 1of 5

********************************************************************************

**************
*FESCO Project.
********************************************************************************
**************
********************************************************************************
**************
*Program/Report name: ZFIMSDR0016
*Created by:
MUHAMMAD ZEESHAN AYYAZ
*Created on:
29.09.2015
*Version:
*FS Number:
FESCO_FS_FI_Asset_Master_Upload
********************************************************************************
**************
REPORT ZFIMSDR0016 NO STANDARD PAGE HEADING.
TABLES: BAPI1022_POSTVAL,
BAPI1022_CUMVAL,
BAPI1022_TRTYPE.
DATA: BEGIN OF IT_FILE OCCURS 0,
ASSETCLASS(8),
COMPANYCODE(4),
DESCRIPT(50),
MAIN_DESCRIPT(50),
SERIAL_NO(18),
INVENT_NO(25),
QUANTITY(16),
BASE_UOM(3),
HISTORY(1),
CAP_DATE(10),
COSTCENTER(10),
LOCATION(10),
ROOM(8),
PLATE_NO(15),
MANUFACTURER(30),
PURCH_NEW(1),
PURCH_OLD(1),
ACQ_VALUE(27),
"Cum. Acq Value.
ORD_DEP(27),
"Acum. Ord Dep.
ORD_DEP1(27),
"Posted Ordinary Depriciation
END OF IT_FILE.
DATA:
LS_KEY
TYPE
BAPI1022_KEY,
LS_GENERAL_DATA
TYPE
BAPI1022_FEGLG001,
LS_GENERAL_DATA_X
TYPE
BAPI1022_FEGLG001X,
LS_POSTING_INFORMATION TYPE
BAPI1022_FEGLG002,
LS_POSTING_INFORMATION_X TYPE
BAPI1022_FEGLG002X,
LS_TIME_DEPENDENT_DATA TYPE
BAPI1022_FEGLG003,
LS_TIME_DEPENDENT_DATA_X TYPE
BAPI1022_FEGLG003X,
LS_ORIGIN
TYPE
BAPI1022_FEGLG009,
LS_ORIGIN_X
TYPE
BAPI1022_FEGLG009X,
IT_RETURN
LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
LS_RET
LIKE
BAPIRET2,
LT_BAPI1022_CUMVAL
TYPE
BAPI1022_CUMVAL OCCURS 0 WITH
HEADER LINE,
LT_BAPI1022_POSTVAL
TYPE
BAPI1022_POSTVAL OCCURS 0 WITH
HEADER LINE.
DATA: G_TABIX
LIKE SY-TABIX,
CAP_DATE
TYPE BAPI1022_FEGLG002-CAP_DATE,
ECOUNT
TYPE I VALUE 0,
SCOUNT
TYPE I,

SRNO1
TYPE CHAR10,
P_FILE
TYPE STRING,
"Input File
P_FILE1
TYPE STRING,
"Error File
P_FILE2
TYPE STRING,
"Success File
ERRLOG(590).
CONSTANTS: CON_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
*$----- START OF SELECTION -----$*
START-OF-SELECTION.
P_FILE = 'asset.txt'.
P_FILE1 = 'abc.txt'.
"Error File
P_FILE2 = 'abcd.txt'.
"Success File
DELETE DATASET P_FILE1.
DELETE DATASET P_FILE2.
OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING NON-UNICODE WITH SMART LIN
EFEED.
IF SY-SUBRC NE 0.
IF SY-SUBRC <> 0.
WRITE: /10 'File Does not Exist'.
EXIT.
ENDIF.
ELSE.
DO.
CLEAR: IT_FILE.
READ DATASET P_FILE INTO IT_FILE.
IF SY-SUBRC NE 0.
EXIT.
ELSE.
SPLIT IT_FILE AT CON_TAB INTO IT_FILE-ASSETCLASS
IT_FILE-COMPANYCODE
IT_FILE-DESCRIPT
IT_FILE-MAIN_DESCRIPT
IT_FILE-SERIAL_NO
IT_FILE-INVENT_NO
IT_FILE-QUANTITY
IT_FILE-BASE_UOM
IT_FILE-HISTORY
IT_FILE-CAP_DATE
IT_FILE-COSTCENTER
IT_FILE-LOCATION
IT_FILE-ROOM
IT_FILE-PLATE_NO
IT_FILE-MANUFACTURER
IT_FILE-PURCH_NEW
IT_FILE-PURCH_OLD
IT_FILE-ACQ_VALUE
IT_FILE-ORD_DEP
IT_FILE-ORD_DEP1.
APPEND IT_FILE.
ENDIF.
ENDDO.
CLOSE DATASET P_FILE.
ENDIF.
OPEN DATASET P_FILE1 FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
OPEN DATASET P_FILE2 FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
LOOP AT IT_FILE.
G_TABIX = SY-TABIX.
CLEAR: BAPI1022_CUMVAL,BAPI1022_POSTVAL, LT_BAPI1022_CUMVAL[], LT_BAPI1022_P
OSTVAL[], LS_ORIGIN, LS_ORIGIN_X, LS_GENERAL_DATA,
LS_TIME_DEPENDENT_DATA, LS_POSTING_INFORMATION, LS_KEY, IT_RETURN, IT
_RETURN[], CAP_DATE, ERRLOG, SRNO1.

SHIFT: IT_FILE-ASSETCLASS LEFT DELETING LEADING SPACE,


IT_FILE-COMPANYCODE LEFT DELETING LEADING SPACE,
IT_FILE-DESCRIPT LEFT DELETING LEADING SPACE,
IT_FILE-MAIN_DESCRIPT LEFT DELETING LEADING SPACE,
IT_FILE-SERIAL_NO LEFT DELETING LEADING SPACE,
IT_FILE-INVENT_NO LEFT DELETING LEADING SPACE,
IT_FILE-QUANTITY LEFT DELETING LEADING SPACE,
IT_FILE-BASE_UOM LEFT DELETING LEADING SPACE,
IT_FILE-HISTORY LEFT DELETING LEADING SPACE,
IT_FILE-CAP_DATE LEFT DELETING LEADING SPACE,
IT_FILE-COSTCENTER LEFT DELETING LEADING SPACE,
IT_FILE-LOCATION LEFT DELETING LEADING SPACE,
IT_FILE-ROOM LEFT DELETING LEADING SPACE,
IT_FILE-PURCH_NEW LEFT DELETING LEADING SPACE,
IT_FILE-PURCH_OLD LEFT DELETING LEADING SPACE,
IT_FILE-PLATE_NO LEFT DELETING LEADING SPACE,
IT_FILE-MANUFACTURER LEFT DELETING LEADING SPACE,
IT_FILE-ACQ_VALUE LEFT DELETING LEADING SPACE,
IT_FILE-ORD_DEP LEFT DELETING LEADING SPACE,
IT_FILE-ORD_DEP1 LEFT DELETING LEADING SPACE.
CONCATENATE IT_FILE-CAP_DATE+6(4) IT_FILE-CAP_DATE+3(2) IT_FILE-CAP_DATE(2)
INTO CAP_DATE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IT_FILE-ASSETCLASS
IMPORTING
OUTPUT = IT_FILE-ASSETCLASS.
IF IT_FILE-ORD_DEP > 0.
IT_FILE-ORD_DEP = IT_FILE-ORD_DEP * -1.
ENDIF.
IF IT_FILE-ORD_DEP1 > 0.
IT_FILE-ORD_DEP1 = IT_FILE-ORD_DEP1 * -1.
ENDIF.
LS_KEY-COMPANYCODE
= IT_FILE-COMPANYCODE.
LS_GENERAL_DATA-ASSETCLASS = IT_FILE-ASSETCLASS.
LS_GENERAL_DATA-DESCRIPT = IT_FILE-DESCRIPT.
LS_GENERAL_DATA-MAIN_DESCRIPT = IT_FILE-MAIN_DESCRIPT.
LS_GENERAL_DATA-SERIAL_NO = IT_FILE-SERIAL_NO.
LS_GENERAL_DATA-INVENT_NO = IT_FILE-INVENT_NO.
LS_GENERAL_DATA-QUANTITY = IT_FILE-QUANTITY.
LS_GENERAL_DATA-BASE_UOM = IT_FILE-BASE_UOM.
LS_GENERAL_DATA-HISTORY
= '1'.
LS_GENERAL_DATA_X-ASSETCLASS = 'X'.
LS_GENERAL_DATA_X-DESCRIPT = 'X'.
LS_GENERAL_DATA_X-MAIN_DESCRIPT = 'X'.
LS_GENERAL_DATA_X-SERIAL_NO = 'X'.
LS_GENERAL_DATA_X-INVENT_NO = 'X'.
LS_GENERAL_DATA_X-QUANTITY = 'X'.
LS_GENERAL_DATA_X-BASE_UOM = 'X'.
LS_GENERAL_DATA_X-HISTORY = 'X'.
LS_POSTING_INFORMATION-CAP_DATE = CAP_DATE.
LS_POSTING_INFORMATION_X-CAP_DATE = 'X'.
LS_TIME_DEPENDENT_DATA-PLATE_NO = IT_FILE-PLATE_NO.
LS_TIME_DEPENDENT_DATA_X-LICENSE_PLATE_NO = 'X'.
LS_TIME_DEPENDENT_DATA-COSTCENTER = IT_FILE-COSTCENTER.
LS_TIME_DEPENDENT_DATA_X-COSTCENTER = 'X'.

LS_TIME_DEPENDENT_DATA-LOCATION = IT_FILE-LOCATION.
LS_TIME_DEPENDENT_DATA_X-LOCATION = 'X'.
LS_TIME_DEPENDENT_DATA-ROOM = IT_FILE-ROOM.
LS_TIME_DEPENDENT_DATA_X-ROOM = 'X'.
LS_ORIGIN-MANUFACTURER = IT_FILE-MANUFACTURER.
LS_ORIGIN_X-MANUFACTURER = 'X'.
LS_ORIGIN-PURCH_NEW = IT_FILE-PURCH_NEW.
LS_ORIGIN_X-PURCH_NEW = 'X'.
LT_BAPI1022_CUMVAL-AREA = '01'.
LT_BAPI1022_CUMVAL-ACQ_VALUE = IT_FILE-ACQ_VALUE.
LT_BAPI1022_CUMVAL-ORD_DEP = IT_FILE-ORD_DEP.
APPEND LT_BAPI1022_CUMVAL.
LT_BAPI1022_POSTVAL-ORD_DEP = IT_FILE-ORD_DEP1.
LT_BAPI1022_POSTVAL-AREA
= '01'.
APPEND LT_BAPI1022_POSTVAL.
CALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'
EXPORTING
KEY
= LS_KEY
GENERALDATA
= LS_GENERAL_DATA
GENERALDATAX
= LS_GENERAL_DATA_X
POSTINGINFORMATION = LS_POSTING_INFORMATION
POSTINGINFORMATIONX = LS_POSTING_INFORMATION_X
TIMEDEPENDENTDATA = LS_TIME_DEPENDENT_DATA
TIMEDEPENDENTDATAX = LS_TIME_DEPENDENT_DATA_X
ORIGIN
= LS_ORIGIN
ORIGINX
= LS_ORIGIN_X
IMPORTING
COMPANYCODE
= LS_KEY-COMPANYCODE
ASSET
= LS_KEY-ASSET
SUBNUMBER
= LS_KEY-SUBNUMBER
TABLES
CUMULATEDVALUES
= LT_BAPI1022_CUMVAL
POSTEDVALUES
= LT_BAPI1022_POSTVAL
RETURN
= IT_RETURN.
*$----- CALLING THE BAPI COMMIT FUNCTION -----$*
IF LS_KEY-ASSET <> ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ' '.
SRNO1 = G_TABIX.
CONCATENATE SRNO1 LS_KEY-ASSET INTO ERRLOG SEPARATED BY CON_TAB.
TRANSFER ERRLOG TO P_FILE2.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
RETURN = IT_RETURN.
ECOUNT = ECOUNT + 1.
CLEAR IT_RETURN.
READ TABLE IT_RETURN INDEX 1.
MOVE G_TABIX TO SRNO1.
CONCATENATE SRNO1 IT_RETURN-MESSAGE INTO ERRLOG SEPARATED BY CON_TAB.
TRANSFER ERRLOG TO P_FILE1.
ENDIF.
CLEAR IT_FILE.
ENDLOOP.

CLOSE DATASET P_FILE1.


CLOSE DATASET P_FILE2.
DESCRIBE TABLE IT_FILE LINES SCOUNT.
WRITE: /10 'Total Record: ', SCOUNT.
WRITE: /10 'Total Error Record: ', ECOUNT.

You might also like