Пару месяцев назад после очередного обновления ос Android 7 приложение bpm перестало загружаться. Проблема решается отключением приложения GoogleChrome и отключением автообновлений.

версия мобильного приложения 7.10

 

из-за чего может возникнуть такой конфликт?

старая версия моб приложения и обновленный хром совсем никак не смогут сосуществовать?

Нравится

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

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

 

У нас нет как таковой поддержки старых версий приложения. Рекомендуем использовать актуальную версию приложения, сейчас это 7.16.1. 

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

Добрый день, коллеги. Прошу помочь... Одно правило последнее перекрывает первое. И последнее работает, а первое нет. 

Как можно сделать чтобы правило срабатывало по двум условиям?

 

 

Terrasoft.sdk.Model.addBusinessRule("Activity", {
    ruleType: Terrasoft.RuleTypes.Visibility,
    conditionalColumns: [
        {name: "UsrLookupBR", value:"b14640eb-8b89-4fe9-8b00-a51b61ff9430"}
    ],
    triggeredByColumns: ["UsrLookupBR"],
    dependentColumnNames: ["UsrLookupDostup"]
});

Terrasoft.sdk.Model.addBusinessRule("Activity", {
    ruleType: Terrasoft.RuleTypes.Visibility,
    conditionalColumns: [
        {name: "UsrLookupBR", value:"e818a7c2-f351-41a6-a376-7f42762883f2"}
    ],
    triggeredByColumns: ["UsrLookupBR"],
    dependentColumnNames: ["UsrLookupDostup"]
});

Нравится

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

Насколько понимаю, в MobileKnowledgeBaseFileModelConfig именно так и сделано, два правила по двум константам меняют видимость одного поля:

Terrasoft.sdk.Model.addBusinessRule("KnowledgeBaseFile", {
	ruleType: Terrasoft.RuleTypes.Visibility,
	name: "KnowledgeBaseFileVisibleLinkRule",
	conditionalColumns: [
		{name: "Type", value: Terrasoft.Configuration.FileTypeGUID.Link}
	],
	events: [Terrasoft.BusinessRuleEvents.Load],
	dependentColumnNames: ["Name"]
});
Terrasoft.sdk.Model.addBusinessRule("KnowledgeBaseFile", {
	ruleType: Terrasoft.RuleTypes.Visibility,
	name: "KnowledgeBaseFileVisibleKnowledgeBaseLinkRule",
	conditionalColumns: [
		{name: "Type", value: Terrasoft.Configuration.FileTypeGUID.KnowledgeBaseLink}
	],
	events: [Terrasoft.BusinessRuleEvents.Load],
	dependentColumnNames: ["Name"]
});

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

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

Добрый день, уважаемые коллеги!

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

Задача - на страницу редактирования Активности в мобильном приложении добавить бизнес-правило (доступность). В какой схеме необходимо прописать новое бизнес-правило?

Есть образованные при настройке мастером мобильного приложения кастомные

MobileApplicationManifestFieldForceWorkplace и MobileActivityRecordPageSettingsFieldForceWorkplace.

Правильно ли я понимаю, что шаги должны быть следующие:

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

И еще вопрос: в каком случае следует использовать классы бизнес-правил , а в каком пользовательские бизнес-правила.

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

Нравится

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

Вообще, бизнес-правила для разных разделов добавляют в схемы с названиями ...ModelConfig, вроде MobileActivityModelConfig. Например, в ней стандартно такое:

Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Requirement,
	triggeredByColumns: ['Number'],
	position: 0
});
 
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Requirement,
	triggeredByColumns: ['CommunicationType'],
	position: 1
});
 
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Filtration,
	triggeredByColumns: ['CommunicationType'],
	position: 2,
	filters: Ext.create('Terrasoft.Filter', {
		type: Terrasoft.FilterTypes.Group,
		subfilters: [
			Ext.create('Terrasoft.Filter', {
				property: 'UseforContacts',
				value: true
			}),
			Ext.create('Terrasoft.Filter', {
				property: 'Id',
				funcType: Terrasoft.FilterFunctions.NotIn,
				funcArgs: [Terrasoft.GUID.Twitter, Terrasoft.GUID.Facebook, Terrasoft.GUID.LinkedIn]
			})
		],
		name: 'a4265c53-b393-4e16-be5f-ee0e5a7faa8c'
	})
});

 

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

https://academy.terrasoft.ru/documents/technic-sdkmob/7-16/biznes-pravila-mobilnogo-prilozheniya

А тут по кастомным

https://academy.terrasoft.ru/documents/technic-sdkmob/7-16/polzovatelskie-biznes-pravila-mobilnogo-prilozheniya

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

 

 

Бершеда Д. Н.,

Благодарю за информацию и помощь, но правильно ли я понимаю порядок работы со схемами для добавления бизнес-правила?  Если нет возможности наследования, я должна создать клиентский модуль для своего бизнес-правила, который прописать в манифесте? 

Вообще, бизнес-правила для разных разделов добавляют в схемы с названиями ...ModelConfig, вроде MobileActivityModelConfig. Например, в ней стандартно такое:

Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Requirement,
	triggeredByColumns: ['Number'],
	position: 0
});
 
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Requirement,
	triggeredByColumns: ['CommunicationType'],
	position: 1
});
 
Terrasoft.sdk.Model.addBusinessRule('ContactCommunication', {
	ruleType: Terrasoft.RuleTypes.Filtration,
	triggeredByColumns: ['CommunicationType'],
	position: 2,
	filters: Ext.create('Terrasoft.Filter', {
		type: Terrasoft.FilterTypes.Group,
		subfilters: [
			Ext.create('Terrasoft.Filter', {
				property: 'UseforContacts',
				value: true
			}),
			Ext.create('Terrasoft.Filter', {
				property: 'Id',
				funcType: Terrasoft.FilterFunctions.NotIn,
				funcArgs: [Terrasoft.GUID.Twitter, Terrasoft.GUID.Facebook, Terrasoft.GUID.LinkedIn]
			})
		],
		name: 'a4265c53-b393-4e16-be5f-ee0e5a7faa8c'
	})
});

 

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

 

Александр, спасибо за пояснения. Но никак не разберусь).

Имеется решение Sales Enterprise + Field Force. Цель изменить поведение стандартного бизнес-правила Активности заполнения Результата, применив сверху стандартного правила и внешнего пакета. Стандартное бизнес-правило прописано в MobileActivityModelConfig (пакет Mobile) - разрешать редактирование поля Result , если состояние активности имеет признак Конечное. Стандартное правило не именовано,т.е. просто отключить его нельзя

Есть FieldForceMobileActivityModelConfig (пакет FieldForceMobile), где изменяется стандартное бизнес-правило в отношении поля DetailedResult. 

Есть MobileApplicationManifestFieldForceWorkplace (пакет FieldMobile), где для модели Activity прописаны "ModelExtensions":

["MobileActivityModelConfig" (стандартные правила),

"FieldForceMobileActivityModelConfig" (добавленные правила внешнего пакета)]

Есть MobileApplicationManifestFieldForceWorkplace (пакет Custom), создан автоматически с признаком «замещать родителя» да.

Создаю свой модуль UsrFieldForceMobileActivityModelConfig, где прописываю свое бизнес-правило, и затем в MobileApplicationManifestFieldForceWorkplace (пакет Custom), добавляю в "ModelExtensions" свой модуль UsrFieldForceMobileActivityModelConfig

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

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

 

Благодарю за помощь) разобралась

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

Добрый день.

Правило которое должно сработать если в поле UsrLookupBR выбрано определённое значение. Только вот оно и игнорирует условие срабатывания и просто скрывает навсегда. 
   

Terrasoft.sdk.Model.addBusinessRule("Activity", {
    ruleType: Terrasoft.RuleTypes.Visibility,
    conditionalColumns: [
        {name: "UsrLookupBR", value:"E818A7C2-F351-41A6-A376-7F42762883F2"}
    ],
    triggeredByColumns: ["UsrLookupBR"],
    dependentColumnNames: ["UsrLookupDostup", "Owner"]
});

 

А вот если указать на предмет заполненности  поля    {name: "UsrLookupBR", value: null}, то правило чудесным образом срабатывает. 

Буду очень рад помощи. Заранее спасибо.

Нравится

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

Скорее всего, неправильно сделали сравнение с GUID в фильтре. Если посмотреть похожие случаи, там так:

Terrasoft.sdk.Model.addBusinessRule("KnowledgeBaseFile", {
	ruleType: Terrasoft.RuleTypes.Visibility,
	name: "KnowledgeBaseFileVisibleFileRule",
	conditionalColumns: [
		{name: "Type", value: Terrasoft.Configuration.FileTypeGUID.File}
	],
	events: [Terrasoft.BusinessRuleEvents.Load],
	dependentColumnNames: ["Data"]
});
Terrasoft.sdk.Model.addBusinessRule("KnowledgeBaseFile", {
	ruleType: Terrasoft.RuleTypes.Visibility,
	name: "KnowledgeBaseFileVisibleLinkRule",
	conditionalColumns: [
		{name: "Type", value: Terrasoft.Configuration.FileTypeGUID.Link}
	],
	events: [Terrasoft.BusinessRuleEvents.Load],
	dependentColumnNames: ["Name"]
});

Тут File и Link — две константы, заданные в MobileConstants:

Terrasoft.Configuration.FileTypeGUID = {
	File: "529bc2f8-0ee0-df11-971b-001d60e938c6",
	Link: "539bc2f8-0ee0-df11-971b-001d60e938c6",
	EntityLink: "549bc2f8-0ee0-df11-971b-001d60e938c6"
};

А, может, дело просто в верхнем регистре букв у Вас в константах?

Спасибо большое. Дело было в регистре.

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

Коллеги, привет)
Подскажите, каким образом можно реализовать многострочный тип строки в моб.приложении? Базовая многострочная колонка отображается в моб.приложении так же. А кастомная нет.

Нравится

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

Здравствуйте, Виктория!

 

К сожалению, сейчас нет возможности установки многострочности через мастер мобильного приложения.
Данная проблема уже находится на рассмотрении у аналитиков продукта и, возможно, будет исправлена в последующих релизах.
Данную настройку можно решить с помощью доработки.
Если колонка ранее добавлена в мастере мобильного приложения, то необходимо ее сконфигурировать следующим образом:

Terrasoft.sdk.RecordPage.configureColumn("Activity", "primaryColumnSet", "Title", {
    isMultiline: true
});

Для этого нужно просто знать название колонки и группу колонок, в которой размещена колонка (второй параметр в примере выше).

Пример реализации:

1. Создать в конфигурации модуль http://prntscr.com/pgj6cm  в пакете Custom 
2. Называем его UsrMobileActivityModuleConfig  и пишем в схеме код: 
 

Terrasoft.sdk.RecordPage.configureColumn("Activity", "primaryColumnSet", "DetailedResult", {
    isMultiline: true
});

https://prnt.sc/q0zgem

3. Сохраняем схему 
4. В MobileApplicationManifestDefaultWorkplace в пакете Custom добавляем созданную схему https://prnt.sc/q0zh0l
Как это правильно делать также описано на Академии https://academy.terrasoft.ru/documents/technic-sdkmob/7-14/kak-dobavit-standartnuyu-detal-s-kolonkami
https://academy.terrasoft.ru/documents/technic-sdkmob/7-15/sdk-reestra
5. Сохраняем манифест 
6. Компилируем измененное.
 

Здравствуйте, Виктория!

 

К сожалению, сейчас нет возможности установки многострочности через мастер мобильного приложения.
Данная проблема уже находится на рассмотрении у аналитиков продукта и, возможно, будет исправлена в последующих релизах.
Данную настройку можно решить с помощью доработки.
Если колонка ранее добавлена в мастере мобильного приложения, то необходимо ее сконфигурировать следующим образом:

Terrasoft.sdk.RecordPage.configureColumn("Activity", "primaryColumnSet", "Title", {
    isMultiline: true
});

Для этого нужно просто знать название колонки и группу колонок, в которой размещена колонка (второй параметр в примере выше).

Пример реализации:

1. Создать в конфигурации модуль http://prntscr.com/pgj6cm  в пакете Custom 
2. Называем его UsrMobileActivityModuleConfig  и пишем в схеме код: 
 

Terrasoft.sdk.RecordPage.configureColumn("Activity", "primaryColumnSet", "DetailedResult", {
    isMultiline: true
});

https://prnt.sc/q0zgem

3. Сохраняем схему 
4. В MobileApplicationManifestDefaultWorkplace в пакете Custom добавляем созданную схему https://prnt.sc/q0zh0l
Как это правильно делать также описано на Академии https://academy.terrasoft.ru/documents/technic-sdkmob/7-14/kak-dobavit-standartnuyu-detal-s-kolonkami
https://academy.terrasoft.ru/documents/technic-sdkmob/7-15/sdk-reestra
5. Сохраняем манифест 
6. Компилируем измененное.
 

Мотков Илья,

большое спасибо!

Илья, привет! С Праздником Пасхи! Мира, добра и всех благ :-)
Подскажи, пожалуйста, если у меня колонка вообще не отображается в моб.приложении после всех действий, что можно сделать?
Мой кейс: добавила новую колонку "Комментарии к статье". Создала модуль в конфигурации и добавила код с названием моей колонки. Добавила данный модуль в манифест, скомпилровала измененное. Колонки вообще нет в моб. приложении.

Может данную колонку нужно добавить в коллекцию первичных колонок?

Viktoriya Abysova,

вопрос уже не актуален, разобралась, спасибо!

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

Добрый день, коллеги!
В мобильном приложении в разделе итоги не отображаются расчетные показатели, составленные с помощью Calculated metrics for Creatio. При этом остальные работают.

Может кто сталкивался? Как решается данный вопрос?

Нравится

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

Добрый день, Илья!

 

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

Ирина Лазоренко,

Спасибо за ответ

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

Добрый день, уважаемые коллеги! Для нас представляет большой интерес приложение  Field surveys for Creatio (приложение с MarketPlace). Но к сожалению, при работе с мобильным приложением в режиме off-line, возникают ошибки синхронизации. Мы обращались в техническую поддержку Terrasoft, где приложение проверили на чистой сборке и подтвердили, что  возникают ошибки синхронизации. Может кто-то уже сталкивался и решал подобную проблему?

Нравится

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

Добрый день, Марина,

 

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

Ирина Лазоренко,

Добрый день, Ирина! Прошу прощения за задержку. Нет, больше никаких дополнений не установлено. 

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

Установлено приложение Creatio File Storage. 

при прикреплении файла к обращению через мобильно приложение прикрепляется пустой файл. 

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

 

лог из мобильного приложения при принудительной синхронизации

Model Name: BKL-L09
Platform: Android
Platform Version: 9
Resolution: 424x848
IsHybridMode: true
SyncInService: false
UIVersion: UIV2
RootAppDirectory: creatio
ApplicationVersion: 7.15.9
ApplicationMajorVersion: 7.15
BackgroundSyncMode: Always
UseNativeSynchronization: true
UseNativeImport: true
UseNativeExport: true
UseNativeLogout: true
UseDataService: true
IsDevMode: false
CurrentDateTime: 2020-03-10T06:34:48.936Z
ServerUrl: 
ContactId: 105110e0-71c6-4cc8-a413-0e4fb0b73446
CultureName: ru-RU
ApplicationRevision: 0
WorkplaceCode: DefaultWorkplace
ProductInfo: {"ProductName":"Портал ЭПМ","ProductEdition":"service enterprise","CustomerId":"201812031735","Version":{"Major":7,"Minor":15,"Build":3,"Revision":1649,"MajorRevision":0,"MinorRevision":1649}}

CaseFile(6597eb70-1eb3-4de6-b58b-235afed70547) at Tue Mar 10 2020 09:34:07 GMT+0300 (Москва, стандартное время). Error text: Message: null
Status code: 400
URL: https:/0/rest/FileApiService/Upload?totalFileLength=68177&fileId=6597eb70-1eb3-4de6-b58b-235afed70547&columnName=Data&fileName=!Лист ознакомления с ЛНА.docx&entitySchemaName=CaseFile&fileTypeId=529bc2f8-0ee0-df11-971b-001d60e938c6
Response body: 










Request Error



The server encountered an error processing the request. The exception message is 'Value cannot be null.
Parameter name: g'. See server logs for more details. The exception stack trace is:



at System.Guid..ctor(String g)
at Terrasoft.Configuration.FileUpload.FileUploadInfo.get_ParentColumnValue()
at Terrasoft.Configuration.BpmFileStorage.GetUploadFilePath(IFileUploadInfo fileUploadInfo)
at Terrasoft.Configuration.FileUpload.BpmFileUploader.InnerUploadFile(IFileUploadInfo fileUploadInfo)
at Terrasoft.Configuration.FileUpload.BpmFileUploader.UploadFile(IFileUploadInfo fileUploadInfo, Boolean isSetCustomColumns)
at Terrasoft.Configuration.FileApiService.Upload(Stream fileContent)
at SyncInvokeUpload(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

 

Нравится

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

Добрый день, Алексей! Кейс добавления файлов через мобильное приложение не поддерживается в решении File storage for Creatio. В мобильном приложении Creatio используются другие подходы работы с деталью Файлы и ссылки. Еще ожидаю обратную связь от ответственной команды по планам такой доработки. Как только узнаю решение, вам сообщу.

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

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

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

Изначально мобильная версия работала корректно. Но после перезагрузки ПК все поломалось.

Пробовал:

удаление папок с кэшем из папки мобильного приложения;

использование свежих архивов с мобильным приложением;

переустановка браузера;

удаление любых упоминаний хрома и мобильного бпм в реестре;

запуск мобильного приложения через батник на свежеустановленной винде 8 на виртуалке;

 

Проблема не зависит от адреса проекта, к которому идет подключение. Если  адрес недоступен, то пишет соответствующую ошибку, если верен, то адресует на браузерную версию соответствующего проекта. Тестил на локальном стенде и на удаленном. У коллеги с подключением к тем же проектам все в порядке. Включая подключение к моему локально развернутому проекту.

Нравится

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

Проблемы с текущей версией хрома 80+. Откатитесь до 79, и все будет работать 

Или использовать MS Edge на Chromium, запускать можно батником:

@echo off
SET PAGEPATH=appV2\MobileApp\MobileMainPage.html
start msedge --disable-features=IsolateOrigins,site-per-process --allow-file-access-from-files --disable-web-security --disable-popup-blocking --user-data-dir="%~dp0\\ChromeUserData" --enable-device-mode "file:///%~dp0%PAGEPATH%?platform=webkit&usecookie=true"

 

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

Добрый день!
Подскажите как можно добавить фото Контакта и Контрагента в реестр и на страницу в мобильной версии Creatio.

Нравится

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

Так стандартно фото есть и в реестре, и в карточке:

scr_mobile_overview_main_wizard.pngscr_mobile_overview_look_inside.png

А если Вы хотите с телефона добавить фото конкретному контакту, то вроде бы стандартными средствами нельзя.

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