专栏首页Jerry的SAP技术分享用代码查找包含在SAP CRM appointment里的business partner

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

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的原创文章,请关注公众号"汪子熙":

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jerry参加CRM中国香港赛马会POC写的一段代码

    Jerry Wang
  • Jerry做SAP CRM开发时写的一个工具类 ZCL_JERRY_TOOL

    Jerry Wang
  • Jerry自己写的ABAP处理中文字符的工具类

    Jerry Wang
  • 机器学习集成算法——袋装法和随机森林

    随机森林是最流行、最强大的机器学习算法之一。它是机器学习集成算法中的一种,可称之为自助集成(Bootstrap Aggregation)或袋装法(Bagging...

    人工智能资讯小编
  • 「 从0到1学习微服务SpringCloud 」11 补充篇 RabbitMq实现延迟消费和延迟重试

    延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。

    KEN DO EVERTHING
  • 使用libev监视文件夹下文件(夹)属性变动的方案和实现

    在《libev源码解析》系列中,我们分析了libev的基本原理。本文我们介绍一套使用libev封装的文件(夹)变动监视方案和实现。(转载请指明出于breakso...

    方亮
  • 一维序列卷积之Python实现

    在数字信号处理中经常会用到卷积计算,例如各种滤波器的设计。两个序列的卷积计算大体需要3步: 1)翻转其中一个序列; 2)移动翻转后的序列,并计算每次移动后两个序...

    Python小屋屋主
  • Scala教程之:PartialFunction

    Scala中有一个很有用的traits叫PartialFunction,我看了下别人的翻译叫做偏函数,但是我觉得部分函数更加确切。

    程序那些事
  • 10月播放器avsdk升级公告

    iOS&Android:HLS下载支持秘钥外部校验 iOS&Android:TXVodPlayer增加设置起始时间 iOS&Android:解决加速播放偶现的音...

    腾讯云视频
  • 《Spring实战》摘录 - 26

    Q: #17.2.4-1 | AlertServiceImpl是一个处理JMS消息的POJO,但是不依赖于JMS

    用户1335799

扫码关注云+社区

领取腾讯云代金券