固定资产调拨
DATA: lv_index TYPE i,
lv_flag TYPE i.
DATA: ls_generaldata TYPE bapi1022_feglg001,
ls_generaldatax TYPE bapi1022_feglg001x,
ls_timedependentdata TYPE bapi1022_feglg003,
ls_timedependentdatax TYPE bapi1022_feglg003x,
ls_allocations TYPE bapi1022_feglg004,
ls_allocationsx TYPE bapi1022_feglg004x,
ls_origin TYPE bapi1022_feglg009,
ls_originx TYPE bapi1022_feglg009x,
ls_return TYPE bapiret2.
DESCRIBE TABLE it_data[] LINES lv_index.
IF lv_index EQ 0.
o_type = 'E'.
o_msg = '无传入数据'.
ELSE.
LOOP AT it_data.
"增加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = it_data-anln1
IMPORTING
output = it_data-anln1.
"增加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = it_data-anln2
IMPORTING
output = it_data-anln2.
ls_generaldata-descript = it_data-txt50. "资产描述
ls_generaldata-descript2 = it_data-txa50. "附加资产描述
ls_generaldata-serial_no = it_data-sernr. "序列号
ls_generaldata-invent_no = it_data-invnr. "库存号
ls_generaldata-quantity = it_data-menge. "数量
ls_generaldatax-descript = 'X'. "资产描述
ls_generaldatax-descript2 = 'X'. "附加资产描述
ls_generaldatax-serial_no = 'X'. "序列号
ls_generaldatax-invent_no = 'X'. "库存号
ls_generaldatax-quantity = 'X'. "数量
ls_timedependentdata-from_date = it_data-adatu. "开始日期
ls_timedependentdata-to_date = '99991231'. "结束日期
ls_timedependentdata-costcenter = it_data-kostl."成本中心
ls_timedependentdata-room = it_data-raumn. "房间
ls_timedependentdata-intern_ord = it_data-caufn."内部订单
ls_timedependentdatax-from_date = 'X'. "开始日期
ls_timedependentdatax-to_date = 'X'. "结束日期
ls_timedependentdatax-costcenter = 'X'."成本中心
ls_timedependentdatax-room = 'X'. "房间
ls_timedependentdatax-intern_ord = 'X'."内部订单
ls_allocations-evalgroup1 = it_data-ord41. "获取方式
ls_allocations-evalgroup2 = it_data-ord42. "使用状态
ls_allocations-evalgroup4 = it_data-ord44. "政府项目
ls_allocations-evalgroup5 = it_data-ord44. "政府项目(课题)
ls_allocationsx-evalgroup1 = 'X'. "获取方式
ls_allocationsx-evalgroup2 = 'X'. "使用状态
ls_allocationsx-evalgroup4 = 'X'. "政府项目
ls_allocationsx-evalgroup5 = 'X'. "政府项目(课题)
ls_origin-vendor_no = it_data-lifnr. "供应商
ls_origin-manufacturer = it_data-herst. "资产制造商
ls_originx-vendor_no = 'X'. "供应商
ls_originx-manufacturer = 'X'. "资产制造商
CALL FUNCTION 'BAPI_FIXEDASSET_CHANGE'
EXPORTING
companycode = it_data-bukrs
asset = it_data-anln1
subnumber = it_data-anln2
generaldata = ls_generaldata
generaldatax = ls_generaldatax
timedependentdata = ls_timedependentdata
timedependentdatax = ls_timedependentdatax
allocations = ls_allocations
allocationsx = ls_allocationsx
origin = ls_origin
originx = ls_originx
IMPORTING
return = ls_return.
.
IF ls_return-type CA 'EAX'.
lv_flag = lv_flag + 1.
o_type = 'E'.
o_msg = ls_return-message.
ot_data-ztype = 'E'.
ot_data-zmsg = ls_return-message.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
ot_data-ztype = 'S'.
ot_data-zmsg = ls_return-message.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
"去除前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = it_data-anln1
IMPORTING
output = ot_data-anln1.
"去除前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = it_data-anln2
IMPORTING
output = ot_data-anln2.
APPEND ot_data.
CLEAR:it_data,
ot_data,
ls_return,
ls_generaldata,
ls_generaldatax,
ls_timedependentdata,
ls_timedependentdatax,
ls_allocations,
ls_allocationsx,
ls_origin,
ls_originx.
ENDLOOP.
IF lv_flag GT 1.
o_type = 'E'.
o_msg = '有多行调拨失败请查看明细数据'.
ENDIF.
IF o_type IS INITIAL.
o_type = 'S'.
o_msg = '固定资产调拨成功'.
ENDIF .
ENDIF.