Коллеги, добрый день!

Нам нужно запустить интеграцию с одним сайтом, но api там нет, поэтому мы парсим страницу и забираем нужные данные. Парсер реализован как конфигурационный сервис на C#.

Чтобы нас сразу не забанили, у нас задача делать авторизацию только по факту появления ошибки что пользователь не авторизован.

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

Каким образом это можно реализовать в системе?

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

Нравится

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

Добрый день.

Классических варианта 2:

1. Хранение на уровне приложения. Статическая переменная в вашем классе или другом отдельном классе по работе с Cookie (например можно завести класс CookieManager), в которой будет храниться получаемый вами CookieContainer.

2. Хранение на уровне Redis. В общем-то Redis позволяет хранить данные любого типа по принципу "ключ-значение". 

Добрый день.

Классических варианта 2:

1. Хранение на уровне приложения. Статическая переменная в вашем классе или другом отдельном классе по работе с Cookie (например можно завести класс CookieManager), в которой будет храниться получаемый вами CookieContainer.

2. Хранение на уровне Redis. В общем-то Redis позволяет хранить данные любого типа по принципу "ключ-значение". 

Толмачев Дмитрий Юрьевич,

Дмитрий, спасибо! будем пробовать).

 

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

Добрый день,

при попытке зафиксировать пакет в хранилище выдаёт ошибку "При работе с хранилищем произошла ошибка" без каких-то пояснений, причем прямо на странице конфигурации, а не в отдельном окошке, после коммита. В Error.log довольно неинформативное сообщение:

Terrasoft.WebApp.BaseSvnPage LogAndShowErrorMessage - Terrasoft.Common.SourceControlOperationException: При работе с хранилищем произошла ошибка

   в Terrasoft.WebApp.BaseSvnPage.GetSourceControlSaveType(SysPackage package)

   в Terrasoft.WebApp.WorkspaceExplorerModule.b__421_0()

   в Terrasoft.WebApp.BaseSvnPage.ExecuteSvnOperation(ExecuteSvnOperationMethod svnOperationMethod)

Другие пакеты коммитятся/апдейтятся, т.е. дело не в svn. Можно ли как-то узнать, что ему не нравится, без муторного перебора всех схем?

Нравится

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

Попробуйте сначала обновить его, потом снова зафиксировать.

Попробуйте сначала обновить его, потом снова зафиксировать.

Была такая же проблема,она решилась повторной авторизацией в хранилище.(Авторизация -> обновление с него -> потом снова авторизация и попытка зафиксировать пакет).

Помогло, спасибо! Обновил из хранилища и после этого зафиксировалось без проблем.

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

Хочу из приложения вычитать контакты согласно документации https://academy.terrasoft.ru/documents/technic-sdk/7-11/dataservice-cht…

Делаю запрос  - 10.000 контактов, всё ок, 100.000 - ProtocolError.

Каков максимальный объем данных в записях или байтах для DataService/SelectQuery?

Нравится

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

20000 для любого esq. Указывается в web.config сервера

20000 для любого esq. Указывается в web.config сервера

Варфоломеев Данила,

Спасибо!

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

Коллеги, здравствуйте! Нужна помощь.



В bpm'sales enterprise есть функционал работы со счетами. при добавлении в счет новых продуктов, открывается отдельная страница с удобным поиском.

 

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



Мы добавили кастомную сущность - Коммерческое предложение. В нем так же надо реализовать добавление товаров. Подскажите, можно ли использовать функционал реализованный в Счетах и как это сделать.



Пока реализовали через lookup-поле и выбор продукта в модальном окне. Но это не так удобно, как в случае со счетами.

Нравится

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

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

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

Коллеги .добрый день.

При переносе с одного стенда на другой возникла проблема актуализации переводов.

А именно, перевел нужные названия и залил в данные SysTranslation. 

При переносе данные поставились (в бд новые значения), но по факту под разной локализацией значения старые.

Раскопал, что значения берутся по факту для справочников из таблиц типа SYSНазвание_ОбъектаLcz. Тут как раз старые значения, как в них обновить?

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

В переводах кнопка "актуализация данных" не помогает.

Нравится

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

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

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

Таблицы типы SysОбъектLcz нельзя привязать к пакету, т.к. их нет в конфигурации. 

Может, они подхватятся при синхронизации записей основного справочника?

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

можете пож-ста поподробнее.

Видимо, после изменения наполнения справочника его не переносили пакетами на другую базу.

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

Всем привет!

Стоит задача настройки прав доступа к деталям в мобильном приложении (режим работы офлайн). Права на детали должны соответствовать правам на карточку записи раздела, в которой детали размещены. Например, добавлять, изменять и удалять записи в детали Знаменательные события контрагента пользователь сможет только, если у него есть право чтения и редактирования соответствующей мастер-записи раздела Контрагенты. Буду признателен за подсказку, как правильно решить эту задачу. Пока кроме динамической синхронизации прав на карточку и вложенные в нее детали через событийные БП, ничего на ум не приходит.

Нравится

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

Да, можно бизнес-процессом, там есть специальный элемент изменения прав. Процесс будет отрабатывать на сервере при создании или изменении через веб-интерфейс, либо при синхронизации новой или изменённой записи с мобильного. Если же пользователь создал запись и ещё не синхронизировал, то она и так его и права на деталь тоже есть. 

Хотел бы дополнить, что БП будут запускаться только в онлайн-режиме МП.

Для оффлайн-режима это не актуально.

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

Установили BPM версии 7.12. БД Oracle. Настроили согласно инструкции. При входе под Supervisor возникает ошибка.

OS:Windows Server 2012 R2

IIS 8.5

Ошибка вовложенной файле.

Вчера был предоставлен ответ ниже

"Адасюк Валерий Викторович

11 июля 2018 12:23

В адресной строке после адреса сайта допишите 0/dev (например, если сайт localhost:82, то ссылка будет следующая localhost:82/0/dev). Это прямая ссылка в конфигурацию системы. На этой страницы в блоке действий выберите "компилировать все". После завершения компиляции очистите Redis и можете снова пробовать авторизоваться на сайте."

Попробовали, но ошибка также осталась.

Можете подсказать в связи с чем такая проблема выходить?

Заранее благодарю!

 

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

Нравится

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

А где вложенный файл ? невижу !

Асылан, 

Похоже что проблема с web-socket'ами.

Тут инструкция, проверьте настройки: https://academy.terrasoft.ru/documents/studio/7-12/nastroyka-vebsoketov…

 

Tsopa,

Если посмотреть инструкцию по настройке Web.config все соответствует по указанному настройки которую вы указали. Но при проверке все ли нормально настроен система, проверил через javascript команду Terrasoft.ServerChannel.ping() , результат выдал ошибку. Ниже скриншот.  

Этот же дистрибутив, развернутый локально на ноутбуке на Windows 7 работает нормально. Возможно проблема в каких-то компонентах Windows Server 2012(хотя перепроверили раза три) или в IIS.

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

Для анализа вопроса направьте, пожалуйста, в техподдержку полные логи приложения, файлы ConnectionStrings, оба web.config'а, скриншоты установленных компонентов, настройки сайта в IIS и версии .NET Framework, Redis и Visual C++.

Добрый день. Вопрос уже не актуален. Поставили все с нуля, и проблема при загрузке не воспроизвелась

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

Установили BPM версии 7.12. БД Oracle. Настроили согласно инструкции. При входе под Supervisor возникает ошибка.

текст в файле во вложение

OS:Windows Server 2012 R2

IIS 8.5

Текст ошибки :

Date: 7/11/2018 1:44:25 AM

Date (UTC): 7/11/2018 8:44:25 AM

Exception Message: Object reference not set to an instance of an object.

Exception Type: System.NullReferenceException

Exception Source: Terrasoft.Messaging.Common

Exception Stack Trace:

   at Terrasoft.Messaging.Common.ClientChannelHelper.GetConnectionParamsInitScript(Uri appUrl)

   at Terrasoft.WebApp.Nui.ViewModule.SetupWebSocketConnectionParams()

   at Terrasoft.WebApp.Nui.ViewModule.Page_Load(Object sender, EventArgs e)

   at System.Web.UI.Control.OnLoad(EventArgs e)

   at System.Web.UI.Control.LoadRecursive()

   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

SessionID: teyxvagwz43zhbinbjhx4c0u

Request URL: /0/Nui/ViewModule.aspx

Request Path: /0/Nui/ViewModule.aspx

Request UrlReferrer: http://localhost/

Request Type: GET

User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

User Host Address: ::1

User: Supervisor

Is Authenticated: True

Authentication Type: Forms

Is Secure Connection: False

 

 

Нравится

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

В адресной строке после адреса сайта допишите 0/dev (например, если сайт localhost:82, то ссылка будет следующая localhost:82/0/dev). Это прямая ссылка в конфигурацию системы. На этой страницы в блоке действий выберите "компилировать все". После завершения компиляции очистите Redis и можете снова пробовать авторизоваться на сайте.

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

Добрый день Комрады.

В общем пытаюсь реализовать отправку уведомления.

Проблема в том что та инструкция которая есть не подходит для моего случая.

https://academy.terrasoft.ru/documents/technic-sdk/7-12/kak-sozdavat-po…

В Бизнес процессе происходит следующее, стоит событие на изменение стадии Продажи.

Потом идет Скрипт-таск. Интерпретируемый.

Проблема в том что при вызове 

var remindingConfig = new RemindingConfig(campaign);

Ругается на ошибку 

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в Terrasoft.Core.Entities.Entity.get_PrimaryColumnValue()
   в Terrasoft.Configuration.RemindingConfig..ctor(Entity entity)
   в Terrasoft.Core.Process.UsrProcess4MethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

 

var id = Get<Guid>("ProcessSchemaParameter1");
Set("Par2",id.ToString());
var userConnection = context.UserConnection;
 
var campaignESQ = new EntitySchemaQuery(userConnection.EntitySchemaManager, "Opportunity");
var campaignTitle = campaignESQ.AddColumn("Title").Name;
var campaignid = campaignESQ.AddColumn("Id").Name;
var campaign = campaignESQ.GetEntity(userConnection, id);
 
 
if (campaign == null) 
{
   return false;	
}
DateTime remindTime = DateTime.Now;
 
IRemindingTextFormer textFormer = ClassFactory.Get<UsrLeadRemindingTextFormer1>(
	                                 new ConstructorArgument("userConnection", userConnection));
 
string leadName = campaign.GetTypedColumnValue<string>(campaignTitle);
string subjectCaption = textFormer.GetBody(new Dictionary<string, object> {
            {"LeadName", leadName}
        });
 
string popupTitle = textFormer.GetTitle(null);
 
var remindingConfig = new RemindingConfig(campaign);
remindingConfig.AuthorId = userConnection.CurrentUser.ContactId;
remindingConfig.ContactId = userConnection.CurrentUser.ContactId;
remindingConfig.NotificationTypeId = RemindingConsts.NotificationTypeRemindingId;
remindingConfig.RemindTime = remindTime;
remindingConfig.Description = subjectCaption;
remindingConfig.PopupTitle = popupTitle;
var remindingUtilities = ClassFactory.Get<RemindingUtilities>();
remindingUtilities.CreateReminding(userConnection, remindingConfig);
 
 
return true;

 

Может кто  нибудь сделать внятную инструкцию как отправлять уведомления через БП скриптом ???

Нравится

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

Добрый день!

Судя по call stack у вас campaign == null

Проверьте

Артем Гура,

А нет, не заметил проверку :)

Для того, чтобы понять что не так, нужно произвести debug. С виду все нормально. Обратитесь в поддержку, но для отладки нужна будет ссылка на обезличенную копию БД. Только таким образом можно будет установить причину, т.к. отладка по картинке сложная штука :)

Спасибо!

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

Заметил такую особенность, что при переносе не-компилируемых БП с C# сценариями через экспорт-импорт не понятно как их скомпилировать.

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

Может я что-то не так делаю?

Нравится

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

Я обычно переношу БП, ПКМ (по схеме бп)-> сгенерировать для выбранных, потом компилирую для изменённых. Вроде срабатывает

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

Алексей-Карягин,

¯\_(ツ)_/¯ Ну тут мои полномочия всё) Надо спрашивать разрабов ядра(?).

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