开发过程中遇到一个需求去修改资产主数据的分配评估组,业务顾问给了一个bapi :BAPI_FIXEDASSET_CHANGE,测试这个函数没有对应的修改参数。测试标准程序AS02后发现有个函数可以实现资产主数据的创建修改删除,不用BDC就可以实现,很强大
找到这个函数后写了个测试程序,实现需求
*&---------------------------------------------------------------------*
*& Report ZTEST_ZCBFF
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_ZCXG.
DATA: BEGIN OF xanla OCCURS 14.
INCLUDE STRUCTURE ranla.
DATA: END OF xanla.
* Stammdaten-Hauptnr ANLH
DATA: BEGIN OF xanlh OCCURS 1.
INCLUDE STRUCTURE ranlh.
DATA: END OF xanlh.
DATA: BEGIN OF xanlu OCCURS 01.
INCLUDE STRUCTURE ranlu.
DATA: END OF xanlu.
* Jahreswerte ANLC
"DATA: BEGIN OF XANLC OCCURS 14.
" INCLUDE STRUCTURE rANLC.
"DATA: END OF XANLC.
* Einzelpostenkopf ANEK
DATA: BEGIN OF xanek OCCURS 4.
INCLUDE STRUCTURE ranek.
DATA: END OF xanek.
* Einzelposten ANEP
"DATA: BEGIN OF XANEP OCCURS 28. " bei Änderungsbel. bereits
" INCLUDE STRUCTURE rANEP. " definiert
"DATA: END OF XANEP.
* Anteilig. Werte ANEA
DATA: BEGIN OF xanea OCCURS 28.
INCLUDE STRUCTURE ranea.
DATA: END OF xanea.
* ANLK Herkunftsdaten
DATA: BEGIN OF xanlk OCCURS 50.
INCLUDE STRUCTURE ranlk.
DATA: END OF xanlk.
* Anlagentexte
DATA: BEGIN OF xanlt OCCURS 3.
INCLUDE STRUCTURE ranlt.
DATA: END OF xanlt.
************************************************************************
* Userfelder ANLU
DATA: BEGIN OF yanlu OCCURS 14.
INCLUDE STRUCTURE ranlu.
DATA: END OF yanlu.
* ANLI
DATA: BEGIN OF yanli OCCURS 14.
INCLUDE STRUCTURE ranli.
DATA: END OF yanli.
* Stammdaten-Hauptnr ANLH
DATA: BEGIN OF yanlh OCCURS 1.
INCLUDE STRUCTURE ranlh.
DATA: END OF yanlh.
* Anlagenstamm
DATA: BEGIN OF yanla OCCURS 1.
INCLUDE STRUCTURE ranla.
DATA: END OF yanla.
* Bewertungsbereiche ANLB
"DATA: BEGIN OF YANLB OCCURS 14.
" INCLUDE STRUCTURE rANLB.
"DATA: END OF YANLB.
* Zeitabh. Daten ANLZ
"DATA: BEGIN OF YANLZ OCCURS 05.
" INCLUDE STRUCTURE rANLZ.
"DATA: END OF YANLZ.
* Versicherungsdaten ANLV
"DATA: BEGIN OF YANLV OCCURS 02.
" INCLUDE STRUCTURE rANLV.
"DATA: END OF YANLV.
* Jahreswerte ANLC
"DATA: BEGIN OF YANLC OCCURS 14.
" INCLUDE STRUCTURE rANLC.
"DATA: END OF YANLC.
* Einzelpostenkopf ANEK
DATA: BEGIN OF yanek OCCURS 4.
INCLUDE STRUCTURE ranek.
DATA: END OF yanek.
* Einzelposten ANEP
"DATA: BEGIN OF YANEP OCCURS 28.
" INCLUDE STRUCTURE rANEP.
"DATA: END OF YANEP.
* Anteilig. Werte ANEA
* table with the NEW content of: ANLZ
DATA: BEGIN OF XANLZ OCCURS 20.
INCLUDE STRUCTURE RANLZ.
DATA: END OF XANLZ.
* table with the NEW content of: ANLV
DATA: BEGIN OF XANLV OCCURS 20.
INCLUDE STRUCTURE RANLV.
DATA: END OF XANLV.
************************************************************************
* Stammdaten ANLI
DATA: BEGIN OF xanli OCCURS 14.
INCLUDE STRUCTURE ranli.
DATA: END OF xanli.
*
DATA: BEGIN OF XANLB OCCURS 20.
INCLUDE STRUCTURE RANLB.
DATA: END OF XANLB.
DATA: BEGIN OF XANLBZA OCCURS 20.
INCLUDE STRUCTURE RANLBZA.
DATA: END OF XANLBZA.
DATA: BEGIN OF XANLC OCCURS 20.
INCLUDE STRUCTURE RANLC.
DATA: END OF XANLC.
DATA: BEGIN OF XANEP OCCURS 20.
INCLUDE STRUCTURE RANEP.
DATA: END OF XANEP.
DATA: xanla_sam LIKE xanla OCCURS 0 WITH HEADER LINE,
xanlh_sam LIKE xanlh OCCURS 0 WITH HEADER LINE,
xanlt_sam LIKE xanlt OCCURS 0 WITH HEADER LINE,
xanlz_sam LIKE xanlz OCCURS 0 WITH HEADER LINE,
xanlv_sam LIKE xanlv OCCURS 0 WITH HEADER LINE,
xanlu_sam LIKE xanlu OCCURS 0 WITH HEADER LINE,
xanli_sam LIKE xanli OCCURS 0 WITH HEADER LINE,
xanlb_sam LIKE xanlb OCCURS 0 WITH HEADER LINE,
xanlbza_sam LIKE xanlbza OCCURS 0 WITH HEADER LINE, "<< TDDP
xanlc_sam LIKE xanlc OCCURS 0 WITH HEADER LINE,
xanep_sam LIKE xanep OCCURS 0 WITH HEADER LINE,
xanea_sam LIKE xanea OCCURS 0 WITH HEADER LINE,
xanek_sam LIKE xanek OCCURS 0 WITH HEADER LINE,
xanlk_sam LIKE xanlk OCCURS 0 WITH HEADER LINE,
yanlh_sam LIKE yanlh OCCURS 0 WITH HEADER LINE.
SELECT * FROM ANLA
INTO CORRESPONDING FIELDS OF TABLE XANLA_SAM
WHERE ANLN1 = '000010000017' AND
BUKRS = '3201'.
XANLA_SAM-ORD41 = '04'.
XANLA_SAM-KZ = 'U'.
MODIFY XANLA_SAM TRANSPORTING ORD41 WHERE ORD41 NE '99'.
MODIFY XANLA_SAM TRANSPORTING KZ WHERE KZ IS INITIAL.
CALL FUNCTION 'RA_ASSET_MODIFIKATION'
TABLES
t_anea = xanea_sam
t_anek = xanek_sam
t_anep = xanep_sam
t_anla = xanla_sam
t_anlb = xanlb_sam
t_anlbza = xanlbza_sam
t_anlc = xanlc_sam
t_anlv = xanlv_sam
t_anlu = xanlu_sam
t_anlz = xanlz_sam
t_anlh = xanlh_sam
t_anli = xanli_sam
t_anlk = xanlk_sam
t_anlt = xanlt_sam
t_anlh_old = yanlh_sam.
*. *.
COMMIT WORK AND WAIT.