Вопрос

Передача параметра процесса в подпроцесс

Добрый день.

Я передаю параметр элемента "читать данные" в подпроцесс, но в коде подпроцесса он null.

Через сохранение в параметр процесса пробовал, через формулу тоже. Выборка не пустая.

В чем может быть проблема?Изображение удалено.

Нравится

10 комментариев

Добрый день, а можете уточнить какой параметр вы передаете? 

и что вы вычитываете в читать код?

На первом скрине "Читать код", на втором  подпроцесс в который передаю его параметры.

Колодяжный Владислав Эдуардович,

комментарий выше

 

grechushkin,

Добавьте фильтрацию записей при чтении данных (у вас элемент БП не знает что считывать), вам нужно установить фильтрацию по ID записи, который передает сигнал от объекта создание, изменение и тд...

Добавить комментарий

Колодяжный Владислав Эдуардович,

там есть фильтр, он просто не отобразился, обновил страницу, появился.

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

Get<Guid>("StartSignal3.RecordId"). Возвращает null

 

grechushkin,

а если так Get<Guid>("StartSignal3.RecordId").ToString();

Колодяжный Владислав Эдуардович,

да. я это и имел ввиду. поправил комментарий

Попробуйте передавать не напрямую, а записывать в параметр процесса. Будет видно, на каком этапе потерялось значение.

Либо вообще не читайте элементом чтения данных, а используйте C#-функцию GetEntityTypedColumnValue:

public static T GetEntityTypedColumnValue&lt;T&gt;(UserConnection userConnection, string schemaName, string columnName, Guid id) {
	var entitySchemaManager = userConnection.GetSchemaManager("EntitySchemaManager") as EntitySchemaManager;	
	var schema = entitySchemaManager.GetInstanceByName(schemaName);
	var esq = new EntitySchemaQuery(schema);
	var queryColumnName = esq.AddColumn(columnName).Name;
	var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, schema.PrimaryColumn.Name, id);
	esq.Filters.Add(filter);
	 string sqlText = esq.GetSelectQuery(userConnection).GetSqlText();
	var entities = esq.GetEntityCollection(userConnection);
	foreach (var entity in entities) {
return entity.GetTypedColumnValue&lt;T&gt;(queryColumnName);
	}
	return default(T);
}

 

Зверев Александр,

Колодяжный Владислав Эдуардович,

cСегодня  сотрудник поддержки пытался по TV решить вопрос, не удалось никак кроме создания параметра и хранения значения в нем. надеюсь, исправят скоро... вот так с 12.4 не работает, как он сказал.

Get<Guid>("StartSignal3.RecordId") :(((

В таком случае используйте параметр процесса.

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