在ABAP OData服务中创建方法
我目前正在为SAP Fiori应用程序开发OData服务。 当我试图编码BAPI以将通知插入数据库时,它不起作用&我不知道为什么。我的同事告诉我,这是因为缺少必需的参数,但我也填写了这些参数,没有结果。 代码如下:在ABAP OData服务中创建方法,odata,abap,sap-gui,Odata,Abap,Sap Gui,我目前正在为SAP Fiori应用程序开发OData服务。 当我试图编码BAPI以将通知插入数据库时,它不起作用&我不知道为什么。我的同事告诉我,这是因为缺少必需的参数,但我也填写了这些参数,没有结果。 代码如下: METHOD avisset_create_entity. DATA: ls_data TYPE zcl_zpm_avis_mpc=>ts_avis. DATA: l_notif TYPE bapi2080_nothdre-notif_no, l_
METHOD avisset_create_entity.
DATA: ls_data TYPE zcl_zpm_avis_mpc=>ts_avis.
DATA: l_notif TYPE bapi2080_nothdre-notif_no,
l_notif_type TYPE bapi2080-notif_type,
l_notif_hd_exp TYPE bapi2080_nothdre,
l_notif_header TYPE bapi2080_nothdri,
i_return TYPE TABLE OF bapiret2.
io_data_provider->read_entry_data( IMPORTING es_data = ls_data ).
IF ls_data IS NOT INITIAL.
l_notif_type = 'S3'.
l_notif_header-equipment = ls_data-equnr.
l_notif_header-reportedby = sy-uname.
l_notif_header-short_text = ls_data-qmtxt.
* l_notif_header-notif_date = ls_data-qmdat.
l_notif_header-CODE_GROUP = 'MAINDIAG'.
l_notif_header-CODING = 'desi'.
* l_notif_header-CODING = ls_data-IWERK.
* FUNCT_LOC
CALL FUNCTION 'BAPI_ALM_NOTIF_CREATE'
EXPORTING
* EXTERNAL_NUMBER =
notif_type = l_notif_type
notifheader = l_notif_header
* SENDER =
* ORDERID =
IMPORTING
notifheader_export = l_notif_hd_exp
TABLES
* notitem = i_notitemi
* notifcaus = i_notcausi
* notifactv = i_notactvi
* notiftask = i_nottaski
* notifpartnr = i_notpartnri
* longtexts = i_notfulltxti
* key_relationships = i_notkeye
return = i_return.
l_notif = l_notif_hd_exp-notif_no.
CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
EXPORTING
number = l_notif.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDMETHOD.
检查
i\u return
中的消息-里面有什么吗?当你说它不起作用时,到底发生了什么?如何测试Bapi?你能调试Bapi吗?你收到错误信息了吗?正如用户vwegert之前提到的:i_return中是否有任何消息?当我调试程序并检查i_return变量时,它会显示一条消息,上面说:指示代码组代码,知道我将其作为“MAINDIAG”放弃。l_notif也是空的。您不应该向BAPI的表参数传递一些内容吗?TABLES参数还可以用于传递数据,而不仅仅是接收。据我所知,我在结构“l_notif_header”中传递了需要传递的内容