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

Беда случилась при работе 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
Запуск макроса в SSIS
    #39083712
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hex10, что же мешает использовать шаблоны xls или reporting services, к примеру?
...
Рейтинг: 0 / 0
Запуск макроса в SSIS
    #39083724
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовhex10, что же мешает использовать шаблоны xls или reporting services, к примеру?

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

Я и использую шаблон XLS. В нем шапка и формулы. В DTS пакете создается еще один лист, в который выгружаются данные из сервера. Далее шапка вставляется в этот лист, а формулы размножаются по выгруженным строкам. Лист с шапкой удаляется.
...
Рейтинг: 0 / 0
Запуск макроса в SSIS
    #39083757
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Однажды наталкивался на способ логирования ScriptTask, но к сожалению сейчас не могу вспомнить, что нужно добавить в скрипт, чтобы более детально изучить ошибку.
Было там что то типа
Код: sql
1.
Err.GetException.ToString()
...
Рейтинг: 0 / 0
Запуск макроса в SSIS
    #39087544
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил проблему убрав из макроса копирование ячеек с формулами. Вместо этого добавил еще один макрос, пусть клиент сам запускает)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Запуск макроса в SSIS
    #39926102
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
Запуск макроса в SSIS
    #39926106
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hex10,

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

Сломались => не выполняется ScriptTask
Ошибок не возникает. У пакета Successful (0)
...
Рейтинг: 0 / 0
Запуск макроса в SSIS
    #39926135
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Запуск макроса в SSIS
    #39926254
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Починили!

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

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

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

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

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

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


hex10
Починили!

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



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



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

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

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

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

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

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

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


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

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




При этом захожу в Ворд: Файл - Параметры - Надстройки - Управление - Отключенные объекты
и там пусто...
...
Рейтинг: 0 / 0
Запуск макроса в SSIS
    #39927755
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Запуск макроса в SSIS
    #39928034
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Запуск макроса в SSIS
    #39930882
hex10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал! заработало

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


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