Текущее время: Ср, апр 17 2024, 02:13

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Mail.RU Bot


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

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