Здравствуйте, у меня возник вопрос. Каким образом можна сменить отображаемое поле в поле-справочник. Тоесть если в обьекте указано отображаемое поле Название и везде в полях-справочник при выборе определенной записи, поле содержит Id и Name..вопрос стоит в следующем, как сделать так (к примеру) чтобы при выборе продукта, выводилось не его Имя а допустим Артикул (или еще какое-нибудь поле).
У объекта есть возможность выбрать из списка другое первичное поле для отображения.
После смены может возникнуть проблема в объектах, которые на него ссылаются, но она решаема.
У объекта есть возможность выбрать из списка другое первичное поле для отображения.
После смены может возникнуть проблема в объектах, которые на него ссылаются, но она решаема.
к сожалению мне нужно сменить отображаемое поле только для 1 карточки редактирования, для всех остальных карточек, отображаемое поле должно остаться преджним
У метода есть аналог на C# и на JavaScript, то есть Вы можете вызвать его как с помощью AddScript, так и напрямую.
В случае использования AddScript обратиться к нужному контролу можно по его Id, который можно узнать, воспользовавшись методом, описанным здесь.
Есть деталь в разделе, там кнопка Добавить. По ней вызывается страница редактирования записи детали.
Надо в этом процессе проверить некое условие и в зависимости от него либо продолжать, либо выдать сообщение пользователю и закрыть страницу.
А зачем вообще доходить до открытия ...EditPage? Можно написать свой обработчик для кнопки "Добавить" в ...GridPage. Обычно обработчики кнопок в гриде сделаны на JS из соображений оптимизации, но вполне можно написать обычный кусочек БП, который открывает или не открывает окно, в зависимости от условия.
Александр, зависит от того, какие условия Вы проверяете, и когда эти условия инициализируются.
В Вашем случае, видимо, они передаются из родительского окна. В таком случае можно делать проверку на Init.
Ну до этого я допер, что на Init. А как мне что то сказать пользователю и остановить процесс открытия страницы редактирования, вот чего я никак не допру.
Ну то есть проверку надо делать в событии по клику на кнопке Добавить.
Но мне надо обращаться к текущей записи в основном реестре раздела.
Как до нее добраться, кнопка то в реестре детали.....
Решил проблему:
1. Скрываем стандартную кнопку Добавить
2. Добавляем свою кнопку Добавить
3. На событие клика своей кнопки Добавить вешаем скрипт с проверкой нужного нам условия и в соответствии с этим заполняем параметр процесса.
4. Добавляем условные потоки управления в зависимости от значения параметра.
5. Не забываем сгенерировать сообщение "AddButtonClick" в родительский процесс по нужному нам условию.
6. Наслаждаемся :-)
Да, всё правильно. При желании можно ещё показать сообщение при отрицательном значении условия. И из двух условных потоков всё же лучше один сделать по умолчанию (не с ромбиком, а с чертою).
Илья, уточните, при каких действиях возникает ошибка.
Также приведите, пожалуйста, полный текст ошибки.
Ведь если parameters["schemaId"] пуст, то он и не используется, ошибки быть не должно.
и возникает лишь при условии, что до запуска процесса окно AgreementEditPage открывалось, и в нем устнавливалась активной деталь "Журнал изменений"
ошибка такая:
Date: 30.10.2013 12:17:37 Date (UTC): 30.10.2013 8:17:37 Exception Message: The given key was not present in the dictionary. Exception Type: System.Collections.Generic.KeyNotFoundException Exception Source: mscorlib Exception Stack Trace: at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Terrasoft.WebApp.RecordAllChangesGridPageEventsProcess`1.InitScriptTask3Execute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessScriptTask.Execute(ProcessExecutingContext context, Func`2 internalExecute) at Terrasoft.WebApp.RecordAllChangesGridPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context) at Terrasoft.WebApp.RecordAllChangesGridPageEventsProcess`1.OnExecuted(Object sender, ProcessActivityAfterEventArgs e) at Terrasoft.Core.Process.ProcessFlowElement.OnExecuted(ProcessActivityAfterEventArgs e) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context) at Terrasoft.WebApp.RecordAllChangesGridPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context) at Terrasoft.WebApp.RecordAllChangesGridPageEventsProcess`1.ThrowEvent(ProcessExecutingContext context, String message) at Terrasoft.UI.Core.PageSchemaUserControl.ThrowEvent(String message) at Terrasoft.UI.WebControls.Controls.PageContainer.ThrowInitToContainers(JArray arrayList) at Terrasoft.UI.WebControls.Controls.PageContainer.LoadFromAssembly() at Terrasoft.UI.WebControls.Controls.PageContainer.LoadUserControl() at Terrasoft.UI.WebControls.Controls.PageContainer.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) SessionID: m3wyerjrugyfaert5j52ughm Request URL: /ViewPage.aspx?Id=98b6b04a-cf5e-44ee-966a-e4a566f2b773&defValuesId=c32f1304-af1a-42df-a6cd-b77432d00cc8&createWithUId=a1652dea-856a-4cce-939d-c4acb2637d58 Request Path: /ViewPage.aspx Request UrlReferrer: http://crm.factor.ru/ViewPage.aspx?Id=5e5f9a9e-aa7d-407d-9e1e-1c24c3f9b… Request Type: GET User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 User Host Address: 10.131.12.236 User: Sau_EV Is Authenticated: True Authentication Type: Forms Is Secure Connection: False Application Version: 5.2.0.653 Application Path: C:\inetpub\BPMonline\ Application Virtual Path: / Application Trust Level: Full Machine Name: MSK01NFCS064 Is Local: False Process ID: 1272 Process Name: w3wp.exe Process Account Name: IIS APPPOOL\BPMonline Thread Account Name: IIS APPPOOL\BPMonline OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1 Net Framework Version: 4.0.30319.239 DBExecutor Type: MSSqlExecutor
Илья, видимо, система пытается вычитать данные об этом объекте из Журнала изменений, но там ничего нет.
Было бы лучше удаленно подключиться и посмотреть, в чем проблема.
Не могли бы Вы написать на support.team@bpmonline.com для скорейшего разрешения проблемы?
BPM 5.4.0 Может кто сталкивался с такой проблемой. Есть две детали, но смотреть их по отдельности, переключаясь от одной к другой, неудобно.
Необходимо их объединить. Так чтобы в одном окне были два этих реестра (один под другим или слева и справа неважно). Как сделать, есть ли примеры?
Здравствуйте, Александр!
Такая деталь реализована в BPMonline Service Desk (раздел "Инциденты" (или "Обращения"), деталь "Комментарии").
Принцип следующий:
на страницу детали добавляется два layout'а. В один помещается собственно реестр детали, а в другой - страница реестра дополнительной детали:
Прикрепил архив с самим окном и связанными схемами (объект "Комментарий" и страница реестра файлов в комментарии), без которых, скорее всего, импортировать окно не получится.
Подскажите лучший способ отслеживать(сравнивать что было, что стало) изменение исходного кода в конфигурации. Например я хочу узнать кто(это я могу увидеть сейчас) и что изменил.
У меня идея в том, чтобы делать полный экспорт исходного кода по конфигурации. Хорошо ли это?
Понятно, что есть конфигурации, но как сравнить исходный код.
"Антон Сидоров" написал:У меня идея в том, чтобы делать полный экспорт исходного кода по конфигурации. Хорошо ли это?
Понятно, что есть конфигурации, но как сравнить исходный код.
BPM 5.4.0 Необходимо ставить в поле "Ответственный" в карточке Задачи не только контактов с типом "Сотрудник своей организации", но и с другим типом (допустим его id записан в переменную OtherTypeId)
В карточке задачи в скрипте ChildInitAfterParentScriptExecute есть такой код (наверняка он фильтрует)
Александр, думаю, вы немного ошиблись вместо FilterComparisonType.Or надо LogicalOperationStrict.Or.
Но все равно в результате этого у меня выводит пустой список.
В Журнале процессов на детали Элементы процесса, можно отобразить поле Ответственный, что в данном случае оно означает, и как его заполнить в самом процессе
Добрый день! При попытке заменить элемент "Карточка редактирования" на действие "открыть страницу" возникло два вопроса. (вызвано отсутствием у элемента "Карточка редактирования" события о закрытии окна)
1. как действием "открыть страницу" открыть существующий элемент?
2. как привязать существующий документ к процессу?
создал тестовый процесс
Хотелось сделать это: добавляю документ, привязываю к процессу и открываю в карточке.
По факту получается следующее:
документ создается, привязка не происходит, в карточке открывается новый документ.
Ведь запись Вам не нужно создавать, она уже создана. Для того, чтобы ее открыть, достаточно передать идентификатор в DefValues, что Вы и делаете вот тут:
defValues.Add("RecordId", DocumentId);
Обратите внимание, название параметра чувствительно к регистру.
Здравствуйте, Илья!
Процесс импортировать не получится, так как в нем используются элементы не из базовой конфигурации, то есть Вам также нужно предоставить страницы и объекты, используемые в процессе.
Либо создайте простой процесс, в котором просто будет открываться какая-нибудь базовая страница, чтобы локализировать проблему.
Также настораживает то, что начальное событие "AgreementedPageClose" находится в событийном подпроцессе, а обработчик - нет. Это, конечно, не влияет на открытие страницы, но лучше так не делать.
И еще, какое действие указано в элементе "Создать документ 'Проверка СКА'"?
Есть ли у БП, созданного в конфигурации журналирование, по аналогии с БП созданным в разделе, чем они отличаются, и можно ли переннести БП из конфигурации в данный раздел
Здравствуйте, Ольга!
Процессы, созданные из раздела "Конфигурация" отличаются от созданных из раздела "Дизайн процессов" только свойством "Тег".
У БП из раздела "Дизайн процессов" это свойство имеет значение "Business Process" и такие процессы имеют журналирование и отображаются в разделе "Дизайн процессов":
У других БП это свойство не заполнено, и они считаются служебными, но его можно заполнить и они появятся в разделе "Дизайн процессов".
Где осуществляется привязка процесса к объекту, чтобы можно было выбрать процесс из меню. Хочется сделать также как например в карточке контрагента происходит вызов процесса импорта при нажатии на "Импортировать контрагенты"