我尝试在 BOL Browser 里应用 query 来执行搜寻,并且心愿仅返回属于我在 INSTID 中指定的给定产品的附件实例。
令我诧异的是,查问后果不仅包含给定产品的附件,还返回大量属于我创立的其余产品的附件。
通过调试,我发现第 61 行的参数 CATID、TYPEID 和 INSTID 没有传入主搜寻功能模块,这意味着搜寻时基本不思考它们。
相同,依据每个附件实例的属性值“CRM_SEARCH_VISIBILITY”,搜寻后果在 post processing
中通过三个参数进行过滤:
在附件属性 UI 中,咱们能够为“在搜寻中可见”调配三种值:
即 No Restriction,in Business Objects of the same Object Type Only 和 Only in the same Business Object:
这个参数在 Document model workbench 里被定义成 instance attribute:
依据上面代码中的过滤逻辑,该属性在 CMAdvDocumentFinder 实现中的工作形式如下:
无限度:具备该属性的附件将不会被过滤。
1 – 仅在雷同对象类型的业务对象中:主机业务对象类型不等于搜寻参数 TYPEID 的附件将被过滤掉。
2- 仅在同一业务对象中:主机业务对象实例不等于搜寻参数 TYPEID 和 INSTID 指定的实例的附件将被过滤掉。
上图代码里提到了 SAP CRM 零碎的 BOR 概念。
在 SAP 零碎中,BOR (Business Object Repository) 类型是 ABAP 开发中的一个外围概念,尤其在 SAP CRM (Customer Relationship Management) 零碎中扮演着要害角色。BOR 类型定义了业务对象模型,这些模型是 SAP 零碎中进行业务数据处理和交互的根底。通过应用 BOR,开发人员能够在 ABAP 程序中不便地援用和操作这些业务对象。
BOR 对象提供了一种面向对象的形式来示意和解决企业中的各种业务实体,如客户、订单、发票等。每个 BOR 对象都具备一系列的属性、办法和事件,这些个性使得它们不仅能够存储数据,还能够执行特定的业务逻辑。
BOR 类型的用处
BOR 类型的主要用途包含但不限于:
- 业务流程的建模和自动化 :BOR 类型使得简单的业务流程可能在零碎中得以建模和自动化执行。通过定义业务对象及其相互作用,企业能够在 SAP CRM 零碎中实现高度定制化的业务流程治理。
- 数据封装和形象 :通过将业务数据和操作逻辑封装在对象中,BOR 类型提供了一种高度形象的形式来解决业务实体。这种封装机制简化了数据管理和操作,进步了代码的可维护性和可重用性。
- 集成和扩展性 :BOR 类型反对 SAP CRM 零碎与其余零碎的集成,例如与 ERP (Enterprise Resource Planning) 或 SCM (Supply Chain Management) 零碎的集成。通过 BOR 对象,零碎间的数据交换和业务流程集成变得更加容易和灵便。
- 工作流和主动工作解决 :BOR 类型在 SAP 的工作流中扮演着重要角色。它们能够触发工作流事件,自动化工作解决和决策流程,从而进步业务流程的效率和响应速度。
示例阐明
假如咱们在 SAP CRM 零碎中解决客户服务申请的场景。在这个场景中,ServiceRequest
是一个 BOR 类型,它代表了一个服务申请业务对象。该对象可能包含如下属性:申请 ID、客户 ID、服务类型、申请状态等。同时,它还定义了一些办法,例如 Create
(创立申请)、Update
(更新申请)、Close
(敞开申请)等,以及一些事件,如 RequestCreated
、RequestClosed
。
在解决服务申请的业务流程中,ServiceRequest
对象首先通过 Create
办法被创立。该办法可能会触发 RequestCreated
事件,该事件能够进一步触发一个工作流,例如告诉服务团队或调配服务工作。在服务申请的生命周期中,能够应用 Update
办法更新申请的状态或详情。最终,当申请被解决实现后,应用 Close
办法敞开服务申请,并可能触发 RequestClosed
事件,该事件又能够触发工作流进行后续解决,如发送服务满意度考察等。
通过这个例子,咱们能够看到 BOR 类型如何在 SAP CRM 零碎中为业务流程提供反对和自动化。BOR 对象 ServiceRequest
不仅封装了服务申请的数据,还定义了解决申请所需的操作逻辑和事件驱动的工作流,极大地提高了业务流程的效率和自动化程度。