Текущее время: Пт, июл 04 2025, 21:39

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


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

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


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

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