Я использую на странице visualforce Salesforce.com. В демонстрационных целях я использовал следующий фрагмент кода из примеров документов, показанных в
http://docs.releasenotes.salesforce.com/en-us/spring14/release-notes/rn_vf_remote_objects.htm
В моем фрагменте кода у меня есть предложение «Где», в котором я пытаюсь фильтровать, используя 3 поля. Мое требование состоит в том, что записи должны соответствовать критериям A, или критериям B, или критериям C.
Пример кода
<apex:page >
<!-- Remote Objects definition to set accessible sObjects and fields -->
<apex:remoteObjects >
<apex:remoteObjectModel name="Group_Donor__c" jsShorthand="Groupdonor"
fields="Name,Id">
<apex:remoteObjectField name="State__c" jsShorthand="State"/>
<apex:remoteObjectField name="Org_Phone__c" jsShorthand="Phone"/>
<apex:remoteObjectField name="Billing_Type__c" jsShorthand="billingtype"/>
</apex:remoteObjectModel>
</apex:remoteObjects>
<!-- JavaScript to make Remote Objects calls -->
<script>
var fetchWarehouses = function(){
// Create a new Remote Object
var wh = new SObjectModel.Groupdonor();
// Use the Remote Object to query for 10 warehouse records
wh.retrieve({
where: {
or: {
Name : {like:"%Helloworld%"}, // Error
State: {like:"%chennai%"},
//Phone: {like:"%098765432344%"},
billingtype: {like:"%Credit Card%"}
}
},
limit: 10 ,
}, function(err, records, event){
if(err) {
alert(err.message);
}
else {
var ul = document.getElementById("warehousesList");
records.forEach(function(record) {
// Build the text for a warehouse line item
var whText = record.get("Name");
whText += " -- ";
whText += record.get("Phone");
whText += " -- ";
whText += record.get("billingtype");
// Add the line item to the warehouses list
var li = document.createElement("li");
li.appendChild(document.createTextNode(whText));
ul.appendChild(li);
});
}
});
};
</script>
<h1>Retrieve Group Donors via Remote Objects</h1>
<p>Warehouses:</p>
<ul id="warehousesList">
</ul>
<button onclick="fetchWarehouses()">Retrieve Group Donors</button>
</apex:page>
Когда я выполняю этот код, я получаю следующую ошибку.
Сообщение об ошибке:
Invalid criteria specified for retreival. ValidationError [code=11, message=Data does not match any schemas from "oneOf" path=/where, schemaKey=null]
Эта проблема возникает только при следующих условиях.
- Когда я использую стандартное поле, такое как имя, в условии ИЛИ. (Даже 2 или 1 фильтр)
- Когда я использую более 3 настраиваемых полей в условии ИЛИ (более 2 фильтров запроса)
Но когда я использую только любые 2 настраиваемых поля, упомянутых в RemoteObjectModel, в качестве фильтров, я получаю ожидаемые результаты.
Пожалуйста, дайте мне знать, что мне здесь не хватает. Если я использую более 2 фильтров в одном или другом состоянии, как мне этого добиться? правильно ли использовать «ИЛИ» в удаленных объектах? А кто-нибудь сталкивался с этой проблемой. если так любезно дайте мне несколько указателей.
Заранее спасибо.