【问题标题】:Quickbook PHP framework - imports an Invoice twice periodicallyQuickbook PHP 框架 - 定期导入发票两次
【发布时间】:2014-10-20 15:33:52
【问题描述】:

在极少数情况下,我们会发现发票会两次导入到 Quickbooks 中。查看 quickbooks_queue 表,我们看到该事务在其中的状态为“S”,并且紧接着(准确地说是 1 分钟)相同的事务标识为“S”。

因为在我不知道从哪里开始之前,我们从来没有遇到过这个问题!似乎没有模式 - 我唯一能想到的是表行(MyIsam)被其他用户锁定,因此 QB Web 连接器无法访问该行以将其设置为已导入,然后被拾取并因为发票上缺少 'qb_imported' 值而重新排队?

我没有发布相当广泛的代码 - 而且我不确定问题是否真的出在代码中......

【问题讨论】:

  • 我应该补充一点,如果系统在队列中没有找到它的 IDENT 并且它的 qb_imported/qb_id 列是空白的,它只会对发票进行排队。如果 ID 喜欢在队列中,那么它假定它即将被导入并忽略它(也忽略错误代码),如果发票已经附加了 QB ID,那么它必须已经被导入。检查原始 QB 数据库表显示重复的发票,但具有不同的 txn_id 和 invoice_no - 这肯定不会发生吗?

标签: php mysql quickbooks


【解决方案1】:

查看 quickbooks_queue 表,我们看到事务在其中的状态为“S”,并且立即(准确地说是 1 分钟)相同的事务标识为“S”。

可能发生的唯一方法(表中的两条记录)是插入(排队)两条记录。

你在做什么让两条记录排队?

没有看到您的代码(或至少没有说明您如何排队),我不知道任何人将能够进一步帮助您。

【讨论】:

  • Queue Up 函数应该检查给定 ident 的现有队列表 - 如果它找到一个成功 (s) 标记,那么它不应该再次将该发票添加到队列中。我想我可能有竞争条件 - 如果到那时我还没有发现问题,我将在星期一发布有问题的代码。我们的队列是手动设置的——一旦客户团队对交易进行到 QB 感到满意,他们只需点击队列,它会检查发票是否可以首先排队——我认为代码中可能存在检查其是否已经存在的问题排队 - 我没有检查“进行中”...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多