Вопрос

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

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

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

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

Здравствуйте, Константин!
Можно скрыть кнопку таким образом:

var buttons = Ext.get('button-panel'); //получаем блок с кнопками
var buttonAdd = buttons.dom.children[0]; //получаем кнопку "Добавить"
buttonAdd.remove(); //удаляем кнопку
//или
buttonAdd.style.display = "none"; //скрываем кнопку

Благодарю, но вариант не совсем то, что мне нужно
Элементы из DOM'a, помниться мне, я могу получить только после отрисовки раздела, а удалить кнопку нужно до этого. Да и не совсем понятно куда этот код вставлять?

Константин, в 7.1 есть более корректный метод:

this.modifyUtilsConfig = function(config) {
config.items[0].splice(0,1);
}

А вариант с DOM должен работать на init.

ну если говорить о 7.1, то есть метод

getAddButtonVisbility

Константин, Вы имеете ввиду, что можно решить задачу, переопределив указанный метод?

Совершенно верно

Константин, рад, что у Вас получилось.

QArt,

Попробуйте удалить элемент после того как отработает базовая реализация init (после this.callParent(arguments)). В параметре Ext.get() нужно указывать id DOM элемента.

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

Здравствуйте,
подскажите как я могу создать собственную страницу в BPMonline для решения такой задачи:

на странице контрагента есть кнопка ("Отправить email"). Мне нужно выбрать из "Средства связи" сам email, на который отправлять письмо. Из самой страницы редактирования никак нельзя указать его либо выделить.

Можно ли создать отдельную страницу, чтобы при нажатии на кнопку она открывалась и содержала, например, элементы checkbox для выбора того или иного email? Как к ней в таком случае обращаться, "переходить", я имею ввиду код кнопки ("Отправить email").

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

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

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

Здравствуйте, Валентин!
Не совсем понял суть вопроса.
На странице контрагента Вы хотите добавить кнопку для отправки e-mail?
Можно добавить поле-справочник для выбора e-mail, затем считывать из него.
Опишите, пожалуйста, более структурированно Ваш вопрос.

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

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

1. Подскажите как добавить обработчик события кнопки. На примере кнопки выгрузки в xml записи Контрагента. Насколько я понимаю нужно создать Исходный код на C# и привязать функцию-обработчик к событию нажатия кнопки в карточке на js.

Спасибо

Валентин, как вариант решения могу предложить добавить пункт в выпадающее меню "Действия".
Более подробно здесь:
http://www.terrasoft.ua/bpmonlinesdk/CreateActionForStandartSection.html

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

Данная утилита - следующее развитие утилиты SolutionConsole, но уже под пакеты версии 7.0

Функциональность

При запуске данной утилиты необходимо указать корректную строку подключения (WorkspaceConsole.exe.Config, секция general атрибут connectionStringName). Имена параметров командной строки не регистрочувствительные. Доступны следующие параметры командной строки:
help
Выводит списком все параметры, если указаны при запуске утилиты другие параметры, то они игнорирутся
userName
Имя пользователя для авторизации. Обязательный
userPassword
Пароль пользователя для авторизации. Необязательный
operation
Операция, которую необходимо выполнить. Обязательный. Значения могут быть следующими:

  • BuildFromSvn - выполняется 5 действий: очищается рабочее пространство, загружаются из svn последние метаданные локально на диск, далее загружаются в базу данных, перегенерируются исходники и компилируется сборка. Два последних действия вынесены в отдельную операцию - RegenerateSchemaSources
  • InstallFromSvn - выполняется 7 действий: компилируется текущее рабочее пространство, загружаются из svn последние метаданные локально на диск, далее загружаются в базу данных,перегенерируются исходники, компилируется сборка, обновляется структура объектов в базе данных, инсталлируются данные, привязанные к пакету
  • BuildFromRepository - выполняется 5 действий: очищается рабочее пространство, загружаются из zip-архива метаданные, далее загружаются в базу данных, перегенерируются исходники и компилируется сборка. Два последних действия вынесены в отдельную операцию - RegenerateSchemaSources
  • InstallFromRepository – выполняется 7 действий: компилируется текущее рабочее пространство, загружаются из zip-архива метаданные, далее загружаются в базу данных, перегенерируются исходники, компилируется сборка, обновляется структура объектов в базе данных, инсталлируются данные, привязанные к пакету.
  • LoadLicResponse - загружает лицензии в базу данных, указанную в строке подключения. Единственная операция, которая не требует имя рабочего пространства
  • DisableTrackChanges - отключаются журналирование у всех схем объектов. Необходимо для автосборки, так как по умолчанию у нас нет в "чистой" базе данных схем, которые журналируются
  • SaveWorkspaceContent - работает в комбинации с параметром contentTypes. Если оно содержит Data, то сохраняются в папку destinationPath данные всех схем в формате json, если - LocalizableData, то сохраняются в формате xml данные схем объектов (необходимо для локализации конфигурации), если - Resources, то выгружаются ресурсы схем в формате xml (так же необходимо для локализации, но уже самых схем объектов)
  • LoadWorkspaceContent - аналогично SaveWorkspaceContent, но не сохраняет в папку destinationPath файлы, а загружает их в рабочее пространст
  • RegenerateSchemaSources - выполняются 2 действия: перегенерируются исходники и компилируется сборка
  • SaveEntitySchemaReferences - пересохраняются все связи схем объектов. Необходимо для локализации таблицы SysEntitySchemaRefe
  • ClearAllWorkspaces - очистка всех рабочих пространств
  • DeleteWorkspaces - удаление рабочих пространств

workspaceName
Имя рабочего пространства. Для операции DeleteWorkspaces может принимать значение в виде нескольких имен указанных через запятую.
Необязательный для одной операции - LoadLicResponse.
packageName
Имя пакета, из рабочего пространства (параметр workspaceName), который будет использоваться для операций BuildFromRepository и SaveWorkspaceContent. Важно, что будут так же задействованы все пакеты, от которых он зависит. Необязательный. Если он не указан, то будут задействованы все пакеты рабочего пространства.
Важно! Имя пакета регистрозависимое
repositoryUri
Адрес репозитария (svn) для хранения метаданных пакетов. Необязательный. Если он не пустой, то перекрывает аналогичное свойство рабочего пространства, указанного в параметре workspaceName
workingCopyPath
Локальная папка для хранения метаданных пакетов. Необязательный. Если он не пустой, то перекрывает аналогичное свойство рабочего пространства, указанного в параметре workspaceName
sourceControlLogin
Имя пользователя для доступа к репозитарию. Необязательный. Если он не пустой, то перекрывает аналогичное свойство текущего пользователя, указанного в параметре userName
sourceControlPassword
Пароль пользователя для доступа к репозитарию. Необязательный. Если он не пустой, то перекрывает аналогичное свойство текущего пользователя, указанного в параметре userName

contentTypes
Типы наполнения. Обязательный для операций SaveWorkspaceContent и LoadWorkspaceContent. Значения могут быть следующими:

  • SystemData - данные системных схем в формате json для переноса на другую СУБД. Выгружаются все системные схемы (все колонки), дополнительно ограниченные параметром exludedSchemas.
  • ConfigurationData - данные конфигурационных схем в формате json для переноса на другую СУБД. Выгружаются все конфигурационные схемы (все колонки), дополнительно ограниченные параметром exludedSchemas.
  • Data - данные всех схем (системные и конфигурационные) в формате json для переноса на другую СУБД. Сначала утилита работает с системными схемами, потом с конфигурационными. Выгружаются все схемы (все колонки), дополнительно ограниченные параметром exludedSchemas
  • Resources - ресурсы конфигурационных схем для локализации в формате xml
  • LocalizableData - наполнение конфигурационных схем для локализации в формате xml. Выгружаются только текстовые колонки, дополнительно ограниченные параметрами exludedSchemas и excludedSchemaColumns
  • Repository - данные рабочего пространства в формате zip
  • All - объединяет все предыдущие типы

sourcePath
Путь к локальной папке на диске для данных источника. Обязательный параметр для операций LoadLicResponse, LoadWorkspaceContent, BuildFromRepository
destinationPath
Путь к локальной папке на диске для данных приемника. Обязательный параметр для операций SaveWorkspaceContent, BuildFromRepository
fileName
Имя файла. Обязательный параметр для операций LoadLicResponse, SaveWorkspaceContent, LoadWorkspaceContent
excludedSchemas
Имена схем, которые исключаются при операции SaveWorkspaceContent. Необязательный
excludedSchemaColumns
Имена колонок схем, которые исключаются при операции SaveWorkspaceContent. Необязательный
includedSchemas
Имена схем, которые принудительно используются при операции SaveWorkspaceContent. Необязательный
includedSchemaColumns
Имена колонок схем, которые принудительно используются при операции SaveWorkspaceContent. Необязательный
сultureName
Код культуры. Обязательный если используется параметр contentTypes: Resources и/или LocalizableData
schemaManagerNames
Имена менеджеров схем, которые используются для операций SaveWorkspaceContent, RegenerateSchemaSources, SaveEntitySchemaReferences. Необязательный. Для contentTypes.Data, contentTypes.LocalizableData и операции SaveEntitySchemaReferences, заполняется по умолчанию "EntitySchemaManager"
clearWorkspaceBeforeUpdate
Указывает на необходимость очистки рабочего пространства перед обновлением. Используется для операций: BuildFromSvn и BuildFromRepository. Принимает значения: true, false. По умолчанию имеет значение true.

Примеры использования

Примеры использования утилиты для решения наиболее распространенных задач
Создание рабочего пространства из SVN-репозитория
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=BuildFromSvn -sourceControlLogin=[Имя пользователя для SVN] -sourceControlPassword=[Пароль пользователя для SVN] -RepositoryUri=http://tscoredev5:8050/svn/ts5conf/Product/trunk -workingCopyPath=D:\WorkingCopyDirectory
Установка из SVN-репозитория в существующее рабочее пространство(с установкой данных, привязанных к пакетам в .SVN)
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=BuildFromSvn -sourceControlLogin=[Имя пользователя для SVN] -sourceControlPassword=[Пароль пользователя для SVN] -RepositoryUri=http://tscoredev5:8050/svn/ts5conf/Product/trunk -workingCopyPath=D:\WorkingCopyDirectory
workingCopyPath=D:\WorkingCopyDirectory
Создание рабочего пространства из репозитория (zip-архив)
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=BuildFromRepository -sourcePath=d:\Temp\Repository\ -destinationPath=D:\Temp\Destination\
Установка из репозитория (zip-архив) в существующее рабочее пространство(с установкой данных, привязанных к пакетам в .zip)
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=BuildFromRepository -sourcePath=d:\Temp\Repository\ -destinationPath=D:\Temp\Destination\
Загрузка лицензий в БД
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -sourcePath=..\..\Src\Lib\AutoBuild\Licenses -Operation=LoadLicResponse -fileName=TSCoreBuild5Agent.tls
Выгрузка ресурсов схем для локализации
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=SaveWorkspaceContent -destinationPath=D:\Temp\Resources\ -contentTypes=Resources -fileName=Resources.xml -cultureName=ru-RU
Выгрузка наполнения конфигурационных схем для локализации
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=SaveWorkspaceContent -destinationPath=D:\Temp\Resources\ -contentTypes=LocalizableData -fileName=LocalizableData.xml -cultureName=ru-RU
Загрузка локализированных ресурсов схем в БД
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=LoadWorkspaceContent -sourcePath=D:\Temp\Resources\ -contentTypes=Resources -fileName=Resources.en.xml cultureName=en-GB
Загрузка наполнения конфигурационных схем в БД
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=LoadWorkspaceContent -sourcePath=D:\Temp\Resources\ -contentTypes=LocalizableData -fileName=LocalizableData.en.xml -cultureName=en-GB
Выгрузка рабочего пространства в репозиторий (zip-архив)
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=SaveWorkspaceContent -contentTypes=Repository -destinationPath=D:\Temp\Repository\ -workingCopyPath=D:\Temp\Source\ -repositoryUri=http://tscoredev5:8050/svn/ts5conf/Product/trunk -sourceControlLogin=[Имя пользователя для SVN] -sourceControlPassword=[Пароль пользователя для SVN]
Загрузка из репозитория (zip-архив) в рабочее пространство
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=LoadWorkspaceContent -contentTypes=Repository -sourcePath=d:\Temp\Repository\ -destinationPath=D:\Temp\Destination\
Важно! После загрузки необходимо выполнить операцию RegenerateSchemaSources
Перегенерация исходников всех схем и компиляция рабочего пространства
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -workspaceName=Default -operation=RegenerateSchemaSources

providerNames="SSPLdapProvider,SSPUserPassword,InternalUserPassword,Ldap" autoLoginProviderNames="" defLanguage="ru-RU" defSolutionName="TSBpm">
>

Установка обновлений клиенту из репозитория(zip-архив) в существующее рабочее пространство
Важно! Перед выполнением команды необходимо сделать копию БД клиента. Если в процессе обновления произойдет ошибка, есть большой риск, что повторно выполнить команду не получиться. Утилиту следует запускать после обновления бинарных файлов самого приложения
Terrasoft.Tools.WorkspaceConsole.exe -userName=Supervisor -userPassword=Supervisor -packageName=NUI -workspaceName=Default -operation=InstallFromRepository -sourcePath=\\tscoredev5\Versions70\7.0.0\7.0.0.167\CRM_Softkey_RUS\Packages\ -destinationPath=c:\Temp\Destination\
-packageName: возможны 2 варианта значений, для SoftKey приложений это имя пакета "NUI", для демо приложений имя пакета "Demo".
-destinationPath: путь к временной директории
Удаление рабочих пространств
Terrasoft.Tools.WorkspaceConsole.exe -operation=DeleteWorkspaces -workspaceName=WorkspaceName1,WorkspaceName2,WorkspaceName3

Поделиться

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

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

Во вложении файлы, с видео инструкцией по создании/регистрации и настройке нового раздела.

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

Скачать архив с видео:
sozdat_razdel.rar

Инструкция по созданию раздела в 7.0.1:
sozdanie_standartnogo_razdela.docx

Исходный код схемы карточки раздела:

define('CasePage', ['ext-base', 'terrasoft', 'sandbox', 'Case', 'CasePageStructure',
    'CasePageResources', 'GeneralDetails'],
    function(Ext, Terrasoft, sandbox, Case, structure, resources, GeneralDetails) {

        structure.userCode = function() {
            this.entitySchema = Case;
            this.name = 'CaseCardViewModel';
            this.schema.rightPanel = [

                GeneralDetails.Notes('Notes', {
                    collapsed: false
                }),
                GeneralDetails.File('Case'),
                GeneralDetails.InFolder('Case')
            ];
            this.schema.leftPanel = [
                {
                    type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
                    name: 'Id',
                    columnPath: 'Id',
                    visible: false,
                    viewVisible: false
                }
            ];
        };
        return structure;
    });

Исходный код страницы раздела:

define('CaseSection', ['Case', 'CaseSectionStructure',
    'CaseSectionResources'],
    function(Case, structure, resources) {
        structure.userCode = function() {
            this.entitySchema = Case;
            this.name = 'CaseSectionViewModel';
            this.columnsConfig = [
                [
                    {
                        cols: 24,
                        key: [
                            {
                                name: {
                                    bindTo: 'Number'
                                },
                                type: 'title'
                            }
                        ]
                    }
                ]
            ];
            this.loadedColumns = [{
                columnPath: 'Number'
            }];
            this.fixedFilterConfig = {
                entitySchema: Case,
                filters: [
                    {
                        name: 'PeriodFilter',
                        caption: resources.localizableStrings.PeriodFilterCaption,
                        dataValueType: Terrasoft.DataValueType.DATE,
                        startDate: {
                            columnName: 'RegistrationDate',
                            defValue: Terrasoft.startOfWeek(new Date())
                        },
                        dueDate: {
                            columnName: 'RegistrationDate',
                            defValue: Terrasoft.endOfWeek(new Date())
                        }
                    },
                    {
                        name: 'Owner',
                        caption: resources.localizableStrings.OwnerFilterCaption,
                        columnName: 'Owner',
                        defValue: Terrasoft.SysValue.CURRENT_USER_CONTACT,
                        dataValueType: Terrasoft.DataValueType.LOOKUP
                    }
                ]
            };
        };
        return structure;
    });

Скрипт регистрации раздела:

--скрипт регистрации раздела (7.0.0)

INSERT INTO SysModuleEntity (SysEntitySchemaUId)
SELECT [UId] FROM SysSchema WHERE Name = 'Case'


INSERT INTO SysModuleEdit (SysModuleEntityId, CardSchemaUId, ActionKindCaption, ActionKindName)
VALUES ((SELECT Id FROM SysModuleEntity WHERE SysEntitySchemaUId IN (SELECT UId FROM SysSchema WHERE Name = 'Case')), (SELECT UId FROM SysSchema WHERE Name = 'CasePage'), 'Добавить обращение', 'Case')

INSERT INTO SysModule (Caption, SysModuleEntityId, FolderModeId,
GlobalSearchAvailable, HasAnalytics, HasActions, Code, ModuleHeader, CardSchemaUId, SectionModuleSchemaUId, SectionSchemaUId)
VALUES ('Обращения', (SELECT Id FROM SysModuleEntity WHERE SysEntitySchemaUId IN (SELECT UId FROM SysSchema WHERE Name = 'Case')),
'B659D704-3955-E011-981F-00155D043204', 1,1,1,'Case', 'Список обращений', (SELECT [UId] FROM SysSchema WHERE Name = 'CasePage'),'47BEF7B5-5E02-4699-A607-D4E39D0A19D0',(SELECT [UId] FROM SysSchema WHERE Name = 'CaseSection'))

INSERT INTO SysModuleLcz (RecordId, ColumnUId, SysCultureId, Value) VALUES
((SELECT Id FROM SysModule WHERE Code = 'Case'), '7B904E78-84BF-408C-A7A1-1287E66837D3', '1A778E3F-0A8E-E111-84A3-00155D054C03', 'Список обращений')

INSERT INTO SysModuleLcz (RecordId, ColumnUId, SysCultureId, Value) VALUES
((SELECT Id FROM SysModule WHERE Code = 'Case'), '3DA3C3B2-02FB-4CCA-80C3-7946D4E8F565', '1A778E3F-0A8E-E111-84A3-00155D054C03', 'Обращения')

INSERT INTO SysModuleInSysModuleFolder (SysModuleId, SysModuleFolderId) VALUES
((SELECT Id FROM SysModule WHERE Code = 'Case'), 'F330F0C2-3EE4-4A73-9AC9-8439543CA19B')

Поделиться

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

Я правильно понимаю, что выложенные выше 3 ЛИСТИНГА будут работать в 7.0.0.235?
Если так, то Дмитрий, Вы не могли бы добавить в них как можно более подробных комментариев?
Спасибо.

В частности, интересуют места, которые нужно будет менять, если создаешь раздел не с нуля, а для объекта Продукты, например...

Акмаль, у Вас остались еще вопросы или информация, которую я Вам дал на портале самообслуживания?

Создал согласно этой инструкции раздел. Одна проблема, в карточке группы не отображаются(как на рисунке). В чем может быть проблема?

Андрей, видимо Вам нужно добавить в зависимости (dependencies) схемы GeneralDetails (общие детали)

"Салихов А" написал:

Андрей, видимо Вам нужно добавить в зависимости (dependencies) схемы GeneralDetails (общие детали)


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

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

Добрый день!

Необходимо добавить свой пункт в меню "Действия" карточки задачи и написать обработчик события нажатия. Как это можно сделать?

P.S.: информацию по добавлению действия в раздел кое какую нашел, а вот в карточку - нет.

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

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

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

В приложении инструкция по созданию действия для стандартного раздела.

Елена, ну я же специально уточнил и скриншот приложил: мне нужно добавить действие НЕ В РАЗДЕЛ, А В КАРТОЧКУ.

Александр,

Принцип добавления действия в карточку раздела аналогичен принципу добавления действия в раздел. Разница только в схемах, в которые добавляется код обработчика. Для добавления действия в раздел обработчик добавляется в схему [Название_объекта_раздела]Section. Если необходимо добавить действие в карточку раздела - изменяется схема [Название_объекта_раздела]Page.
В вашем случае необходимо создать замещающий модуль для страницы ActivityPage и добавить в него код обработчика.

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

Елена,

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

P.S.: данные с самой карточки получаются легко согласно статье, а вот для деталей аналогичного не нашел.

Александр,

через объект получить доступ к деталям не получится. Можно использовать select и получить данные из базы данных. Например так:

var selectFilevar = 
        new Select(UserConnection)
        .Column("Name")
        .From("ActivityFilel")
        .Where("ActivityId").IsEqual(activity.Id)

Андрей,

все бы хорошо, но вот незадача: ActivityPage - это js-страница. Поэтому, чтобы ее переопределить, приходится писать на js. Код:

this.methods.showAvtivityInfo = function() {
   var activityTitle = this.get("Id");
   var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
    rootSchemaName: 'ActivityFile'
   });
   esq.addColumn('Id');
   esq.addColumn('Name');
   esq.addColumn('ActivityId');
   /*var filters = esq.filters;
   var filterNameActivityId = 'ActivityId';
   var filterActivityId = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
    'ActivityId', activityTitle);
   filters.add(filterNameActivityId, filterActivityId);*/
   esq.getEntityCollection(function(result) {
    var collection = result.collection;
    if (collection && collection.collection.length > 0) {
     var item = collection.collection.items[0].values;
     this.showInformationDialog(activityTitle);
    }
   }, this);
  };

Exception выходит на строке

esq.addColumn('ActivityId');

Текст exception: [17:51:16.813] uncaught exception: -;5<5=B :>;;5:F88 A 8<5=5< ActivityId =5 =0945=

P.S.: Поля 'ID' и 'Name' отрабатывают корректно.

Александр, у Вас опечатка:

this.methods.showAvtivityInfo = function() {

Должно быть showActivityInfo.

Попробуйте использовать Select(UserConnection), как я описывал выше.

Андрей,

опечатка не существенна, потому что я вызывал функцию ниже именно по этому имени. Сейчас поменял - не помогло.
Вы описали Select(UserConnection), это применимо для C# кода, в JS коде получаем ожидаемую ошибку.
1. При сохранении (во вложении)
2. В консоли браузера:
[14:42:41.377] ReferenceError: Select is not defined @ http://stnd-bpm-02:88/0//configuration/30e6e6890bd6a8c10768d330b68949d4…

Александр,

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

Андрей,

файл во вложении.

Методом тыка и медитированя нашел решение:

esq.addColumn('Activity.Id');

Теперь вопрос в том, как вызвать свой серверный метод?
Видимо нужно использовать DLL либо .NET Managed Assemblies отсюда, но примеров нет:(

Александр, если я правильно понял, то нужно просто дописать

click: {
         bindTo: 'showActivityInfo'
        }

Андрей,
Уверен, Вы меня не правильно поняли. Я получил idшники файлов, круто. Теперь мне нужно вызвать метод, написанный на C#. На сколько я понимаю, мне для этого нужно:
1. Создать проект со сбокой dll в VisualStudio
2. Подключить сборку к dll. Как?
3. Вызвать из js-кода метод из сборки. Как?

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

То есть варианты DLL сборки и .Net Managed сборки не подходят?
Можно тогда инструкцию/пример по написанию сервиса и вызову его из js-кода в Террасофт?

Александр, веб-сервис пишется на любом языке программирования и регистрируется в IIS.
Потом через API сервиса вызывать его методы. Пример запроса к Google с помощью jQuery:

1) Подключить jQuery в зависимые модули нашей страницы редактирования (в примере ProductPage) модуль jQuery.
2) В коде страницы добавить define('ProductPage', ['ext-base', 'terrasoft', 'sandbox', 'jQuery' …..
function(Ext, Terrasoft, sandbox, jQuery ……
3) В обработчик нажатия кнопки добавить следующий код:
var geocodingAPI = "http://maps.googleapis.com/maps/api/geocode/json?address=Россия+Москва&sensor=true";
window.jQuery.getJSON(geocodingAPI, function (json) {
console.log('json : ', JSON.stringify(json));
});

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

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

делал по схеме:
1. Создать объект раздела.
2. Создать схему представления раздела (название - [ИмяОбъекта]Section, к примеру ProductSection);
3. Создать схему представления карточки (название - [ИмяОбъекта]Page, к примеру ProductPage);
4. Выполнить скрипт по регистрации раздела

прилагаю скрины






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

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

Добрый день.

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

Проблему решил сам, нужно было создать еще объекты [ИмяОбъекта]Folder и [ИмяОбъекта]InFolder :cool:

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

BPMonline 7.0
После выхода BPMonline 7.0 с новым интерфейсом вспомнились и другие "семёрки", нашумевшие в своё время.

Turbo Pascal 7.0
Turbo Pascal 7.0 — последняя версия классической среды разработки для MS DOS. В школах, возможно, до сих пор применяется для обучения программированию. Предшественник революционного Delphi.

Borland Delphi 7
Borland Delphi 7 — тоже уже классика. Но отдельными некр...ретроградами используется для разработки и сегодня. На нём изначально было написано ядро Terrasoft CRM 3.X.

Windows 7
Microsoft Windows 7 — реванш после провальной Vista. В настоящее время — самая популярная ОС для ПК.

Windows Phone 7
Windows Phone 7 — после многолетнего застоя Windows Mobile родилась практически заново. Но пользователи не оценили.

iOS 7
Apple iOS 7 — вышедшая несколько дней назад ОС для будущего iPhone. Уже стала объектом шуток.

Поделиться

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

Вы на что намекаете? На мистическую власть чисел? Пелевиным пахнет, недавно перечитывал...

Тогда уж Пушкиным. Тройка, семёрка...

Войдите или зарегистрируйтесь, чтобы комментировать
Идея
Я уже давно смотрю на набор полей, который сейчас объединен в группу "Связи". Почему бы не сделать для их заполнения один элемент управления? Одно поле, в котором при вводе высвечивается список подходящих из всех возможных таблиц (для удобства, можно префиксы добалять, типа "Контрагент:..", "Контакт:...", "Продажа:.." и т.д.) и на основании этого подставлять значения в соответствующие поля раздела "Связи"
Обсуждение
0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать