Текущее время: Пт, мар 29 2024, 02:42

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Класс->признак->значение признака
СообщениеДобавлено: Чт, авг 22 2013, 10:49 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 29 2013, 11:53
Сообщения: 35
Всем доброго дня. Столкнулся с проблемой.
Необходимо составить отчет. В отчет попадают ЕО присвоенные определенным классам. Каждый класс имеет определенный набор признаков. И мне нужно вытянуть значение этих признаков. Значение признаков отображается в ЕО, закладка Характеристики, поле Классификация
Я делал так, зная класс, через таблицу KLAH я находил внутренний номер класса. По данному внутреннему номеру я находил внутренний признак в таблице KSML. Далее я перехожу в таблицу CABN... и тут мне говорят что такого признака не существует.....
Где я свернул не там и как мне найти значения своих признаков.
Признаки Z-вские...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Чт, авг 22 2013, 16:50 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 29 2013, 11:53
Сообщения: 35
АУ!!! есть кто нибудь живой)) можете что нибудь посоветовать??)))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Чт, авг 22 2013, 17:37 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 08 2013, 15:44
Сообщения: 41
Откуда: Беларусь
Пол: Мужской
Не очень понял что такое Z-товские признаки. Иными словами вы хотите получить значение признака и вставить в отчет в виде колонки? И с помощью какого инструмента делаете отчет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Чт, авг 22 2013, 17:38 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
В конце курса LO985 - Классификация есть описание связей таблиц


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Чт, авг 22 2013, 18:45 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 29 2013, 11:53
Сообщения: 35
Цитата:
И с помощью какого инструмента делаете отчет.

я пишу спеку для абапера, при помощи чего он ее будет делать меня мало волнует. Меня волует почему я в таблице где находятся значения признаков (CAWN) нет никакой информации по моим признакам.
Цитата:
В конце курса LO985 - Классификация есть описание связей таблиц

Данное описание у меня запущенно.
Через поле зная номер класса через поле KLAH я нахожу внутренний номер. Через внутренний номер в таблице KSML я нахожу номер признака. А когда я пытаюсь получить информацию по номеру признака из таблицы CAWNЮ то мне сообщают о том, что никакой информации нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Пт, авг 23 2013, 05:42 
Менеджер
Менеджер

Зарегистрирован:
Чт, окт 30 2008, 18:22
Сообщения: 532
Пол: Мужской
Через ST05 посмотрите SQL трассировку работы транзакций CL30N, CL31.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Пт, авг 23 2013, 08:54 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 24 2009, 15:58
Сообщения: 96
можно элеметарно фмником выводить обозначения значений признаков BAPI_OBJCL_GETCLASSES


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Пт, авг 23 2013, 08:56 
Ассистент
Ассистент

Зарегистрирован:
Ср, май 29 2013, 11:53
Сообщения: 35
Цитата:
можно элеметарно фмником выводить обозначения значений признаков BAPI_OBJCL_GETCLASSES

тоесть мне необходимо указать какой признак меня интересует, а дальше через фм будут подтягиваться значения?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Пт, авг 23 2013, 09:23 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 24 2009, 15:58
Сообщения: 96
можешь проверить в se37 - BAPI_OBJCL_GETCLASSES, жмешь F8(тестировать)
заполняешь
OBJECTKEY_IMP сюда код обьекта единицы оборудования
OBJECTTABLE_IMP таблицу попробуй эту EQUI
CLASSTYPE_IMP 002
READ_VALUATIONS X
KEYDATE 23.08.2013
LANGUAGE RU

примерно такое заполнение, сейчас ТОРО не настроено в системе, не могу проверить
жмешь выполнить и фмник ситывает класификацию


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Вт, авг 27 2013, 12:49 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 09 2013, 12:49
Сообщения: 95
Бедный абапер: связи таблиц в Системе классов... , почему не один из стандартных ФМ?

Что касается вопроса - путь (по таблицам) зависит от того, активирована ли Функция "Многократная классификация" для Вида класса.
В SPRO, настройка "Ведение типов объектов и видов классов", далее настройки Вида класса для Таблицы, соответствующий чекбокс.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Ср, сен 18 2013, 11:48 
Начинающий
Начинающий

Зарегистрирован:
Вт, окт 26 2010, 10:31
Сообщения: 18
Откуда: Мегион
Пол: Мужской
Таблица AUSP вней ЕО и присвоенные значени признаков


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Ср, сен 18 2013, 13:07 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Aleksandr_Tag написал(а):
ЕО присвоенные определенным классам. Каждый класс имеет определенный набор признаков ... как мне найти значения своих признаков

Как-то так:
Code:
REPORT  ztest .

PARAMETERS:
  p_equnr             TYPE equi-equnr .

TYPES:
  BEGIN OF ty_s_equi_class ,
    klasse(18)        TYPE c ,
    klasse_descr(40)  TYPE c ,
    charact(30)       TYPE c ,
    charact_descr(30) TYPE c ,
    value_ext(30)     TYPE c ,
    value_int(30)     TYPE c ,
    unit(3)           TYPE c ,
  END   OF ty_s_equi_class ,
  ty_t_equi_class     TYPE STANDARD TABLE OF ty_s_equi_class .

DATA t_equi_class     TYPE ty_t_equi_class.

*-----------------------------------------------
PERFORM get_equi_class
  USING p_equnr
  CHANGING t_equi_class  .


*&---------------------------------------------------------------------*
*&      Form  get_equi_class
*&---------------------------------------------------------------------*
*       Получение признаков
*----------------------------------------------------------------------*
FORM get_equi_class
    USING pv_equnr         TYPE equnr
    CHANGING ct_equi_class TYPE ty_t_equi_class .

  DATA:
    ls_inob             TYPE inob,
    ls_kssk             TYPE kssk,
    ls_klah             TYPE klah,
    l_quant             TYPE fc_quant,
    l_amount(16)        TYPE p DECIMALS 2,
    ls_equi_class       TYPE ty_s_equi_class .
  DATA:
    l_classnum          TYPE bapi1003_key-classnum,
    l_clobjectkey       TYPE bapi1003_key-object_guid,
    ls_classdescript    TYPE bapi1003_catch_r,
    lt_classdescript    TYPE STANDARD TABLE OF bapi1003_catch_r,
    ls_valuesnum        TYPE bapi1003_alloc_values_num,
    lt_valuesnum        TYPE STANDARD TABLE OF bapi1003_alloc_values_num,
    ls_valueschar       TYPE bapi1003_alloc_values_char,
    lt_valueschar       TYPE STANDARD TABLE OF bapi1003_alloc_values_char,
    ls_valuescurr       TYPE bapi1003_alloc_values_curr,
    lt_valuescurr       TYPE STANDARD TABLE OF bapi1003_alloc_values_curr,
    lt_return           TYPE STANDARD TABLE OF bapiret2.
  CONSTANTS:
    c_obtab_equi        TYPE inob-obtab VALUE 'EQUI'.

  SELECT SINGLE *
    INTO ls_inob
    FROM inob
   WHERE obtab EQ c_obtab_equi
     AND objek EQ pv_equnr .
  CHECK sy-subrc EQ 0.

  SELECT SINGLE *
    INTO ls_kssk
    FROM kssk
   WHERE objek = ls_inob-cuobj
     AND klart = ls_inob-klart.
  CHECK sy-subrc EQ 0.

  SELECT SINGLE *
    INTO ls_klah
    FROM klah
   WHERE clint = ls_kssk-clint.

  l_classnum = ls_klah-class.
  l_clobjectkey = ls_inob-cuobj.

  CALL FUNCTION 'BAPI_CLASS_GETDETAIL'
    EXPORTING
      classtype         = ls_klah-klart
      classnum          = l_classnum
    TABLES
      classdescriptions = lt_classdescript.

  CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
    EXPORTING
      clobjectkey     = l_clobjectkey
      classnum        = l_classnum
    TABLES
      allocvaluesnum  = lt_valuesnum
      allocvalueschar = lt_valueschar
      allocvaluescurr = lt_valuescurr
      return          = lt_return.

  READ TABLE lt_classdescript INTO ls_classdescript INDEX 1.

* количественные
  LOOP AT lt_valuesnum INTO ls_valuesnum.
    CLEAR ls_equi_class.
    ls_equi_class-klasse        = l_classnum.
    ls_equi_class-klasse_descr  = ls_classdescript-catchword.
    ls_equi_class-charact       = ls_valuesnum-charact.
    ls_equi_class-charact_descr = ls_valuesnum-charact_descr.
    ls_equi_class-unit          = ls_valuesnum-unit_from.

    CLEAR l_quant.
    CATCH SYSTEM-EXCEPTIONS OTHERS = 0.
      l_quant = ls_valuesnum-value_from.
      ls_equi_class-value_int   = l_quant.
      CONDENSE ls_equi_class-value_int NO-GAPS.
    ENDCATCH.
    WRITE l_quant TO ls_equi_class-value_ext DECIMALS 3 LEFT-JUSTIFIED.

    APPEND ls_equi_class TO ct_equi_class.
  ENDLOOP.

* символьные
  LOOP AT lt_valueschar INTO ls_valueschar.
    CLEAR ls_equi_class.
    ls_equi_class-klasse        = l_classnum.
    ls_equi_class-klasse_descr  = ls_classdescript-catchword.
    ls_equi_class-charact       = ls_valueschar-charact.
    ls_equi_class-charact_descr = ls_valueschar-charact_descr.
    ls_equi_class-value_int     = ls_valueschar-value_neutral.
    ls_equi_class-value_ext     = ls_valueschar-value_char.
    APPEND ls_equi_class TO ct_equi_class.
  ENDLOOP.

* суммовые
  LOOP AT lt_valuescurr INTO ls_valuescurr.
    CLEAR ls_equi_class.
    ls_equi_class-klasse        = l_classnum.
    ls_equi_class-klasse_descr  = ls_classdescript-catchword.
    ls_equi_class-charact       = ls_valuescurr-charact.
    ls_equi_class-charact_descr = ls_valuescurr-charact_descr.
    ls_equi_class-unit          = ls_valuescurr-currency_from.

    CLEAR l_amount.
    CATCH SYSTEM-EXCEPTIONS OTHERS = 0.
      l_amount = ls_valuescurr-value_from.
      ls_equi_class-value_int   = l_amount.
      CONDENSE ls_equi_class-value_int NO-GAPS.
    ENDCATCH.
    WRITE l_amount TO ls_equi_class-value_ext DECIMALS 2 LEFT-JUSTIFIED.

    APPEND ls_equi_class TO ct_equi_class.
  ENDLOOP.

ENDFORM.                    "get_equi_class


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Класс->признак->значение признака
СообщениеДобавлено: Чт, сен 19 2013, 10:34 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
Бородин Игорь написал(а):
.

SELECT SINGLE *
INTO ls_inob
FROM inob
WHERE obtab EQ c_obtab_equi
AND objek EQ pv_equnr .
CHECK sy-subrc EQ 0.

SELECT SINGLE *
INTO ls_kssk
FROM kssk
WHERE objek = ls_inob-cuobj
AND klart = ls_inob-klart.
CHECK sy-subrc EQ 0.

SELECT SINGLE *
INTO ls_klah
FROM klah
WHERE clint = ls_kssk-clint.

l_classnum = ls_klah-class.
l_clobjectkey = ls_inob-cuobj.

CALL FUNCTION 'BAPI_CLASS_GETDETAIL'
EXPORTING
classtype = ls_klah-klart
classnum = l_classnum
TABLES
classdescriptions = lt_classdescript.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
EXPORTING
clobjectkey = l_clobjectkey
classnum = l_classnum
TABLES
allocvaluesnum = lt_valuesnum
allocvalueschar = lt_valueschar
allocvaluescurr = lt_valuescurr
return = lt_return.

[/code]


Таскать ключи классификации напрямую из таблицы через select не есть гуд. Гораздо лучше использовать ФМ CLCV_CONV_TO_INTERNAL_FORMAT. Он позволяет по обычным ключам объекта классификации получить ключ, которым можно воспользоваться в ФМ CLAF_CLASSIFICATION_OF_OBJECTS. А если очень хочется взять из AUSP, то через ФМ CUOB_GET_NUMBER получаем ключ для таблицы AUSP на основе ключа, полученного от ФМ CLCV_CONV_TO_INTERNAL_FORMAT. При таком подходе разработчик снимает с себя ответственность за правильность формирования ключа и перекладывает ее на систему. А если через select делать, то ответственность ложится на плечи разработчика.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


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

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


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

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


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

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