在ABAP OData服务中创建方法

在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_

我目前正在为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_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”中传递了需要传递的内容