METHOD zii_si_fii006_s4_ib_syn~si_fii006_s4_ib_syn.
*** **** INSERT IMPLEMENTATION HERE **** ***
DATA: lt_item_req TYPE zdt_fii006_s4_req_item_tab,
ls_item_req LIKE LINE OF lt_item_req,
lt_return_res TYPE zdt_fii006_s4_res_return_tab,
ls_return_res LIKE LINE OF lt_return_res.
DATA:
lv_longtext_flag TYPE char1,
lv_createsubnumber TYPE bapi1022_misc-xsubno, "Create Asset Subnumber?
ls_key TYPE bapi1022_key, "Key of Asset Being Created
ls_reference TYPE bapi1022_reference, "Reference for Creating Using Reference
ls_createsubnumber TYPE bapi1022_misc-xsubno, "Create Asset Subnumber?
ls_creategroupasset TYPE bapi1022_misc-xanlgr, "Indicator: Asset is a group asset
ls_testrun TYPE bapi1022_misc-testrun, "Test Run
ls_generaldata TYPE bapi1022_feglg001, "General Data
ls_generaldatax TYPE bapi1022_feglg001x, "Change Parameters for General Data
ls_inventory TYPE bapi1022_feglg011, "Inventory
ls_inventoryx TYPE bapi1022_feglg011x, "Change Parameters for Inventory
ls_postinginformation TYPE bapi1022_feglg002, "Posting Information
ls_postinginformationx TYPE bapi1022_feglg002x, "Change Parameters for Posting Information
ls_timedependentdata TYPE bapi1022_feglg003, "Time-Dependent Data
ls_timedependentdatax TYPE bapi1022_feglg003x, "Change Parameters for Time-Dependent Data
ls_allocations TYPE bapi1022_feglg004, "Allocations
ls_allocationsx TYPE bapi1022_feglg004x, "Change Parameters for Allocations
ls_origin TYPE bapi1022_feglg009, "Origin
ls_originx TYPE bapi1022_feglg009x, "Change Parameters for Origin
ls_investacctassignmnt TYPE bapi1022_feglg010, "Account Assignment for Investment
ls_investacctassignmntx TYPE bapi1022_feglg010x, "Change Parameters for Investment Account Assignments
ls_networthvaluation TYPE bapi1022_feglg006, "Net worth valuation
ls_networthvaluationx TYPE bapi1022_feglg006x, "Change Parameters for Net Worth Valuation
ls_realestate TYPE bapi1022_feglg007, "Real Estate and Similar Rights
ls_realestatex TYPE bapi1022_feglg007x, "Change Parameters for Real Estate
ls_insurance TYPE bapi1022_feglg008, "Insurance
ls_insurancex TYPE bapi1022_feglg008x, "Change Parameters for Insurance
ls_leasing TYPE bapi1022_feglg005, "Leasing
ls_leasingx TYPE bapi1022_feglg005x. "Change Parameters for Leasing
DATA:
lt_depreciationareas TYPE TABLE OF bapi1022_dep_areas, "Depreciation Areas
lt_depreciationareasx TYPE TABLE OF bapi1022_dep_areasx, "Change Parameters for Depreciation Areas
lt_investment_support TYPE TABLE OF bapi1022_inv_support, "Investment Support Key
lt_extensionin TYPE TABLE OF bapiparex, "Customer Enhancements
lt_cumulatedvalues TYPE TABLE OF bapi1022_cumval, "Cumulative Values
lt_postedvalues TYPE TABLE OF bapi1022_postval, "Posted values
lt_transactions TYPE TABLE OF bapi1022_trtype, "Transactions for Transfer during Fiscal Year
lt_proportionalvalues TYPE TABLE OF bapi1022_propval, "Proportional Values on Transactions
ls_header TYPE thead,
lt_return TYPE TABLE OF bapiret2, "BAPI Return Table
lt_return2 TYPE TABLE OF bapiret2. "BAPI Return Table
-
lt_postingheaders type table of bapi1022_postingheader." marked by ccf 20160808
DATA:
ls_depreciationareas TYPE bapi1022_dep_areas, "Depreciation Areas
ls_depreciationareasx TYPE bapi1022_dep_areasx, "Change Parameters for Depreciation Areas
ls_investment_support TYPE bapi1022_inv_support, "Investment Support Key
ls_extensionin TYPE bapiparex, "Customer Enhancements
ls_cumulatedvalues TYPE bapi1022_cumval, "Cumulative Values
ls_postedvalues TYPE bapi1022_postval, "Posted values
ls_transactions TYPE bapi1022_trtype, "Transactions for Transfer during Fiscal Year
ls_proportionalvalues TYPE bapi1022_propval, "Proportional Values on Transactions
ls_return TYPE bapiret2. "BAPI Return Table -
ls_postingheaders type bapi1022_postingheader." marked by ccf 20160808
DATA msg_txt TYPE string .
DATA : l_offacc TYPE saknr VALUE ‘0069999999’.DATA: l_bukrs TYPE bukrs,
l_anln1 TYPE bf_anln1,
l_anln2 TYPE bf_anln2.lt_item_req[] = input-mt_fii006_s4_req-item[].
LOOP AT lt_item_req INTO ls_item_req.
IF ls_item_req-anlkl = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '资产分类必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-bukrs = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '公司代码必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-txt50 = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '资产描述必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-anlhtxt = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '资产主号文本必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF.
-
IF ls_item_req-menge = ''.
-
CLEAR: ls_return_res.
-
ls_return_res-anln1 = ''.
-
ls_return_res-bukrs = ls_item_req-bukrs.
-
ls_return_res-type = 'E'.
-
ls_return_res-mess = '数量必填'.
-
APPEND ls_return_res TO lt_return_res.
-
CONTINUE.
-
ENDIF.
-
IF ls_item_req-meins = ''.
-
CLEAR: ls_return_res.
-
ls_return_res-anln1 = ''.
-
ls_return_res-bukrs = ls_item_req-bukrs.
-
ls_return_res-type = 'E'.
-
ls_return_res-mess = '单位必填'.
-
APPEND ls_return_res TO lt_return_res.
-
CONTINUE.
-
ENDIF. IF ls_item_req-kostl = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '成本中心必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-gsber = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '业务范围必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-ord42 = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '资产使用人必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF. IF ls_item_req-kostlv = ''. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = ls_item_req-bukrs. ls_return_res-type = 'E'. ls_return_res-mess = '资产管理部门必填'. APPEND ls_return_res TO lt_return_res. CONTINUE. ENDIF.
-
IF ls_item_req-ord41 = ''."固定资产创建的接口,不需要则个使用状态的字段,资产还没买回来,没有状态
-
CLEAR: ls_return_res.
-
ls_return_res-anln1 = ''.
-
ls_return_res-bukrs = ls_item_req-bukrs.
-
ls_return_res-type = 'E'.
-
ls_return_res-mess = '使用状态必填'.
-
APPEND ls_return_res TO lt_return_res.
-
CONTINUE.
-
ENDIF. CLEAR lt_depreciationareas[]. CLEAR lt_depreciationareasx[]. CLEAR lt_cumulatedvalues[]. CLEAR lt_postedvalues[]. CLEAR lt_transactions[]. CLEAR lt_return[]. CLEAR lv_longtext_flag. CLEAR lv_createsubnumber. CLEAR ls_key. CLEAR: ls_generaldata,ls_generaldatax. CLEAR: ls_allocations,ls_allocationsx. CLEAR: ls_origin,ls_originx. CLEAR: ls_investacctassignmnt, ls_investacctassignmntx. CLEAR ls_postinginformation. CLEAR ls_postinginformationx. CLEAR ls_timedependentdata. CLEAR ls_timedependentdatax. CLEAR: l_bukrs, l_anln1, l_anln2. ls_key-companycode = ls_item_req-bukrs.
-
ls_key-asset = ls_item_req-anln1.
-
ls_key-subnumber = ls_item_req-anln2. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = ls_item_req-anlkl IMPORTING output = ls_generaldata-assetclass. ls_generaldatax-assetclass = 'X'.
-
ls_generaldata-serial_no = ls_item_req-sernr.
-
ls_generaldatax-serial_no = 'X'. ls_generaldata-descript = ls_item_req-txt50. ls_generaldatax-descript = 'X'.
-
ls_generaldata-descript2 = ls_item_req-txa50.
-
ls_generaldatax-descript2 = 'X'. ls_generaldata-main_descript = ls_item_req-anlhtxt. ls_generaldatax-main_descript = 'X'.
-
ls_generaldata-quantity = ls_item_req-menge.
-
ls_generaldatax-quantity = 'X'.
-
ls_generaldata-invent_no = ls_item_req-invnr.
-
ls_generaldatax-invent_no = 'X'.
-
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
-
EXPORTING
-
input = ls_item_req-meins
-
language = sy-langu
-
IMPORTING
-
output = ls_generaldata-base_uom
-
EXCEPTIONS
-
unit_not_found = 1
-
OTHERS = 2.
-
ls_generaldatax-base_uom = 'X'.
-
ls_postinginformation-cap_date = sy-datum.
-
ls_postinginformationx-cap_date = 'X'.
-
ls_timedependentdata-intern_ord = ls_item_req-caufn.
-
ls_timedependentdatax-intern_ord = ‘X’.
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input = ls_item_req-kostl
IMPORTING
output = ls_timedependentdata-costcenter.
ls_timedependentdatax-costcenter = ‘X’.CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input = ls_item_req-kostlv
IMPORTING
output = ls_timedependentdata-resp_cctr.
ls_timedependentdatax-resp_cctr = ‘X’.ls_timedependentdata-bus_area = ls_item_req-gsber.
ls_timedependentdatax-bus_area = ‘X’. -
ls_origin-type_name = ls_item_req-typbz.
-
IF ls_origin-type_name <> ''.
-
ls_originx-type_name = 'X'.
-
ENDIF.
-
IF ls_item_req-caufn IS NOT INITIAL.
-
ls_investacctassignmnt-invest_ord = ls_item_req-caufn.
-
ls_investacctassignmntx-invest_ord = 'X'.
-
ENDIF.
-
ls_allocations-evalgroup1 = ls_item_req-ord41.
-
ls_allocationsx-evalgroup1 = 'X'. ls_allocations-evalgroup2 = ls_item_req-ord42+2(4). ls_allocationsx-evalgroup2 = 'X'. ls_allocations-evalgroup5 = ls_item_req-gdlgrp. ls_allocationsx-evalgroup5 = 'X'.
-
CLEAR:ls_depreciationareasx,ls_depreciationareas.
-
ls_depreciationareas-area = '01'.
-
ls_depreciationareasx-area = '01'.
-
ls_depreciationareas-dep_key = ls_item_req-afasl.
-
ls_depreciationareasx-dep_key = 'X'.
-
ls_depreciationareas-ulife_yrs = ls_item_req-ndjar.
-
ls_depreciationareasx-ulife_yrs = 'X'.
-
ls_depreciationareas-ulife_prds = ls_item_req-ndper.
-
ls_depreciationareasx-ulife_prds = 'X'.
-
"取资产化日期下一期间的20日作为折旧开始日期
-
CLEAR: lv_gjahr, lv_poper.
-
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
-
EXPORTING
-
i_date = ls_item_req-aktiv
** I_MONMIT = 00
-
i_periv = 'Z4'
-
IMPORTING
-
e_buper = lv_poper
-
e_gjahr = lv_gjahr
-
EXCEPTIONS
-
input_false = 1
-
t009_notfound = 2
-
t009b_notfound = 3
-
OTHERS = 4.
-
IF sy-subrc <> 0.
** Implement suitable error handling here
-
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
-
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO ls_item_req-msg.
-
ls_item_req-mtype = 'E'.
-
MODIFY lt_zfit002 FROM ls_item_req.
-
CONTINUE.
-
ENDIF.
-
IF lv_poper = '012'.
-
lv_gjahr = lv_gjahr + 1.
-
lv_poper = '001'.
-
ELSEIF lv_poper IS NOT INITIAL.
-
lv_poper = lv_poper + 1.
-
ENDIF.
-
ls_depreciationareas-odep_start_date = lv_gjahr && lv_poper+1(2) && '20'.
-
IF ls_depreciationareas-odep_start_date IS NOT INITIAL.
-
ls_depreciationareasx-odep_start_date = 'X'.
-
ENDIF.
** ls_depreciationareas-exp_ulife_yrs = ls_item_req-ndabj.
** ls_depreciationareasx-exp_ulife_yrs = ‘X’.
**
** ls_depreciationareas-exp_ulife_prds = ls_item_req-ndabp.
** ls_depreciationareasx-exp_ulife_prds = ‘X’.
*
-
APPEND ls_depreciationareas TO lt_depreciationareas.
-
APPEND ls_depreciationareasx TO lt_depreciationareasx.
-
IF ls_item_req-longtext IS NOT INITIAL."标识在CMOD ZCO01 EXIT_SAPLAIST_002
-
lv_longtext_flag = 'X'.
-
EXPORT lv_longtext_flag TO MEMORY ID 'AS01_LONGTEXT'.
-
ENDIF.
-
IF ls_item_req-anln2 IS NOT INITIAL.
-
lv_createsubnumber = 'X'.
-
ENDIF.
-
IF ls_item_req-kansw01 > 0 OR ls_item_req-knafa01 <> 0.
-
CLEAR:ls_cumulatedvalues.
-
ls_cumulatedvalues-fisc_year = sy-datum(4).
-
ls_cumulatedvalues-area = ls_item_req-afabe01.
-
ls_cumulatedvalues-acq_value = ls_item_req-kansw01.
-
ls_cumulatedvalues-ord_dep = ls_item_req-knafa01 * -1.
-
APPEND ls_cumulatedvalues TO lt_cumulatedvalues.
-
ENDIF.
-
IF ls_item_req-kansw30 > 0 OR ls_item_req-knafa30 <> 0.
-
CLEAR:ls_cumulatedvalues.
-
ls_cumulatedvalues-fisc_year = sy-datum(4).
-
ls_cumulatedvalues-area = ls_item_req-afabe30.
-
ls_cumulatedvalues-acq_value = ls_item_req-kansw30.
-
ls_cumulatedvalues-ord_dep = ls_item_req-knafa30 * -1.
-
APPEND ls_cumulatedvalues TO lt_cumulatedvalues.
-
ENDIF.
-
IF ls_item_req-nafag01 <> 0.
-
CLEAR: ls_postedvalues.
-
ls_postedvalues-fisc_year = sy-datum(4).
-
ls_postedvalues-area = ls_item_req-afabe01.
-
ls_postedvalues-ord_dep = ls_item_req-nafag01 * -1.
-
APPEND ls_postedvalues TO lt_postedvalues.
-
ENDIF.
-
IF ls_item_req-nafag30 <> 0.
-
CLEAR: ls_postedvalues.
-
ls_postedvalues-fisc_year = sy-datum(4).
-
ls_postedvalues-area = ls_item_req-afabe30.
-
ls_postedvalues-ord_dep = ls_item_req-nafag30 * -1.
-
APPEND ls_postedvalues TO lt_postedvalues.
-
ENDIF.
-
"本年资产购置价值
-
IF ls_item_req-anbtr <> 0.
-
CLEAR: ls_transactions.
-
ls_transactions-fisc_year = sy-datum(4).
-
ls_transactions-current_no = 1.
-
ls_transactions-area = '01'.
-
ls_transactions-valuedate = ls_item_req-aktiv.
-
ls_transactions-assettrtyp = ls_item_req-bwasl.
-
ls_transactions-amount = ls_item_req-anbtr.
-
APPEND ls_transactions TO lt_transactions.
-
ENDIF.
-
IF ls_item_req-anbtr30 <> 0.
-
CLEAR: ls_transactions.
-
ls_transactions-fisc_year = sy-datum(4).
-
ls_transactions-current_no = 1.
-
ls_transactions-area = '30'.
-
ls_transactions-valuedate = ls_item_req-aktiv.
-
ls_transactions-assettrtyp = ls_item_req-bwasl.
-
ls_transactions-amount = ls_item_req-anbtr30.
-
APPEND ls_transactions TO lt_transactions.
-
ENDIF. CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1' EXPORTING key = ls_key
-
REFERENCE =
-
CREATESUBNUMBER =
-
POSTCAP =
-
CREATEGROUPASSET =
-
TESTRUN = generaldata = ls_generaldata generaldatax = ls_generaldatax
-
INVENTORY =
-
INVENTORYX =
-
POSTINGINFORMATION =
-
POSTINGINFORMATIONX = timedependentdata = ls_timedependentdata timedependentdatax = ls_timedependentdatax allocations = ls_allocations allocationsx = ls_allocationsx
-
ORIGIN =
-
ORIGINX =
-
INVESTACCTASSIGNMNT =
-
INVESTACCTASSIGNMNTX =
-
NETWORTHVALUATION =
-
NETWORTHVALUATIONX =
-
REALESTATE =
-
REALESTATEX =
-
INSURANCE =
-
INSURANCEX =
-
LEASING =
-
LEASINGX =
-
GLO_RUS_GEN =
-
GLO_RUS_GENX =
-
GLO_RUS_PTX =
-
GLO_RUS_PTXX =
-
GLO_RUS_TTX =
-
GLO_RUS_TTXX =
-
GLO_RUS_LTX =
-
GLO_RUS_LTXX =
-
GLO_IN_GEN =
-
GLO_IN_GENX =
-
GLO_JP_ANN16 =
-
GLO_JP_ANN16X =
-
GLO_JP_PTX =
-
GLO_JP_PTXX =
-
GLO_TIME_DEP =
-
GLO_RUS_GENTD =
-
GLO_RUS_GENTDX =
-
GLO_RUS_PTXTD =
-
GLO_RUS_PTXTDX =
-
GLO_RUS_TTXTD =
-
GLO_RUS_TTXTDX =
-
GLO_RUS_LTXTD =
-
GLO_RUS_LTXTDX =
-
GLO_JP_IMPTD =
-
GLO_JP_IMPTDX =
-
GLO_KR_BUS_PLACE =
-
GLO_KR_BUS_PLACEX =
-
GLO_NATL_CLFN_CODE =
-
GLO_NATL_CLFN_CODEX =
-
GLO_PT_FSCL_MAPS =
-
GLO_PT_FSCL_MAPSX = IMPORTING companycode = l_bukrs asset = l_anln1 subnumber = l_anln2
-
ASSETCREATED = return = ls_return
-
TABLES
-
DEPRECIATIONAREAS =
-
DEPRECIATIONAREASX =
-
INVESTMENT_SUPPORT =
-
EXTENSIONIN = . IF l_anln1 <> '' . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. CLEAR: ls_return_res. ls_return_res-anln1 = |{ l_anln1 ALPHA = OUT }|. CONDENSE ls_return_res-anln1 NO-GAPS. ls_return_res-bukrs = l_bukrs. ls_return_res-type = 'S'. ls_return_res-mess = '资产主数据创建成功'. APPEND ls_return_res TO lt_return_res. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CLEAR: ls_return_res. ls_return_res-anln1 = ''. ls_return_res-bukrs = l_bukrs. ls_return_res-type = 'E'. ls_return_res-mess = ls_return-message. APPEND ls_return_res TO lt_return_res. ENDIF.
ENDLOOP.
output-mt_fii006_s4_res-return = lt_return_res[].
ENDMETHOD.