使用ExactOnline .NET客户端添加现金支付时遇'missing cash entry lines'异常
解决ExactOnline API添加现金支付时"missing cash entry lines"异常的问题
我之前也踩过这个ExactOnline API的坑!你代码里虽然创建了CashEntryLine列表,但核心问题是两个关键环节没做到位——要么是分录行的必填字段没赋值,要么是没把分录行正确关联到主CashEntry对象上。ExactOnline的API对必填项校验特别严格,哪怕字段存在但为空,都会报这种“缺失”的错误。
给你几个具体的解决步骤:
给CashEntryLine填充必填字段
ExactOnline的CashEntryLine有几个必须填写的字段,空对象肯定通不过校验,比如:var cashEntryLine = new ExactOnline.Client.Models.FinancialTransaction.CashEntryLine() { Account = new Guid("你的目标账户GUID"), // 付款关联的客户/供应商账户ID,必须是有效GUID AmountDC = 500.0m, // 交易金额,要用decimal类型 Description = "客户现金付款", // 交易描述不能为空 GLAccount = new Guid("对应的总账科目GUID") // 部分账套环境下这个也是必填项 }; var cashPayments = new List<ExactOnline.Client.Models.FinancialTransaction.CashEntryLine> { cashEntryLine };正确关联CashEntry和分录行
你创建的cashPaymentsEnumerable必须赋值给CashEntry对象的Lines属性,同时主对象本身也要填好必填项,比如:var journalCode = "10"; var cashEntry = new ExactOnline.Client.Models.FinancialTransaction.CashEntry() { JournalCode = journalCode, Lines = cashPayments.AsEnumerable(), Date = DateTime.Today, // 交易日期为必填项 Type = 1 // 1代表现金收入,2代表现金支出,根据业务场景选择 };检查API提交方式
确保你是通过FinancialTransactions.CashEntries.CreateAsync(cashEntry)来提交整个CashEntry对象,而不是单独提交分录行——ExactOnline的现金支付是主对象带分录行的结构,单独提交lines是无效的。
另外如果你的账套是多分部环境,别忘了给CashEntry设置Division属性,不然也可能导致校验失败。
内容的提问来源于stack exchange,提问作者henk
相关产品推荐
相关产品推荐

