Можно ли через метод SetColumnValue присвоить значение равное null
21 апреля 2020 22:49
Подскажите, можно ли через метод SetColumnValue, присвоить значение справочного поля равное null?
Нравится
2 комментария
Лучший ответ
4 мая 2020 23:59
Можно через:
entity.SetColumnValue("OwnerId", null);
или
entity.ForceSetColumnValue("OwnerId", null);
При сохранении, возможно, придется отключить валидацию, если поле обязательное
Прим: для справочных полей необходимо явно дописывать "Id" в конце названия колонки.
22 апреля 2020 13:02
Алла, да, можно. Например, в ContactCareerSchema:
var contactSchema = entitySchemaManager.GetInstanceByName("Contact");
var contactEntity = contactSchema.CreateEntity(UserConnection);
if (contactEntity.FetchFromDB(Entity.GetTypedColumnValue<Guid>("ContactId"))){
contactEntity.SetColumnValue("AccountId", null);
contactEntity.SetColumnValue("DepartmentId", null);
contactEntity.SetColumnValue("JobId", null);
contactEntity.SetColumnValue("JobTitle", String.Empty);
contactEntity.SetColumnValue("DecisionRoleId", null);
contactEntity.Save();
}А если речь о клиентском коде, и там такое бывает. В BaseSchemaViewModel есть функция:
/**
* Clears the values of the columns of the schema by setting null. Clears the parameter of changed values.
* @protected
*/
clearEntity: function() {
Terrasoft.each(this.columns, function(column, columnName) {
if ((column.type === Terrasoft.ViewModelColumnType.ENTITY_COLUMN) && !column.isCollection) {
this.setColumnValue(columnName, null, {preventValidation: true});
}
}, this);
this.changedValues = {};
},
4 мая 2020 23:59
Можно через:
entity.SetColumnValue("OwnerId", null);
или
entity.ForceSetColumnValue("OwnerId", null);
При сохранении, возможно, придется отключить валидацию, если поле обязательное
Прим: для справочных полей необходимо явно дописывать "Id" в конце названия колонки.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать