Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
typelist
printablefalse

FlowAP Template

The FlowAP template defines the templates used for different parts of the inbound transactions to ensure clear communication between the vendor who sends the invoice (scanning service, electronic invoicing service) and the buyer who receives the invoice (NetSuite).

...

Field name

Description

Primary Information

Name

Enter a name for your FlowAP Template.

Lookup Criteria

Vendor Lookup Criteria

JSON objects that would be used as criteria for searching the Vendor for the FlowAP Document. You can enter a maximum of 15 criteria and a minimum of 1.

Item Lookup Criteria

JSON objects that would be used as criteria for searching the Item for the FlowAP Document. You can enter a maximum of 5 criteria and a minimum of 1.

Mapping Templates

Transaction Mapping

JSON object which defines the mapping for the Transaction Header and Lines.

Vendor Mapping

JSON object which defines the mapping for the new vendor creation.

Navigating to the setup

Navigate to FlowAP > FlowAP Configuration > Staria FlowAP Template

This is the list of available FlowAP templates. 3 default templates come with FlowAP upon installation.

Note

You must not edit the Default FlowAP Templates.

Any changes made to the default template will be overridden during new version releases of FlowAP.

To use a customized version of the FlowAP template, save a copy of the Default FlowAP Template.

Apply your own lookup criteria and XML mapping to the new FlowAP Template; and assign it to the relevant Staria FlowAP Subsidiary Setup.

Assigning FlowAP Templates to the FlowAP Subsidiary setup

  1. Navigate to FlowAP > FlowAP Configuration > Staria FlowAP Subsidiary Setup.

  2. Select the subsidiary setup and click edit.

  3. Navigate to the Conversion subtab and find the FlowAP template field.

  4. Select the FlowAP Template.

  5. Click Save.

Parts of the FlowAP Template

1. Lookup Criteria

2. FlowAP Template Mapping

The template mapping defines the destination NetSuite fields vs the source XML element values used when creating records/transactions in Netsuite. Templates are created for:

Transaction Mapping

...

  • 2.1 AP Transaction (Vendor Bill / Vendor Credit)

  • 2.2 Vendor

  • 2.3 Vendor Contact

FlowAP Template Notation

The FlowAP template is based on JSON syntax. The mapping templates are written inside curly braces.

General Mapping Notation

This mapping notation is used for the majority of the transaction fields. This maps one (1) NetSuite field to (1) XML element.

Example:

Code Block
languagejson
{
  "nsfieldid1": {
    "xpath": ["/cac:parentxmlelement/cbc:childxmlelement1"]
  },
  "nsfieldid2": {
    "xpath": ["/cac:parentxmlelement/cbc:childxmlelement2"]
  }
}

Each field mapping contains the name/value pairs. The name/value pairs consist of:

  • NetSuite field ID - The field ID of the target field of the NetSuite record or transaction

  • XML element path - The XML element together with its parent element. The parent element is not needed if the element is a direct child of the <Invoice> element.

Multiple

...

Source Mapping Notation

The general field mapping notation can be modified to map one (1) Netsuite field to multiple XML elements. If the first mapped XML element is empty, the succeeding mapping will be used.

...

Code Block
languagejson
"taxpercent": {
  "xpath" : [
    "./cac:Item/cac:ClassifiedTaxCategory/cbc:Percent",
    "/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent"]}}]
  },   

In this example, the taxpercent field is mapped to the line-level tax percent and the transaction header-level tax percent.

If the line level tax percent is empty in the XML, the transaction header level tax percent will be used instead.

Complex-type Mapping Notation

Complex-type JSON objects define the mapping for a NetSuite sublist or child record linked to the transaction.

...

  1. Transaction Expense/Item Sublist

  2. NetSuite Electronic Bank Payment Vendor Entity Bank Details

  3. Allowance Charge

Example:

Code Block
languagejson
{
  "nssublistname": {
    "listpath": ["/cac:parentxmlelement",
    "fields" : [
      {
        "nsfieldid1": {
          "xpath": ["/cac:parentxmlelement/cbc:childxmlelement1"]
        },
        "nsfieldid2": {
          "xpath": ["/cac:parentxmlelement/cbc:childxmlelement2"]
        },
      }

Fields with Special Validation

"vendorvat": {"xpath": ["/cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID=\"VAT\"]"]},

"subsidiaryvat": {"xpath": ["/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID=\"VAT\"]"]},item

line: QTY

tax percent

  1. Fixed empty memo line level field for unidentified items posted as expense, the following value is now set for the memo: <tax percent> | Item ID - Item Name.

  2. STA_EMPTY

Misc

...


    ]
  }
}

For all fields in the sublist:

  • If the xpath starts with a period (.) - this means that the absolute path to get the XML value is Invoice/<listpath>/<xpath>

  • Otherwise, the absolute path starts directly from the Invoice element similar to the body fields: Invoice/<XPath>

Example:

Code Block
languagejson
{
  "item" : {
    "listpath" : "/cac:InvoiceLine",
    "fields" : [
        {
          "taxpercent": {
              "xpath" : ["./cac:Item/cac:ClassifiedTaxCategory/cbc:Percent",
                        "/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent"]
          }
        }
    ]
  }
}

For taxpercent, there are 2 xpaths which means that there’s a hierarchy in retrieving the value for taxpercent

  1. ./cac:Item/cac:ClassifiedTaxCategory/cbc:Percent - since this xpath starts with a period, the actual path for this is Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent

  2. If number 1 returns a null value (null = missing element or no value at all. 0 is considered a valid value), /cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent is used. Since this does not start with a period, the actual path for this is Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent

Fields with Special Validations or Automations

Field

Validation / Automation Details

Expense Line : Memo field

Info

For unidentified items posted as expense lines

NetSuite expense lines created when conversion is unable to identify a NetSuite item for the invoice line.

The memo field of the expense line will have the value:

<taxpercent> | <vendorcode> - <itemname>

Related article: How to customize the memo field value of expense lines created by FlowAP conversion for unidentified items

Expense Line : Memo

Info

For expense line posted when POST SINGLE BILL LINE = T

  • If Vendor Preference > [STA] POST SINGLE BILL LINE: USE FIRST XML MEMO = T and firstmemo_value is not empty the format will be

    • <taxpercent_total> | <firstmemo>

  • Else

    • <taxpercent_total> | “Transaction Total”

      • Transaction Total is fixed/static text. This is to indicate that this single line is the transaction total from the XML.

Currency

The XML currency is always used. "currency": {"xpath" : ["/cbc:DocumentCurrencyCode"]},

  1. If the XML currency is not configured in NetSuite (List>Accounting>Currencies) the conversion will result to an error.

  2. If the XML currency is configured in NetSuite, but not found in the vendor’s available currencies, it will be added to the vendor record and conversion will be successful in using the XML currency.

...

...

Invoice Item Line : Quantity

The quantity is defaulted to 1 if there is no indicated quantity in the XML for an item line.

Vendor : VAT

"vendorvat": {"xpath": ["/cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID=\"VAT\"]"]},

Subsidiary : VAT

"subsidiaryvat": {"xpath": ["/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID=\"VAT\"]"]},

All fields

After parsing the mapped fields and no value is found in the XML, the created JSON data from the XML will set the value as “STA_EMPTY“.

Location

A hierarchy is implemented for determining the location to be set.

https://staria.atlassian.net/wiki/spaces/SIS/pages/edit-v2/1565753351?draftShareId=253908da-d8b2-45b8-b825-b74c6c05d4e3

...

Billing Address : Country

If the XML’s billing country is empty, the

...

vendor record’s billing country will be used.

Reference Number

Unique Transaction reference numbers are validated for each transaction type (vendor bill and vendor bill credit). The conversion will fail for duplicate transaction reference numbers.

Info

Transaction reference number duplicates are not checked across two different transaction types.

Example: A vendor bill can have reference number = ABC123 and a vendor bill credit can still be created with reference number ABC123.

Related FlowAP Subsidiary Setup Options

The following setup options influence or override the behavior of the mapped elements during conversion.

...

Use Case

Setup Options

Related Articles

Allow transaction creation to proceed even if the conversion was unable to find a matching NetSuite item for the vendor bill lines.

The conversion will post unidentified items as expense lines.

FlowAP Subsidiary Setup > CREATE UNIDENTIFIED ITEMS AS EXPENSE

How does FlowAP Post unidentified items?

Use NetSuite expense items instead of expense lines

FlowAP Subsidiary Setup > USE EXPENSE ITEMS INSTEAD OF ACCOUNTS FOR EXPENSE LINES

Expense Item/Account Lookup Hierarchy

Ignore XML line level data and allow NetSuite to copy the line level information from the related purchase order in NetSuite.

The total payable amount of the bill will always be equal to the XML.

The user responsible for the bill is expected to review the line details of the bill and make the necessary data entry to correct it for the total payable amount.

FlowAP Subsidiary Setup > INHERIT PO LINES

FlowAP Subsidiary Setup > INHERIT PO LINES: DEFAULT TO 0 QUANTITY AND AMOUNT

Inherit Purchase Order Lines with Variances

Ignore the XML line level data and save a single transaction line in NetSuite transaction.

FlowAP Subsidiary Setup > POST SINGLE BILL LINE: USE PAYABLE AMOUNT (NO TAX)

[STA] POST SINGLE BILL LINE preference guide

Info

When using Post Single Bill Line = T and Use expense item = T: the rate is always set to 0. The amount is mapped from the XML.

Do not allow a well-formed XML to create a stand-alone bill (Direct bill) if the PO Reference is empty.

Staria FlowAP Subsidiary Setup > WHEN BILL NOT FOUND

https://staria.atlassian.net/wiki/spaces/SIS/pages/

1316683781

1193541651/

Hierarchy+Used

Staria+

by+

FlowAP+

Conversion+When+Selecting+Tax+Codes+on+Vendor+Bill+Lines#Tax-Code-Hierarchy-for-Bill-Items
  1. Jira issue related to does not allow stand alone vendor and vendor credit - place is a different page!!!

  1. A fix is implemented for a bug affecting setup for subsidiaries setup where WHEN PO# NOT FOUND = Report Error. Subsidiaries with this setup were preventing stand-alone bills from being converted.

  1. For Post Single Bill Line - Expense Item, the rate is always set to 0 to cover discount items limitation. The amount is mapped from the XML. 'Transaction Total' added to the memo

For other pages:

  1. Fixed an issue where a duplicate number error is flagged when using the same document number between a vendor bill and a vendor credit.

  2. Fixed an issue where vendor creation fails if the XML does not contain or has an invalid payment term.

  3. The following tax code lookup options now support 0% tax rates:

    • Vendor-subsidiary sublist tax code field.

    • Item tax schedule

  4. Fixed an issue where the final tax code lookup hierarchy entry is using a Default tax code for the vendor’s billing country instead of the transaction’s subsidiary country.

  5. Expected errors

    1. If multiple or no vendors are found then an audit trail will be created instead of getting an unexpected error.

TO DO:

...

Subsidiary+Setup#Flowsetup-whenbillnotfound

Do not allow a well-formed XML to create a stand-alone bill credit (Direct Credit) if the Bill Reference is empty.

Staria FlowAP Subsidiary Setup > WHEN PO# NOT FOUND

https://staria.atlassian.net/wiki/spaces/SIS/pages/1193541651/Staria+FlowAP+Subsidiary+Setup#Flowsetup-whenPOnotfound

Do not allow stand alone transactions for a specific vendor.

Configure vendor preferences in the vendor record.

  1. Vendor Preference: [STA] No Direct Bill

  2. Vendor Preference: [STA] No Direct Credit

Configure the Vendor-specific preferences saved search in the FlowAP Subsidiary Setup > VENDOR-SPECIFIC PREFERENCES

Vendor Record

https://staria.atlassian.net/wiki/spaces/SIS/pages/1318354945/Vendor+related+configuration+for+FlowAP+conversion+A+Detailed+Guide#Vendor-Specific-Preferences

Define tax codes for each tax rate/percent parsed from the XML during conversion.

FlowAP Subsidiary Setup > TAX CODE TABLE

https://staria.atlassian.net/wiki/spaces/SIS/pages/1316683781/Hierarchy+Used+by+FlowAP+Conversion+When+Selecting+Tax+Codes+on+Vendor+Bill+Lines#Tax-Code-Hierarchy-for-Bill-Items

Limitations

Warning
  • The FlowAP conversion only supports UBL 2.1 Invoice XML schema. The UBL 2.1 (Universal Business Language) standard provides a set of predefined codes for the InvoiceTypeCode element, which specifies the type of invoice being issued. The following are supported InvoiceTypeCode values:

    1. 380 - Commercial invoice: The most common type of invoice used for general business transactions.

    2. 381 - Credit note: Used to correct or cancel a previously issued invoice.