Synchronize Payroll Tax Data
The Old Way
The old method of keeping tax data synchronized between TaxFactory and SAP was a two-step process:
- Download Regulatory Bulletins from BSI and apply them, one at a time in an incremental fashion, to your TaxFactory database via the maintenance update tool in the TaxFactory client.
- Download the most recent TUB (Tax Update Bulletin) transports (matching the highest level Regulatory Bulletin applied) from the SAP Service Marketplace and import them to your ECC system via STMS (or the TP command-line tool, if you're really old-fashioned).
- TUBs could be applied either incrementally or cumulatively, depending upon your needs. Generally, if your tax tables did not contain custom data, you would use the cumulative transports.
- TUBs would become available from SAP usually one or two days after the matching Regulatory Bulletin was released by BSI.
There were several complications associated with this method, not least of which was potential confusion about which TUB transports to apply and which client to apply them to, as well as the delay between availability of the BSI Regulatory Bulletin and the SAP TUB.
A Streamlined Process
The new method eliminates the need to download TUBs from SAP and apply them as transports. Instead, you download and apply Regulatory Bulletins to your TaxFactory database the same as before, then you run a tool in your SAP system to synchronize the changed tax data from TaxFactory into the appropriate SAP tables. This eliminates the delay in availability of TUBs, it eliminates the extra downloads and imports, it potentially places control in the hands of payroll experts instead of Basis, and on the surface seems logical and simpler than the old process.
When it works properly, it is indeed simpler. The key is ensuring your system is ready for the tool, and understanding the process.
The main requirement on the TaxFactory system is that you have TaxFactory 10.0 properly installed, configured, and working in concert with your SAP Payroll system. See BSI TaxFactory 10 Installation/Upgrade for SQL Server for details about installing or upgrading to TaxFactory 10.
However, I also recommend that you apply the most recent Cyclic update to your TaxFactory system. For more details, see BSI TaxFactory 10 Cyclic Update .
Otherwise, the main requirement is to apply the Regulatory Bulletins that you wish to synchronize. We'll go into this in more detail below.
On your SAP Payroll system there is a minimum required Support Pack level and then a number of SAP Notes which must be applied. Additionally, there is a minimum TUB level that must have been applied the "old" way first.
HR Support Pack
The Sync tool was initially delivered with Note 1975742 (BSI: Synchronize Payroll Tax Data). The changes from this Note cannot be applied via SNOTE, however, but instead must be applied via HR Support Pack (HRSP). Therefore, the minimum required HRSP for the Sync tool is:
- SAP_HRCUS 6.00: A6 (e.g. 106)
- SAP_HRCUS 6.04: 72
- SAP_HRCUS 6.08: 01
As the minimum required HRSP to support Tax Reporter for Year-End 2014 was higher than this, the chances are good that you have already met this requirement.
On top of the HRSP, there are a number of Notes to correct or improve the functionality of the tool, and new Notes are being released fairly frequently at this time. Many of the most commonly reported issues with the tool are corrected by one or more of these Notes, so it's very important to apply them. The required Notes are detailed in Note 1975742 (previously mentioned) and Note 2082725 (BSI: Synchronize Payroll Tax Data - FAQ). but there are additional newer Notes not yet updated in the FAQ. The most up-to-date list is maintained on SCN at Synchronization Tool notes and updates - TaxFactory 10. That discussion thread is also a good place to post questions or issues with the tool.
Depending upon your Support Pack level, of course, many of the Notes may already be in your system. Here is the list of Notes and the HRSP in which they were delivered (numbers given for SAP_HRCUS 6.00 (ERP 6.00 - EhP3), 6.04 (EhP4-7), and 6.08 (EhP8)), as of the date of this blog:
It is important to apply all of the Notes listed above, even if the Note title implies that it may not be applicable to you. For instance, you may not wish to hide the transport pushbuttons and therefore feel you do not need Note 2064814. However, this Note also includes critical corrections, and so must be applied for correct functioning of the tool.
Bear in mind that a Note may be updated later, thus causing it to be included in a more recent Support Pack. Also, new Notes for this tool are released frequently.
UPDATE 23 April 2015:
I have added two Notes to the list above (in bold), 2155723 and 2160075 (released just today).
Note 2127736 Special Instructions
UPDATE: Previously this Note required special handling, as detailed below. However, as of 13 March 2015 it has been re-released, and a new prerequisite Note (2141706) created. Applying the prerequisite in advance prevents the activation errors that required the special handling.
Like several others, this Note involves both automatic corrections (that can be applied with SNOTE) and manual "post-implementation" corrections. You will likely encounter activation errors in SNOTE, as follows:
Type "HRPAYUS_PROCESS_MAPPINGS" is unknown
You can safely ignore this error and "activate anyway," as you will be creating this data type in the post-implementation manual phase, as described in the Note. You cannot create it in advance, as the automatic correction introduces a report to be run which then creates the new data types. After you run the report, all will be well (and you can confirm by checking the objects in your transport request afterwards).
Before running the sync tool for the first time, you also must bring your SAP system up to a minimum of TUB 019 the "old-fashioned" way (download TUB transports from SAP and import them via STMS). This has proven to be a source of confusion for a number of users who thought their systems were at or above TUB 019, yet they still got the error "The system does not have the required TUB installed" when attempting the tool. The confusion has occurred frequently enough that there is a KnowledgeBase Note (2139409 ) explaining the issue and the correct procedure.
In a nutshell, the key point is that TUBs have both client-independent and client-dependent components. The client-dependent components must be applied to your working client, however some of them have a table class that prevents direct import to any client other than 000. As a result, a number of customers have been applying TUB updates to client 000 in their systems, but never cascading the changes to their working clients. This results in an inconsistent TUB status in the working client, and this is what the Sync tool reads. Thus, the error message is correct.
The correct, or best, procedure to follow to ensure the TUB is correctly applied to your working client depends on whether you have customized any of the entries in the affected tables. If you have not customized the tables, then you can safely import the common and cumulative transports of the TUB directly to your working client.
Wait -- didn't I just say that these transports contain tables that can only be imported to client 000? Yes, that's true. However, in STMS there is an override option you can set, Ignore Non-Permitted Table Class. You can find this option on the Options tab of the import dialog (for importing single requests only -- you cannot choose this in Import All ).
So, in this circumstance, you will select your working client for all five of the typical transports involved in a TUB, but choose this advanced option for the two cumulative transports containing tables T5UTA, T5UTB, T5UTD, T5UTR, T5UTW, and T5UTZ.
If you have customized any table entries, then there is no change for the "Common Tax Data Update" transports, and you must choose between Cumulative or Incremental Tax Data Updates, and import the latter only into client 000. Afterwards, you must use transaction SM31 to compare the table entries between client 000 and your working client, identify the newly created entries in client 000, and adjust your working client to copy those entries over. This procedure is explained in detail in Notes 2139409 (The system does not have the required TUB installed) and 1532493 (TUB: Applying transport files from TUBs). More information is also found in Note 1910128 (TUB: Finding and applying TUBs for TaxFactory 10.0) .
Apply Regulatory Bulletins to TaxFactory
Ok, the prep work is done, it's time to sync some data. But, first there needs to be some data to sync.
Logon to http://www.mybsi.com/connect and select Product Maintenance. Choose product BSI TaxFactory. then under Maintenance select Regulatory Bulletins. Choose BSI TaxFactory 10.0 Regulatory Bulletins and then select the download link for each and every Regulatory Bulletin that is newer than what you currently have installed in TaxFactory (for example, if your system is currently at bulletin level 42, you will download bulletins 43 through 49 (or higher if available)).
While on this page, also click on the title of each bulletin. This will open a new browser window with the cover page for the bulletin. Scroll through the cover page and make a note of all of the Effective Dates in the section for BSI TaxFactory Engine (you are not concerned here with ReciprocalTax, WageAssessor, etc). You don't need to separately record each tax authority, just each unique effective date for federal, state, or local tax changes. For example:
Here you see two tax authority changes (Arkansas and Hawaii, but they both have the same effective date, so you only need record it once. In our example of applying bulletins 42 through 49, we find that almost all of the changes have an effective date of 1/1/2015. One state change (for Oregon) has an effective date of 4/1/2015, and a number of changes have an effective date of "immediately." What we are concerned with here are all the unique dates found in the range of bulletins. In our example, there are only two: 1/1/2015 and 4/1/2015. We'll come back to the "immediate" changes in a bit.
Logon to your TaxFactory client as user TF10, connect to your working Data Set (if necessary), and jump to System Tools. Under Maintenance Tools you can confirm the current bulletin level, then click Manual Update .
Browse to the first of your downloaded Regulatory Bulletins and click Process .
When the import is done, look through the Maintenance Output for any errors, and check the end of the Update Output for something similar to the following:
Check the Summary to see that the most recent number has incremented, and then repeat the process with the next bulletin, until you have imported them all. Note that occasionally a bulletin's update output is larger than the client tool seems capable of displaying, in which case the View Update Output link may not show as far as the end of the report. In this case, if the maintenance output shows only success messages, you should be good to go.
When all the bulletins are imported, click Exit and confirm on the prior screen that the bulletin number has incremented appropriately.
Synchronize Bulletin Data to SAP
Run the Tool in DEV
Logon to your customizing and development client in your development system and execute transaction:
First confirm it is properly connecting to your TaxFactory system and reading the bulletin level there. You can do this by pressing Display Version in the Regulatory Bulletin Information section, near the bottom of the screen.
The first time you run the tool in DEV, you will only see data for the BSI Client. After you've run it in productive mode at least once, you will also see the local SAP bulletin level.
Note, however, that the local SAP data will only be accurate in your DEV system, unless you manually sync the data in each system. If you create transports for the sync'd data out of DEV, however, then the QAS and PRD systems will not display their bulletin levels.
Effective Dates and Test Run
Leave Test Run selected (the default) in both Synchronize Cross-Client Data and Synchronize Client-Specific Data for the first execution. In Effective Dates. enter the dates you recorded from the bulletin cover pages on separate lines, using the same date as Start Date and End Date on each line. You can also enter the dates as a range, using the earliest date as Start Date and the latest date as End Date, but this will cause the tool to run for each date in between, even though there are no updates for any of those specific dates. This could increase the runtime quite a bit.
What about the changes with effective date "Immediately?" You do not need to worry about these. As they don't have an effective date, the tool will always find them and synchronize them if necessary.
The first time you run the tool productively (or any test runs before that first productive run) the tool does a few special tasks which are not then repeated after:
- The tool moves entries from table BTXTAXC to table T5UTZC (approximately 4,900 table entries). BTXTAXC is obsolete. Once this migration is made, it will not be repeated, and future updates will occur in T5UTZC.
- The tool attempts to recreate all the tax areas in your system. If they already exist, nothing is changed and a warning message is logged. In future runs, only new tax areas are created, so the number of warnings will drop significantly.
- The tool creates tax authority mappings (SAP<->BSI) in the TaxFactory data set. Most of these should already exist if you applied the initial tax mapping file to your TaxFactory system when you first installed (this file is supplied by SAP, not BSI: see BSI TaxFactory 10 Installation for SQL Server - Part 3 ), however unless you have been manually keeping these mappings up-to-date, there may be some missing. Future runs of the tool will update the TaxFactory database with new tax authority mappings, but shouldn't need to update so many of them.
When it is finished, you will see a results screen in which you can see exactly what the tool did (or would do if not in test mode):
With a successful test, it's time for the real thing. Depending on how the test went, you may decide here to split the run up into smaller parts, or just go for it. Select Productive Run for both Cross-Client Data and Client-Specific Data. Do not select Process Tax Authority Mappings Only. Adjust your effective dates, if needed. Enter a description, such as "TUBs 043-049." Click Execute .
You will get a popup confirmation stating This action will update the selected Payroll Tax Data. Are you sure? Click Yes .
This first run may take a while, though it may possibly run faster than the test.
When it is complete, you should see all the same warning messages in the log as during the test run, but also one informational (green) message: All entries have been successfully saved to the database. If you have this message, and no errors or terminations, then likely everything has worked fine. You can also drill down into the various tables listed in the results to see what changes were made -- these should match the descriptions from the bulletin cover pages. If in doubt, check the tables directly with SE16 to see that the entries are there.
In the TaxFactory client, on the home screen, you should see There are 0 unmapped authorities. You may also see a large number of messages in the message viewer, as if there had been a pay run.
Back out from the results to the selection screen. Click on Display Version again, and now you should see your Regulatory Bulletin version displayed for SAP data as well as BSI data.
Having synchronized the changes in your development system, you can create transports with the relevant table entries to migrate them to your QAS and PRD systems. You will create a workbench transport for the cross-client data and a customizing transport for the client-specific data. These are cumulative transports which will capture all of the non-custom data in these tables.
At the top of the selection screen, click on Cross-client:
Create a workbench transport as you normally would. Then repeat the process for Client-specific and a customizing transport.
The cross-client transport saves all entries from tables BTXAUTH, BTXFORM, and T5UTX. The client-specific transport saves all entries from tables T5UTD, T5UTZ, and T5UTZC, and all SAP-generated entries from tables T5UTA, T5UTB, T5UTR, and T5UTW. That means that if you have custom entries in that last set of tables, they will not be captured in the transport.
Transport Issue with Table T5UTD
UPDATE: On 3/17/2015 SAP released Note 2128332 which should address this issue. I have not yet had the opportunity to test the Note myself, but will update the blog when I have. If the Note works as intended, then the client-specific transport should be usable as designed, and the problem with table T5UTD should not occur.
PREVIOUS WORKAROUND: At the time of writing this blog, several customers (including myself) reported an issue with table T5UTD not updating correctly via the client-specific transport. For now, the workaround and suggested practice is to use the cross-client transport, but not the client-specific transport. This means that after importing the cross-client transport in your QAS or PRD system, you will then need to open the system for client-dependent changes via SCC4, then run the Sync tool for client-specific data only. Afterwards, close the system to changes again.
QAS and PRD
Once you are satisfied with everything in your DEV system, release the transports (the various Notes you applied, and the workbench and customizing regulatory updates).
Apply the changes to your QAS TaxFactory system the same as you did for DEV: Cyclic bulletin (if applied in DEV), and Regulatory Bulletins.
In your SAP QAS system, import the transports you released from DEV into your working client (the Notes and workbench updates are client-independent, so choice of client is irrelevant). If you examine the logs for the transports, you will be able to confirm updates to the appropriate tables.
NOTE: If you applied Note 2128332 before creating the transports, then all should work correctly (see Transport Issue with Table T5UTD above). If you did not, the transport for client-specific data may not correctly update table T5UTD for some customers. Therefore, I recommend not importing this transport (or don't even create it in the first place) without applying the Note.
Now here things get a little sticky. The transports you just imported included all the regulatory update data needed in your SAP system. However, you may still need to process tax authority mappings on your TaxFactory system. You can determine this from the home page of your TaxFactory client (when connected to the working Data Set), in the System Summary:
If you see a number other than 0 for unmapped authorities, then you need to process tax authority mappings. The Sync tool has a facility for managing this, but it requires that your SAP client be opened for client-specific changes, even though you are not changing anything on the SAP system. This is because, currently, the option to process tax authority mappings only works if Productive Run is selected for Synchronize Client-Specific Data. and Productive Run is only available if the client is open for configuration/customizing changes.
Start transaction SCC4. click on the Display -> Change button ( ) to put the view in Change mode, and double-click your working client. In the section for Changes and Transports for Client-Specific Objects select the radio button for Changes without automatic recording .
Note you do not need to enable Cross-Client Object Changes. only client-specific changes. Save this change and go into transaction HRPAYUS_SYNC_TAX_DT again. Set Synchronize Cross-Client Data to Do Not Run (and note that Productive Run is greyed out). Set Synchronize Client-Specific Data to Productive Run and select the checkbox for Process Tax Authority Mappings Only. Set an Effective Date (any date should do) and an appropriate comment.
NOTE: If you are not using the client-specific transport, then leave Process Tax Authority Mappings Only unchecked. and instead do a full sync of client-specific data. This will also update the tax authority mappings at the same time.
Execute, and confirm in the warning dialog. The runtime should be fairly quick. When it's done, in the results you should see a number of lines equal to the number of unmapped authorities with the message System creates mapping between tax authorities.
Return to your TaxFactory client, refresh the home screen, and note that the number of unmapped authorities has now dropped to zero. Return to transaction SCC4 and set the client change option back to the previous setting (most likely No changes allowed ).
When ready, repeat this process in PRD.
Checking the Results
You can confirm that your transports properly set the appropriate entries in your SAP system by executing the Sync tool with Test Run set for both cross-client and client-specific data and the same effective dates as used in DEV. Drilling down in the results should show grey lights and the message No changes have been detected for table. for each table, and a green light and the general message No missing tax authority mappings found.
Handling Custom Data in SAP Tables
The procedure above is oriented for customers who do not customize the tax data in any of the SAP tables. These customers previously would have always used cumulative TUB transports instead of incrementals, and would have imported all the TUB data directly into their working clients.
However, some customers have custom data which they need to maintain and do not wish to overwrite. How should this be handled if this is your situation?
Previously, you would have imported TUBs into client 000 instead of your working client, and then used the compare function in SM31 to identify and copy entries, table by table, that exist in client 000 but not your working client.
The procedure with the Sync tool is very similar. In this circumstance, you will execute the Sync tool for client-specific changes in client 000 instead of your working client, and then once again use SM31 to compare and adjust entries to your working client.
NOTE: Recently SAP has stated that it should be possible to run the sync tool directly to your working client without overwriting custom tax entries in client-specific tables. I have not been able to independently confirm this (we haven't customized in this manner in my organization), but this would represent a relatively significant simplification of the process.
The official user guide can be found at http://service.sap.com/hrusa -> Country Information -> Americas -> United States of America -> Human Capital Management -> Resources -> User guides -> Synchronize Payroll Tax Data User Guide .
The FAQ can be found in Note 2082725 .
Although the Sync tool has been available for a year, it continues to undergo fairly rapid improvement. Therefore, new Notes are likely to continue to be released for some time, and recommended practices with the tool will evolve. As this happens, I will update this blog with the latest recommendations. Also, I invite your comments and experiences, especially with regard to practices for more complex scenarios.
3/13/2015: Note 2127736 re-released, eliminating activation errors during Note application.
3/17/2015: Note 2128332 released, correcting issues with client-specific transport not correctly updating some tables.
4/1/2015: Notes 2130801, 2135503, and 2149145 released, correcting various issues, including sync problems with BTXFORM, T5UTR, and T5UTX.
4/23/2015: Notes 2155723 and 2160075 released, introducing a new tax type for North Carolina and correcting transport problems with T5UTR and T5UTW.Source: scn.sap.com