Текущее время: Ср, сен 10 2025, 09:29

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Изменение значений Признаков в BPS через функциональные модули
СообщениеДобавлено: Ср, ноя 01 2006, 07:04 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, авг 10 2006, 06:26
Сообщения: 75
Возникла необходимость изменять значения Признаков в формате планирования BPS, что стандартно не предусмотрено.
Для этого воспользовались функциональными модулями: API_SEMBPS_GETDATA, API_SEMBPS_SETDATA, API_SEMBPS_POST.
В результате чего, все данные вначале скопировались из транзакционного куба в таблицу для ввода данных, мы изменили некое значение Признака, затем данные передались в буфер и снова в транзакционный куб. Все хорошо, только единственное но. При изменении значения Признака, запись дублируется. Т.е., например, мы изменяли значение признака «Улица» с ул. Северная 45 на ул. Комсомольская 67, в результате в формате планирование вышло следующее:

Месяц поставки Улица ….

06 ул. Северная 45
06 ул. Комсомольская 67

Вопрос: Может, кто подскажет каким функциональным модулем еще можно воспользоваться, чтобы полностью удалить строку в формате планирования со старым значением измененного Признака?

Всем большое спасибо за ответы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение значений Признаков в BPS через функциональные модули
СообщениеДобавлено: Ср, ноя 01 2006, 08:53 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
А в кубе при этом надо оставить старые данные или нет? Если нет - может удалять их просто?

_________________
Пушномолочная свинья-несушка (тест)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 01 2006, 09:31 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, авг 10 2006, 06:26
Сообщения: 75
Да, в кубе старые данные не нужны.

Тогда параллельно вопрос, если в формате планирования целую строку со старыми значениями признака удалить автоматически не возможно, а в ручную отслеживать и удалять ненужные строки со старыми значениями признаков не подходит. Может можно все таки воспользоваться каким - то функциональным модулем для удаления данных.

Тогда им можно было бы воспользоваться на первоначальном уровне, когда мы вызываем функциональный модуль API_SEMBPS_GETDATA - танные попадают в таблицу для ввода. На этом уровне удалить, а потом только вызывать последние 2 модуля когда все сохраняется в куб.

Только не знаю название такого функционального модуля, который бы удалял целую строку со старыми значниями признака. Может кто подскажет?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 01 2006, 16:22 
Начинающий
Начинающий

Зарегистрирован:
Чт, авг 31 2006, 09:59
Сообщения: 8
Откуда: Ульяновск
Прелагаю на FOXe формулой просто обнулять.
Для этого надо написать формулу потом всё функции включить в глобальную последовательноссть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 02 2006, 06:48 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
Вряд ли хороший вариант - фокс не удаляет строки из кубика... Данные будут нарастать как снежный ком.

_________________
Пушномолочная свинья-несушка (тест)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 16:17 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 01 2005, 15:54
Сообщения: 95
Ещё можно с какой-нибудь периодичностью делать сжатие...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 16:33 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, сен 01 2005, 15:54
Сообщения: 95
А вообще, для таких целей, как ведение комментариев в форматах планирования, мне пришлось написать USER-EXIT, который записывал данные в признак с соединением. В общем, сложно нормально объяснить, так как способ очень извращенный... :oops: Если все ещё актуально, то попытаюсь расписать поподробнее. В общем, в конечном итоге и комментарии велись, и на признаке висели, и в отчетах видны были, и менять их можно было без проблемм без всяких там API_SEMBPS_GETDATA.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 07 2006, 18:08 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 18 2006, 15:27
Сообщения: 32
А может быть, имеет смысл восользоваться функцией UPC_CHA_VALUES_UPDATE (или что-то подобное) и ничего не удалять?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 09 2006, 09:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Тут нужно посмотреть что происходит в кубе, когда ты делаешь SETDATA:

Code:
Было:
№№ Месяц поставки Улица                Сумма
1. 06             ул. Северная 45      100
2. 06             Пьяный пр-т 21       120

Стало:
№№ Месяц поставки Улица                Сумма.
(сторнирование)
1. 06             ул. Северная 45      -100
2. 06             Пьяный пр-т 21       -120
(запись)
1. 06             ул. Комсомольская 67 100
2. 06             Пьяный пр-т 21       120


Единственное, что я не уверен в поведении записи 2, возможно BPS умеет обрабатывать такую ситуацию, но это не суть.

Исходя из вышеописанного остается три варианта:
1. Подавлять нули (или смириться с их присутствием).
2. Чистить куб (ФМ можно поискать по форумам) - считаю порочной практикой.
3. Обновлять тексты улиц (например клиент 001 был адрес ул. Северная 45 стал ул. Комсомольская 67).

Высказался :)

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 16 2007, 10:43 
Специалист
Специалист

Зарегистрирован:
Ср, авг 18 2004, 08:10
Сообщения: 238
----


Последний раз редактировалось Trezeguet Пн, ноя 19 2007, 13:53, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 16 2007, 11:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Во-первых для выборочного удаления существует транзакция delete_facts.

Функциональный модуль, который непосредственно осуществляет удаление: RSDRD_SEL_DELETION

Разобраться какие параметры надо использовать в данном ФМ вполне реально.

Во-вторых:
Насколько я понимаю транзакционный куб работает таким образом, что данные оттуда никогда не удаляются. Используйте сжатие, если данных становится слишком много.

Мы на проекте еще использовали следующий "трюк": делали полную копию куба, затем одним пакетом "перекачивали" данные в back-up куб, а затем назад. Количество записей существенно уменьшалось. (Только не спрашивайте зачем мы это делали... :lol: )

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB