0

我有 3 个名为BAPI_SALESORDER_GETLIST,BAPI_SALESORDER_GETSTATUSBAPI_SALESORDER_GETDETAILBOS.

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

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

  3. 并且必须将相同的销售凭证编号输入到BAPI_SALESORDER_GETDETAILBOS要检索某些特定数据的第三个 BAPI。

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

例如:

/sap/opu/odata/sap/ZOPENSALESORDER_SRV/openSalesOrderSet?$filter=Customerno eq '1'

如果有人可以对此提供帮助,将不胜感激。

4

1 回答 1

0

首先,我想告诉你们,我有三个 bapis,我从中获取了我的数据。1)BAPI_SALESORDER_GETLIST 2)BAPI_SALESORDER_GETSTATUS 和 3)BAPI_SALESORDER_GETDETAILBOS。

  1. 对于第一个 Bapi,我将输入 Customer Number(KUNNR) 和 Sales Organization(VKORG) ,然后我将获得销售文件编号作为输出。
    1. 这个销售单据号会交给下一个bapi BAPI_SALESORDER_GETSTATUS 来获取其他相关数据。
    2. 并且同样的销售单据号也会给第三个bapi BAPI_SALESORDER_GETDETAILBOS。

我先告诉你步骤

  • 在 Import 参数中指定输入参数。在我的场景中,我有 kunnr 和 vkorg。点击这里查看图片1

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

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

    在此处输入代码

    数据:“lt_bapiorders bapiorders 类型表,lt_statusinfo bapisdstat 类型表,lt_orderitem bapisditbos 类型表,lt_orderscheduleline bapisdhedu 类型表。

    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.
    

然后执行它。

于 2016-09-19T05:52:51.133 回答