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社区可以贡献和请求新的库类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【笔记】深入理解JVM机制

🎥 个人主页:Dikz12📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 JVM 运⾏流程图 JVM 中内存区域划分 方法区 / 元数据区 堆 栈 程序计数器 本地方法栈 内存区域总结 JVM 中类加载过程 …

python网络爬虫实战教学——requests的使用(2)

文章目录 专栏导读1、POST请求2、响应3、Cookie设置 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、初级数据分析工程…

【c++】类和对象(二)this指针

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针 目录 1.this指针1.1this指针的引出1.2this指针的特性1.3思考题1.4C语言和C实现Stack的对…

Qt|多线程串口通信

前篇:Qt|串口通信之同步数据收一包发一包数据 文章目录 创建工程添加串口通信类添加线程类主函数运行结果需求:串口下方的一些耗时操作并不想阻塞主进程的推进; 环境:windows10+VS2017+Qt5.14.2; 写在最前: 串口不支持跨线程操作,需要写信号槽形式传递;选择COM口下发指…

Allegro之轻松绕等长

如大家所见,这个世界通信的速率越来越快,生活的节奏也在飞驰,如果工作还是慢条斯理,你将是下一个淘汰的人。 高速PCB设计避免不了的要绕等长,然而有时候一个单板需要绕等长的总线很多,一个一个的绕下去&…

独立游戏《星尘异变》UE5 C++程序开发日志3——UEC++特供的数据类型

本篇日志将介绍FString,FText、FName的用法和相互转换,以及容器TMap,TArray的增删查改 一、字符串相关数据类型:FString、FText、FName FString是最接近std::string的类型,字符串本身可以看做一个存储char型的动态数…

数据容器-dict以及总结-Python

师从黑马程序员 字典的定义 同样使用{},不过存储的元素是以个个的:键值对,如下语法: #定义字典 my_dict1{"王力宏":99,"周杰伦":88,"林俊杰":77} #定义空字典 my_dict2{} my_dict3dict() print(f"字典1…

HarborCDN技术分析

一、介绍 简要介绍 ​​Harbor​​ 是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker C…

直击GDC 2024 (二):网易智企首次揭秘篮球游戏AI智能体!

近几日,世界级游戏开发者盛会 GDC(Game Developers Conference)2024 正在美国举行。全球游戏行业的精英都汇聚于旧金山,共同探索前沿的游戏开发技术、洞察行业最新趋势,并互相交流对未来发展的深刻见解。 (…

校园跑腿小程序源码系统多校园版 跑腿达人入驻接单 带完整的安装代码包以及系统部署教程

在数字化时代的浪潮中,校园生活的便捷性和高效性成为了广大师生的共同追求。为了满足这一需求,罗峰给大家分享一款适用于多校园的跑腿小程序源码系统——校园跑腿小程序源码系统多校园版。该系统不仅提供了完整的安装代码包,还附带了详尽的系…

你以为的富贵包其实是脂肪瘤 整形外科医生为你科普脂肪瘤

脖子后面长的包都是富贵包吗?西安国际医学中心医院整形外科门诊主任冯登超曾接诊过一位七旬老人,他的颈部后方有一个直径约13厘米的巨大肿块,核磁共振检查提示右侧劲后皮下软组织内巨大囊性肿块。“他们以为是富贵包,实际上是脂肪…

C语言:给结构体取别名的4种方法

0 前言 在进行嵌入式开发的过程中,我们经常会见到typedef这个关键字,这个关键字的作用是给现有的类型取别名,在实际使用过程中往往是将一个复杂的类型名取一个简单的名字,便于我们的使用。就像我们给很熟的人取外号一样&#xff…

【大模型基础】什么是KV Cache?

哪里存在KV Cache? KV cache发生在多个token生成的步骤中,并且只发生在decoder中(例如,decoder-only模型,如 GPT,或在encoder-decoder模型,如T5的decoder部分),BERT这样…

详解Python面向对象编程(一)

类和对象 面向过程——怎么做? (1)把完成某一需求的所有步骤、从头到尾,逐步实现 (2)根据开发需求,将某些功能独立的代码块封装成一个又一个的函数 (3)最后完成的代码&a…

3.3 数据定义 数据库与系统概论

目录 3.3.1 模式的定义与删除 1. 定义模式 2. 删除模式 CASCADE(级联) RESTRICT(限制) 3.3.2 基本表的定义、删除与修改 表的定义 2.数据类型 3. 模式与表 4. 修改基本表 5. 删除基本表 3.3.3 索引的建立与删除 1. …

开发者的瑞士军刀:DevToys

DevToys: 一站式开发者工具箱,打造高效创意编程体验,让代码生活更加得心应手!—— 精选真开源,释放新价值。 概览 不知道大家是否在windows系统中使用过PowerToys?这是微软研发的一项免费实用的系统工具套…

2024-简单点-pandas

pandas pandas to numpy 尽量不用.values提取数据 numexpr 和 bottleneck加速 布尔操作 describe 自定义describe .pipe df.apply 行或者列级别函数级别应用

pod name 传到容器内部环境变量

背景: 部署skywalking需要管理k8s的pod,需要一个参数-Dskywalking.agent.instance_name 要将podname传递给这个参数 -Dskywalking.agent.instance_name{PODNAME} 通过configmap和secret都无法传递。 在容器里通过这两个命令都可以获取到podname 但在env里这样设置或…

模仿羊羊~消消乐

慎玩!随机生成、不保证能消完哦! 游戏试玩: 链接: https://pan.baidu.com/s/1IwtOd__8Ca0bSouMP8kEzw 提取码: 6yhd

docker配置镜像加速后容器和镜像消失

一、问题描述 根据阿里云给docker配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://gt6j98xi.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl rest…