none
緊急 Fetch xml的用法. RRS feed

  • 问题

  • 我想要完成的功能是
    select * from product inner join productpricelevel on  product.productid=productpricelevel.productid and (productpricelevel.productpricelevelid='2CD8E78F-FB2A-DE11-896B-00E06115941B' or (productpricelevel.productpricelevelid='2CD8E78F-FB2A-DE11-896B-00E06115941C' and product.name='X'))

    請問用fetch有什麽辦法?
    韓建興 http://jamson.cnblogs.com
    2009年5月21日 2:11

答案

  • 对,就是这种方法,增加一个Entity。
    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn
    • 已标记为答案 Jeff.Han 2009年5月26日 10:58
    2009年5月24日 10:48
    版主

全部回复

  • 给你一个例子做参考吧。应该不难。 :)

    string xml = "<fetch mapping='logical'>
    <entity name='account'>" +
    "<attribute name='accountid' /><attribute name='name' /><filter type='and'><condition attribute='accountnumber' operator='eq' value='1234' /></filter></entity></fetch>“

     

    crmService.Fetch(xml)


    Darren Liu | 刘嘉鸿 | MS CRM MVP | English Blog: http://msdynamicscrm-e.blogspot.com | Chinese Blog: http://liudarren.spaces.live.com
    2009年5月21日 18:14
    版主
  • 這個我當然知道,
    問題的關鍵是在(productpricelevel.productpricelevelid='2CD8E78F-FB2A-DE11-896B-00E06115941C' and product.name='X')在這里
    如果有link-entity的話。在link-entity里沒有辦法指定product實體的篩選條件.
    我又不能直接在product entity里做篩選product.name='X'的資料
    ,其實我想問的問題的如何實現(productpricelevel.productpricelevelid='2CD8E78F-FB2A-DE11-896B-00E06115941B' or (productpricelevel.productpricelevelid='2CD8E78F-FB2A-DE11-896B-00E06115941C' and product.name='X'))
    這樣的篩選條件.

    韓建興 http://jamson.cnblogs.com
    2009年5月22日 3:13
  •             string filterfetchxml="<fetch mapping='logical'><entity name='product'><all-attributes/>";
    
    filterfetchxml+="<filter type='and'><condition attribute='statecode' operator='eq' value='0'/>";
    filterfetchxml+="<condition attribute='pricelevelid' operator='not-null' />";
    filterfetchxml+="<condition attribute='productnumber' operator='like' value='%%' />";
    filterfetchxml+="<condition attribute='name' operator='like'  value='%%' />";
    filterfetchxml+=" </filter>";
    filterfetchxml += "<link-entity name='productpricelevel' from='productid' to ='productid'>";
    filterfetchxml += "    <filter type='or'><condition attribute='pricelevelid' operator='eq' value='9439FF4D-8613-DE11-B063-001EC9B6EAFc' />";
    filterfetchxml += "<filter type='and'>";
    filterfetchxml += "    <condition attribute='pricelevelid' operator='eq' value='9439FF4D-8613-DE11-B063-001EC9B6EAFD'/> ";
    filterfetchxml += "            <condition attribute='esp_module_type' operator='eq' value='1'/> ";
    filterfetchxml += "</filter>";
    filterfetchxml += "</filter>";
    filterfetchxml += "</link-entity>";
    filterfetchxml += "</link-entity>";
    filterfetchxml += "</link-entity>";
    filterfetchxml += "</entity></fetch>"
    這是我的Fetch xml
    esp_module_type是product實體的欄位,各們老大,謝謝啦

    韓建興 http://jamson.cnblogs.com
    2009年5月22日 3:15
  • 我现在想的解决方案是加一个新的实体,用新的实体放ProductPriceLevelId及Product的Model_Type的值 。
    因为ProductPriceLevel实体不允许新增栏位(Field),然后在新增,修改,删除时用plugin自动加进来.
    韓建興 http://jamson.cnblogs.com
    2009年5月24日 9:49
  • 这样的逻辑在FetchXML里无法实现,我的经验是如果在Advanced Find里无法实现的逻辑,在FetchXML里就无法实现。
    可以用这个工具来生成FetchXML: http://www.codeplex.com/fetchxmlbuilder

    2009年5月24日 10:47
    版主
  • 对,就是这种方法,增加一个Entity。
    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com , http://mscrm.cn
    • 已标记为答案 Jeff.Han 2009年5月26日 10:58
    2009年5月24日 10:48
    版主
  • 感謝Jim Wang.先.
    韓建興 http://jamson.cnblogs.com
    2009年5月25日 0:59