Коллеги, есть способ добавить валидацию к полю детали страницы?

Нравится

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

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

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

Код сервиса:

 

namespace Terrasoft.Configuration.UsrUnsubscribeFromNewslettersService
{
	using System;
	using System.IO;
	using System.Net;
	using System.Collections.Generic;
	using System.ServiceModel;
	using System.ServiceModel.Web;
	using System.ServiceModel.Activation;
	using Terrasoft.Web.Common;
	using Terrasoft.Common;
	using Terrasoft.Core.Entities; 
	using Terrasoft.Core;
	using Terrasoft.Core.Process;
	using Terrasoft.Core.Process.Configuration;
	using Newtonsoft.Json;
 
	[ServiceContract]
	[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
	public class UsrUnsubscribeFromNewslettersService: BaseService
	{
		private SystemUserConnection _systemUserConnection;
        private SystemUserConnection SystemUserConnection {
            get {
                return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);
            }
        }
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
		ResponseFormat = WebMessageFormat.Json)]
		public UnsubscribeRequest UnsubscribeFromNewsletters(UnsubscribeRequest request){
            SessionHelper.SpecifyWebOperationIdentity(HttpContextAccessor.GetInstance(), SystemUserConnection.CurrentUser);
			ProcessSchema schema = SystemUserConnection.ProcessSchemaManager.GetInstanceByName("UsrUnsubscribeUserFromNewsletters");
 
			var flowEngine = new FlowEngine(SystemUserConnection);
			var param = new Dictionary<string, object>();
			param["ContactId"] = request.ContactId;
			param["NewslettersId"] = request.NewslettersId;
			flowEngine.RunProcess(schema, param);
			return request;
		}
 
	}
	public class UnsubscribeRequest {
		public Guid ContactId {get; set;}
		public Guid NewslettersId {get; set;}
	}
}

Если переделать POST на GET, то сервис работает.

Нравится

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

Сергей, при регистрации в системе веб-сервиса он должен так же само работать, как и вне сайта 7.Х.

Попробуйте создать в Visual Studio отдельный проект и создать аналогичный сервис в нём.

Если там будет такая же ошибка, в Visual Studio можно будет произвести отладку.

Возможно, Вы неправильно оформили метод и параметры.



Также обратите внимание на тему с похожими симптомами:

https://stackoverflow.com/questions/6835872/wcf-rest-post-of-json-parameter-is-empty

 

Сергей, при регистрации в системе веб-сервиса он должен так же само работать, как и вне сайта 7.Х.

Попробуйте создать в Visual Studio отдельный проект и создать аналогичный сервис в нём.

Если там будет такая же ошибка, в Visual Studio можно будет произвести отладку.

Возможно, Вы неправильно оформили метод и параметры.



Также обратите внимание на тему с похожими симптомами:

https://stackoverflow.com/questions/6835872/wcf-rest-post-of-json-parameter-is-empty

 

Спасибо за ответ, проблема была в том, что для класса UnsubscribeRequest и пропертей внутри него не были добавлены атрибуты DataContract и DataMember соответственно

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

Коллеги подскажите пожалуйста.

Где найти информацию по web сервису GeneratedObjectWebFormService?

Нравится

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

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

Спасибо, Я понял в конфигурации Sales этого сервиса нет. Александр я правильно понял, что он предназначен для приема данных с посадочных страниц отправленных web-формой лендинга?

Яблонский пишет:

Спасибо, Я понял в конфигурации Sales этого сервиса нет.

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

Для работы с лендингами в Creatio предусмотрен раздел [Лендинги и web-формы]. Этот раздел входит во все продукты Creatio, однако он может быть не включен по умолчанию в рабочие места некоторых продуктов (например, данный раздел не включен в рабочие места линейки продуктов Sales Creatio).

 

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

Добрый день !

 

Подскажите пожалуйста как с помощью БП можно установить определенный часовой пояс всем портальным пользователям зарегистрированным на нашем сайте?

 

С Уважением,

 

 

 

Нравится

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

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

 

Вам нужно реализовать процесс, который обновит данные из таблицы SysAdminUnit (Объект администрирования) по фильтру SysAdminUnitTypeValue = 5 (данное значение соответствует пользователям портала). По этой ссылке подробнее описано о типах объектов администрирования https://academy.terrasoft.ua/documents/administration/7-16/importirovat-polzovateley-iz-excel.

Фактически в БП Вам нужно реализовать вот такой запрос:

update SysAdminUnit
set
	TimeZoneId = &lt;нужное значение&gt;
where SysAdminUnitTypeValue = 5

 

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

 

Вам нужно реализовать процесс, который обновит данные из таблицы SysAdminUnit (Объект администрирования) по фильтру SysAdminUnitTypeValue = 5 (данное значение соответствует пользователям портала). По этой ссылке подробнее описано о типах объектов администрирования https://academy.terrasoft.ua/documents/administration/7-16/importirovat-polzovateley-iz-excel.

Фактически в БП Вам нужно реализовать вот такой запрос:

update SysAdminUnit
set
	TimeZoneId = &lt;нужное значение&gt;
where SysAdminUnitTypeValue = 5

 

Благодарю за помощь.

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

 

Я нашел значение ID для всех временных зон из справочника "Часовой пояс". Можно использовать их для того, чтобы реализовать мой запрос?

 

С Уважением.

 

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

 

В запросе по моему значение для SysAdminUnitTypeValue необходимо установить "4". Получилось так.

 

Update SysAdminUnit set TimeZoneId = 'West Asia Standard Time' where connectiontype=1 and SysAdminUnitTypeValue = 4 

Jahongir Dodokhonov,

Рада, что смогла подсказать Вам направление для реализации Вашей задачи angel

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

Добрый день. 

При осуществлении выгрузки данных с использованием дополнения "Excel reports builder for Creatio " при открытии выгруженного из системы файла появляется ошибка "Ошибка в части содержимого в книге "...". Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку "Да"."

После нажатия кнопки "Да" открывается необходимый файл. 

Далее, нажимая на кнопку "Разрешить редактирование" в файле открывается еще одно окно: 

"Excel удалось открыть файл, восстановив или удалив нечитаемое содержимое. Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.

Удаленные записи: Именованный диапазон из части /xl/workbook.xml (Книга)".

Все данные и формулы сохранены.

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



Продукт:  bpmonline sales enterprise & marketing & service enterprice

Версия системы: 7.14.1

Нравится

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

Анастасия, добрый день,

 

для начала проверьте, выгружаете ли вы данные из колонок, в которых могут хранится данные в html формате, например данные из базового поля Примечание (Notes). Если да, это содержимое в html формате так может влиять на формирование отчета.

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

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

Добрый день!

 

После обновления на 7.16.1 сделал копию из продакшн базы в разработческую, в разработческой доработал пакет, выгрузил, загружаю в продакшн, получаю:

2020-08-05 17:24:21,283 Загрузка файла: ZL.Root.zip 100%
2020-08-05 17:24:21,330 Началось резервное копирование конфигурации.
2020-08-05 17:24:21,330 Загрузка пакетов из архива
2020-08-05 17:24:21,346 Пакет "ZL.Root" загружен
2020-08-05 17:24:21,346 Загрузка пакетов из базы данных
2020-08-05 17:24:21,853 System.ApplicationException: Невозможно установить пакет из zip-архива в то время как существует SVN-пакет с таким же UId.
   в Terrasoft.Core.AppInstallation.Packages.Backup.ZipPackageBackupManager.SaveBackup(IList`1 composedPackages, String backupPath, String code)
   в Terrasoft.Core.ServiceModelContract.PackageInstaller.PackageInstallerServiceInternal.<>c__DisplayClass25_0.<CreateBackup>b__0()
   в Terrasoft.Core.ServiceModelContract.PackageInstaller.BaseInstallerServiceInternal.InvokeWithLogging(Action action)

Как сие явление побороть?

Нравится

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

Здравствуйте! Ваш пакет  на продакшене - ZL.Root привязан к SVN для этого Вам необходимо выполнить несколько SQL запросов:

Отвязка пакета от репозитория

UPDATE SysPackage 
SET 
    [SysRepositoryId] = null
WHERE  [Name]= 'ZL.Root'

 

Блокирование пакта(+ задаем ему признак установленный):

 

update SysPackage
set IsChanged = 0, InstallType = 1, IsLocked = 0, Maintainer = 'Customer'
where Name in ('ZL.Root')

После этих манипуляций должно нормально устанавливаться

Здравствуйте! Ваш пакет  на продакшене - ZL.Root привязан к SVN для этого Вам необходимо выполнить несколько SQL запросов:

Отвязка пакета от репозитория

UPDATE SysPackage 
SET 
    [SysRepositoryId] = null
WHERE  [Name]= 'ZL.Root'

 

Блокирование пакта(+ задаем ему признак установленный):

 

update SysPackage
set IsChanged = 0, InstallType = 1, IsLocked = 0, Maintainer = 'Customer'
where Name in ('ZL.Root')

После этих манипуляций должно нормально устанавливаться

Нигрескул Алексей,

Сработало, спасибо!

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

Здравствуйте! Наблюдается следующая проблема, а именно конфликт библиотек  Google.Apis, в связи с этим не можем реализовать на стороне Ceatio нужный функционал. В академии прочел статью про метод разработки пакет-проект в которой говориться, что данного конфликта быть не должно т.к. пакет является изолированным, однако разработав такой пакет и вызывая его функционал из другого пакета системы конфликт так же остался - https://prnt.sc/truxr1.

Вот ссылка на скачивание разработанного нами пакета(пакет тестовый)- https://drive.google.com/file/d/19YyYJ6rLjEdS7N2HXRNduBw0oOZkdSkA/view?…

функционал вызываем данным образом:

namespace Autobooking.CreatioIntegrationApp

{

    using System;

    using System.Collections.Generic;

    using System.IO;

    using System.Net;

    using System.Threading.Tasks;

    using Terrasoft.Configuration;

    using Terrasoft.Core;

    using Terrasoft.Core.Factories;

    using Terrasoft.Web.Common;

    using SysSettings = Terrasoft.Core.Configuration.SysSettings;

    using WebRequest = System.Net.WebRequest;

    using AutobookingGoogleAnalyticsApi.Interfaces;

    public sealed class CreatioIntegrationAppService : BaseService

    { 

        public CreatioIntegrationAppService(UserConnection userConnection) {

            UserConnection = userConnection;           

        }

 

        public string GetSysSetting(string settingName) {

            return SysSettings.GetValue(UserConnection, settingName, null);

        }

 

 

        public void StartAnalytic() {

                var service = ClassFactory.Get(new ConstructorArgument("userConnection", UserConnection),

                new ConstructorArgument("serviceAccountEmail", "testEmail"),

                new ConstructorArgument("applicationName", "testAppName"), new ConstructorArgument("secretFile", null));

        service.AuthenticateServiceAccount();

        }        

    }

}

Нравится

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

Здравствуйте, Александр!

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

Александр, по поводу конфликта версий, всё как обычно с библиотеками: им или залить себе ту же версию, что у «в коробке» (более старую), или аргументировать, чтобы обновили «в коробке» до более новой. Если используется не самая новая версия системы, прежде всего попробовать обновить, возможно, в актуальной библиотеку тоже обновили.

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

Доброго времени суток. Возникла проблема с синхронизацией почты на 7.16.1

Настроили по инструкции на академии. В систему добавил два почтовых ящика: один на рабочем сервере, другой на yandex. Отправка писем работает, но с почтовых ящиков письма в Creatio не загружаются.

Может кто-то сталкивался с подобной проблемой?

Заранее благодарен.

Нравится

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

Кирилл, в 7.16 архитектуру интеграции с почтой меняли.

Создали отдельный от основной системы Exchange Listener, который устанавливается на своём сервере. А затем на сайте 7.Х в системной настройке ExchangeListenerServiceUri прописывается его адрес, а в другой настройке — адрес анонимного сервиса в системе, к которому он извне обращается.

 

Точно по этой инструкции со всеми её подстраницами настраивали?

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

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

Столкнулся с такой проблемой.

Устанавливаю пакет через CLIO - выдает ошибки - https://prnt.sc/tqkuyw

В чем может быть проблема?

Версия системы 7.16.2.1600 

 

Или может быть создать пакет в системе, вытянуть его через clio конвертировать в пакет-проект, написать нужный функционал и затем задеплоить обратно? 

Нравится

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

так же при выполнении команды clio install-gate -e dev выдает ошибки - https://prnt.sc/tqnh3s

Алексей, по первому скриншоту, похоже, дело в файловой системе Вашего ПК, не может получить доступ к определённой папке.

 

По второму, у Вас как-то получилось вместо названия объекта «7.16.2», что делать нельзя, названия должны быть с латинскими буквами и без точек. Возможно, при оформлении перепутали с версией.

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

Странно как то получается создаю новый пакет Test и сразу  пушу его в систему и выдает такое - 

https://prnt.sc/tr3etj. Тут ну никак и нигде не задается имя 7.16.

Помимо всего даже когда устанавливаю пакет через интерфейс Creatio такая же ошибка. Из-за чего так получается есть предположение?

Если и через интерфейс такое же, то тем более, дело в самом пакете. Сравните с теми, которые ставятся нормально, может, что-то перепутано в полях? Вы создали пакет командой к clio?

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

"Вы создали пакет командой к clio?" - пакет Test да. 

 

Просто создали так?

Creating new package

To create new package project, use the next command:

 clio new-pkg &lt;PACKAGE_NAME&gt;

you can set reference on local core assembly with using Creatio file design mode with command in Pkg directory

 clio new-pkg &lt;PACKAGE_NAME&gt; -r bin

Может, что-то делали с версией?

Set package version

Set a specified package version into descriptor.json by specified package path.

clio set-pkg-version &lt;PACKAGE PATH&gt; -v &lt;PACKAGE VERSION&gt;

 

Вообще, не видя создавшегося пакета, сложно  сказать, что в нём не так.

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

просто clio new-pkg <PACKAGE_NAME>

Значит, смотреть внутрь пакета, где там упоминается «7.16.2». А падает только при установке на конкретный Ваш сайт? А если ставить на демку, то то же самое?

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

Устанавливал созданный пакет через clio на облачный дев, через интерфейс системы, стал без ошибок.

 

Значит, всё же дело не в пакете, а в сайте, куда его ставили? Может, версии отличаются?

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

версия сайта 7.16.2.1600, при создании пакета через clio задушить не получается, а вот при выгрузке из системы и конвертации, а потом пишите, то получилось...ещё те танцы с бубном))), но перед этим пришлось переустановить сайт.

Теперь бы разобраться как вызывать классы из данного пакета в других схемах конфигурации)

Здравствуйте, Алексей!

Files позволяют быстрее разрабатывать независимую функциональность, т.к. не требуют компиляции всей конфигурации. Из Files нельзя ссылаться на код в схемах. Из схем нельзя ссылаться на Files. Files могут ссылаться на sdk ядра.

Мотков Илья,

Добрый день. Я бы добавил, что есть способы достучаться из схем в функциональность Files. Через тот же ClassFactory

Здравствуйте, Алексей!

 

Ещё дополню, что все классы схем располагаются в неймспейсе Terrasoft.Configuration, если другое не задано.

 

Пакеты по сути просто папки, а конфигурация компилируется целиком, и все классы в конфигурации видны другим классам в конфигурации не зависимо от пакета.

 

Если речь о классах во внешних библиотеках – то обращаться так же как и из пакета в котором эта библиотека привязана.

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

Коллеги, разобрался в чем проблема... при создании нового пакета в этих папках - https://prnt.sc/u638lk генерируется текстовый файл placeholder, вот из-за него и вываливается ошибка при деплое пакета в среду, после удаления деплой прошел корректно и ошибка -

"Terrasoft.Common.InvalidNameException: Название объекта "7.16.2" некорректно" не выскакивала

Алексей, разработчики сообщили, что мы поищут способ решения этой проблемы, на текущий момент данную проблему можно обойти, указав в ConnectionStrings.config в секции tempDirectoryPath простой пусть С:\Temp

Проблема заключается в том, что по умолчанию берется Temp директория пользователя, а она имеет очень большую вложенность и Windows формирует сокращение, которое не правильно разбирается регулярным выражением.

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

OsmMapsModule делает карту с надписью что использует для работы с апи OSM библиотеку js Leaflet. Я вижу что в OSMMapsModule пакета OSM нету метода для подключения сервиса маршрутизации, в этом случае как расширить модуль для вызова вот этого кода?

  L.Routing.control({
            waypoints: [
                L.latLng(57.874, 56.162), 
                L.latLng(52.574, 39.653)
            ],
            router: L.Routing....
        }).addTo(map);

 

Нравится

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

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

 

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

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