SABRIX INTEGRATION FOR SAP
(Basic US/CA Version)
Product Updates
Version 5.1.0.0B
This document provides the following information:
· Downloading and Installing This Release
· Product Updates for Previous Versions
For additional information, see the following on the Sabrix Support Network:
· Sabrix Application Suite Platform Support Guide
· Sabrix End of Product Service Notice Update
Problem: The Sabrix Integration for SAP only passed the exempt amount value at certain levels to the Sabrix Solution. This led to some transactions not receiving the proper exemption treatments.
Solution: The Integration will now map the exempt amount value into all levels and let the Sabrix Solution decide what level it will pull from when it calculates the tax.
Problem: For force calls with freight, the allocation for tax amounts from the product line to the tax line led to improper tax postings in the Sabrix Solution.
Solution: If SAP initiates a force call and freight is not zero, the Sabrix Integration for SAP will convert the call nto an update call and have Sabrix recalculate the proper tax amounts.
Problem: A wrong default jurisdiction code was returned in some cases due to a sort order issue introduced by Java 1.5.
Solution: The method used to store results from the Sabrix Solution was changed so that the default value is always the first returned.
Problem: Previous SAP versions would send an improper Credit Indicator and the Sabrix Integration for SAP had to correct it. With ECC 6.0 this has been fixed by SAP, and SAP is sending the proper indicator.
Solution: The Sabrix Integration for SAP will no longer change the indicator for SAP and it will be passed as is to the Sabrix Solution. For scenarios created before the SAP fix provided in ECC 6.0, a simple TransEditor can be put in place to correct the indicator.
Problem: The Sabrix Integration for SAP needed a way to configure the switching of the company role from buyer to seller for purchases dependent of the ship-from and ship-to country.
Solution: The determination to switch the buyer or seller role is now based on the ship-from and ship-to country during an AP transaction. The first two characters of the tax jurisdiction code are used to determine country and the role will only be switched if the combination is found in the Sabrix standard mappings or mappings configured in taxMappingsExtension.xml.
Problem: The value in TAXPCOV is always returned as a rounded value.
Solution: The is_rounded flag in sabrixconnection.properties is now taken into account when returning values to this field.
Problem: During integration testing, the integration server log is frequently set to the debug level for troubleshooting purposes. When a large volume of transactions are performed, the log files get very large. This caused disk space issues and trouble tracking down the correct log file location.
Solution: A new log rolling option has been added to enable better log troubleshooting. The new option is configured to roll on the hour and zip. Therefore the log files will be compressed and save a great deal of disk space during testing. The new log roll option is called ZippingFileAppender and it set as the default appender. In addition comments have been enhanced to assist in setting logging properly.
Sabrix Integration for SAP Guides: Minor changes and updates.
To download and install this release:
1. Retrieve the SBXIntegrationSAP5.1.0.0B.zip file from the Sabrix Customer Center. To do so:
· Open the Customer Center at http://customercenter.sabrix.com/sabrixcc.
· Log in using the user name and password provided by Sabrix.
· In the Available Products list, verify that the Sabrix Integration for SAP (Basic US/Canada Version) Current Installed Version is set to None.
· Click the Sabrix Integration for SAP (Basic US/Canada Version) Download button.
· Save the file.
2. Unzip the SBXIntegrationSAP5.1.0.0B.zip file.
3. Log on to the server where the current Sabrix Integration for SAP is installed.
4. Stop the Sabrix Integration if currently running.
5. Back up the following files, as you will need to reference them once you install the new release:
· SabrixConnection.properties
· IntegrationServerStartup.sh (if used at your implementation)
· IntegrationServerShutdown.sh (if used at your implementation)
· taxMappingsExtensons.xml
· jcMappingsExtension.xml
· authorityLanguageMappingsExtension.xml
· SabrixIntegrationerverLoggingConfig.xml
6. Unzip and extract the files in the .zip file to the directories where you installed the previous release of the Sabrix Integration for SAP.
7. Compare files saved in step 5 above with the new files. Merge custom configurations from the saved files with the newly provided ones if necessary, or replace the empty templates with the saved ones if no changes were made.
8. Restart the Sabrix Integration.
5.0.5.1B 5.0.5.0B 5.0.4.0B 5.0.3.1B 5.0.3.0B 5.0.2.0B 5.0.1.0B 5.0.0.1B 5.0.0.0B
Problem: In some rare cases a multi threading issue in the Sabrix Integration can occur which can lead to data inconsistencies, incorrect tax results or the following error message: "FS-888 External system returned different number of lines than received"
Solution: The Sabrix Integration code has been changed to be thread safe.
Problem: The Sabrix Integration for SAP was switching the company role from buyer to seller for purchases independent of the ship from and ship to country.
Solution: The determination to switch the buyer or seller role is now based on the Ship From and Ship To country during an AP transaction. The first two characters of the tax jurisdiction code are used to determine country and the role will only be switched if it is a US to US transaction. Specifically the rule is as follows:
• If SAP TXJCD_SF = US and TXJCD_ST = US and APAR_IND = V and Tax Type = 0 or Blank, the Sabrix Company Role = S (Seller)
• If SAP TXJCD_SF = US and TXJCD_ST = US and APAR_IND = V and Tax Type = 1, then Sabrix Company Role = B (Buyer)
Problem: The Sabrix Integration for SAP was not overriding the city passed by SAP with the city returned by Sabrix.
Solution: The JCo Response has been updated to return the city from Sabrix when the city_flag=false and the override_supplied_city=true.
Problem: When a freight line exempt amount was added, it contained a reference to the product line causing the product line to be set with the same values; therefore, the tax amounts were being doubled.
Solution: A Deep Copy of InputLine Constructor has been created and the freight line now contains a separate reference and will not share any data with the product line.
Problem: When adding the freight line and the product line back into one SAP tax jurisdiction level rounding errors could occur.
Solution: When adding the freight and product line together the tax rate isn’t calculated if both lines have the same rate, instead the single one rate is used. When the two tax rates aren’t the same an effective tax rate is calculated.
The Sabrix Integration for SAP now uses the JCo 3.0.2 library; it can be obtained from http://service.sap.com/connectors.
Problem: The hard coding of Canada provinces was preventing the Sabrix Integration for SAP from passing information into the <PROVINCE></PROVINCE> field if the abbreviation did not match as mapped.
Solution: The hard coded province mappings have been removed and the SAP 2-digit code is being used.
Problem: The UNIQUE_INVOICE_NUMBER was not concatenating with the external_company_id_prepend value.
Solution: The external_company_id_prepend property setting value has been added from the sabrixconnection.properties file and the UNIQUE_INVOICE_NUMBER is now concatenating.
Problem: An error message did not display when the number of lines in the invoice header did not match the number of rows in the SAP line item table.
Solution: An error message has been added so that when the number of lines in the invoice header does not match the number of rows in the SAP line item table, the error message will be displayed.
Problem: An error message did not display when there was no JCoResponse for RFC_Determine_Jurisdiction.
Solution: An error message has been added and will display when there is no JCoResponse for RFC_Determine_Jurisdiction.
Problem: Deployments on IBM AIX or z/OS servers using the IBM JVM encountered problems in parsing a UTF-8 formatted file. The IBM JVM was ignoring the language in the java code and overrode it with the default language of the user running the code.
Solution: Ensure the "export LANG=da" parameter is set.
Problem: The JCo Request was using a logger that was created for a JCo Response.
Solution: The logger has been updated to use the correct class name when creating a log4j object.
Problem: The BlowfishJ license has changed.
Solution: The utility class, Crypto, has been modified to use Java library instead of BlowfishJ. This change requires clients who have encrypted their user/passwords new with the Sabrix provided tool, already encrypted passwords cannot be used. The new encryption provides the same strict levels of security.
Problem: SAP qRFC update audit calls with severe errors were not failing in SAP.
Solution: An ABAP Exception is now sent to SAP if a severe error from the Sabrix Solution is received when processing an update or force. Error transactions are sent to the process queue and can be reprocessed using standard SAP processes
Problem: As a result of a cut and paste error, when tax rate code was added as a parameter in the tax mappings file, some mappings where incorrect.
Solution: The tax mapping code has been cleaned up and unit tested to cover each of the 128 possible test cases.
Problem: The daily log file rolling DatePattern parameter in the Log4J configuration file needs to be fixed.
Solution: The appender ref has been change to: <appender-ref ref="DailyRollingFileAppender"/> from RollingFileAppender and the log is now rolling daily.
Problem: The default value for country_flag and city_flag is set to True in the sabrixconnection.properties file.
Solution: The default values for the county_flag and city_flag are now set to False.
The naming of the SabrixConnection for SAP has been changed to Sabrix Integration for SAP.
Problem: The SBXIntegrationSAP5.x install guide was not updated with the new values for HOST_SYSTEM and CALLING_SYSTEM_NUMBER.
Solution: SBXIntegrationSAPInstallGuide5050B.pdf has been updated to reflect the following:
SYST_NAME --> HOST_SYSTEM
CLIENT --> CALLING_SYSTEM_NUMBER
Problem: When allocations were used, the SabrixIntegration for SAP did not skip the allocation_line elements and therefore the tax amount and tax rate was doubled.
Solution: ALLOCATION_LINE elements are now being skipped and neither the tax amount nor the tax rate is being doubled.
Problem: The SabrixIntegration for SAP was switching the company role from buyer to seller for purchases independent of the ship from and ship to country.
Solution: The determination to switch the buyer or seller role is now based on the Ship From and Ship To country during an AP transaction. The first two characters of the tax jurisdiction code are used to determine country and the role will only be switched if it is a US to US transaction. Specifically the rule is as follows:
• If SAP TXJCD_SF = US and TXJCD_ST = US and APAR_IND = V and Tax Type = 0 or Blank, the Sabrix Company Role = S (Seller)
• If SAP TXJCD_SF = US and TXJCD_ST = US and APAR_IND = V and Tax Type = 1, then Sabrix Company Role = B (Buyer)
Problem: The SabrixIntegration for SAP set the EXEMPT_AMT for freight lines when it was a credit memo to the wrong amount in Sabrix due to sending a zero value instead of a NULL value.
Solution: When there is no EXEMPT_AMT the connection sets the value to NULL.
Problem: Insufficient samples in the jcMappingsExtension.xml file.
Solution: Added more explanation and referenced to Install Guide.
Problem: The value of the APP_SERVER field changes for every application server in an SAP clustered environment. This causes SAP transactions to post incorrectly in Sabrix audit when re-submitted from a different application server.
Solution: The SabrixIntegration for SAP now uses SAP SID and SAP Client. If Client is missing an exception will occur and will not continue. HOST_SYSTEM, CALLING_SYSTEM_NUMBER and UNIQUE_INVOICE_NUMBER now stay the same regardless of what SAP application server the transaction comes from.
The SabrixIntegration for SAP is no longer using wrapper.conf and wrapper.exe files to run as a service. The SabrixIntegration for SAP is now using Microsoft's SC.exe to install the service and LaunchAnywhere's Start.exe to start the JVM.
SabrixIntegration for SAP Guides: Several minor typographical errors were fixed and other minor enhancements made.
Repackaged the 40 custom attributes transport. The 40 customer attributes are now stored in K900057.S9A and R900057.S9A. Note: This change only impacts customers who have installed 5.0.3.0 and were planning to implement the 40 custom attribute enhancement. These customers must reapply the transport request to their SAP system, no other changes are needed.
With the Sabrix Solution 5.0 release, customers can choose between rounded and unrounded amounts. Support of this Sabrix Solution 5.0 feature was not included in earlier releases of the SabrixIntegration for SAP. A new SabrixIntegration.properties option has been added to determine if rounded or unrounded amounts are being used. The following logic applies:
If:
IS_ROUNDED = true (default) will pull the document rounded amount from the output xml.
If:
IS_ROUNDED = false will pull the document unrounded amount from the output xml.
Note: If you removed the IS_ROUNDED property, the SabrixIntegration for SAP will interpret the property IS_ROUNDED = false.
Problem: The SabrixIntegration for SAP disregarded the SAP line item number during a FORCE call, adding the tax amounts and then sending an OVERRIDE_AMOUNT for each line. This behavior caused an invoice document to fail when saving to the Sabrix Solution audit data base.
Solution: The SabrixIntegration for SAP now recognizes the line item numbers, which allows the correct values to be grouped and correctly sent to the Sabrix Solution.
Problem: Where there was more than one authority returned on the same level, the SabrixIntegration for SAP returned the tax rate from the last tax block when the tax amounts were zero.
Solution: The tax rate from all the tax blocks are summed and returned, including those where the tax amount is zero.
Problem: The parameter compositerollingfileappender in the SabrixIntegrationerverLoggingConfig.xml document was ignored by some operating systems.
Solution: A simpler appender, RollingFileAppender, is now the default delivered with the SabrixIntegration for SAP.
Problem: Customers did not have simple access to open source libraries included in the product.
Solution: A new directory, librarysource, has been added to the zip file distribution which includes the source code of all open source libraries used in the Sabrix product. There is no need for customers to use or do anything with these source files, they are included for compliance reasons only.
New property parameters, jco.client.mshost, jco.client.group and jco.client.r3name, have been added to the properties file, which allows the ability to use login groups in the start-up of the SabrixIntegration for SAP.
Note: These three parameters are ignored if you specify the jco.client.ashost.
An SAP package, Z_SABRIX_CONNECTOR, has been created for Sabrix-related transports and is stored in two transport files: K900044.S9A and R900044.S9A. The data dictionary elements for international and custom attributes have also been created and are stored in transport files.
The 40 custom attributes transport is stored in K900046.S9A and R900046.S9A. The international attributes can be found in K900048.S9A and R900048.S9A. Please see detailed instructions in the SBXConnectSAPInstallGuide50xxB.pdf
Java 1.5 Compliant
The SabrixIntegration for SAP is now Sun Java 1.5 compliant.
SabrixIntegration for SAP Guides: Several minor typographical errors were fixed and other minor enhancements made.
Problem: When freight is a condition in the pricing procedure for a line item in SAP, not all fields on the product line are copied onto the freight line that gets created by the SabrixIntegration.
Solution: The freight line and the product line are now identical with the exception of the following fields:
· RELATED_LINE_NUMBER: The value of this field is set to the value of the parent line number.
· DESCRIPTION: The value of this field is "Freight for line xx" where xx is the line number from the parent line.
· GROSS_AMOUNT: The value of this field is set based on RFC value FREIGHT_AMT.
· LINE_NUMBER: The value of this field is the line number of parent line filled to the sixth position with leading zeros and then a one (1) added in front, for example, 10 will be 1000010.
· PRODUCT_CODE: The value of this field is set from the freight_prod_code in the SabrixIntegration.properties file.
Problem: The SAP connection only supports country.code as the JurisdictionCodeField. It does not support country.code3 or country.isocode.
Solution: country.code3 and country.isocode have been added and made available in the jcMappingsExtenstion.xml files.
Problem: In credit transactions such as credit memos, the discount amount sent to the tax engine was not negative which led to positives values written to the audit log.
Solution: The DISC_AMT field has been negated when the CREDID_IND field is set to True during RFC_UPDATE and RFC_FORCE calls.
Problem: During an invoice update when RFC_FORCE_TAXES_DOC is used, credit transactions, such as credit memos and cancellations, set the CREDIT_IND flag to 1. This signals the SabrixIntegration for SAP to change all the amounts (gross, tax and override) to a negative. The connection is changing the gross amount to negative, but leaving the tax amount and override amount positive, resulting in the wrong calculated gross amount.
Solution: The Is_Credit flag has been set correctly and amounts are now audited correctly.
Problem: The gzip flag is set backwards. When the gzip_disabled flag is set to false, the payload does not gzip. When the gzip_disabled flag is set to true, the payload does gzip.
Additionally, the address validation header shows "Content-Encoding: x-gzip" but the payload does not gzip. The header claims that the data is gzipped and tries to unzip the payload. Because you cannot unzip non-zipped data, a customer cannot do any address validation calls.
Solution: The gzip flag has been set to:
gzip_disabled=false
now means yes, gzip
gzip_disabled=true now means do not gzip
Address validation is added to the gzip_disabled flag to allow address calls to be gzipped.
SabrixIntegration for SAP Guides: Several minor typographical errors were fixed and other minor enhancements were made.
Problem: For forced transactions other than US, Canada, and EU VAT, various jurisdiction levels were being summed in the override field during submission to Sabrix audit.
Solution: Country-specific mappings have been added to the tax override section following the authority model of these countries. Jurisdiction levels are no longer being summed in the override field during forced transactions. Additionally, the tax override logic has been enhanced to use the following lookup logic:
1st ShipTo_Country AND jurisLevel
2nd ShipTo_Country
3rd jurisLevel
Problem: Unique_Invoice_Number field was not populated at the time of auditing.
Solution: In support of enhanced audit uniqueness, this field is now concatenated from the External_Company_ID, Invoice_Number, and Company_Role fields into a string with a pipe ( | ) delimiter. This creates a unique invoice number that ensures a proper audit key in Sabrix. Together with Host_System and Calling_System_Number these three fields build the primary audit key in Sabrix.
Problem: Fee on a quantity calculation method was used, but the line had a missing or incomplete quantity error.
Solution: The Sabrix input XML UOM tag within the quantity structure will now hold the SAP quantity value. Review your TransEditors to see if you have any based on the old QUANTITY tag in the XML.
Problem: A null pointer exception was caused when county mappings were set up in the jcMappingsExtension.xml file.
Solution: The values below have been added:
jurisdictionField name='county.code'
jurisdictionField name='county.code3'
jurisdictionField name='county.isocode'
Problem: Freight line exemption is not mapped from the product line.
Solution: When the freight line is created and the RFC EXEMP_IND is set, that value is passed to the <IS_EXEMPT><ALL> XML element of both the product and freight lines. For further details, please see Mapping SAP Fields to Sabrix XML in the installation guide.
Problem: The proxy server feature of the SabrixIntegration for SAP did not support https calls to the Sabrix Solution.
Solution: The proxy server feature of the SabrixIntegration for SAP has been enhanced to support the proxy server feature for https clients.
Problem: Values provided in the IntegrationServerStartup.sh script for the SAP_HOME and SBX_PATH variables were prepended with "./", causing the operating system to interpret them incorrectly.
Solution: The parameters were changed to use a relative path so that the operating system will interpret the values correctly.
Problem: The SabrixIntegrationerver.log file shows the plain text USERNAME and PASSWORD.
Solution: The following is returned in the log’s indata:
<PASSWORD>REMOVED
FOR SECURITY</PASSWORD>
<USERNAME>REMOVED FOR SECURITY</USERNAME>
Problem: Customers running the SabrixIntegration for SAP on a Microsoft platform would like to run it as a Windows service.
Solution: Instructions on how to run the SabrixIntegration for SAP as a Windows service have been added to the installation guide.
SabrixIntegration for SAP Guides – Several minor typographical errors where fixed, some screen prints replaced, and other minor enhancements were made.
Problem: The city returned in the Sabrix Solution Output XML was not written back to SAP.
Solution: During US Address Validation only, if no city were supplied in SAP, and Sabrix found a city other than Unincorporated, then the city could be returned to the SAP address screen. This behavior can be configured through the use of an option in the SabrixIntegration.properties file. The default setting is true, which means that no city override would be performed. If this option was set to the value of true and the condition mentioned above was fulfilled, then a city would be returned.
Problem: Values set for the parameters max_jurisdiction_addresses and truncate_to_max_addresses in the SabrixIntegration.properties file where not taken into account during runtime.
Solution: The SabrixIntegration for SAP again takes this value into account when addresses are returned to SAP.
Problem: Even if a prepend value was set, it was not passed to the Sabrix Solution.
Solution: Values set for external_company_id_prepend in the SabrixIntegration.properties file are now properly passed to the Sabrix Solution.
Problem: The quantity sent to Sabrix was incorrect (by a factor of 1000) due to an incorrect decimal place setting.
Solution: Quantity values are now sent correctly, taking the SAP decimal places into account
Problem: Some of the path variables where missing or incorrect.
Solution: Corrected the path settings to work properly.
Problem: With the initial release of 5.0.0.0E the encryption of the user/password pair wasn’t implemented.
Solution: Users now can opt to encrypt the user/password for the JCo communication with SAP via a setting in the SabrixIntegration.properties file.
SabrixConnection for SAP Installation and RFC Configuration Guide Version 5.0.0.0B – This release introduces this guide showing you how to enable SAP RFC communication with the Sabrix Solution. This guide walks you through the process of installing the Basic SabrixConnection for SAP, configuring SabrixConnection Properties, and configuring SAP RFC.
SabrixConnection for SAP Custom Attributes – This document describes the process of adding custom attributes to the tax interface, which is an option to assist you in meeting your business needs. If you need a copy of it, please contact Sabrix Professional Services.
SabrixConnection for SAP US/CA Tax Configuration Guide Version 5.0.0.0B – This release introduces the SabrixConnection for SAP US/CA Tax Configuration Guide. This guide walks you through the process of IMG configurations in FI, SD, MM, Master Data Maintenance, and ABAP programming so that you can calculate tax through the Sabrix Solution.
SabrixConnection Version – As of this release, the Basic SabrixConnection for SAP Version number is 5.0.0.0B where B indicates the Basic SabrixConnection.
Bug Notes – This document describes any existing bugs that will be fixed in the next maintenance release.
The following features of the Sabrix Solution version 5.0.1.0 are enabled by the Enhanced SabrixIntegration for SAP version 5.0.0.0E. Please see the SabrixIntegration for SAP Global Tax Configuration Guide for information on how to enable these features within the SabrixIntegration. If you are upgrading the connection from 2.0.2.x to 5.0.0.0E, then you can refer to the Enhanced SabrixIntegration for SAP Upgrade Guide to implement these features.
The Sabrix Solution can now evaluate the Invoice Date and Goods Movement Date to determine the correct Tax Point Date, Tax Exchange Rate Date and Tax Determination Date. You can also receive these dates back over the Enhanced SabrixIntegration.
The SabrixIntegration for SAP passes the Invoice Date from the AP/AR invoice transactions if available; and passes the Goods Receipt Date/Goods Issue date to represent the Goods Movement Date.
XML elements are available to identify locations with special tax treatment such as a Bonded Warehouse. The SabrixIntegration from SAP can now pass the location tax categories on Ship-From and Ship-To locations.
Sabrix can convert Units of Measure (UOM) on line items into the UOM specified by the tax authority.
License functionality in Sabrix can be enabled by sending the customer number from SAP, and the returned license types and license numbers can be returned back to SAP by Sabrix.
Document currency from SAP can be converted into an authority currency and converted results can be returned back to SAP by Sabrix.
The SabrixIntegration can pass Incoterms from SAP to Sabrix for PoTT (Point-of-Title Transfer) mapping.
A group_id which is a line number of a parent item is mapped using the related_line_id for accurate tax determination for a child part number.
The following features are new in Version 5.0.0.0 of the SabrixIntegration. Please see the Tax Configuration Guide for more information.
In the SabrixIntegrationerverLoggingConfig.xml file, you can now specify many different configurations for your log data.
In the SabrixIntegration.properties file, Boolean values have been changed from 0 and 1 to False and True, respectively.
The SabrixIntegration now includes this file to enable custom language configurations.
The AddressValidation http call is gzipped, which sends less bytes and improves performance.
The SabrixIntegration now provides a stop script along with the start script. The updated start and stop (IntegrationServerStartup.sh and IntegrationServerShutdown.sh) scripts are packaged with the 5.0.0.0E SabrixIntegration.
The SabrixIntegration has added an empty log file called SabrixSapIntegration.log to the log directory in the packaging script.
The SabrixIntegration now sets the IS_CREDIT field on the Input Line Level instead of the Input Invoice Level.
The SabrixIntegration now maps ACCNT_NO to LINE.CUSTOMER_NUMBER for Sales transactions and ACCNT_NO to LINE.VENDOR_NUMBER for Purchases transactions.
The Sabrix Solution rounds results to 2 digits of precision by default. If currency decimals is set to 4 in SAP, the results returned by the SabrixIntegration will be rounded to 2 digits of precision.
The SabrixIntegration now returns an API Version of 5.0.0.0E in EXT_CONTROL_DATA-API_VERSION.
If the proxy server is down, SAP will still connect directly to the tax engine by bypassing the proxy server.
The following bug fixes are included in this release.
· The ZONE_LEVEL field in the taxMappings.xml and taxMappingsExtension.xml files have been replaced with the EFFECTIVE_ZONE_LEVEL field.
· For Canadian taxes, the SabrixIntegration was previously returning a negative exempt amount. It now returns the correct amount.
· The SabrixIntegration now returns exemption data to SAP standard RFC fields.
© 2010 Thomson Reuters/Sabrix. All Rights Reserved. Proprietary and confidential information of TR/S. Disclosure, use, or reproduction without the written authorization of TR/S is prohibited.