J2EE实践第四部分-使用SAP CAF实现功能的简单小例子

2024-02-01 23:08

本文主要是介绍J2EE实践第四部分-使用SAP CAF实现功能的简单小例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近工作比较忙,所以没有更新博客。上一篇介绍了一个简单但是完整的 EJB Web应用,今天使用 SAP CAF来实现上一个例子的功能, SAP CAF就是 Composite Application Framework。它的目的用于在当今企业复杂的应用系统架构之上构建统一用户体验的应用程序,基于 ESOA是它的基本特征。我们先看看使用 CAF最简单的程序怎么实现。

开发环境:
SAP NetWeaver 7.0 SR3
NWDS 7.0.11
JDK 1.4

主要涉及的技术: SAP CAF

1.       NWDS里面创建 Composite application project
项目名称就叫 Employee


创建好了以后在 Service Explorer可以看到如下的结构:


主要有三种 Service,分别是 Application Service, Entity Service, External Service。外部的 RFC Web Service可以导入到 External Service中, Entity Service是根据业务需求新创建的 Service,而 Application Service则可以在 Entity Service External Service之上根据业务需求来进一步实现复杂的业务逻辑。这个例子只用到了 Entity Service

2.       创建 Entity Service,定义对象的属性

首先创建一个 Employee Entity


然后为它增加属性,也就是一些数据字段


我们为它增加了 4个属性,分别是:

属性名称: id 类型 : long

属性名称: firstName 类型 : shortText

属性名称: lastName 类型 : shortText

属性名称: email 类型 : longText


3.       定义 Web Service operation

首先增加一个 getByLastName operation,在创建界面中选择 lastName这个字段


然后增加一个 getAll operation,不用选择任何字段


最后检查一下其它属性,将默认的权限检查去掉:


可以看到默认它是通过 caf提供的数据库来进行数据持久化的:

4.         自动生成代码,部署程序

选择项目,右键选生成代码。

然后右键选 Development Component-> build

最后部署到服务器。

部署成功后可以看到成功信息:


5.       使用 CAF UI pattern来配置 UI界面

我们会先建一个 Object Editor Object  Lsit,然后是一个 Object Selector

首先登录 caf主页 : http://j2ee_host:j2ee_port/caf


选择 User Interface Configuration -> Configuration Browser


选择 Object Editor->New Configuration,名字叫 createEmp

Service选择 sap.com/employee/EmployeeService

Object选择 Employee

然后选择 Retrieve metadata


然后选择需要编辑的属性,这里我们选择 id, firstName, lastName, email

然后给 button的按钮文本上填入 submit,如下所示:


预览:


可以做个简单的测试,输入信息:

可以看到数据被成功保存:


Ok,在配置界面选择 save+return。保存退出。

然后我们开始配置一个 Object List:


最后创建一个 Object Selector:


List的配置用到了刚刚配的 empList,这是 search_emp的配置 :


最后 save + return ,完工。

6.       测试我们的 Selector功能


输入 *,选择 Go,在下面的 list输出了所有 employee


选择 New按钮,则弹出新界面来创建 Employee:


7.       结论

大家可以看到我们通过简单的几步步骤,就完成了使用 CAF Service的创建,以及使用界面的自动生成。 CAF的功能确实非常强大,这样一个框架自动为开发者提供了从对象的建模到对象的持久化以及 UI等完整的功能,可以让开发者专心于业务逻辑的开发中,极大地提高了开发效率。

PS..在csdn上创建这样图文并茂的文章太累了。。。插入图片功能太不好用。。。

这篇关于J2EE实践第四部分-使用SAP CAF实现功能的简单小例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668766

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景