Текущее время: Пн, июл 28 2025, 03:46

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


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

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


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

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