AStar低代码平台-DataSet异动递交后再在同一个事务内做数据检测的例子

因为AStart低代码平台支持远端事务管理,所以override onSave即可,将returnTransaction设为true,则会返回事务id,但是这个事务就需要人手关闭。 比如在此次加班申请单修改数据递交后,再希望在同一个事务中调用远端的加班单检测api,如果检测失败,则此次的加班申请单修改数据的更新回滚。

protected override async Task<String> onSave(bool returnTransaction = false)
{
   DataRow mRow = GetCurrentRow(mainGrid.MainView.Tag as BindingSource);
   string lastTrxId = await base.onSave(true);
   if (lastTrxId == null) return null;
   try
   {
      await RpcService.GetAsync<bool>(RpcService.SrvPrefix + "/hrOt/checkOtBill", new { trxId = lastTrxId, billId = GetStringVal(mRow["id"], null) });
      await RpcService.Commit(lastTrxId);
   }
   catch
   {
      await RpcService.Rollback(lastTrxId);
      throw;
   }
   finally
   {
      await RpcService.Release(lastTrxId);
   }
   return null;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值