- Sap создание признака классификации
- Назначение
- Предпосылки
- Выполнение
- Результаты
- Иван Болховитинов
- Ключи объектов
- Вид классов
- Признаки
- Присвоение признаков классам
- Классификация
- Хранение
- Двигаемся дальше
- 6 комментариев
- Sap создание признака классификации
- Правила форума
- Документы изменений для значений признаков классификации
- Кто сейчас на конференции
- SAP ABAP — Классы
- Определение и реализация класса
- Атрибуты
- методы
- Доступ к атрибутам и методам
- пример
- Статические Атрибуты
- пример
- Конструкторы
- пример
- Оператор ME в методах
- пример
Sap создание признака классификации
Назначение
Процесс использования признаков для описания различных версий одного материала называется в системе ERP конфигурацией вариантов. Признаки присваиваются конфигурируемым материалам посредством классов.
Предпосылки
Если пользователь не знаком с концепциями, применяемыми в конфигурации вариантов, сначала необходимо изучить следующие темы:
Выполнение
1. В системе создаются необходимые признаки. Для получения информации об этой процедуре см. Общие для всех приложений компоненты ® Классификация ( CA-CL) ® Признаки ( CA-CLCHR) ® Создание, изменение и просмотр признаков.
· На закладке Основные данные введите описание признака, тип данных (символьный, числовой, дата и т. д.) и длину значения в поле, а также дополнительные подробные данные форматирования при необходимости.
· На закладке Описания можно ввести описания признака на двух языках.
На закладке Значения вводятся возможные значения признака.
Для ограничения возможных вариантов выбора можно использовать описание отношений. Можно укажите, что признак должен использоваться при наличии у другого признака определенного значения. Например, для велосипеда можно выбрать только 21 скорость, если для признака MODEL определено значение «гоночный». Для получения дополнительной информации см. Общие для всех приложений компоненты ® Классификация ( CA-CL) ® Классификация ( CA-CL) ® Описание отношений в классификации.
2. Далее создаются классы. В классах группируются признаки для дальнейшего их присвоения материалу. Для получения дополнительной информации см. Общие для всех приложений компоненты ® Классификация ( CA-CL) ® Классификация ( CA-CL) ® Создание, изменение и просмотр классов.
3. Теперь можно создать конфигурируемый материал и присвоить ему класс (ы), созданный в предыдущем шаге. Для получения дополнительной информации о создании основных записей материала см. Логистика ® Общая логистика ® Основные данные логистики (LO-MD) ® Основная запись материала ( LO-MD-MM).
Пример данных, необходимых для конфигурируемого материала, приводится по пути Логистика ® Общая логистика ® Конфигурация вариантов (LO-VC) ® Определение материал как конфигурируемого ® Основные данные материала для конфигурируемых материалов.
Результаты
Теперь можно выполнять переносы в систему SAP SCM с помощью APO Core Interface (APO Core Interface).
Источник
Иван Болховитинов
Система классов – общий для всего ERP механизм, расширяющий описательную часть любых объектов SAP. Одно из первых мест, где можно столкнуться с этим – это учёт в MM. В нём механизм классификации используется для классификации самих карточек материалов, так и для классификации партий, если включён учёт по партиям.
До сегодняшнего дня непосредственно с системой классов не сталкивался. И вот подвернулся повод разузнать это на деле методом проб и ошибок.
А теперь подробнее.
Для примера создадим классификацию для основных средств, ведь для них стандартной классификации не существует.
Ключи объектов
Сначала мы описываем ключи к нашему объекту. Ключ необходим внутри механизма для адресации объектов и хранения их в таблице, так как для каждого случая ключи могут быть разными, разного типа, состоять из нескольких полей и так далее.
Ведение таблицы SM30:V_CLO (этот пункт есть в SPRO в ветке: Компоненты, общие для всех приложений –> Система классов)
Занятно, что ключи объекта настроены к основным средствам, но вот системы классов нет. Как будто бы начали, но так и не закончили.
В дальнейшем мы будем видеть код нашего объекта в виде примерно такого объединённого ключа:
F00000232100000300000 = F000 (БЕ) + 2321000003 (Номер ОС) + 0000 (субномер) + 0
Нолик на конце – это уже что-то нужное для самой классификации, то ли статус, то ли номер версии. Но по-простому у нас всегда будет нолик на конце.
Вид классов
Теперь к таблице можно создать вид классов. Для этого там же в SPRO можно найти транзакцию O1CL.
К виду классов нужно ещё обязательно заполнить разделы “Статус класса” и “Статус классификации”. Если там совсем ничего не заполнить, то при сохранении будет невнятная ошибка. Так что заполните попроще или скопируйте по образцу, всё равно управление статусами дёргать не будем. Однако имеем в виду – есть какие-то статусы самой классификации.
Если говорить о настройке, то это всё. Все остальные штуковины создаются без настроек непосредственно в каждом манданте.
Признаки
В транзакции CT04 создаём несколько признаков:
В первую очередь задаём наименование и типизацию. Здесь есть два варианта привязки справочника: через список значений и через проверочную таблицу.
Можно заполнить справочник вручную, при этом никаких Z-таблиц создавать не надо.
В этом случае вместо средства поиска будет выскакивать не очень обычное окошко с выбором из списка значений.
Вот так своеобразно, да….
Если настраивать признак через проверочную таблицу, то будет выскакивать стандартное простое средство поиска. Для указания проверочной таблицы надо нажать на кнопку “Другая проверка значений”:
Если на вкладке “Дополнительные данные” указать ссылочное поле, то это не влияет на средство поиска.
Выходит, что присвоить собственное средство поиска сходу нельзя, ну хоть можно присвоить какие-то функциональные модули в оговорённом интерфейсе.
Если в экране классификации ввести код, то вместо него подтягивается текстовое значение. Для измеряемых значений автоматически появляется единица измерения. Есть такие мелкие удобственности в этом очень ограниченном интерфейсе.
Присвоение признаков классам
В транзакции CL02 создаём несколько классов в нужном нам виде класса:
Остаётся только набить признаками наш класс. В каком порядке мы их укажем, в том порядке они и появятся на экране.
На этом с пользовательской настройкой можно закончить и перейти непосредственно к пользовательским операциям.
Классификация
В транзакции CL20N вводим код объекта и классифицируем. Ключ объекта придётся пока “сочинить” самостоятельно.
Штука хитрая: она расклеивает наш номер объекта в ключи для таблицы ANLA и проверяет наличие его в таблице, и если строки в таблице нет – то создать классификацию не удастся.
Если для одного объекта добавить несколько классов, то в нижней части экрана будут общим списком показаны атрибуты. При этом если в средней части в класс ткнуть, то его атрибуты прыгают в начало списка. Вот так просто безо всяких группировочных элементов интерфейса.
Предполагаю, что верхний экран можно настроить до человеческого состояния, так как в некоторых классах есть такая штука:
Хранение
Хранится это всё не очень удобно в специальных таблицах: AUSP, CAWN, CABN. Кроме этого есть функциональный модуль CLAF_CLASSIFICATION_OF_OBJECTS.
Двигаемся дальше
Если оглядеть существующие решения, то можно прийти к выводу, что если в программе SAPLCBCM (в группе функций CBCM) добавить экран (например: 9000) и описать этот экран в O1CL, то можно в транзакции CL20N видеть вместо дурацкого ключа нормальные поля.
В качестве примера можно посмотреть на экран 0108.
Сделал копию экрана и прикрутил в настройках. Результат в-целом удовлетворительный …
После этого остаётся сделать два шага:
PS. Там в заголовках можно увидеть непонятки в стиле “: Изменение признака”. Есть подозрение, что это огреха перевода – там перед знаком двоеточия должны быть какие-то буквы.
PPS. Поматросил и бросил. Для стандартной функциональности ещё применимо, но для своих разработок – сомнительно.
6 комментариев
Привет, Иван. Как всегда пишешь очень интересно и красиво. Но упускаешь детали- вроде для нубов, но разбираться нужно. Пиши как есть, лишнее не украдут. Привожу примеры из текста:
1. «Одно из первых мест, где можно столкнуться с этим – это учёт по партиям в MM.» — в примере ты указываешь данные для основных средств.
2. » В дальнейшем мы будем видеть код нашего объекта в виде примерно такого объединённого ключа:
F00000232100000300000 = F000 + 2321000003 + 0″ — ну укажи ты, что и к чему. Если «F000» — это класс ОС, «2321000003» — номер ОС, а «0» — субномер ОС — почему об этом не написать?
3. » Теперь к таблице можно создать вид классов.» — к таблице ANLA (таблица ОС) при рассматривании материалов? Какой вид классов и с какой целью? А, ну и «статус класса» и «Статус классификации» — это круто… к таблице ANLA (ОСы).
4. Чего-то прикручиваешь, накручиваешь, указываешь таблицы… Что куда прикрутил, какой результат?
Инфа полезная для напоминаний тем кто шарит. Кто не шарит — тупо не осилят и поймут, что ты очень крут.
Извини, если ты хотел всех запутать.. Если нет, возьми на вооружение, что так не пишут.
Цели статьи, кроме демонстрации транзакций — не понял, я понимаю, что не для дебилов, но все же.
1. В том-то и фикус, что в ММ — есть стандартная классификация, а в основных средствах — нет.
2-3-4. Да, сумбурно, согласен, надо переработать. Самая сумбурная заметка, вероятно.
Пишу-то для себя, в том числе и потому что обратной связи нет, а в том числе я часто и сам перечитываю, что записал давно.
А тут ещё и не понравилась мне классификация, разочаровала. Я в ММ с ней практически не работал. И время само-собой тратится, даже на скриншоты с подписями.
Вот читал недавно заметки человека, который написал книгу…. но об этом как-нибудь в другой раз.
Большое спасибо. Хорошо написано, особенно для нас, тех кто только начинает постигать SAP. При реализации у себя наткулся на то, что не дает выбрать в качестве проверочной таблицы таблицу с несколькими ключевыми полями. Подскажите, видимо это ограничение никак не обойти?
Глубоко не копал, но думается всё сделано просто: так как поле заполняется одно, то и ключ должен быть один.
И это поле должно быть уникальным. В противном случае может получиться как-то глупо.
Спасибо, нашел таблицу AUSP, перед этим не мог найти где же связь между значениями признака и классифицируемыми объектами.
Как правило, связь с самими объектами должна храниться в INOB.
В случае классификации партии номер объекта классификации хранится ещё и в MCH1-CUOBJ_BM.
Источник
Sap создание признака классификации
Часовой пояс: UTC + 3 часа
Правила форума
Документы изменений для значений признаков классификации
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
Кто-нибудь сталкивался с проблемой мониторинга изменений значений признаков материала в ракурсе классификации? Чтоб можно было проверить, кто, где и как нагадил в ОЗМ в этом разделе. И вообще, ведется ли регистрация изменений? Что-то сам найти не могу. _________________ |
Модератор |
Зарегистрирован:
Чт, окт 21 2004, 11:26
Сообщения: 216
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
_________________ |
Ассистент |
Зарегистрирован:
Чт, дек 14 2006, 08:21
Сообщения: 31
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
Но за ноту все равно спасибо, кое что интересное (для других целей, правда) для себя там почерпнул! _________________ |
Директор |
Зарегистрирован:
Чт, авг 18 2005, 17:00
Сообщения: 1174
Откуда: РФ
Изменения хранятся в таблице CDHDR. Поюзайте ФМ CHANGEDOCUMENT_READ_RANGES. |
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
Изменения хранятся в таблице CDHDR. Поюзайте ФМ CHANGEDOCUMENT_READ_RANGES. _________________ |
Директор |
Зарегистрирован:
Чт, авг 18 2005, 17:00
Сообщения: 1174
Откуда: РФ
Ну значит Сап не дописал хранение истории изменений значений признаков материала в ракурсе классификации. |
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
_________________ |
Ассистент |
Зарегистрирован:
Чт, дек 14 2006, 08:21
Сообщения: 31
да, это подход. В системе классификации есть нормальный badi интерфейс. Внедрение собственного контроля документов изменений (с отражением в CDHDR) прописано в help |
Директор |
Зарегистрирован:
Чт, авг 18 2005, 17:00
Сообщения: 1174
Откуда: РФ
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
_________________ |
Гуру-модератор |
Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
_________________ |
Младший специалист |
Зарегистрирован:
Пн, мар 13 2006, 15:26
Сообщения: 55
_________________ |
Старший специалист |
Зарегистрирован:
Сб, окт 16 2004, 11:27
Сообщения: 348
Откуда: Москау
Пол: Мужской
Все что касается классификации материалов (промышленность) с видом класса 001 вопросов не вызывает! Проблема с видом класса «026», который сам по себе для внутреннего использования Системы Управления Товарным Хозяйством. И врубить для него опцию «Документ изменений» просто так не сделаешь, т.к. у него прописано 2 объекта классификации. Ив транзакции ведения ОЗТ нет просмотра документов изменения значений признаков. _________________ Часовой пояс: UTC + 3 часа Кто сейчас на конференцииСейчас этот форум просматривают: нет зарегистрированных пользователей |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
Логотип © 2006 Андрей Горшков
Поддержка: Кирилл Андреев, 2011-…
Источник
SAP ABAP — Классы
Определение и реализация класса
Когда вы определяете класс, вы определяете план для типа данных. На самом деле это не определяет какие-либо данные, но определяет, что означает имя класса, из чего будет состоять объект класса и какие операции могут быть выполнены с таким объектом. То есть он определяет абстрактные характеристики объекта, такие как атрибуты, поля и свойства.
Следующий синтаксис показывает, как определить класс —
Определение класса начинается с ключевого слова CLASS, за которым следует имя класса, DEFINITION и тело класса. Определение класса может содержать различные компоненты класса, такие как атрибуты, методы и события. Когда мы объявляем метод в объявлении класса, реализация метода должна быть включена в реализацию класса. Следующий синтаксис показывает, как реализовать класс —
Примечание. Реализация класса содержит реализацию всех его методов. В объектах ABAP структура класса содержит такие компоненты, как атрибуты, методы, события, типы и константы.
Атрибуты
Атрибуты — это поля данных класса, которые могут иметь любой тип данных, например C, I, F и N. Они объявлены в объявлении класса. Эти атрибуты можно разделить на 2 категории: экземпляры и статические атрибуты. Атрибут экземпляра определяет специфическое для экземпляра состояние объекта. Состояния разные для разных объектов. Атрибут экземпляра объявляется с помощью оператора DATA.
Статические атрибуты определяют общее состояние класса, которое используется всеми экземплярами класса. То есть, если вы измените статический атрибут в одном объекте класса, это изменение будет видно и для всех других объектов класса. Статический атрибут объявляется с помощью инструкции CLASS-DATA.
методы
Метод — это функция или процедура, которая представляет поведение объекта в классе. Методы класса могут получить доступ к любому атрибуту класса. Определение метода может также содержать параметры, так что вы можете указывать значения этих параметров при вызове методов. Определение метода объявлено в объявлении класса и реализовано в части реализации класса. Операторы METHOD и ENDMETHOD используются для определения части реализации метода. Следующий синтаксис показывает, как реализовать метод —
В этом синтаксисе представляет имя метода. Примечание. Вы можете вызвать метод с помощью оператора CALL METHOD.
Доступ к атрибутам и методам
Компоненты класса могут быть определены в открытых, закрытых или защищенных разделах видимости, которые контролируют доступ к этим компонентам. Закрытая секция видимости используется для запрета доступа к компонентам извне класса. К таким компонентам можно получить доступ только из класса, такого как метод.
Компоненты, определенные в разделе публичной видимости, доступны из любого контекста. По умолчанию все члены класса будут частными. На практике мы определяем данные в приватном разделе и связанные методы в публичном разделе, чтобы их можно было вызывать извне класса, как показано в следующей программе.
Атрибуты и методы, объявленные в разделе Public в классе, могут быть доступны для этого класса и любого другого класса, подкласса программы.
Когда атрибуты и методы объявлены в защищенном разделе в классе, они могут быть доступны только для этого класса и подклассов (производных классов).
Когда атрибуты и методы объявлены в секции Private в классе, доступ к ним может получить только этот класс, а не любой другой класс.
Атрибуты и методы, объявленные в разделе Public в классе, могут быть доступны для этого класса и любого другого класса, подкласса программы.
Когда атрибуты и методы объявлены в защищенном разделе в классе, они могут быть доступны только для этого класса и подклассов (производных классов).
Когда атрибуты и методы объявлены в секции Private в классе, доступ к ним может получить только этот класс, а не любой другой класс.
пример
Приведенный выше код производит следующий вывод —
Статические Атрибуты
Статический атрибут объявляется с оператором CLASS-DATA. Все объекты или экземпляры могут использовать статический атрибут класса. Статические атрибуты доступны напрямую с помощью имени класса, например class_name⇒name_1 = ‘Some Text’.
пример
Ниже приводится программа, в которой мы хотим напечатать текст с номерами строк от 4 до 8 раз. Мы определяем класс class1 и в открытом разделе объявляем CLASS-DATA (статический атрибут) и метод. После реализации класса и метода мы напрямую обращаемся к статическому атрибуту в событии Start-Of-Selection. Затем мы просто создаем экземпляр класса и вызываем метод.
Приведенный выше код производит следующий вывод —
Конструкторы
Конструкторы — это специальные методы, которые вызываются автоматически при создании объекта или при доступе к компонентам класса. Конструктор запускается всякий раз, когда создается объект, но нам нужно вызвать метод, чтобы вызвать общий метод. В следующем примере мы объявили два открытых метода method1 и constructor. Оба эти метода имеют разные операции. При создании объекта класса метод конструктора запускает его работу.
пример
Приведенный выше код производит следующий вывод —
Оператор ME в методах
Когда вы объявляете переменную любого типа в публичной секции класса, вы можете использовать ее в любой другой реализации. Переменная может быть объявлена с начальным значением в публичном разделе. Мы можем объявить переменную снова внутри метода с другим значением. Когда мы пишем переменную внутри метода, система напечатает измененное значение. Чтобы отразить предыдущее значение переменной, мы должны использовать оператор «ME».
В этой программе мы объявили открытую переменную text1 и начали со значения. Мы снова объявили одну и ту же переменную, но создали ее с другим значением. Внутри метода мы записываем эту переменную с оператором ‘ME’, чтобы получить ранее инициированное значение. Мы получим измененное значение, объявив напрямую.
пример
Приведенный выше код производит следующий вывод —
Источник
Adblockdetector