Advanced Tips and Tricks

After you have worked with Determination for a while and are comfortable with procedures and your workflow, you may want to integrate some advanced tools into your practices:

  • The xmlinvoice servlet
  • Importing data and uploading spreadsheets
  • Log files
  • Best practices

If you are not comfortable using these procedures, please contact Customer Support for assistance.

The xmlinvoice Servlet

Determination is generally connected to a financial application through ONESOURCE Indirect Tax Integrations. When you want to test input XML directly in Determination without sending the XML through the Integration software, you can use Determination's xmlinvoice servlet.

The xmlinvoice servlet generates a web page from which you can test your XML code. To access that servlet, open the following URL in a web browser:

http://host:port/sabrix/xmlinvoice

The host and port indicate the name and port of the application server hosting Determination. Paste your XML directly into the input area on the Tax Calculator page and click Calculate Tax. If you do not want to audit these xmlinvoice transactions, ensure that <IS_AUDITED> is set to false.

The output XML is generated and displayed in the browser window. If there is an error in the XML, the servlet generates an error message.

If you do not have readily available test input XML from your business source system, you can generate it in the Workbench.

  1. Log on to Determination.
  2. Navigate to Menu > Workbench.
  3. Create a transaction scenario.
  4. Click Actions > XML Input.
  5. In the pop-up window that appears, right click the XML window and choose View Source.
  6. Select the XML from the Edit window and paste it into the servlet.

If you do not use View Source, but instead try to paste directly from the browser into the servlet, the extra formatting characters added by the browser will cause errors.

Importing Data and Uploading Spreadsheets

Determination allows you to import data (for example, in a .zip file) and to upload a CSV spreadsheet.

Import/Export

Import/Export allows you to:

  • Install tax data updates.
  • Import previously exported data from a Determination instance of the same compatibility version (all types except audit) or the audit compatibility version (audit import type).
  • Import data from your ERP system that has been correctly formatted using the simplified CSV format.

Before you import data, determine if you are importing any previously exported data that refers to data provided by a parent company different from the one you want to select. Examples of this type of data include custom rules, rate, product mappings and established authorities. The target parent must either inherit its data from the same providers, or the providers it uses much contain data to support the import.

To import data, ensure your pop-up blocker is disabled and perform the following steps:

  1. Navigate to the Import/Export page (Menu > Import/Export > Import tab) and browse to locate the file you wish to import. Click OK.
  2. The Import/Export Wizard then displays information about the file to import. Click Next.
  3. If you are performing a simple import with no user input required, click Next again to confirm the import. If user input is required, the wizard displays pages that enable you to, for example, specify the target company, product group and parent product.
  4. Continue to enter and confirm parameters and click Next until you reach the Progress page.
  5. Observe the installation progress to ensure the import completes without errors. Click Close when the import is complete. For larger imports, you can close the progress window, and monitor progress on the Import/Export History page.

If you import had errors, review the log data on the History tab to view the import history.

  • An error log lists every error encountered while perform the import.
  • An info log lists informational messages generated by the import.

Creating CSV Import Files

Using the simplified CSV format, you can:

  • Import data from your ERP system.
  • Create data without using Determination.
  • Update Determination data.

You can create a CSV import file several ways:

  • Copy the code example below into a text editor and replace the values with your own data.
  • Create the file in a text editor. Make sure to represent each column name in the header and separate columns from one another by using a comma in the data.
  • Use a spreadsheet to set up the file, using a different column for each value. When you save the file, select the CSV format to create a comma-delimited file. In CSV files, column headings and values are separated by commas, even if a column contains no data.
  • Use a Determination-supplied template. Templates contain only the required fields; if you have data in optional columns, you must include the column name in the header and a value for the column.

Each supported import type requires a CSV file. The file contains the import type, all of the column headers separated by commas, and values for the imported data (also separated by commas). The following example shows a Product Categories import with eight products.

  1. sdiType=ProductCategories

  2. ProductPath,Description,CommodityCode

  3. Office Supplies,Office Supplies,OS1111

  4. Office Supplies.Paper,Paper,OS2222

  5. Office Supplies.Paper.Recycled,Recycled Paper,

  6. Office Supplies.Paper.Photo,Photo Paper,

  7. Office Supplies.Paper.Glossy,Glossy Paper,

  8. Office Supplies.Furniture,Office Furniture,OF1234

  9. Office Supplies.Furniture.Desks,Desks

  10. Office Supplies.Furniture.Chairs,Chairs

The first line defines the import type (sdiType=ProductCategories). This line is optional; if you do not include it, the Import/Export Wizard prompts for the type when you import the data. If you include it, add trailing commas to represent column separators. In the example shown, there are three column headers (ProductPath, Description, and CommodityCode), so you would add two commas:

  1. sdiType=ProductCategories,,

The second line defines the columns for this import type (ProductPath, Description, CommodityCode ). Each import type has its own column definition, including required and optional columns.

In the example, the eight lines following contain the data to be imported. Each column has its own requirements for the values you can enter, including data type, size, and order.

Blank spaces at the end of lines, or blank rows, will cause all or part of the import to fail. In addition, do not use the \ or / characters in the file name and ensure the .csv suffix is present. Finally, CSV import file data replaces existing data; therefore, it is important to use caution before you import a file.

Import Hierarchy

Several of the import types cannot be imported until referenced data is present in the database. For example, exemption certificates cannot be loaded until the owning customers are present. Examples of import hierarchy criteria might include:

  • Exemption certificates are dependent on customers.
  • Exempt zones are dependent on exemption certificates.
  • Product mappings and zones are dependent on product categories.
  • TransEditor groups do not have any dependency on other data.

Accessing Log Files

This section explains two advanced features of logging:

  • Logging with standard integrations (Oracle and SAP)
  • Performance logging in Determination

Logging and Standard Integrations

If you have the correct settings configured and enabled in your ONESOURCE Integration, you can access debugging logs from both SAP and Oracle. These log files help primarily with troubleshooting, as they can give you a complete picture of the tax calculation interaction between eBTax (in Oracle 12) or SAP and the ONESOURCE Integration. For more information on how to configure these settings, refer to your integration documentation.

Oracle 12

In Oracle, access log files for the following modules and transactions as follows:

AR/OM Manual Transactions

  • Sabrix_log Table: Adapter logging and XML.
  • Fnd_log_messages Table: ebTax and ONESOURCE Indirect Tax Integration Logging.

AR Autoinvoice

  • Concurrent Log: When AI logging on.
  • Sabrix_log Table: Adapter logging and XML.
  • Fnd_log_messages Table: ebTax and ONESOURCE Indirect TaxIntegration Logging.

AP Invoices

  • Concurrent log

PO Manual Transactions

  • Sabrix_log Table: Adapter logging and XML.
  • Fnd_log_messages: eBTax and ONESOURCE Indirect TaxIntegration Logging.

Provide logs as follows:

  • AP: Save the concurrent log for the Tax Worker (AP Tax Thread) that has the problem invoice
  • AR/OM/PO: Extract as follows:
    • Determine the batch ID for the transaction from Sabrix_invoice table.
    • Query the Sabrix_log table for the specific batch with the below query and save to a file.
      1. select batch_id,timing,log_id,log_date,location,message

      2. from sabrix_log

      3. where batch_id ='###'

      4. order by log_id

  • Autoinvoice: Concurrent log should contain connection logging.
  • Fnd Logging
    • Truncate the fnd_log_messages table if possible (table applsys.fnd_log_messages)
    • If you cannot truncate, determine max log_sequence before running the transaction to be debugged (select max log_sequence from fnd_log_messages
    • How to extract fnd_log_messages to a file:
      • With truncate:
        1. select log_sequence,module,message_text

        2. from fnd_log_messages

        3. order by log_sequence

      • Without truncate:
        1. select log_sequence,module,message_text

        2. from fnd_log_messages

        3. where log_sequence > -- max log sequence

        4. order by log_sequence

SAP

After you have configured the correct parameters in the SabrixIntegrationServerLoggingConfig.xml file (located in the root directly of the Integration file), and configured the proper debug settings, you can access the SabrixIntegrationServer.log file.

The log file provides detailed logging information for every transaction from the SD/MM/FICO modules. You can establish different logging options based on your requirements.

  • You can configure the file to roll the log files daily, by size, or both.
  • You can configure the file to show the SabrixIntegrationServer.log file in the Determination UI so that you can access this file from the UI and eliminate dependency on IT resources.
  • You can configure the file either in a DEBUG, INFO, or ERROR mode based on the environment and the requirements.
  • If you run the log file in the DEBUG mode so that the SabrixIntegrationServer.log file provides the following information:
    • <SapJcoRequest>: This section provides information about the RFC structure data that is passed from SAP.
    • <INDATA>: This section provides the information about conversion of the RFC information to the XML format for the input.
    • <OUTDATA>: This section provides the output information which is the result from Determination for the input provided to the system.
    • <SapJcoResponse>: This section provides the mapping of the OUTPUT information to the RFC structure back to SAP.

For details on how to configure the SabrixIntegrationServerLoggingConfig.xml file, please review the ONESOURCE Indirect Tax Integration for SAP Installation Guide.

Performance Logging

To measure the speed of transactions as they flow through Determination, you can turn on performance logging. This is controlled by the Configuration parameter LOG_INVOICE_CALC_PERFORMANCE and is turned on when the value is Y. For help setting this parameter see Logging Parameters .

If you turn on performance logging, be sure that the Configuration parameter LOG_LEVEL is set to ERROR. The values of INFO and DEBUG, when used with performance logging, could lead to dangerously high CPU usage and a dramatic drop in performance.

What is Measured?

When you turn on performance logging, you activate stopwatches (tags) for all of the Determination components that can be timed. Although Determination always gathers data for all the components, you can filter the output later when you run reports.

Analyzing the Data

Once you turn on performance logging and restart the Java Virtual Machine, Determination logs performance data when invoices are processed. The following is a sample log entry:

  1. 1300707763871 2013-03-21 12:42:43,871ERRORhttp-192.168.1.10-8080- 4com.sabrix.tax.calcinterface.XMLInvoiceServlet Test Merchant 1001 start[1300707759080] time[55] tag[TaxController.calculateInvoice()]

The last three items are the important ones:

  • start[ ]: The beginning time listed in start[ ] is Unix epoch time in milliseconds and is defined as the number of milliseconds elapsed since midnight (UTC) January 1, 1970. The end time of the transaction (also the time the log entry was written) is the first 13 digits of the log entry.
  • time[ ]: Determination spent 55 milliseconds processing the invoice (invoice number 1001 from company Test Merchant).
  • tag[ ]: This is the Determination component that is being measured.

Instead of looking directly at the performance entries of the log file, you can use an open source Java program to generate a report. The name of the program is perf4j.jar, and you can find it on various web sites, or you can download perf4j-0.9.14_Determination.jar.zip from https://tax.thomsonreuters.com/support/onesource/customer-center/ by searching for your specific product. The Thomson Reuters version offers some additional graphing capabilities.

To use the perf4j.jar file (or the Thomson Reuters version), copy the file into the same directory as sabrix.log, and then open a command line session in that directory.

If you are using the Thomson Reuters version, be sure to rename the file to perf4j-0.9.14_Determination.jar (removing the .zip extension).

To see the arguments you can pass to this program, execute the following:

java -jar perf4j-0.9.14_Determination.jar --help

The following is an example of how you might execute the program:

  1. java -jar perf4j-0.9.14_Determination.jar -g perf.html -t 9000000 -o perf.txt sabrix.log

This inserts summary data in a text file named perf.txt. It also creates an HTML file named perf.html that includes a Mean Time graph and a Transaction Per Seconds (TPS) graph. It divides the file into 900000 millisecond (15 minute) sections of time and summarizes the data for that time slice. Once it does this for every 15 minute time slice, it creates a graph with all the data.

If you only want to see certain data on the graph, you can use the -tags switch to limit which tags appear on the chart. For example, if you add the following to your command, you see the summary timings of lookups, all lines, and the total of the invoice:

  1. "-tags TaxController.calculateInvoice(),Invoice.performLookups(),TaxController.calculateAllLines()"

Best Practices

These practices will help you provide information needed by Customer Support if you require assistance. As well, they provide a systematic way to organize your work and documentation, and keep your system up to date.

Contacting Thomson Reuters

Consult Thomson Reuters prior to any system changes.

  • Changing database versions
  • Applying family packs
  • Patches that may overwrite Determination changes

If you are planning to upgrade your ERP system, contact Thomson Reuters first. You should also contact Thomson Reuters if you are planning to clone an instance of your system as a registration script must be executed to ensure the URLs for the cloned instance are pointing to the correct instance of Determination.

You should also contact Thomson Reuters when you need to schedule an AP concurrent process.

Maintaining Documentation and Your System

Always ensure that you are reviewing the latest documentation. Documentation is updated and provided with every new release of Determination.

There are also a few tasks you should perform regularly to ensure that your ERP system is interacting with Determination as smoothly as possible.

  • Work daily on any AP invoices that have errors (if applicable).
  • Regularly clean out the Determination Interface and log tables.

Establishing a Chain-of-Command

For monthly maintenance and troubleshooting, establish a company policy if one does not already exist. Some steps to consider when establishing this hierarchy include:

Monthly Maintenance

  • Receive update content email from Thomson Reuters.
  • Review impact to business and determine if testing necessary.
  • Download new content.
  • Import content into your Development instance.
  • Verify import success.
  • Test as necessary.
  • Import content into Production instance.

Troubleshooting

  • Identify issue.
  • Gather support data (invoice, XML, log file, etc.).
  • Re-create in Development instance.
  • Test in Workbench or xmlInvoice tool.
  • Identify potential solution.
  • Configure as necessary.
  • Conduct testing.
  • Determine if regression testing is necessary.
  • Contact external support, if necessary.
  • Migrate changes to production.

Monthly Tax Updates

Tax data includes rates and rules for US, Canada and International jurisdictions. Monthly tax data updates are available for download so that you can calculate taxes using the latest rules and rates.

You will receive email notification when the update is available. The update letter lists many changes such as rates and pending legislation to help you manage your custom content and plan for future changes, and includes instructions for downloading and installing the update.

You can use the Customer Center (https://customercenter.sabrix.com/sabrixcc) to download monthly tax data updates.

You can configure Determination to address monthly tax updates in one of four ways:

  • Fully Manual: Access the updates from customer center and upload whenever needed.
  • Notification Only: A notification appears in Determination to manually download and install updates.
  • Download Only: You are notified and the update is auto-downloaded, but you will still need to install. This is the preferred method.
  • Download and Install: You are notified, and the update is auto-downloaded and installed - not recommended as most clients want to examine and test the changes first (particularly where custom rules exist).

You should examine the release letter and the product taxability matrix that are part of the monthly update to see what new rates and rules will be implemented. Determination uses the most conservative interpretation of tax rates and rules. In some cases, that interpretation may not be what you need.

If you have a business case that requires you to apply a different rate or custom product taxability, you must make the change manually in your system. Download and install the new update content, and then change the few rates or rules that you want to calculate differently.

End Dating

Due to various laws established by the Sarbanes-Oxley Act of 2002, certain information cannot be deleted from the system. If you find that you cannot delete something, the only way to close the document or action is to close the time period by using an end-date. For more information, refer to the Sarbanes-Oxley Act of 2002 at http://www.soxlaw.com.