Меню

Взаимодействие с документами MS Office с помощью VBScript из Abap

В статье даются рекомендации по обеспечению взаимодействия с документами MS Office с помощью VBScript из Abap

Часто разработчики для динамической модификации отчетной формы(Word, Excel) «вживляют» макросы и выкладывают их в репозиторий бизнес-документов(например OAER, SMW0).

Если же возникает задача, например, по наложению пароля на документы, загружаемые в систему, одним из вариантов решения является использование технологии связывания и внедрения объектов в другие объекты - OLE(Object Linking and Embedding).

Для решения задачи по наложению пароля я рекомендую выполнить в среде Abap код, написанный на скриптовом языке программирования VBScript , который интерпретируется компонентом Windows Script Host. Этот компонент широко используется при создании скриптов в операционных  системах семейства Microsoft Windows.

Для решения задачи мне нужно:

1)      Определить место для хранения кода VBScript

В самом простом варианте это достигается, например, созданием таблицы со структурой вроде такой:

Поле

Ключ

Описание

MANDT

X

Мандант

ROW_ID

X

Номер строки

VALUE

 

Значение строки

2)      Установить связь между Abap и VBScript

Взаимосвязь с VBScript можно получить, используя для инициализации следующий Abap код:

Рис.1 Инициализация взаимосвязи с VBScript

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев3

Комментарий от  

Константин Кульвинов

  |  23 мая 2014, 17:34

Код, приведенный на рис.2, может считаться кодом VBScript с натяжечкой. Константы конкретного приложения, в данном случае Word'а типа wdAlertsNone не работают в скрипте и их надо прописывать конкретными числовыми значениями. Ну, или где-то раньше в коде самому явно определить, что wdAlertsNone = 0.

Комментарий от  

Константин Кульвинов

  |  23 мая 2014, 18:19

Код, приведенный на рис.2, может считаться кодом VBScript с натяжечкой. Константы конкретного приложения, в данном случае Word'а типа wdAlertsNone не работают в скрипте и их надо прописывать конкретными числовыми значениями. Ну, или где-то раньше в коде самому явно определить, что wdAlertsNone = 0.

P.S. А вообще в целом тема хороша, читателям всячески рекомендую. Сам дружу с ней уже не первый год, вот здесь у меня есть законченный примерчик: sapboard.ru/forum/viewtopic.php

Комментарий от  

Павел Телепко

  |  26 мая 2014, 22:11

P.S. А вообще в целом тема хороша, читателям всячески рекомендую. Сам дружу с ней уже не первый год, вот здесь у меня есть законченный примерчик: sapboard.ru/forum/viewtopic.php

Согласен ;)