Есть емеил адрес, от которого будут рассылаться письмо (например в бизнес процессе). На локальной среде этот адрес зарегистрировали (прописали логин пароль и т.д.)

В БП настроили отправку сообщений из этого адреса, но после поставки на следуюющую среду, в БД в елементе отправки писем, пустой отправитель.

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

 

Подскажите пожалуйста, в каких таблицах храняться эти "техничесские" Email, и как правильно их привязаться в поставку? + на сколько помню еще права нужно настраивать, что письма отрпавлялись от любого пользователя (тот кто запускает БД). 

 

спасибо

Нравится

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

* в БП елементе отправки писем, пустой отправитель

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

При переносе новых колонок в ячейку, появляется пустая форма. С существующими такого не наблюдается.

Нравится

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

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

Для решения этой проблемы нам необходимо больше информации, обратитесь пожалуйста в нашу службу поддержки. (support@creatio.com)

Какая версия у Вас? У меня так же после обновления до 8.0.3

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

Как удалить кнопку "печать" из грида записи секции?

 

 

 

 {

                "operation": "remove",

                "name": "DataGridActiveRowPrintAction"

             },

 

не помогает.

 

 

Нравится

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

Добрый день, Александр.

 

Попробуйте сделать кнопку невидимой (visible: false).

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

Нравится

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

Добрый день!
Проблема в контексте отрисовки вашей таблицы, который не видит функций родительской схемы.
В вашем случае событие onclick нужно привязать к методу, который потом объявить в
clientsInfo += '<script>---

Дима Вовченко,

Спасибо Дима , помогло

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

Здравствуйте. Такая проблема: создал WCF веб сервис унаследованный от BaseService, при большом количестве одновременных вызовов, все запросы обрабатываются последовательно, следовательно происходит задержка. 

Устанавливал атрибуты [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false )]

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

behaviors.config стандартныйИзображение удалено.

 

Подскажите, может есть еще какие-то настройки, которые я упустил?

Нравится

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

Добрый день,

 

Подскажите, пожалуйста, а такое поведение воспроизводится, если делать запросы на сервис с разных пользователей? Или если делать вызовы под разными пользователями, то запросы тоже обрабатываются последовательно?

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

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

добрый день!

столкнулся со след проблемой:
1. в пакете название секции "Секция 12"

2. устанавливаю этот пакет в другую среду креатио, добавляю секцию в раздел

3. меняю название секции в пакете на "Секция 13" в оригинальной среде

4. устанавливаю пакет в другую среду, где уже был установлен пред пакет (обновление пакета)

5. название секции все еще "Секция 12"

 

удаление старого пакета и установка нового после не помогает, название так и остается старое. если зайти в свойста страницы, то там названия секции правильное - Секция 13.

 

с чем это может быть связано? сталкиваюсь уже не первый раз

спасибо!

Нравится

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

Добрый день!

Вам нужно в пакете найти данные с этим разделом. У них будет название типа SysModule_SectionManager_ и дальше набор символов.
К сожалению, так сложно найти - можно примерно определить по дате создания.

И в этих данных нужно указать Force update для колонки Title и обновить данные.

 

Владимир

Добрый день!

Вам нужно в пакете найти данные с этим разделом. У них будет название типа SysModule_SectionManager_ и дальше набор символов.
К сожалению, так сложно найти - можно примерно определить по дате создания.

И в этих данных нужно указать Force update для колонки Title и обновить данные.

 

Владимир

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

Есть способ удалить контакт через OData использую api:

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

Т.к. у контакта есть связь с другими сущностями, то контакт не удаляется. При удалении контакта, открывается форма, в которй предлагается удалить запись используя - Do not delete connected records, запись удаляется. Возможно ли использовать этот функционал в api, может добавить какой параметр в запрос надо?

Нравится

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

Изображение не дошло, использую Postman:

DELETE - {{creatio_base_url}}/0/odata/Contact/3a074f61-7e3f-e8dd-87e8-0f65722d0875

Ошибка:

{

    "error": {

        "code": "",

        "message": "An error has occurred."

    }

}

Добрый день, Владимир.

 

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

 

Обратите внимание, что данные настройки будут распространяться не только при удалении записи через OData, но и при удалении записи через интерфейс пользователя в Creatio CRM.

 

Детальнее об этих настройках можно найти в этой статье на Академии:

 

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

Добрый день. Есть созданый нами сервис (по образцу базового ReportService), который возвращает по записи детали объекта pdf-файл. На десктопной версии креатио работа с ним настроена, возникли сложности с реализацией аналогичного в мобильном приложении.
По подробностям: на десктопе сервис на странице записи детали по нажатию кнопки получает значение поля и в ответ открывает файл на новой странице. Как именно что-то подобное сделать для записей детали на мобильном приложении? Есть ли какие-то нюансы с открытием pdf в мобильном приложении креатио?

Нравится

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

Добрый день!
 

Позвольте привести пример скачивания и автоматического открытия файла с использованием базового FileService/GetFile (сервис и метод, которые триггерятся если в декстопной версии из детали с файлами выгрузить какой-либо файл) в мобильном приложении. Для этого:

1) Была создана кастомная кнопка в действиях на странице контакта в мобильном приложении
2) Был создан обработчик для нажатия на эту кнопку

Как это было достигнуто:

1) В конфигурации создать модуль UsrMyAction с кодом

Ext.define("Terrasoft.MyAction", {
	extend: "Terrasoft.ActionBase",
	config: {
		useMask: false,
		title: "MyActionTitle",
		iconCls: Terrasoft.ActionIcons.Copy
	},
 
	execute: function(record) {
		this.callParent(arguments);
		var config = {
			url: 'https://1168222internal-demo.creatio.com/0/rest/FileService/GetFile/e9eafee9-c4e4-4793-ad0a-003bd2c6a9b4/3bbbd5a8-8f8d-4570-8526-0488eb37da28',
			success: function(fullPath, relativePath) {
				Terrasoft.FileIntent.open({
					path: relativePath
				});
			}, 
			name: "Test_" + new Date().toDateString() + ".png"
		};
 
		Terrasoft.RequestManager.issueRequest({
					requestFn: Terrasoft.FileTransfer.download,
					requestFnConfig: config,
					responseToStatusCodeFn: Terrasoft.FileTransfer.getStatusCodeFromException,
					loginFailure: function(exception) {
						Ext.callback(config.failure, config.scope, [exception]);
					},
					suppressRequestEvents: config.suppressRequestEvents,
					scope: Terrasoft.FileTransfer
				});
		this.executionEnd(true);
	}
 
});

 

В нем создать локал.строку с кодом MyActionTitle и каким-то значением для этой локал.строки (например "Call custom service").
2) В конфигурации создать модуль UsrMobileContactModuleConfig с кодом

Terrasoft.sdk.Actions.add("Contact", {
    name: "myAction",
    actionClassName: "Terrasoft.MyAction"
});

3) В манифесте мобильного приложения добавить:

"CustomSchemas": [
"UsrMyAction"
],
...
"Models": {
...
"Contact": {
...
"PagesExtensions": [
"UsrMobileContactModuleConfig"
]

Пример манифеста из демо сайта для тестов, где тестировалась логика – файл MobileApplicationManifestDefaultWorkplace.txt ниже:

{
	"CustomSchemas": [
        "UsrMyAction"
    ],
	"SyncOptions": {
		"SysSettingsImportConfig": [
			"DefaultMessageLanguage"
		],
		"ModelDataImportConfig": [
			{
				"Name": "Contact",
				"SyncColumns": []
			},
			{
				"Name": "SysLanguage",
				"SyncColumns": []
			},
			{
				"Name": "ContactFile",
				"SyncColumns": [
					"Contact",
					"CreatedOn",
					"CreatedBy",
					"Name",
					"Data",
					"Type",
					"Size"
				]
			},
			{
				"Name": "FileGroup",
				"SyncColumns": []
			},
			{
				"Name": "ContactCommunication",
				"SyncColumns": [
					"CommunicationType",
					"Number",
					"Contact"
				]
			},
			{
				"Name": "CommunicationType",
				"SyncColumns": []
			},
			{
				"Name": "ContactAddress",
				"SyncColumns": [
					"AddressType",
					"Country",
					"Region",
					"City",
					"Address",
					"Zip",
					"Contact"
				]
			},
			{
				"Name": "AddressType",
				"SyncColumns": []
			},
			{
				"Name": "Country",
				"SyncColumns": []
			},
			{
				"Name": "Region",
				"SyncColumns": []
			},
			{
				"Name": "City",
				"SyncColumns": []
			},
			{
				"Name": "ContactAnniversary",
				"SyncColumns": [
					"Date",
					"AnniversaryType",
					"Contact"
				]
			},
			{
				"Name": "AnniversaryType",
				"SyncColumns": []
			},
			{
				"Name": "FileType",
				"SyncColumns": []
			},
			{
				"Name": "SocialMessage",
				"SyncColumns": [
					"EntityId"
				]
			}
		]
	},
 
	"Modules": {},
	"Models": {
		"ContactFile": {
			"RequiredModels": [
				"ContactFile",
				"FileGroup",
				"SocialMessage"
			],
			"ModelExtensions": [],
			"PagesExtensions": [
				"UsrMobileContactFileActionsSettingsDefaultWorkplace",
				"UsrMobileContactFileGridPageSettingsDefaultWorkplace",
				"UsrMobileContactFileRecordPageSettingsDefaultWorkplace"
			]
		},
		"SocialMessage": {
			"RequiredModels": [],
			"ModelExtensions": [],
			"PagesExtensions": []
		},
		"Contact": {
			"RequiredModels": [
				"Contact",
				"SysLanguage",
				"ContactFile",
				"FileGroup",
				"ContactCommunication",
				"CommunicationType",
				"ContactAddress",
				"AddressType",
				"Country",
				"Region",
				"City",
				"ContactAnniversary",
				"AnniversaryType",
				"FileType"
			],
			"ModelExtensions": [],
			"PagesExtensions": [
				"UsrMobileContactModuleConfig"
			]
		}
	},
	"ModuleGroups": {
		"main": {}
	},
	"UseUTC": true
}

4) Обязательно выполнить рисайкл пула приложения (не перезапуск сайта в IIS, а именно рисайкл пула).

Сама логика скачивания файла и его открытие реализована в модуле UsrMyAction:

var config = {
url: 'https://1168222internal-demo.creatio.com/0/rest/FileService/GetFile/e9e…
success: function(fullPath, relativePath) {
Terrasoft.FileIntent.open({
path: relativePath
});
},
name: "Test_" + new Date().toDateString() + ".png"
};

Terrasoft.RequestManager.issueRequest({
requestFn: Terrasoft.FileTransfer.download,
requestFnConfig: config,
responseToStatusCodeFn: Terrasoft.FileTransfer.getStatusCodeFromException,
loginFailure: function(exception) {
Ext.callback(config.failure, config.scope, [exception]);
},
suppressRequestEvents: config.suppressRequestEvents,
scope: Terrasoft.FileTransfer
});

Какие здесь ключевые моменты:

1) https://1168222internal-demo.creatio.com/0/rest/FileService/GetFile/e9e… получить файл (кстати, здесь можно немного заменить код на следующий:

var config = {
url: Terrasoft.CurrentUserInfo.serverUrl + '0/rest/FileService/GetFile/e9eafee9-c4e4-4793-ad0a-003bd2c6a9b4/3bbbd5a8-8f8d-4570-8526-0488

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

2) "Test_" + new Date().toDateString() + ".png" - это название файла, который будет подгружен и автоматически открыт. Здесь важно еще контролировать расширение скачиваемого файла, но если в 100% случаев будет скачиваться PDF, то можно здесь просто захардкодировать расширение .pdf.

3) За подгрузку файла отвечает метод Terrasoft.RequestManager.issueRequest, в который мы передаем в config ссылку откуда нам нужно получить файл и что делать в случае успешного выполнения метода issueRequest (здесь можно добавить и failure обработчик).

4) На success п.3 запускается метод Terrasoft.FileIntent.open который и отвечает за автоматическое открытие файла.

Почему сделано так: при загрузке файла через Terrasoft.RequestManager.issueRequest сохранение происходит не в хранилище мобильного телефона, а в локальный кэш мобильного приложения и файл автоматически открывается, чтобы была возможность его сохранить уже в хранилище самого мобильного устройства. У нас нет встроенного метода, который позволил бы загрузить файл напрямую в мобильное устройство, только ручное хранение.

Ограничение: сервис по получению файла должен быть доступен через метод GET. Если сейчас у Вас он реализован через POST, то создайте рядом еще один метод специально для мобильного приложения и вызывайте в коде его (в URL вызова можно передавать значение аргументов для метода (например, ID записей файлов или т.д.)).

Что нужно заменить:

1) Кастомную кнопку с действием я добавлял на карточку контакта. Вы же можете ее добавить в карту детали с файлами (подход тот же, только вместо Contact – название объекта детали). Ну или можете динамически вычитывать записи из детали и выбирать подходящую.
2) Продумать как реализовать названия файлов (опять же, можно считывать оригинальный файл из детали, брать его название и вставлять в параметр name).

Результат (тестировал и на iOS физическом девайсе и в эмуляторе в Android studio):
1) Сама кнопка:

 

2) Нажатие на кнопку:

 

Далее файл можно сохранить:

 

 

потестируйте и продолжайте кастомизировать под Ваш сервис.

 

 

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

Добрый день!

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

Нравится

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

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

 

Детально данная информация описана на нашей Академии в соответствующей статье

С уважением, 

Анастасия

 

Александр, 

 

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

С уважением, 
Анастасия

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

Коллеги, добрый день! Есть объект UsrOrder, в нем есть строковое поле JetOrderNumber. В конфигурации открываю этот объект, перехожу на вкладку События и включаю галочку "Перед сохранением записи" (UsrOrderSaving). Далее нажимаю на кнопку "Открыть процесс". Там создаю Событийный подпроцесс, начальным событием которого является Сообщение UsrOrderSaving, а после него создаю заданию-сценарий, в котором прописываю:

Entity.SetColumnValue("UsrOrderNumber", "новая запись");
throw new Exception("i123");
return true;

Далее сохраняю, публикую, компилирую. 

В итоге после сохранения поле UsrOrderNumber пустое, в консоли ничего нет, в Network ничего нет. Поможете мне понять почему ничего не происходит? 

Нравится

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

Добрый день.

 

На первый взгляд все должно работать.

Но если у вас пакет-сборка, то нет, так как в пакетах-сборках не работают событийные-процессы.

Та и вообще процессы использовать последнее время практика устарела. Лучше писать логику на объектах с помощью EntityEventListener. Такая логика будет работать и в пакетах-сборках.

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