【问题标题】:Determine if a Customer in the CDC response has been Deleted确定 CDC 响应中的客户是否已被删除
【发布时间】:2017-07-18 19:32:15
【问题描述】:

我们正在使用 .Net SDK for QuickBooks Online 的 IntuitCDCResponse 类来检索在指定时间段内发生更改的客户实体列表。

目前,我们能够检索已更改客户的列表并迭代该列表。至此,如何判断 QuickBooks Online 中是否删除了客户?

docs 表示当实体被删除时,实体的status 设置为Deleted。我们假设此状态被传递到 SDK 中 Customer 类的 status 属性。

这是我们当前试图用来确定客户是否已被删除的代码。

if (customer.statusSpecified && customer.status == EntityStatusEnum.Deleted)
{
    // handle deletion event locally
}

事实上,所有 Customer 对象的 statusSpecified 值始终为 false,status 的值始终为 EntityStatusEnum.Deleted,无论实际情况是否如此。我们反复测试了已更新、创建和/或删除的客户。

我们确实尝试在 SDK source code 中搜索有关如何初始化 Customer 类的提示,但似乎 Intuit.IPP.Data 命名空间在源代码中不可用。

This SO question 类似,也有一些兴趣,但没有讨论如何正确确定客户是否已被删除。

【问题讨论】:

    标签: c# intuit-partner-platform quickbooks-online


    【解决方案1】:

    EntityStatusEnum Enumeration

    EntityStatusEnum 不是真假值,它是一个枚举值 0-6。我建议将 customer.status 值更改为 int,其中 0-6 分别代表文档值。

    编辑:

    EntityStatusEnum.Deleted 将返回0

    customer.status 将返回truefalse

    【讨论】:

    • 我相信你对customer.status有误。 status 属性继承自 IntuitEntity 类,并显示数据类型为 EntityStatusEnum。所以customer.statusEntityStatusEnum.Deleted 的比较是可以接受的表达方式。
    • customer.statusSpecified 怎么样?我认为 if 语句是错误的。不应该是:customer.statusSpecified == true && customer.status == EntityStatusEnum.Deleted@RichC
    • Double-checkedcustomer.statusSpecified。它的数据类型是bool。此外,customer.statusSpecifiedcustomer.statusSpecified == true 都产生相同的布尔结果并且是可接受的表达式。 if 语句应该是正确的。
    【解决方案2】:

    这是我目前能想到的最好的解决方法

    if ( (customer.statusSpecified && customer.status == EntityStatusEnum.Deleted)
        || customer.DisplayName.Contains("(deleted)") )
    {
        // handle deletion event locally
    }
    

    或者,如果您希望完全放弃能够以正确方式确定删除状态的希望...

    if ( customer.DisplayName.Contains("(deleted)") )
    {
        // handle deletion event locally
    }
    

    当您将客户标记为非活动状态时,QuickBooks Online 会将术语“(已删除)”附加到显示名称的末尾。这个QuickBooks Help article 是我最接近这种行为的文档。在“恢复客户”部分下,它指出:

    不活跃的客户将被标记为(删除)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2019-01-22
      • 2018-12-22
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      相关资源
      最近更新 更多