如何在se37中调用bapi,并将bapi的输出给另一个bapi



我有三个bapi命名为BAPI_SALESORDER_GETLIST, BAPI_SALESORDER_GETSTATUSBAPI_SALESORDER_GETDETAILBOS

  1. 在第一个bapi中,我必须输入客户编号和销售组织作为输入,并检索销售文档编号(SD_DOC)和from_Date。

  2. 从第一个BAPI检索到的销售文档号(SD_Doc)必须作为输入给名为BAPI_SALESORDER_GETSTATUS的其他BAPI以检索一些数据。

  3. 和相同的销售文档号必须输入到第三个BAPI,即BAPI_SALESORDER_GETDETAILBOS,以检索一些特定的数据。

据我所知,我已经用bapi做了一些工作,到目前为止,在我创建的服务中,我只给了客户号码作为输入到SAP GATEWAY CLIENT中的URI

例如:

/sap/含油率/odata/sap/ZOPENSALESORDER_SRV/openSalesOrderSet吗?$filter=Customerno eq '1'

如果有人能帮助我,我将非常感激。

首先,我想告诉你们,我有三个应用程序,我需要我的数据:1)BAPI_SALESORDER_GETLIST 2)BAPI_SALESORDER_GETSTATUS和3)BAPI_SALESORDER_GETDETAILBOS。

  1. 对于第一个Bapi,我将输入客户编号(KUNNR)和销售组织(VKORG),然后我将获得销售文档编号作为输出。
  2. 将此销售文档号提供给下一个bapi BAPI_SALESORDER_GETSTATUS以获取其他相关数据。
  3. 同样的销售文档号也会给第三个bapi BAPI_SALESORDER_GETDETAILBOS.

我先告诉你步骤

  • 在"导入"参数中指定输入参数。在我的场景中,我有kunnr和vhong。点击这里查看image1

    • 然后内部表已经制作,因为我只打算使用标准的bapi。在表格部分写上你的名字,就可以了。点击这里查看图片

    • 然后在source部分开始你的编码:

    输入代码

    DATA: "lt_bapiorders TYPE表lt_statusinfo TYPE数据表lt_orderitem TYPE表lt_orderscheduletype表。

    FIELD-SYMBOLS: <lfs_order> TYPE bapiorders,
                   <lfs_statinfo> TYPE bapisdstat,
                   <lfs_orderitem> TYPE bapisditbos,
                   <lfs_orderscheduleline> TYPE bapisdhedu.
    "Fecth all the sales order for a customer
    CALL FUNCTION 'BAPI_SALESORDER_GETLIST'
      EXPORTING
        customer_number             = kunnr
        sales_organization          = vkorg
      TABLES
        sales_orders                = order.
    "Get status for the sales order
    LOOP AT order ASSIGNING <lfs_order> .
      IF <lfs_order> IS ASSIGNED.
      WRITE:/ <lfs_order>-sd_doc.
          "This function call is for getting the status of the
          "Sales document number derived from the BAPI_SALESORDER_GETLIST
            CALL FUNCTION 'BAPI_SALESORDER_GETSTATUS'
              EXPORTING
                salesdocument       = <lfs_order>-sd_doc
             TABLES
               statusinfo          = lt_statusinfo.
          APPEND LINES OF lt_statusinfo TO statusinfo_lt.
          "Read Processing and delivery Status
          READ TABLE lt_statusinfo ASSIGNING <lfs_statinfo> INDEX 1.
          IF sy-subrc EQ 0.
          WRITE: / 'Delivery Status', <lfs_statinfo>-dlv_stat_h,
                   'Required Date', <lfs_statinfo>-req_date_h,
                   'Delivery Number',<lfs_statinfo>-deliv_numb,
                   'Delivery Date',<lfs_statinfo>-deliv_date.
          ENDIF.
          CALL FUNCTION 'BAPI_SALESORDER_GETDETAILBOS'
            EXPORTING
              salesdocument            = <lfs_order>-sd_doc
           TABLES
             orderitems               = lt_orderitem
             orderschedulelines       = lt_orderscheduleline.
    APPEND LINES OF lt_orderitem to orderitem.
          "Read Processing and delivery Details
          READ TABLE lt_orderitem ASSIGNING <lfs_orderitem> INDEX 1.
          IF sy-subrc EQ 0.
          WRITE: / 'Material', <lfs_orderitem>-material,
                   'Plant', <lfs_orderitem>-plant,
                   'Short-text',<lfs_orderitem>-short_text,
                   'Req_qty',<lfs_orderitem>-req_qty,
                   'doc_number',<lfs_orderitem>-doc_number.
          ENDIF.
    APPEND LINES OF lt_orderscheduleline to orderscheduleline.
          "Read processing and delivery details -goods issue time
          READ TABLE orderscheduleline ASSIGNING <lfs_orderscheduleline> INDEX 1.
          IF sy-subrc EQ 0.
          WRITE: / 'Goods Issue Date', <lfs_orderscheduleline>-gi_date.
          ENDIF.
                    .
    
      ENDIF.
    ENDLOOP.
    

相关内容

  • 没有找到相关文章

最新更新