Текущее время: Вс, июл 27 2025, 15:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 07:39 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Добрый день.
Стоит задача реализации группового ввода деловых партнеров с автоматическим созданием дебитора и кредитора.
Данная тема уже поднималась: здесь, тут и вот тут, но, к сожалению, без нужных подробностей. Гугл тоже пока не сильно помог.
Для создания ДП успешно используется BAPI_BUPA_CREATE_FROM_DATA .
Для присвоения ролей: BAPI_BUPA_ROLE_ADD_2 .
Проблемы начинаются на этапе непосредственного создания дебитора\кредитора (создание роли для делового партнера не создает их автоматом). С помощью BAPI это сделать, как я понимаю, невозможно.
Батчей, как альтернативы, хотелось бы избежать.
Нашел на форуме и в инете информацию об ФМ: IDOC_INPUT_CREDITOR и IDOC_INPUT_DEBITOR. Но так и не нашел примеров вызова данных ФМ с заполнением входных таблиц (как я понимаю на вход подается что-то на основе DEBMAS*).
Может кто-то сталкивался с использованием IDOC_INPUT_DEBITOR или другим способом решения задачи?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 08:06 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
ФМ по созданию дебитора.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 08:42 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Besa: спасибо, покопаю BAPI_CUSTOMER_CREATEFROMDATA1, но сразу вопрос - а что делать с кредиторами? нашел информацию, что аналога для кредиторов нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 08:53 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Al_ написал:
Besa: спасибо, покопаю BAPI_CUSTOMER_CREATEFROMDATA1, но сразу вопрос - а что делать с кредиторами? нашел информацию, что аналога для кредиторов нет.

Да, для кредиторов такого нету... http://www.sapnet.ru/viewtopic.php?t=2659&start=15&postdays=0&postorder=asc&highlight=
Скорее всего придется ковырять IDOC_INPUT_CREDITOR. У Вас есть в системе инклюд LWSVD_BAPIF03? Дело в том, что в этом инклюде есть перформ (map_vndr_struct_to_idoc) где реализован мапинг данных кредитора и входных параметров для этого IDOC_INPUT_CREDITOR.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 09:02 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Besa: Тогда сразу вопрос: если использование IDOC_INPUT_CREDITOR для кредиторов неизбежно, то имеет ли смысл для дебиторов дергаться в сторону BAPI_CUSTOMER_CREATEFROMDATA1 ? или же стоит по аналогии так же использовать IDOC_INPUT_DEBITOR? Т.е. какой из способов удобнее и правильнее?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 09:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Al_ написал:
Besa: Тогда сразу вопрос: если использование IDOC_INPUT_CREDITOR для кредиторов неизбежно, то имеет ли смысл для дебиторов дергаться в сторону BAPI_CUSTOMER_CREATEFROMDATA1 ? или же стоит по аналогии так же использовать IDOC_INPUT_DEBITOR? Т.е. какой из способов удобнее и правильнее?

Мне, к сожалению, не приходилось на практике использовать эти ФМ, поэтому я не могу сказать что правильнее и удобнее. BAPI_CUSTOMER_CREATEFROMDATA1 рабочий вариант это точно. Если с IDOC_INPUT_CREDITOR все получится, то имхо, лучше конечно использовать единый подход и не трогать BAPI_CUSTOMER_CREATEFROMDATA1. Кроме того, если я не ошибаюсь, при использовании BAPI_CUSTOMER_CREATEFROMDATA1, если для дебитора нужно ввести, например, банковские данные, то нужно использовать дополнительный ФМ, в случае с IDOC_INPUT_CREDITOR все можно ввести разом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 13:25 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Посмотрел приведенный выше инклуд (LWSVD_BAPIF03), попробовал подать на вход данные по аналогии.
При попытке использования ФМ IDOC_INPUT_DEBITOR выдает ошибку:
Code:
Сеанс     1: специальный знак для "пустого поля" - /.
№ сообщения FB012

Ничего путевого нагуглить на эту тему не получилось.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 13:42 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Где именно выдается это сообщение? Оно разве не информативное? Покажите код.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 14:04 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Код:
Code:
REFRESH idoc_contrl.
idoc_contrl-mestyp = 'DEBMAS' .
idoc_contrl-idoctp = 'DEBMAS01' .
idoc_contrl-docnum = '0000000000000001'.
APPEND idoc_contrl.

REFRESH idoc_data.
ls_input_data-kunnr = '0000000077'.
ls_input_data-ktokd = '1100'.
ls_input_data-regio = '02'.
ls_input_data-spras = 'R'.
ls_input_data-name1 = 'создан автоматом'.
idoc_data-sdata = ls_input_data.
idoc_data-docnum = '0000000000000001'.
idoc_data-mandt = sy-mandt.
idoc_data-segnam = 'E1KNA1M'.
APPEND idoc_data.

CALL FUNCTION 'IDOC_INPUT_DEBITOR'
  EXPORTING
    input_method          = ' '
    mass_processing       = ' '
  IMPORTING
    workflow_result       = workflow_result
    application_variable  = application_variable
    in_update_task        = in_update_task
    call_transaction_done = call_transaction_done
  TABLES
    idoc_contrl           = idoc_contrl
    idoc_data             = idoc_data
    idoc_status           = idoc_status
    return_variables      = return_variables
    serialization_info    = serialization_info
  EXCEPTIONS
    wrong_function_called = 1
    OTHERS                = 2.

Да сообщение информационное, выдается после вызова ФМ, не знаю насколько оно связано с результатом, но в выходной таблице RETURN_VARIABLES[] появляется строка к соответствующему doc_numer:
Error_IDOCs 0000000000000001

Besa: Спасибо, кстати, за помощь.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 14:44 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Al_, сообщение FB012 не имеет отношение к Error_IDOCs 0000000000000001. Я посмотрел этот Фм IDOC_INPUT_DEBITOR, по большому счету, по Вашим входным данным, он только собирает таблицу шагов для обычного пакетного ввода. Само выполнение ФМ-а сводится к запуску обычного пакетника. Так что, может оно того не стоит... Для Вашей задачи, в этом ФМ-е, я не вижу особых преимуществ.
LVV02F3J строка 145
Code:
    CALL TRANSACTION TRANSACTION_CODE USING FT
                                     MODE    CALL_TRANSACTION_MODE
                                     UPDATE  C_UPDATE_SYNC
                                     MESSAGES INTO T_BDCMSGCOLL.

Поставьте там точку останова и посмотрите, все сразу станет понятно. Можете поменять переменную CALL_TRANSACTION_MODE значением A и посмотреть по шагам где у Вас "валится" пакетник, это и есть Error_IDOCs 0000000000000001... или смотрите лог ошибок T_BDCMSGCOLL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Вт, сен 07 2010, 21:22 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
А почему бы просто IDoc'ами этого не делать? Message type = CREMAS/DEBMAS.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Групповой ввод ДП с ролью дебитора и кредитора (IDOC_INPUT_DEBITOR)
СообщениеДобавлено: Ср, сен 08 2010, 07:54 
Ассистент
Ассистент

Зарегистрирован:
Ср, сен 26 2007, 14:12
Сообщения: 27
Пол: Мужской
Besa: да спасибо, советы помогли, причину нашел - не хватало входных данных для создания дебитора. А сообщение вызвано скорее всего тем, что программа выполняется в онлайн режиме (нашел место в коде и ссылку на ноту). В итоге создать дебитора получилось - теперь пытаюсь разобраться со связями деловой партнер - дебитор.
Jelena: так по сути, как я понимаю, IDOC_INPUT_DEBITOR - это он (айдок) и есть. просто мне сейчас удобнее это все обернуть в абап: так получается более гибкая реализация.


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

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


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

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


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

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