Вопрос

UpdateQuery установить null

Пытаюсь сделать так

var update = this.Ext.create("Terrasoft.UpdateQuery", {rootSchemaName: this.entitySchemaName});
update.filters.add("IdFilter", this.Terrasoft.createColumnFilterWithParameter("Id", selectedRows));
update.setParameterValue("B2BClient", Terrasoft.GUID_EMPTY, Terrasoft.DataValueType.GUID);
update.execute(function() {
	this.updateDetail({reloadAll: true});
}, this);

Упорно ничего не работает. 

Даже если писать вместо Terrasoft.GUID_EMPTY null или  Terrasoft.DataValueType.LOOKUP, выдает Uncaught Идентификатор GUID должен содержать 32 цифры и 4 дефиса (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

Нравится

3 комментария
Лучший ответ

Лёш, проблема не там где ищешь.

Ты фильтр добавляешь selectedRows а тип фильтра используешь как для this.get("Id").

Ошибка в том что фильтр ожидает от тебя не array а GUID.

Для массива измени тип фильтра на createColumnInFilterWithParameters.

А в исходниках кстати указано что апдейте надо Null передавать, а не GuidEmpty

Добрый вечер.

 

Попробуйте написать таким образом:

update.setParameterValue("B2BClient", null, Terrasoft.DataValueType.LOOKUP);

 

Лёш, проблема не там где ищешь.

Ты фильтр добавляешь selectedRows а тип фильтра используешь как для this.get("Id").

Ошибка в том что фильтр ожидает от тебя не array а GUID.

Для массива измени тип фильтра на createColumnInFilterWithParameters.

А в исходниках кстати указано что апдейте надо Null передавать, а не GuidEmpty

В конфигурации встречается и работает нормально null и с Terrasoft.DataValueType.GUID тоже. Например, в FileDetail:

var update = Ext.create("Terrasoft.UpdateQuery", {
	rootSchemaName: this.entitySchema.name
});
update.enablePrimaryColumnFilter(itemId);
update.setParameterValue("LockedOn", currentDateTime, Terrasoft.DataValueType.DATE_TIME);
if (isLocked) {
	update.setParameterValue("LockedBy", Terrasoft.SysValue.CURRENT_USER_CONTACT.value,
		Terrasoft.DataValueType.GUID);
} else {
	update.setParameterValue("LockedBy", null, Terrasoft.DataValueType.GUID);
}
update.execute(function(response) {
...

 

Показать все комментарии