Текущее время: Вт, июл 22 2025, 18:53

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Удаление данных в ОДС перед загрузкой
СообщениеДобавлено: Ср, окт 08 2008, 15:13 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вс, апр 22 2007, 22:25
Сообщения: 80
Ситуация следущая в ОДС есть ключевое поле Индекс листа TNC_LIST
Перед загрузкой данных в ОДС необходимо удалить все данные со значениями TNC_LIST содержащимся в запросе с дельтой

Ну т.е. например если в дельте пришли данные по TNC_LIST 100 и 200
то нужно из ОДС предваритеольно все почистить по этим значениям


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 08 2008, 15:47 
Специалист
Специалист

Зарегистрирован:
Пн, июл 18 2005, 12:10
Сообщения: 169
Пол: Мужской
замкните загрузку в ОДС сам на себя и в подпрограмме запуска замените recordmode на reverse image. таким образом вы сторнируете записи по критерию в инфо-пакете, то есть не поломаете дельту.


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

Зарегистрирован:
Вс, апр 22 2007, 22:25
Сообщения: 80
mas написал:
замкните загрузку в ОДС сам на себя и в подпрограмме запуска замените recordmode на reverse image. таким образом вы сторнируете записи по критерию в инфо-пакете, то есть не поломаете дельту.

А зачем замыкать ОДС саму на себя, разве нельзя прописать то же самое в существующей трансформации ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 08 2008, 17:19 
Специалист
Специалист

Зарегистрирован:
Пн, июл 18 2005, 12:10
Сообщения: 169
Пол: Мужской
можно много :) но я не знаю структуру фашего DSO и его ключевых полей, а также особенностей загрузки и выделил фразу
Цитата:
то нужно из ОДС предваритеольно все почистить по этим значениям


просто в текущем запросе может приехать уже меньше записей (например некоторая комбинация ключей уже удалена) и тогда вы не все почистите, да и цифры могли измениться


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

Зарегистрирован:
Вс, апр 22 2007, 22:25
Сообщения: 80
mas написал:
можно много :) но я не знаю структуру фашего DSO и его ключевых полей, а также особенностей загрузки и выделил фразу
Цитата:
то нужно из ОДС предваритеольно все почистить по этим значениям


просто в текущем запросе может приехать уже меньше записей (например некоторая комбинация ключей уже удалена) и тогда вы не все почистите, да и цифры могли измениться

А пример кода для подпрограмы запуска можно запостить ?
Что-то я не пойму как у записей рекорд мод поменять :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: .
СообщениеДобавлено: Пн, окт 13 2008, 14:34 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
вопрос наводящий, а это ключевое поле присутствует в критериях выбора данных в инфо-пакете?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: .
СообщениеДобавлено: Чт, окт 23 2008, 19:50 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вс, апр 22 2007, 22:25
Сообщения: 80
bwbams написал:
вопрос наводящий, а это ключевое поле присутствует в критериях выбора данных в инфо-пакете?

Если кому интересно, то проблема решилась добавлением в трансформацию подпрограммы завершения :

* Локальные данные
data:
o_s_result type _ty_s_TG_1
, n_s_result type _ty_s_TG_1
, o_t_result type _ty_t_TG_1
, s_t_result type _ty_t_TG_1
, o_idx like sy-tabix
.

* Берем значения для выборки
move RESULT_PACKAGE[] to s_t_result[].
SORT s_t_result by COMP_CODE CALQUARTER /BIC/TNC_FORM /BIC/TNC_LIST.
delete ADJACENT DUPLICATES FROM s_t_result
COMPARING COMP_CODE CALQUARTER /BIC/TNC_FORM /BIC/TNC_LIST.

* Считаем показатели которые есть
select * from /BIC/AZ_TN_DSO00
into CORRESPONDING FIELDS OF TABLE o_t_result
FOR ALL ENTRIES IN s_t_result
where
COMP_CODE = s_t_result-COMP_CODE
AND CALQUARTER = s_t_result-CALQUARTER
AND /BIC/TNC_FORM = s_t_result-/BIC/TNC_FORM
AND /BIC/TNC_LIST = s_t_result-/BIC/TNC_LIST
.
* Обнулим их значения
loop at o_t_result into o_s_result.
clear o_s_result-/BIC/TNC_KSTR.
clear o_s_result-/BIC/TNC_KF.
modify o_t_result from o_s_result.
ENDLOOP.
* Заполним/добавим новые значения
LOOP AT RESULT_PACKAGE into n_s_result.
READ TABLE o_t_result into o_s_result
with key
COMP_CODE = n_s_result-COMP_CODE
CALQUARTER = n_s_result-CALQUARTER
/BIC/TNC_RTYP = n_s_result-/BIC/TNC_RTYP
/BIC/TNC_FORM = n_s_result-/BIC/TNC_FORM
/BIC/TNC_LIST = n_s_result-/BIC/TNC_LIST
/BIC/TNC_ROW = n_s_result-/BIC/TNC_ROW
/BIC/TNC_COL = n_s_result-/BIC/TNC_COL
CUSTOMER = n_s_result-CUSTOMER
.
IF sy-subrc = 0.
o_idx = sy-tabix.
o_s_result-RECORDMODE = n_s_result-RECORDMODE.
o_s_result-/BIC/TNC_KTYP = n_s_result-/BIC/TNC_KTYP.
o_s_result-/BIC/TNC_KSTR = n_s_result-/BIC/TNC_KSTR.
o_s_result-/BIC/TNC_KF = n_s_result-/BIC/TNC_KF.
MODIFY o_t_result from o_s_result INDEX o_idx.
ELSE.
append n_s_result to o_t_result.
ENDIF.
ENDLOOP.

* Вернем объедененную таблицу
refresh RESULT_PACKAGE[].
move o_t_result[] to RESULT_PACKAGE[].


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

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


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

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


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

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