Skip to Content

BSI TaxFactory 10 Installation for SQL Server – Part 4

By now you have fully installed and configured your TaxFactory server, as detailed in the previous parts of this blog series:

  1. BSI TaxFactory 10 Installation/Upgrade for SQL Server
    1. Gathering materials (downloads) and installing SQL Server and SAP Gateway
  2. BSI TaxFactory 10 Installation for SQL Server – Part 2
    1. Loading the database and installing TaxFactory server
  3. BSI TaxFactory 10 Installation for SQL Server – Part 3
    1. Installing TaxFactory client (including Apache Tomcat) and loading the Data Set

Now it’s time to configure SAP to talk to TaxFactory. Unlike the previous parts of this series, this part is not database-platform-dependent.

SAP Configuration

RFC Destination

The first step is to define the RFC Destination that SAP will use to connect to TaxFactory. This setting is not transportable, so must be done separately in each SAP ERP system in your landscape (DEV, QAS, PRD, etc). If you have setup separate TaxFactory servers for DEV, PRD, etc, then you will want to ensure that you configure each RFC Destination appropriately.

There are two ways to do this, and they are equally effective. The SAP documentation will have you go through the IMG:

  • Transaction SPRO
    • SAP Reference IMG
      • Payroll
        • Payroll: USA
          • Tax
            • SAP/BSI Interface
              • Specify location of Tax Factory executable

Experienced Basis administrators will quickly recognize this as a link to transaction SM59, Configuration of RFC Connections, and that, of course, is the shortcut you can use to get here quickly. However, it is useful to remember this IMG path, as you will return to SAP/BSI Interface again shortly.

If you are upgrading from TaxFactory 9.0, you will already have an RFC Destination named BSI90-US-TAX. You cannot reuse this, but you can copy it as a template for the new destination. Alternatively, or for a new installation, expand and/or select the folder TCP/IP connections and click on the create button.

The name of your new destination must be BSI10-US-TAX. Connection Type T (TCP/IP Connection) should already be selected, but if not, select it. Enter a description of your choice (e.g. ‘BSI TaxFactory 10.0’), and set the following Technical Settings:

  • Activation Type:  Start on Explicit Host
  • Program:  <drive>:\<path>\tf10server.bat
  • Target Host:  <taxfactory_host>.<domain>.<com/org/…>
  • Save to Database as:  Hostname
  • Start Type of External Program:  Default Gateway Value
  • CPI-C Timeout:  Default Gateway Value
  • Gateway Host:  <taxfactory_host>.<domain>.<com/org/…>
  • Gateway service:  sapgw00

Save your changes and click Connection Test.

If the connection is not successful, the most likely cause is misconfiguration of secinfo.dat in the gateway on your TaxFactory host. Go back to Part 1 of this series and navigate to Preparations -> SAP Gateway -> Configuring secinfo.dat (BSI TaxFactory 10 Installation/Upgrade for SQL Server) for more information. Other items to double-check are that the gateway service (sapgw00) and the instance number of your gateway match. In this series we have assumed that you installed your gateway to Instance ID 00; if you chose a different Instance ID, then your gateway service must be adapted to match (sapgw01, sapgw02, etc). Also, double-check that you pointed the destination to the batch file (tf10server.bat) and not the executable (tf10server.exe). For more information about this batch file, see Part 2 of this series (BSI TaxFactory 10 Installation for SQL Server – Part 2).

Required Support Packs or Notes

The minimum HR Support Pack for TaxFactory 10 on ERP 6.00 is SAP_HR 99 (or SAP_HR 95 + CLC 99), and for ERP 6.04 it is SAP_HR 65 (or SAP_HR 61 + CLC 65). If you have at least this level of Support Pack, the other required functionality can be obtained through implementation of SAP Notes. However, bear in mind that in Spring 2015 the new Synchronization method for applying TUBs will become mandatory, and this will require a minimum HRSP level of A6 (base ERP 6.0), 72 (EhP4), or 1 (EhP8), plus additional correction Notes on top of those minimum SPs. Most customers will be at a higher SP level than this by then anyway, as the Year-End 2014 Base HRSP is B3 (ERP 6.0), 79 (EhP4), or 7 (EhP8).

If you are not yet on the Year-End Base HRSP, however, but you do meet the TF10 minimum HRSP, here are the Notes which you must consider applying:

  1. 1875218 – BSI TaxFactory 10.0 Roadmap
    1. Not actually anything to apply, but lists the other most important Notes
  2. 1903607 – BSI TaxFactory 10.0 – Phase I
    1. Can only be applied via Support Pack; included in HRSP 600.99 and 604.65; prerequisite to all other Notes listed
  3. 1909014 – BSI TaxFactory 10.0 – Phase II
    1. Included in HRSP 600.A2 and 604.68
    2. Corrected by 1962760 (see below)
    3. Includes manual activities (besides SNOTE application)
      1. Previous versions of this Note included a typographical error for a View that must be edited, but this has now been corrected
  4. 1934582 – Test BSI Tax Calculation in TaxFactory 10.0
    1. Included in HRSP 600.A2 and 604.68
    2. Includes manual activities
    3. Required before you can use RPUBTCU0 to test the TaxFactory connection (see below)
    4. If you use the optional TaxLocator functionality, you must also apply 1934427
  5. 1934840 – BSI TaxFactory 10.0 – Phase 3
    1. Included in HRSP 600.A3 and 604.69
    2. Includes manual activities
    3. This Note proved troublesome for many customers, so I will provide more details below on how to successfully implement it
  6. 1937142 – TAX: BSI TaxFactory 10.0 – Nonresident Worked Days parameters
    1. Included in HRSP 600.A5  and 604.71
    2. Corrected by 1963469 (only applicable via Support Pack, 600.A5 or 604.71, but tax calculations seem to work fine without this)
    3. Includes manual activities
  7. 1962760 – BSI: Payroll driver generates warning messages due to feature 10EET
    1. Included in HRSP 600.A5 and 604.71
    2. Note that it is not enough to simply apply this Note; if you are using TF 10.0, you must also activate the feature in customizing (see below)
  8. 2033053 – RPCALCU0 runs for long time or CX_HRPA_VIOLATED_PRECONDITION dump
    1. Not applicable for ERP 6.00
    2. Included in HRSP 604.80 or 608.07
    3. Corrects a serious performance issue in RPCALCU0 (even if you aren’t getting any dumps)
    4. Is listed as a correction for Note 1969726, but the performance issue may exist even if you have not applied this Note or equivalent Support Pack

Besides these, you may find that there are other prerequisite Notes that SNOTE brings up.

Note 1934840 – Phase 3

This Note proved troublesome for many customers, so here are some hints to help with a successful implementation. Obviously, the easiest way is to implement the Support Pack that includes it, but if that is not yet an option for you, follow these steps.

The Note includes SNOTE automatic corrections, SAR files to be downloaded and imported, and manual customizing activities. The problem lies in the fact that there is a cross-dependency between some of the code corrections applied via SNOTE and some of the changes imported via SAR file. The Note advises to import the SAR transports first, then apply the SNOTE corrections. However, upon importing L4HK194704 (the 6.04 version of the SAR file) Generation of Programs and Screens will fail with RC=8. The error is Program SAPLHRPAYUS_T5UX9, Include LHRPAYUS_T5UX9SCL: Syntax error in line 58. Type ‘CL_HRPAYUS_COURTESY_WH’ is unknown.

The accompanying code corrections to be applied via SNOTE include Class CL_HRPAYUS_COURTESY_WH. However, if you apply the code corrections first, you will likely encounter other, similar errors due to dependencies upon objects in the SAR file.

The procedure, therefore, is to:

  1. Import the SAR file (L4HK194704 or L7DK244720) using the transport option Leave Transport Request in Queue for Later Import
    1. Ignore the error for now
  2. Apply the code corrections via SNOTE
  3. Re-import the SAR file, this time clearing Leave Transport Request… and instead setting Import Transport Request Again.

This second import will go in cleanly, and all will be well. After this has been done, you can proceed to the customizing activities described in the Note as applicable for your organization’s requirements.

Note that in downstream systems (i.e., QAS and PRD), the procedure is slightly modified. You will import the SAR file per point 1, then import your transport containing all your various Note corrections, then re-import the SAR file per point 3. Bear in mind that this means it will be difficult to automate scheduled imports in later systems, so this will probably warrant manual attention.

Feature 10EET

The Phase II Note introduced this new feature for Employee Type Indicator and Date of Death. One problem with the Note was the generation of warning messages in the pay run for customers still using TaxFactory 9.0, so Note 1962760 provided a correction for that. However, even with the correction applied, if you are using TaxFactory 10.0 but do not activate this feature, you will get the warning messages. The Note implies that you can simply leave the feature inactive in order to duplicate TF 9.0 functionality, but this is not the case.

The message appears in the pay run job log (viewed via SM37). It is message P0 604, ‘Feature 10EET has not been activated yet,’ and it will appear in the job log numerous times. For a large pay run, very numerous times, such that reviewing the log could be unwieldy, and there may be a minor performance impact on the pay run itself.

If you don’t plan to use this feature at this time, you can simply activate it via PE03, configuring as follows:

This will remove the warning message and make your job logs usable again.

Test Tax Calculation (RPUBTCU0)

Once all of your Notes or Support Packs have been applied, you can test the connection from Payroll to TaxFactory. Note that this is not the same as the connection test done in SM59 earlier; that test only confirmed that the connection from SAP to the Gateway works correctly and that SAP could reach the TaxFactory server executable. This test will now actually invoke the TaxFactory engine, sending predetermined test data for TaxFactory to calculate and returning a result. The prerequisite for this test is that you have applied Note 1934582.

Execute transaction SA38 (or SE38). Enter RPUBTCU0 as the program and click Execute.

Confirm the selection of BSI Version 10.0 and click Execute.

The test will take a few seconds, and if all is working correctly you will see the following:

In the message list you may also see message code 2000 (“No company UT experience rate information for the California state UT tax was found…”). This is a normal result.

Various errors may occur at this point:

For more details on troubleshooting RPUBTCU0,and the TaxFactory connection and functionality in general, refer to Note 1910127 (FAQ: TaxFactory 10.0 Inst./Upgrade Troubleshooting).

This step is only relevant for a new installation; if you are upgrading from TaxFactory 9.0, even if you are doing a clean install on a new TaxFactory server, you may skip this step.

In transaction SA38, enter program RPUTTUU0 (Wage Type Update Program). Accept all the defaults on the selection screen, deselect Test Mode, and execute.

Specify Version in Customizing

Return to the IMG (transaction SPRO) and drill down into:

  • Payroll
    • Payroll: USA
      • Tax
        • SAP/BSI Interface
          • Specify BSI TaxFactory version for customizing settings

For country grouping 10, option BSITF, set the Value field to ‘V10’ via the drop-down selection. There should be no need to change the start or end dates. Save your changes, which will create a transport for import into downstream systems.

The next IMG activity, Specify BSI TaxFactory version for master data and tax calculation, only needs to be configured if you intend to use different releases of TaxFactory for different groups (company codes, etc). For most organizations, this can be left blank, in which case the version from the previous activity will take effect.

The final IMG activity, Specify level of messages to be returned, only needs to be configured if you intend to restrict the types of return messages coming from TaxFactory back to the payroll engine. Read the IMG documentation on the activity to determine whether this is appropriate for your requirements.

Apply TUBs

With TaxFactory 10.0, and depending upon your HRSP level, there are now two ways to apply Tax Update Bulletins to your SAP system. The traditional way is to download transport files from and import them to your system. The procedure for this is detailed in Note 1910128, and this has not changed from prior TaxFactory releases.

For most customers, you will download five transports for the most recent TUB available (all except the Incremental transport). The transports will have titles like:

  2. Table BTXTAXC
  3. Table T5UTX
  4. Cumulative T5UTA, T5UTB, T5UTD, T5UTR and T5UTW
  5. Cumulative T5UTZ

Import them into your working client in the above order. Note that transports 4 and 5 include client-dependent table contents that can normally only be imported into Client 000, which then must usually be copied into your working client. However, if you have not customized these tables, there is an easier way. Import them directly into your working client by setting the import option Ignore Non-Permitted Table Class. This is only necessary for the last two of the five transports; the others can all be imported to your working client normally, or are client-independent.

Synchronize Payroll Tax Data

Beginning with HRSP 600.A6, 604.72, and 608.01, and if you have at least TaxFactory 10 TUB 19 imported, it becomes possible to synchronize the TUB data directly from your TaxFactory server (after applying the Regulatory Bulletins there) into your SAP tables, thus bypassing the need to download and import the above transport files. Beginning in Spring 2015 this will become the only supported mechanism for applying TUBs to your SAP system, however, for the moment it remains optional. For more information see Note 1975742. Also note that there are currently four correction Notes released for this functionality: 1984911, 1992315, 1992697, and 2009438.

Further Information, and Important Notes

The most important Notes for reference while installing, upgrading, and/or configuring TaxFactory are:

  • 1905340: Installing TaxFactory 10.0
  • 1910127: FAQ: TaxFactory 10.0 Installation/Upgrade Troubleshooting

Additionally, the following SCN resources are very helpful:

  • BSI Tax Factory 10.0, by HEMANTH JAMITHIREDDY
    • Good information about using the new web-based TaxFactory client, and some of the more detailed custom configuration that some customers may require (overrides, etc).
  • BSI Tax Factory 10.0, by Graziela Dondoni
    • Ongoing discussion thread in which Graziela announces new or upcoming changes for TaxFactory, and customers and consultants ask and answer questions. The thread is currently at 32 pages in length, which can make it difficult to search and browse, but I recommend following it (click Track in Communications) to remain up-to-date.
You must be Logged on to comment or reply to a post.
  • Hi, Can you check on the instructions above for importing TUBS?  The procedure I have is nearly the opposite for the clients given in the instruction.  For example, is it ok to import “Cumulative T5UTA, T5UTB, T5UTD, T5UTR and T5UTW” into the gold client (or the productive client)?  Note 1910128 says to import that one into client 000.

    • Hi Clifton,

      I did actually have the TUB transports listed in the wrong order by mistake. I have updated the list so everything is now correct.

      It is absolutely fine to import the Cumulative transports to your productive or working client, unless you have customized entries in these tables. If you have customized entries, you will need to follow the procedure outlined in Note 1910128 for Incremental tax data updates, and not use the cumulative tables at all. You will need to import the incremental update to client 000 and then use the table compare tool to copy the relevant entries from client 000 to your productive client.

      Usually, however, you will not have custom entries in these tables and can use the cumulative transports. Again, the Note says to import to client 000 and then use table compare to get the data into your productive client, but I have outlined a much easier method. I have been using this method for many years now, and it works extremely well.



      • Hi Matt,

        After the order has been corrected, have you also updated the statement “transports 4 and 5 include client-dependent table contents”?  The note says BTXTAXC & T5UTX are client-dependent.

        • Hi Henry,

          The statement remains correct.

          You are right in that BTXTAXC and T5UTX are also client-dependent, however these tables do not have the restriction against importing into clients other 000. It is only the “Cumulative Tax Data Update” tables (T5UTA, etc, and T5UTZ) that have this restriction, and which therefore you must use the Ignore Non-Permitted Table Class import option to import them into your working client.



  • Hi Matt,

    We have done the installation of TF10 and had some issues. Then we found these papers of yours and checked our actions and followed them through. However we no have the following issue. When I run RPUBTCU0 I get the following errors

    Sorry, BSI connection is not configured correctly One or more taxes are not calculated.





    According to the basis consultant all the steps in you paper was executed.

    Your assistance would be appreciated


    Louis de Kock

    • Hello Louis/Jaco,

      If you run RPUBTCU0 and it connects but calculates no taxes, this most likely indicates that you didn’t apply the SAP-BSI tax code mapping (BTXTAXC.xml). This error is described in the troubleshooting Note that I linked (1910127: FAQ: TaxFactory 10.0 Inst./Upgrade Troubleshooting) as problem/solution 8, and the procedure (and a copy of the file to download) is in Note 1910129 (TUB: TaxFactory 10.0 inst. requires tax code mapping file). I also describe the procedure in Part 3 of this blog series, under Load Initial Tax Mapping, and how to obtain the file in Part 1, under Gathering Materials bullet point 5.

      So, apply (or reapply) the initial tax code mapping file to your BSI dataset and try again. Also make sure that you are applying the mapping to the dataset that has the same name as your client (001, 100, 300, etc).



  • Matt,

    We are at Cyclic 0 Reg Bullet in 110, our DEV and QA systems works fine, in Production we get the below error, The RFC works fine but the Sync tool HRPAYUS_SYNC_TAX_DT doesn’t work gives program error at RFC_HRUS_TF_VERSION_10.


    4 – Installing function RFC_HRUS_RET_TAXABILITY
    4 – Installing function RFC_HRUS_RET_WAGE_LIMITS
    4 – Installing function RFC_HRUS_RET_MAP_TCO_COUNTY
    36 – Server correctly started!

    36 – +———————————————————————+
    36 – +———————————————————————+
    50 – Remote function has been correctly executed

    50 – +———————————————————————+
    50 – +———————————————————————+
    51 – Remote function has been correctly executed

    51 – +———————————————————————+
    51 – +———————————————————————+
    52 – Remote function has been correctly executed

    52 – +———————————————————————+
    52 – +———————————————————————+
    53 – Remote function has been correctly executed

    53 – +———————————————————————+
    53 – +———————————————————————+
    55 – Remote function has been correctly executed

    55 – +———————————————————————+
    55 – +———————————————————————+
    4371 – COMMUNICATION_FAILURE has been sent to backend: RFC_COMMUNICATION_FAILURE – connection closed without message (CM_NO_DATA_RECEIVED)

    4371 – ******************** DISCONNECTING FROM BSI DATABASE ******************
    4371 – BSI Dataset is not connected
    4371 – BSI Datasource is not connected
    4371 – Closing RFC connection…
    4371 – Unable to close RFC connection: RFC_INVALID_HANDLE – An invalid handle was passed to the API call


    we reached out to BSI, they say its SAP’s issue and SAP says its BSI issue, can you please share your thoughts?

    • Hi Senthil,


      I’m not sure how much help I can provide you here. Does RPUBTCU0 work correctly? If not, have a look at Note 1910127, specifically points 3, 4, and 5, about RFC communication failures. Are you certain that the Support Pack level is the same in all your environments, and that you have applied all the same Notes? Was the sync tool working in PRD before, and then became broken after applying a particular update? Or is this the first time you’re trying to get it to work?


      Have a look through all the Notes listed for the sync tool in Note 2082725, and also through the blogs and to make sure you’ve correctly followed all the implementation steps.


      When submitting a Customer Incident to SAP about this, use component PY-US-BSI. That should directly involve BSI engineers in supporting your Incident.


      Otherwise, I recommend raising this as a separate Question in the forums, using tags HCM Payroll and HCM Payroll USA.