Текущее время: Пт, апр 19 2024, 04:01

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Правильное использование ФМ bapi_document_change2
СообщениеДобавлено: Вт, мар 14 2017, 08:24 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
Добрый день, коллеги.

Хотел поинтересоваться как правильно надо использовать ФМ bapi_document_change2 для того, чтобы изменить файл, прикреплённый к дмс док-ту? В гугле есть несколько примеров использования, но так, чтобы привязанный файл изменяли - не нашёл такого. Зато, кроме всего прочего, мне попалась нота с описанием bapi для dms документов (правда ответа на свой вопрос я там тоже не нашёл), но может кому-нибудь пригодится: номер 766277. Просто, насколько я знаю, в сап файлы физически копируются на контент сервер и, чтобы изменить привязку дмс к файлу ведь недостаточно просто сменить ссылку на файл? Желательно ведь ещё и старый файл удалить из контент сервера. Буду признателен, если кто-нибудь покажет рабочий пример.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Правильное использование ФМ bapi_document_change2
СообщениеДобавлено: Чт, мар 16 2017, 16:54 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
Возможно я не совсем понятно выразился. В общем, нужно, чтобы файл не добавлялся в дмс, а изменялся на новый при загрузке. Есть следующий код:

Code:
          CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
            EXPORTING
              documenttype    = ls_draw-dokar
              documentnumber  = ls_draw-doknr
              documentpart    = ls_draw-doktl
              documentversion = ls_draw-dokvr
              getdocfiles     = 'X'
            IMPORTING
              documentdata    = ls_documentdata
              return          = ls_return
            TABLES
              documentfiles   = lt_files.


Мы получили информацию о дмс документе в системе. Далее мы смотрим таблицу lt_files (т.к. она представлена строками 1024 чар, анализ выглядит криво, но вроде работает). Получаем информацию о контент сервере и приложении, открывающем файл:

Code:
          LOOP AT lt_files INTO wa_fileinfo.
            IF wa_fileinfo+34(1) EQ 1.
              l_storage = wa_fileinfo+49(10).
              CONDENSE l_storage.
              i_appl = wa_fileinfo+59(3).
              CONDENSE i_appl.
            ENDIF.
          ENDLOOP.


Далее в wa_files-docfile попадает имя нового файла, который должен заменить существующий. wa_files-originaltype, если я правильно понимаю, должен быть всегда равен 1, чтобы файл перезаписывался.

Code:
          wa_files-docfile = <it_i>-i_file.
          wa_files-originaltype   = n.
          wa_files-storagecategory = l_storage.
          wa_files-active_version    = 'X'.
          wa_files-wsapplication = i_appl.
          APPEND wa_files TO lt_file.


И в конце вызываем BAPI_DOCUMENT_CHANGE2, поставив галочку на ls_documentdatax-savedocfile1.

Code:
          ls_documentdatax-savedocfile1 = 'X'.
          CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
            EXPORTING
              documenttype    = ls_draw-dokar
              documentnumber  = ls_draw-doknr
              documentpart    = ls_draw-doktl
              documentversion = ls_draw-dokvr
              documentdata    = ls_documentdata
              documentdatax   = ls_documentdatax
            IMPORTING
              return          = ls_return
            TABLES
              documentfiles   = lt_file.


После всех этих манипуляций ошибок нет, но и файл не затирается, а добавляется новый. Подскажите, пожалуйста, как затереть старый файл и добавить новый.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Правильное использование ФМ bapi_document_change2
СообщениеДобавлено: Пт, мар 17 2017, 06:34 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2011, 10:50
Сообщения: 197
выставите параметр DELETEVALUE в бапишке


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

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


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

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


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

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