Текущее время: Сб, июн 08 2024, 03:23

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


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

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


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

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