Текущее время: Вт, апр 16 2024, 20:14

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


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

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


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

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