<?xml version="1.0" encoding="UTF-8"?>
<SapSetup Context="Server" WkstaDb="SapBwCommonWksta.xml">
	<Product CmdLine="BW_COMMON" Guid="{40F73A4A-DECE-407f-BC56-86C236CE71D4}" Name="BW Common" ProdVersion="4000" Visible="FALSE" WkstaDb="SapBwCommonWksta.xml"/>
	<Component Guid="{9659D3C1-3C75-4230-BB86-DA170E4C6381}" Min_Compliant_Version="4000" Name="$SAP BEX XLA" Size="3032" Version="4001">
		<Action Condition="%WinType%=[Windows Vista,Windows 7,Windows Server 2008,Windows Server 2008 R2]" RunAt="UnInstall" Type="Script">
			<Src><![CDATA[
option explicit
				dim szSystemDrive, szProgramDataFolder, szProgramDataFolderResolved
				dim szCommonPrograms, szCommonProgramsResolved, szStartMenuSubFolder
				szSystemDrive = NwEngine.Variables.ResolveString("%SystemDrive%")
				' NwEngine.Context.Log.Write "szSystemDrive = " & Chr(34) & szSystemDrive & Chr(34)
				szProgramDataFolder = NwEngine.Shell.GetRegValue("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ProgramData")
				' NwEngine.Context.Log.Write "szProgramDataFolder = " & Chr(34) & szProgramDataFolder & Chr(34)
				szProgramDataFolderResolved = Replace( szProgramDataFolder, "%%%SystemDrive%%%", szSystemDrive )
				' NwEngine.Context.Log.Write "szProgramDataFolderResolved = " & Chr(34) & szProgramDataFolderResolved & Chr(34)
				szCommonPrograms = NwEngine.Shell.GetRegValue( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common Programs" )
				szCommonProgramsResolved = Replace( szCommonPrograms, "%%%ProgramData%%%", szProgramDataFolderResolved )
				NwEngine.Context.Log.Write "Start-menu common programs = " & Chr(34) & szCommonProgramsResolved & Chr(34)
				szStartMenuSubFolder = szCommonProgramsResolved & "\Business Explorer"
				NwEngine.Context.Log.Write "Running extra clean-up on Vista: " & Chr(34) & szStartMenuSubFolder & Chr(34)
				If NwEngine.Shell.DirectoryExist( szStartMenuSubFolder ) Then
					NwEngine.Shell.DeleteDirectory szStartMenuSubFolder
				End If
			]]></Src>
		</Action>
		<!-- This registry key points to the location of files used by bw350 and bi710: "sapbex.xla", "sapbex0.xla",... -->
		<Action Dst="HKCR\SAP.BusinessExplorer.Analyzer\path" Type="Registry">
			<RegValue>%CommonProgramFiles%\SAP Shared\BW</RegValue>
		</Action>
		<Action Dst="%CommonProgramFiles%\SAP Shared\BW" Type="File">
			<Src>%SAPsrcDir%\Bw\sapbex.xla</Src>
			<Src>%SAPsrcDir%\Bw\sapbex0.xla</Src>
			<Src>%SAPsrcDir%\Bw\sapbexs.xla</Src>
			<Src>%SAPsrcDir%\Bw\sapbexc.xla</Src>
		</Action>
		<!-- force copy .xla on update and set read-only flag! -->
		<Action RunAt="Install" Type="Script">
			<Src><![CDATA[
Dim szSrcXLA(4)
			Dim szDstXLA(4)
			szSrcXLA(1) = NWEngine.Variables.ResolveString("%SAPsrcDir%\BW\sapbex.xla")
			szDstXLA(1) = NWEngine.Variables.ResolveString("%CommonProgramFiles%\SAP Shared\BW\sapbex.xla")
			szSrcXLA(2) = NWEngine.Variables.ResolveString("%SAPsrcDir%\BW\sapbex0.xla")
			szDstXLA(2) = NWEngine.Variables.ResolveString("%CommonProgramFiles%\SAP Shared\BW\sapbex0.xla")
			szSrcXLA(3) = NWEngine.Variables.ResolveString("%SAPsrcDir%\BW\sapbexs.xla")
			szDstXLA(3) = NWEngine.Variables.ResolveString("%CommonProgramFiles%\SAP Shared\BW\sapbexs.xla")
			szSrcXLA(4) = NWEngine.Variables.ResolveString("%SAPsrcDir%\BW\sapbexc.xla")
			szDstXLA(4) = NWEngine.Variables.ResolveString("%CommonProgramFiles%\SAP Shared\BW\sapbexc.xla")
			For index = 1 To 4
				NwEngine.Context.Log.Write "Script action: Forcing copy step of " & szSrcXLA(index)
				If NwEngine.Shell.FileExist( szSrcXLA(index) ) Then
					If Not NwEngine.Shell.CopyFileEx (szSrcXLA(index), szDstXLA(index), vbTrue) Then
						NwEngine.Context.Log.WriteWarning "Script Action: Forcing copy step failed!"
					End If
					NwEngine.Context.Log.Write "Script Action: Trying to set Read-Only attribute for " & szDstXLA(index)
					Set fso = CreateObject("Scripting.FileSystemObject")
					If Not fso Is Nothing Then
						Set fsoXLA = fso.GetFile( szDstXLA(index) )
						If Not fsoXLA Is Nothing Then
							fsoXLA.attributes = fsoXLA.attributes + 1
							NwEngine.Context.Log.Write "Script Action: Read-Only Flag is set."
						Else
							NwEngine.Context.Log.WriteWarning "Script Action: fso.GetFile() failed."
						End If
					Else
						NwEngine.Context.Log.WriteWarning "Script Action: Scripting.FileSystemObject cannot be created."
					End If
				End If
			Next
			]]></Src>
		</Action>
	</Component>
	<Component Guid="{E92A7287-4EA3-43e3-85D5-66EC32D338F4}" Min_Compliant_Version="4000" Name="$OLE Files" Size="8327" Version="4000">
		<Action Dst="%CommonProgramFiles%\SAP Shared\BW\OleOlap" Type="File">
			<Src>%SapSrcDir%\BW\oleolap\mdxpars.dll</Src>
			<Src>%SapSrcDir%\BW\oleolap\mdrmdlg.dll</Src>
			<Src>%SapSrcDir%\BW\oleolap\saprfc.ini</Src>
			<Src>%SapSrcDir%\BW\oleolap\librfc32u.dll</Src>
			<Src>%SapSrcDir%\BW\oleolap\mdrmsap.dll</Src>
			<Src>%SapSrcDir%\BW\oleolap\scerrlkp.dll</Src>
		</Action>
	</Component>
</SapSetup>
