Автор Тема: Обязательное поле для заполнения основной записи ЕО  (Прочитано 12138 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Всем добрый день! Возник такой вопрос. Появилась необходимость сделать поле Серийный номер изготовителя обязательным для заполнения, но только в основной записи ЕО. Для Тех.мест это поле не заполняется. Пытался сделать с помощью настроек Определить выбор полей для технических мест транзакция OIAF, но она меняет необходимость ввода поля также и основной записи Тех.места. Есть ли такая настройка вообще или это нужно делать через расширение? Может кто делал? Буду весьма признателен за подсказку.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Есть ли такая настройка вообще или это нужно делать через расширение? Может кто делал? Буду весьма признателен за подсказку.
Ну попробуй написать проверку в кастомер-экзите IEQM0007 там вроде как можно вернуть ошибку.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Вот если честно я такого ни разу не делал. Можно по подробней? Создал проект CMOD, присвоил ему расширение которое вы написали. Там появился ФМ, в нём include. Мне что то надо непосредственно с этим ФМ делать или создать этот include и в нём уже писать проверку? Нет у Вас случайно какого нибудь примера на изменение проверки какого нибудь поля основной записи ЕО?

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
В общем я пишу такие строчки кода
Код: You are not allowed to view links. Register or Login
tables: itob.
if OBJECT_TYPE = '2' and ACTIVITY_TYPE = '1' and itob-serge eq ''.
  MESSAGE E055(00).
ENDIF.

Пытаюсь создать ЕО, но проверка не срабатывает. Видимо не правильный код пишу что ли?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
В общем я пишу такие строчки кода
Код: You are not allowed to view links. Register or Login
tables: itob.
if OBJECT_TYPE = '2' and ACTIVITY_TYPE = '1' and itob-serge eq ''.
  MESSAGE E055(00).
ENDIF.

Пытаюсь создать ЕО, но проверка не срабатывает. Видимо не правильный код пишу что ли?
Для начала надо поставить току основа и посмотреть оно вообще в этот код заходит? Может вы проект не активировали? Короче, читать про CMOD можно тут: You are not allowed to view links. Register or Login

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Спасибо за ссылку. Про проекты я всё прочёл. Сделал всё как там и написано и активировал. В общем ставлю я точку остановки и при создании ЕО при заполнении поля серийный номер оное попадает в абап отладчик в место точки остановки, но поле как было не обязательным для заполнения так и сейчас таковым является. Наверное не так что то с кодом.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
в абап отладчик в место точки остановки, но поле как было не обязательным для заполнения так и сейчас таковым является. Наверное не так что то с кодом.
Ну наверное, но вам именно надо чтобы поле подсвечилось как обязательное для ввода или достаточно выдать ошибку что поле не заполнено и попросить пользователя внести данные в этом поле.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Ну наверное, но вам именно надо чтобы поле подсвечилось как обязательное для ввода или достаточно выдать ошибку что поле не заполнено и попросить пользователя внести данные в этом поле.

Знать бы ещё как это сделать. В общем то когда делаешь стандартными настройками поле обязательным, то оно подсвечивается и выдаёт ошибку что нужно заполнить все обязательные поля, в идеале конечно нужно так, чтобы юзер понимал почему ошибка возникает, т.е. подсвечивать поле или же создать свой класс сообщений и пояснить в сообщении об ошибке  что именно это поле не заполнено. Тогда подсвечивать поле думаю не обязательно. И опять же пока бьюсь вопросом как это сделать.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Знать бы ещё как это сделать. В общем то когда делаешь стандартными настройками поле обязательным, то оно подсвечивается и выдаёт ошибку что нужно заполнить все обязательные поля, в идеале конечно нужно так, чтобы юзер понимал почему ошибка возникает, т.е. подсвечивать поле или же создать свой класс сообщений и пояснить в сообщении об ошибке  что именно это поле не заполнено. Тогда подсвечивать поле думаю не обязательно. И опять же пока бьюсь вопросом как это сделать.
В данном экзите так не получится, в нем вы можете просто выполнить проверку на не заполненность данного поля и выдать ошибку, с объяснением, что поле нужно заполнить. Статусы экрана в данном случае обработать не выйдет. Ваша ошибка что вы не правильно тип объекта проверяете OBJECT_TYPE. Это поле типа CHAR поэтому значение 02 не равно значению 2. В общем сейчас у тебя проверил, код работает. Сообщение выдается. Так что работает.
Код: You are not allowed to view links. Register or Login
CASE object_type.
  WHEN '02'.                       "Обработка ЕО
    IF activity_type = '1'.        "Операция создания
      IF data_equi-serge = space.
        MESSAGE e055(00).          "Тут можно добавить свой класс сообщения и текст
      ENDIF.
    ENDIF.
ENDCASE.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 346
  • Репутация: +5/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Спасибо Uukrul, теперь вроде срабатывает и что характерно мне удалось найти также и стандартную настройку этой вещи. если вдруг кому нибудь пригодится вот путь настройки в транзакции OIAF выбираем Field Selection for Equipment (Common Fields for Equipment/Funct. Location), ставите ManufSerialNumber как обязательное и используя функцию Influences ставим ограничитель на Equipment Category или на Ваше усмотрение.

Sapforum.Biz