autor написал(а):
Добрый день!
Для собственной разработки необходима статусная схема. Хочется использовать стандартным способом, наример как в заказах или сообщениях.
В BS02 создал схему.
Её как то нужно присвоить объекту.
Как создать объект своей программы, чтобы он был в списке допустимых объектов?
Типы в таблице TJ03...
У САПа к данному инструменту общий подход, используется в разных модулях, по-моему удобен в настройке и использовании. Я также сталкивался с подобным вопросом, что было бы не плохо прикручивать эту вещь в свои Z разработки.
Все это можно прикрутить к своей Z разработке, НО этот инструмент не рассчитан на использование и настройку под Z. BS12/22/32 везде пишется,
You are maintaining a table which is usually maintained by SAP only. Changes in this table may affect specific programs.
Please note that the content of this table will be overwritten when you install an upgrade.Делал все в тесте, ради интереса, все работает, в бою не пробовал, не было необходимости.
1.Создаёте статусную схему (BS02), в ней настраиваете Ваши статусы с их некоторыми опциями(какой из них будет по умолчанию, на какой позиции и т.д.)
2.Создаёте тип объекта (BS12 как уже упомянули). Это будет Ваш ключ в основных табличках статусов к объекту(jest jsto и т.д.)
3.Создаёте орг операцию (BS32). К ней будут цепляться Ваши пользовательские статусы, также можно прицепить системные статусы (BS22). При создании орг операции нужно выставить опции Индикатор 'Операция управления статусами (УС)' и Индикатор 'Операция может изменять пользовательский статус'.
4.Заходим в тип объектов (BS12) и присваиваем ему созданную орг операцию.
5.Заходим в статусную схему (BS02) и присваиваем ей созданный тип объекта. Тут же присваиваем каждому польз. статусу орг операцию.
По настройкам - все.
Дальше используем группу функций BSVA и прикручиваем всю логику по статусам к своей Z разработке. При создании Вашего объекта будете запускать STATUS_OBJECT_CREATE, у него там PERFORM с ON COMMIT, при общем коммите все ляжет по табличкам (jest jsto и т.д.) для Вашего объекта. Дальше, например, для диалога пользователя со статусами, используется STATUS_SET_USER_STATUS_DIALOG + STATUS_CHANGE*.