SAPфорум.RU
https://sapboard.ru/forum/

Программное создание дебитора
https://sapboard.ru/forum/viewtopic.php?f=13&t=79202
Страница 1 из 1

Автор:  skd1980 [ Вт, окт 16 2012, 14:23 ]
Заголовок сообщения:  Программное создание дебитора

Добрый день! Задача такая: есть xls файл в котором есть ИНН и наименование дебитора. Необходимо загрузить этот список в САП. Для этого пишу:
Code:
data: wa_header          type cmds_ei_header,
      wa_central_data    type cmds_ei_vmd_central_data,
      wa_central_datax   type cmds_ei_vmd_central_data_xflag,
      wa_address         type bapiad1vl,
      wa_addressx        type bapiad1vlx,
      wa_tax_ind_st      type cmds_ei_tax_ind,
      wa_tax_ind         type cmds_ei_cmd_tax_ind,
      wa_bankdetail_st   type cvis_ei_cvi_bankdetail,
      wa_bankdetail      type cvis_ei_bankdetail,
      wa_company_code_st type cmds_ei_company,
      wa_company_code    type cmds_ei_cmd_company,
      wa_functions_st    type cmds_ei_functions,
      wa_functions_t     type CMDS_EI_FUNCTIONS_T,
      wa_functions       type cmds_ei_cmd_functions,
      wa_sales_data_st   type cmds_ei_sales,
      wa_sales_data      type cmds_ei_cmd_sales,
      wa_customer        type cmds_ei_extern,
      wa_customers       type cmds_ei_main,
      wa_correct         type cmds_ei_main,
      wa_defective       type cmds_ei_main,
      wa_mes_correct     type cvis_message,
      wa_contact         type CMDS_EI_CMD_CONTACTS,
      wa_contactS        type CMDS_EI_CONTACTS,
      wa_mes_error       type cvis_message.

constants: c_update type c value 'M',
           c_insert type c value 'I'.


  free: wa_customer, wa_company_code_st, wa_customer.

  wa_address-name         = 'TEST'.
  wa_address-postl_cod1  = '620060'.
  wa_address-country       = 'RU'.
  wa_address-langu          = 'RU'.

  wa_customer-central_data-address-postal-data       =  wa_address.
  wa_customer-central_data-address-postal-datax     =  wa_addressx.
  wa_customer-central_data-central-data-STCD1       =  '6662007834'.
  wa_customer-central_data-central-data-STCD3       =  '9999999999'.
  wa_customer-central_data-central-data-ktokd         =  'DEBI'.
  wa_contacts-task                                                  =  'I'.
  wa_contacts-data-sortl                                          =  'KVASHNIN'.

  wa_customer-header-object_task = 'I'.
append wa_contacts to wa_customer-central_data-Contact-contacts.

append wa_customer to wa_customers-customers.


  call method cmd_ei_api=>maintain_bapi
    EXPORTING
      iv_test_run         = 'X'
      iv_collect_messages = 'X'
      is_master_data      = wa_customers
    IMPORTING
      es_master_data_correct   = wa_correct
      es_message_correct       = wa_mes_correct
      es_master_data_defective = wa_defective
      es_message_defective     = wa_mes_error.


На что программа пишет: KNA1-SORTL: проверку обязательных полей выполнить не удалось,
Клиент 202979: укажите имя контактного лица, KNVK-NAME1: не удалось выполнить проверку достоверности.

Подскажите, пожалуйста, что не так в коде, может быть что-то пропустил?

Автор:  Удав [ Вт, окт 16 2012, 14:35 ]
Заголовок сообщения:  Re: Программное создание дебитора

А чем вам не подходит LSMW?

Автор:  skd1980 [ Вт, окт 16 2012, 14:50 ]
Заголовок сообщения:  Re: Программное создание дебитора

Удав написал(а):
А чем вам не подходит LSMW?


Потому что создание дебитора - это только часть программы. LSMW я так понимаю все руками нужно делать и настройку переноса данных из xls во внутреннюю структуру и потом из нее в карточку дебитора. Точно не знаю как там и что, не работал.

Автор:  skd1980 [ Ср, окт 17 2012, 12:30 ]
Заголовок сообщения:  Re: Программное создание дебитора

Отвечу сам себе. Похоже, что не все обязательные поля заполнил.

Автор:  proga19 [ Ср, янв 16 2019, 12:40 ]
Заголовок сообщения:  Re: Программное создание дебитора

Также интересует данный вопрос. Всё создал, заполинил все структуры, только не могу добавить контактыне лица для дебитора через этот класс никак. Та же ошибка: "Введите имя контактного лица".
Только вот куда я не могу понять. в структуре contact есть 3 структуры: адрес ор-ии, личный адрес и адрес контактных лиц. Пробовал везде, всё равно никак. Как то же можно запихивать к.лица в этот класс?

Автор:  John Doe [ Ср, янв 16 2019, 13:16 ]
Заголовок сообщения:  Re: Программное создание дебитора

Вероятно, что партнерская роль AP "Контактное лицо" настроена для обязательного заполнения. Попробуйте заполнить SALES_DATA-SALES-FUNCTIONS-FUNCTIONS-DATA_KEY и DATA.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/