使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id

简介: 使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id

源代码如下:

REPORT zorg_list_partner_who_has_sale.
DATA: lt_link TYPE STANDARD TABLE OF crmm_but_lnk0011,
      lt_bp   TYPE STANDARD TABLE OF but000.
SELECT * INTO TABLE lt_link FROM crmm_but_lnk0011.
SELECT * INTO TABLE lt_bp FROM but000 FOR ALL ENTRIES IN lt_link WHERE
    partner_guid = lt_link-partner_guid.
LOOP AT lt_link ASSIGNING FIELD-SYMBOL(<link>).
  READ TABLE lt_bp ASSIGNING FIELD-SYMBOL(<bp>) WITH KEY partner_guid = <link>-partner_guid.
  CHECK sy-subrc = 0.
  WRITE: / 'Org:',  <link>-sales_org COLOR COL_NEGATIVE, ' area: ' , <link>-sales_area COLOR COL_GROUP,
  ' BP:', <bp>-name_first, ', ', <bp>-name_last, ' bp id: ' , <bp>-partner.
ENDLOOP.

这段代码是一个 SAP ABAP 报告程序,主要功能是从 SAP CRM 和 SAP ERP 中提取有销售数据的业务伙伴信息,并展示这些业务伙伴的组织、销售区域和姓名信息。接下来,我会逐步解释代码的各个部分以及它们的作用。

报告程序声明

REPORT zorg_list_partner_who_has_sale.

这行代码声明了一个自定义的报告程序 zorg_list_partner_who_has_sale。在 SAP 系统中,所有自定义对象的名称通常以 ZY 开头,这是一种约定俗成的做法,以区别于 SAP 标准提供的对象。

数据声明

DATA: lt_link TYPE STANDARD TABLE OF crmm_but_lnk0011,
      lt_bp   TYPE STANDARD TABLE OF but000.

这里声明了两个内表 lt_linklt_bplt_link 用于存储从 crmm_but_lnk0011 表中提取的记录,这个表通常用于存储 CRM 系统中业务伙伴和其他对象之间的链接信息。lt_bp 用于存储从 but000 表中提取的记录,but000 是一个包含业务伙伴基本信息的表。

数据提取

SELECT * INTO TABLE lt_link FROM crmm_but_lnk0011.
SELECT * INTO TABLE lt_bp FROM but000 FOR ALL ENTRIES IN lt_link WHERE
    partner_guid = lt_link-partner_guid.

这两个 SELECT 语句分别从 crmm_but_lnk0011but000 表中提取数据。第二个 SELECT 语句使用了 FOR ALL ENTRIES IN 语法,这意味着它会为 lt_link 表中的每条记录查找匹配的 but000 记录,条件是两者的 partner_guid 必须相等。

数据展示

LOOP AT lt_link ASSIGNING FIELD-SYMBOL(<link>).
  READ TABLE lt_bp ASSIGNING FIELD-SYMBOL(<bp>) WITH KEY partner_guid = <link>-partner_guid.
  CHECK sy-subrc = 0.
  WRITE: / 'Org:',  <link>-sales_org COLOR COL_NEGATIVE, ' area: ' , <link>-sales_area COLOR COL_GROUP,
  ' BP:', <bp>-name_first, ', ', <bp>-name_last, ' bp id: ' , <bp>-partner.
ENDLOOP.

这段代码通过一个循环遍历 lt_link 表中的每条记录。对于每条记录,它尝试在 lt_bp 表中找到具有相同 partner_guid 的业务伙伴记录。如果找到了,它会使用 WRITE 语句输出业务伙伴的销售组织 (sales_org)、销售区域 (sales_area) 和姓名信息 (name_first, name_last),以及业务伙伴 ID (partner)。

实际应用

想象一下,一个公司使用 SAP CRM 管理其客户关系,同时使用 SAP ERP 管理其核心业务流程。这段代码可以帮助该公司的销售或市场部门快速识别和报告那些在特定销售组织和区域内有销售活动的业务伙伴,从而支持销售策略的制定和市场分析。

相关文章
|
2月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
2月前
|
JSON 应用服务中间件 API
使用 ABAP 代码消费 SAP 系统的 OData 服务
使用 ABAP 代码消费 SAP 系统的 OData 服务
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
2月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
|
2月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
|
2月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
2月前
|
搜索推荐
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
|
2月前
|
Web App开发 前端开发 JavaScript
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天