Вопрос

Коллеги доброго времени суток! Развернули систему on-site, слетел раздел Библиотеки процессов, точнее перестал отображать список процессов. проблема во вьюхе dbo.VwProcessLib:
 

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[VwProcessLib]'))
BEGIN
	DROP VIEW [dbo].[VwProcessLib]
END
GO
 
SET ANSI_NULLS ON
GO
 
SET QUOTED_IDENTIFIER ON
GO
 
 
CREATE VIEW [dbo].[VwProcessLib]
AS
 
SELECT [VwSysSchemaInWorkspace].[UId] AS [Id]
	,[VwSysSchemaInWorkspace].[Id] AS [SysSchemaId]
	,[VwSysSchemaInWorkspace].[CreatedOn]
	,[VwSysSchemaInWorkspace].[CreatedById]
	,[VwSysSchemaInWorkspace].[ModifiedOn]
	,[VwSysSchemaInWorkspace].[ModifiedById]
	,[VwSysSchemaInWorkspace].[ProcessListeners]
	,[VwSysSchemaInWorkspace].[Name]
	,[VwSysSchemaInWorkspace].[Caption]
	,[VwSysSchemaInWorkspace].[ManagerName]
	,[VwSysSchemaInWorkspace].[UId]
	,[VwSysSchemaInWorkspace].[ParentId]
	,[VwSysSchemaInWorkspace].[ExtendParent]
	,[VwSysSchemaInWorkspace].[IsChanged]
	,[VwSysSchemaInWorkspace].[IsLocked]
	,[VwSysSchemaInWorkspace].[MetaData]
	,[VwSysSchemaInWorkspace].[MetaDataModifiedOn]
	,[VwSysSchemaInWorkspace].[SysPackageId]
	,[VwSysSchemaInWorkspace].[PackageUId]
	,[VwSysSchemaInWorkspace].[SysWorkspaceId]
	,[VwSysSchemaInWorkspace].[Description]
	,[VwSysSchemaInWorkspace].[NeedUpdateSourceCode]
	,[VwSysSchemaInWorkspace].[NeedUpdateStructure]
	,[VwSysSchemaInWorkspace].[NeedInstall]
	,[IsMaxVersion] =
		CAST(CASE
			WHEN EXISTS (
				SELECT 1
				FROM [SysSchemaProperty]
				WHERE
					[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id]
					AND [SysSchemaProperty].[Name] = 'Version' AND [SysSchemaProperty].[Value] = (
						SELECT MAX([SysSchemaProperty].[Value])
						FROM [SysSchemaProperty]
						WHERE
							[SysSchemaProperty].[Name] = 'Version'
							AND [SysSchemaProperty].[SysSchemaId] IN (
								SELECT [VwSysSchemaInWorkspace].[Id] UNION (
									SELECT [SysSchema].[Id]
									FROM [SysSchema]
									WHERE
										[SysSchema].[ParentId] IN ([VwSysSchemaInWorkspace].[ParentId], [VwSysSchemaInWorkspace].[Id])
								)
							)
						)
					)
				THEN 1
			ELSE 0
		END AS BIT)
	,[Enabled] =
		CAST(CASE
			WHEN EXISTS (
				SELECT 1
				FROM [SysProcessDisabled]
				WHERE
					[SysProcessDisabled].[SysSchemaId] IN([VwSysSchemaInWorkspace].[Id], [VwSysSchemaInWorkspace].[ParentId]))
				THEN 0
			ELSE 1
		END AS BIT)
	,[SysSchemaProperty].[Value] as [TagProperty]
	,[Version] =
		CAST(COALESCE(
			(SELECT [SysSchemaProperty].[Value]
			FROM [SysSchemaProperty]
			WHERE
				[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
				[SysSchemaProperty].[Name] = 'Version')
		,0) AS INT)
	,[ProcessSchemaTypeId] = (
		SELECT [ProcessSchemaType].[Id]
		FROM [ProcessSchemaType]
		WHERE [ProcessSchemaType].[Code] = 'Business Process')
	,[AddToRunButton] =
		CAST(
			(SELECT Count([RunButtonProcessList].[Id])
			FROM [RunButtonProcessList]
			WHERE
				[RunButtonProcessList].[SysSchemaUId] = [VwSysSchemaInWorkspace].[UId])
		AS BIT)
	,[IsActiveVersion] =
		CAST(CASE
			WHEN COALESCE(
				(SELECT [SysSchemaUserProperty].[Value]
				FROM [SysSchemaUserProperty]
				WHERE
					[SysSchemaUserProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
					[SysSchemaUserProperty].[Name] = 'IsActiveVersion')
				,(SELECT [SysSchemaProperty].[Value]
				FROM [SysSchemaProperty]
				WHERE
					[SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id] AND
					[SysSchemaProperty].[Name] = 'IsActiveVersion')
				,N'True') = N'True' THEN 1
			ELSE 0
		END AS BIT)
	,[VersionParentId] = (
		(SELECT COALESCE([VwSysSchemaInWorkspace].[ParentId]
		,[VwSysSchemaInWorkspace].[Id]))
	)
	,[VersionParentUId] = CASE
		WHEN [VwSysSchemaInWorkspace].[ParentId] IS NULL
			THEN [VwSysSchemaInWorkspace].[UId]
		ELSE (SELECT VwSSIW.[Uid] FROM [VwSysSchemaInWorkspace] VwSSIW
			WHERE VwSSIW.[Id] = [VwSysSchemaInWorkspace].[ParentId])
		END
	,[HasStartEvent] = dbo.fn_GetSchemaMetaDataContains([VwSysSchemaInWorkspace].[metaData],
		'Terrasoft.Core.Process.ProcessSchemaStartEvent')
	,[StartOptionsImageId] = dbo.[fn_GetStartOptionsImageId]([VwSysSchemaInWorkspace].[UId])
	,[IsProcessTracing] = CASE
		WHEN [VwSysSchemaInWorkspace].[ParentId] IS NULL
			THEN [dbo].[fn_GetIsProcessTracing] ([VwSysSchemaInWorkspace].[Id])
		ELSE
			[dbo].[fn_GetIsProcessTracing] ([VwSysSchemaInWorkspace].[ParentId])
		END
FROM [VwSysSchemaInWorkspace]
	INNER JOIN [SysSchemaProperty] ON [SysSchemaProperty].[SysSchemaId] = [VwSysSchemaInWorkspace].[Id]
WHERE
	[VwSysSchemaInWorkspace].[ManagerName] = 'ProcessSchemaManager'
	AND [SysSchemaProperty].[Name] = 'Tag'
	AND [SysSchemaProperty].[Value] <> ''
GO

Проблема возникает в данной части - http://prntscr.com/kxbysw
Ошибка следующая - http://prntscr.com/kxbz11
Кто нибудь сталкивался с данной проблемой.
Читал на форумах, что при данной ошибке поможет перестроить индексы в БД, так ли это?
Заранее благодарен.

У меня такой же вопрос

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

Данная ошибка возникает из-за того, что коллация базы данных отличается от коллации базы данных tempdb (т.е. самого сервера).

Collation (сопоставление) определяет ряд правил, согласно которым сортируются и сравниваются данные. Символьные данные сортируются, используя правила, которые определяют правильную последовательность символов, в зависимости от регистра, надстрочных знаков, символьных типов kana и ширины символов.

Как изменить коллацию БД описано здесь

Алла Савельева,

Благодарю!

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

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

Как можно в bpm'online перевести кроме элементов интерфейса на несколько языков еще и данные?
Необходимо отображать на языке пользователя некоторые поля справочников (Name, Description), а также некоторые поля разделов (например, названия, описания сервисов или продуктов)

У меня такой же вопрос

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

В схеме таблицы для тех полей, которые хотите локализировать, установить признак 'Локализируемый текст' (Localizable Text):

 

По умолчанию для таблиц, которые наследованы от Base lookup, для полей Name и Description эти признаки уже установлены.

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

Для примера на скриншоте ключ выглядит следующим образом: Data:Contact.OfficialName:82d21f9f-4cec-4ff7-aeee-9255cc4f37f3. Contact - это название таблицы, OfficialName - название локализируемого поля, 82d21f9f-4cec-4ff7-aeee-9255cc4f37f3 - Id записи в таблице Contact, для которой делается перевод.

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

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

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

У меня такой же вопрос

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

Зайдите в настройку кэйса и посмотрите

1) панель кэйсов вашего раздела настроена на статус в продаже?

2) есть ли в панели шаг "продажа завершена с проигрышем" и с каких шагов на него можно попасть. При необходимости разрешите переход в "продажа завершена с проигрышем" со всех остальных шагов.

Григорий Чех, в кейсах разрешено переход с любого этапа на "продажа завершена с проигрышем". Изменение статуса происходит в бизнес-процессе - не в бизнес-кейсе

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

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

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

 пример такой логики не можете показать или указать где можно глянуть?

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

Доброе утро!

Странная проблема у меня, создаю в «Мастер раздела» объект с именем UsrBePVM

Далее перехожу в JS скрипт, где описываю логику работы этого объекта, сохраняется удачно, все как бы хорошо.

Далее почему-то ничего не происходит на странице, такое ощущение, что не видит значения UsrBePVM или ему просто ничего не передается.

Что не так? Что-то забыл заполнить? Где смотреть?

 

У меня такой же вопрос

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

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

Как это сделать, подробно описано в статье.

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

Алла Савельева пишет:

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

Как это сделать, подробно описано в статье.

Проблема в том, что ошибок нет, ничего выводило. Сам JS кода был описан в бизнес процессе. Помогла только эта статья.

Странно, что из бизнес процесса не работает.

Процессы отрабатывают на сервере, а JS — на странице в браузере. Соответственно, при работе процесса клиентская логика отрабатывать не будет.

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

Добрый день.

Прошу помощи, развернул сайт, все устанавливал согласно инструкции на сайте https://academy.terrasoft.ru/documents/administration/7-12/ustanovka-bp…

Установлен на Server 2016. Сервер видит и Redis и базу SQL 2017

При запуске выдает ошибку:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:
 

[ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
   System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) +0
   System.Reflection.Assembly.GetTypes() +112
   Terrasoft.Common.ReflectionUtilities.FindTypeByShortName(Assembly assembly, String name) +455
   Terrasoft.Core.SchemaManagerItem`1.get_TypeName() +150
   Terrasoft.Core.SchemaManager`1.InitializeCoreSchemaLocalizableValues(ISchemaManagerItem`1 schemaManagerItem) +31
   Terrasoft.Core.SchemaManager`1.AddCoreSchema(Guid uid, String name, Guid parenSchemaUId, Assembly assembly, Guid[] referenceSchemaUIds) +116
   Terrasoft.Core.Entities.SystemEntitySchemaManager.InitializeItems() +320
   Terrasoft.Core.Entities.EntitySchemaManager.Initialize(SchemaManagerProvider provider, SchemaManagerProviderConfigurationElement configuration) +163
   Terrasoft.Core.SchemaManagerProvider.InitializeSystemSchemaManager(String systemSchemaManagerName) +223
   Terrasoft.Core.SchemaManagerProvider.InitializeSchemaManager(String managerName) +27
   Terrasoft.Core.SchemaManagerProvider.GetManager(String managerName) +221
   Terrasoft.Core.UserConnection.get_SystemEntitySchemaManager() +47
   Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean logSessionStart) +36
   Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection) +172
   Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup) +558
   Terrasoft.WebApp.Loader.Global.InitializeAppConnection() +486
   Terrasoft.WebApp.Loader.Global.Application_Start(Object sender, EventArgs e) +202
 
[HttpException (0x80004005): Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +517
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +185
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +168
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +414
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +369
 
[HttpException (0x80004005): Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +532
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +111
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +714

Помогите советом, что делать? куда копать?

У меня такой же вопрос

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

Добрый день, посмотрите настройки IIS, иногда функции отключены по умолчанию. Проверьте наличие галочки
Панель управления - >> Программы - >> Программы и компоненты - >> Включить или отключить функции Windows - >> Внутренние информационные службы
 

 

Добрый день.

Все компоненты установлены.

Evgeny D,

 

обратите внимание, что в требованиях предполагается IIS 7 и выше; а у вас , возможно, стоит более ранняя версия, так же есть в описании ошибки к этому отсылка

System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)

Попробуйте обновить IIS 

изначально установлен IIS 10

Если после обновления при логине в систему возникает ошибка вида "Unable to load one or more of the requested types", то вам необходимо установить компонент Microsoft Visual C++ 2010 SP1 Redistributable Package. Загрузить его можно на сайте компании Microsoft по ссылке.

Установка Microsoft Visual C++ 2010 SP1  помогла! огромное спасибо за помощь.  Хочется понять, почему в инструкции не указано, что должен стоять этот компонент. Спасибо!

Нашел заметку, но совсем в другом месте

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

Здравствуйте, подскажите, есть ли в нашей версии редактора отчетов возможность вносить изменения в БД ? Если да, то буду признателен за рабочий пример.

У меня такой же вопрос

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

Если мне не изменяет память, то esq в скриптах использовать можно. Может быть и такую конструкцию запустит

var manager = UserConnection.EntitySchemaManager.GetInstanceByName("Account");
var entity = manager.CreateEntity(UserConnection);
//entity.SetDefColumnValues();
entity.FetchFromDB(ID); //Account guid
entity.SetColumnValue("Name", "TEST");
entity.Save(false);

 

Мне интересно, какая бизнес-задача может потребовать этого?

Может, счётчик запусков или их логирование?

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

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

Коллеги, доброго дня!

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

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

2. При реализации нового функционала я создал новую версию работающего процесса в пакете-наследнике от пакета с процессом и пакета с новым функционалом.

Цель - оставить запущенные экземпляры на старой реализации процесса, а новые с момента обновления запускать на новой реализации. 

3. Сейчас я должен перенести новую версию процесса в рамках обновления, но немного паникую: не нужно ли каких-либо дополнительных действий с моей стороны?

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

Кто-нибудь сталкивался? как прошло?

У меня такой же вопрос

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

См. статью «Версионность процессов»:

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

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

При сохранении изменений в процессе выполняется проверка:
 

  1. есть ли запущенные экземпляры процесса;

  2. доступен ли для изменений пакет, в котором находится процесс;

  3. выполнялся ли экспорт бизнес-процесса.

Если пакет процесса недоступен для изменений, система предложит сохранить новую версию бизнес-процесса. После подтверждения будет выполнено сохранение новой версии в пакет, указанный в системной настройке [Текущий пакет].

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

Всем доброго времени суток. Версия 7.12.

В своё время работал с настройкой мобильного приложения, в т.ч. с добавлением кастомных элементов на страницы. Вроде тогда всё работало (в 7.10 и эмуляторе приложения для 7.10) - https://community.terrasoft.ru/questions/dobavlenie-kastomnyh-elementov…

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

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

Есть схема MobileContactPreviewPage, которая подключена в MobileApplicationManifestDefaultWorkplace у контакта в Models:

"Contact": {
			"Preview": "MobileContactPreviewPage",
			"RequiredModels": [
				"Account",
				"Contact",
				"ContactCommunication",
				"CommunicationType",
				"Department",
				"ContactAddress",
				"AddressType",
				"Country",
				"Region",
				"City",
				"ContactAnniversary",
				"AnniversaryType",
				"Activity",
				"SysImage",
				"FileType",
				"ActivityPriority",
				"ActivityType",
				"ActivityCategory",
				"ActivityStatus",
				"Job"
			],
			"ModelExtensions": [],
			"PagesExtensions": [
				"MobileContactRecordPageSettingsDefaultWorkplace",
				"MobileContactGridPageSettingsDefaultWorkplace",
				"MobileContactActionsSettingsDefaultWorkplace",
				"MobileContactModuleConfig"
			]
		}

Я заместил схему MobileContactPreviewPage, перенёс содержимое из оригинальной реализации полностью, добавил свою небольшую доработку-  просто добавление кнопки на страницу:

/* globals Contact: false */
Terrasoft.LastLoadedPageData = {
	controllerName: "ContactPreviewPage.Controller",
	viewXType: "contactpreviewpageview"
};
 
Ext.define("ContactPreviewPage.View", {
	extend: "Terrasoft.view.BasePreviewPage",
	xtype: "contactpreviewpageview",
	config: {
		id: "ContactPreviewPage"
	}
});
 
Ext.define("ContactPreviewPage.Controller", {
	extend: "Terrasoft.controller.BasePreviewPage",
 
	statics: {
		Model: Contact
	},
 
	config: {
		refs: {
			view: "#ContactPreviewPage"
		}
	},
 
	/**
	 * @inheritdoc
	 * @protected
	 * @overridden
	 */
	onCallPhoneStarted: function() {
		this.callParent(arguments);
		Terrasoft.PhoneCallLogUtils.openPage({
			activityLinkColumnNames: [
				{
					parentColumnName: "Id",
					activityColumnName: "Contact"
				},
				{
					parentColumnName: "Account",
					activityColumnName: "Account"
				}
			],
			record: this.record
		});
	},
 
	onLoadRecord: function(loadedRecord, callback) {
      this.callParent([loadedRecord, function() {
        Terrasoft.MessageBox.showMessage("onLoadRecord");
         var panelItems = this.getView().getPanel().getItems();
         var primaryColumnSet = panelItems.first();
 
		//Кнопка
		var controlbutton = this.getOurCustomButton(loadedRecord);
        controlbutton.on("tap", function () {
    		loadedRecord.set("UsrImgData","");
        }, this);
 
        primaryColumnSet.add(controlbutton); //если добавляем в конце панели
 
      }]);
    },
    getOurCustomButton: function(record) {
        return Ext.create('Ext.Button', {
              xtype: "button",
              cls: "x-button x-button-primary-blue",
              text: "Очистить"
            });
    },
 
});

 

Собственно, кнопки так и не появилось, сообщение showmessage тоже отсутствует. Версия приложения последняя, установил прямо с GooglePlay, проверяю всё непосредственно с телефона.

 

И ещё общий вопрос - что собственно, представляет собой приложение? Могу ли я туда выводить непосредственно html- или нативный javascript-код как в браузер? Будет ли при этом работать javascript-код на всех видах устройств?

У меня такой же вопрос

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

Добрый день, Денис!

А вы смотрели в dom дереве кнопка создалась? Может она есть, но просто не видна. Тогда придется поработать со стилями.

Приложение собой представляет одностраничное веб-приложение, т.е. html можно разве что в iframe'е попробовать вставить. А нативный JavaScript должен работать без проблем.

Золотарев Артем Андреевич,

Артём, спасибо за ответ.

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

html как-то добавляли в той теме по ссылке.

Ещё пробовал вместо MobileContactPreviewPage создавать свою версию с названием UsrMobileContactPreviewPage и аналогичным содержимым и подключать её на место оригинала в манифесте - тогда в приложении страница контакта вообще перестаёт открываться.

https://sun9-5.userapi.com/c830309/v830309684/143865/aieJi10t5ks.jpg (MobileContactPreviewPage)

https://sun9-7.userapi.com/c834401/v834401309/18b001/y7z3N8IY2FQ.jpg (UsrMobileContactPreviewPage)

Смородинов Денис,

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

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

Добрый вечер, коллеги. Такой вопрос: имеется раздел контактов и раздел профессий. Контакт содержит ФИО и номер телефона. При чем в гриде контактов - все номера телефонов идут как гиперссылка, при нажатии на которую идет звонок на этот номер телефона. В грид раздела "контакт в профессии" добавлен столбец "контакт.номер_телефона", но он уже отображается как обычная строка. Каким образом его можно сделать также гиперссылкой как и в разделе контакты?

У меня такой же вопрос

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

Вам в CtiLinkColumnUtility, там прописываются какие колонки в объекте считать гиперссылкой для вызовов.

Ну или переопределить addColumnLink в секции, отсеять по колонке и навешивать обработчик самостоятельно для колонки с телефоном

Вам в CtiLinkColumnUtility, там прописываются какие колонки в объекте считать гиперссылкой для вызовов.

Ну или переопределить addColumnLink в секции, отсеять по колонке и навешивать обработчик самостоятельно для колонки с телефоном

Спасибо! Все получилось!

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

Здравствуйте! Такой вопрос, могу ли я в серверном коде (с помощью C#) прочитать вьюху, через dblink Oracle? Используя например класс Select для запросов. Если да, то как ?

Спасибо.

У меня такой же вопрос

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

С точки зрения системы с view работают так же, как с таблицами. То есть Вы в базе сайта bpm'online пишете view с нужной логикой выборки данных с другого сервера, затем в конфигурации заводите схему с таким же названием, колонками и поставленной  в свойствах галочкой «Представление в базе данных». В этом случае за наличием view в базе и её структурой нужно следить самостоятельно.

А далее работаете с этой схемой как обычно, хоть из Select, хоть из EntitySchemaQuery.

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

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

На view тоже вполне могут быть II, IU и ID-триггеры, которые реализуют запись куда надо. В таком случае запись в эту view будет работать так же, как в таблицу.

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