如何使用代码修改 attachment 实例的 CHANGED_BY 字段

简介: 如何使用代码修改 attachment 实例的 CHANGED_BY 字段

文章标题也是笔者实际工作中,遇到的客户需求之一。

在笔者参与的 CRM 社交集成项目中,我们从 Twitter 网站中提取一条推文的图片,并将其作为附件存储在 CRM 系统中。

但是,我们发现附件的 Create by 属性始终使用 sy-uname 进行硬编码,即使我们在调用 cl_crm_documents=>create_with_table 时显式指定 created_by 属性

然而我们的要求是:它应该由发布推文的 Twitter 网站中的屏幕名称填写。

经过一些调试,我发现 created_by 属性只能在创建附件后才能修改。

首先,我查询给定推文的所有附件:

DATA(ls) = VALUE SIBFLPORB( INSTID = iv_guid typeid = iv_bor_type catid = 'BO' ). 
CALL METHOD CL_CRM_DOCUMENTS=>get_info
  EXPORTING
     BUSINESS_OBJECT = ls
  IMPORTING
     LOIOS = LOIOS
     phios = phios.

在SAP CRM系统中,CL_CRM_DOCUMENTS=>get_info的作用是获取CRM文档相关信息。这个方法是在ABAP类CL_CRM_DOCUMENTS中定义的,它允许开发人员通过调用该方法来检索与CRM文档相关的各种信息,包括文档的内容、属性、关联关系等。

首先,我们需要了解一下CRM文档在SAP CRM系统中的概念。CRM文档是指与客户关系管理相关的各种文件或记录,比如合同、报价单、销售订单等。这些文档在CRM系统中起着至关重要的作用,记录了与客户交互的关键信息,帮助企业管理客户关系、执行销售流程以及提供客户服务。

CL_CRM_DOCUMENTS=>get_info方法的主要作用是根据给定的文档ID,从CRM数据库中检索出与该文档相关的详细信息。这些信息可能包括文档的内容、创建日期、最后修改日期、文档类型、关联的业务对象等等。通过这些信息,开发人员可以在程序中对文档进行进一步的处理和分析,从而实现各种业务逻辑和功能需求。

然后我使用 Function Module SDOK_PHIO_PROPERTIES_SET 来修改该属性:

DATA(ls_property) = VALUE SDOKPROPTY( name = iv_attr_name value = iv_new_value ).
APPEND ls_property TO lt_properties.
LOOP AT phios ASSIGNING FIELD-SYMBOL(<ios>).
  ls_header-class = <ios>-class.
  ls_header-objid = <ios>-objid.
  CALL FUNCTION 'SDOK_PHIO_PROPERTIES_SET'
    EXPORTING
      object_id = ls_header
    TABLES
      properties = lt_properties
    EXCEPTIONS
      NOT_EXISTING = 1
      BAD_PROPERTIES = 2
      NOT_AUTHORIZED = 3
      EXCEPTION_IN_EXIT = 4.
ENDLOOP.

SDOK_PHIO_PROPERTIES_SET 功能模块是 SAP CRM 系统中的一个重要组件,用于设置文档对象的属性。在 SAP CRM 中,文档对象是指与业务相关的文件或文档,例如销售订单、报价单、合同等。这些文档在业务流程中起着关键作用,因此对其属性的管理和设置至关重要。SDOK_PHIO_PROPERTIES_SET 功能模块提供了一种有效的方式来设置文档对象的属性,以满足不同业务需求。

通过以上参数,SDOK_PHIO_PROPERTIES_SET 功能模块可以根据输入的文档对象 GUID 和属性表,将指定的属性设置到对应的文档对象中,并返回执行结果信息。

下面是测试代码:

测试成功:

不要忘记激活内部模式,否则代码将执行失败,并出现一条错误消息,表明 created_by 字段是只读的。

相关文章
|
5月前
|
编译器
【【C++11特性篇】【强制/禁止 】生成默认函数的关键字default&delete(代码演示)
【【C++11特性篇】【强制/禁止 】生成默认函数的关键字default&delete(代码演示)
|
8月前
|
Web App开发 API 开发者
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
63 0
SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段
SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段
SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段
|
XML 前端开发 数据格式
SAP Fiori Elements 在本地测试模式下如何修改 List Report 里字段标签和图标
通过 Jerry 这篇文章 在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用 介绍的步骤,创建一个简单的 SAP Fiori Elements 应用。
113 0
SAP Fiori Elements 在本地测试模式下如何修改 List Report 里字段标签和图标
ABAP 数据结构激活时的错误消息 - combination reference table field XXX does not exist
ABAP 数据结构激活时的错误消息 - combination reference table field XXX does not exist
ABAP 数据结构激活时的错误消息 - combination reference table field XXX does not exist
|
Java Android开发
如何实现SAP GUI的自定义语法检查(Syntax check)
如何实现SAP GUI的自定义语法检查(Syntax check)
214 0
如何实现SAP GUI的自定义语法检查(Syntax check)
打印product所有attachment 具体信息的小工具
打印product所有attachment 具体信息的小工具
打印product所有attachment 具体信息的小工具
|
NoSQL
随笔:sending data状态包含了使用内部临时表
这是一个我的随笔记录,这些过程非常有用,也非常明显。 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 语句如下: mysql> desc select id,count(*) from t110 group by id; +----+-------------+-------+...
867 0