Добрый день!

Правильно ли понимаю, что Creatio Marketing из коробки поддерживает интеграцию только с сервисами рассылки UniOne и ElasticEmail?

 

Подскажите, пожалуйста, есть ли возможность интегрировать его со сторонними сервисами рассылки?

Нравится

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

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

Нравится

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

И добавлю - не перенести при этом какие-то данные, использовавшиеся для тестов

"Владимир Соколов" написал:не перенести при этом какие-то данные

При этом перенести таки наполнение справочников наверняка будет полезно вместе с Id созданных там записей

Для переноса можно воспользоваться утилитой WorkspaceConsole.

Внизу этой темы есть ссылки с инструкциями (http://www.community.terrasoft.ru/forum/topic/11053)

Если правильно настроить "Данные" можно перенести и справочники с наполнением и не перенести тестовые данные.

Спасибо.
Вопрос по этой инструкции:

5. В D:\WorkspaceConsole\Packages копируем файлы пакетов (файлы-архивы *.gz, эти архивы НЕ нужно распаковывать), которые будем применять.

Как выгрузить файлы и откуда? Допустим, мне нужны не все сервисы в пакете, а какой-то один( например, бизнес-процесс)

Дарья, эти файлы - все пакеты, которые находятся в папке Packages Вашего сайта.
Если Вы хотите перенести только один пакет, сделайте следующее:
1. Перенесите его и пакет Manifest в D:\WorkspaceConsole\Packages.
2. Внесите поправки в файл в архиве Manifest.gz, а именно:

  • в массиве "Packages" оставить только элемент с атрибутом Name = "имя пакета"
  • у этого элемента очистить массив DependsOn

Есть пути по переносу только одной схемы, но в будущем при обновлении это может вызвать некоторые проблемы, поэтому правильно будет все же перенести весь пакет, в котором был описан сервис.

Дарья, пример команды для выгрузки рабочего пространства (из БД) в репозиторий (zip-архив)

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

При этом:

destinationPath
Путь к локальной папке на диске для данных приемника.
Обязательный параметр.
Используется для операций: InstallFromRepository, ConcatRepositories, PrevalidateInstallFromRepository

SaveDBContent - работает в комбинации с параметром contentTypes. Если он содержит Data, то сохраняются в папку destinationPath данные всех схем в формате json, если - LocalizableData, то сохраняются в формате xml данные схем объектов (необходимо для локализации конфигурации), если - Resources, то выгружаются ресурсы схем в формате xml (так же необходимо для локализации, но уже самых схем объектов), если - Repository то в папку destinationPath выгружается рабочее пространство из БД в виде zip архивов

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

"Толмачев Дмитрий Юрьевич" написал:Если правильно настроить "Данные" можно перенести и справочники с наполнением и не перенести тестовые данные.

А "правильно" - это как и где?

Данные настраиваются на вкладке "Данные"

Данные

"Правильно" - это зависит от того какая задача у вас стоит при переносе через пакеты.

"Резвов Роман" написал:Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

На версии 7.8.0.3374 не выгружается Manifest.

"Резвов Роман" написал:Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

На версии 7.8.0.3374 не выгружается Manifest.

"Коновалов Игорь" написал:
Резвов Роман пишет:

Terrasoft.Tools.WorkspaceConsole.exe -operation=SaveDBContent -workspaceName=Default -destinationPath=D:\Temp\Repository\ -contentTypes=Repository

На версии 7.8.0.3374 не выгружается Manifest.

Начиная с версии 7.8.0.3374 манифест действительно не выгружается. Причина в том, что для накатки пакетов также не требуется манифест.

"Демьяник Алексей" написал:Начиная с версии 7.8.0.3374 манифест действительно не выгружается. Причина в том, что для накатки пакетов также не требуется манифест.

Поддержка on-demand для установки обновлений запросила у меня этот пакет.

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

Добрый вечер!
Друзья, может кто-нибудь пытался как-то заставить террасофт обновить весь кэш и настройки форм\сервисов?

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

Может можно как-то сделать какую-нибудь кнопочку на форме для администратора, чтобы она обновляла подкаченные сервисы?!

Заранее благодарен за потраченное время

Нравится

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

Я в таких случаях запускаю карточку прямо из админа. При этом изменения в сохранённых скриптах учитываются.

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

может как-то все же возможно принудительно обновить кеш всего ТС клиента?
( пробовал удалять папки с кешем - никакого эффекта )

как вы это себе представляете? Если сервис окна (или чего угодно) уже загружен - с ним ничего не сделать. Это нужно в ядро добавлять возможность динамической загрузки и обновления сервисов, но еще большой вопрос можно ли это адекватно сделать

День добрый всем!
К сожалению без перезапуска никак, так как сервисы уже загружены, создана масса объектов, при этом в определенно заданной последовательности, согласно написанным скриптам. Если же вы измените только один сервис, который изменяет дальнейшую логику работы, создает совершенно другие объекты, то как вы думаете по какому принципу уничтожить все лишнее, создать новое? А если в этот момент эти объекты используются в Outlook/Word/Excel, JobManager? Если данную функциональность все же рассмотреть, то помимо выше сказанного, нужно реализовывать нотификацию между всеми пользователями, которые работают в данный момент, чтобы у них очистились все кэши + обновились сервисы из базы. Но тут масса вопросов, например, если у этого пользователя в данный момент открыта карточка, скрипт которой нужно обновить, то как это делать, ведь набор функций, обработчиков, контролов мог измениться.

В общем, функциональность такого рода породит гигантское количество ошибок, утечек памяти и т.д.

Спасибо за крайне развернутые ответы
Но вы немного не так меня поняли

Я не хочу пользоваться данным функционалом (если бы он был, конечно же) со стороны пользователей
Он нужен исключительно для тестирования администратором только что написанного им кода на той же машине, на которой пишется код

И я не вижу особых технических проблем в полном обновлении всего. За исключением, конечно же, невозможности залезть в ядро

Интеграцию с аутлуком и т.п. в расчет я не беру, так как они чаще не важны в таких тестах. Да и даже если и нужны - всегда можно библиотеку выключить и включить снова.
А на счет открытых форм и окон.. - при перезаходе в ТС, они, как бы, тоже не остаются открытыми :) Т.е. вполне можно их грохнуть всех и даже и не открывать снова. Нужно будет - сам открыть всегда могу.

Т.е. можно было бы просто убить все объекты, переменные, оставить только чистую форму ТС wnd_Main и снова аккуратненько подобрать все из базы

"Калинин Иван" написал:Я не хочу пользоваться данным функционалом (если бы он был, конечно же) со стороны пользователей
Он нужен исключительно для тестирования администратором только что написанного им кода на той же машине, на которой пишется код

В вашем случае вы не будет пользоваться, а кто-то будет и будут нарекания, поэтому если такое реализовывать - необходимо учесть абсолютно все

"Калинин Иван" написал:А на счет открытых форм и окон.. - при перезаходе в ТС, они, как бы, тоже не остаются открытыми :) Т.е. вполне можно их грохнуть всех и даже и не открывать снова. Нужно будет - сам открыть всегда могу.

Как объяснить пользователю, что все данные в форме, которую он редактировал, не сохранились, потому что ее "грохнули". А если пользователь делал важный звонок, а карточка с объектом грохнулась...

В общем, в вашем случае предлагаю написать скрипт, в которм будет функция main() и пользоваться из TSAdmin'а кнопкой F9. А в этой функции вы можете сделать все чтот хотите. Например, если нужно запустить с главного окна, то:

function Main() {
  var MainWindow = Services.GetNewItemByUSI('scr_Main');
  MainWindow.Prepare();
  MainWindow.Show();
}

Я что-то, честно говоря, не понимаю вашего подхода
В данной теме я спрашиваю для себя, а не для кого-то
Конкретно в моем случае совершенно не важно, что будет с данными и карточками
Мне важно учесть лишь смены кода в карточке\скрипте
И я прошу помощи в решении именно моей проблемы, а не кого-то, кто может случайно забрести в этот пост и, применив совет из поста (даже не посмотрев, как он работает и не вчитавшись в вопрос) на своей рабочей версии террасофта, получит сброшенные данные из карточек

Я прошу лишь рассказать мне, как это можно сделать в клиенте
Заметьте, пожалуйста, именно в клиенте

Собственно, к сожалению, вопрос за эти два дня никуда не исчез и, даже больше, остался прежним.

Как обновить кэш клиента из этого же клиента посредством нажатия кнопки\галки\чего-угодно иного ?

И, не забывайте пожалуйста, что грамотный программист никогда не пишет на боевой базе.
Т.е. новый модуль, тестирование которого и происходит собственно, пишется на тестовой базе\сервере\версии террасофта.

Таким образом ситуация, когда

"Артем Гура" написал:Как объяснить пользователю, что все данные в форме, которую он редактировал, не сохранились, потому что ее "грохнули". А если пользователь делал важный звонок, а карточка с объектом грохнулась...
просто невозможна

есть кеш, а есть загруженные данные - стек приложения. Обнулив кеш (закешированные сервисы, хранящиеся в папке кеша на диске) во время работы вы получите только некоторе количество ошибок без обновления уже загруженных в память сервисов.
Если вы каким-то образом обнулите стек - чем это будет отличаться от перезапуска? Разве что пароль вводить не надо - но это и так можно автоматизировать

"Андросов Дмитрий" написал:Если вы каким-то образом обнулите стек - чем это будет отличаться от перезапуска? Разве что пароль вводить не надо - но это и так можно автоматизировать

сымитировать перезапуск будет, как минимум, быстрее

Иван, давайте конструктивно:
1. Что значит кэш?
Кэш в Terrasoft'е хранит сервис, который не отличается от сервиса в базе
2. Как происходит считываение из кэша?
При создании объекта этого сервиса. Кэш сверяется с базой и выдается решение откуда грузить.
3. Если хотите нажать на кнопку "вычитать из базы", то вам нужно "пересоздать" все нужные объекты, а перед этим просто удалить их из папки cache. С удалением проблем нет, а вот как искать что пересоздать? А пересоздавать нужно все. Если у вас где-то будет хранится ссылка на какойто-то Dataset и вы пересоздадите, скажем окно с этим Dataset'ом, то в памяти у вас будет 2 Dataset'а, так как старый имеет ссылку и по технологии COM не уничтожится. С этим может быть связан ряд проблем.

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

Итого, просто сделать кнопочку - не получится, сложно - может уйти много времени. Алгоритм пересоздания прост:
1. Удалаем с папки cache нужные файлы (можете все)
2. Пересоздаете объект

Т.е. теоретически, форма должна обновиться, если я
1. удалю весь кэш
2. после этого сохраню измененную форму
и после этого открою форму в клиенте - она будет соответствовать той, которую я сохранил в п. 2 ?!

К сожалению, так не работает
Форма, сохраненная до входа в ТС, отображается независимо от того, что я делаю с кэшом

Вы сожете посмотреть в сервисе scr_WindowUtils функцию WinCache_Get
При открытии окна идет вызов этой функции. Она ищет окно так:
1. Среди созданных в памяти
2. Если не найдено то идет создание
3. При создании пытается считаться с локального кэша (с винчестера)
4. Если не нашло что считать, то идет загрузка из базы

Т.е. вам нужно:
1. Удалить весь кэш с диска
2. В функции WinCache_Get вам нужно, грубо говоря, запретить поиск в памяти, чтобы зашло на строку
Item.Instance = Services.GetNewItemByUSI(USI);
А при вызове этой функции ядро увидит, что локального кэша нет, поэтому считает из базы

Спасибо огромное, обязательно попробую в ближайшее время

К сожалению, не помогает
Уже даже все удалил из функции WinCache_Get, кроме двух строк :

WinCache_Clear();
return WinCache_Add(USI, RecordID); 

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

Вам нужно, грубо говоря, в функции оставить только

return Services.GetNewItemByUSI(USI);

WinCache_Clear() очищает cache в памяти, но не на диске. Перед вызовом

return Services.GetNewItemByUSI(USI);

вам нужно удалить файлы c дериктории %appdata%\Terrasoft\<версия продукта>\Cache

К сожалению, не помогло
Оставил только

return Services.GetNewItemByUSI(USI);
Показать все комментарии

Доброго времени суток!

Часто возникает необходимость выгрузить или импортировать какой-либо сервис конфигурации BPMonline.

Для загрузки сервисов в конфигурацию BPMonline необходимо выполнить следующие действия:
1. Запустить систему под административными правами. Перейти в раздел [Инструменты] – [Конфигурация], сфокусироваться на корневой группе:
1_58.png

2. Затем перейдите на закладку [Действия], вызовите команду «Импорт из файла»:
2_40.png

3. В появившемся окне выбрать файл для загрузки, например:
3_22.png

4. После загрузки, в реестре записей раздела [Конфигурация] найти загруженный сервис и вызвать команду «Сгенерировать для выбранных элементов»:
4_15.png

Экспорт сервисов производится в два клика мышки - выделите нужный сервис, и в боковом меню кликните на "Экспорт в файл":
5_12.png

Приятной работы!

Нравится

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

Павел, одно маленькое замечание - в BPMonline нет сервисов. То что в версии Terrasoft 3.X называется сервис, в BPMonline - схема.

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

Думаю все знают, что для поиска в скриптах сервисов можно(нужно) использовать утилиту «Grep Search». Для его запуска, раньше нужно было в TSAdmin найти сервис wnd_GrepSearchScript, открыть его и запустить по кнопке F9 (Выполнить).
Теперь пользоваться Grep Search стало гораздо проще. Начиная с версии 3.3.2.153 в меню Инструменты (Tools) появился пункт «Grep search» и открыть поиск можно с помощью клавиатурного сочетания: Shift+Alt+S

Нравится

Поделиться

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

Отлично!

В версии 3.2 нет такой возможности.

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