Текущее время: Вт, июл 29 2025, 20:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: BAPI_CONTRACT_CREATE
СообщениеДобавлено: Пн, мар 03 2008, 16:22 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
Всем привет!

Подскажите, пожалуйста, в чем может быть проблема?
Создаю контракт с помощью BAPI_CONTRACT_CREATE. Когда в контракте 1 позиция он создается, а когда больше одной то падает в дамп: Exception condition "ALREADY_REGISTERED" raised.
У самого ФМ особых ситуаций нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_CONTRACT_CREATE
СообщениеДобавлено: Пн, мар 03 2008, 16:39 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
DAK написал(а):
Всем привет!

Подскажите, пожалуйста, в чем может быть проблема?
Создаю контракт с помощью BAPI_CONTRACT_CREATE. Когда в контракте 1 позиция он создается, а когда больше одной то падает в дамп: Exception condition "ALREADY_REGISTERED" raised.
У самого ФМ особых ситуаций нет.

Может поле ITEM_NO(ITEM_NOX) (в какой-нибудь из передаваемых таблиц) в случае более одной позиции не заполнено?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 03 2008, 16:49 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
поле ITEM_NO я заполняю


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 03 2008, 17:38 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
DAK написал(а):
поле ITEM_NO я заполняю

И ITEMX-ITEM_NO?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 03 2008, 17:42 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
да заполняю
gs_item-ITEM_NO = index.
gs_itemx-ITEM_NO = 'X'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 03 2008, 17:44 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
DAK написал(а):
да заполняю
gs_item-ITEM_NO = index.
gs_itemx-ITEM_NO = 'X'

gs_itemx-ITEM_NO - NUMC5


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

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
Спасибо!! Заработало.
Сразу просто не заметил что в таблице gs_itemx тоже есть позиция.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 12:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
Всем привет!
Возникла проблема с заполнением параметра EXTENSIONIN, т.к у меня в структуре CI_EKPODB есть поля типа CURR. Я нашел ноту 509898 там описано как заполнять стуктуру EXTENSIONIN в таком случае. Я все сделал, но при выполнении ФМ выдает сообшение:
W ME 887 Ошибка при копировании ExtensionIn-данных для расширения CI_EKPODB
Может быть с этим кто-то сталкивалася подскажите в чем косяк?

КОД:
DATA: BEGIN OF s_item1,
ITEM_NO like BAPI_TE_MEOUTITEM-ITEM_NO,
ZZTAXAM like BAPI_TE_MEOUTITEM-ZZTAXAM,
ZZNETAM like BAPI_TE_MEOUTITEM-ZZNETAM,
ZZSUMAM like BAPI_TE_MEOUTITEM-ZZSUMAM,
ZZKODSL like BAPI_TE_MEOUTITEM-ZZKODSL,
ZZANLUE like BAPI_TE_MEOUTITEM-ZZANLUE,
END OF s_item1.
DATA: BEGIN OF s_item2,
ITEM_NO(5),
ZZTAXAM(18),
ZZNETAM(20),
ZZSUMAM(20),
ZZKODSL(2),
ZZANLUE(12),
END OF s_item2.

CLEAR: gs_EXTENSIONIN, gs_CI_EKPODB.
s_item1-ITEM_NO = SPCP-EBELP.
s_item1-ZZSUMAM = SPCH-KTWRT.
s_item1-ZZNETAM = SPCH-ZZNETAM.
s_item1-ZZTAXAM = SPCH-ZZTAXAM.
MOVE-CORRESPONDING s_item1 to s_item2.
gs_EXTENSIONIN-structure = 'BAPI_TE_MEOUTITEM'.
* gs_EXTENSIONIN+30 = s_item2.
MOVE s_item2 to gs_EXTENSIONIN+30.
append gs_EXTENSIONIN to gt_EXTENSIONIN.

CLEAR: gs_EXTENSIONIN, gs_CI_EKPODBX.
gs_CI_EKPODBX-ITEM_NO = SPCP-EBELP.
gs_CI_EKPODBX-ZZSUMAM = 'X'.
gs_CI_EKPODBX-ZZNETAM = 'X'.
gs_CI_EKPODBX-ZZTAXAM = 'X'.
gs_EXTENSIONIN-structure = 'BAPI_TE_MEOUTITEMX'.
gs_EXTENSIONIN+30 = gs_CI_EKPODBX.
append gs_EXTENSIONIN to gt_EXTENSIONIN.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 14:01 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Поля
CI_EKPODB-ZZTAXAM, CI_EKPODB-ZZNETAM, CI_EKPODB-ZZSUMAM - TYPE p?

Code:
*  check if the included fields are character like data types
    LOOP AT lr_abap->components ASSIGNING <comp>.
      CHECK <comp>-type_kind EQ lr_abap->typekind_packed.
      MESSAGE e887(me) WITH im_ci INTO gl_dummy.
      mmpur_message_enaco_forced sy-msgty sy-msgid sy-msgno sy-msgv1
                                 sy-msgv2 sy-msgv3 sy-msgv4.
      lf_exit = cl_mmpur_constants=>yes.
    ENDLOOP.

К сожаление не знаю, что написано в ноте 509898 по поводу packed.
Вы при заполнение EXTENSIONIN использовали вторую структуру с переменными char-типа, а в DDIC CI_EKPODB - есть packed. Вот оно оттуда и берёт описание типа данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 14:32 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
Поля
CI_EKPODB-ZZTAXAM, CI_EKPODB-ZZNETAM типа CURR, а
CI_EKPODB-ZZSUMAM типа CHAR.
при обычном заполнении структуры EXTENSIONIN (gs_EXTENSIONIN+30 = gs_CI_EKPODB) у меня была ошибка связанная с уникодом, пришлось сделать как написано в ноте:
берем ст. s1 исходной структуры и ст. s1 с теми же полями только типа char и делаем move-corresponding а s2 move в EXTENSIONIN.

вот только это не помогло(((


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 14:38 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
DAK написал(а):
Поля
CI_EKPODB-ZZTAXAM, CI_EKPODB-ZZNETAM типа CURR, а
CI_EKPODB-ZZSUMAM типа CHAR.
при обычном заполнении структуры EXTENSIONIN (gs_EXTENSIONIN+30 = gs_CI_EKPODB) у меня была ошибка связанная с уникодом, пришлось сделать как написано в ноте:
берем ст. s1 исходной структуры и ст. s1 с теми же полями только типа char и делаем move-corresponding а s2 move в EXTENSIONIN.

вот только это не помогло(((

Насколько я смог понять то в OSS Note 509898 советуют "to write a customer exit/badi to the BAPI" и там обработать ваши данные.
Вроде бы как BADI ME_BAPI_PO_CUST метод MAP2I_EXTENSIONIN вызывается после проверки типа данных в customer-include.
Code:
*  check if the included fields are character like data types
  LOOP AT gr_abap->components ASSIGNING <comp>.
    CHECK <comp>-type_kind EQ gr_abap->typekind_packed.
*  message could be customized ME887
    MESSAGE w887(me) WITH im_name INTO gl_dummy.
    mmpur_message_enaco_forced sy-msgty sy-msgid sy-msgno sy-msgv1
                               sy-msgv2 sy-msgv3 sy-msgv4.
    lf_exit = cl_mmpur_constants=>yes.
  ENDLOOP.
*  call customer BAdI for inbound mapping of extensionin
  GET BADI lr_badi.
  TRY.
      CALL BADI lr_badi->map2i_extensionin
        EXPORTING
          im_container = im_container
          im_name      = im_name
          im_error     = lf_exit
        CHANGING
          ch_struc     = ch_struc.
    CATCH cx_mmpur_root.
      EXIT.
  ENDTRY.
  CHECK lf_exit EQ cl_mmpur_constants=>no.
  TRY.
      ASSIGN ch_struc TO <fs>.
*  convert container data to target structure
      im_nls->cont_to_struc( EXPORTING cont   = im_container
                                       langu  = sy-langu
                             IMPORTING struc  = <fs> ).
    CATCH: cx_root.
  ENDTRY.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 15:07 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
получается что я в этом бади что-то с ними сделать??


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 15:56 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
DAK написал(а):
получается что я в этом бади что-то с ними сделать??
Вроде бы как перенести данные из im_container в ch_struc, но только мне кажется я поспешил с выводами и это BADI в BAPI_CONTRACT_CREATE не вызывается.
Т.е. ситуация схожая с BAPI Extension. Тогда наверное выход только один - преобразовать типы данных в CI_EKPODB.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 05 2008, 16:11 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 20 2007, 15:49
Сообщения: 67
да я в отладчике посмотрел там нет этого бади
там только проверка(((


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

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Добрый день!
У меня возникла следующая проблема: использую бапи BAPI_CONTRACT_CREATE. Настройки блока контировки предполагают заполнения поля номер/субномер ОС. Я его заполняю в таблице ACCOUNT и проставляю флажок в соответствующем поле таблицы ACCOUNTX. Но модуль все равно в списке ошибок возвращает: Укажите ОснСредство . Может ли кто-нибудь подсказать, где я забыл указать номер ОС?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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


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

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


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

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