Текущее время: Вт, ноя 04 2025, 12:58

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Правила обновления без обновления
СообщениеДобавлено: Вт, дек 23 2008, 18:07 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Всем привет!

Ситуация такая: в правилах переноса я заполняю признак в результирующем наборе, которого нет в исходном наборе (с помощью подпрограммы завершения). Как теперь "обойти" правила обновления ? Потому как если оставить "без обновления" - данные в заполненном поле исчезают.

Подпрограмму в правилах обновления пробовал писать, код был такой:
SELECT SINGLE MATERIAL
INTO RESULT
FROM /BI0/QEQUIPMENT
WHERE ASSET_MAIN = COMM_STRUCTURE-ASSET_MAIN.

Почему-то когда гружу данные через PSA, потом в инфо-объект - запрос стопорится на правилах обновления... Дебаг показал, что sy-subrc после запроса равен 4... Не пойму в чем проблема... :(


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

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Поясни подробнее в чем проблема с правилами обновления. Я так понял данные грузятся в признак гибко ( с использованием Инфо-источника)?

По поводу SELECT SINGLE. Ты считываешь данные из таблицы временно-зависимых атрибутов, так что не забывай указывать на какую дату считываешь. Плюс указывай что данные активные (OBJVERS = 'A"). А sy-subrc 4 означает что на момент загрузки в инфо-объекте 0EQUIPMENT нет значений признаков с атрибутом ASSET_MAIN = COMM_STRUCTURE-ASSET_MAIN ( я правлильно полнимаю что все происходит в правилах обновления после правил переноса?). Тобишь в правилах переноса у тебя поле ASSET_MAIN заполняется не так как надо, либо вообще не заполняется..

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правила обновления без обновления
СообщениеДобавлено: Ср, дек 24 2008, 09:44 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Да, данные грузятся через инфо-источник, сначала правила переноса, потом правила обновления.

По поводу обязательности указывания даты в запросе - без нее никак ? Или sy-subrc=4 именно из-за того, что нет четкой даты при извлечении из таблицы временно-зависимых атрибутов ? Я пробовал использовать другие таблицы, с другими префиксами - итог тот же...

А (OBJVERS = 'A") - тоже обязательно ? В правилах переноса поле ASSET_MAIN заполняется не у всех записей, для каких-то полей значение есть, для каких-то нет значений (особенность предметной области).

Вот тут вопрос: если в результате моего запроса (см первое сообщение) в правилах обновления данные не будут найдены (пустой результат) - не это ли причина ay-subrc = 4 ? Как в моем случае сказать, чтоб он не останавливался, и что ошибки нет ?


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

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Вообще SELECT какой-то сомнительный из-за своей неоднозначности.
Полю ASSET_MAIN в признаке 0EQUIPMENT может соответствовать несколько материалов, и SELECT SINGLE выберет первый попавшийся. Если гарантировано что там все одназначно (реглавментом ведения основных данных 0EQUIPMENT, но не системой), то в принципе все ок.

По поводу sy-subrc = 4. Это не ошибка, а код возврата. Ошибка будет, если присвоить 4 полю returncode.
В случае SELECT SINGLE при sy-subrc = 4 значение в поле RESULT не возвращается, остается пустым и обрабатывается как обычное пустое значение, перетирая атрибут в признаке.

А sy-subrc = 4 значит что записей с выбранными критериями нет и вызвано может быть, например, отсутствием в таблице записей с пустым ASSET_MAIN.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правила обновления без обновления
СообщениеДобавлено: Ср, дек 24 2008, 09:59 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Я проверял однозначность данных в таблице QEQUIPMENT, материалы и основные средства относятся как один ко многим, то есть одному основному средству соответствует только один номер материала. Поэтому в принципе можно забить на то, что запрос извлечет только первую строку, хотя их бесспорно извлекается больше.

Так вот вопрос собственно и заключается в том, чтобы система не останавливалась при коде возврата равном 4. Потому как судя по монитору, трансформация стопорится именно на правилах обновления...


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

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Правила обновления не стопорятся, если коды возврата
RETURNCODE
ABORT
остаются со значением 0. (ну разумеется если нет дампа и сообщений типа Error в самописной программке).

Изучай код программы на прдемет заполнения полей указанных выше.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правила обновления без обновления
СообщениеДобавлено: Ср, дек 24 2008, 10:19 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Через дебаг видно, что RETRNCODE и ABORT равны 0.
Тем не менее, поставив на загрузку данные из источника уходя вечером с работы, на следующий день статус этого процесса еще желтый. Через монитор видно, что правила переноса отработали, а на правилах обновления запись "Количество записей" -> 0 данных обновлено. Не может же он больше суток считать один простейший запрос ?


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

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Статус запроса желтый потому, что данных нет. ты можешь указать автоматическую установку на зеленый при 0 количестве записей в ведении инфо-пакета через меню планировщик (цвета для чего то там нулевых запросов).

Разбирайся почему количество записей нулевое.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правила обновления без обновления
СообщениеДобавлено: Ср, дек 24 2008, 13:20 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Давайте не будем больше говорить про правила обновления, так как я запустил процесс миграции и у меня нет возможности создавать отдельно правила переноса и правила обновления. Теперь я создаю трансформацию, в которой пытаюсь проделать все действия сразу.
В трансформации прописана подпрограмма завершения (End Routine), в которой я пытаюсь заполнить поле результирующих данных с помощью ABAP, выдирая нужные данные из вообще по сути левой таблицы. Но процесс переноса данных из PSA в инфо-объект как будто зависает на этой трансформации. Через дебаг этого DTP видно, что данные присутствуют (и поле заполняется корректно). Тогда почему статус желтый ?

Цитата:
Статус запроса желтый потому, что данных нет.

Имеются ввиду данные для инфо-пакета ? Если да, то сами эти данные есть...

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

можно поподробнее, пожалуйста, не совсем понял


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

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
По поводу желтого цвета.
В меню инфо-пакета выбирай Планировщик -> Цвета светофора в пустых запросах.

По поводу заполненности данными.
Проверяй заполненность RESULT_TABLE в ENDROUTINE.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Правила обновления без обновления
СообщениеДобавлено: Чт, янв 15 2009, 16:25 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 04 2008, 12:08
Сообщения: 31
Проблема "зависания" решена, теперь есть другая... Чтоб было понятно и чтобы не бегать по топику, начну с начала: имеется трансформация, в которой я заполняю некий признак через подпрограмму завершения. В этой подпрограмме делается запрос в нужную таблицу и результат запроса записывается в признак. Правила как такового для заполнения этого признака нет, в группе правила напротив этого признака стоит "без преобразования". То, что подпрограмма завершения отрабатывает, подтверждается следующим фактом: в подпрограмме я добавляю несколько новых записей в цель трансформации, после трансформации они добавляются. Сама подпрограмма завершения отрабатывает, данные приходят корректные, через дебаг видно. Однако, в цели трансформации - инфо-объекте, нужный атрибут остается не заполненным :(

Кто может подсказать, как и почему это случается ?
Может стоит попробовать подпрограмму в правиле обновления для этого признака ? (выделить правило, выбрать подробности, выбрать "подпрограмма" в выпадающем списке). Тогда какой код туда нужно записать, чтоб в признак записывались данные ? RESULT = ...


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

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


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

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


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

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