我们正在开发一个CRM插件,每当客户关系管理中从订单中生成发票时,就会触发该插件。
典型的操作是进入销售订单并单击“创建发票”。
插件的最终游戏是将发票与头和行一起集成到远程系统中。
插件的工作方式如下:
我们基本上是对接受这个请求并处理它的ASPX页面进行调用。
b.处理包括下列步骤:
通过CRM服务检索呼叫获取发票头。
二、通过CRM服务获取发票行检索多个呼叫。
将发票提交到第三个远程应用程序数据库。
我们通过包装任何自定义状态或错误消息来响应插件。
我们在最后测试的场景:
案例1:
含5-10行的发票
步骤3(a)。到3(d)为止。运行成功,并将发票与所有行集成。
案例2:问题
含10多行发票( 15-40行测试)
步骤3b(ii)。“发票行检索”过程只检索某些行,而不是检索所有行
最初我们认为,当CRM正在为发票创建行时,可以为当前通过身份验证的CRM用户设置一个读锁,因为登录的用户也是相同的。
但那里的测试也失败了。
成功的设想方案经过测试:
我们通过一个不同的调用分别检索发票行,将调用延迟了几秒钟。检索的行数是成功的。但不确定服务器会延迟多少时间。
我们需要您在这个问题上的投入,以解决这一问题,因为我们可能会犯一些错误,同时进行这个插件请求调用。
谢谢和问候。
发布于 2014-10-30 00:08:04
我知道这个问题已经有一年了,但我仍然在寻找解决这个问题的方法,所以我想其他人也可能是这样。
我的经验是,CRM需要保存(创建)头记录,然后才能将行与其关联。因为您已经为异步执行注册了它,所以在它执行之前有一个轻微的延迟,这给了它在尝试加载它们之前保存一些行的时间。
到目前为止,我最好的解决方案是触发发票线的创建消息上的插件,计数与该发票相关的所有行,或者从订单中传递一行计数,或者计算订单上的行数,当它们具有相同的计数时,执行您的代码主体。对于有很多行的订单来说,这是相当低效的。但这是一个解决办法。
https://stackoverflow.com/questions/20237574
复制相似问题