【问题标题】:BAPI/FM to search prod orders confirmations by workcenter and date?BAPI/FM 按工作中心和日期搜索产品订单确认?
【发布时间】:2020-10-15 11:14:30
【问题描述】:

我正在尝试找出我可以使用哪个 BAPI/FM 来搜索根据日期的搜索条件(如果可能,加上时间)和工作中心确认的确认金额...

我会使用包含这些信息的BAPI_PRODORDCONF_GETDETAIL,但根据BAPI指南,我只能加载确认号+确认计数器的数据。

因此选项是运行BAPI_PRODORDCONF_GETLIST(但我只能输入生产订单范围或确认号范围),然后过滤包括我需要的工作中心和日期在内的内容,然后从中提取确认号+计数器并运行它通过BAPI_PRODORDCONF_GETDETAIL

  • 但是这个获取所有内容列表而不在服务器端过滤数据的过程非常耗时,并且在 SAP Gui 之外我有超时错误...因此我需要任何可以输入工作中心的 BAPI/FM 确认和日期,并且已经过滤了数据...

有什么想法吗?

【问题讨论】:

    标签: saprfc bapi function-module s4hana sap-r3


    【解决方案1】:

    据我所知没有这样的标准FM,所以你唯一的选择就是定制开发。

    如果此信息以方便的形式公开,我建议您 MCPK 交易,但我看到您的要求是从外部接收此信息,这不适合您。

    确认位于AFRU 表中,工作中心位于CRHD 中,因此要按工作中心查找已确认的数量,您应该加入这些表,或使用链接此信息的视图u_15673

    TYPES: BEGIN OF prod_orders,
                rueck TYPE afru-rueck, "confirmation number
                rmzhl TYPE afru-rmzhl," confirmation counter
                gmnga TYPE afru-gmnga, " quantity
                arbid TYPE crhd-arbpl, " workcenter
              END OF prod_orders.
    
    DATA: orders TYPE TABLE OF prod_orders.
    
    SELECT *
      FROM u_15673
      INTO CORRESPONDING FIELDS OF TABLE orders
    WHERE isdd >= '20180101' AND isdz <= '163000'.
    

    要从外部拉取它,您必须创建启用 RFC 的 FM 或使用 RFC_READ_TABLE 并使用参数 here is the sample 获取此视图。

    另一种方法是使用RFC_ABAP_INSTALL_AND_RUN。您必须创建一个使用 WRITE 将结果作为标准列表输出到屏幕的 ABAP 程序。

    将此程序的行发送到RFC_ABAP_INSTALL_AND_RUNPROGRAM参数,代码将在远程系统上执行,此FM将屏幕结果作为表WRITES的行返回。

    基于 MCPK tcode 的可能样本发送至RFC_ABAP_INSTALL_AND_RUN

    CLEAR lwa_selection.
    lwa_selection-selname = 'SL_SPTAG'.
    lwa_selection-sign = 'I'.
    lwa_selection-option = 'BT'.
    lwa_selection-low = '20180101'.
    lwa_selection-high = '20201231'.
    APPEND lwa_selection TO li_selection.
    CLEAR lwa_selection.
    lwa_selection-selname = 'SL_ARBPL'.
    lwa_selection-sign = 'I'.
    lwa_selection-option = 'EQ'.
    lwa_selection-low = '10400001'.
    APPEND lwa_selection TO li_selection.
    
    
    SUBMIT rmcf0200 WITH SELECTION-TABLE li_selection
            with par_stat = abap_true
        EXPORTING LIST TO MEMORY
        AND RETURN.
    
    DATA: xlist TYPE TABLE OF abaplist.
    DATA: xtext TYPE TABLE OF char200.
    
    CALL FUNCTION 'LIST_FROM_MEMORY'
      TABLES
        listobject = xlist.
    
    CALL FUNCTION 'LIST_TO_TXT'
      EXPORTING
        list_index = -1
      TABLES
        listtxt    = xtext
        listobject = xlist.
    
    IF sy-subrc = 0.
      LOOP AT xtext ASSIGNING FIELD-SYMBOL(<text>).
        WRITE <xtext>.
      ENDLOOP.
    ENDIF.
    

    但是,这种方法并不灵活,因为MCPK 标准布局与您想要的有点不同,并且不容易以编程方式进行调整。

    因此,我建议坚持使用RFC_READ_TABLE 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      相关资源
      最近更新 更多