SAP CAP篇十六:写个ERP的会计系统吧,Part III

2024-04-02 05:12

本文主要是介绍SAP CAP篇十六:写个ERP的会计系统吧,Part III,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文目录

  • 本系列文章
  • 目标
  • 开发步骤
    • 数据库表设计
    • Service 定义
    • 生成Fiori App
    • 更新CDS Annotation
      • 更新Entity: `Companies`
      • 更新Entity:`Accounts`
    • App运行

本系列文章

SAP CAP篇一: 快速创建一个Service,基于Java的实现
SAP CAP篇二:为Service加上数据库支持
SAP CAP篇三:定义Model
SAP CAP篇四:为CAP添加Fiori Elements程序(1)
SAP CAP篇五:为CAP添加Fiori Elements程序(2)
SAP CAP篇六:为CAP添加Fiori Elements程序(3)
SAP CAP篇七:为CAP添加Fiori Launchpad入口 (Sandbox环境)
SAP CAP篇八:为CAP添加App Router并支持Fiori Launchpad (Sandbox环境)
SAP CAP篇九:升级为SAP CDS 7.0, CAP Java 2以及Spring Boot 3
SAP CAP篇十:理解Fiori UI的Annoation定义
SAP CAP篇十一:支持Media Object:图片、附件等
SAP CAP篇十二:AppRouter 深入研究
SAP CAP篇十三:拥抱TypeScript
SAP CAP篇十四:写个ERP的会计系统吧,Part I
SAP CAP篇十五:写个ERP的会计系统吧,Part II

目标

基于前一篇的基础继续开发ERP系统。

本篇侧重于会计账户,会计账户是基于会计科目表的具体账户。

会计账户,从属于具体的公司的,由于公司层面指定了会计科目表,所以,创建会计账户的时候,需要指定会计科目表中的具体科目。

开发步骤

数据库表设计

从数据库层面来定义会计账户。

@cds.odata.valuelist
entity Accounts: managed, cuid, sap.common.CodeList {AccountNumber: String(20) not null;Company: Association to Companies not null;COAAccountSubject : Association to one AccountSubjects not null;
}

Service 定义

更新FinanceService,添加如下Entities。

entity Accounts as projection on dbaccount.Accounts;

同时,需要指定Account 为Odata.draft.enabled,这样,Fiori Elements会自动启用编辑功能:Create, Update。

annotate FinanceService.Accounts with @odata.draft.enabled;

生成Fiori App

通过Fiori: Open Application Geneator来创建Fiori App。

查看生成的App的Information:
Application Info

更新CDS Annotation

更新Entity: Companies

更新Companies,添加针对基于CurrencyCountryChartOfAccount的Key/Value 命名对;

annotate service.Companies {@ObjectModel.text.element: ['name']ID;@Common.Label: '{i18n>Name}'    name;@Common.Label: '{i18n>Description}'descr;@title: '{i18n>Currency}'@Common.Text: Currency.name@Common.TextArrangement: #TextFirstCurrency;@title: '{i18n>Country}'@Common.Text: Country.name@Common.TextArrangement: #TextFirstCountry;@Common.Label: '{i18n>Address}'Address;@Common.Label: '{i18n>Deleted}'Deleted;@title: '{i18n>ChartOfAccounts}'@Common.Text: ChartOfAccount.name@Common.TextArrangement: #TextFirstChartOfAccount;
}

更新Entity:Accounts

Accounts添加COAAccountSubjectCompany的Key/Value 对的设置。

annotate service.Accounts {@Common.Label: '{i18n>Name}'name;@Common.Label: '{i18n>Description}'descr;@Common.Label: '{i18n>AccountNumber}'AccountNumber;@title: '{i18n>AccountSubject}'@Common.Text: COAAccountSubject.name@Common.TextArrangement: #TextFirstCOAAccountSubject;@title: '{i18n>Company}'@Common.Text: Company.name@Common.TextArrangement: #TextFirstCompany;
};

App运行

创建账户Cash 1时:

Create Account
选择COAAccountSubject

Specify Account Subject
Company My Company创建如下:
Company
创建的银行存款的账户如下:
Account

后续的文章里面,将开始定义凭证。

这篇关于SAP CAP篇十六:写个ERP的会计系统吧,Part III的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压