Текущее время: Пт, авг 15 2025, 07:24

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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