首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATG BCC:将非版本库链接到产品目录版本库

问ATG BCC:将非版本库链接到产品目录版本库
EN

Stack Overflow用户
提问于 2019-12-04 10:41:57
回答 1查看 154关注 0票数 0

我正在寻找解决以下问题的解决方案。

在“产品目录”中,每个产品都应该具有“预购库存”自定义属性,该属性在每个产品级别上保存整数值。在“成功添加到购物车”时,“成功添加到购物车”中的

  • 将产品的计数减少1,并且只允许用户将产品添加到购物车中,直到值达到零为止。
  • 当我们在BCC中看到该产品时,应该显示该产品的最新计数。

。

我想把这个自定义属性作为产品目录的一部分,但是由于产品目录是版本存储库,所以直接从代码更新值而不是从BCC更新值并不复杂。

是否有可能或好有单独的非版本存储库存储“预订购库存”编号和映射存储库到产品目录,并显示最新的计数在产品目录高级选项卡?

谢谢

维维克·辛格

EN

回答 1

Stack Overflow用户

发布于 2020-02-21 23:51:24

实际上,从生产实例中更新版本存储库项是一个非常糟糕的实践,因此在我看来,您的建议是我所能想到的唯一可能的解决方案。您需要一个非版本化的持久存储库(让我们称它为InventoryRepository),其中包含项目描述符(让我们称之为stockLevel),以跟踪产品库存。

然而,在这种方法的背后仍然存在一个陷阱。为了保证产品的库存级别是最新的,您必须禁用stockLevel项描述符上的缓存。这给数据库带来了更新超载的风险,这可能会导致效率问题。

在我的一个项目中,我们通过将库存实现功能转移到另一个服务器实例(util)来解决这个问题--由异步DMS调用(其源是客户的操作,比如将项目放入篮)触发。由于这一点,生产实例仅仅是从InventoryRepository,读取库存级别的,而不是更新。

这是一个巨大的性能改进,但是生产实例仍然非常频繁地读取非缓存的值。我们观察到,如果某个设备的库存级别非常高,那么如果只需要布尔信息(不管是否可用),就不需要检查它的确切值。因此,我们引入了一个缓存的项描述符,它将布尔属性(isHighlyAvailable)分配给产品id。在特定产品的库存级别没有降到阈值(例如100)之前,isHighlyAvailable被设置为true,生产实例依赖于它的值。一旦达到阈值,isHighlyAvailable就会被取消设置(通过异步DMS消息),并且从现在开始,生产实例在评估产品可用性时会考虑到确切的、非缓存的stockLevel值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59174090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档