我有一个程序根据自定义实体向客户收费。这是一个基于订阅的过程。我们输入订单,如果该订单的产品已定义为订购产品,则创建自定义实体。该产品可以是单个产品,也可以是捆绑产品。订阅结束时,我需要结束客户继续使用该软件的能力。
我可以阅读产品,我可以通过检查属性" productstructure"来确定产品是否是捆绑产品。如何确定捆绑包中包含哪些产品?
由于
答案 0 :(得分:1)
如果您检索产品,则可以使用“productstructure”来确定它是否为捆绑产品。如果值为3,则为捆绑。
然后,您可以查询“productassociation”表,其中属性“productid”等于捆绑包的Id。
您需要从“prodctassociation”表中检索的属性是“associatedproduct”。然后,您将检索产品实例。
QueryExpression productBundleQuery = new QueryExpression();
productBundleQuery.Distinct = false;
productBundleQuery.EntityName = "productassociation";
productBundleQuery.ColumnSet = new ColumnSet("associatedproduct");
productBundleQuery.Criteria = new FilterExpression
{
Conditions = { new ConditionExpression("productid", ConditionOperator.Equal, bundle.Id) }
};
EntityCollection productBundleCollection = _service.RetrieveMultiple(productBundleQuery);
foreach (Entity productAssociation in productBundleCollection.Entities)
{
Entity product = _service.Retrieve("product", ((EntityReference)productAssociation["associatedproduct"]).Id, new ColumnSet("name", ...));
Do something....
}