Текущее время: Вт, июн 24 2025, 06:58

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Пытаюсь присвоить объект к классу через функцию BAPI:
BAPI_OBJCL_CREATE_KEY.

Созданный материал является объектом или нет?
Я почему спрашиваю. Мне для создания присвоения необходимо экспортировать в функцию атрибут типа BAPI1003_KEY-OBJECT_GUID.
Он именуется как внутренний ключ. Я отсылаю номер материала, который был мною создан. А мне выдают, мол такого объекта не существует, хотя материал с такми номером есть, его можно просмотреть, изменить и т.д.

Что делать? Может объект и материал не одно и то же? Или как мне получить внутренний номер материала?


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Думаю, надо использовать функциональный модуль BAPI_OBJCL_CREATE

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 17 2005, 13:52 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Сергей Королев написал:
Думаю, надо использовать функциональный модуль BAPI_OBJCL_CREATE


Не нахожу такого модуля. Его походу просто нет.
Не подскажите, где его искать поподробнее.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 17 2005, 14:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
В SE37. BAPI_OBJCL_CREATE, только что убедился в его присутствии в 4.6с

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 17 2005, 15:15 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Сергей Королев написал:
В SE37. BAPI_OBJCL_CREATE, только что убедился в его присутствии в 4.6с


Вот теперь нашли.
В параметре OBJECTKEYNEW что нужно передавать: номер класса или что? Там требуется поле char 50.
И что в параметре OBJECTTABLENEW? Совсем запутались.

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 17 2005, 15:29 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Да, и что такое ключ классифицируемого объекта.
Я передаю в этом параметре номер материала. Это неправильно?
Просто он выдает, что мол такого объекта, чей номер я передаю, не существует.
Но такой материал есть. Это точно.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Я попробовал быстренько присвоить материал классу при помощи этой функции - BAPI_OBJCL_CREATE - получилось.
OBJECTKEYNEW - номер материала во внутреннем формате (обычно 18 символов со стартовыми нулями).
OBJECTTABLENEW - поставил MARA - подошло
CLASSNUMNEW - имя класса
CLASSTYPENEW - 001
Кроме того, нужно заполнить одну из таблиц в заивисомти от типа атрибутов
ALLOCVALUESNUM - для числовых атрибутов
ALLOCVALUESCHAR - для симольных атрибутов
ALLOCVALUESCURR - для атрибутов количеств и сумм

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 17 2005, 21:02 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Сергей Королев написал:
Я попробовал быстренько присвоить материал классу при помощи этой функции - BAPI_OBJCL_CREATE - получилось.
OBJECTKEYNEW - номер материала во внутреннем формате (обычно 18 символов со стартовыми нулями).
OBJECTTABLENEW - поставил MARA - подошло
CLASSNUMNEW - имя класса
CLASSTYPENEW - 001
Кроме того, нужно заполнить одну из таблиц в заивисомти от типа атрибутов
ALLOCVALUESNUM - для числовых атрибутов
ALLOCVALUESCHAR - для симольных атрибутов
ALLOCVALUESCURR - для атрибутов количеств и сумм


Я делаю также:
Например, у меня есть класс 01 и материал 19.
OBJECTKEYNEW = '19'
OBJECTTABLENEW = 'MARA'
CLASSNUMNEW = '01'
CLASSTYPENEW = '001'.

У меня выводится сообщение, что мол объекта 19 не существует. А он точно есть.
И что значит номер материала во внутреннем формате?
Надо что ли писать 000000000000000019, так что ли?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июн 18 2005, 06:05 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
QWERT написал(а):
И что значит номер материала во внутреннем формате?
Надо что ли писать 000000000000000019, так что ли?


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

ну а для того чтобы правильно преобразовать номер материала (скажем ты его читаешь из Excel-файла, где он без ведущих нулей) используй ФМ CONVERSION_EXIT_ALPHA_INPUT


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июн 18 2005, 08:59 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июн 18 2005, 10:58 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Подскжите, а где вы находите все эти ФМ.
Например, ФМ BAPI_OBJCL_CREATE не смогли найти через BAPI-проводник, только при помощи транзакции se37 и то зная его название.
Где вообще можно посмотреть весь список предлагаемых ФМ с пояснением?

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, июн 18 2005, 21:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
К сожалению, в основном это "фольклор".
Общие рекомендации:
  • можно использовать транзакцию SE30 для анализа выполнения, в журнале могут быть упомянуты полезные функции
  • когда входите в отладку стандартной программы иногда смотрите стек вызовов (кнопка "Вызовы"), там тоже могу встретиться послезные функции
  • использовать инфо-систему репозитария или (что почти то же самое) F4 в транзакциях SE37, SE38. Нужно представить себе как может по-английски называться требуемая функция, ну и подставить это в поиск (например, если нужна функция преобразования даты, можно попробовать маски *CONVER*DATE* или *DATE*CONVER*
  • Посматривать/почитывать исходный код стандартных программ

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 20 2005, 17:47 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Спасибо всем за советы, но у меня опять стопор:
НЕ могу добавить новый материал.
Например,

DATA:Z_HEADDATA LIKE BAPIMATHEAD.
DATA: Z_CLIENTDATA LIKE BAPI_MARA.
DATA: Z_MATERIALDESCRIPTION LIKE BAPI_MAKT OCCURS 1 WITH HEADER LINE.
DATA: Z_RETURN TYPE BAPIRET2 OCCURS 1 WITH HEADER LINE.
DATA: Z_OUTPUT LIKE MARA-MATNR.

*Получение номера материала во внутреннем формате
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = '250'
IMPORTING
OUTPUT = Z_OUTPUT.

Z_HEADDATA-MATERIAL = Z_OUTPUT.
Z_HEADDATA-IND_SECTOR = 'A'.
Z_HEADDATA-MATL_TYPE = 'FERT'.
Z_HEADDATA-BASIC_VIEW = 'X'.


REFRESH: Z_MATERIALDESCRIPTION.
CLEAR: Z_MATERIALDESCRIPTION.
Z_MATERIALDESCRIPTION-MATL_DESC = 'Новое Оборудование'.
Z_MATERIALDESCRIPTION-LANGU_ISO = 'RU'.
APPEND Z_MATERIALDESCRIPTION.

Z_CLIENTDATA-BASE_UOM = 'KM'.
Z_CLIENTDATA-BASE_UOM_ISO = 'KMT'.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = Z_HEADDATA
CLIENTDATA = Z_CLIENTDATA
IMPORTING
RETURN = Z_RETURN
TABLES
MATERIALDESCRIPTION = Z_MATERIALDESCRIPTION.
COMMIT WORK AND WAIT.

Никаких сообщений об ошибках не выводится, но и материал не добавляется.
Делаю пошаговое выполнение (отладка).
Проверяю что записано в поле
Z_RETURN-MESSAGE.
А там написано, что мол для обязательных полей MARA-MENS(если не ошибаюсь)\BAPI_MARA-BASE_UOM(_ISO) нет записей.
Хотя структура Z_CLIENTDATA заполнена и я ее экспортирую.

Подскажите в чем моя ошибка? А то совсем плохо!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 20 2005, 22:53 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 12:11
Сообщения: 420
Откуда: SAP ERP 2005
Для каждой структуры, передаваемой в этот BAPI, должна быть заполнена соответствующая X-структура. BASE_UOM у тебя ведется в CLIENTDATA, значит соответствующее поле BASE_UOM в CLIENTDATAX должно быть заполнено значением 'X'. Также действуешь для любого поля, которое передаешь в BAPI-метод.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 21 2005, 08:38 
Гость
Clarus написал(а):
Для каждой структуры, передаваемой в этот BAPI, должна быть заполнена соответствующая X-структура. BASE_UOM у тебя ведется в CLIENTDATA, значит соответствующее поле BASE_UOM в CLIENTDATAX должно быть заполнено значением 'X'. Также действуешь для любого поля, которое передаешь в BAPI-метод.


Да, уже разобрались. Но все равно спасибо :D


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

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


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

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


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

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