Проблему с ошибкой решил, подробности ниже, ошибку с тем, что признаки при ручном заведении не сохранялись тоже решил.
Итак, кратко (устал как собака, как никак старт) сначала про сохранение признаков.
Как я и думал, проблема была в том, что некоторые признаки (см. рис. 1-3) были созданы со ссылкой на поля в таблице MCHA. Отвязал - все заработало.
Тут один момент, просто так отвязать у Вас не получится, при попытке удалить данную ссылку, поучим сообщение что данный признак уже используется.
Делаем следующее:
- удаляем данный признак с класса (CL02)
- удаляем признак со стратегии поиска партии, если данный признак используется в стратегии поиска CU70 (последовательность сортировки)
- удаляем признак и создаем заново (естественно без ссылки на табличку)
Вообще такая настройка (признак созданный со ссылкой на табличку) используется в том случае если заполнение признаков (классификация) партии, выполняется ОД партии (т.е. не на закладке классификация, а основных данных в поля партии вводятся значения, которые благодаря ссылке автоматически копируются в признаки.
Второй вопрос, который возникает, это почему, в тестовой системе при аналогично созданных признаках, все работало.
Все просто, в тестовой системе уровень партии 1, а в продуктиве 0 (т.е. Завод)
и следуя из этого (см. You are not allowed to view links.
Register or
Login) для хранения данных используется табличка MCHA, в тестовой системе ссылка на табличку та же, но эта таблица реально задействована в системе (данные то хранятся в MCH1).
По поводу ошибки (которая возникала при классификации партий при использовании программы), разобрался, с помощью. как ни странно отладчика ;-).
После исправления признаков, ошибка была типа "CL117 - Вид класса 022, тип объекта MCHA, объект 000000000030200010013000000", ларчик просто открывался, внимательно посмотрим на код
l_classnum = 'BATCH_CLASS'.
* Сформировать ключ объекта партии
ext_to_int: p_matnr l_objectkey(18),
p_werks l_objectkey+18(4),
p_charg l_objectkey+22(10).
это правильно
l_classnum = 'BATCH_CLASS'.
* Сформировать ключ объекта партии
ext_to_int: p_matnr l_objectkey(18),
p_werks l_objectkey+18(4),
p_charg l_objectkey+18(10).
Думаю всем понятно ;-)
PЫ: Uukrul (Подравил код по просьбе Паганеля)