本文目录
- 本系列文章
- 目标
- 开发步骤
- 数据库表设计
- 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:
更新CDS Annotation
更新Entity: Companies
更新Companies
,添加针对基于Currency
、Country
和ChartOfAccount
的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
添加COAAccountSubject
和Company
的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
时:
选择COAAccountSubject
:
Company My Company
创建如下:
创建的银行存款的账户如下:
后续的文章里面,将开始定义凭证。