Chromeでは特に問題ないのに、IEだと以下のエラーが発生する。
XrmServiceToolkit.Fetch: No 'entity' node in the provided FetchXML.
それぞれのブラウザで生成されたFecthXmlの文字列を見ても、特に違いはない。
海外のフォーラムを見ると、FetchXMLは全て小文字でないといけないので、「Entity」と書いてあるタグを「entity」に編集しろなどとあるが、全て小文字で書いてある。
うーむ、困った。
解析調査したところ、fetchXml内のfilterタグなしだと普通に通った。
ということは、一部のcondition指定が悪さをしているようだ。
結果、たどり着いたのは以下の条件。
<condition attribute="new_xxxid" operator="ne" value="" />
FetchXmlの際に「自分のGUIDを持つレコードは含まない」という条件を加えていた。
「Xrm.Page.data.entity.getId();」でGUIDを取得しているのだが、新規フォームの場合は自分のGUIDが空文字で返却される。
このような空文字の条件を指定すると、なぜかIEの場合のみエラーとなってしまうようだ。
取得したGUIDが空文字だった場合は上記のcondition文字列を指定しないようにすることで解決。