How to: установщик Analysis

Полезные материалы

Статьи:

Справочники

Ноты:

Зачем нужен свой установщик и как он связан с 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *