...

Выбор элемента контекстной переменной типа "изделия" в запускаемом процессе

Тема в разделе "Разработчикам", создана пользователем Sergiy, 30 янв 2020.

  1. Sergiy

    Sergiy New Member

    Доброго дня!
    Из процесса "Процесс 1" запускаю "Процесс 2".

    В процессе 1 есть переменная "выпадающий список" с элементами справочника "изделия", в процессе 2 есть переменная типа "изделия" (не выпадающий список, а элементы этого справочника).
    Не могу понять как запустить процесс 2, чтобы в переменной "изделия" сразу выбрать нужный элемент.

    Пробовал так:

    ((dynamic)instance.Context).Izdelie.SelectedValue(context.Izdelie.Value);

    где:
    ((dynamic)instance.Context).Izdelie - переменная в процессе 2
    context.Izdelie - переменная в процессе 1

    Получаю ошибку:
    [Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference]
    at CallSite.Target(Closure , CallSite , Object , Int32 ) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at EleWise.ELMA.Model.Scripts.P_PR1_Scripts.Start_PR2(P_PR1 context) in c:\Users\TEMP.TT.004\AppData\Local\Temp\2\ProcessScripts_529f2d884fde484eaee81a758500983f.cs:line 242


    И так:

    Идея изначально глупая, т.к. св-во Value вернет string.
    ((dynamic)instance.Context).Izdelie = context.Izdelie.Value;


    [System.ArgumentException: Expression of type 'System.String' cannot be used for assignment to type 'EleWise.ELMA.ConfigurationModel.Izdeliya']
    at System.Linq.Expressions.Expression.Assign(Expression left, Expression right) at EleWise.ELMA.Model.Entities.Entity`1.ReflectionDynamicMetaObject.BindSetMember(SetMemberBinder binder, DynamicMetaObject value) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at EleWise.ELMA.Model.Scripts.P_PR1 .Start_PR2(P_PR1 context) in c:\Users\TEMP.TT.004\AppData\Local\Temp\2\ProcessScripts_7f5953d2c1a84e7e878085169538ca46.cs:line 242


    Другие переменные стандартных типов (строка, число, выпадающий список и т.п.) передаются без проблем.
    Как правильно выбрать элемент в создаваемом процессе?
    Не вижу для переменной в процессе 2 ни методов ни свойств по типу "SelectedItem" и т.п.

    Есть только неправильная идея - создать временную переменную, куда передать имя объекта, и в скрипте в процессе 2 выбрать объект.
     
    Последнее редактирование: 30 янв 2020
  2. Sergiy

    Sergiy New Member

    Оказалось что переменная типа справочника "изделия" это не выпадающий список, и для выбора элемента нужно просто получить сам объект и присвоить его.
    Объект можно получить через запрос HQL или прочими стандартными способами описанными в обучалке по API.

    Тема закрыта
     

Поделиться: