Добрый день!

Вы не могли бы помочь в следующем вопросе:

Компания Roistat (сквозная аналитика) которая занимается настройкой интеграции с CRM, столкнулась с проблемой загрузки полей.

По рекомендации Ваших сотрудников в моем обявлении https://community.terrasoft.ua/questions/element-orderstatuscollection-ne-nayden я перенаправила ответ сотрудникам Roistat.

Roistat выполнили запрос /0/ServiceModel/EntityDataService.svc/$metadata и убедились, что сейчас нужного элемента нет. Полный запрос /0/ServiceModel/EntityDataService.svc/$metadata можно выполнить из браузера(если авторизован в CRM): https://betapro.bpmonline.com/0/ServiceModel/EntityDataService.svc/$metadata В ответе все "части" CRM, но среди них нет поля OrderStatusCollection.

 

Этот статус необходимо получить компании Roistat, чтобы подтягивать/отображать данные у себя в аналитике. Связь состоит в том, что все входящие заявки получает Roistat, далее отправляет заявки в CRM, а CRM отдает статус по той или иной заявке. Ранее интеграция работала и все статусы отображались. Сейчас Roistat не может найти вообще "статусов" (OrderStatusCollection).

 

Подскажите, как сотрудникам Roistat провести компиляцию?

И почему ранее статусы Roistat получали, а сейчас нет?

Буду благодарна если Вы поможете в этом вопросе.

Нравится

1 комментарий
Лучший ответ

Дело в том, что на сайте нет объекта OrderStatus, поэтому запрос получения OrderStatusCollection завершается с ошибкой. Необходимо обратиться к разработчику интеграции и выяснить, насколько критична потребность в объекте OrderStatus, возможно интеграцию стоит модифицировать для работы с другими объектами.

Дело в том, что на сайте нет объекта OrderStatus, поэтому запрос получения OrderStatusCollection завершается с ошибкой. Необходимо обратиться к разработчику интеграции и выяснить, насколько критична потребность в объекте OrderStatus, возможно интеграцию стоит модифицировать для работы с другими объектами.

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

Доброе утро! 



Подскажите пожалуйста, сейчас при запросе статусов https://betapro.bpmonline.com/0/ServiceModel/EntityDataService.svc/OrderStatusCollection В ответ получаем ошибку с описанием "Элемент OrderStatusCollection не найден.

 

С чем это может быть связано? 

Прикрепленные файлы

Нравится

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

Здравствуйте!

 

Просьба ознакомится с описанием интеграции по ODATA.

Рекомендую провести полную компиляцию и после повторить попытку. Так же найдите объект "OrderStatus" в метаданных по ссылке "/0/ServiceModel/EntityDataService.svc/$metadata"

Zarichnyi Anton,  здравствуйте! 

Благодарю за ответ!

 

Выполнили запрос  /0/ServiceModel/EntityDataService.svc/$metadata и убедились, что сейчас нужного элемента нет. Полный запрос /0/ServiceModel/EntityDataService.svc/$metadata можно выполнить из браузера (если авторизован в CRM): https://betapro.bpmonline.com/0/ServiceModel/EntityDataService.svc/$metadata В ответе будут все "части" CRM, и необходимо удостовериться, что среди них будет OrderStatusCollection. Но сейчас это их нет. Не работает загрузка статусов.

 

Этот статус необходимо получить компании Roistat, чтобы подтягивать/отображать данные у себя в аналитике. Это они сейчас пытаются выполнить этот запрос. 

Связь состоит в том, что все входящие заявки получает Roistat, далее отправляет заявки в CRM, а CRM отдает статус по той или иной заявке. Ранее все так и работало. Сейчас Roistat не может найти вообще "статусов" (OrderStatusCollection).

 

Подскажите, как сотрудникам Roistat провести компиляцию?

И почему ранее статусы Roistat получали, а сейчас нет?

Заранее спасибо!

Анастасия,

 

Вам нужно в метаданных искать не "OrderStatusCollection", а "OrderStatus", так как "Collection" - это требование ODATA3. Компиляцию должны провести Вы из конфигурации своей системы. Причин, почему так получилось, много и без детального анализа я ответить на Ваш вопрос не смогу. 

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

Добрый день, была добавлена новый объект "Трудозатраты", он выведен на форму обращения следующим образом.Изображение удалено.

поле "Описание выполненных работ" это строка неограниченной длины оно многострочное.

Изображение удалено.

Как сделать его больше в высоту, поскольку описание может быть хоть на две страницы, а смотреть его в этой строчке неудобно.

Нравится

1 комментарий
Лучший ответ

Если деталь 'Трудозатраты' редактируемая, то используя стандартную функциональность никак.

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

Если деталь 'Трудозатраты' редактируемая, то используя стандартную функциональность никак.

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

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

Здравствуйте подскажите пожалуйста каким образом можно заблокировать все элементы на карточке редактирования активности (поля, определенные кнопки, детали) т.е. что-бы пользователь мог посмотреть но не мог вносить изменения. Сделать это нужно именно кодом.! какой метод за это отвечает, ? т.е наверное при загрузке страницы есть какая то коллекция элементов , которую можно заблокировать?

Нравится

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

Добрый день Андрей!!!

я предлагаю вам ничего не кодировать, а выполнить вашу задачу путем разграничения прав "по колонкам". Для выполнения данной задачи прошу ознакомиться с документацией по Администрированию и настройки прав. Ссылка на Академию террасофт: Раздел [Доступ к объектам] Прошу обратить внимание "Администрирование по колонкам", "Администрирование по записям". именно данный метод вам подойдет для решения вашей задачи. Будут вопросы пишите.

Михаил спасибо за ответ, но так наверное, решить задачу не получиться, т.к поля должны блокироваться и разблокироваться по условию :
(поля должны быть заблокированы если с момента даты завершения Активности прошло более 10 дней и соответственно поля должны быть доступны если прошло менее 10 дней )

Тогда вам Андрей требуется доработка и переработка всей карточки редактирования. Но здесь возникает вопрос и определенная сложность. А если Задача (Активность) участвует в бизнес-процессе, тогда как вы будете использовать данную карточку? Ведь тогда Бизнес-процесс просто будет зависший. Это один момент. Второй момент во время исполнения Бизнес-процесса на карточки редактирования могут появляться Генерируемые поля. С ними что вы будите делать. Я думаю вы слишком замудреную поставили задачу. Ее решить можно но нужно будет предусмотреть все. А это переписать и заместить придется не только карточку редактирования Активности. Может вы как-то упростите задачу. И тогда я вам подскажу как правильно ее решить.

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

Добрый день!
В бизнес-процессе есть автогенерируемая страница , в которой в качестве элементов созданы два поля типа дата: дата начала(NeedStartDate) и дата окончания(NeedEndDate).
Соответственно на данной странице необходимо будет заполнить эти два поля.

Скажите, пожалуйста, как в скрипте бизнес-процесса впоследствии правильно обратиться к значению этих двух полей ( свойств объекта автогенерируемая страница).

Нравится

1 комментарий

Добрый вечер, Дарья!

Значения данных полей Вы можете использовать в бизнес процессе, выбрав соответствующие параметры из элемента автогенерируемая страница.

В случае, если Вы хотите использовать введенные пользователем параметры в элементе "Задание-сценарий", тогда обратиться к параметру Вы можете следующим образом:
AutoGeneratedPageUserTask[N].FieldName,
где AutoGeneratedPageUserTask[N] - название автогенерируемой страницы в процессе (именно название, а не заголовок), а FieldName - код элемента на автогенерируемой странице (задается при создании).

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

В таблице tbl_Opportunity есть поле WorkflowItemID, я так понимаю оно отвечает за связь продажи с процессом, однако, оно пустое во всех записях. Как отделить продажи созданные по процессу от "ручных" продаж?

Нравится

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

Олег, данное поле использовалось в предыдущих версия Terrasoft и оставлено для совместимости. В новых версиях WorkflowItemID связан только с задачами.

Можно добавить в функцию ExecuteOpenWindow скрипта wa_OpenWindowScript такой блок:

// Заполнение значения по умолчанию для поля WorkflowItemID
var DefaultValues = GetNewDictionary();
DefaultValues('WorkflowItemID') = WorkflowItemID;
Window.Attributes('DefaultValues') = DefaultValues;
// Заполнение завершено

Если в датасете есть поле 'WorkflowItemID', оно будет заполнено; иначе - всё останется без изменений.

Подробнее данный вопрос рассматривался здесь: http://www.community.terrasoft.ua/forum/topic/5368

Анна, спасибо! Будем пробовать.

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

Зачастую при построении бизнес-процесса необходимо огранизовать передачу параметров из диаграммы в элементы, из одного элемента в другой.
В версии 3.3 появился очень удобный функционал, который делает это автоматически и избавляет от необходимости прописывать передачу параметров вручную.
Итак, для того, чтобы передать параметры в бизнес-процессе, необходимо выполнить следующее:
1. Открываем сервис диаграммы. В свойствах диаграммы выбираем Parameters. В появившемся окне создаем параметр диаграммы, например DocumentID. Сохраняем изменения.
2. В том случае если бизнес-процесс состоит из задач, то необходимо также создать этот параметр и для задач. Для этого открываем сервис wa_TaskAction. В свойствах этого действия также есть Parameters. Выбираем это свойство, в появившемся окне добавляем параметр DocumentID для действия задачи. Сохраняем изменения.
3. Далее возвращаемся в диаграмму процесса. Нажимаем на кнопку "Связи параметров". В появившемся окне нужно связать параметр диаграммы и параметр элементов.
Визуально окно разделено на три части. В верхней находятся параметры диаграммы. В нижней левой части перечень всех элементов процесса, в нижней центральной части - параметры каждого из элементов. Так вот, выделяем задачу слева, выбираем параметр задачи DocumentID, нажимаем на кнопку "Изменить". В окне выбираем опцию "Параметр диаграммы" и указываем DocumentID.
Аналогичным образом связываем параметры с каждой задачей.
Сохраняем изменения.
И все...

Желаю удачи!

С уважением,
Мельникова Екатерина

Нравится

Поделиться

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

Наверняка каждый, кто создавал бизнес-процесс в системе Terrasoft хотя бы раз сталкивался с задачей раздать разные права доступа пользователям на элемент бизнес-процесса. Вариант, когда пользователь 1 раздает вручную права доступа например, на документ по процессу пользователю 2 не совсем удобен (нужно всегда об этом помнить, делать лишние движения руками, мышью и т.д.). Волей-неволей задаешься задачей реализовать это один раз и больше не задумываться о подобных мелочах.
Предлагаю для решения задачи создать хранимую процедуру, которая и будет создавать нужные права доступа, а затем вызывать эту процедуру в любом месте скрипта бизнес-процесса.
Привожу текст хранимой процедуры в прикрепленном файле. Она предназначена для раздачи полных прав доступа одному пользователю и прав только на чтение другому (для документа).

После создания этой хранимой процедуры Вам необходимо создать ее обработку уже в Terrasoft CRM Administrator с передачей используемых в ней параметров. Это делается следующим образом:

function SetSpecialPermission(User1ID, User2ID) {
 if (IsEmptyValue(User1ID) || IsEmptyValue(User2ID)) {
  return;
 }
 var IsAdmin = Connector.CurrentUser.IsAdmin;
 IsAdmin = IsAdmin ? 1 : 0;
 var SQL = "exec tsp_SetSpecialPermissions :P1, :P2, :P3";
 var Param = System.CreateObject("TSObjectLibrary.Parameters");
    AddParameter(Param, pdtGUID, User1ID).Name = 'P1';
    AddParameter(Param, pdtGUID, User2ID).Name = 'P2';
    AddParameter(Param, pdtGUID, IsAdmin).Name = 'P3';
 Connector.DBEngine.ExecuteCustomSQL(SQL, Param);
}

Затем в нужном месте скрипта бизнес-процесса, например на событии OnAfterExecute задачи процессе, вызвать эту процедуру, указав ID пользователей.

 function Action1OnAfterExecute(ActionItem, IsComplete)

 var User1ID = '{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}';
 var User2ID = '{B8ABDC0D-D36E-42C5-B1F6-2AD425F6CAD0}';
 SetSpecialPermission(User1ID, User2ID);
}

В результате, после перевода элемента бизнес-процесса в завершенное состояние, права доступа на документы (в предложенном примере) будут перераспределены в соответствии с запросом хранимой процедуры.
По аналогии с предоставленным примером Вы можете реализовать раздачу прав доступа на сколько угодно пользователей в необходимых Вам разделах.

Надеюсь, мой пример сократит затраты Вашего драгоценнейшего времени на реализацию функционала раздачи прав доступа.

С уважением,
Мельникова Екатерина

Нравится

Поделиться

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