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

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


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

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


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

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