0

次のフェッチ XML クエリがあります。

<fetch mapping="logical">
    <entity name="salesorder">
        <attribute name="salesorderid"/>
        <attribute name="new_type"/>
        <attribute name="new_solomonswonumber"/>
        <attribute name="new_resolutioncode"/>
        <attribute name="new_rentalsaleindicator"/>
        <attribute name="new_preferredphone"/>
        <attribute name="name"/>
        <attribute name="new_equipment"/>
        <attribute name="customerid"/>
        <order attribute="new_type" descending="false"/>
        <filter type="and">
            <condition attribute="salesorderid" operator="eq" value="5AC5CBAC-25A0-E211-92B3-00155D815016"/></filter>
        <link-entity name="new_entity" from="new_entityid" to="new_entitylookup">
            <filter type="and">
                <attribute name="new_street1"/>
                <attribute name="new_province"/>
                <attribute name="new_postalcode"/>
                <attribute name="new_city"/>
            </filter>
        </link-entity>
    </entity></fetch>

Javaスクリプトを使用して次の条件を挿入する必要があるビジネスニーズがあります:

<condition attribute='new_entityid' operator='eq' value='10ad18f6-c384-e211-b04d-78e3b50834b8'/>

したがって、最終的な fetchxml は次のようになります。

<fetch mapping="logical">
    <entity name="salesorder">
        <attribute name="salesorderid"/>
        <attribute name="new_type"/>
        <attribute name="new_solomonswonumber"/>
        <attribute name="new_resolutioncode"/>
        <attribute name="new_rentalsaleindicator"/>
        <attribute name="new_preferredphone"/>
        <attribute name="name"/>
        <attribute name="new_equipment"/>
        <attribute name="customerid"/>
        <order attribute="new_type" descending="false"/>
        <filter type="and">
            <condition attribute="salesorderid" operator="eq" value="5AC5CBAC-25A0-E211-92B3-00155D815016"/></filter>
        <link-entity name="new_entity" from="new_entityid" to="new_entitylookup">
            <filter type="and">
<condition attribute='new_entityid' operator='eq' value='10ad18f6-c384-e211-b04d-78e3b50834b8'/>
                <attribute name="new_street1"/>
                <attribute name="new_province"/>
                <attribute name="new_postalcode"/>
                <attribute name="new_city"/>
            </filter>
        </link-entity>
    </entity></fetch>

これを行う方法はありますか?

よろしくお願いします..

4

1 に答える 1

2

なぜフェッチが機能しないのかという疑問がある場合は、ノードに属性がネストされていることが原因である可能性があります。次のようにしてみてください。

<fetch mapping="logical">
<entity name="salesorder">
    <attribute name="salesorderid"/>
    <attribute name="new_type"/>
    <attribute name="new_solomonswonumber"/>
    <attribute name="new_resolutioncode"/>
    <attribute name="new_rentalsaleindicator"/>
    <attribute name="new_preferredphone"/>
    <attribute name="name"/>
    <attribute name="new_equipment"/>
    <attribute name="customerid"/>
    <order attribute="new_type" descending="false"/>
    <filter type="and">
        <condition attribute="salesorderid" operator="eq" value="5AC5CBAC-25A0-E211-92B3-00155D815016"/></filter>
    <link-entity name="new_entity" from="new_entityid" to="new_entitylookup">
        <filter type="and">
            <condition attribute='new_entityid' operator='eq' value='10ad18f6-c384-e211-b04d-78e3b50834b8'/>
        </filter> 
        <attribute name="new_street1"/>
        <attribute name="new_province"/>
        <attribute name="new_postalcode"/>
        <attribute name="new_city"/>
    </link-entity>
</entity></fetch>

質問がJSをどのように挿入するかです。次のような正規表現を使用できます ( jsFiddle ):

var regex = new RegExp(/<link-entity.*name=[\"\']new_entity[\"\'].*>.*<filter[^>]*>/);

fetch = fetch.replace(regex, '$&' + newCondition)
于 2013-05-24T20:21:11.380 に答える