Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

使用 ABAP 代码删除指定 SAP CRM 系统里 Opportunity 订单的文本

Posted on 2023年5月18日 by hackdl
REPORT znote_delete_tool.

PARAMETERS: id   TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '2025',
            type TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPSM',
            lan  TYPE stxh-tdospras OBLIGATORY DEFAULT 'E',
            tdid TYPE stxh-tdid OBLIGATORY DEFAULT 'A002'.


TYPES: text_line(cl_crm_odata_oppt_constant=>gc_oppt_notes_textlength)  TYPE c.

DATA: lv_char32   TYPE char32, " CRMD_ORDERADM_H-guid,
      lv_id       LIKE id,
      lv_guid     TYPE crmd_orderadm_h-guid.

DATA: ls_return               TYPE STANDARD TABLE OF bapiret2.
DATA: lt_lines TYPE STANDARD TABLE OF tline,
      ls_line  LIKE LINE OF lt_lines.
DATA: lt_objects_to_save          TYPE crmt_object_guid_tab.
DATA: lt_objects_not_saved        TYPE crmt_object_guid_tab.
DATA: lt_saved_objects            TYPE crmt_return_objects.

lv_id = id.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = lv_id
  IMPORTING
    output = lv_id.

SELECT SINGLE guid FROM crmd_orderadm_h INTO lv_guid WHERE object_id = id AND process_type = type.
IF sy-subrc  0.
  WRITE: / 'No opportunity found' COLOR COL_GROUP.
  RETURN.
ENDIF.

DATA: lt_text         TYPE crmt_text_comt,
      ls_text         LIKE LINE OF lt_text,
      ls_input_fields TYPE crmt_input_field,
      lv_logical_key  TYPE crmt_logical_key,
      ls_field_names  TYPE crmt_input_field_names.
DATA: lt_input_field_names TYPE crmt_input_field_names_tab,
      ls_input_field_name  LIKE LINE OF lt_input_field_names.
DATA: lt_input_fields             TYPE crmt_input_field_tab.

ls_text-ref_handle  = '0000000000'.
ls_text-ref_guid = lv_guid.
ls_text-ref_kind = 'A'.
ls_text-text_object = cl_crm_odata_oppt_constant=>gc_oppt_notes_tdobject.
ls_text-mode = 'D'.
ls_text-tdid = tdid.
ls_text-tdspras = lan.
ls_line-tdformat = '*'.
APPEND ls_line TO ls_text-lines.

APPEND ls_text TO lt_text.

CLEAR ls_input_fields.
ls_input_fields-ref_guid = lv_guid.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'TEXTS'.
CONCATENATE ls_text-tdid ls_text-tdspras INTO lv_logical_key.
ls_input_fields-logical_key = lv_logical_key.     " use handle or guid ?
CLEAR ls_input_fields-field_names.
ls_input_field_name-fieldname = 'LINES'.
APPEND ls_input_field_name TO ls_input_fields-field_names.

INSERT ls_input_fields INTO TABLE lt_input_fields.

CALL FUNCTION 'CRM_ORDER_MAINTAIN'
  EXPORTING
    it_text           = lt_text
  CHANGING
    ct_input_fields   = lt_input_fields
  EXCEPTIONS
    error_occurred    = 1
    document_locked   = 2
    no_change_allowed = 3
    no_authority      = 4.
IF sy-subrc  0 .
  WRITE: / 'text modify failed: ' COLOR COL_NEGATIVE, sy-subrc COLOR COL_TOTAL.
  RETURN.
ENDIF.

APPEND lv_guid TO lt_objects_to_save.
CALL FUNCTION 'CRM_ORDER_SAVE'
  EXPORTING
    it_objects_to_save   = lt_objects_to_save
    iv_update_task_local = abap_true
  IMPORTING
    et_saved_objects     = lt_saved_objects
    et_objects_not_saved = lt_objects_not_saved
  EXCEPTIONS
    document_not_saved   = 1
    OTHERS               = 2.

IF sy-subrc EQ 0 AND lt_saved_objects IS NOT INITIAL.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = abap_true.
  WRITE: / 'text changed successfully' COLOR COL_NEGATIVE.
ELSE.
  WRITE: / 'text changed failed' COLOR COL_POSITIVE.
ENDIF.

BREAK-POINT.

这段 SAP ABAP 代码的作用是修改 CRM 订单的文本。该程序包含了以下功能:

  1. 定义输入参数 id、type、lan、tdid,分别表示 CRM 订单的对象 ID、处理类型、语言和文本 ID。
  2. 定义类型 text_line 表示文本行。
  3. 定义变量 lv_char32、lv_id、lv_guid 分别表示长度为 32 的字符、对象 ID 和对象 GUID。定义变量 ls_return 表示返回的消息。
  4. 定义表类型 lt_lines 表示文本行,定义变量 ls_line 为 lt_lines 的行类型。
  5. 定义表类型 lt_objects_to_save、lt_objects_not_saved 和 lt_saved_objects,分别表示待保存的对象、未保存的对象和保存成功的对象。
  6. 将输入的 id 转换为字符类型。
  7. 从 crmd_orderadm_h 表中查询指定的 CRM 订单,并获取其 GUID。
  8. 定义变量 lt_text 表示文本内容,变量 ls_text 表示文本行。
  9. 将文本行的属性赋值并添加到文本表中。
  10. 定义变量 ls_input_fields 表示输入字段,变量 lv_logical_key 表示逻辑键,变量 ls_field_names 表示字段名。将这些变量赋值后添加到输入字段表中。
  11. 调用函数模块 CRM_ORDER_MAINTAIN,向 CRM 订单中添加文本内容。
  12. 将修改后的对象 GUID 添加到待保存对象表 lt_objects_to_save 中。
  13. 调用函数模块 CRM_ORDER_SAVE,保存修改后的 CRM 订单。
  14. 判断保存是否成功,如果成功则调用函数模块 BAPI_TRANSACTION_COMMIT 提交事务。
  15. 设置断点以便调试。

总体来说,这段代码的作用是修改指定 CRM 订单的文本内容,并保存修改后的结果。

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net

Related posts:

  1. Cacti流量图设置方法
  2. 天津XP服务器托管虚拟主机:高效稳定的网站托管服务
  3. 塔式服务器托管成本分析
  4. 上服务器托管
  5. 赣州市服务器托管费用及网站模板选择

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 什么是 Angular Ivy Partial compilation mode
下一篇: angular-devkit 中 build-angular 包的作用

最新更新

  • 五月学习之keepalived 软件简介
  • Cibersort免疫浸润的在线分析及R语言代码实现
  • 阿里云的认证最有几个等级?考试费用是多少?
  • 京东APP百亿级商品与车关系数据检索实践 | 京东云技术团队
  • 【Hello Network】TCP协议 TCP协议 确认应答机制 (ACK) 超时重传机制 连接管理机制 流量控制 滑动窗口 拥塞控制 延时应答 捎带应答 面向字节流 粘包问题 TCP的异常情况 TCP小结 基于TCP的应用层协议

随机推荐

  • 荷兰高效抗投诉服务器租用推荐
  • 服务器托管 vs 虚拟主机租用:哪个更优?
  • ChatGPT 被大面积封号,到底发生什么了?
  • “高效稳定的云服务器托管服务̶
  • 服务器托管注意事项

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 服务器租用
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8