Каким образом можно быстро заполнить все детали выбранных записей одной и той же информацией?
В частности, добавить одну группу сервисных инженеров на детали определенного количества сервисов?
Спасибо.
Нравится
Добавьте автоматизированное действие, которое будет представлять собой БП с элементом "Добавление данных" ( или "Изменение данных", в зависимости от задачи). Выбранные записи реестра будут передаваться через параметр "Выбранная запись раздела".
insert into ServiceTeam(ProcessListeners, ContactId, SysAdminUnitId, ServiceId) select 0, null, s.Id, ss.Id from Contact c, SysAdminUnit s, [Service] ss where s.Name = 'Группа' and (ss.ServiceName = 'сервис1' or ss.ServiceName = 'сервис2' or ss.ServiceName = 'сервис3')
Вот только мне кажется что должно быть GroupId и Group вместо ContactId и Contact...
Попробуйте так:
declare @GroupName nvarchar(250) set @GroupName = '3-я линия поддержки' declare @AdminUnitID uniqueidentifier set @AdminUnitID = (select top 1 ID from SysAdminUnit where Name = @GroupName) INSERT INTO ServiceTeam(Id, SysAdminUnitId, DisplayValue, ServiceId) select newid(), @AdminUnitID, @GroupName, SS.Id from Service SS where (ss.ServiceName = 'сервис1' or ss.ServiceName = 'сервис2' or ss.ServiceName = 'сервис3')
Есть ли возможность оптимизировать скрипт?
INSERT INTO ServiceTeam(ProcessListeners, ContactId, SysAdminUnitId, ServiceId, DisplayValue) SELECT DISTINCT 0, null, s.Id, ss.Id, s.Name FROM SysAdminUnit s, [Service] ss WHERE ( s.Name = 'Команда абонентской службы и бухгалтерии' or s.Name = 'Команда поддержки биллинга') AND (ss.CategoryId in (select Id from CategoryOfService cs where cs.Name = 'Тех. поддержка абонентов')) AND (ss.ServiceParentId in (select Id from [Service] sss where ( sss.ServiceName = 'Тарификация' or sss.ServiceName = 'Платежи' or sss.ServiceName = 'Блокировка/Разблокировка'))) OR (( s.Name = 'Команда абонентской службы и бухгалтерии' or s.Name = 'Команда поддержки биллинга') AND ss.Id in (select Id from [Service] ssss where ( ssss.ServiceName = 'Тарификация' or ssss.ServiceName = 'Платежи' or ssss.ServiceName = 'Блокировка/Разблокировка')))
Скажите, Наталия, а какой способ предпочтительнее - предложенный Вами в первом посте или все-таки скрипт??
Разница заключается в том, что первый способ позволяет любому пользователю добавить данные из приложения BPMonline воспользовавшись действием.
Второй способ предполагает наличие доступа к СУБД, навыков работы с запросами (чем не обладают пользователи).
Какой из способов предпочтительнее зависит от того, следует добавить данные единоразово или регулярно. Если разово – лучше использовать скрипт.
Наталия, понятно.
Что касается скрипта, я все-таки переспрошу и детализирую вопрос
AND (ss.ServiceParentId IN (SELECT Id FROM [Service] sss WHERE ( sss.ServiceName = 'Тарификация' OR sss.ServiceName = 'Платежи' OR sss.ServiceName = 'Блокировка/Разблокировка')))
Можно ли обойтись без этого повторного запроса к Service?
Ещё один вопрос. Если я хочу при помощи скрипта добавить множество сервисов в какой-то пакет сервисов, какие таблицы и поля нужно заполнить в обязательном порядке?
Насколько я разобрался, это
Таблицы:
ServiceInServicePackage
Поля ServiceInServicePackage:
ServicePackageId
ServiceId
И правильно ли будет просто очистить таблицу ServiceInServicePackage, если я хочу, чтобы ни один сервис не состоял ни в одном пакете?
Спасибо!