Вам же ответили по событию вычитайте через клиентский esq (javascript - без перезагрузки страницы) значения интересующих вас полей и проапдэйте их Пример тут
Как вариант можно дернуть вэб сервис, тоже без перезагрузки страницы
Это доступ в базу данных, а я имею введу по событию что бы обновилось не все окно а только одно поле полезли в базу и обновилось. Как заставить это сделать по событию?
Вам же ответили по событию вычитайте через клиентский esq (javascript - без перезагрузки страницы) значения интересующих вас полей и проапдэйте их Пример тут
Как вариант можно дернуть вэб сервис, тоже без перезагрузки страницы
Возникла проблема, в результате косяка при разроботке бизнес-процесса в детали нагенерилось 26к записей, ни штатное средство удаления, ни бизнес процесс не могут обработать такое количество записей. Есть ли вариант как-то удалить по частям хотя бы, ибо прокликивать столько записей вручную долго и муторно?
Но я бы рекомендовал написать например свой сервис (службу OS) который будет обслуживать ваше оборудование и дергать bpm через вэб сервисы или любым другим способом.
Но я бы рекомендовал написать например свой сервис (службу OS) который будет обслуживать ваше оборудование и дергать bpm через вэб сервисы или любым другим способом.
Не уверен по архитектуре современныхпартнёрскихверсий bpm'online для лояльности, но во времена Loyalty 5.3 кассы подключались к своему ПО, например, «СуперМаг УКМ», которое уже по сети взаимодействовало со стандартными или доработанными веб-сервисами bpm'online.
Пробовал именно данный пример можно реализовать , а два условия уже нет или я неправильно мыслю ? Потому что мне не только кассиры в этом списке нужны но и администратор к примеру
А не напутали ли с условием? Точно ли поле FullJobTitle у Вас в таблице UsrRashodnik? Для сравнения, в справке по приведенной ссылке для поля Owner фильтруют справочник контактов, проверяют на истинность поле Active в связанном с контактом SysAdminUnit:
А немного поправив, это вы что примерно имеете ввиду
Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально
Думаю, что здесь вместо записи на диск можно с файлом проводить другие действия
Насколько я понимаю раздел Excel отчеты это не базовый функционал?
Посмотрите как в вашем разделе происходит запуск формирования отчета (возможные варианты запск вэб сервера, запуск БП) Вам нужно создать новый БП который будет запсукатся по таймеру формировать отчет и отправлять по почте .
Отправка файлов в БП на этом форуме обсуждалась не раз и особой сложности не представляет.
По формированию вашего отчета подсказать затрудняюсь тк это или ваш кастомный раздел или вы ставили какое то приложение с маркетплэйса (возможно вам ктото дорабатывал систему). Если ставили какое то расширение для работы с отчетами укажите какое и ссылку на него иначе смотрите как у вас происходит формирование отчета, скорее всего этот процесс можно автоматизировать!
Григорий, это приложение https://marketplace.terrasoft.ru/app/excel-reports-builder-bpmonline, выпущенное Terrasoft. При запуске созданного в разделе "Excel отчеты" отчета происходит скачивание файла Excel. У нас вопрос как через БП сгенерировать cамо вложение, а там дальше мы с ним уже разберемся). Спасибо!
И там отчеты, скорее всего сохраняются, так как, в результате генерируется ссылка в уведомлениях, и только оттуда их можно скачать.
Кроме того, в том же дополнении есть процесс запуска генерации отчета по расписанию ("Запуск формирования отчета по правилу"). Немного поправив его, можно файл не сохранять на диске сервера (как в оригинале), а прикреплять к письму, например
А немного поправив, это вы что примерно имеете ввиду
Пока не могу сказать точно. Эта задача у нас в проекте тоже стоит, но пока не запущена в анализ и разработку. Я просто описал направление решения. Возможно, в сентябре смогу рассказать детально
Думаю, что здесь вместо записи на диск можно с файлом проводить другие действия
Судя по принскрину приведенному Владимиру,вы можете например создать активность с типом исходящее письмо и отчет не записывать на диск а прикреплять к этой активности и отправлять ее (Как отправлять письмо с вложениями неоднократно в этом форуме обсуждалось)
Если нужен какой-то конкретный один или несколько сложных отчётов, можно делать всё на уровне базы: создать view со всеми вычислениями, возвращающий «плоскую» таблицу с фиксированным набором колонок, затем объект с такими же колонками и строить по нему штатными средствами.
Также, кроме упомянутого Алексеем, в маркете есть ещё несколько движков отчётов. Возможно, Вам подойдёт какой-то из них.
Еще актуально? В эксель отправляется готовый набор данных из bpmonline, решить Вашу задачу, можно если предварительно подготовить данные, уже рассчитанные. Эксель позволит увидеть сводную информацию по этим расчетным полям.
Выборка идёт из объекта «E-mail адреса» (VwRecepientEmail). Он — представление в базе. То есть, чтобы исправить условие выборки, нужно зайти в базу и исправить код этой view. Главное, не менять набор выдаваемых колонок, они должны совпадать с колонками объекта.
Стандартно код такой:
CREATE VIEW [dbo].[VwRecepientEmail]
AS
SELECT [Id], [Name] + ' <' + [Number] + '>' AS [Email], [d].[UseEmail], [d].[ContactId], [Number]
FROM (SELECT [AccountCommunication].[Id], [Account].[Name], [AccountCommunication].[Number], 0 AS [UseEmail], [Account].[PrimaryContactId] AS [ContactId]
FROM [AccountCommunication]
INNER JOIN [Account] ON [Account].[Id] = [AccountCommunication].[AccountId]
WHERE ([AccountCommunication].[CommunicationTypeId] = 'EE1C85C3-CFCB-DF11-9B2A-001D60E938C6')
UNION ALL
SELECT [ContactCommunication].[Id], [Contact].[Name], [ContactCommunication].[Number], [Contact].[DoNotUseEmail], [Contact].[Id] AS [ContactId]
FROM [ContactCommunication]
INNER JOIN [Contact] ON [Contact].[Id] = [ContactCommunication].[ContactId]
WHERE ([ContactCommunication].[CommunicationTypeId] = 'EE1C85C3-CFCB-DF11-9B2A-001D60E938C6')
UNION ALL
SELECT NEWID(), [Lead].[LeadName], [Lead].[Email], [Lead].[DoNotUseEmail], [Lead].[Id] AS [ContactId]
FROM [Lead]) AS [d]
GO
В Вашем случае нужно избавиться от третьего SELECT, который выбирает из лидов, и убрать UNION ALL перед ним. А если не нужны контрагенты, то и от первого, оставив только выборку из контактов.
Добрый день! Возникла такая проблема, запросили тестовую версию развернуть на сервере, согласно инструкциям развернули всё работало и т. д. но что бы протестировать систему необходимы были справочники, и другая инфа, которая уже была подгружена. Запросили backup с облака, согласно инструкции развернули и теперь после введения учётных данных вот такая ошибка.
Если Вы переразвернули только базу данных для уже настроенного и работающего приложения, то попробуйте в окне браузера после авторизации в адресной строке указать localhost/0/dev.
У Вас должно появиться окно конфигурации bpm'online, в этом окне найдите пункт меню 'Скомпилировать все'.
Если Вы переразвернули только базу данных для уже настроенного и работающего приложения, то попробуйте в окне браузера после авторизации в адресной строке указать localhost/0/dev.
У Вас должно появиться окно конфигурации bpm'online, в этом окне найдите пункт меню 'Скомпилировать все'.
Пытаюсь разобраться как работает поле "Сумма по продуктам" в разделе "Продажы". При добавлении, изменении и удалении записи сумма в поле перерасчитывается. Пытаюсь разобраться как это работает, понимаю что через сообщения, но не могу понять как. Может кто помочь с этой ситуацией, нужно сделать такую логику для кастомной детали со страницей редактирования и полем в компании.
Эта логика реализована во встроенном БП объекта «Продукт в продаже» (OpportunityProductInterest). Там в обработчике событий сохранения и удаления записей в объекте детали запускается функция CalckOpportunityAmount с кодом:
var oppotrunityAmountSelect = new Select(UserConnection)
.Column("Amount")
.From("OpportunityProductInterest")
.Where("OpportunityId").IsEqual(Column.Parameter(opportunityId)) as Select;
double opportunityAmount = 0.0;
using (var dbExecutor = UserConnection.EnsureDBConnection()) {
using (IDataReader dr = oppotrunityAmountSelect.ExecuteReader(dbExecutor)) {
while (dr.Read()) {
if(!dr.IsDBNull(0)){
opportunityAmount += (double)UserConnection.DBTypeConverter.DBValueToDecimal(dr[0]);
}
}
}
}
var update = new Update(UserConnection, "Opportunity")
.Set("Amount", Column.Parameter(opportunityAmount))
.Where("Id").IsEqual(Column.Parameter(opportunityId));
update.Execute();
Спасибо. Нашел - получилось что бы в поле записывалась сумма, но я так понимаю должно быть еще сообщение которое заставляет страницу обновляться (или точнее поле на фронте). Не нахожу таких сообщений в OpportunityPageV2 и наверно с БП объекта тот что отправляет
Можно ли как-то переименовать название объекта таблицы (точнее заголовок). При изменении в объекте сама ORM не переименовывает таблицу в базе данных, а если руками переименовать таблицу а потом объект - тогда выдает ошибку "Ошибка сохранения: ORA-00942: table or view does not exist".
Заголовок менять можно, название лучше не менять, поскольку оно прописано и в метаданных, и в полях таблиц, хранящих информацию о схемах, и в базе данных. Если всё же нужно, можно попробовать путём правки метаданных, аналогично клонированию объекта. Удалить старый объект, загрузить в систему исправленные метаданные и опубликовать. Но, скорее всего, не даст удалить при наличии ссылок на объект. Также нельзя переименовать схему, от которой наследуются другие схемы. Как обходной путь использовать ту же выгрузку метаданных в файл и его исправление для схемы и всех дочерних.
Именно заголовок сменился нормально, объект опубликовался:
я как раз ошибся, мне нужно "название" а не "заголовок" сменить. Но Ваше разьяснее как раз подошло, спасибо. Как вывод - лучше не лезть. А если лесть то по Вашему описанию.
Потом посмотрел ещё раз, для наследуемых объектов даже и заголовок нужно через метаданные. А для названия действительно без крайней нужды лучше не трогать, разве что только если объект Вами же сделан. А то вдруг переименуете стандартный и вдруг придёт на него обновление...