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

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


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

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


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

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