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

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


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

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


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

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