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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: BAPI для обновления контрагентов.
СообщениеДобавлено: Вт, мар 12 2013, 12:34 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Добрый день, коллеги!
Нужна Ваша помощь, а именно: подскажите, пожалуйста, BAPI, которая обновляет контрагентов.
Точнее, мне необходимо обновить поля knvv-vkbur(Sales Office), knvv-vkgrp(Sales Group), knvv-bzirk(Sales District).
Нашла ФМ CUSTOMER_UPDATE_SALES_AREA, который вроде бы подходит, но как насчёт BAPI?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для обновления контрагентов.
СообщениеДобавлено: Вт, мар 12 2013, 13:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Могу посоветовать использовать интерфейс CMD_EI_API. Если система ниже 2005 - пакетник или Idoc DEBMAS.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI для обновления контрагентов.
СообщениеДобавлено: Вт, мар 12 2013, 13:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
ещё один ф/м:
SD_CUSTOMER_MAINTAIN_ALL


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для обновления контрагентов.
СообщениеДобавлено: Вт, мар 12 2013, 16:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Ребят, а может, у кого-нибудь есть пример правильного заполнения параметров в методе maintain_bapi класса CMD_EI_API?
А то там чёрт ногу сломит...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI для обновления контрагентов.  Тема решена
СообщениеДобавлено: Ср, мар 13 2013, 10:34 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Как-то так...
Code:
*&---------------------------------------------------------------------*
*& Report  ZJDTEST
*&
*&---------------------------------------------------------------------*
*& необходимо обновить поля knvv-vkbur(Sales Office),
*& knvv-vkgrp(Sales Group), knvv-bzirk(Sales District).
*&---------------------------------------------------------------------*

REPORT  zjdtest.

CONSTANTS c_update TYPE c VALUE 'U'.

DATA: cst TYPE cmds_ei_extern.
DATA: is_master_data TYPE cmds_ei_main.
DATA: es_master_data_correct    TYPE cmds_ei_main,
      es_master_data_defective  TYPE cmds_ei_main,
      es_message_correct        TYPE cvis_message,
      es_message_defective      TYPE cvis_message.

DATA: sales_data TYPE cmds_ei_sales.
DATA: data  TYPE  cmds_ei_sales_data,
      datax TYPE  cmds_ei_sales_datax.
DATA: ls_knvv TYPE knvv.

DATA: message_text  TYPE text100,
      message_defe  TYPE bapiret2,
      message_inco  TYPE bapiret2,
      message_count TYPE int1 VALUE 0.

SELECTION-SCREEN BEGIN OF BLOCK object WITH FRAME TITLE object.
PARAMETERS: p_kunnr LIKE kna1-kunnr OBLIGATORY DEFAULT '0000102075',
            p_vkorg LIKE knvv-vkorg OBLIGATORY DEFAULT '1003',
            p_vtweg LIKE knvv-vtweg OBLIGATORY DEFAULT '10',
            p_spart LIKE knvv-spart OBLIGATORY DEFAULT '10'.
SELECTION-SCREEN END OF BLOCK object.
SELECTION-SCREEN BEGIN OF BLOCK data WITH FRAME TITLE modif.
PARAMETERS: p_vkbur LIKE knvv-vkbur,
            p_vkgrp LIKE knvv-vkgrp,
            p_bzirk LIKE knvv-bzirk.
SELECTION-SCREEN END OF BLOCK data.

INITIALIZATION.
  object = 'Данные рынка сбыта'.
  modif = 'Обновляемые значения'.

START-OF-SELECTION.
  " Выбираем данные для обновления
  SELECT SINGLE * FROM knvv INTO ls_knvv
    WHERE kunnr = p_kunnr
    AND   vkorg = p_vkorg
    AND   vtweg = p_vtweg
    AND   spart = p_spart.
  IF sy-subrc <> 0.
    MESSAGE 'Данные рынка сбыта не найдены' TYPE 'S' DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

  MOVE-CORRESPONDING ls_knvv TO data.

  " Модифицируем
  IF p_vkbur IS NOT INITIAL AND p_vkbur <> ls_knvv-vkbur.
    data-vkbur = p_vkbur.
    datax-vkbur = 'X'.
  ENDIF.
  IF p_vkgrp IS NOT INITIAL AND p_vkgrp <> ls_knvv-vkgrp.
    data-vkgrp = p_vkgrp.
    datax-vkgrp = 'X'.
  ENDIF.
  IF p_bzirk IS NOT INITIAL AND p_bzirk <> ls_knvv-bzirk.
    data-bzirk = p_bzirk.
    datax-bzirk = 'X'.
  ENDIF.

  IF data IS INITIAL.
    MESSAGE 'Изменений не обнаружено' TYPE 'S' DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

  " Изменения есть, заполняем интерфейс
  cst-header-object_task              = c_update.
  cst-header-object_instance-kunnr    = p_kunnr.

  sales_data-task           = c_update.
  sales_data-data_key-vkorg = p_vkorg.
  sales_data-data_key-vtweg = p_vtweg.
  sales_data-data_key-spart = p_spart.
  sales_data-datax          = datax.
  sales_data-data           = data.
  APPEND sales_data TO cst-sales_data-sales.

  cst-sales_data-current_state        = 'X'.
  APPEND cst TO is_master_data-customers.


  CALL METHOD cmd_ei_api=>maintain_bapi
    EXPORTING
      iv_test_run              = space
      iv_collect_messages      = space
      is_master_data           = is_master_data
    IMPORTING
      es_master_data_correct   = es_master_data_correct
      es_message_correct       = es_message_correct
      es_master_data_defective = es_master_data_defective
      es_message_defective     = es_message_defective.
  IF sy-subrc = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
    IF es_message_defective-is_error IS NOT INITIAL.
      CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
        TABLES
          i_bapiret2_tab = es_message_defective-messages.
    ELSEIF es_message_correct-is_error IS NOT INITIAL.
      CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
        TABLES
          i_bapiret2_tab = es_message_correct-messages.
    ENDIF.

  ELSE.
    ADD 1 TO message_count.
    WRITE: / , 'Обнаружена ошибка (cmd_ei_api=>maintain_bapi)'.
    EXIT.
  ENDIF.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI для обновления контрагентов.
СообщениеДобавлено: Ср, мар 13 2013, 12:06 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to John Doe, не знал про CMD_EI_API/VMD_EI_API.
Спасибо :)


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

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


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

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


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

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