Текущее время: Чт, апр 25 2024, 01:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Удаление оригинала к документу DMS с помощью BAPI
СообщениеДобавлено: Чт, июн 28 2007, 11:55 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 28 2007, 11:24
Сообщения: 12
Откуда: Moscow
BAPI, DMS, оригиналы документов

Добрый день.

Возникла задача удалить оригинал из карточки DMS, не прибегая к транзакции ведения карточки (CV02N), прямо из программы.

Есть ли предусмотренный для этих целей механизм?

Попробовал вот что:

Code:

     CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
          EXPORTING ... "вид документа, номер, версия, поддокумент
          IMPORTING ...
          TABLES  documentfiles = lt_documentfiles .

     READ TABLE lt_documentfiles
                INTO ls_documentfiles "оригинал, который надо удалить
               WITH KEY ...
     ls_documentfiles-deletevalue = abap_true.
     MODIFY lt_documentfiles FROM ls_documentfiles INDEX sy-tabix.

     CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
         EXPORTING ... "вид документа, номер, версия, поддокумент
         IMPORTING return = ls_bapiret
         TABLES documentfiles = lt_documentfiles .

     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
         EXPORTING
            wait = abap_true
         IMPORTING
            return = ls_bapiret .
...


Не спасло. Прошу помочь :)

P.S. во IMPORT-параметрах ФМ 'BAPI_DOCUMENT_CHANGE2' есть такая структура, как DOCUMENTDATAX, в котором по идее отмечаются разделы карточки, которые подлежат изменению. Может, там отметить какой-нибудь? Только какой?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление оригинала к документу DMS с помощью BAPI
СообщениеДобавлено: Чт, июн 28 2007, 12:53 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Code:

     CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
         EXPORTING ... "вид документа, номер, версия, поддокумент
         IMPORTING return = ls_bapiret
         TABLES documentfiles = lt_documentfiles .

...


Что на выходе содержится в ls_bapiret?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 13:18 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 28 2007, 11:24
Сообщения: 12
Откуда: Moscow
ls_bapiret после вызова BAPI_DOCUMENT_CHANGE2:

Code:
  ls_bapiret-type       = 'E'
  ls_bapiret-id         = '26'
  ls_bapiret-number     = '252'
  ls_bapiret-message    = 'Оригинал TXT уже проверен на входе и сохранен'
  ls_bapiret-message_v1 = 'TXT'
  ls_bapiret-message_v2 = ''
  ls_bapiret-message_v3 = ''
  ls_bapiret-message_v4 = ''



Прошу прощения, забыл упомянуть важную деталь: оригиналы хранятся в KPRO


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление оригинала к документу DMS с помощью BAPI
СообщениеДобавлено: Чт, июн 28 2007, 14:03 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Code:

     CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
         EXPORTING ... "вид документа, номер, версия, поддокумент
         IMPORTING return = ls_bapiret
         TABLES documentfiles = lt_documentfiles .

...


Попробуйте lt_documentfiles передавать не целиком, а только модифицированные строки.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 14:13 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 28 2007, 11:24
Сообщения: 12
Откуда: Moscow
Уже попробовал :)

Code:
 
READ TABLE lt_documentfiles INTO gs_documentfiles
        WITH KEY originaltype = ld_dms_appnr
                     application_id = ls_tree_data-lo_objid.
  CHECK sy-subrc = 0.

* ------ TEST
  REFRESH lt_documentfiles.
  gs_documentfiles-checkedin = space.
  gs_documentfiles-active_version = space.
  gs_documentfiles-deletevalue = abap_true.
*  MODIFY lt_documentfiles FROM gs_documentfiles INDEX sy-tabix.
  APPEND gs_documentfiles TO lt_documentfiles.

  ls_documentdatax2-laboratory = 'X'.

  CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
    EXPORTING
      documenttype    = ls_tree_data-dokar
      documentnumber  = ls_tree_data-doknr
      documentpart    = ls_tree_data-doktl
      documentversion = ls_tree_data-dokvr
      documentdata    = ls_documentdata2
      documentdatax   = ls_documentdatax2
    IMPORTING
      return          = ls_return
    TABLES
      documentfiles   = lt_documentfiles.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait   = 'X'
    IMPORTING
      return = ls_return.
* ----------------------------- TEST


Одно смущает: в таблице хранилища DMS_DOC2LOIO остаются записи, соответствующие удалённым оригиналам - однако сами оригиналы в ведении карточки DMS (cv03n) не отображаются. Нормально ли это?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 29 2007, 17:13 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 28 2007, 11:24
Сообщения: 12
Откуда: Moscow
Я проверил, оказалось, что при удалении оригинала из карточки через cv02n запись из таблицы удаляется напрочь.

При повторном тестировании описанного кода - всё получилось. Ура.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление оригинала к документу DMS с помощью BAPI
СообщениеДобавлено: Ср, окт 30 2019, 13:37 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 30 2019, 13:29
Сообщения: 2
Здравствуйте. Пользователь удалил оригинал в транзакции CV02N. Cам оригинал в ведении карточки DMS (cv03n) теперь не отображается. Но в таблице DMS_DOC2LOIO осталась запись. В истории изменений к документу так же нет никакой информации, что оригинал был удален. При попытке создать новый оригинал выдает сообщение "Ошибка при создании атрибутов оригинала для ". Может кто сталкивался с такой проблемой?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Удаление оригинала к документу DMS с помощью BAPI
СообщениеДобавлено: Чт, окт 31 2019, 10:51 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 30 2019, 13:29
Сообщения: 2
Нашла решение проблемы, кому интересно вот ссылка https://wiki.scn.sap.com/wiki/display/P ... ribute+for


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

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


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

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


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

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