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

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


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

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


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

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