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

本文详细介绍了在SAPCAP项目中,如何通过Java实现Service,设计数据库表以支持会计账户,添加CDSAnnotation以增强FioriApp的功能,并逐步构建和更新实体如Companies和Accounts,以便在Fiori环境中管理会计账户和关联数据。
摘要由CSDN通过智能技术生成

本系列文章

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: #TextFirst
    Currency;
    @title: '{i18n>Country}'
    @Common.Text: Country.name
    @Common.TextArrangement: #TextFirst
    Country;
    @Common.Label: '{i18n>Address}'
    Address;
    @Common.Label: '{i18n>Deleted}'
    Deleted;
    @title: '{i18n>ChartOfAccounts}'
    @Common.Text: ChartOfAccount.name
    @Common.TextArrangement: #TextFirst
    ChartOfAccount;
}

更新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: #TextFirst
    COAAccountSubject;
    @title: '{i18n>Company}'
    @Common.Text: Company.name
    @Common.TextArrangement: #TextFirst
    Company;
};

App运行

创建账户Cash 1时:

Create Account
选择COAAccountSubject

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

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

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值