Текущее время: Вс, июл 06 2025, 10:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Подскажите названия таблиц
СообщениеДобавлено: Пн, май 15 2006, 13:11 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Кто-нибудь подскажите, пожалуйста, в какой таблице хранятся:
1. текстовые названия классов;
2. Значение признаков для материалов, присвоенных к определенным классам;
3. Длинные названия материалов, классов, признаков.

Да, может у кого-нить есть модель БД с изображением таблиц, задействованных в ракурсе "Классификация" для ОЗМ.
Очень нужна.

Пытался сам разобраться: Есть таблица KLAH, в которой хранятся данные заголовка класса, она завязана с табл. KSSK, где хранятся связи объектов и классов. И не могу разобраться с типом связи между этими таблицами: n:n что ли?
Потом непонятно, как классы завязаны с признаками (Т.е. табл. KLAH с таблицей CABN).
Короче нужна схема этих таблиц БД!!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 15 2006, 13:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Лучше пользоваться BAPI, поищите в SE37 по маске BAPI*OBJCL*.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 15 2006, 15:43 
Гость
- CABN в том числе используется для получения номера признака по его имени и наоборот. Занимаются этим ФМ CONVERSION_EXIT_ATINN_INPUT и CONVERSION_EXIT_ATINN_OUTPUT. Недостаток в том, что всегда читают CABN, поэтому проще написать свое преобразование.
- значения признаков в таблице AUSP в полях atwrt (все значения), atflv (значения типа дата)
- если признак типа даты CABN-atfor = 'DATE', то значение проще преобразовать из ausp-atwrt в ausp-atwrt через 'CTCV_CONVERT_FLOAT_TO_DATE'
Code:
  data: begin of ausp_objek,
          documenttype    like _documenttype   ,
          documentnumber  like _documentnumber ,
          documentversion like _documentversion,
          documentpart    like _documentpart   ,
        end   of ausp_objek.

  clear: ausp_objek.
  ausp_objek-documenttype    = _documenttype.
  ausp_objek-documentnumber  = _documentnumber.
  ausp_objek-documentversion = _documentversion.
  ausp_objek-documentpart    = _documentpart.

  select single * into wa_klah
    from klah
    where klart = wa_class-classtype
      and class = wa_class-classname.

  check sy-subrc = 0.

  select single * into wa_kssk
    from kssk
    where objek = ausp_objek
      and mafid = 'O'          " mafid_object
      and klart = wa_klah-klart
      and clint = wa_klah-clint.

  check sy-subrc = 0.

    select atinn atwrt atflv
      into corresponding fields of wa_ausp
      from ausp
      where objek = ausp_objek
        and atinn = atinn
*       and atzhl
        and mafid = wa_kssk-mafid
        and klart = wa_kssk-klart
        and adzhl = wa_kssk-adzhl.
...

P.S. Версия 46C. Не претендую на полноту связей. Найдено с пом. отладчика, т.к. CACL_OBJECT_READ_VALIDATION после 1500 обращений падала в дамп из-за недостатка памяти по причине неосвобождения после каждои итерации
P.P.S. В AUSP есть индексы по atwrt, atflv что можно использовать для быстрого поиска документов с определенными значениями признаков


Последний раз редактировалось Stenj_90 Вт, май 16 2006, 08:46, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 15 2006, 15:52 
Гость
Есть транзакция CLHP - там всё наглядно видно.

А вообще, организация зависит от вас.
Но есть ещё таблица SWOR.

Code:


CONSTANTS:
   c_klart(3) TYPE c VALUE '001',                         " вид класса - материал
   c_klpos(2) TYPE c VALUE '01',                          " swor~klpos = '01' позиция
   c_aland(2) TYPE c VALUE 'RU',                          " mlan~aland = 'RU'
   c_mafid(1) TYPE c VALUE 'O',                           " kssk~mafid = 'O' объект
   c_mafidk(1) TYPE c VALUE 'K',                           " kssk~mafid = 'K' класс
   c_miks(4)  TYPE c VALUE 'MIKS',                        " klah~klagr = 'MIKS'
   c_gpg(4)   TYPE c VALUE 'GPG'.                         " klah~klagr = 'GPG'

class1-matnr = mara-matnr.

* формирование подклассов

          SELECT SINGLE klah~class  kssk~klart kssk~objek klah~clint swor~kschl
             INTO CORRESPONDING FIELDS OF class1
             FROM kssk
             INNER  JOIN klah ON klah~clint = kssk~clint  AND klah~klagr = c_miks
             INNER JOIN swor ON swor~clint = kssk~clint AND swor~spras = sy-langu AND swor~klpos = c_klpos
             WHERE kssk~klart = c_klart
                 AND kssk~mafid = c_mafid
*                AND klah~klagr IN p_klagr
                    AND kssk~objek = class1-matnr.
*формирование классов
          SELECT SINGLE klah~class swor~kschl
             INTO (class1-classkl, class1-imakschl)
             FROM kssk
               INNER JOIN klah ON klah~clint = kssk~clint AND klah~klagr = c_gpg
               INNER JOIN swor ON swor~clint = klah~clint AND swor~spras = sy-langu AND swor~klpos = c_klpos
             WHERE kssk~objek = class1-clint.


Пример кода - для понимания, а вообще-то есть ФМ для работы.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 15 2006, 16:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Коллеги, все здорово, работа проведена большая, но все-таки пользуйтесь вы готовыми функциями - их навалом, чесслово. Зачем свои селекты изобретать?...

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите названия таблиц
СообщениеДобавлено: Пн, май 15 2006, 17:28 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
QWERT написал(а):
Да, может у кого-нить есть модель БД с изображением таблиц, задействованных в ракурсе "Классификация" для ОЗМ.
Очень нужна.
...
Короче нужна схема этих таблиц БД!!!!


SE11 -> table_name -> View -> Ctrl + Shift + F11
на тулбаре даже есть помоему кнопочка - рисует реляции таблицы. правда не всегда и не все - но лучше чем ничего :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 16 2006, 09:23 
Гость
Сергей Королев написал:
...Зачем свои селекты изобретать?...

:arrow: Система 46С. Работа велась с классом 017 (Управление документами).
1. ФМ 'CACL_OBJECT_READ_VALIDATION', возвращающий все признаки объекта, после выполнения не освобождал около 100K. После 1400-1500 обращений память просто кончалась и программа падала в дамп.
2. Не нашел ФМ, возвращающий значение только одного признака (скажем BUKRS), работающего быстро и многократно. Чтение только одного признака используется в:
- средствах поиска (для показа значения признака)
- авторизации доступа к документам DMS
- проверке на допустимость действий с документом в зависимости от значения определенных признаков
- правомочность чтения привязанных документов в зависимости от какого-либо признака
- ...
Но это вовсе не значит что такого ФМ нет. 8)
3. Поиск документов с определенными значениями признаков. Используется в:
- средствах поиска (для поиска документа по признаку вместо перебора всех документов, чтения всех признаков документа, анализа требуемого признака на ranges)
- всевозможные отчеты начинают искать документы существенно быстрее (см. выше)
- ...
Если кому-то известен ФМ для быстрого поиска списка документов по значению нескольких признаков, задаваемых на 1000 экране в SELECT-OPTIONS, то буду очень признателен за наводку. 8)
:idea: P.S. Спасибо Любаше за расшифровку MAFID. Для DMS в kssk-mafid = ''O', и select будет работать чуть-чуть быстрее. Раньше не добавлял в select, т.к. не знал возможные значения mafid


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 16 2006, 13:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Сдаюсь, сдаюсь, чего уж там :)
Stenj_90 написал(а):
Если кому-то известен ФМ для быстрого поиска списка документов по значению нескольких признаков, задаваемых на 1000 экране в SELECT-OPTIONS, то буду очень признателен за наводку.

CLSD_CALL_SEARCH_DIALOG - используется, например, в транзакции CL30N. Правда там экран особый.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 16 2006, 13:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Stenj_90 написал(а):
1. ФМ 'CACL_OBJECT_READ_VALIDATION', возвращающий все признаки объекта, после выполнения не освобождал около 100K. После 1400-1500 обращений память просто кончалась и программа падала в дамп.

BAPI_OBJCL_GETDETAIL - слишком медленный?

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 16 2006, 17:17 
Гость
- BAPI_OBJCL_GETDETAIL аналогично не освобождает память, что в результате приводит к дампу (у меня при обработке 900 док-в).
- для 750 DMS-документов вернула значения всех признаков за 110 сек. Создание объкта-прямое чтение-free для тех-же док-в заняло 15 сек.
P.S. а вообще замечательная функция, здорово расскладывает признаки по таблицам с кодами, названиями, значениями.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 17 2006, 07:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
н-да, нехорошо, однако...

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 17 2006, 08:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
попробуйте ФМ CLSC_SEARCH_IN_CLASSTYPE - пользовался им именно для больших объемов, вроде бы таких "сюрпризов" не было

_________________
Жизнь прекрасна! Если правильно подобрать антидепрессанты...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 17 2006, 09:57 
Гость
...


Последний раз редактировалось Stenj_90 Чт, май 18 2006, 08:10, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 17 2006, 10:16 
Гость
Тогда подойдет и CLSC_SEARCH_OBJECTS. Он весьма успешно используется в отчете RCCLAUSPOLDNEW 'Обмен или инициализация признаков в классификации'. Хотя удобнее CLSC_SEARCH_IN_CLASSTYPE, кстати, используемый в тр. CL31 'Поиск объектов в виде класса'. Тоже пригодится :wink:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 17 2006, 15:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 07:44
Сообщения: 174
CLSC_SEARCH_OBJECTS тоже подойдет, но CLSC_SEARCH_IN_CLASSTYPE просто удобнее

_________________
Жизнь прекрасна! Если правильно подобрать антидепрессанты...


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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