前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用代码查找包含在SAP CRM appointment里的business partner

用代码查找包含在SAP CRM appointment里的business partner

作者头像
Jerry Wang
发布2020-01-21 11:30:44
3070
发布2020-01-21 11:30:44
举报
REPORT ZSEARCH_BP_IN_APPOINTMENT.


    DATA: lv_use_es             TYPE char1.
    DATA: lv_cursor             TYPE cursor.
    DATA: lv_orderby            TYPE string.

    DATA: lv_select_statement             TYPE string.
    DATA: lt_select_statement   TYPE crmt_bp_odata_string_t.
    DATA: lt_from_statement     TYPE crmt_bp_odata_string_t.
    DATA: lt_where_statement    TYPE crmt_bp_odata_string_t.

    FIELD-SYMBOLS: <lf_sel_opt>       TYPE /iwbep/s_cod_select_option.
    FIELD-SYMBOLS: <lt_result_data>   TYPE STANDARD TABLE.
    FIELD-SYMBOLS: <lt_package_data>  TYPE STANDARD TABLE.

    DATA: lr_result_data       TYPE REF TO data.
    DATA: lr_package_data      TYPE REF TO data.


    DATA: lv_more_records_on_db           TYPE abap_bool.

    DATA: lt_result TYPE crmt_bp_odata_account_sel_t,
          lr_result TYPE REF TO crmt_bp_odata_account_sel_t.
    DATA: lv_package_size TYPE i VALUE 80.
    DATA: it_authgroup_range TYPE bup_augr_range_t,
          ls_authgroup_range LIKE LINE OF it_authgroup_range.

    GET REFERENCE OF lt_result INTO lr_result.

    ASSIGN lr_result->* TO <lt_package_data>.

    ls_authgroup_range-sign = 'I'.
    ls_authgroup_range-option = 'EQ'.
    APPEND ls_authgroup_range TO it_authgroup_range.

    ls_authgroup_range-low = 'RTRD'.
    APPEND ls_authgroup_range TO it_authgroup_range.

    lv_select_statement = `account~partner      AS account_id, account~partner_guid AS account_guid, `
    && `account~name_org1    AS name1, account~mc_name1     AS mc_name1, account~name_org2, account~name_last,`
    && `account~name_first, account~name_grp1, account~name_grp2, `
    && `account~title, account~title_aca1, account~birthdt      AS birthdate,`
    && ` type AS category, account~xpcpt, account~persnumber`.

    APPEND 'but000 AS account' TO lt_from_statement.

    APPEND 'account~xdele = @space' TO lt_where_statement.

    IF 0 = 1.
      APPEND 'AND account~augrp IN @it_authgroup_range' TO lt_where_statement.
    ENDIF.

    lv_orderby = 'mc_name1 ASCENDING'.

    OPEN CURSOR WITH HOLD @lv_cursor FOR

     SELECT DISTINCT (lv_select_statement)
            FROM (lt_from_statement)
            WHERE (lt_where_statement)
            ORDER BY (lv_orderby).


    DO.
      FETCH NEXT CURSOR @lv_cursor
            INTO CORRESPONDING FIELDS OF TABLE @<lt_package_data>
            PACKAGE SIZE @lv_package_size.

      IF sy-subrc = 0.
        IF lines( <lt_package_data> ) >=   80.
          lv_more_records_on_db       =    abap_true.
        ENDIF.

      EXIT.
      ENDIF.
    ENDDO.
    CLOSE CURSOR @lv_cursor.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档