BSI TaxFactory 10 Installation/Upgrade for SQL Server
By now most US Payroll customers have either upgraded their TaxFactory installations from 9.0 to 10.0, or (like me) are scrambling to do so before the November 30 deadline. Or, perhaps you’re installing TaxFactory for the first time and (like me) finding the documentation a bewildering array of conflicting and difficult-to-collate information. Take heart! This blog is for you.
Below I will detail the steps required, in order (something the documentation doesn’t seem to manage well), to get a new or upgraded TaxFactory 10 system running and connected to SAP Payroll. The scenario here is a standalone TaxFactory system, using Microsoft SQL Server as its database. However, in general the information should apply to other database platforms with minor adaptation. TaxFactory can also be installed on your SAP ERP system itself, sharing the same DBMS, and while that does simplify a few things, it is not my recommendation.
Due to the length of this topic (apologies!), it has been necessary to split the blog into four parts. Part 1 details the required preparations: gathering materials, installing and configuring SQL Server, and installing SAP Gateway. Part 2 continues with creating and loading the database and installing the TaxFactory server itself. Part 3 details the installation of the TaxFactory client and loading of the Data Set. Part 4 will discuss the required SAP-side configuration.
You will need to download or acquire a few items for the installation, so it is best to have them all ready to go. You’ll need approximately 10-11 GB to hold all the source files.
- DBMS and any service packs, cumulative updates, or hotfixes
- Here we are using Microsoft SQL Server 2012, with Service Pack 2 and Cumulative Update 2.
- When in doubt about which is the latest SP and CU for SQL Server, I find it helpful to refer to Microsoft SQL Server Version List.
- Microsoft JDBC Driver 4.0 for SQL Server (free download)
- Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update
- You may or may not need this. Per various SAP Notes, such as 1676665, you may need to apply this Windows hotfix if you receive a particular error during the Gateway installation, so it doesn’t hurt to have it handy.
- Download Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update from Official Microsoft Do…
- SAP Standalone Gateway
- This does not need to match your ERP release, so you should use the latest and greatest. At this time, that is NetWeaver 7.4 SR2.
- Please note that this is not the same as NetWeaver Gateway, which is an add-on to an existing NetWeaver ABAP system.
- You will need Software Provisioning Manager (SWPM)
- http://service.sap.com/swdc -> Installations and Upgrades -> Browse our Download Catalog -> SAP NetWeaver and complementary products -> SAP NetWeaver -> SAP NETWEAVER 7.4 -> SOFTWARE PROVISIONING MGR 1.0 -> <platform, i.e. “Windows on x64 64bit”> -> SWPM10SPxx_x-xxxxxxxx.SAR
- You will need the Kernel 7.42 installation media (not the patch)
- Same path as above to SAP NETWEAVER 7.4 -> Installation and Upgrade -> <platform, i.e. “Microsoft Windows”> -> <DBMS, i.e. “Microsoft SQL-Server”> -> <DVD # for “SAP Kernel 7.42 <platform>”>.
- Extract both packages to a source folder using sapcar.
- SAP Initial Tax Mapping
- Navigate to http://service.sap.com/tubs -> TaxFactory 10.0 -> Initial Mapping -> Initial Mapping for TaxFactory 10.0 and download the file.
- Extract the file BTXTAXC.xml and save it on your workstation.
- SAP Tax Update Bulletins
- Depending on your ERP Support Package level, you may be able to synchronize your SAP tables directly from the TaxFactory system once it is installed. However, if you are not yet at a high enough HRSP, then you will still be doing this the old-fashioned way, downloading SAP transports and applying them to your system, in which case the process has not changed from prior TaxFactory releases.
- Navigate to http://service.sap.com/tubs -> TaxFactory 10.0 -> TUB Downloads -> TUB xxx – TUB xxx (latest available) -> TUB xxx (latest available).
- There will be six files. You need five. Download all except the “Incremental” update.
- Note, if you have made customizations to the files T5UTA, etc, then you may need to use incremental updates. This is beyond the scope of this current document, which assumes that you are using the tables as delivered and therefore can use cumulative updates to save time and effort.
- Extract the files and copy the “K” files to \usr\sap\trans\cofiles on your transport host, and the “R” files to \usr\sap\trans\data.
- Oracle Java Runtime Environment (JRE) for your server platform in 64-bit version (currently JRE 7 update 67)
- Note that by default java.com will offer the 32-bit JRE, so I recommend using the manual download option at Java Downloads for All Operating Systems.
- Choose your OS and, if in Windows, the 64-bit option. Note that you are not concerned here with integrating the JRE into a browser, so it is not necessary to download the 32-bit version.
- Apache Tomcat 7
- Apache Tomcat – Apache Tomcat 7 Downloads
- Scroll down to Binary Distributions -> Core -> 32-bit/64-bit Windows Service Installer and download from that link.
- BSI TaxFactory
- Login to http://www.mybsi.com/connect
- Click the big button for Download BSI TaxFactory 10.
- Select the latest Cyclic Bulletin (currently 10.0d).
- From the Downloads section, find your OS/DBMS/bit-width combination and click Download File. In our example, we need Windows 2008 thru 2012 and SQL Server 2005 thru 2012 64-bit. This is the server package.
- Above this section and on the right, click the link for TF10 Client Package for Windows and save the file.
- To the left of that, click the link for Download Master File.
- It is not generally necessary to download the cyclic data file nor any regulatory bulletins at this point, as the Master File includes the most recent cyclic and regulatory data. The filename will indicate the TUB level being installed, which should match the SAP TUB downloaded earlier. If not, be sure to download the SAP TUB that matches the BSI Master File.
- From the top menu, select Product Maintenance. Choose BSI TaxFactory as the product. Under Maintenance, select Maintain Machine Key.
- Click Add New Key. Confirm the correct release and platform, and enter your TaxFactory server’s hostname in all capitals (if it is a Windows host). Click Request Server Key.
- From the list of machine keys, find the one you just created (perhaps the only one in the list) and click Save as File. This will download a small file called machinekey.lic. Save it on your workstation’s hard drive.
Install and configure SQL Server much as you would for an SAP installation. We will not go into detail here about installing SQL Server, except to highlight a few important points.
TaxFactory, like SAP, requires a case-sensitive collation. The SQL Server default, however, is case-insensitive. The SAP default of SQL_Latin1_General_CP850_BIN2 will work, however, for a standalone installation BSI recommends SQL_Latin1_General_CP1_CS_AS. Note that this is very similar to the SQL Server default of SQL_Latin1_General_CP1_CI_AS, so you must pay close attention at this step.
In prior releases TaxFactory required Mixed Mode (SQL Server authentication and Windows authentication). This is no longer the case, so in this example we will choose Windows authentication mode. Also, per SAP’s recommendation, we will add the local host’s Administrators group to the list of SQL Server administrators.
Other items for the installation and configuration of SQL Server can be as per SAP’s recommendations or your organization’s standards. In general, I recommend to set Lock Pages in Memory (Note 1134345), to configure 1/3 of the physical RAM for SQL Server usage, and to set Max Degree of Parallelism to 1 (Note 1702408), just as you would for an SAP central instance.
If you install TaxFactory onto your ERP application server, a standalone gateway will not be required. However, if you install TaxFactory as a standalone system, as outlined in this blog, then you will need a gateway to provide the RFC connection from your ERP application to the TaxFactory server executable. Fortunately, installing a standalone gateway is a quick and relatively painless process.
The gateway does not require any database resources. However, as with all SAP installations, it does require a unique System ID, or SID, and two user accounts for the service and administration, plus one global group for the users. If you perform the installation as a Domain Admin, SWPM will create the user accounts for you. It is also possible to use local users instead of domain users, but generally speaking SAP advises to create domain users.
If you do not have a Domain Admin user account to perform the installation, you will need to create, or have your network administrator create on your behalf, the group and users. This is described in full in the gateway installation guide, which is found at http://service.sap.com/instguides -> Installation & Upgrade Guides -> SAP NetWeaver -> SAP NetWeaver 7.4 -> Installation -> 3 – Installation – Standalone Engines -> Installation: Gateway for SAP NetWeaver 7.1 or Higher.
For this blog, we will assume that you have chosen a SID of TFP for your TaxFactory gateway. Therefore, the AD global group will be SAP_TFP_GlobalAdmin, and the domain users will be SAPServiceTFP and tfpadm. Do not, however, use either of these accounts for the installation of the gateway. Note that if you do pre-create the users, they should both have the same password, and the password should be set to never expire. If your organization’s policy requires unique passwords for the two users, there will be an option in the installation to accommodate this, but by default sapinst will assume the same password for both.
In your source folder on your server, you should by now have extracted the SWPM and kernel packages that you downloaded earlier. If not, do so now into separate subfolders (in our example, \source\swpm and \source\kernel). Execute \source\swpm\sapinst.exe.
In part 1, Choose Option, drill into SAP Installation Master -> SAP NetWeaver 7.4 Support Release 2 -> MS SQL Server -> SAP Systems -> Standalone Engines -> Gateway -> Gateway.
Click Next. If this is the first time you’ve installed an SAP system on this server (which is likely), you should momentarily see a message box stating SAPinst needs to log you off in order to reliably continue the installation. This is because sapinst is adding certain required OS permissions to your user account and it is necessary to logout and in again to activate them. Click OK.
Log back in to the server console again. Sapinst will automatically restart with the same options as before, bringing you to part 2, Define Parameters. Enter your chosen System ID (SID; in our example ‘TFP’) and the drive onto which you wish to install the gateway executables.
Click Next. On the next screen enter the location for your kernel source files. Note that sapinst asks for “Kernel NW740 SR2,” but by this it means the 7.42 kernel.
Click Next. Sapinst will confirm the correct kernel files, and then on the next screen show a summary of the chosen parameters. If you need to make any revisions, select the relevant checkbox and click Revise, or click Show Detail to see (and revise) more details about the installation. Otherwise, if everything looks correct, click Next.
The installation will proceed at this point and should only take a minute or two. When it is complete you should see a message box to that effect. Optionally follow the feedback link, or click OK.
Troubleshooting msiexec or vcredist error
It might happen that SWPM or sapinst fails with an error message: “Running msiexec failed with return code 1603: Fatal error during installation. Commandline was msiexec.exe /norestart /L /vcredist_x64.logvcredist_64.msi /qn.” If this occurs, apply the Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update that you downloaded earlier, and then restart sapinst.
By default your new gateway will still refuse connections from external systems, so there is one piece of configuration you must do. You must create a secinfo.dat file and place it in the appropriate folder, with the appropriate parameters defined inside. This file doesn’t exist until you create it.
A full discussion of the available parameters for secinfo.dat are beyond the scope of this blog, but are discussed at length in Note 1425765. You will need to adapt the file according to the needs of your organization, but something like thefollowing will work for purposes of enabling TaxFactory to be called from your ERP system.
Create the file in the folder \usr\sap\SID\Gxx\data. The first line of the file must be:
The second line should begin with “P” (for “Permit”), then have entries for TP, HOST, USER, and USER-HOST. TP points to the TaxFactory server batch file, which you will create later. HOST is the fully-qualified hostname of your TaxFactory server. USER is the calling username, and USER-HOST is the hostname or IP address of your ERP system (you may use wildcards if the call may come from several systems). So, this line will follow this pattern:
P TP=<drive>:\BSI\TaxFactory\server\tf10server.bat HOST=<TaxFactory Host>.<domain> USER=* USER-HOST=<IP address or range>
So, if you will be installing TaxFactory onto your E: drive on the server “taxfactory,” and all of your SAP servers are using internal IP addresses in the 10.50.15.x subnet, for instance, your file might look like this:
P TP=E:\BSI\TaxFactory\server\tf10server.bat HOST=taxfactory.domain.com USER=* USER-HOST=10.50.15.*
Please note that the keywords (TP, HOST, etc) are case-sensitive and must be capitalized.
Save the file, logout and login again as ‘sidadm,’ and use SAPMMC to restart the gateway. In the process list, right-click on gwrd.EXE and choose Developer Trace. In the trace file, look for the line “GwIInitSecInfo: secinfo version = 2”. If you see this, then the gateway correctly read your secinfo.dat file. If you do not, you may have misformatted the file, or you may have saved it in the wrong folder.
<continued at BSI TaxFactory 10 Installation for SQL Server – Part 2>