Как сделать копию кампании вместе со сценарием диалога?

Как сделать копию кампании вместе со сценарием диалога?

Вопрос: Как сделать копию компании вместе со сценарием диалога? 
Ответ: На текущий момент Infinity X не позволяет делать копию диалоговых сценариев штатными средствами, но есть вариант решения: 

Пример, имеется кампания с названием "Кампания1", с таблицей контрагентов "таблица1" 
Необходимо создать точную копию, с таблицей - копией "таблица1" 

Новая кампания будет называться "Кампания2" "таблица2" 

1. Создаём новую таблицу - "таблица2", без дополнительных полей. 
2. запускаем PgAdmin Делаем SQL запрос в БД, базы Cx_Configuration и узнаём имена наших таблиц в БД, в базе Cx_Work: 

sel ect * fr om "D_Tables" 
where "Name" = 'таблица1' 
or "Name" = 'таблица2' 

Допустим мы получили такие данные: 

"таблица1" "Table_5000180026" 
"таблица2" "Table_5003993956" 

3.Идём в PgAdmin, браузер объектов, --> Cx_Work --> Схемы --> Public --> Таблицы --> находим наши "Table_5000180026" и "Table_5003993956" 
Копируем из панели SQL запрос в окно редактора запросов и если мы не создавали доп. полей, запрос будет таким: 

-- Table: "Table_5003993956" 

-- DR OP TABLE "Table_5003993956"; 

CRE ATE TABLE "Table_5003993956" 

"ID" bigint NOT NULL, 
"State" integer, 
CONSTRAINT "Table_5003993956_pkey" PRIMARY KEY ("ID" 

WITH ( 
OIDS=FALSE 
); 
ALT ER TABLE "Table_5003993956" 
OWNER TO cxdbuser; 

4. Вставляем между "State" integer, и CONSTRAINT "Table_5003993956_pkey" PRIMARY KEY ("ID" новые строки (копируем существующие поля из панели SQL таблицы "Table_5000180026" (которая соответствует нашей "таблица1". 
Удаляем знак комментария ('--') перед DR OP TABLE и в итоге запрос должен стать примерно таким: 

DR OP TABLE "Table_5003993956"; 
CRE ATE TABLE "Table_5003993956" 

"ID" bigint NOT NULL, 
"State" integer, 
anum text, 
date_call timestamp without time zone, 
agent_name text, 
"QQQ" text, 
link text, 
agent text, 
datetime_call timestamp without time zone, 
bnum text, 
contact_info text, 
contact_comment text, 
call_id text, 
datetime_answer timestamp without time zone, 
CONSTRAINT "Table_5003993956_pkey" PRIMARY KEY ("ID" 

WITH ( 
OIDS=FALSE 
); 
ALT ER TABLE "Table_5003993956" 
OWNER TO cxdbuser; 

Проверяем (внимательно смотрим что мы пересоздаём таблицу2 а не таблицу 1, иначе можем потерять все данные таблицы1) и выполняем запрос. 
Нажав кнопку "обновить" убеждаемся, что формат нашей "Table_5003993956" (таблица2) полностью соответствует формату "Table_5000180026" (таблица1) 

5. Далее, аналогично создаём копию кампании, для начала создадим новую компанию, с названием "Кампания2", без каких либо настроек. Возможно этот момент можно пропустить, а просто создать соответствующую строку в таблице "O_Campaigns", но т.к. на текущий момент я ещё недостаточно хорошо изучил систему и на случай возможного существования каких либо зависимостей, лучше предварительно создать "пустую" компанию - это недолго. 

6.И так, "пустая" компания с именем "Кампания2" и таблицей "таблица2" создана. 

Для копирования настроек из 'Кампания1' в'Кампания2' (в том числе копирования сценария диалога),выполним вот такой SQL update: 

upd ate "O_Campaigns" se t 
"FieldParams" = (sel ect "FieldParams" fr om "O_Campaigns" where "Name"= 'Кампания1'), 
"GridLayout" = (sel ect "GridLayout" fr om "O_Campaigns" where "Name"= 'Кампания1'), 
"ScenarioData" = (sel ect "ScenarioData" fr om "O_Campaigns" where "Name"= 'Кампания1'), 
"ScenarioSource" = (select "ScenarioSource" fr om "O_Campaigns" where "Name"= 'Кампания1'), 
"ScenarioBinary" = (select "ScenarioBinary" fr om "O_Campaigns" wh ere "Name"= 'Кампания1'), 
"LayoutData" = (select "LayoutData" fr om "O_Campaigns" wh ere "Name"= 'Кампания1') 
wh ere "Name"= 'Кампания2'

Полагаю, что для последнего апдейта лучше создать процедуру или какой-нибудь скрипт, но для одного раза пойдёт и так. 

Собственно всё! 
Теперь "Кампания2" у нас точная копия ранее существовавшей компании "Кампания1", со всеми настройками (кроме назначенных операторов) и диалоговым сценарием. 



Автор статьи: Владимир Дягтерёв, "Фэшн Контакт"
 
Нашли ошибку?
Выделите текст, нажмите Ctrl + Enter

Сообщение об ошибке

Адрес страницы *
Ошибочный текст *
Комментарий *
Защита от автоматического заполнения

Введите символы с картинки*

Дополнить статью

Адрес *
Ваше ФИО
Ваш Email
Текст дополнения *

Попробовать InfinitySmart бесплатно

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

Заказ презентации

После отправки запроса наш менеджер свяжется с вами для демонстрации системы, рассчитает ее стоимость, ответит на вопросы