Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запуск макроса в SSIS / 23 сообщений из 23, страница 1 из 1
22.10.2015, 14:58
    #39083686
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Всем теплой зимы!

Беда случилась при работе DTS пакета. В ScriptTask запускаю макрос, который копирует шапку на лист с данными. В шапке есть формулы, которые размножаю по листу.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
'выделяем формулы
Range("BM24:CC24").Select
'копируем
Selection.Copy
'выделяем диапазон
Range("BM26", Range("BM26").End(xlDown)).Select
'вставляем формулы
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _     SkipBlanks:=False, Transpose:=False




С недавних пор, в ScriptTask стала возникать ошибка
Код: java
1.
2.
3.
4.
5.
6.
Адресат вызвал исключение.
 в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   в System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   в Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()



Причем, появление ошибки зависит от кол-ва и содержимого данных.

Методом "тыка" нашел, что причина ошибки - формула большого размера. Если ее убрать, то ошибка не возникает.
Формула
=ЕСЛИ(E24=-1;ОКРУГЛ(ЕСЛИ(W24=X24;ЕСЛИ(AO24="ДА";ЕСЛИ(AQ24="ДА";ЕСЛИ(AW24+AX24+AY24+AZ24+BA24+BB24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+AZ24+BA24+BB24);(T24*AG24-Y24)*(AW24+AX24+AY24+AZ24+BA24+BB24)));ЕСЛИ(L24*AL24+AX24+AY24+AZ24+BA24+BB24>0;(Y24-T24*AG24)*(L24*AL24+AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0; (Y24-T24*AG24)*(L24*AL24+AX24+AY24+AZ24+BA24+BB24);(T24*AG24-Y24)*(L24*AL24+AX24+AY24+AZ24+BA24+BB24))));ЕСЛИ(AQ24="ДА";ЕСЛИ(AW24+AX24+AY24+M24*AL24+BA24+BB24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+M24*AL24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+M24*AL24+BA24+BB24);(T24*AG24-Y24)*(AW24+AX24+AY24+M24*AL24+BA24+BB24)));ЕСЛИ(AL24*(L24+M24)+AX24+AY24+BA24+BB24>0;(Y24-T24*AG24)*(AL24*(L24+M24)+AX24+AY24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AL24*(L24+M24)+AX24+AY24+BA24+BB24);(T24*AG24-Y24)*(AL24*(L24+M24)+AX24+AY24+BA24+BB24)))));ЕСЛИ(AO24="да";ЕСЛИ(AZ24+BA24+BB24>0;(Y24-T24*AG24)*(AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AZ24+BA24+BB24);(T24*AG24-Y24)*(AZ24+BA24+BB24)));ЕСЛИ(AL24*M24+BA24+BB24>0;(Y24-T24*AG24)*(AL24*M24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AL24*M24+BA24+BB24);(T24*AG24-Y24)*(AL24*M24+BA24+BB24)))));2);ОКРУГЛ(ЕСЛИ(W24=X24;ЕСЛИ(AO24="ДА";ЕСЛИ(AQ24="ДА";ЕСЛИ(AW24+AX24+AY24+AZ24+BA24+BB24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AW24+AX24+AY24+AZ24+BA24+BB24);(T24*AG24-Y24)*(AW24+AX24+AY24+AZ24+BA24+BB24)));ЕСЛИ(L24*AL24>0;ЕСЛИ(AX24+AY24+AZ24+BA24+BB24>0;(Y24-T24*AG24)*L24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)*L24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24);(Y24-T24*AG24)*L24*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)*L24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+AZ24+BA24+BB24);(Y24-T24*AG24)*L24*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+AZ24+BA24+BB24))));ЕСЛИ(AX24+AY24+AZ24+BA24+BB24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+AZ24+BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+AZ24+BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+AZ24+BA24+BB24))))));ЕСЛИ(AQ24="ДА";ЕСЛИ(M24*AL24>0;ЕСЛИ(AX24+AY24+AW24+BA24+BB24>0;(Y24-T24*AG24)*M24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)*M24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24);(Y24-T24*AG24)*M24*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)*M24*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+AW24+BA24+BB24);(Y24-T24*AG24)*M24*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+AW24+BA24+BB24))));ЕСЛИ(AX24+AY24+AW24+BA24+BB24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+AW24+BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+AW24+BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+AW24+BA24+BB24)))));ЕСЛИ((L24+M24)*AL24>0;ЕСЛИ(AX24+AY24+ BA24+BB24>0;(Y24-T24*AG24)* (L24+M24)*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)* (L24+M24)*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24);(Y24-T24*AG24)* (L24+M24)*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;(Y24-T24*AG24)* (L24+M24)*AL24+ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+ BA24+BB24);(Y24-T24*AG24)*(L24+M24)*AL24+ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+ BA24+BB24))));ЕСЛИ(AX24+AY24+ BA24+BB24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(AX24+AY24+ BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(AX24+AY24+ BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(AX24+AY24+ BA24+BB24)))))));ЕСЛИ(AO24="да";ЕСЛИ(AZ24+BA24+BB24>0;(Y24-T24*AG24)*(AZ24+BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;(Y24-T24*AG24)*(AZ24+BA24+BB24);(T24*AG24- Y24)*(AZ24+BA24+BB24)));ЕСЛИ(M24*AL24>0;ЕСЛИ(BA24+BB24>0;ЕСЛИ(F24>0;(Y24-T24*AG24)*AL24*M24+(Y24-T24*AA24*AB24*AC24)*(BA24+BB24);(Y24-T24*AG24)*(AL24*M24+BA24+BB24));ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AG24)*AL24*M24+(Y24-T24*AA24*AB24*AC24)*(BA24+BB24);(Y24-T24*AG24)*(AL24*M24+BA24+BB24));ЕСЛИ(F24>0;(Y24-T24*AG24)*AL24*M24+(T24*AA24*AB24*AC24- Y24)*(BA24+BB24);(Y24-T24*AG24)*(AL24*M24+BA24+BB24)));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AG24)*AL24*M24+(Y24-T24*AA24*AB24*AC24)*(BA24+BB24);(Y24-T24*AG24)*AL24*M24+ (T24*AG24-Y24)*(BA24+BB24));ЕСЛИ(F24>0;(Y24-T24*AG24)*AL24*M24+(T24*AA24*AB24*AC24- Y24)*(BA24+BB24);(Y24-T24*AG24)*AL24*M24+ (T24*AG24-Y24)*(BA24+BB24)))));ЕСЛИ(BA24+BB24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(BA24+BB24);ЕСЛИ(Y24-T24*AG24>0;ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(Y24-T24*AG24))*(BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(Y24-T24*AG24))*(BA24+BB24));ЕСЛИ(Y24-T24*AA24*AB24*AC24>0;ЕСЛИ(F24>0;(Y24-T24*AA24*AB24*AC24);(T24*AG24-Y24))*(BA24+BB24);ЕСЛИ(F24>0;(T24*AA24*AB24*AC24-Y24);(T24*AG24-Y24))*(BA24+BB24)))))));2))


Кто может расшифровать ошибку. Можно ли более глубже копнуть в проблему?
...
Рейтинг: 0 / 0
22.10.2015, 15:05
    #39083712
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10, что же мешает использовать шаблоны xls или reporting services, к примеру?
...
Рейтинг: 0 / 0
22.10.2015, 15:08
    #39083724
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Владислав Колосовhex10, что же мешает использовать шаблоны xls или reporting services, к примеру?

Или OpenXml
...
Рейтинг: 0 / 0
22.10.2015, 15:09
    #39083728
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Владислав Колосов,

Я и использую шаблон XLS. В нем шапка и формулы. В DTS пакете создается еще один лист, в который выгружаются данные из сервера. Далее шапка вставляется в этот лист, а формулы размножаются по выгруженным строкам. Лист с шапкой удаляется.
...
Рейтинг: 0 / 0
22.10.2015, 15:19
    #39083757
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Однажды наталкивался на способ логирования ScriptTask, но к сожалению сейчас не могу вспомнить, что нужно добавить в скрипт, чтобы более детально изучить ошибку.
Было там что то типа
Код: sql
1.
Err.GetException.ToString()
...
Рейтинг: 0 / 0
27.10.2015, 08:02
    #39087544
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Решил проблему убрав из макроса копирование ячеек с формулами. Вместо этого добавил еще один макрос, пусть клиент сам запускает)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.02.2020, 08:47
    #39926102
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
И снова здравствуйте!)))

После переезда на новый SQL сервер
Microsoft SQL Server 2016 (SP1-GDR) (KB4505219) - 13.0.4259.0 (X64) Jun 15 2019 19:20:12 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2019 Standard 6.3 <X64> (Build 17763: ) (Hypervisor)

сломались DTS пакеты, в которых использовался ScriptTask.

Сломались в плане того, что при запуске пакетов (размещенных в SSIS) через DTExec, пакет зависает на шаге ScriptTask
Пакет при этом имеет версию TargetServerVersion = SQL Server 2016
В ScriptTask версия VB 2015

Если делать upgrade пакета до версии SQL Server 2017 и создавать ScriptTask с версией VB 2017, то пакет завершается без ошибок, но шаг ScriptTask не выполняется !

Кто-нибудь сталкивался с таким?
...
Рейтинг: 0 / 0
13.02.2020, 09:29
    #39926106
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10,

Расшифруйте "Сломались". Например, приведите текст ошибки. Может вам просто библиотеки какие-то надо доставить.
...
Рейтинг: 0 / 0
13.02.2020, 10:03
    #39926124
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
a_voronin,

Сломались => не выполняется ScriptTask
Ошибок не возникает. У пакета Successful (0)
...
Рейтинг: 0 / 0
13.02.2020, 10:23
    #39926135
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10
И снова здравствуйте!)))

После переезда на новый SQL сервер
Microsoft SQL Server 2016 (SP1-GDR) (KB4505219) - 13.0.4259.0 (X64) Jun 15 2019 19:20:12 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2019 Standard 6.3 <X64> (Build 17763: ) (Hypervisor)

сломались DTS пакеты, в которых использовался ScriptTask.

Сломались в плане того, что при запуске пакетов (размещенных в SSIS) через DTExec, пакет зависает на шаге ScriptTask
Пакет при этом имеет версию TargetServerVersion = SQL Server 2016
В ScriptTask версия VB 2015

Если делать upgrade пакета до версии SQL Server 2017 и создавать ScriptTask с версией VB 2017, то пакет завершается без ошибок, но шаг ScriptTask не выполняется !

Кто-нибудь сталкивался с таким?

Запустите в режиме отладки, поставьте точки прерывания в скрипте.
Если отладка невозможна, то сделайте вывод сообщений на каждом этапе.
Найдете где виснет.
Самая частая проблема это дидлок переменных.
...
Рейтинг: 0 / 0
13.02.2020, 13:59
    #39926254
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Починили!

Зависание было из-за заблокированных процессов dtexec на сервере.

ScriptTask заработал после того, как снесли Management Studio 2017 и поставили 2016 версию.
...
Рейтинг: 0 / 0
13.02.2020, 16:08
    #39926322
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10
Починили!

Зависание было из-за заблокированных процессов dtexec на сервере.

ScriptTask заработал после того, как снесли Management Studio 2017 и поставили 2016 версию.
Известная проблема. Если версия MSSQL - 2016 или более ранняя, то для деплоя SSIS-пакетов, содержащих Script Task, надо использовать SSMS исключительно той же версии, что и сам сиквел. Ну т.е. на самом деле ISDeploymentWizard.exe из правильной папки (для 2016 это ...\130\...).

Новая студия, которая 17 - 18+, использует визард из папки 140, который что-то ломает в свойствах скрипт-тасков в процессе деплоя.

Я вроде упоминал об этой проблеме на форуме, но что-то ничего не находится. Вот ссылка на SO с описанием.
...
Рейтинг: 0 / 0
14.02.2020, 09:42
    #39926559
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Ennor Tiegael, спасибо!


hex10
Починили!

Зависание было из-за заблокированных процессов dtexec на сервере.



Починили, да не все:(

Продолжает зависать. Видимо проблема в диалоговом окне Ворда "При последнем открытии документа возникла серьезная ошибка. Вы действительно хотите открыть его?".

Алгоритм проверки:
1. Запуск пакета из CMD - ошибок нет.
2. Запуск пакета из студии - виснет.
3. Убиваю процесс Winword.exe на сервере
4. Запуск пакета из CMD - окно с ошибкой
5. В настройках Ворда включаю файл (Параметры - Надстройки - Управление - Отключенные элементы.)
6. Запуск пакета из CMD - ошибок нет.

вариант 2.

1. Запуск пакета из CMD - ошибок нет.
2. Запуск пакета из студии - виснет.
3. Убиваю процесс Winword.exe на сервере
4. Запуск пакета из CMD - окно с ошибкой
5. В настройках Ворда включаю файл (Параметры - Надстройки - Управление - Отключенные элементы.)
6. Запуск пакета из студии - виснет.

Как-нибудь можно программно запретить это сообщение?
...
Рейтинг: 0 / 0
14.02.2020, 15:52
    #39926765
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10
Ennor Tiegael, спасибо!


hex10
Починили!

Зависание было из-за заблокированных процессов dtexec на сервере.



Починили, да не все:(



Сделал еще такую проверку.

разместил строку запуска пакета в батнике.
в cmd на сервере Батник выполняется без ошибок

При запуске батника из студии через xp_cmdshell, запрос виснет, пока не убьешь процесс winword.exe
...
Рейтинг: 0 / 0
14.02.2020, 16:25
    #39926783
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10,

CMD и xp_cmdshell выполняют разные пользователи.
...
Рейтинг: 0 / 0
15.02.2020, 12:08
    #39926991
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Владислав Колосов,

Добавил команду WHOAMI /USER в батник
Результат - пользователь такой же, как при запуске CMD

+ в свойствах Server Proxy Account указан этот же пользователь
...
Рейтинг: 0 / 0
15.02.2020, 15:32
    #39927015
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10,

ну тогда не знаю. У меня были проблемы с прямым выполнением опубликованного пакета из-за проблем безопасности, но через джоб пакет отрабатывал прекрасно.
...
Рейтинг: 0 / 0
17.02.2020, 13:21
    #39927441
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Продолжает зависать. Видимо проблема в диалоговом окне Ворда "При последнем открытии документа возникла серьезная ошибка. Вы действительно хотите открыть его?".


если виснет в VS
то надо сделать как-то чтобы не висло
раз проблема то воспроизводится - ну так и решайте ее по частям
или делая новый пакет или убирая куски из старого - чтобы опрделить где виснет.
ну а если не поможет - может как то вынсти кусок из SSIS пакета - как запуска cmd отдельным шагом ?
...
Рейтинг: 0 / 0
17.02.2020, 15:59
    #39927552
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Гулин Федор,

нашел где виснет.
Виснет при открытии файла.
Нашел в системном журнале Винды такое:
Microsoft Word
При последней попытке открыть файл "file.dot" произошла серьезная ошибка. Вы действительно хотите открыть его?
P1: 700164
P2: 15.0.4569.1504
P3: ajeusP4:




При этом захожу в Ворд: Файл - Параметры - Надстройки - Управление - Отключенные объекты
и там пусто...
...
Рейтинг: 0 / 0
18.02.2020, 08:30
    #39927755
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10

Виснет при открытии файла.


Создал новый пакет. В нем просто открыть/закрыть файл Шаблон Ворд.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Public Sub Main()
        Dim wObj As Word.Application
        Dim oDoc As Word.Document

        wObj = CType(CreateObject("Word.Application"), Word.Application)
        wObj.Application.DisplayAlerts = False
        oDoc = wObj.Documents.Open("c:\file.dot")
        oDoc.SaveAs()
        wObj.Application.DisplayAlerts = True
        wObj.Quit()
        wObj = Nothing

        Dts.TaskResult = ScriptResults.Success
    End Sub



При запуске в VS локально, пакет отрабатывает без ошибок.
При запуске на сервере через CMD, пакет отрабатывает без ошибок.

При запуске из SSMS через xp_cmdshell, запрос зависает. При этом на сервере видно, что файл остается открытым.
...
Рейтинг: 0 / 0
18.02.2020, 15:37
    #39928034
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
hex10
Виснет при открытии файла.


Добавил создание текстового файла после открытия Ворда.

Dim fs As FileStream = File.Create(path)
fs.Close()

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Public Sub Main()
        Dim wObj As Word.Application
        Dim oDoc As Word.Document
        Dim path As String = "c:\end.txt"
        wObj = CType(CreateObject("Word.Application"), Word.Application)
        wObj.Application.DisplayAlerts = False
        oDoc = wObj.Documents.Open(Dts.Variables("file").Value)
        Dim fs As FileStream = File.Create(path)
        fs.Close()
        oDoc.Save()
        wObj.Application.DisplayAlerts = True
        wObj.Quit()
        wObj = Nothing
        Dts.TaskResult = ScriptResults.Success
    End Sub



При запуске из CMD видно, что Ворд открывается/закрывается (мелькает создание системного файла), затем появляется текстовый файл.
При запуске из SSMS видно, что Ворд открывается/закрывается и... дальше ничего не происходит. Запрос при этом продолжает висеть пока не убьешь процесс winword.exe
...
Рейтинг: 0 / 0
26.02.2020, 08:08
    #39930882
hex10
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
Сделал! заработало

В свойствах DCOM , Вкладка - Удостоверение
указал пользователя, по которым запускается SQL сервер.
...
Рейтинг: 0 / 0
26.02.2020, 08:33
    #39930888
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса в SSIS
При работе с офисом из под службы нужно создать каталоги
C:\Windows\System32\config\systemprofile\Desktop для x86
C:\Windows\SysWOW64\config\systemprofile\Desktop для x64
Automating Office via Windows Service on Server 2008
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запуск макроса в SSIS / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]