Текущее время: Чт, июл 24 2025, 02:24

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Признак (классификация)
СообщениеДобавлено: Ср, фев 24 2010, 16:23 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 10 2007, 07:30
Сообщения: 22
Добрый день. Не могу подобрать ФМ или группу ФМ для проверки введеного значения признака, проверка как синтаксиса, по маске, так и проверка на соответствие допустимым значениям. Результаты есть, но не всё устраивает (например CTCV_PREPARE_SYNTAX_CHECK и CTCV_VALUE_SYNTAX_CHECK)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Ср, фев 24 2010, 16:35 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 10 2007, 07:30
Сообщения: 22
Отменяется, всё нашел....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Чт, фев 25 2010, 05:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Corleone написал(а):
Отменяется, всё нашел....

Так поделитесь пж-ста :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пт, окт 24 2014, 16:31 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
Подниму тему.

Кто чем проверяет соответствие введенного значения допустимым значениям признака?

Я использовал CLFC_IS_LEGAL_VALUE. Однако у него одна неприятная особенность: значение должно быть в текстовом формате на входе и при дальнейших манипуляциях в этом модуле в ряде случаев мы получаем некорректное преобразование. Например:

Проверяем значение 7.0000000000000007E-01. Допустимое значение в системе также 7.0000000000000007E-01
Внешнее представление этого значения на основе настроек признака: 0,700 %.

Подаем на вход этого модуля 0,700, получаем ошибку. Так как внутри, при использовании модуля CHAR_FLTP_CONVERSION при преобразовании 0,700 получаем 6.9999999999999996E-01. Что формально не равно допустимому 7.0000000000000007E-01.

Коллеги, есть идеи, как с этим жить? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пн, окт 27 2014, 05:13 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
Попробуйте такой ФМ (он используется в стандарте):
Code:
  CALL FUNCTION 'CTCV_SYNTAX_CHECK'
    EXPORTING
      attribut                        = ps_feature-atnam
*     BASEUNIT                        = ' '
      decimals                        = ps_feature-anzdz
*     DEC_PRESENTATION                = '.'
*     EXPONENT                        = ' '
*     EXPONENT_ART                    = '0'
      format                          = ps_feature-atfor
*     INTERVAL                        = ' '
*     LANGUAGE                        = SY-LANGU
      length                          = ps_feature-anzst
*     LOWERCASE                       = ' '
      mask                            = ps_feature-atsch
      mask_allowed                    = 'X'
*     NEGATIV                         = ' '
*     SCREEN_NAME                     = ' '
*     SINGLE_SELECTION                = ' '
      string                          = ps_feature-atwrt
*     VALUE_SEPERATOR                 = ';'
*     CLASSTYPE                       = ' '
*     T_SEPARATOR                     = ' '
*     ERR_NAME                        =
*   IMPORTING
*     STRING_IS_MASKED                =
    TABLES
      tstrg                           = lt_strg
    EXCEPTIONS
      currency_check                  = 1
      date_check                      = 2
      format_check                    = 3
      illegal_internal_baseunit       = 4
      interval_check                  = 5
      pattern_check                   = 6
      time_check                      = 7
      unit_check                      = 8
      no_valid_dimension              = 9
      interval_not_allowed            = 10
      presentation_not_possible       = 11
      OTHERS                          = 12.

Можно поставить точку останова при вводе признаков в стандарте и посмотреть какие параметры нужно передавать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Признак (классификация)
СообщениеДобавлено: Пн, окт 27 2014, 10:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
UKY написал(а):
Попробуйте такой ФМ (он используется в стандарте):
Code:
  CALL FUNCTION 'CTCV_SYNTAX_CHECK'

...


Спасибо!

Но проблема в том, что это только синтаксическая проверка. Он не проверяет относительно допустимых значений.

_________________
Труд сделал из обезьяны человека, из коня - транспорт... Тут как повезет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


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

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


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

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