使用 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 管理其核心业务流程。这段代码可以帮助该公司的销售或市场部门快速识别和报告那些在特定销售组织和区域内有销售活动的业务伙伴,从而支持销售策略的制定和市场分析。

相关文章
|
4天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
95 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
4天前
|
数据库
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
17 5
|
4天前
|
Web App开发 开发者 存储
介绍一个 webp 格式转 png 格式的软件:XNConvert
介绍一个 webp 格式转 png 格式的软件:XNConvert
30 6
介绍一个 webp 格式转 png 格式的软件:XNConvert
|
4天前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
18 0
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
4天前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
64 0
|
4天前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
22 0
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
|
4天前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
22 0
|
4天前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
27 0
|
4天前
|
JSON 应用服务中间件 API
使用 ABAP 代码消费 SAP 系统的 OData 服务
使用 ABAP 代码消费 SAP 系统的 OData 服务
13 1
|
4天前
|
开发工具 Web App开发 IDE
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
9 2
如何对 SAPGUI 里的 ABAP 代码语法检查功能进行自定义增强配套代码
http://www.vxiaotou.com