Хранилища данных,
OLAP, CRM: информация
 
 Книги | Ссылки | Рассылка | Письмо автору | RSS

Write Back

Автор: Егор Демьянов (все статьи)

Знойным майским днем (пока не очень привычное словосочетание для Москвы) сидя на прохладной веранде дачи, я решил посмотреть функцию OBI EE под названием Write Back. Функция Write Back позволяет вводить значения прямо в ячейки отчета, при этом в зависимости от введенного значения автоматически обновлять отчеты.

В качестве основы для примера я использовал пару таблиц, моделирующих расчет точки безубыточности при производстве. Первая из таблиц - справочник товаров DM_PRODUCT. Вторая таблица FC_SALES_PLAN для каждого товара содержит следующие показатели: фиксированные затраты на производство товара (FIXED_COST), удельные переменные затраты (VAR_COST), цену (PRICE), планируемый объем продаж (QUANTITY). Так же при запросе на физическом уровне метаслоя рассчитываются суммарные переменные затраты TOT_VAR_COST = VAR_COST * QUANTITY, и выручка от реализации PROCEEDS = PRICE * QUANTITY. Таблицы можно создать при помощи следующего скрипта:

create table dm_product (
id_product integer,
product varchar2(4000)
);
alter table dm_product
add constraint pk_product primary key(id_product);
insert into dm_product values(1,’Колбаса’);
insert into dm_product values(2,’Сосиски’);
insert into dm_product values(3,’Шпик’);
create table fc_sales_plan (
id_product integer references dm_product(id_product),
fixed_cost number,
var_cost number,
price number,
quantity number
);
insert into FC_SALES_PLAN values (1, 358, 60, 100, 15);
insert into FC_SALES_PLAN values (2, 273, 28, 50, 11);
insert into FC_SALES_PLAN values (3, 143, 76, 120, 5);
commit;

Далее я приступил к созданию отчета. Из таблицы DM_PRODUCT были использованы поля ID_PRODUCT (для которого установлена опция Hide) и PRODUCT. Из таблицы FC_SALES_PLAN были использованы все поля, кроме ID_PRODUCT, а также созданы вычисляемое поле BEP (Break-Even Point) по формуле FIXED_COST / (PRICE - VAR_COST), и Отклонение = QUANTITY – BEP. Каждая колонка отчета имеет псевдоним (c0, c1, c2 и т.д.), псевдонимы можно поменять вручную на вкладке Advanced, изменив Request XML и нажав кнопку Set XML.

Теперь, имея отчет и зная псевдонимы полей, нужно написать шаблон (Write Back Template). В этом шаблоне указываются sql-запросы, которые должны быть выполнены при вставке/изменении значения ячейки отчета. Я хочу позволить пользователю менять из отчета затраты, цену и количество. В моем случае шаблон выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<WebMessageTables xmlns:sawm=”com.siebel.analytics.web/message/v1?>
<WebMessageTable lang=”en-us” system=”WriteBack” table=”Messages”>
<WebMessage name=”sales_plan”>
<XML>
<writeBack connectionPool=”CP”>
<insert> </insert>
<update>UPDATE fc_sales_plan SET price=@{p},quantity=@{q}, fixed_cost=@{fc},var_cost=@{vc} WHERE id_product=@{c0}</update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>


Файл с шаблоном я сохранил в папку %BI_HOME%\web\msgdb\customMessages. Прежде, чем приступить к дальнейшим шагам, нужно в администрировании Presentation Services выдать привилегии для Write Back. Вернувшись к отчету, я переключился в табличное представление. В окне Write Back Properties поставил галочку Enable Write Back и указал имя шаблона sales_plan (значение атрибута name тэга WebMessage из ранее приведенного xml). Затем в свойствах полей FIXED_COST, VAR_COST, PRICE и QUANTITY в качестве значения свойства Value Interaction я выбрал Write Back.

Собственно, это все из содержательных шагов. В результате я получил симпатичную табличку с полями для ввода. При изменении значения в ячейке, шрифт в ней становится жирным. Затем при нажатии кнопки Write Back выполняется sql-запрос, который был указан в шаблоне, обновляются данные в таблицах базы данных, и обновляются все отчеты на дэшбороде.

 

 

По этой теме также можно почитать:

 

Для удобства отслеживания новых публикаций на сайте рекомендую подписаться на рассылку или подписаться на канал RSS.

 

Если вы нашли в сети интересные ссылки на ресурсы по технологиям хранилищ данных, OLAP, CRM или data mining, и хотите поделиться ими с другими, присылайте их. Я с удовольствием размещу их на этом сайте.

 

Популярные страницы:

Советы разработчику хранилищ данных

OLAP

Моделирование

Книги

Книги на русском языке

Бесплатные книги

Производители OLAP

CRM

Производители CRM

Управление метаданными

Коллекция ссылок


[AD]

Найти: на

[ На главную | Книги | Ссылки | Рассылка | Письмо автору | Реклама на сайте ]

© Константин Лисянский, 2001-2008.

[AD] [AD] [AD]

Используются технологии uCoz