Текущее время: Пн, авг 18 2025, 19:18

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


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

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


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

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