Invoice data transformation logic
Summarize
Summary of Invoice Data Transformation Logic
The Accounts Payable Operations integration with Document Intelligence automates the transformation of invoice data into a format suitable for processing. This includes deriving field values, converting dates, currencies, and unit prices, as well as fetching reference field values from the invoice document.
Show less
Key Features
- Type Deriving Logic: Determines invoice type (e.g., credit memo, PO, Non-PO) based on specific conditions such as original invoice number presence and purchase order values.
- Date Conversion Logic: Converts various date formats into the ISO standard (YYYY-MM-DD) while accommodating specific date formats based on the day value.
- Currency & Unit Price Conversion Logic: Supports multiple currency formats and locales, ensuring correct representations based on the invoice’s currency symbols or codes.
- Decimal Conversion Logic: Adjusts decimal and thousand separators according to user locale settings, ensuring accurate numeric values.
- Reference Field Value Fetching: Retrieves values for critical fields such as Legal Entity, Purchase Order, Supplier, Original Invoice Number, Country, Subtotal, and Tax Amount based on established rules and conditions.
Key Outcomes
By implementing this transformation logic, ServiceNow customers can expect enhanced accuracy in invoice processing, reduced manual intervention, and streamlined operations within the Accounts Payable department. This results in faster processing times and improved data integrity across financial transactions.
Accounts Payable Operations integration with Document Intelligence converts the invoice and invoice line field values from the invoice document to a format supported by the system that processes the invoice.
Type deriving logic
The application includes the following logic for deriving the type field on the invoice.
- For an invoice to be of type credit memo, the invoice stage record must contain one of the following:
- The original invoice number is present
- Amount fields such as subtotal, tax rate, tax amount, shipping amount, other charges, amount invoiced contain negative values
- Considers the purchase order value in the invoice stage record
- If the purchase order value isn’t empty, then the invoice is set to PO type.
- If the purchase order value is empty, then the invoice is set to Non- PO type.
Date conversion logic
- Considers YYY-MM-DD as the ISO format and the system format for date conversion.
- Considers dates only in MM-DD-YYYY format for conversion.
- Considers dates in MM-DD-YYYY format if DD is less than 12.
| Date format in the incoming invoice | Converted date format |
|---|---|
| 2nd Sep, 2022 | 2022-09-02 |
| 3rd September, 2022 | 2022-09-02 |
| 02-Sep-2022 | 2022-09-02 |
| 02-Sept-2022 | 2022-09-02 |
| Sept-02-2022 | 2022-09-02 |
| Sep-02-2022 | 2022-09-02 |
| 09-02-2022 | 2022-09-02 |
| 02-09-2022 | 2022-02-09 |
| 09/02/2022 | 2022-09-02 |
| 02/09/2022 | 2022-02-09 |
Currency conversion logic
The application supports different locale such as US, European and Indian number systems. For example, "X,XXX.XXX", "X.XXX,XX", "XX,XX.XXX" where X is a single-digit positive number.
| Scenario | Currency format in the incoming invoice | Converted currency format |
|---|---|---|
| Amount followed by a space and the currency code | 76 EUR | 76 EUR |
| Amount followed by a space and the currency symbol | 76 € | 76 EUR |
| Currency code followed by multiple spaces and the amount | EUR 76 | 76 EUR |
| Currency symbol followed by multiple spaces and the amount | € 76 | 76 EUR |
| Amount without a currency code or symbol | 76 | 76 (followed by the purchase order currency or the session currency) |
| Amount separated by comma, dot or any other grouping or decimal separator followed by a space and the currency code | 7.123.456,99 EUR | 7123456.99 EUR |
| Amount followed by the currency code without any space | 76EUR | 76 EUR |
| Amount followed by the currency symbol without any space | 76€ | 76 EUR |
| Currency code followed by the amount without any space | EUR76 | 76 EUR |
| Currency symbol followed by the amount without any space | €76 | 76 EUR |
- PO invoice - Searches for purchase order and related currency, and sets the invoice currency to purchase order currency. In case of missing purchase order or related currency, the invoice currency is set to system currency.
- Non- PO invoice - Searches for legal entity and local currency, and sets the invoice currency to the legal entity's local currency. In the case of missing legal entity and local currency, the invoice currency is set to system currency.
Unit Price conversion logic
The application supports different locale such as US, European and Indian number format locale. For example, "X,XXX.XXX", "X.XXX,XX", "XX,XX.XXX" where X is a single-digit positive number.
If the incoming invoice unit price consists of currency symbol or code present in Currency [fx_currency] table, then the unit price is converted. For example, $ XX,XXX,XXX.XX or USD XX,XX,XXX.X, where X is a single-digit positive number.
| Unit price mentioned in the incoming invoice | Converted unit price |
|---|---|
| 1,000,25.10 | 100025.10 |
| 1,00,025.10 | 100025.10 |
| $1,000,25.10 | 100025.10 |
| 1,000,25.10 $ | 100025.10 |
| USD1,00,025.10 | 100025.10 |
| 1,00,025.10 USD | 100025.10 |
Decimal conversion logic
The application supports different locale such as US, European and Indian decimal format locale. For example, "X,XXX.XXX", "X.XXX,XX", "XX,XX.XXX" where X is a single-digit positive number.
| Decimal format mentioned in the incoming invoice | Converted decimal format |
|---|---|
| 1,000,25.10 | 100025.10 |
| 1,00,025.10 | 100025.10 |
| 100,251 | 100,251 |
| 10.102,510 | 10102.51 |
| 10.10.102,510 | 1010102.51 |
| 100,251 | |
| 100.251 |
Logic to fetch reference field values
| Reference Field | Logic to fetch the field value |
|---|---|
| Legal Entity | The system fetches the value by checking the following values in the order listed:
|
| Purchase Order | The system does the following:
|
| Supplier | The system does one of the following:
|
| Original invoice number | The system does the following:
|
| Country | The system does one of the following:
|
| Subtotal, Tax amount, Other charges | The system does the following:
|