对固定资产做了屏幕曾强
然后写了个RFC来带实现往增强字段写入数据。代码如下:
DATA: companycode LIKE bapi1022_1-comp_code,
asset LIKE bapi1022_1-assetmaino,
subnumber LIKE bapi1022_1-assetsubno.
DATA :generaldata LIKE bapi1022_feglg001,
generaldatax LIKE bapi1022_feglg001x,
timedependentdata LIKE bapi1022_feglg003,
timedependentdatax LIKE bapi1022_feglg003x,
return LIKE bapiret2,
allocations LIKE bapi1022_feglg004,
allocationsx LIKE bapi1022_feglg004x.
DATA : lt_extensionin TYPE STANDARD TABLE OF bapiparex,
ls_extensionin TYPE bapiparex.
DATA: ls_anlu TYPE bapi_te_anlu.
CLEAR: companycode,asset ,subnumber,generaldata,generaldatax,
timedependentdata,timedependentdatax,return.
IF i_zanla-sernr IS NOT INITIAL.
generaldata-serial_no = i_zanla-sernr.
generaldatax-serial_no = 'X'.
ENDIF.
IF i_zanla-invnr IS NOT INITIAL.
generaldata-invent_no = i_zanla-invnr.
generaldatax-invent_no = 'X'.
ENDIF.
IF i_zanla-sernr IS NOT INITIAL.
generaldata-serial_no = i_zanla-sernr .
generaldatax-serial_no = 'X'.
ENDIF.
IF i_zanla-kostl IS NOT INITIAL.
timedependentdata-costcenter = i_zanla-kostl.
timedependentdata-bus_area = i_zanla-gsber.
timedependentdatax-bus_area = 'X'.
timedependentdatax-costcenter = 'X'.
timedependentdatax-from_date = 'X'.
timedependentdata-from_date = sy-datum.
ENDIF.
IF i_zanla-ord41 IS NOT INITIAL.
allocations-evalgroup1 = i_zanla-ord41.
allocationsx-evalgroup1 = 'X'.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_zanla-bukrs
IMPORTING
output = i_zanla-bukrs.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_zanla-anln2
IMPORTING
output = i_zanla-anln2.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_zanla-anln1
IMPORTING
output = i_zanla-anln1.
"增强字段传值
CLEAR ls_anlu.
ls_anlu-comp_code = i_zanla-bukrs . "公司
ls_anlu-ASSETMAINO = i_zanla-ANLN1 .
" ls_anlu-ASSETSUBNO = i_zanla-ANLN2.
ls_anlu-ZEMPLOYEE_ID = i_zanla-ZEMPLOYEE_ID .
ls_anlu-ZMAC_ID = i_zanla-ZMAC_ID .
ls_anlu-ZDISCK_ID = i_zanla-ZDISCK_ID .
"ls_anlu-zasset_status = '在用'. "资产状态
ls_extensionin-structure = 'BAPI_TE_ANLU'.
ls_extensionin-valuepart1 = ls_anlu.
APPEND ls_extensionin TO lt_extensionin.
CALL FUNCTION 'BAPI_FIXEDASSET_CHANGE'
EXPORTING
companycode = i_zanla-bukrs
asset = i_zanla-anln1
subnumber = i_zanla-anln2
* GROUPASSET =
generaldata = generaldata
generaldatax = generaldatax
* INVENTORY =
* INVENTORYX =
* POSTINGINFORMATION =
* POSTINGINFORMATIONX =
timedependentdata = timedependentdata
timedependentdatax = timedependentdatax
allocations = allocations
allocationsx = allocationsx
* ORIGIN =
* ORIGINX =
* INVESTACCTASSIGNMNT =
* INVESTACCTASSIGNMNTX =
* NETWORTHVALUATION =
* NETWORTHVALUATIONX =
* REALESTATE =
* REALESTATEX =
* INSURANCE =
* INSURANCEX =
* LEASING =
* LEASINGX =
IMPORTING
return = return
TABLES
* DEPRECIATIONAREAS =
* DEPRECIATIONAREASX =
* INVESTMENT_SUPPORT =
extensionin = lt_extensionin.
IF return-type = 'E'.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2 return-message_v3
return-message_v4 INTO out_message-message.
out_message-msgtyp = 'E'.
ELSE.
out_message-msgtyp = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
* IMPORTING
* RETURN =
.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2 return-message_v3
return-message_v4 INTO out_message-message.
ENDIF.
APPEND out_message TO t_message.
我用上面这段代码发现修改不了增强字段里的内容 后来debug跟踪才发现。原来需要修改一处用户增强出入口才可以。
EXIT_SAPL1022_001 ZXAISU05
添加代码如下: