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

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


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

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


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

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