Hello All,
I have 5 records for creation so I am sending from UI to CAP using Promise.all().
@BeforeCreate() public async validateHeaderBeforeCreate(@Req() oRequest: any): Promise<void> { let oTransaction: any = cds.transaction(oRequest); //Need to increment partner_counter field let oPartnerQuery = SELECT.from("namespace_contract") .columns('max(partner_counter) as partner_counter'); let aContractPartners = await oTransaction .run(oPartnerQuery); oRequest.data.partner_counter = Number (aContractPartners[0]?.partner_counter ? aContractPartners[0]?.partner_counter : 0) + 1; } @AfterCreate() public async afterCreatePartner(@Req() oRequest: any): Promise<void> { let oTransaction: any = cds.transaction(oRequest); await oTransaction.commit(); }
I am using PostgreSQL Database.
Here partner_counter is key field for me.
While I am inserting 5 records. commit() is not working. 2 records inserted properly when inserting 3 record I am getting following error. Please correct me if I am using commit() in wrong way.