SAP ABAP-BOPF基础训练-01简介与架构

1. 介绍-Introduction

① BOPF是什么
BOPF(the Business Object Processing Framework):业务对象处理框架
提供了一种增量和模块化的方法,以符合企业面向服务体系结构(eSOA)的方式实现业务对象;
部分平台基础层,软件组件SAP_AP_FND;

  • 适用于应用平台和SAP Business ByDesign
  • 可用于mySAP商务套件

② 使用BOPF的优点
快速原型:您可以快速设置业务对象的初始运行原型,其中已经启用了最基本的服务,例如创建、检索、更新、删除、保存和查询。
实现的重用:使用标准化接口和清晰的关注点分离,在小的可重用部分中清晰地构建业务逻辑。
模型驱动的业务对象实现:通过设计实现通用编程模型。
高度可定制:支持每个级别的高级增强和配置选项,例如定义业务对象特有的特定业务逻辑和性能优化属性。
减少实施工作:BOPF 控制应用程序业务逻辑以及缓冲区和持久层的数据检索 - 您不必自己编写它。

③:哪里会使用到BOPF?

BOPF 用于在应用程序平台和 SAP Business ByDesign 中实现超过 55% 的业务对象;
BOPF 也用于 Business Suite。
 

2. 模型驱动的开发-Model-Driven Development

2.1 模型驱动方法-Model-driven Approach



2.2 面向企业服务的体系结构-Enterprise Services Oriented Architecture



2.3 从ESF到BOPF的模型驱动开发-Model-driven Development from ESF to BOPF


BOPF内部业务对象模型-BOPF internal Business Object Model
ESR(Enterprise Services Repository)模型中已知的所有方面也可以在 BOPF 模型中维护,也可以从 ESR 导入:
· Nodes-节点
· Node Attributes-节点属性
· Associations-关联
· Actions-操作
· Business Object Attributes-业务对象属性
· Data Types-数据类型

· etc 等等。
BOPF 模型提供了业务对象的更细粒度建模:
  Attribute Mapping-属性映射
  Persistency-持久性
  Definition of Business Logic-业务逻辑的定义

  etc.


2.4 BOPF元模型-BOPF Meta Model


BOPF-Metamodel:包含决定、验证、行动和其他必要的模型元素对业务对象进行详细建模。
BOPF-BO-Model:使用bopf元模型的组件来描述业务对象的结构和行为;在设计时创建,例如“客户发票”。
BOPF-BO-Instances:bopf - bo模型的实例;在运行时创建,例如:“客户发票”编号231;“客户发票”编号9439。
BOPF元模型由以下元素组成:
Node-节点

  • Attribute Mapping-属性映射

        - 代理结构与内部数据模型的映射关系
        - 内部数据模型与持久化模型的映射关系

  • Action-行动或操作

        - 更改业务对象实例
        - 由服务消费者显式触发

  • Determination-确定

        - 更改业务对象实例(副作用)
        - 是否由于对象实例的变

  • Validation-验证

        - 不执行业务对象实例的任何更改
        - 一致性验证:检查业务对象实例是否一致
        - 行动验证:检查某个动作是否可以执行

  • Association-关联

- 链接不同或相同节点的两个节点实例

  • Value Sets-值集

        - 标识符值集
        - 代码值集

  • Query-查询

        - 获取数据

  • Alternative Keys-替代健(含义与主键类似)

        - 节点实例的唯一标识

  • Status Management Entities-状态管理实体

        - 状态模式
        - 状态衍生器
        - 状态变量

3. BOPF架构-BOPF Architecture

4. 开发规范-BOPF Development Paradigms

  • 仅通过定义的API访问业务对象(CORE服务);
  • 明确区分更改和检查业务逻辑;

        - 不能将更改业务对象的方法与检查业务对象一致性的方法混合使用

  • 明确业务逻辑和数据缓冲区之间的分离

        - 业务逻辑应该构建在业务对象和缓冲区之上,以独立于数据缓冲的方式和数据缓冲的位置
        - 不应该在缓冲区中实现任何业务逻辑

  • 明确数据缓冲区和持久性之间的分离

        - 可以方便地交换缓冲区算法(例如,为了获得性能)
        - 可以方便地交换持久性或数据持久化的方式

5. 信息来源-Sources of Information

  • BOPF Wiki Space (central starting point for information about BOPF)

    https://wiki.wdf.sap.corp/display/BOPF/Home

  • BOPF Development Guideline

 https://wiki.wdf.sap.corp/download/attachments/223184988/BOPF_Development_Guideline.pdf

  • BOPF Performance Guideline

   https://wiki.wdf.sap.corp/display/BOPF/BOPF+Performance+Guideline

  • BOPF ABAP Unit Development

    https://wiki.wdf.sap.corp/display/BOPF/BOPF+ABAP+Unit+Framework

  • BOPF Online Documentation

   https://wiki.wdf.sap.corp/download/attachments/223184988/BOPF+Help+Documentation.pdf

  • BOPF Training for Development Support

    https://wiki.wdf.sap.corp/display/BOPF/BOPF+Training

  • BOPF Newsgroup

  news://news/sap.technology.bopf

6. 技术信息-Technical Information on the BOPF

  • BOPF是平台基础层的一部分,软件组件SAP_AP_FND

        - 适用于Application Platform和SAP Business ByDesign
        - 可用于mySAP商务套件

  • BOPF开发系统为AFH,用户端100

        - 传输到连接的System Landscape

  • BOPF元模型连接到全局TADIR(资源库对象目录)

        - 分配到开发包,可锁定和可移动
        - 分配给一个负责人
        - 业务对象模型的逻辑传输对象BOPF
        - 用于业务对象模型扩展的逻辑传输对象BOPX

  • BOPF应用程序组件层次结构(用于css -消息)

        - AP-RC-BOF Business Object Processing Framework 业务对象处理框架
        - AP-RC-BOF-CNF Business Object Processing Framework – Configuration
        业务对象处理框架-配置
        - AP-RC-BOF-RNT Business Object Processing Framework – Runtime
        业务对象处理框架-运行时
        - AP-RC-BOF-TST Business Object Processing Framework – Test
        业务对象处理框架-测试

7. 建模环境

7.1 BOPF建模工具-BOPF Modeling Tool


BOPF建模工具(事务码: /BOPF/CONF_UI)
- SAPGUI-based
- 业务对象模型的版本控制
- 集成到业务对象测试工具/业务对象测试外壳
- 具有分类业务对象的业务对象浏览器
 

7.2 业务对象详细信息浏览器-Business Object Detail Browser

7.3 特性

① 特性:扩展检查-Extended Check

扩展检查:至少在传输之前,应执行扩展检查以确保配置的一致性

② 特性:检查和纠正-Check & Correct

  • “扩展检查”可以报告运行“检查和纠正”功能的必要性。

        - 修正不一致的配置设置
        - 自动导入新的兼容配置默认值(关于不兼容的配置更改,请由您当地的BOPF专家通知)
        - 执行之后会报告一个变更列表
③ 特性:BOPF库-BOPF Library

包含易于重用的已实现实体
BOPF社区可以贡献和请求新的库类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UI设计师必备软件:2024年趋势解读!

设计的两个关键方面是用户界面 (UI) 和用户体验 (UX),UI设计侧重于人们如何与产品互动的审美元素,UX设计更侧重于人们如何使用产品,无论你的重点是什么 UX 还是 UI,或者你是否试图将两者结合起来,你需要高质量的UI设计…

【C++】share_ptr详解

一、share_ptr 的简单使用 1.1、基本用法 从较浅的层面看,智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,这使得智能指针实质是一个对象,行为表现的却像一个指针。 智能指针的作用是防…

【MySQL数据库】数据类型和简单的增删改查

目录 数据库 MySQL的常用数据类型 1.数值类型: 2.字符串类型 3.日期类型 MySQL简单的增删改查 1.插入数据: 2.查询数据: 3.修改语句: 4.删除语句: 数据库 平时我们使用的操作系统都把数据存储在文件中&#…

深入了解服务器硬件:从基础知识到实际应用

在当今数字化的社会中,服务器扮演着至关重要的角色,它们是支撑互联网、云计算、大数据等技术发展的基石。而理解服务器硬件的基础知识对于从事IT领域的人员来说至关重要。本文将从服务器硬件的基础知识出发,介绍服务器硬件的组成、作用及其在…

Python算法100例-4.3 多项式之和

完整源代码项目地址,关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序 1.问题描述 计算下列多项式的值: 2.问题分析 方法一:把上面多项式中的每一个分项标上记号&#xff0c…

浅谈C++引用的使用以及底层原理

1、引用概念 引用不是新定义一个变量,而 是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 类型& 引用变量名(对象名) 引用实体; 注意:引用类型必须和引用实体…

华清远见作业第五十三天——ARM(第七天)

代码 key_inc.h #ifndef __KEY_INC_H__ #define __KEY_INC_H__ #include "stm32mp1xx_gic.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h"void key1_it_config();void key2_it_config(…

【polarctf的部分题解】

【web】phar —》私有属性赋值 当时遇到不知道privated该怎样赋值才可以&#xff0c;链子挺简单的&#xff0c;但是语法不熟悉 <?php include funs.php; highlight_file(__FILE__); if (isset($_GET[file])) {if (myWaf($_GET[file])) {include($_GET[file]);} else {unse…

案例分析:汽车零配件行业CRM解决方案,成功案例揭秘!

近年来&#xff0c;国家大力推动新能源汽车行业发展&#xff0c;在国内汽车工业实现“弯道超车”的同时&#xff0c;新能源汽车出口海外&#xff0c;新市场有望为自主新能源方向贡献增量。 汽车行业的快速发展&#xff0c;势必会带动汽车零配件行业走向增长。从政策方面看&…

牛客网BC-33 统计成绩(数组排序思想)

题目如下 --------------------------------------------------------------------------------------------------------------------------------- 思路&#xff1a;以数组形式输入&#xff0c;并将数组顺序&#xff08;或者逆序&#xff09;排序&#xff0c;最后输出最大值最…

Redis入门到实战-第十二弹

Redis实战热身Bitfields篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代理…

并发编程之Callable、Runnable、Future与FutureTask

目录 前言一、Callable与Runnable1.1 Callable1.2 Runnable1.3 二者对比 二、Future与FutureTask2.1 Future2.2 FutureTask2.3 二者对比 三、综合使用3.1 Callable执行Future获取结果3.2 Callable执行任务FutureTask获取执行结果 四、应用场景 前言 在 Java 中&#xff0c;Cal…

小明SEO:网站域名被投诉怎么恢复呢?分享

小明SEO对他的网站进行了分析&#xff0c;发现网站上存在大量非法内容&#xff0c;比如股票、金融、外汇等&#xff0c;甚至还有虚假宣传来吸引其他网站的流量。 随后他检查了该网站的tdk设置&#xff0c;尤其是网站标题&#xff0c;发现也存在违规行为。 这就是网站域名被投诉…

React Native 应用打包

引言 在将React Native应用上架至App Store时&#xff0c;除了通常的上架流程外&#xff0c;还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

Python 构建项目工具库之pybuilder使用详解

概要 在Python项目开发中,良好的构建和自动化流程是非常重要的。PyBuilder是一个用于构建Python项目的工具,它提供了简单易用的方式来定义和管理项目的构建过程,包括依赖管理、测试、代码质量检查等。本文将深入探讨PyBuilder库的使用方法、功能特性以及如何利用它来构建优…

SQL映射文件

一、SQL映射的xml文件 1.1 mapper元素 二、select 三、别名与Java映射 四、resultMap 啊

一道很有意思的题目(考初始化)

这题很有意思&#xff0c;需要你对初始化够了解才能解出来 &#xff0c;现在我们来看一下吧。 这题通过分析得出考的是初始化。关于初始化有以下知识点 &#xff08;取自继承与多态&#xff08;继承部分&#xff09;这文章中&#xff09; 所以根据上方那段知识点可知&#xf…

Linux/Backdoor

Backdoor Enumeration nmap 第一次扫描发现系统对外开放了22&#xff0c;80和1337端口&#xff0c;端口详细信息如下 22端口对应的是ssh服务&#xff0c;80端口使用Apache&#xff0c;title上写着backdoor&#xff0c;而且可以看出使用了wordpress&#xff0c;1337端口暂时还…

HyperWorks2023 下载地址及安装教程

HyperWorks是一套由Altair Engineering开发的集成化仿真平台。这个平台涵盖了许多不同领域的仿真和优化应用&#xff0c;包括结构分析、流体力学、多体动力学、优化、电磁场分析等。 HyperWorks提供了一系列强大的工具和模块&#xff0c;用于进行复杂的工程仿真和优化任务。它…

数据结构 之 队列习题 力扣oj(附加思路版)

优先级队列 #include<queue> --队列 和 优先级队列的头文件 优先级队列&#xff1a; 堆结构 最大堆 和 最小堆 相关函数&#xff1a; front() 获取第一个元素 back() 获取最后一个元素 push() 放入元素 pop() 弹出第一个元素 size() 计算队列中元素…