Добрый день.

Версия BPMOnline 7.2

При создании новой записи необходимо установить значение поля объекта в некоторое значение. Поле типа "Справочник", связано с другой таблицей. Пытаюсь делать так:

if (this.isNew) {
    var statusNew = '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD';
    var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
        rootSchemaName: 'SynchronizedRuleStatus'
    });
    esq.getEntity(statusNew, function(result) {
        if (result.success && result.entity) {
            this.set('SynchronizedRuleStatus', result.entity.get('Id'));
       }
    }, this);
}

Однако значение поле в карточке отображается как "undefined". Как решить данную проблему?

Заранее благодарен за помощь.

Нравится

3 комментария

А чем не подходит вариант, заместить объект и проставить у колонки значение по умолчанию?

Объект замещать нельзя по некоторым соображениям.

Но проблема уже решена, может кому пригодится:

if (this.isNew) {
    var statusNew = '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD';
    var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
        rootSchemaName: 'SynchronizedRuleStatus'
    });
    esq.addColumn('Name');
    esq.addColumn('Id');
    esq.getEntity(statusNew, function(result) {
        if (result.success && result.entity) {
	    var entity = result.entity;
	    if (entity) {
	        var t = {
	            displayValue: entity.get('Name'),
		    value: entity.get('Id')
	        };
	        this.set('SynchronizedRuleStatus', t);
           }
       }
    }, this);
}

Здравствуйте, Артем.

Я бы порекомендовал значение '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD'; вынести в системную настройку (типа "Статус по-умолчанию") и тянуть ее оттуда.

Потому что бывают моменты, что может поменятся и сам статус или понадобится сделать перенос на другую площадку, а там статуса с таким ИД может и не оказаться, что приведет к поломке логики и необходимости лезть в схему и править.

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