This page has tips and examples of EDIFACT syntax and how to map it into FOLIO
Default field mapping profiles are provided for a number of common vendors, listed below. Links to those vendor profiles on Snapshot can be found on Field Mapping profiles: EDIFACT
Sample syntaxes
Invoice date
Sample | Vendor | FOLIO field mapping syntax | Resulting value (excluding tenant localization) |
---|---|---|---|
DTM+137:20191002:102' | (EBSCO) | DTM+137[2] | 2019-10-02 |
DTM<137^20201030^102> | (Hein) | DTM<137[2] | 2020-10-30 |
DTM+137:20201102:102' | (Amalivre) | DTM+137[2] | 2020-11-02 |
Invoice line description
Sample | Vendor | FOLIO field mapping syntax | Resulting value (if taken from invoice data rather than POL) |
---|---|---|---|
IMD+L+050+:::ACI MATERIALS JOURNAL - ONLINE -:MULTI USER' | (EBSCO) | {POL_title}; else IMD+L+050+[4-5] | ACI MATERIALS JOURNAL - ONLINE: MULTI-USER |
IMD+F+050+:::Les Maisons de Mandres' | (Amalivre) | {POL_title}; else IMD+F+050+[4-5] | Les Maisons de Mandres |
IMD<F<JTI<^^^USER'S GUIDE TO THE BLUEBOOK> | (Hein) | {POL_title}; else IMD<F<JTI<[4-5] | USER'S GUIDE TO THE BLUEBOOK |
IMD++050+:::post-digital times?.' | (Erasmus) | {POL_title}; else IMD++050+[4-5] | post-digital times |
PIA+5+9787100178655:IB' | (CNPIEC) | {POL_title}; else PIA+5+?IB[1] | 978100178655 |
Invoice lock total amount
Sample | Vendor | FOLIO field mapping syntax | Resulting value |
---|---|---|---|
MOA+9:18929.07' | (EBSCO) | MOA+9[2] | 18929.07 |
MOA+86:1083.08' | (GOBI) | MOA+86[2] | 1083.08 |
MOA<86^458.94> | (Hein) | MOA<86[2] | 458.94 |
MOA+8:56.13:USD:4' | (Amalivre) | MOA+8?4[2] | 56.13 |
MOA+39:213.85:USD:4' | (Harrassowitz) | MOA+39?4[2] | 213.85 |
Vendor invoice number
Sample | Vendor | FOLIO field mapping syntax | Resulting value |
---|---|---|---|
BGM+380:::JINV+0704159+43' | (EBSCO) | BGM+380+[1] | 0704159 |
BGM<380<267908<43> | (Hein) | BGM<380<[1] | 267908 |
BGM+380+649039+9' | (Amalivre) | BGM+380+[1] | 649039 |
BGM+380+583607' | (GOBI) | BGM+380+[1] | 583607 |
BGM+380:::JINV+448603+55' | (Harrassowitz) | BGM+380+[1] | 448603 |
Pricing
EDIFACT invoices can include many types of prices at the invoice level and at the invoice line level. Details for them are available in the EDItEUR documentation. Here is a list of the most common ones:
EDIFACT field | Description |
---|---|
MOA+146 | Line item unit price |
MOA+203 | Line item amount, excluding tax |
PRI+AAA | Line item net amount, excluding tax |
PRI+AAB | Line item gross amount, excluding all adjustments |
MOA+79 | Total of the line item amounts, excluding tax |
MOA+9 | Total amount payable, including any adjustments and tax |
Sample syntax: Pricing
Sample | Vendor | FOLIO Field mapping syntax | Resulting value |
MOA+9:18929.07' | (EBSCO) | MOA+9[2] | 18929.07 |
MOA<86^458.94> | (Hein) | MOA<86[2] | 458.94 |
MOA+8:56.13:USD:4' | (Amalivre) | MOA+8?4[2] | 56.13 |
MOA+203:81.42:USD:4' | (Harrassowitz) | MOA+203?4[2] | 81.42 |
MOA+203:28:EUR:4A' | (Amalivre) | MOA+203?4A[2] | 28.00 |
Purchase order line (POL) matching and field mapping
- An invoice line can be matched to its corresponding purchase order line (POL) via the POL number or any Vendor reference number recorded in the FOLIO POL and the incoming invoice line. Data import will first attempt to match to the POL via the POL referenced in the invoice line.
- If the invoice line POL matches one Open FOLIO POL, the invoice line is linked, and any data mapped from the POL is added to the FOLIO invoice line.
- If the invoice line POL 1) does not match any Open FOLIO POL, or 2) matches multiple Open FOLIO POLs, or 3) there is no POL in the invoice line, then the invoice line can attempt to match to a POL via a vendor reference number.
- If an invoice line vendor reference number matches one Open FOLIO POL, the invoice line is linked, and any data mapped from the POL is added to the FOLIO invoice line.
- If an invoice line vendor reference number 1) does not match any Open FOLIO POL, or 2) matches multiple Open FOLIO POLs, or 3) there is no vendor reference number in the invoice line, then the invoice line data will load to FOLIO without a link to a POL
- When the invoice is manually reviewed, any unlinked invoice lines can be manually linked to corresponding POLs before invoice approval or payment.
- Note: When manually linking a POL to an invoice line, the POL's PO can be Pending, Open, or Closed. When Data Import automatically links a POL to an invoice line, the POL is only linked if its PO status is Open.
- Once a POL is linked to an invoice line, libraries may prefer to populate some of the invoice line data from the POL rather than the invoice line. Such data elements might include Description (from the POL Title field), Acquisition units, POL number, Fund, Expense class, and/or Value. The POL number field of the invoice line can only be populated from the POL if the POL is matched to the invoice line via a Vendor reference number. Otherwise, the POL must be mapped from the incoming EDIFACT data or manually entered into the invoice line after import.
- As of Juniper, a user can link or re-link an invoice line to its corresponding purchase order line. If the library expects to be invoiced again for that purchase order line in the future, it's best to 1) update the POL with whatever vendor reference number the vendor is citing on the invoice line, or to 2) alert the vendor to change that reference number in the vendor's system for future invoices against that POL.
- EDIFACT invoice field mapping syntax for individual POL fields: These are not case sensitive, so they can be entered in the field mapping profile in upper-case, lower-case, or mixed-case. The value must be enclosed in braces, as shown in this table.
POL Field | Field Mapping Syntax |
POL title | {POL_TITLE} |
Acquisition units (from the PO) | {PO_ACQUISITION_UNITS} |
POL number | {POL_NUMBER} |
POL fund id | {POL_FUND_ID} |
POL expense class | {POL_EXPENSE_CLASS} |
POL value | {POL_VALUE} |
Sample POL and Vendor reference number mappings
Sample | FOLIO field mapping syntax | Resulting value |
---|---|---|
PIA+1+99985113084:SA' | PIA+1+?SA[1] | 99985113084 |
PIA+5+288357478:SA' | PIA+5+?SA[1] | 288357478 |
PIA<5<00008163^SA>' | PIA<5<?SA[1] | 00008163 |
RFF+LI:1150816' | RFF+LI[2] | 1150816 |
RFF+LI:VLI835774AM' | RFF+LI[2] | VLI835774AM |
RFF+LI:S174547' | RFF+LI[2] | S174547 |
RFF+LI:VLI839337YL' | RFF+LI[2] | VLI839337YL |
RFF+LI:281990' | RFF+LI[2] | 281990 |
RFF+LI:1032123' | RFF+LI[2] | 1032123 |
RFF+ON:1ABG9102' | RFF+ON[2] | 1ABG9102 |
RFF<ON^1ALC5559>' | RFF<ON[2] | 1ALC5559 |
RFF+SLI:99985428503' | RFF+SLI[2] | 99985428503 |
RFF+SLI:10008-1' | RFF+SLI[2] | 10008-1 |
RFF+SNA:BR7770675AA000579790' | RFF+SNA[2] | BR7770675AA000579790 |
RFF+SNA:D1427558' | RFF+SNA[2] | D1427558 |
RFF+SNA:60400123' | RFF+SNA[2] | 60400123 |
RFF+SNA:7719687' | RFF+SNA[2] | 7719687 |
RFF+SNA:1AEL3378' | RFF+SNA[2] | 1AEL3378 |
RFF+SNL:1AEL3378' | RFF+SNL[2] | 1AEL3378 |
Combining mappings
EDIFACT field mappings, POL field mappings, and defaults can be combined for individual fields, to create a cascade of options for the field. The most common example is the invoice line Description field, which is a required field. If the incoming invoice line matches to a purchase order line (POL), usually the library will want the invoice line Description field to be populated with the POL's title field. If the incoming invoice line does not match to a POL, then the library usually will want the invoice line's description to be populated from the incoming EDIFACT data.
Sample | Vendor | FOLIO field mapping syntax | Resulting value (if invoice line is not matched to POL) |
IMD+L+050+:::ACI MATERIALS JOURNAL - ONLINE -:MULTI USER' | (EBSCO) | {POL_title}; else IMD+L+050+[4-5] | ACI MATERIALS JOURNAL - ONLINE:MULTI USER |
IMD+F+050+:::Les Maisons de Mandres' | (Amalivre) | {POL_title}; else IMD+F+050+[4-5] | Les Maisons de Mandres |
IMD<F<JTI<^^^USER'S GUIDE TO THE BLUEBOOK> | (Hein) | {POL_title}; else IMD<F<JTI<[4-5] | USER'S GUIDE TO THE BLUEBOOK |
IMD++050+:::post-digital times?.' | (Erasmus) | {POL_title}; else IMD++050+[4-5] | post-digital times? |
PIA+5+9787100178655:IB' | (CNPIEC) | {POL_title}; else PIA+5+?IB[1] | 9787100178655 |
Add info about FOLIO POLs, and storing previous POLs as vendor reference numbers
EDIFACT mapping issues still to be resolved
Field | Issue | Related Jira | Workaround |
---|---|---|---|
Currency | Default CUX+2 mapping does not work properly | Replace the currency mapping in the field mapping profile with the default currency code from the dropdown list | |
Invoice level adjustments | Mapping is not yet working properly | Add manually after the rest of the invoice has been imported | |
Invoice line level adjustments | Mapping is not yet working properly | MODDICORE-124 | Add manually after the rest of the invoice has been imported, or consider mapping the net amount, rather than the gross amount and separate adjustments. |
Price qualifiers on a separate line from the amounts | Mapping pattern needs to be created | MODDICORE-123 | Add manually after the rest of the invoice has been imported |
Subscription start and end dates | Mapping pattern needs to be created for the more complex PIA+5S/PIA+5E segments | Ask vendor to deliver subscription start/end dates in the simpler DTM+194/DTM+196 segments or IMD+L+085/IMD+L+086 segments instead |