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

2143
3

Часто разработчики для динамической модификации отчетной формы(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

Здесь содержимое переменной lv_module и есть код VBScript.

Не являясь

Ограниченный доступ

Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.

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

Константин Кульвинов (Рейтинг: 26) 17:34, 23 мая 2014

Код, приведенный на рис.2, может считаться кодом VBScript с натяжечкой. Константы конкретного приложения, в данном случае Word'а типа wdAlertsNone не работают в скрипте и их надо прописывать конкретными числовыми значениями. Ну, или где-то раньше в коде самому явно определить, что wdAlertsNone = 0.
18:19, 23 мая 2014
P.S. А вообще в целом тема хороша, читателям всячески рекомендую. Сам дружу с ней уже не первый год, вот здесь у меня есть законченный примерчик: sapboard.ru/forum/viewtopic.php
22:11, 26 мая 2014

Павел Телепко (Рейтинг: 994)

Согласен ;)

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»