How to: установщик Analysis
Полезные материалы
Статьи:
- BO Analysis Настройки и решение проблемы подключения
- Configuring the Analysis Add-In Launcher
- Known issues with Analysis Office
- SAP GUI Installation Server
- SAPGUI Installation Server Part 5 – Scripting
Справочники
Ноты:
- 1929396 – Silent Install Analysis Office
- 2031598 – Launcher does not create new Excel 2013 process
- 2140349 – How to set parameters of the launcher executable
- 2431911 – How to create a custom package of Analysis Office
- 2440829 – Analysis for Office Launcher behavior
- 2561462 – Some variable like %ProgramData% does not work in script in installation server
- 2658872 – Analysis Office: How to ensure secure connections in Analysis Plugin
- 2780964 – How to force Excel to open in a new instance by default without Analysis for Office Add-in
- 3023211 – Getting rid of pop up for Insecure Connections after setting parameter AllowInsecureConnections to “yes”
Зачем нужен свой установщик и как он связан с SAP GUI Installation Server
После установки клиентского ПО, как правило, на рабочей машине пользователя необходимо выполнить большое количество настроек. Например, прописать сервера в saplogon.ini, добавить сервера в hosts и т.д. Это может быть затруднительно, когда нужно настроить несколько сотен, а иногда и тысяч машин.
Для таких ситуаций SAP предлагает автоматизировать ручные действия с помощью специальной программы SAP Installation Server. SAP Installation Server позволяет создать установщик (.exe файл, который вы запускаете что бы установить программу), который выполнит определенные настройки на рабочей машине пользователя (поменяет значения в реестре, заменит строки в .config файле и тд) перед или после того, как установит основное ПО.
В данной статье мы создадим свой собственный установщик Analysis (.exe файл), который не только установит SAP Analysis for Office, но и внесет необходимые настройки в реестре и конфигурационные файлы для более удобной работы с программой.
Какие настройки Analysis нам нужны и зачем
При работе с SAP Analysis пользователи, как правило, сталкиваются со следующими проблемами:
- Analysis запускается во всех Excel файлах, даже в тех, где в нем нет необходимости;
- Analysis запускается в одном процессе с Excel;
- При запуске Analysis возникает предупреждение SNC.
Проблемы выше приводят к тому, что:
- Рабочая станция пользователя тратит больше ресурсов на работу с Excel;
- При зависании Analysis приходится через диспетчер задач убивать все открытые Excel файлы, что, зачастую, воспринимается пользователем как личная трагедия;
- Каждый раз приходится закрывать предупреждения, что быстро начинает раздражать.
Для того, что бы решить проблемы выше необходимо:
- Нота 2780964 – установить параметр Loading Behaviour запуска Analysis на 0 (по умолчанию 3), что позволит не запускать Analysis при запуске Excel, а запускать только при открытии .sapaox или при запуске ярлыка BiOfficeLauncher;
- Нота 2031598 – запускать Analysis с параметром /CreateProcess для создания отдельного экземпляра процесса, что даст возможность выборочно через диспетчер задач завершить процесс Analysis не трогая при этом остальные Excel процессы;
- Нота 3023211 и 2658872 – проставить False параметру EnableWarningForFailedSnc и UseLocalSncInfoForRemoteConnections, что позволит не показывать предупреждения о том, что соединение небезопасно
Устанавливаем SAP Installation Server
Для установки SAP Installation Server необходимо запустить файл
Добавляем Analysis и создаем пакет
Скачиваем 2 файла:
- AOFFICE28SP14_0-70004973
- AOFFICE28SP14_0-70004974
Кладем их в папку SAP Installation Server (я создал для них папку Distr).

И распаковываем

Открываем папку Setup и запускаем файл NwSapSetupAdmin.exe. Откроется Product Import Wizard, в котором необходимо выбрать папку, в которую мы распаковали стандартный установщик Analysis (файл AOFFICE28SP14_0-70004974.exe)

После того, как импорт выполнен успешно, нажмите “New Package“

Выберите только те плагины, которые будут установлены в рамках создаваемого нами установщика

Введем название SAP Analysis for Office x32.

Появится окно редактирования нашего установщика. В нем нам нужны окна On Installation End и On Update End. Этот код будет выполнять после того, как установщик завершит установку SAP Analysis for Office.

Устанавливаем Loading Behaviour = 0
Согласно ноте 2780964 – How to force Excel to open in a new instance by default without Analysis for Office Add-in для Loading Behaviour = 0 нам необходимо установить параметр реестра ниже на 0:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Excel\AddIns\SapExcelAddIn\LoadBehaviour
Для того, что бы выполнить эту настройку, необходимо в On Installation End и в On Update End добавить следующий код:
' Устанавливаем /lb 0 NwEngine.Context.Log.Write "Устанавливаем /lb 0" strRegUpdate = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Excel\AddIns\SapExcelAddIn\LoadBehavior" NwEngine.Shell.SetRegValue strRegUpdate, "REG_DWORD", 0
Добавляем /CreateProcess
Согласно ноте 2031598 для запуска Analysis в отдельном экземпляре процесса нам необходимо добавить /CreateProcess к значению ключа реестра:
HKEY_CLASSES_ROOT\SAP.AO.Xl.Launch\shell\Open\command\
Для того, что бы выполнить эту настройку, необходимо в On Installation End и в On Update End добавить следующий код:
' Добавляем /CreateProcess NwEngine.Context.Log.Write "Добавляем /CreateProcess" strRegUpdate = "HKEY_CLASSES_ROOT\SAP.AO.Xl.Launch\shell\Open\command\" strRegValue = NWEngine.Shell.GetRegValue(strRegUpdate) + " /CreateProcess" NwEngine.Shell.SetRegValue strRegUpdate, "REG_SZ", strRegValue
Устанавливаем параметры EnableWarningForFailedSnc и UseLocalSncInfoForRemoteConnections на False
Согласно нотам 3023211 и 2658872 нам необходимо в файле %ProgramData%\SAP\Cof\Ao_app.config заменить параметры UseLocalSncInfoForRemoteConnections и EnableWarningForFailedSnс на False.
<!--default of 'UseLocalSncInfoForRemoteConnections': value="True" --> <UseLocalSncInfoForRemoteConnections value="False" /> <!--default of 'EnableWarningForFailedSnc': value="True" --> <EnableWarningForFailedSnc value="False" />
Для того, что бы выполнить эту настройку, необходимо в On Installation End и в On Update End добавить следующий код:
' Меняем настройки в %ALLUSERSPROFILE%\SAP\Cof\Ao_app.config NwEngine.Context.Log.Write "Меняем настройки в %ALLUSERSPROFILE%\SAP\Cof\Ao_app.config" strSalFile = NwEngine.Variables.ResolveString( "%ALLUSERSPROFILE%\SAP\Cof\Ao_app.config" ) Set objTextFile = CreateObject("NwSapSetupATLCommon.TextFileParser") If objTextFile.Parse( strSalFile ) Then strOldLine = " <EnableWarningForFailedSnc />" strNewLine = " <EnableWarningForFailedSnc value=" + Chr(34) + "False" + Chr(34) + " />" objTextFile.ReplaceLineEx strOldLine, strNewLine strOldLine = " <EnableWarningForFailedSnc value=" + Chr(34) + "True" + Chr(34) + " />" strNewLine = " <EnableWarningForFailedSnc value=" + Chr(34) + "False" + Chr(34) + " />" objTextFile.ReplaceLineEx strOldLine, strNewLine strOldLine = " <UseLocalSncInfoForRemoteConnections />" strNewLine = " <UseLocalSncInfoForRemoteConnections value=" + Chr(34) + "False" + Chr(34) + " />" objTextFile.ReplaceLineEx strOldLine, strNewLine strOldLine = " <UseLocalSncInfoForRemoteConnections value=" + Chr(34) + "True" + Chr(34) + " />" strNewLine = " <UseLocalSncInfoForRemoteConnections value=" + Chr(34) + "False" + Chr(34) + " />" objTextFile.ReplaceLineEx strOldLine, strNewLine objTextFile.Save( strSalFile ) Else NwEngine.Context.Log.WriteWarning "Event: Could not open the file " & Chr(34) & strSalFile & Chr(34) End If
Устанавливаем параметры ForceRefreshConnectionInfo = True и AllowInsecureConnections = False
Создадим файл Ao_user_roaming.config со следующим содержимым
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <configuration> <ForceRefreshConnectionInfo value="true" /> <AllowInsecureConnections value="Yes" /> </configuration>
Кладем его в папку SAP Installation Server\CustomerFiles – обязательно название CustomerFiles, тк оно привязано к внутренней переменной Installation Server %SapSrcDir%.
Теперь добавляем код в On Installation End и в On Update End, который будет копировать этот файл в папку %AppData%\SAP\Cof\
'Копируем Ao_user_roaming.config NwEngine.Context.Log.Write "Копируем Ao_user_roaming.config" strSrcFile = NwEngine.Variables.ResolveString("%SapSrcDir%\CustomerFiles\Ao_user_roaming.config") strDstFile = "%AppData%\SAP\Cof\Ao_user_roaming.config" NwEngine.Shell.CopyFile strSrcFile, strDstFile
Cоздаем сборку
Переходим в SAP Installation Server Administration и нажимаем Compress to Single File Installer.

Поздравляю, мы сделали наш первый установщик! Теперь можем установить его и убедиться, что он работает корректно.
Логи можно посмотреть в файле %ProgramFiles%/SAP/SapSetup/LOGs