Текущее время: Вт, июл 22 2025, 10:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Как прикрепить договор CV01n в заказ VA01.
СообщениеДобавлено: Пн, окт 22 2012, 08:21 
Начинающий
Начинающий

Зарегистрирован:
Чт, янв 19 2012, 17:36
Сообщения: 5
Откуда: Россия
Пол: Мужской
Добрый день.

Как прикрепить договор CV01n в заказ VA01 через ABAP?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как прикрепить договор CV01n в заказ VA01.
СообщениеДобавлено: Пн, окт 22 2012, 11:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 25 2008, 14:06
Сообщения: 313
Откуда: Казахстан, Алматы
Пол: Мужской
Farrukhi написал:
Добрый день.

Как прикрепить договор CV01n в заказ VA01 через ABAP?


Добрый день.

Вот работающий пример для BAPI_DOCUMENT_CHANGE2.
Замечание. Нужен настроенный DMS в части "Определение носителя данных". Иначе БАПИ будет с ошибкой сваливаться.

Code:
REPORT  ZZTEST_VBAP.

PARAMETERS:
    p_n LIKE draw-doknr MEMORY ID CV1
  , p_t LIKE draw-dokar MEMORY ID CV2
  , p_d LIKE draw-doktl MEMORY ID CV4
  , p_v LIKE draw-dokvr MEMORY ID CV3
  , v_n LIKE vbap-vbeln
  , v_p LIKE vbap-posnr
  .

DATA:
    DOCUMENTDATA  TYPE BAPI_DOC_DRAW2
  , DOCUMENTDATAX LIKE  BAPI_DOC_DRAWX2
  , OBJECTLINKS   TYPE STANDARD TABLE OF  BAPI_DOC_DRAD
  , wa_line       TYPE BAPI_DOC_DRAD
  , RETURN        TYPE BAPIRET2
  , p_vbap LIKE vbap
  .


START-OF-SELECTION.

CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
EXPORTING
  DOCUMENTTYPE               = p_t
  DOCUMENTNUMBER             = p_n
  DOCUMENTPART               = p_d
  DOCUMENTVERSION            = p_v
IMPORTING
  DOCUMENTDATA               = DOCUMENTDATA
  .

SELECT SINGLE * INTO p_vbap
  FROM vbap
  WHERE
    vbeln = v_n AND
    posnr = v_p.

IF DOCUMENTDATA IS NOT INITIAL AND p_vbap IS NOT INITIAL.

  wa_line-OBJECTTYPE = 'VBAP'.
  CONCATENATE p_vbap-vbeln p_vbap-posnr INTO wa_line-OBJECTKEY.
  APPEND wa_line TO OBJECTLINKS.

  CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
  EXPORTING
    DOCUMENTTYPE               = DOCUMENTDATA-DOCUMENTTYPE
    DOCUMENTNUMBER             = DOCUMENTDATA-DOCUMENTNUMBER
    DOCUMENTPART               = DOCUMENTDATA-DOCUMENTPART
    DOCUMENTVERSION            = DOCUMENTDATA-DOCUMENTVERSION
    DOCUMENTDATA               = DOCUMENTDATA
    DOCUMENTDATAX              = DOCUMENTDATAX
  IMPORTING
    RETURN                     = RETURN
  TABLES
    OBJECTLINKS                = OBJECTLINKS.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

_________________
Каждый раз при запуске проекта думаешь - ну вот оно СЧАСТЬЕ! А оказывается нет...снова ОПЫТ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как прикрепить договор CV01n в заказ VA01.
СообщениеДобавлено: Пн, окт 22 2012, 16:11 
Начинающий
Начинающий

Зарегистрирован:
Чт, янв 19 2012, 17:36
Сообщения: 5
Откуда: Россия
Пол: Мужской
SDюк написал:
Farrukhi написал:
Добрый день.

Как прикрепить договор CV01n в заказ VA01 через ABAP?


Добрый день.

Вот работающий пример для BAPI_DOCUMENT_CHANGE2.
Замечание. Нужен настроенный DMS в части "Определение носителя данных". Иначе БАПИ будет с ошибкой сваливаться.

Code:
REPORT  ZZTEST_VBAP.

PARAMETERS:
    p_n LIKE draw-doknr MEMORY ID CV1
  , p_t LIKE draw-dokar MEMORY ID CV2
  , p_d LIKE draw-doktl MEMORY ID CV4
  , p_v LIKE draw-dokvr MEMORY ID CV3
  , v_n LIKE vbap-vbeln
  , v_p LIKE vbap-posnr
  .

DATA:
    DOCUMENTDATA  TYPE BAPI_DOC_DRAW2
  , DOCUMENTDATAX LIKE  BAPI_DOC_DRAWX2
  , OBJECTLINKS   TYPE STANDARD TABLE OF  BAPI_DOC_DRAD
  , wa_line       TYPE BAPI_DOC_DRAD
  , RETURN        TYPE BAPIRET2
  , p_vbap LIKE vbap
  .


START-OF-SELECTION.

CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
EXPORTING
  DOCUMENTTYPE               = p_t
  DOCUMENTNUMBER             = p_n
  DOCUMENTPART               = p_d
  DOCUMENTVERSION            = p_v
IMPORTING
  DOCUMENTDATA               = DOCUMENTDATA
  .

SELECT SINGLE * INTO p_vbap
  FROM vbap
  WHERE
    vbeln = v_n AND
    posnr = v_p.

IF DOCUMENTDATA IS NOT INITIAL AND p_vbap IS NOT INITIAL.

  wa_line-OBJECTTYPE = 'VBAP'.
  CONCATENATE p_vbap-vbeln p_vbap-posnr INTO wa_line-OBJECTKEY.
  APPEND wa_line TO OBJECTLINKS.

  CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
  EXPORTING
    DOCUMENTTYPE               = DOCUMENTDATA-DOCUMENTTYPE
    DOCUMENTNUMBER             = DOCUMENTDATA-DOCUMENTNUMBER
    DOCUMENTPART               = DOCUMENTDATA-DOCUMENTPART
    DOCUMENTVERSION            = DOCUMENTDATA-DOCUMENTVERSION
    DOCUMENTDATA               = DOCUMENTDATA
    DOCUMENTDATAX              = DOCUMENTDATAX
  IMPORTING
    RETURN                     = RETURN
  TABLES
    OBJECTLINKS                = OBJECTLINKS.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.



Спасибо большое за оперативный ответ.

Но мне нужно был во время создание заказа автоматически прикрепить договор т.е. до сохранение.
Чтобы пользователь при желании мог просмотреть автоматически прикрепленный договор через меню-дополнительная информация(А)->документы.

После сохранить.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как прикрепить договор CV01n в заказ VA01.
СообщениеДобавлено: Вт, окт 23 2012, 09:16 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 25 2008, 14:06
Сообщения: 313
Откуда: Казахстан, Алматы
Пол: Мужской
Farrukhi написал:
Спасибо большое за оперативный ответ.

Но мне нужно был во время создание заказа автоматически прикрепить договор т.е. до сохранение.
Чтобы пользователь при желании мог просмотреть автоматически прикрепленный договор через меню-дополнительная информация(А)->документы.

После сохранить.


Добрый день.

Дебаггер сказал что прикрепление документов происходит при вызове ФМ DOCUMENT_ASSIGNMENT в инклуде MV45AF0D_DOKUMENTE_PFLEGEN
Как выход можно при создании документа (например в экзите USEREXIT_MOVE_FIELD_TO_VBAK) вызывать свою Z-копию этого ФМ (копию потому что нам нужно будет убрать вызов экрана 0200 и вместо этого воткнуть какой то свой алгоритм выбора документов).
Еще я бы копнул в сторону ФМ DOCUMENT_ASSIGNMENT_DIRECT (эти ФМы в одной группе функций CVOB).

Не совсем понял причем тут "Дополнительные данные А". Подозреваю что хотите цеплять документы к заголовку а не к позициям. Если так то тут можно по разному подойти.
Мы например вешали внешний номер контракта на поле VBKD-BSTKD.

_________________
Каждый раз при запуске проекта думаешь - ну вот оно СЧАСТЬЕ! А оказывается нет...снова ОПЫТ...


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

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


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

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


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

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