Sap Integration Configuration Guide
Sap Integration Configuration Guide
Copyright Notice
© 2022 Thomson Reuters. All rights reserved. Republication or redistribution of Thomson Reuters content,
including by framing or similar means, is prohibited without the prior written consent of Thomson Reuters.
Thomson Reuters and the Kinesis logo are trademarks of Thomson Reuters and its affiliated companies. More
information can be found here.
License Agreements
Proprietary information of Thomson Reuters. Disclosure, use, or reproduction without the written authorization of
Thomson Reuters is prohibited.
In compliance with the license agreements for the Open-Source Libraries leveraged by Thomson Reuters. Our
customers can obtain copies of these libraries by contacting Technical Support at
[Link] The software documented within is Patent
Pending in the United States.
DOCUMENT HISTORY
VERSION VERSION DATE SUMMARY
NUMBER
TABLE OF CONTENTS
Table of Contents iv
Introduction 1
Welcome to ONESOURCE Indirect Tax Integration for SAP 1
Audience 2
Prerequisites 2
Resources 3
Support Protocol 4
Style Conventions 5
ONESOURCE Indirect Tax Configuration Requirements 6
Common Concepts 6
The User Menu 8
Table Configuration for Installation 11
Group Configuration 14
Base, Route, and Journey Configuration 18
Other Configuration Tables 25
BAPI Configuration for Posting 67
Tax Data Mapping 75
Flexible Field Mappings 75
Miscellaneous Field Mapping Notes: 95
Address Mapping 96
Registration Number Mapping 103
Determination Setup 110
Tax Code Qualifier Configuration 110
Tax Code Qualifier Examples 112
Maintaining Zone Aliases 117
APPENDIX 1: Other Features 121
Data Popup Tool 121
Reconciliation Extract Report 123
Adding Custom Fields to /IDT/D_TAX_DATA Table 125
Special Note on VF06 Background Batch Jobs 126
APPENDIX 2: References 127
List of Journeys 127
List of Routes 133
List of Bases 135
List of Delivered Tables 141
Reserved Attributes 146
v
l Fast, accurate sales, use, consumer’s use tax, and VAT results.
l Monthly tax rate and rules updates for over 175 countries.
l Integrated tax calculation with SAP minimizing user decisions and tax errors.
l Removal of the need to change SAP tax codes each time a rate/rule changes, eliminating business
interruptions, and running out of tax codes in SAP.
l Complete audit database from which you can generate both standard and custom reports as well as returns.
ONESOURCE Indirect Tax Integration for SAP 6 is a new interface designed, built, and maintained by Thomson
Reuters. It’s a new global tax integration solution designed from the ground up with integration pointing into SAP
ECC application modules as desired. It consists of a data collector, tax interface, and return process of tax results
to the calling application with G/L integration in support of downstream SAP processes such as standard VAT
reports and returns processing. It makes use of the SOAP (Simple Object Access Protocol) provided by SAP to
communicate with ONESOURCE Indirect Tax Determination. The new Integration enables worldwide tax
calculations, including VAT, US Sales and Use Tax, and other country-specific taxation.
The interface is entirely built within the SAP Development Workbench, including a user menu for all interface
related configurations, setups, and reports. The interface has a new field mapping solution allowing a Tax
Business Analyst to map SAP data to Determination and vice versa via a customization table, eliminating most of
the user-exit coding of the past. Tax calculation logs can be accessed via a transaction with a search function
from within SAP greatly simplifying tax setup, analysis, and troubleshooting.
Audience
If you are responsible for overseeing setting up ONESOURCE Indirect Tax Integration for SAP, you will need to
coordinate help from the following people:
l Tax Professional
Make this guide available to each of these contributors to ensure you have a successful installation.
Prerequisites
For a seamless and successful deployment of Integration for SAP we highly recommend that you follow the
instructions in the guides listed below in order:
l Special Functions
When working on Integration for SAP you must have knowledge of the SAP tax features, covering all aspects of
FI, MM, and SD and have spent time either as an expert configurator or consultant in these areas. Because the
setup of tax integration with ONESOURCE Indirect Tax also includes technical work in the ABAP Workbench,
such as data dictionary changes and ABAP coding, you must be able to understand and interpret these changes
as well. We recommend that you assemble a team to implement this product because it requires both functional
and technical input. Your team should include someone who understands business requirements and processes,
as well as someone who can implement the required software changes.
Please take the following into account before setting up the Integration for SAP:
l This guide assumes a fresh install of the Integration for SAP. Customers who are upgrading from a prior 5.x
version of Integration should contact Thomson Reuters Indirect Tax.
l Minimum SAP system version must be ECC 6.0, EHP 5. Please see tested platforms by Thomson Reuters
in Platform Information section.
l Minimum Determination version must be at 5.5 or greater due to the use of the Tax Code Qualifier function.
l It is assumed that the persons who install, configure, and use the tax interface in SAP have some basic
understanding of the overall ONESOURCE Indirect Tax Suite of products and how they interact with each
other.
Resources
RESOURCE DESCRIPTION
Customer Support Look for answers in the Knowledge Base, or open a support ticket.
Installation Instructions (User Guide) This guide provides an overview of the architecture and business
processes as they relate to Sales and Use tax, as well as VAT
scenarios in FI, SD, and MM. The target audiences are the
Business Systems Analysts, Consultants, and Tax Professionals
who set up the tax processes in SAP.
Installation and Programmers Guide This guide instructs you how to install the Integration for SAP. The
target audiences are the Basis personnel who will process the
application of the transports to the SAP system and the ABAP
programmers who will perform the required INCLUDE statements
within the user exits and other coding blocks. There is also
discussion in this manual for the ABAP programmer regarding
customization logic and how custom additions to the programs
should be added to the system if needed in the future.
This guide lists the end-of-life dates for ONESOURCE Indirect Tax
Integrations for SAP.
Configuration Guide SAP tables This guide instructs you how to configure and set up SAP tables
and processes to enable tax calculations to meet your unique
requirements.
Configuration Guide ONESOURCE This guide instructs you how to configure and set up
tables ONESOURCE Indirect Tax tables and processes to enable tax
calculations to meet your unique requirements.
Configuration Guide for Special This guide instructs you how to configure and set up SAP and
Functions Integration tables and processes to enable tax calculations to
meet your unique requirements for special functions within SAP,
including Plants Abroad, Cash Discounts, Deferred Taxes,
Service Entry Sheets, Settlement Management, and Tax-only
invoices.
Vendor Charged Tax (VCT) Guide This guide describes functionality for integrating Indirect Tax
Enterprise Cloud VCT calculations with SAP Global Next
transactions.
Support Protocol
The ONESOURCE Indirect Tax Integration for SAP is built, maintained, and owned by Thomson Reuters Tax &
Accounting Indirect Tax. The business unit has a dedicated group of SAP Business Systems Analysts, ABAP
Programmers, and Quality Assurance people who have built this product. We follow SAP best practices,
development standards, and strive to minimize the impact this solution will have on your SAP environment. With
any 3rd party Add-On in SAP, the vendor providing the solution is responsible for support of that Add-On. In the
case of an issue with the ONESOURCE Indirect Tax Integration for SAP please follow these simple steps to open
a support ticket with Thomson Reuters:
1. Identify the potential issue and gather all necessary facts (log files, scenarios, configurations, screen prints).
3. Provide system environment information such as your SAP Version, EHP and SP level, as well as the
Integration version.
Style Conventions
Style conventions provide a guide as to how to interpret information.
l Dialog boxes, drop-down lists, selections within lists, and check box titles
l Windows
l Menu items
l Document titles
<brackets> indicate user entry. For example, <host> indicates you should replace the text and angle brackets
with your server name.
Book titles are shown in italics and sections within a book are in quotation marks, such as “Tips and Tricks” in the
ONESOURCE Indirect Tax User Guide.
Common Concepts
Many of the configuration tables in the Standard Setup, Customer Setup, and Reports sections of the User Menu
contain columns that are of the same function. Rather than explain them for each table repetitively we will discuss
the column function in this section as its function applies to all tables in the same way.
For the Proxy only: The line with the lowest Sort Order is checked first to see if it is valid for the
current situation. If it is valid then it is selected. If it is not valid then the line with the next highest Sort
Order is checked and so on.
You would not use both the route name column on the same line as the route group column to
designate the path of the transaction.
Description Column
This column is used to describe the mapping for ease of tracking and reference notes.
An asterisk (*) can be used as a wildcard for most of the columns indicating that any value is an
allowed match.
Product Column
The product column has been added (directly to the right of the Standard checkbox on some standard view
tables) because of the release of the new Goods Movement Product that was re-designed to work with our new
Integration approach. With many of our tables being shared by the two product offerings we need a way to
segregate the table entries by product so that future updates to the product will not conflict and overwrite lines
through the transport process. At this point you will see either “GM” for lines associated with the Goods
Movement product and “GN” for lines that were added as needed for the Global Next Integration. As other
products may be added to this new structure and table logic in the future, new product designators will be added
to keep them straight and avoid any conflicts to future product release updates. You will not need to be
concerned with this column as it is only used on standard setup (display only) views of the tables and is used
internally in the upgrade transport creation process.
The menu for ONESOURCE Indirect Tax is broken up into sub areas as shown above. Explanation of the sub
menus is noted below.
l Basic Setup at Install: Is used by the ABAP programmer that is doing the installation of the software to set
the proxy configuration pointing to the Determination calculation URL and create the number range that is
needed for log entries in the system.
l Customer Setup: Is used to set up the customer view of several tables that are also within the standard
setup display only section. Users can override or add to the standard tables in this area.
l Configuration Tables: Is used by the Tax Business Analyst and contains all of the tables that you will need
to consider for configuration of your installation. All the tables you see in this section have a single view for
customer input.
l System Enhancements: Is used in customizing functions when or if you need to create additional
advanced program enhancements to accommodate additional Integration logic that is not already part of the
standard product.
Mappings
As of release [Link] we have changed the menu to include this new section label as “Mappings”.
The Field mapping table has been upgraded to include dynamically generated internal code in order to
dramatically improve processing speed and system performance. It has also been upgraded to an ALV grid type
of user interface for ease of use. The Address mapping table has also undergone a change to the new UI with the
ALV grid feature thus allowing both tables to consolidate under a single transaction code instead of the split for
standard view and customer view. See sections below on use of the field mapping table and address mapping
table that outlines this new approach.
In the Proxy Configuration you will enable the interface to call Determination by configuring Integration to point to
the proxy class, method, and port you created during the install process. A column for User Name has been
added to this table so that a user could configure a proxy configuration specific to a given system user to do
separate testing of a new proxy set up. The set-up of the proxy is discussed further in the Installation and
Programmers Guide
A new column was added to this table as of Integration [Link] and it is required to support the use of 2 possible
WSDL and Proxy configurations if a user is using both an on-premise Determination in combination with the
Cloud Determination 2018.3 version and above. Because new fields have been added to the WSDL in the Cloud
version, separate WSDL and Proxy configuration are possible and would need to be configured here by country.
l If you are only using the on-premise Determination, then you will not need to use the new column.
l If you are only using the Cloud Determination prior to 2018.3 you will also not need to use the new
column.
l If you are using Cloud Determination 2018.3 and above, but you are NOT using any of the Oil and
Gas new fields, then you will NOT need to use the new column.
l If you are using the Cloud Determination 2018.3 and above, AND you ARE using the new fields
then you WILL have to use the new column.
WS Security Configuration
Transaction Code: /N/IDT/WS
A new transaction code: /N/IDT/WS has also been created for the user to establish the special username and
password for each line on the Proxy Configuration table based on the sort order number of the proxy
configuration line. This is an optional configuration that is only needed if the user has elected to utilize the newly
provided BADI for proxy security setting. The data in the transaction is obfuscated in table /IDT/D_WS. We
recommend that you also review the Determination documentation on setting up the security on the
Determination side as these two functions must work together. All configurations for this subject matter on the set
up of proxy security using this optional table and new BADI for proxy security is discussed in the Installation and
Programmers Guide.
The SOAP request and response can be logged in SAP in XML format. Each log is assigned a unique log number
for management in the system and ease of sharing with other users when troubleshooting. You will need to
confirm that you have a log number range established in this table to establish the number identifier for the log
files as they are created for each document entered.
Group Configuration
In this section we talk about the set-up of groups and how they can streamline your mapping and reduce
duplication.
Country Groups
Transaction Code: /N/IDT/COUNTRY_GROUPS_V
The Country Group table is the first of the tables that you will want to consider doing your own customized
configuration of the system and allows you to streamline your other configurations by automatically replicating the
same logic for a group of countries at the same time. This can be extremely helpful in the configuration of the
region-specific rules where you want to maintain the same consistent table mapping of fields for a large list of
possible countries, i.e. Europe, North America, Asia, etc. The use of country groups can dramatically reduce the
amount of lines in your mapping and get rid of duplicity across like country set up.
The standard view of this table was set up because we are now sending as part of our setup for Brazil and India,
configuration that is using the Country Group “BR” and “IN” in the standard mappings. Other country groups could
be possibly configured here if needed to segregate country specific content in the future.
This view of the table is where you will add your own country group configuration to the table for use in other
tables such as field mapping. Example as seen below is not standard content shipped with the product. Your
table will be shipped blank when first installed for the first time. You will need to enter any group names you deem
needed for your install.
After setting up the country group names in the prior table you are now ready to match a group of two-digit
country codes to each of the country group names. In the example that we show here we have mapped several
countries to the EU country group, and others their respective country groups. A country can only belong to one
country group at a time. If you try to assign a country to more than one country group you will most likely
encounter system errors as our program logic is not designed to handle multiple assignments at this time.
The country used for matching up to the country group during transaction processing is the
Company Code country of that transaction.
Note that the country BR (Brazil) is used in the standard view of this table and should not be
assigned to another country group now, as it will cause program errors assigning to more than one
group name.
Route Groups
Transaction Code: /N/IDT/ROUTE_GROUP_V
We ship a set of preconfigured route groups to assist in the configurations, mainly in the standard field mappings.
The above list of routes is logically grouped into route groups based on common business processes like creating
sales order, sales billing, purchasing, LIV, and financial transactions. Additionally, customers can create their
own route groupings.
As a customer, you can create your own route groupings by adding route and naming a group. In the example
above, we have grouped three routes into a logical group of SD.
Base Mappings
Transaction Code: /N/IDT/BASE_MAPPING_V
The Base object makes possible the use of configurable field mappings. It is a way to dynamically represent
relationships between different levels of the XML structure and how they relate to each other. This allows a
configuration driven code, rather than hard coding structure relationships. It also allows Thomson Reuters make
changes in the interface easier. This table is view only and not modifiable by the customer. You can see in the
view above that there are base mappings listed here for the Global Next product but also several at the top for the
Goods Movement (GM) product. If you do not have the GM product installed in your system you will likely not see
the GM line mappings as they are now only added when you transport in the Goods Movement product to overlay
over the standard Global Next table structures. The Base mapping table has been moved as of release [Link] to
the new Mappings menu along with the new field mapping table and address mapping table transactions.
This table controls which route is responsible for what process in SAP by mapping the route to the document
category within Sales/Distribution (application V in first column) and Purchasing (application M). This table is view
only and not modifiable by the customer.
As of the transports for the [Link] release this table will be shipped blank and you will need to enter all the fields
as shown in the screenshot above.
This table is used to turn on or off the various routes in the system and tie the route to the required Condition
Formula (AltCty) and Condition Base Value (AltCBV) that is referenced in the pricing/tax procedure. You will
need to maintain the condition formula values based on the formulas created in the Install and Programmers
Guide -> “Creating Condition Value Formulas” before executing any transactions in SAP.
Additionally, this table can be used to control whether the Integration is to be used for a given module of SAP by
country group or company code assignment. In above example we have assumed Integration is used in all
countries and all business processes. However, configure this as your business might require, for example native
SAP tax calculation for AP and LIV/Purchasing but use ONESOURCE Integration for SAP in SD and AR/Billing
areas. More specifically you may wish to:
l Maintain some company codes to use Integration 6.x only for Sales transaction and not for Purchasing and
Accounts Payable.
l Maintain some company codes set to use an older version of Integration for some company codes and the
New Integration 6.x for others.
l Use native SAP calculations for some modules and Integration 6.x for others.
l Manage their conversion of company codes gradually to the new version over time.
Customers upgrading to 6.3 or later releases from previous version (< 6.3) of Global Next, delete
the existing entries and re-create. You can use the table below as a guide to copy and paste to your
configuration for either new customer or update as needed. Modify AltCTy as needed.
/IDT/ROUTE_NON_ 100001 * * TX 0 0
GROUP_DOC_A_GL
/IDT/ROUTE_NON_ 100001 * * TX 0 0
GROUP_DOC_GM
/IDT/ROUTE_NON_ 100001 BR * TX 0 0
GROUP_DOC_GM_BR
/IDT/ROUTE_ 100001 * * 0 0
UPDATE_AUDIT_DB
You can override our standard delivered mappings in this custom view. In the sample above, Self-Assessment
journey was activated for company code 4000.
It's required that you use the table as shown above and make sure that initially you have it configured as shown.
This would be the standard and usual configuration for this table. This table was preconfigured as part of the
installation transports, but without the Condition Type (CTyp) field populated. As of release [Link] we have
elected to not populate this table as many of our upgrade customers have additional configuration that they have
added to this table that our transport was clearing. You will need to input these route names and condition type
values as part of the initial system setup before executing any transactions in SAP. You will use the condition
types that were setup in Configuration Guide for SAP Tables. Your condition type column should look like our
example above if you elected to use the same ZITR, ZITE, ZITD, ZITF conditions as noted in the guide. However,
if these condition type names were already taken in your system prior to your install, yours may be different. The
condition types maintained here will drive what condition is used when displaying tax results in the transaction.
Customers upgrading to 6.3 from previous version of Global Next, delete the existing entries and re-
create. You can use the table on the next page as a guide to copy and paste to your configuration
for either new customer or update as needed.
The condition types mapped should match the Nature of Tax meaning from Determination:
Percentage: Condition with a condition category of “A” for Percentage (ZITR in our sample)
Fee: Condition with a condition category of “B” for Fixed amount (ZITF in our sample)
In some complex situations or based on some countries tax law, a specific condition type might need to be used
to drive reporting, printing, or legal processes. For these cases the ERP_Tax_Code field is optionally available in
this table. You would be able to setup a Tax Code Qualifier that is tied to a ERP_Tax_Code uniquely identifying
that scenario. Based on that result you could then map to a special condition type. This condition type should be
setup like ZITR or ZITF using the same template as outlined in the SAP configuration section.
Above sample applies to company code 7000 only, if the result ERP_TAX_CODE is AC_Z01 then the condition
type assigned in the Orders pricing procedure will be ZITB.
Once you populate this table with a new installation you will have to check it with every new release
update to the product that you apply to make sure that any new routes get added if new routes are
established within the release being applied.
Example: in [Link] release two new routes were added for Settlement Management:
/IDT/ROUTE_GROUP_BILLING_SM_SD
/IDT/ROUTE_GROUP_BILLING_SM_MM
And one new route for Deferred tax Reverse charge scenario
/IDT/ROUTE_NON_GROUP_DOC_DT_RC
Three lines for each new route would have to be added: one for fee, percentage, and exempt
statuses for Nature of Tax along with the correct condition type.
In standard SAP taxing scenarios, the customer (TSKD-TAXKD) and material (TSKM-TAXKM) tax indicators
would be used in condition records to drive taxability via a tax code. With Integration for SAP’s use of a driver and
results tax code, a custom table had to be created to manage the same concept. We still use the data in the
master records. The customer master tax indicator with potential values of taxable (1), not taxable (0), or force a
tax calculation (2), and others. The same is true for material master tax indicator. A force code is not applicable
for the material as Determination will override this for the materials.
You will need to maintain this table as part of the initial system setup before executing any
transaction in SAP. This is one of 3 tables that need to be maintained immediately after transport of
the system.
The combination of these indicators drives taxability in Determination via the XML field IS_EXEMPT. This field
can have three different values:
Blank Determination decides if the transaction is taxable or not based on current Determination rules configured.
Always tax-exempt Force an exemption and override what Determination would decide.
Always taxable Force a tax calculation and override what Determination would decide.
Best practice is to set all your customers and materials to be taxable and let Determination control
the taxability and therefore the return of correct taxing and exemption information for correct invoice
printing, reporting, and compliance functions.
Above is an illustration example for explanation purpose only, this table is shipped empty. There are two main
functions that this configuration can provide:
1. Map tax codes that are designated as exempt override codes using the IS_EXEMPT XML field.
The benefit of using designated override tax codes is that they can be easily identified and reported on. You
might want to review at month end closing which transactions were overridden and why, if the taxing decision
made was the correct one, or if an adjustment is required. The use of override tax codes could also indicate a
need to revisit tax policy setup, configurations, and processes as they indicate an opportunity for better tax
automation.
In our example we have established A0 as an output tax exempt code and V0 as an input tax exempt tax code by
designating them in the “Is Exempt?” column as TRUE. These two codes could then be used in place of the O1 or
I1 driver tax codes on a specific transaction and would tell Determination to ignore the normal logic and consider
the line exempt for all taxes on that line.
This can be achieved in providing a value in the XML TAX_CODE field that either matches an already established
“9000” rule in Determination or custom rule.
Sometimes there is not an established 9000 rule that has the correct tax code that is needed for your mapping. If
that is the case, then you will have to have a custom rule created. For example, if the 9000 rule for STANDARD
does not exist, and you have a line mapping in your table for the override of Y1 for STANDARD, (see above) then
create a custom rule with this Determination tax code of STANDARD. There must be a one to one maintenance
and match between the entry in your Determination tax code table configuration as noted above and the tax code
rules in Determination.
In below example we have a Thomson Reuters provided 9970 rule that is coded as reduced rated. If the TAX_
CODE in the XML request has the value REDUCED, then this rule is used.
To have a specific SAP tax code use the 9970 rule for a reduced tax calculation, that tax code would be mapped
in our configuration table in Determination Tax Code to a value of REDUCED. In our screenshot shown above,
this is the case for Y2 and Z2, both would use rule 9970.
This table is used for specific logic used for US and US territory Sales and Consumer Use tax self-pay accruals.
This table ties the tax codes used for US Sales and Use tax to the correct Company Role and Tax category fields
as well as telling the program that an offsetting account entry is needed to balance the Consumer Use Tax self-
accrual.
1. Relevant company codes that are in the US or US territory and are configured for Sales and Use tax. You
will also need to identify what customers in specific countries are shipping into the US that are calculating
and charging US sales tax. They will be needed to configure the ship-from country and country group
columns on the left side of the table.
2. Identify all the tax codes used for Sales and Use tax on each company code per step 1.
3. All tax codes used for Sales tax should be designated as using the Seller Company role.
4. All tax codes used for Consumer Use tax should be designated as using Buyer Company role.
5. All Consumer Use tax codes should also have the check box checked to create the offsetting entry to
expense the use tax to account key NVV (another account key can be selected but must be created with like
configuration to the standard SAP account key NVV if desired).
This table is normally shipped as blank and only has a customer view for customer input. To use the I1 and U1 tax
codes for the US company codes you will need to configure this table like our example that we show here. In our
example we used “*” for the ship from country group and ship from country columns. You may elect to use this
wild card assignment or can specifically list different countries based on your accounting policy and tax code and
account key assignments.
The seller role is used on transaction for vendor charged US sales tax so that the calculation is done correctly and
uses sales tax rates from Determination content. The buyer role is used when the transaction is supposed to be
self-accrued based on Use Tax rates in Determination content. Use tax rates can quite often be lower that sales
tax rates as some lower level jurisdiction are not involved in the scenario for use tax. Use tax calculation using the
buyer roll will only produce a single tax block to calculate the tax liability and the entry requires an offsetting
posting to be created within Integration in order to balance the self-accrual entry and post the debit to the
expense account using account key NVV. This is accomplished through the proper mapping of this table for the
driver and all downstream tax codes.
It is important that you not try to mix a driver tax code that is set to seller role with a final tax code that is used for
buyer role use tax accrual or errors will occur within the transaction. This is why we tell you to create both a I1
driver tax code and a U1 driver tax code and use them as needed to drive the transaction to the correct
buyer/seller role and proper calculation. Transaction entry personnel need to be instructed as to which code to
use based on the needs of the transaction. All final tax codes that are used in TCQ logic must also be configured
in this table. They are required for proper calculation of tax at all points in the transaction process.
This table has been created to support functionality for countries that require a tax calculation adjustment on cash
discounts taken at time of payment. (See Appendix 1 section on “Cash Discounts Taken/Received at Payment for
country configuration requirements) For purposes of demonstration we will use configuration for Germany as an
example. The table is used to map the original tax code from the cash discount document line to a determination
tax code to be able to drive the TCQ correctly for cash discounts adjustments. See sample view of the table
below:
This is an example and will be different for your country configuration based on the list of tax codes that you have
elected to set up for the specific country. Only countries that are configured to accept cash discount tax
adjustments at time of payment are needed in this table.
The table will be shipped empty upon your installation of the Integration and the user must configure for each
country configured for cash discount at time of payment. To configure this table the following steps should be
addressed:
1. Identify all tax codes that you have established for the related country required in the table and enter a line
for the country and the tax code.
2. Identify and input the applicable Determination LINE.TAX_CODE that matches the SAP tax code function.
For example, for an A1 standard rated output tax the Determination tax code would be “STANDARD”.
Customers would also need to make sure that they have either a custom rule or a 9000-rule
established for each of the SAP tax code to Determination tax codes mappings in the list. There are
9000 rules established for some of the required tax type but some custom rules will likely be
required in Determination to round out the list from what is missing in standard content.
If the line-item tax code on the invoice being adjusted for cash discount matches an entry in this table, then
a. Pass the country of the company code and the Determination tax code from the line in this table to the
request for Determination to calculate the correct tax on the adjustment based on the custom rule logic set
up in determination.
b. Populate attribute 46 at the line level in the request to Determination with a 2-digit code of the two-digit SAP
tax code from the table. Example: tax code is A1 and attribute 46 request would be populated with “A1”.
Additional tax code qualifiers would need to be set up for this cash discounts mapping that utilize the
standards TCQ and add the attribute 46 to the conditions on the TCQ. See further explanation of
this in the section on tax code qualifiers.
This table is provided to map a variety of general settings for Integration. This table is provided empty, the picture
above is for illustration and explanation purposes filled with sample data (yours might be different).
Freight
To allow Determination to assess taxes on the portion of a price associated with freight we need to send freight
specific information. This is done by creating a related line to the product line for freight in the request XML. If the
requirements for freight are fulfilled based on this table configuration then the following logic applies:
Request:
l Create a freight line in the XML request by copying the existing product line to a freight line
l Sets the related line number on the freight line to the non-freight line's line number
l Sets the description on the freight line to "Freight for line <original line number>"
l Sets the freight line's line number to the non-freight line's number plus one million (this way we can tell which
lines coming back from Determination are freight)
Response:
Determination is returning the freight line as a related line to the non-freight line. Both are then returned as
separate lines. The authority names for freight authorities can be prepended based on configuration. Each taxing
authority is returned uniquely; if there are 4 taxing authorities involved there could be 8 lines in total; 4 for product
and 4 for freight.
When there is Freight in a transaction, the Line ID for the freight line that is following the product line should be '2'
as it is a unique key in audit database. The line number should be prepended with '1'.
If the line number of the product line or Line ID 1 is 000010, then the Freight line number should be 1000010 and
line ID is '2'.
CONFIGURATION DESCRIPTION
OPTION
Freight product code A product code used in Determination to drive taxability for freight. This code will be
sent in the PRODUCT_CODE field of the XML request in the freight line.
Freight condition The sub-total field configured in the pricing procedure indicating the freight price
sub-total values.
Freight condition text A prepend text to indicate freight in the condition screen, for example F: It is
prepend recommended to keep this short since the display field in SAP is 20 characters long.
In this example the value MYSAMPLE_ would be prepended to any transaction from this system. So, in the case
of a transaction for company code 3000 the value send to Determination would be MYSAMPLE_3000.
It is required that the External Company ID in Determination is configured to match the field value of the
prepended company code if using this feature.
Override Addresses
The four override address options on the General Configuration table are used to establish the name of the new
IDT address fields that can be added to the MIRO invoice entry line-item detail. Here you would identify the name
of the field that you added in the other setup and configuration this optional MIRO feature. If you wish to have the
ability to change the ship to address at time of MIRO invoice entry then this would be required configuration to tell
the system the new field name within the program.
YES = Enable split account assignment (Taxes are at the Individual Split Account Assignment level)
Not Equal to YES = Turn off feature (Taxes are at the Purchase Order Line level)
Please note that if TAXATION FOR SPLIT ACCOUNT ASSIGNMENT LINES ON PO is enabled (Option 05 =
YES) then
1. Ensure that only a fixed number of account assignment lines are entered so that total of tax lines do not go
beyond 99.
2. Or write a customer specific logic to summarize tax lines “within” a PO line (not for the whole PO).
ONESOURCE Professional Services team can help with this.
The Retry Tool supports all Global Next modules and is limited to a maximum of 2,000 line items.
The Retry Tool is supported with Global Next versions [Link] and up.
Configuration Instructions
Prerequisite: The Retry Tool transport must be imported into your system prior to configuration.
Step 1
From the Global Next menu, navigate to Customer Setup and Extensions > Configuration Tables > General
Configuration Values or to transaction /IDT/GEN_CONFIG_VALS.
Step 2
Click the New Entries button and populate the following fields:
FIELD ENTRY
Route Group Maintain for the relevant Route Name or * if applicable for all
Route Name Maintain for the relevant Route Name or * if applicable for all
Country Group Maintain for the relevant Country Group or * if applicable for all
Company Code Maintain for the relevant Company Code or * if applicable for all
Step 3
General Configuration Option: The program expects to receive the following mandatory values and
parameters as described in the table below.
The routine will not function if any of these fields are left blank or are not populated in order.
Number of retries 1
Number of retries 5
Configure Logs
This table gives you significant flexibility on the setup and use of logs in the system. New with this Integration, the
logs are now written to custom tables in SAP and a user can locate and search the list of logs quickly and easily.
Changes to the type of logging that you need in your system are now fast and easy with no down time or
interruption. Log configuration changes will go into effect immediately after saving the change. This table is
delivered so that maintenance in a production system is allowed. Your SAP Security Administrator can set this up
for you. Access can be controlled via the transaction code /N/IDT/LOG_CONFIG.
There are two views to this table. /N/IDT/LOG_CONFIG_V transaction is in the standard tables section of the
menu and is populated with one line as part of the installation of the product. Transaction /N/IDT/LOG_CONFIG
is in the Customer user menu and is where system users can manage their own setting for log level by person,
transaction code, company code, etc.
For the Customer view of this table the sort order begins with 100001 through 999999.
COLUMN DESCRIPTION
Username The SAP system logon ID of the user logging should apply to.
Application To isolate a network connection issue, you may want to limit your Log Level to a given SAP
Server server that may be experiencing a problem.
When configuring logging, performance implications should always be considered as well as space
considerations. All logs are written to table /IDT/D_LOG. This table can grow quickly and should be
monitored. See information in the User Guide on the log archive function.
The standard line with sort order of 10 is provided in this table as part of the transport. It is
considered the default for a production system and therefore set to log level “ERRORS”.
This table is used to negate one side of double-sided tax entries. Certain tax types like acquisition tax or reverse
charge scenarios calculate a self-pay accrual as an outgoing tax accrual and an incoming side for the recovery
amount. Two tax blocks are returned from Determination in these scenarios and one side of the entry must be
negated so that the net balance from the Determination tax calculation correctly nets to zero with a debit and
credit to the correct General Ledger accounts that are assigned. In this standard view of the table the user cannot
change the entry, but it is available for viewing and is populated with the five tax types that are used for the
double-sided entry scenario. The output direction for these tax blocks are identified as the ones requiring the
negation entry.
This view of the table is available in the user configuration section of the menu for use by the customer to either
override a line-item from the standard view of the table or to assign a new entry. The table is shipped blank and a
user will not likely need to make any adjustments using this table. In the print screen above we show the example
of an entry in the customer view of the negation table that changes the standard table view for the AC tax type.
Here the negation has been switched to the “I” direction rather than the O direction. This is just an example of how
this customer view of this table could be used if needed.
When the entry is triggered from the table below the LINE.USER_ELEMENT.ATTRIBUTE46 is populated with
the tax code that was used. This attribute is then also used in the tax code qualifier conditions in order to drive the
final tax code to the same final tax code for reporting purposes. See example above of the TCQ for the self-
accrual input tax code for Canada PST in British Columbia.
Table Configuration
Transaction code: /N/IDT/OFFSET_CONFIG
Now that you have created the tax code and the TCQ then next process is to configure this table as shown above
with two options for setting the tax parameter and tax parameter value:
Option 1: Tax parameter set on tax type allows you to then set up to 10 values in the tax parameter value field.
Each must be separated by a comma. This option can be used if you want to drive the mapping based on a set of
tax parameter values that are used for the various applicable transactions.
Option 2: Tax parameter set on authority type allows you to then set up the table entry based on the authority (in
this case PST) that you want to self-accrue for the transaction.
The offset account must always be either to a NVV type of account key that drives the posting to the expense
account, or you must set this to an account key assignment that will post to another expense account from the
P&L. This side of the entry coming from this table is never posted to the audit database and must be used only for
expensing the debit posting side and never assigned to a recoverable tax account on the Balance Sheet or to a
liability account that must be reflected in audit.
Transaction: /IDT/AUTO_JOURNEYS
The new journey /IDT/JOURNEY_SELF_ASSESSMENT must be mapped in this table for each of the routes that
you need the offset to work within. The FI, LIV, and non-group A/P routes have been mapped to activate this
response logic for vendor invoices. If you have other processes that you may also have need for an offset
function, then other routes may also be required. In this example above, we did the mapping for only company
code 4000 for a Canada scenario however you may wish to leave this with an “*” in order to cover all possible
company code requirements.
This table is used by the Plants Abroad Journey to identify which billing types are to be used for the Plants Abroad
calculation. The table is customer view only and is shipped blank. The user will need to populate the table with the
correct billing type for their specific Plants Abroad calculation and configuration settings. In the standard set up
scenario this would be billing type WIA however a user could elect to create a different billing type for this purpose
and would need to enter the new billing type here for the Plants Abroad journey to pick it up correctly.
To remove an entry from this table, switch over to change mode on the table, select the line you wish to delete
and then click on the delete button (shift F2).
To add an entry to this table, switch over to change mode on the table, select the New Entries option from the
app menu and enter the new billing type from the drop-down list. Hit ENTER to save the entry.
This table defines what “FI Processes” might run for a specific document type on the transaction and lists them in
order of preference.
Each “FI process” then has logic to see if it is appropriate for the current transaction.
The standard view of this table contains some of the mappings of standard document types as they relate to the
hierarchy of tax calculations used for the document type. You will see that there are multiple tax calculation
process classes assigned to a given document type code, for example: SA document type could use the following
nine process class:
1. /IDT/FI_PROC_DEFAULT_GL
2. /IDT/FI_PROC_CUSTOMER_CREDIT_M
3. /IDT/FI_PROC_CUSTOMER_INVOICE
4. /IDT/FI_PROC_VENDOR_CREDIT_MEM
6. /IDT/FI_PROC_LIV_CREDIT_MEMO
7. /IDT/FI_PROC_LIV_INVOICE
8. /IDT/FI_PROCESS_DEFERRED_TAX
9. /IDT/FI_PROCESS_FB05
The sort order of these classes is dependent on the given document type. A document type for a credit memo
would use the credit memo class as higher in this sort order than an invoice class. A document type for an invoice
would use the invoice class first followed by the credit memo class. Not all classes are assigned to the table
depending on where the document is used. Example: for a customer document type, you would not assign a
vendor class and vice versa. The list should sort from the most specific to the most general being at the top of the
sort. This is why you see the deferred tax and FB05 process classes listed last on the sort order for SA document
type as they are the most complex and specific.
The table below lists the various tax calculation process classes including a brief description.
The table is part of the standard settings and set as shown as part of the initial transport process however your
system may be configured to use more than this list of document types or you may have created your own
customer document types. The standard view of the table as provided is not all inclusive and you must add
entries to the customer view of this table based on your specific needs.
If you go back and review the print screen of the standard view of this table, you will see that there are two lines at
the beginning that are populated without a document type being specified. The two lines are added to the table
for specific situations where the document type is not available at the time of the document line being called. This
happens within the calculation for a purchase order line-item and for a deferred tax processing line-item. Both
classes are added to this table for specific processing needs that occur when the tie to a document type is not
possible due to system logic within SAP. You will not need to worry about these two lines, nor will you have to
adjust them within the customer view of this table. They are internal to our processing logic.
This transaction will take you to the Customer view of this table in the Customer Setup menu. In this view of the
table you can add your own lines for any missing document types that you need to configure, and for missing
class configuration for all document types you are using. Note that the sort order range again uses numbers
starting at 100001 through 999999. In the sort order the program starts with the highest number and the most
applicable highest number in the mapping is used.
The table initially comes up in display mode. Switch to CHANGE mode and select NEW ENTRIES. This table is
shipped blank for user input. Because this is a Customer view you will not be able to check the standard
checkbox as this is only used on the standard view of the table.
If you have configured your system differently so that customer credit memo and invoices are using a custom
document type rather than SA for your given transaction you would want to remove the line 20 and 30 from this
list. To do so the entry in your customer setup view of the table would look like this example below.
Because of the way the table sort order works it will pick up the last applicable line entry starting with the
customer view of the table (100050,100040, etc.) and ending with the last sort order applicable from the standard
view setup (50,40,30,20, etc.) for the given document type.
It is important that you check your system configuration for each document type and make sure that this table has
the appropriate classes listed for the document type you are using based on the list of Account Types that have
been checked as “allowed” for the document type. To do this, go to the following transaction:
Transaction: SPRO navigate to > Financial Accounting > General Ledger Accounting > Business
Transactions >G/L Account Posting > Make and Check Document Settings > Define Document Types.
Select your document type and double click to go to the first screen on the document type.
Review the account types that have been allowed for the given document type. If Customer has been checked
then you will want to have the Customer Invoice and Customer Credit memo class listed for this document type in
the /IDT/FI_CONTROL table. Likewise, if Vendor is checked then add the Vendor Invoice and Vendor Credit
Memo Class. If G/L account is checked then you will likely need the Default G/L class. If this document type will
be relevant for deferred taxes or cash discount processing then the respective classes will also need to be added
to the list for this document type in the table.
If you do not do this check and verification process you will likely have issues with the document
type not behaving correctly and incorrect tax processing assigned.
l The tax code is not relevant to tax at all and the user does not want the tax code included in any calls to
Determination.
l The tax code is one that will be used in a specific module of SAP using SAP’s native or internal tax
processes and will not be used for a call to Determination for an external tax calculation.
For both situations a table has been added so a user can identify these tax codes to prevent a call to
Determination. This table is available in the Customer Setup and Extensions Configuration Tables menu.
By adding a given tax code for a specific list of countries or company codes you are telling the system to not
include this tax code in any request call to Determination for your country/company code combination. A user can
note in the Option column if the exclusion is because the tax code is exempt for tax completely, or if the tax code
is to only be used by SAP internal or native tax processing separately from a call to our Determination tax engine.
This table has only a customer view and will be shipped empty upon download of the software.
Tax codes that are added to this table should be used like a driver tax code to tell the system the item is not
relevant to a tax calculation. This is different than the use of a tax code that is brought back from a tax call as
being exempt from tax after a call has already been completed by determination. In such a case a user should
have two different tax codes.
l One should be used via the tax code qualifier as an exempt tax amount or zero tax. Entries using an
“Exempt” tax code will create a call and calculation in Determination that will go to audit along with other tax
codes on the same transaction. They would not be included in this table. Such would be the case if a trans-
editor sent a tax block for one tax authority as taxable and a second tax block on the line as exempt for
another tax authority for possibly a regional, city, or district level tax.
l A tax code as Not Relevant to tax would be used on the line as a driver and would not make a call for the
whole line-item on the order. It would be used on this table to tell the system to not make a call at all for this
item. No tax will be calculated, and nothing sent to the audit database for this line.
The program looks for an account key associated with this non- relevant tax code as part of an internal check. We
therefore need a “dummy” account key to internally have the program find and use for the non-relevant tax code
assignment. We can do this by creating a new configuration within the general configuration table and create the
dummy account key using transaction code OBCN.
1. Set up “IDT” account key in OBCN with same configuration as current NVV account key.
With this new feature as provided in the Customer Configurations Tables menu, a user can once again filter out
these tax types. The prior version of this also allowed the option of filtering based on other objects such as by tax
code or authority name. The new table also allows for this via a drop-down list in the options column of the table.
See example below:
If the AUTHORITY_NAME option is selected, then the user could input in the General Configuration Value
column the name of the tax authority that is being brought back in the XML thereby filtering based on the authority
name. Similarly, the TAX_CODE option could be used if a filter omission of a given tax code is desired.
The AUTHORITY_UUID option was added as a more stable mapping based on the UUID number of the tax
authority. Whereas the AUTHORITY_NAME field value can change over time, the UUID number does not
change. We recommend that if you desire to filter based on the authority that you change your mapping to use the
AUTHORITY_UUID instead to avoid a future issue with the name change. See example above. The UUID can be
copied from the XML in the log file.
The second column of this table is the sequence number column. A user would populate this in numerical order
for each line of the table. This table is a customer use table and is shipped blank with no entries. If you want to
filter any results based on the criteria you will need to enter new lines to this table.
Expected Results:
Suppressed taxes will not be shown in normal XML log (NON_AUDITED log).
But suppressed taxes will be shown in audit log. Meaning AUDIT logs will be shown with ALL the taxes.
Audit database will contain all the taxes including suppressed and non-suppressed.
It is very important that you understand that mapping a tax type to this table that is bringing back a
value other than zero will cause a reconciliation issue between your general ledger and the
Determination audit database. If you filter a non-zero tax value the entry will not display in the G/L
but it will display in Determination audit. The Reconciliation report from the reporting module will end
up showing a reconciling item difference between the two systems that you will later need to deal
with in downstream compliance and reporting processes. It is best to not use this filter function for
non-zero calculations.
Transaction: /N/IDT/TAX_SUM_CONFIG
This table is shipped blank and the user can elect to input a summarization like the example shown above. The
table can be configured for specific country groups and company codes. In the example above all four fieldname
options are shown and this would provide the most detailed example with the least amount of line-item
summarization based on all four criteria at once. One could also elect to have the maximum amount of
summarization by only entering the first line of G/L Account. In all cases it is imperative that you start by using the
G/L account fieldname first in your selected setup. This table summarization logic will also keep debit and credit
entries summarized as separate totals to avoid any possible logic errors where the net of the lines sums to zero. If
you elect to add additional levels of summarization then the tax code, account key and UUID options may also be
selected.
If you have assigned multiple tax codes to the same G/L account in your T007L account assignment
table then you may encounter an error if you have summarization turned on for G/L account only.
Error FF716 “Error in assigning the Tax Group” may occur when trying to process a document. If
you encounter this error and have multiple tax codes assigned to the same G/L account, then you
must select the summarization by both the G/L account AND the Tax code to avoid this error. See
above screen shot for example shown with both selected.
A new option has been added to this table that provides user the ability to prevent the standard SAP
summarization from happening on the FI and LIV documents. If the user selects this option then the SAP method
that does the standard summarization will be skipped and the other table options on this table will follow
afterwards to allow alternate summarization. This can sometimes be helpful for companies that utilize large LIV or
FI documents that contain many lines and multiple account assignment features that can hit the 999 item limit per
line. Depending on how tax codes and account keys/accounts are assigned, standard SAP summarization may
cause summation of different tax authority items that are not in sync with desired detail reporting needs
downstream (more often seen in US sales tax scenarios).
A new BADI function has also been added to this table as one of the options. A user can elect to use it to add
other custom ABAP enhancements to the summation logic such as limits based on the number of tax lines on the
document, document type, or any other logic that the user wishes to add to the summarization beyond the four
options noted above. For example, you may wish to only have summarization occur on the transaction if there are
more than 100 revenue/expense lines on the document.
The new BADI is /IDT/BADI_ADJUST_TAX_SUMMATION. You can learn more about utilizing this addition via
the Installation and Programmers Guide. This BADI was added as of release [Link]. If you select this option from
the drop-down list on the table then you can activate it and program your required logic within the BADI using an
ABAP program. The BADI must be selected and activated in this table for the logic to be applied for your selected
company code(s).
Currently this table will summarize BSEG and BSET table tax lines only for LIV and FI module transactions being
posted to the General Ledger. We have not extended this functionality to SD billing documents. The process will
be extended to billing documents in a future release of the product.
The /IDT/D_TAX_DATA however may not have all the fields that you require. Currently the tax amount is not
repopulated there and a user may elect to add additional fields to the /IDT/D_TAX_DATA table to have the
required fields for detailed reporting using this table. Use of summarization will require that you play with this
feature given your specific transaction size, complexity, and tax policy. Several iterations of testing and
adjustments may be required.
Workaround: If you use partial payments on deferred tax invoices this issue can be avoided by setting the tax
summarization table configuration to summarize tax lines at both the tax code and G/L account level. By doing
this the lines on the invoice will be summarized into one tax line for the authority and the F.38 program will then
handle the amount correctly and only transfer the partial payment amount to the target tax code.
If you have already applied modifications to this BAPI based on support from our Professional
Services team then you have the option to leave these two tables blank and not use this added tax
call utility. Or, you could elect to remove the modifications and use this process instead. It is your
choice and you are not forced to convert to this process.
Along with the need to make a separate tax call (use of the utility), there are times when a user may wish to avoid
the need for the internal pricing call when the tax is already present within the data file being used with the BAPI
(Possibly for vendor charged tax invoices). Other times the user may wish to post the item to the ledger however
because of upstream processes, may want to avoid any additional posting to the Audit database in Determination
(example of Ariba OK-2-Pay files where the audit call was already applied prior within the Ariba Integration). We
have addressed this need with two additional tables for configuration that can be used to control these two
Integration processing steps. This will give the customer maximum flexibility for such scenarios as Ariba system
postings, transfer of data to a S4/HANA Central Finance environment, and other special cases such as payment
card systems, batch entry of invoices, month end G/L entries, etc.
The purpose of this table is to identify any given batch job that is used to post documents to the G/L using BAPI_
ACC_DOCUMENT_POST. Depending on the given scenario and purpose of this batch job, the user may need
for this batch posting to the G/L to happen without a pricing procedure tax call being performed within the BAPI or
(not the same as the utility included at the beginning of the BAPI) , perhaps without a subsequent posting to the
Determination Audit database being generated. This may be needed for some scenarios such as Ariba postings
that have already calculated tax and performed Audit updates via upstream processes prior to the G/L post. The
table controls the pricing call and audit call based on the two columns of this table Stop TaxCal, and
StopAudUpd. Use the drop down on these two columns to stop the tax call within the BAPI, or the audit update.
Leave the field blank if you wish to have the process complete the call or audit update.
Sender ID is a unique identifier that we are using to give a name or label to the specific job function that you are
performing with the background batch job process. For example, the Sender ID may be something like: Ariba,
OK2pay, AP invoice, P-Card, Transfer, Billing transfer, FI post, etc. Each scenario of batch processing should
have its own Sender ID name so that the Tax Call and audit options can be applied to it based on a matchup of
the Sender Id, Document type, and Company Code per this table configuration.
The BAPI Sender Table is used in tandem with the configuration table to label your specific batch background
job with the desired Sender ID name based on several key fields within the batch job program. Use of this table is
discussed further in the next section.
Use of the Asterisk (*). An asterisk can be used as a wild card in the company code field or the document type
field so that you can specify all company codes or all document types as applicable in the line. Do Not use * in the
Sender Id column or Sort Order column. The Active box is used with this table so that you can turn on or activate
this line on the table or opt to turn it off but keep the line for later use.
Use of Sort Order. The use of the sort order column follows the same logic as the use in other tables such as
Field Mapping. When there is a higher sort order number the program will look to see if the selection criteria
meets the criteria of the higher sort order, and if so will perform the highest line level that applies. In the example
screen above, the first line is a larger set of the second line (sub-set), so for company code 1000 and doc type
KR, the second option will be used. All others that match the first line but not the second, will follow the shut off
logic listed in the first line.
In this table you are telling the system the specific traits of a specific batch job process will be used in combination
to identify a sender ID for the BAPI Configuration table. The Logical System, Program Name, and the User ID
columns are used to identify this batch process as the selected Sender ID. The first three columns in combination
cannot be the same as another line on the table as they are key fields to the table.
If this is a batch job that is being scheduled for EDI/IDOC and run in background, you should populate the first
three columns for each of your batch processes that use these two BAPI for G/L posting. The program name, the
logical system it is coming from as the source system, and the User ID that is used for this batch process should
be identified, however a blank or asterisk “*” will also work. If you have several such jobs and need for them to be
treated differently on the BAPI configuration table (on and off switches), then you will need to either copy and
create a new program name or create and assign a different User ID to the job so that a different Sender ID can
be used and drive the BAPI Configuration to a different line and outcome. If the Job is IDOC or EDI then the
logical system would be populated. If it is not IDOC or EDI, then the logical system column would not be used and
is left blank.
If this is a manually entered job that is not run as a scheduled batch job, then the input is a bit different. The logical
system name would not be entered and would not be input in the BAPI field OBJ_SYS as there is no way to
confirm this against the logical system field in the Sender Table. In this case the user should leave the logical
system field blank and input the user ID that was used and entered in the BAPI for field USERNAME. BAPI
header fields would not be populated for the first four and only populate the USERNAME at the start of the header
for a manually entered job.
This table gives you a visual guide to what we have described above.
An Include is also required in the BAPI within this function to avoid an error with the assigned account key for the
line-item. See Installation and Programmers Guide for further instructions.
If you do not use the utility to make a tax call within the BAPI using the include, then what you will get
as an entry to the tax data table will not go through the tax tab mapping in the field mapping table.
You will only get the data that was entered in the BAPI data table. Data population will be different.
To ensure that you have the data that is mapped in the tax tab journey in mapping you must run the
document through the utility for a tax call. Same goes for the posting to audit. What you will see
without the tax utility call will only be what was posted on the G/L using the BAPI input data.
For usability the table is now combined into a single view and transaction code so that users can see both the
standard mappings and their custom mappings in one table. The table itself is now presented in its entirety using
the options for ALV grid so that users have more flexibility to view the table as well as being able to view it in Excel
mode and download it to Excel formatted files that can be saved to your hard drive. Other field options are also
provided such as filtering, insert, formatting. A new selection screen is shown first so that a user can elect to view
the whole table or any combination of journey sections that they desire as a partial view of the table.
Performance improvements have been achieved that reduce the time for heavy invoice processing on
documents with over 1,000-line-items. Testing has confirmed a 15X improvement on a 3,000 line invoice,
reducing field mapping processing time from 15 minutes down to 1 minute. To achieve this improvement goal, the
programs have been changed to utilize dynamic generated code (versus static code development) to select field
mapping based on configuration done within the field mapping configuration. This is code that would be created
for a specific field and base mapping. If a field mapping or base mapping changes, this code is re-created at the
next tax calculating transaction. The functionality of the new mapper should not change at all and be exactly the
same as the old field mapper.
The new combined transaction now brings you to a field mapping selection screen. If you want to view the entire
table then you just need to select the EXECUTE button to advance to the next screen. If, however, you wish to
select all the mappings for a given journey name or group of journeys then the selection screen can be used to
select the desired section of the table for viewing and maintenance.
As before you will not be able to change any of the rows that are marked as Standard lines as noted by the check
box in the first column. These are entries that are provided as standard configuration and are supplied to the
system as part of the configuration transports when you first load the Integration to your system. Lines that are
not checked as standard are custom entries configured by you. They can override or add to the standard entries
and are of the higher sort order starting with 100000.
This view allows you to review the preconfigured and delivered mappings provided by Thomson Reuters as well
as your custom configuration mappings. This can be helpful when trying to understand a tax result or in building
your own mappings. We will explain the different columns and their use in the section below.
The new combined view of the field mapping table also takes advantage of the ALV grid format which is standard
within SAP. This provides other standard features by which the user can adjust or copy the table lines and
functions as well as the ability to download the table to a spreadsheet document copy on your hard drive. Once
you are in the change mode of the table you will see the icons as noted below that can be used to modify/copy the
data.
As mentioned above this table allows for your own custom mappings as they relate to your company’s tax
requirements, policy, and compliance needs. Next, we will identify the columns on this table and how they are
used to map your desired fields. The Common Concepts outlined earlier might be helpful when working with the
field mapping as well as the Appendix 2: References. For simplification, column fields already discussed in the
Common Concepts topic are not included in below table.
Journey Name You would first establish which journey you want to use for the new
mapping. In order to choose the correct journey, you would ask yourself if
this field is part of what you want to send via the request data going to
Determination, or is it part of the data that will be coming back on the
response? Is it data at the header level of a document or is it data stored at
the line level? Is this an SD order, billing, PO, LIV invoice, or FI generated
document, etc. The journey name column has a drop down so that you
can select from the list of possible journeys that are available.
Source Base This field defines the primary level of where the source data resides, i.e.
document or line level in SAP, or invoice, line, and tax level in
Determination. There are some special purpose source bases provided
too. The drop down allows you to select the appropriate source base and
only supplies the list of bases that are applicable to the journey that you
selected in the prior column.
Source Field Here you specify the applicable source fields for the source base. The
source fields on the request journey side are the available fields from the
SAP tables as listed in the Appendix and all its fields. The response
journey represents the Determination tax calculation OUTPUT structure.
The source fields drop down first displays the list of tables that are
applicable from the prior columns selected. Once you select the table then
the list of fields within the table will display for your final selection. Other
entries may be possible here if you elect to use the other functionality for
constants, calculated fields, and other table driven or user exit examples
as explained below.
Target Base You define what structure the field needs to assign to or retrieved from.
When mapping data to Determination you can use all INPUT XML main
structures of Batch, Invoice, and Line. When mapping data from the
response back to SAP you can map to the Thomson Reuters provided tax
data table. The target base field also has a drop-down option with bases
displayed according to the prior column fields selected.
Target Field In this column you specify the applicable target fields for the target base.
The target fields on the request journey are Determination Batch, Invoice
and Line XML elements. Target fields on the response are based on the
tax data table including custom appended fields by the customer. The
target field column also has a drop-down selection list based first on the
list of tables that are applicable from the prior columns selected. A list of
tables will first display and once you select the table then the list of fields
within the table will display for your final selection.
Only if Populated Flag Used to support conditional mapping in cases where multiple source fields
(OnlyIfPopu) point to the same Determination target field. See sample below.
Adjustment Allows for some limited string manipulations and other type of changes to
a field. See detailed use cases below.
Simple Expression Allows for a code expression to be added as a qualifier. Only if the
expression is fulfilled the mapping will be considered. See Simple
Expressions for details.
An example of its use is shown below where three different fields from SAP are mapped to the same
Determination request field depending on their source module; SD, MM, or FI. In these situations, only one of the
three scenarios would occur on a given transaction.
Consider this scenario based on above example. If the process is FI and the flag would not have been set for SD
and MM, the prior mappings would have been taken into account, returning an empty (NULL) value to
Determination. By checking the flag the SD and MM fields will be ignored and the FI document type will be
mapped to Determination.
Adjustment
This column is used for any kind of adjustments that needs to be done to correct or change the field mapping from
one format to another. An example of this is where we use the adjustment column to ignore the first three digits of
the ERP_Tax_Code and use the next three digits to populate the SAP Account key. Another example would be
where we need to convert a value to an amount instead of text or convert the format for a date.
ADJUSTMENT EXPLANATION
SIGN This will reverse the position of the signage, i.e. turn 100- to -100 and vice
versa. (100- is valid in SAP but not in Determination.) It moves the SAP
negative sign to the right position in the request so Determination can
read the value correctly. SIGN should be used for all fields of type amount
or quantity in the request. It isn’t needed in the response.
CURR_RES_AUTH This will adjust the authorization currency amount on a response from
Determination: used for amount like fields to adjust to the right currency
decimal places based on SAP table V_CURX
CURR_RES_DOC This will adjust the document currency amount on a response from
Determination: used for amount like fields to adjust to the right currency
decimal places based on SAP table V_CURX
BOOLEAN This will turn an SAP value of X into a TRUE or ‘ ‘ (null) to FALSE for
Determination.
DATE This is required to turn the Determination date format into the SAP date
format.
* (multiplier) This will multiply the value by the number after the *, i.e. *1000 would
convert a Determination tax rate of 0.2 to 200 which then is displayed in
SAP as 20.00 %.
String manipulation Allows for simple string manipulations on a value, i.e. +3, (3) would move
to fourth position (offset first 3) and use the next 3 values. So, for an
ERP_TAX_CODE returned by Determination of A1-MWS it would only
return the value MWS.
When "SIGN" is used with any of the CURR adjustments the sign adjustment must follow the CURR
adjustment with a comma separator between them and no spaces.
In this example you will see the three CURR adjustments used in the field mapping table.
Calculated Fields
In some cases, the field use isn’t based on the exact value in the business process, but rather augmented either
via a configuration setting or code. These special fields are necessary due to Determination requirements. The
two calculated source bases we use are CALC_HDR and CALC_ITEM with the below calculated fields.
HEADER LEVEL
2100|0090001798|S|2014
ITEM LEVEL
You can see examples of the use of the calculated field function by looking at the standard field mapping table
/IDT/FIELD_MAPPING_V and searching down the Source Field column of our standard mappings.
Constants
A constant can be any value not based on business transaction data. For example, to indicate to Determination
that a transaction needs to be persisted in the audit database we would need to set the XML field IS_AUDITED =
true. To do so the following mapping can be used (part of standard delivered mapping already).
By entering the word "CONSTANT" in the source base field the mapping line will then replicate whatever you
input in the source field as the value to be populated into the target field. This can be especially powerful and
useful when used in combination with a specific route or use of conditional logic in the simple expression column.
For a constant the source field can be either upper case, lower case or mixed as in a password, etc.
If you desire to have the constant value populated based on the success of a simple expression, we have added
additional logic for variables to allow either header or line level fields to be used in the simple expression. (See
section below on Simple Expressions then return to this explanation)
These variables will come from the Journey. In general, the sample expression uses variables defined from the
source base.
For example, when using the header journey and the SAP_HEADER source base the simple expression can
contain variables like &KOMK-AUDAT& as in the expression:
&KOMK-AUDAT& NE IS_INITIAL
In the item Journey and the SAP_ITEM source base the simple expression can contain variables like
&VBAP-MATNR& = 'S-1002'
This works because &VBAP-MATNR& is a valid value for each line in the source base. And it can be evaluated
for each line in the source base because it works within the looping logic.
When the source base is constant this new logic uses the journey to provide meaning for the variables as in these
two expressions when the source base is constant:
&VBAK-XEGDR& NE IS_INITIAL
&[ROW=1]HDR>VBAK-XEGDR& EQ IS_INITIAL
In both cases the meaning of the variables comes from the journey and not from the source base.
USER_ELEMENT[NAME=ATTRIBUTE42,CREATE_IF_NOT_EXIST]-VALUE
This would map a VALUE to ATTRIBUTE42 in the USER_ELEMENT structure of the XSD if it doesn’t yet already
exist. See Appendix 2: References for more details.
In order to better understand how this works, let us look at a few scenarios.
You can learn more about the provided customer attributes by reviewing help documentation within the
Determination tax engine.
USER_ELEMENT[NAME=ATTRIBUTE42,CREATE_IF_NOT_EXIST]-VALUE
Our target is the VALUE field in the first ROW of the table USER_ELEMENT. The NAME represents the attribute
to be used for the mapping in the range from ATTRIBUTE1 to ATTRIBUTE40 (range 41-50 is reserved by
Thomson Reuters). A control flag CREATE_IF_NOT_EXIST can be used to only add the value if none already
exists. Finally, we state the target field VALUE to which the data needs to be assigned to.
<USER_ELEMENT>
<NAME>ATTRIBUTE42</NAME>
<VALUE>TA</VALUE>
</USER_ELEMENT>
Example 2: Quantity
We need to provide the quantity sold in SAP to Determination for taxing. The data in the SAP field is KOMP-
MGLME which we want to map that to the quantity amount element in Determination.
QUANTITIES-QUANTITY[ROW=1,CREATE_IF_NOT_EXIST]-AMOUNT
Our target is the AMOUNT field in the first ROW of the table QUANTITIES-QUANTITY. To add our value to the
AMOUNT field we must point to that row with the ROW=1 pointer, additionally we can make use of the control flag
CREATE_IF_NOT_EXIST to only add the amount value if none already exists. Finally, we state the target field
the value needs to be assigned too.
Based on the two mappings in the above picture this would lead to the following data being sent in the line level
XML structure for QUANTITIES.
<QUANTITIES>
<QUANTITY>
<AMOUNT>23</AMOUNT>
<UOM>EA</UOM>
</QUANTITY>
<QUANTITY>
<AMOUNT>11</AMOUNT>
<UOM>CTN</UOM>
</QUANTITY>
</QUANTITIES>
As one can see multiple units of measures can be sent to Determination for evaluation. See the Determination
online help topic Units of Measure Conversion for more details.
CURRENCY_CONVERSION[ROW=1]-TAX_EXCHANGE_RATE_DATE
In the above example our source field is TAX_EXCHANGE_RATE_DATE, in the table CURRENCY_
CONVERSION. We map to the first value with ROW=1. If there is no ROW in the table, it does not return any
value.
<CURRENCY_CONVERSION>
<TAX_EXCHANGE_RATE_DATE>2013-11-19
</TAX_EXCHANGE_RATE_DATE>
</CURRENCY_CONVERSION>
Example 4: Registrations
Another common table-based mapping is for the use of VAT Registration numbers. Please see the Registration
Number Mapping section for details on this subject.
Pointers
HDR->
The HDR-> pointer is used only for request journeys that relate to grouped transactions like creation of a sales
order, billing document, or purchase order. This pointer is used in Item level request mapping to indicate that the
field used is at header level, i.e. HDR->T001W-WERKS would indicate the plant from the header table to be
mapped at the item level. Journeys where the use of the HDR- pointer would be applicable include:
/IDT/JOURNEY_ITEM_REQUEST
ANCESTOR->
This solution allows a user to map not only data from the <TAX> block back to SAP, but also from the <LINE> and
<INVOICE> level. To do so one would use pointer of ANCESTOR-> to indicate the position of the field is the next
level up. You can string multiple pointers together to point to two levels up, i.e. ANCESTOR->ANCESTOR->
would point to the invoice level.
Pointer used in response mapping to indicate that the field used is at a higher level in the structure, i.e.
ANCESTOR->ANCESTOR->CALLING_SYSTEM_NUMBER would be used to map from an invoice level field in
the tax data level.
We are not supporting the BATCH level at this time; all relevant fields are also available at the
INVOICE level.
ITEMS->
The ITEMS-> pointer is used for request journeys in header and item user exits.
1. If you need to determine at the header level a field that is stored at the line-item level to pass that to the
request.
2. If you want to look at a line that is a consequence of another line like a freight charge or surcharge and you
need to refer to the parent line to get some information needed to properly calculate tax on the related child
line.
To accomplish either of these scenarios via ABAP programming, you can use this new field in the header called
“Items”. This Items field is a pointer that allows you to get the item data needed for the above two purposes. It
increases the function of the user exit and simple expressions to use for some fringe cases where this may be
needed. You may never need this, but it is available if needed.
This is used by an ABAP programmer creating a field mapping user exit that they would then populate into the
field mapping table.
See the Installation and Programmers Guide section “User-Exit in Field Mapper” for an example on how to use
this new feature.
Simple Expressions
Simple expressions are just like a line of code, but they are added to the field mapping line as a qualifier, only if
the expression is fulfilled the mapping will be considered.
o EQ, = Equal To
o CO Contains Only
o CA Contains Any
o CS Contains String
o NS Contains No String
o CP Matches Pattern
IS_INITIAL is a special command that can be used with EQ or NE to further delineate if a field has
been populated or if it has been set to the initial value of blank for this transaction.
Date fields however cannot use IS_INITIAL because the original value stored in SAP is not blank for
date formats but instead is initially formatted as '00000000'. If you are mapping for a date field use
the example below where the date field is not equal to '00000000'. We recommend you use this
format and not activate the “only if populated” flag.
EXPRESSION EXPLANATION
&KOMK-VKBUR& = '1030' Only maps the field if the Sales Office value is 1030.
&VBAK-ERDAT& NE &SY-DATUM& Only uses the mapping if the system date isn’t the same as the
documents create date.
( &KOMK-WAERK& = 'USD' and Maps the field if the Document Currency is USD and the
&VBAK-ERDAT& = &SY-DATUM& ) OR Document Create date is the system date OR if the transaction
&SY-TCODE& CP 'VA’ code starts with the letters “VA”
'NL_RC_TR_ZE_ZC' CS &TAX_TYPE& Only uses the mapping of the Tax Type contains any of these
values: NL, RC, TR, ZE, or ZC.
Proxy Column for Tandem Use of On-Premise Determination and Cloud 2018.3
Determination
If you are only using an on-premise version of Determination, then you can skip this topic. It will not apply to your
mappings.
With the release of Determination Cloud 2018.3, there were about 30 new fields that were created and new
functions and content to support Oil and Gas customers. This addition is not going to be added to the on-premise
version and thus creates some issues with two different XSD structures within the WSDL and proxy(s). Because
the field mapping table uses dynamically generated code for each of the journeys, the WSDL version, if not
selected correctly for the program, will cause a system ST22 error. We have added an additional column to the
field mapper. It directs the mapping line to the correct proxy and XML structure, if the proxy field is populated with
the proxy group code that is used exclusively for that mapping field.
If you are using the new Cloud Determination 2018.3 and above, AND you are using some of these new fields,
then you will have to populate the proxy group code "CL” relating to Determination 2018.3, for the given line-item.
If you are not using any of the new fields in 2018.3 and/or are NOT using the Cloud Determination, then you will
NOT need to be concerned with this field. If the field is left blank on the mapping, then the line will apply to either
WSDL. A code for the on-premise proxy “OP” in the field is used for fields that are only available in the on-premise
proxy. See Proxy table configuration instructions for more information.
Example of new proxy column of field mapping table being used on a mapping for new fields in Determination
2018.3
The error that will occur for an incorrect field mapping will now create an ST22 error that will be available for you
to view. If the error occurs before the document is posted to the G/L then the dump error screen will pop-up and
show you the error immediately. If the error happens in the call to the audit journey, then the error will not be a
short dump that prevents the entry from posting to G/L and you will instead see a pop-up termination error. If that
happens then double click on the pop-up error and it will tell you to go to transaction code ST22 to further review
the error. Once you find the error on the ST22 transaction screen you will see within the error a message that tells
you which journey and sort order line in the field mapping caused the issue. You will then need to correct this field
mapping line to prevent the error. Example shown below:
Following mapping example may be helpful if you are using the ship-to partner function and changing the
customer number at the line-item level for partner function. This mapping will bring in this ship-to partner into the
output line-item level.
Address Mapping
The Address Mapping could be considered a “cousin” of the Field Mapping in that it functions much like the field
mapping logic however it relates solely to the function of address and registrations. As of the [Link] release the
address mapping table has been improved to allow a user to easily add via mapping, new fields to the address
logic as well as a source address mapping. These two new tables are designed to make available logic that was
in prior releases, part of the class that was behind the address source logic. Now instead of hidden within the
program, the fields and logic are available for users to easily adjust as needed. This change was in response to
the new field additions within the Cloud Determination 2018.3 release for new XML fields for Oil and Gas
customers.
If you are not taking advantage of the Oil and Gas fields in Cloud Determination you will not be forced into
converting your custom address sources over to this new table function and will not be required to populate these
new tables unless you choose to do so for new customizations or to make visible your current address source
classes. The new logic and table usage is placed in the program after our standard logic and the prior class has
not been removed. The program will access the old class program logic and then augment it with the new table
mappings we describe below if they are populated for the given address source.
This new mapping table exposes to the customer mappings that were part of the class that was attached to the
address source. You can see in the example below that it maps the address source or partner function to the
target field in the Integration. The table is populated with all the standard mappings that are required and would
normally not need to be appended with custom mappings unless the customer has created a new custom
address source or has added new fields to the address sources as needed for Oil & Gas customers, etc.
Source_field determines from where address needs to be collected (SADRVB or ADRC tables). F4 on this field
displays other tables and their fields can be mapped but logically that are not address related tables/fields and
hence are not useful for us.
This ALV program can be used in the same fashion as a normal field mapping program which includes
maintaining adjustments and simple expressions.
For example – simple expressions and adjustments maintained in the standard mapping for partner functions.
When you first select the new transaction code you will see the selection screen which allows you to select
portions of the table by entering a given route or set of routes using the multiple selection options.
To get the full set of the address mappings table including both standard lines and customer created lines you
can just hit EXECUTE to get the full table listing.
Here you can maintain your own address mappings or augment existing ones. You can also define alternate
registration sources, other than what is pre-delivered. See the “Registration Number Mapping” topic for more
details.
COLUMN EXPLANATION
Logical address In this column you specify one of the logical address types that are listed in the standard
type delivery /N/IDT/ADDRESS_TYPES_V, it represents Determination target address
structure.
COLUMN EXPLANATION
NOTE: Address Source can’t be used at the same time as the Partner Function column
(Funct)
Function (Funct) This column is a drop-down list of applicable partner functions from SAP Table TPAR
and can be used to map your address instead of one of the address sources described
prior.
NOTE: Address Source can’t be used at the same time as the Partner Function column
(Funct)
VAT Registration The three columns of check boxes are used to indicate the target mapping for Buyer,
number check Seller, or Middleman VAT Registrations.
boxes
Integration will always provide a list of registration numbers based on the primary registration and
the foreign registrations maintained on the source master record. For foreign registrations we select
the ones that match the countries represented across all address sources used in the business
process.
New address sources have been added for Onetime Customer and Onetime Vendor addresses.
We have not included these in the standard mappings that we provide. If a user wishes to adjust the
Vendor address source to come from the manually entered Onetime Vendor address entry on the
PO (or Onetime Customer on the sales order and billing), then the user will have to add a custom
mapping to this table to do so. This may be required for VAT Ship-from calculations if you are using
a onetime vendor master record and need complete address for the ship from location in the XML
request. See example below.
Address Types
The Address Types table represents the addresses supported in the Determination XML structure. There are
three special address types for use with Registrations, see “Registration Number Mapping” for their specific use.
This table is provided as a standard default only. There is no corresponding custom table for this as address
types can only be changed via a tax calculation interface change in Determination.
Address Sources
The Address Source table represents a list of SAP address entities supported with Integration. Behind each
address source, code has been implemented that knows how to gather the necessary data based on the
business process used. The address sources are in addition to the partner function based addresses supported
in the address mapping.
You will see that we now have a new column for “Class to Set Address” that is populated with the name of the
programming class that contains the program logic for this address source. If you have need to change the
address source so that it pulls the address based on a different master data field, you can make your
modifications to this class as noted in the table.
Any customization that you may have done in your system prior to Integration release [Link] will
likely be ignored with the creation of these new classes. When upgrading to release [Link] from a
prior release of our product you should update any customizations by making the changes to the
class we have noted in this table as opposed to how you modified the address source prior in your
system.
You can create custom address sources via Transaction Code: /N/IDT/ADDRESS_SOURCES
You would name your custom address source in this screen and then program the logic on how that address has
to be found from the business transaction. Once done so you can map the source in the address mapping. See
the Installation and Programmers Guide topic “Custom Address Source” for a programming example.
You will see by the table example above that there are boxes checked to map the VAT registration numbers for
each of the various routes in the table. Each route will need a mapping for a buyer role and a seller role. The
middleman role has not been mapped in the standard mapping; however, you can elect to map a middleman role
based on your requirements.
In our standard mapping for LIV transactions the address and registration source for the SELLER_PRIMARY is
the Vendor. In above sample the registration source has been switched to the Invoicing Party (IP), while the
address source is still the Vendor by using the SELLER REGISTRATION DUMMY address type.
Determination Source
The VAT Registration mapping that is shown here is all done via the address mapping table and the field mapping
table within in SAP. However, you may also elect to maintain the VAT Registration Numbers for each of your
companies via the configuration within the Determination. In that case you would “remove” the check mark from
the VAT registration columns on any of the VAT registration mapping lines that use the company code address by
creating custom copies of the Thomson Reuters provided mappings. Once done, the VAT Registration is then
taken from Determination company configuration setup instead of SAP.
To map these sources a field mapping-based entry has to be made from two parts.
PARTNER_TAB[PARVW=AG]-KNA1-STCD1
REGISTRATIONS-BUYER-ROLE[ADD]
EXPRESSION EXPLANATION
PARVW Defines which partner function to use when looking at the partner address. The value
PARVW must be followed by an ‘=’ sign and then the two-digit German partner function
code to use.
Source Field Any of STCD1, STCD2, STCD3 and STCD4 (and STCD5 in EHP6 and above).
Target Field The structure to use REGISTRATIONS and the role to be mapped to. This must follow by
the [ADD] action to make sure a new row will be added with the value mapped.
Depending on which partner function you want to use in your mapping you will need to insert the
German translation of the partner code. Use SM30 transaction to view the V_TPAUN table and see
the partner function codes that are used based on language and your system configuration. You will
need to use the German translation of the code for the mapping.
For customer mapping the target would be the REGISTRATIONS-BUYER_ROLE. The source field would be
entered as shown below for the route groups involving customers:
PARTNER_TAB[PARVW=AG]-KNA1-STCD1
For vendor mapping the target would be the REGISTRATIONS-SELLER_ROLE. The source field would be
entered as shown below for the route groups involving vendors:
PARTNER_TAB[PARVW=LF]-LFA1-STCD1
Based on the SD based mapping above a registration collection sent to Determination could look like this:
<REGISTRATIONS>
<BUYER_ROLE>123123123RT</BUYER_ROLE>
<BUYER_ROLE>PST-1234-5678</BUYER_ROLE>
<SELLER_ROLE>231231235RT</SELLER_ROLE>
</REGISTRATIONS>
In all the examples shown above, the mapping is at the Determination Invoice level however you
may need to consider also mapping at the line level if you have scenarios where you may change a
partner at the line level.
Transaction: SPRO navigate to > Cross Application Components > General Application Functions > Place
of Business > Define Business Place.
Within a company code there can be many business places with different registration information for each
depending on the country tax policy. The Business Place is selected during transaction processing and tied
through configuration to the sales office for sales order processing.
See screen print below that shows the two fields used within the business place configuration to store the VAT
registration numbers. For purpose of this example we are using the Tax 2 field.
Utilize fields from the J_1BBRANCH table within the Flexible Field Mapper for the following journeys:
l /IDT/JOURNEY_HEADER_REQUEST
l /IDT/JOURNEY_ITEM_REQUEST
l /IDT/JOURNEY_NG_ITEM_REQUEST
NOTE:
The source of Business Place is different per transaction, it is therefore recommended to map fields from the J_
1BBRANCH table source to Determination, and not from the transaction tables. If using the value from the
transaction, then it would be as follows:
l MIRO - RBKP-BUPLA
Sample mappings for the registration from the business place are shown below for the three journeys mentioned
above.
NG Item request journey mapping: note use of HDR-> in this one also.
The HDR-> pointer is used when mapping the field from the Header record to the line-item on the order and is
required for the latter two journey mappings as shown above.
Other standard SAP configuration set up would be required to create the business place for the specified
company code and country as well as tying it to the sales organization and sales area structures in SD module,
etc. We have not shown all Business Place standard SAP configurations in this example.
A new address source for custom address mapping of BUSINESS PLACE address has also been created as part
of this solution. Use transaction /N/IDT/ADDRESS_MAPPING to enable this feature if you also desire to map the
address from the business place master data in addition to the registration numbers shown here. See Address
Mapping table instructions noted above.
DETERMINATION SETUP
1. Analysis and documentation of your tax policy needs for a given country configuration.
2. Identify the list of needed tax code and account keys required. This is often an exercise in reverse
engineering as we recommend that you look first at what will be required for your compliance reporting
needs and where specific tax code and tax type breakouts may be needed to get the data summarized into
the correct “buckets” for the specific country’s reporting. This may also need to take into consideration your
company structure, sales and purchasing models, tax exempt situations, shipping methods, tax laws, etc.
3. Decide on other needed tax codes for items such as separate tax codes to be used for override
transactions, fallback tax codes, and driver tax code.
5. Create your G/L accounts that you want to use for the tax code account assignments. Consider that this
step may also be a reverse engineering exercise to identify required accounts for better reconciliation needs
and prerequisites to easier compliance reporting.
The ERP Tax Code is repopulated as the final SAP Tax Code and Account Assignment key through our standard
mapping table and code. SAP then uses this information to establish the correct general ledger account to be
used for the GL accounting document. For an overview of the process see the User Guide -> New logic for the
assignment of General Ledger Accounts.
The process of driving a tax calculation to the final tax code and account key assignment involves the standard
setup in SAP of tax codes, account assignment keys, general ledger accounts, and the account assignment table
as well as the Tax Code Qualifier process in Determination. If any side of the needed configuration is missing,
you will likely get an error message and an incomplete document that will not post correctly to accounting halting
your business process. To avoid a possible error due to a missing or incorrect setup we recommend the use of a
fallback tax code. A fallback TCQ would be at the bottom of the sort order as an assignment of last resort if none
of the other TCQ assignments apply. It would allow the entry to post to a temporary account assignment rather
than block the transaction. This logic is purely optional and one that you may or may not choose to use in your
configuration.
If a fallback account is created and assigned to the fallback TCQ then procedures should be established to
ensure that you are monitoring this account to correct entries that may fall to this default setting. To set this up for
your system you will need to:
l Create a new tax liability account on the G/L for fall back posting to account assignment.
l Create both a fallback input tax code and a fallback output tax code.
l Add table entries to the T030K account assignment table based on the account key and tax code.
The following information is an example of how you might want to configure the Tax Code Qualifiers for a Great
Britain company code. This is provided as a possible tool for set up of your system for GB and other countries but
your configuration may be different according to your needs.
Basic Setup
For the below sample the assumption has been made that the tax code should drive the rate and the tax
treatment should be reflected in the account assignment key. Thereby a V1 is standard rate, V2 reduced rate etc.
In this sample the “A” tax codes are output tax, the “Y” tax codes are used as override output tax codes. The “V”
tax codes are input tax and the “Z” tax codes are used as override input tax codes. These are the single direction
tax code assignments as opposed to those that require both an ‘I’ and ‘O’ direction like reverse charge,
acquisition etc.
Option 1:
This option assumes that the tax code is designating the tax treatment and not the tax rate.
Option 2:
This option assumes that the tax code is designating the tax rate and not the tax treatment.
Download Samples
You can download samples of exported Tax Code Qualifiers provide by Thomson Reuters from the
ONESOURCE Support Network, Knowledge Base Setting up Tax Code Qualifiers in Determination for Global
Next Integrations.
Cash Discount at the Time of Payment: Additional Tax Code Qualifiers Needed
If you are using cash discounts at time of payment on any of your country configuration in SAP then you will need
to address this step. Tax code qualifiers will need to be replicated in the TCQ table so that a “standard”
Determination tax code condition with attribute 46 condition at the line level of “A1” would drive to an ERP Tax
Code of A1-MWS. Likewise, the Attribute 46 of Y1 would drive to ERP tax code of Y1-MWS. You would need to
set up an additional TCQ for each entry in the cash discount adjustment table. Each TCQ would be a mirror or
your original but would have the additional conditions of tax_line_attribute41 = XX where XX would be the original
tax code. It would also have a condition for the Determination tax code as it is used in the override tax code
instructions. An example is shown below.
Special note: The sort order of the TCQ list is important to correct assignment. Cash discount adjustment TCQ’s
should be higher in the list than their non-cash discount counterparts. Likewise, the override version needs to be
listed before the non-override. An example of the correct order is shown below:
Position 4: A1 TCQ
In many cases, our codes do not match the codes maintained in SAP. For example, Indian state codes are
numeric in SAP (for example, 22 = Tamil Nadu) whereas in ONESOURCE Indirect Tax the same one has a code
of TN. Therefore, when SAP sends state code 22 to Integration for address determination, it does not match the
zone maintained in Determination.
ONESOURCE Indirect Tax enables you to map codes maintained by the ERP system to those maintained in the
Determination using the Zone Alias feature.
Transaction: SPRO navigate to SAP NetWeaver > General Settings >Insert Regions.
The images show a portion of the region codes for the countries India and Argentina.
2. Locate the region codes you need to map to Determination and write them down.
In this example, India Region Codes are shown on the left and Argentina Region Codes on the right.
2. Change companies to the parent company in your Determination hierarchy. Select the company from the
drop-down list in the upper right-hand corner of the page. In the example below, the example parent
company is SAP Headquarters.
2. Search for and select a country to create an alias (for example, Argentina).
4. Enter the desired aliases and click Submit. For example, you might create the following aliases in Argentina:
Alias represents the code maintained in SAP. Value represents the name maintained in the Determination Zone
Tree. In the example above, the selected Zone is Argentina. Always configure aliases at the Country level and
apply each alias at the Province level.
Some transactions make many calls to Determination during the transaction: a ME21N Purchase Order is
especially invasive in this respect and can cause the system to literally loop again and again through this pop-up
feature and not let you out of the transaction. If this occurs, simply start a second session and change/ deactivate
the popup tool and return to your prior session. Doing this delete process will allow you to proceed with the
transaction without further issues. See screen shots below to access this feature, configure it, and view how it
works.
Once in the screen you will be able to change it to change mode and add lines to the table for your username and
activate the journey. Currently the tool is available for the below list of journeys. More journeys will be added to
this tool in the future and a drop-down list added for easier use. To deactivate a given journey, just return to the
menu and turn off the active button. Journeys currently available include:
Next go to the desired transaction you wish to use this tool on and enter your data. When a call to Determination
is made within the transaction the tool will activate and pop-up the data for the first journey selected.
Further instructions on how to use this tool and how the screen levels work is shown in the Installation and
Programmers Guide.
The Reconciliation Report in ONESOURCE Indirect Tax Reporting will compare the imported data from the SAP
Reconciliation Extract with the data in Audit. The Reconciliation Report will indicate transactions missing in the
ERP (SAP), transactions missing in Audit, as well as differences in tax amounts.
The following steps are necessary if you want to use the Reconciliation Extract Report:
Transaction AL11:
Now that you have defined the directory you can also set it as a default in the Reconciliation Extract selection
screen as follows:
Transaction STVARV:
Add a new entry for parameter name of /IDT/RECON_APP_SERVER_PATH with the value of the server path
you created in the previous step.
Transaction: SE11
Select “Display”. Once in the table, use the “Append Structure (F5)” menu option.
Create a new append in the customer's name space or using ZZ* naming convention. Include the change in a
transport:
The newly added fields now can be used in the Global Next Flexible Field Mapper to which to map data.
This can be confusing if a user is using the information on the transaction code. A key problem is that SY-TCODE
is blank for background jobs. There is generally no screen and thus no need for a transaction code in background
jobs. This is a known limitation in SAP. Customers who use the SY-TCODE field must consider that SAP will
return a NULL value at times. They can add a fall back custom field mapping using a constant for situations when
SAP returns a null value.
APPENDIX 2: REFERENCES
This section lists all customer facing Journeys, Routes, Bases and Tables with an explanation of their purpose
and use.
List of Journeys
Most Journeys are used in the field mapping process to assist in determining for which business process what
fields should be used for taxability determination. Some Journeys are used internally for unique treatment of a
process, like Freight and Plants Abroad for example, these are mostly likely not used in the field mapping.
JOURNEY DESCRIPTION
/IDT/JOURNEY_HEADER_REQ_BR_GM This Journey manages the header data going from SAP to
Determination for the Brazil material transaction MBOA for
receiving inbound transaction on Intra Co STO process.
/IDT/JOURNEY_GET_CONDITION_DTL This journey is used internally and gets the relevant tax
data from the KONV table and uses that for getting the
taxes on the NF document when a PGI is done on the
delivery document. Brazil functions only.
/IDT/JOURNEY_ITEM_REQUEST This Journey manages header and item data going from
SAP to Determination. In field mappings this Journey
passes data to link specific header and item SAP fields to
corresponding line level XML elements of Determination.
/IDT/JOURNEY_ITEM_REQ_BR_GM This Journey manages the item data going from SAP to
Determination for the Brazil material transaction MBOA for
receiving inbound transaction on Intra Co STO process.
/IDT/JOURNEY_ITEM_REQUEST_GM This Journey manages header and item data going from
SAP to Determination for the Goods Movement product
transactions. In field mappings this Journey passes data to
link specific header and item SAP fields to corresponding
line level XML elements of Determination for materials
movement transactions in MM.
/IDT/JOURNEY_NG_ITEM_REQUEST This Journey manages header and item data going from
non-group transactions of SAP to Determination. In field
mappings this Journey passes data to link specific header
and item SAP fields to corresponding line level XML
elements of Determination.
/IDT/JOURNEY_NG_ITEM_SERV_ENTR This Journey manages item level data going from SAP to
Determination for the specific data in Service Entry Sheets
within MM PO process. In field mappings this Journey
passes data to line specific line-item SAP fields to
corresponding line level XML elements of Determination
for Service Entry Sheet charges.
/IDT/JOURNEY_AUDIT_SAVE This Journey saves the data of the last tax calculation call
at the time of saving the invoice document in table /IDT/D_
AUDIT_REC for later use in the audit update call,
cancellations, and other processes. This journey assumes
calculate tax = X
/IDT/JOURNEY_CHECK_AUDIT_MESS This Journey checks the audit message and adjusts the
call to audit. It does a double check to make sure the call is
for a final invoice.
/IDT/JOURNEY_US_SPECIAL_LOGIC2 This Journey manages the AP logic for countries like US,
and PR by switching the company role for the Vendor
Charged Tax and offsetting the tax lines for Self-Accrual
taxes.
NOTE: Customers most likely will not use this in the field
mappings; the default is delivered by Thomson Reuters.
/IDT/JOURNEY_PLANTS_ABROAD This Journey manages the logic for Plants Abroad based
on the billing types maintained in table /IDT/D_PLNTS_
ABD. For these billing types a Seller and Buyer call is
made for the one SD Invoice. Billing type WIA has been
added as a default.
/IDT/JOURNEY_NG_ITEM_FB05 This Journey manages header and item data going from
non-group cash discount transactions of SAP to
Determination. In field mappings this Journey passes data
to link specific header and item SAP fields to
corresponding line level XML elements of Determination.
/IDT/JOURNEY_FB05_COMPANY_ROLE This Journey manages the company role for the FB05
transaction logic.
List of Routes
Routes can be basically split into two categories; Group and Non-Group. Group Routes are based on
transactions which use pricing procedures (SD) or calculation schemas (PO), where Non-Group Routes are
based on transactions which use tax procedures (LIV/FI). Routes can be used in the field mapping if desired.
ROUTE DESCRIPTION
List of Bases
Bases represent a source or target in the field mapping of a tax request and response. They either represent an
entity in SAP or a Determination XML structure such as Batch, Invoice, Line, or Tax. Some complex XML
structures like User Attributes, Quantities, Registrations, Currency Conversions, etc. require special processing
described at the end of this section. Not all of the sources are available for all Journeys.
SOURCE BASES
Header fields:
TARGET BASES
/IDT/JOURNEY_HEADER_REQ_BR_GM
/IDT/JOURNEY_HEADER_REQ_BR_GM
/IDT/JOURNEY_AUDIT_UPD_DB_BILL
/IDT/JOURNEY_AUDIT_UPD_DB_GL
/IDT/JOURNEY_ITEM_REQ_BR_GM
/IDT/JOURNEY_NG_ITEM_DOW N_PAYM
/IDT/JOURNEY_NG_ITEM_FB05
/IDT/JOURNEY_NG_ITEM_SERV_ENTR
XSD TABLES
Operand Description
ROW A field value to point to a specific place in a table i.e. ROW=3 would point to the
third row
CREATE_IF_NOT_ A control flag to only add the mapping if none already exists
EXIST
Configuration Tables
Most of the configuration tables are accessible via the User Menu provided with a few exceptions which are
noted.
DESCRIPTION
TABLE
/IDT/D_CASH_DISC Match SAP tax code to Determination Tax Code for Cash Discounts at
time of payment calculations. Note this table is not in standard menu
yet. Use SM30 transaction to maintain at this point.
/IDT/D_GRP_BUKRS List company codes that should use non-grouped tax calc
/IDT/D_STRUCTS Data Dictionary objects for Journey source and target structure. This is
a behind the scenes table that is not made available through the main
menu and is pre-populated with the transport of the system
configuration.
/IDT/D_PROXYGRPS Used to establish the three options for a proxy group code, blank, CL,
OP
Transaction Tables
Transaction tables can hold a considerable amount of data depending on your business processes and system
configurations. You should monitor growth of these tables and manage them as part of your archiving and/or
purging process.
ROUTE DESCRIPTION
Reserved Attributes
Thomson Reuters reserved attributes 41-50 of the Invoice and Line fields for internal use. The following table is a
list of the standard attributes that are already mapped. Customers can’t make use of Attributes 41-50.
LINE.USER_ELEMENT.ATTRIBUTE46 SAP TAX CODE for Item and NG_Item Journey/ TAX
CODE OF ORIGINAL DOCUMENT FOR CASH
DISCOUNTS AT TIME OF PAYMENT CALCULATION
A BADI /IDT/BADIRECON_EXTRACT has been provided as part of the SAP Reconciliation Report which can be
implemented by the customers. The BADI method returns the 5 UDF’s in the structure /IST/EXTRACT_UDF.