Skip to main content

AIR Order Item Mapping (Table 51339)

The AIR Order Item Mapping table determines which Item is used on sales order lines when processing an AIR booking. Each row maps a combination of product type, region, service type, web origin, and voucher flag to a booking item and a service fee item.

Page​

Accessible via the AIR Order Item Mapping page (page 51506) — search for "AIR Order Item Mapping" in Business Central. You can also enter mappings directly in this page instead of importing via config package.

Primary Key Structure​

Field IDField NameData TypeValues
1Product TypeEnumOther, Flight, GroundTransport, Train, Hotel, CarRental
2RegionEnumDomestic, Nordic, NordicNonEU, Europe, EuropeNonEU, International
3Service TypeEnumBooking, Void, Exchange, Refund
4Is From WebBooleanTrue if any passenger comment contains the marker CYTRIC (the online booking tool is always Cytric), False otherwise
5Plus VoucherBooleanSee How Plus Voucher is determined below

Item Fields​

Field IDField NameData TypeDescription
6Booking Item NoCode[20]Item used for the main booking line (flight, hotel, car rental, etc.). Must reference a valid Item
7Service Fee Item NoCode[20]Item used for the service fee line associated with this booking. Must reference a valid Item
8Booking Item DescriptionText[100]FlowField — a lookup into Item.Description. Not stored
9Service Fee Item DescriptionText[100]FlowField — a lookup into Item.Description. Not stored
10BSP Markup Item No.Code[20]Net revenue model only. Item for the BSP card fee markup line. Leave empty in gross-model companies
11NDC Markup Item No.Code[20]Net revenue model only. Item for the NDC markup line. Leave empty in gross-model companies
12BSP Markup Item DescriptionText[100]FlowField — a lookup into Item.Description. Not stored
13NDC Markup Item DescriptionText[100]FlowField — a lookup into Item.Description. Not stored
14VAT Exempt Item No.Code[20]Item for the VAT-exempt part of a mixed-VAT booking (currently car rentals with insurance coverages). Used in both revenue models — see VAT exempt item below
15VAT Exempt Item DescriptionText[100]FlowField — a lookup into Item.Description. Not stored
FlowFields cannot go in a config package

Fields 8, 9, 12, 13 and 15 are FlowFields, so they hold no data of their own. Configuration packages cannot import FlowFields — include only fields 1–7 (plus 10–11 for net-model companies and 14 on CarRental rows). The descriptions appear automatically once the item numbers are set.

Markup items (net revenue model only)​

Under the net revenue model, BSP card fee and NDC markup are invoiced as separate sales lines instead of being included in the booking line amount (the booking line must stay the exact supplier amount — it is a disbursement). Fields 10–11 name the items used for those lines, and they only need to be filled on Flight rows:

  • The markup item's VAT posting group gives the region-correct VAT: the trip's rate on Domestic rows (e.g. 12 % transport in Norway), a 0 % exempt/fritatt group on foreign-region rows.
  • The markup item's description is the visible line text on domestic invoices (e.g. "BSP card fee", "NDC fee"). Foreign markup lines are grouped into the booking line on the invoice printout and are not shown separately.
  • If a booking produces BSP/NDC markup and the matching row has no markup item, the import stops with an error in the AIR Import Log.
  • Gross-model companies leave fields 10–11 empty everywhere — markup stays inside the booking line as before.

VAT exempt item (mixed-VAT car rentals)​

A domestic car rental can carry two VAT bases in one price: the rental part at the standard rate plus VAT-exempt insurance coverages (CDW/TPW). Since a sales line can only carry one VAT rate, the exempt part is split to its own sales line using the item in field 14. This applies in both revenue models — only the item's VAT posting group differs:

  • Gross-model companies: give the item a VAT-exempt posting group. The rental line then carries the standard rate on the rental part only, and output VAT comes out exact.
  • Net-model companies: give the item the same 0 % disbursement (utlägg/utlegg) posting group as the other booking items.
  • The item's description is the start of the visible line text; the coverage detail from the AIR file (e.g. CDW 60.00/DAY + TPW 40.00/DAY) is appended after it.
  • Fill field 14 on CarRental rows — including the Refund service-type rows, which are needed to credit an exempt line (manual refunds included).
  • If a rental has a VAT-exempt amount and the matching row has no VAT exempt item, the import stops with an error in the AIR Import Log.
  • AIR Product Posting Setup needs no extra rows — the exempt line posts through the same CarRental rows as the rental line.

How It Works​

The lookup is an exact match on all five key fields — there is no fallback row. When the system processes an AIR booking and creates a sales order line:

  1. It determines the Product Type from the booking segment (Flight, Hotel, CarRental, GroundTransport)
  2. It determines the Region — for flights from the flight routing, for everything else by resolving the segment's destination code via the AIR Destination table to a country, then to that country's AIR Region
  3. It maps the AIR file type to the Service Type (Booking, Void, Exchange, Refund)
  4. It sets Is From Web by scanning passenger comments for the marker CYTRIC
  5. It computes Plus Voucher (see below)
  6. It looks up the matching row and uses the Booking Item and Service Fee Item for the sales lines

How Plus Voucher is determined​

Plus Voucher is not a free choice — it is derived:

Product TypePlus Voucher = true when
HotelThe matched vendor has Is Subcontractor = Yes, or the AIR hotel segment carries the voucher flag (Is Voucher)
CarRentalThe matched vendor has Is Subcontractor = Yes, or the AIR car rental segment carries the voucher flag
Flight, GroundTransport, Other, TrainAlways false

Two consequences for onboarding:

  • Do not create Plus Voucher = Yes rows for Flight or GroundTransport — they can never be matched.
  • Setting Is Subcontractor on a vendor (which is also what enables hotel chain-code fallback matching — see Vendor) silently flips that vendor's bookings onto the Plus Voucher = Yes rows. If those rows do not exist, the import fails.

When no mapping is found​

  • Normal operation: an Error entry is written to the AIR Import Log for that sequence number and processing of the import stops — no sales order is completed. The log entry names the exact Product Type / Region / Service Type / Is From Web combination that was missing, so you can create the row verbatim.
  • Test Mode enabled (AIR Setup field 10): the system falls back to Test Mode Default Booking Item and Test Mode Default Service Item, logs a Warning instead, and continues. This is why a customer can look fully configured in test mode and then fail on the first real import — always re-test with Test Mode off before go-live.

Example Configuration​

Product TypeRegionService TypeIs From WebPlus VoucherBooking ItemService Fee Item
FlightDomesticBookingNoNoFLIGHT-DOMSVC-FEE-DOM
FlightDomesticBookingYesNoFLIGHT-DOM-WEBSVC-FEE-DOM
FlightNordicBookingNoNoFLIGHT-NORSVC-FEE-NOR
FlightEuropeBookingNoNoFLIGHT-EURSVC-FEE-EUR
FlightInternationalBookingNoNoFLIGHT-INTSVC-FEE-INT
FlightDomesticRefundNoNoFLIGHT-DOM-REFSVC-FEE-DOM
HotelDomesticBookingNoNoHOTEL-DOMSVC-FEE-DOM
HotelDomesticBookingNoYesHOTEL-DOM-VSVC-FEE-DOM
HotelEuropeBookingNoNoHOTEL-EURSVC-FEE-EUR
CarRentalDomesticBookingNoNoCAR-DOMSVC-FEE-DOM
GroundTransportDomesticBookingNoNoGROUND-DOMSVC-FEE-DOM

Config Package Notes​

  • This is a multi-row table — create rows for all combinations that the customer uses
  • The number of rows depends on:
    • Which product types the customer handles (flights only? flights + hotels? all types?)
    • How many regions they need to distinguish
    • Whether they differentiate web vs. agent bookings
    • Whether they use vouchers
  • Include fields 1–7 only — fields 8 and 9 are FlowFields and cannot be imported
  • All referenced Items must exist before importing this table

Planning the Mapping​

To determine which rows are needed, answer these questions:

  1. Which product types does the customer sell? (Flight, Hotel, Car Rental, Ground Transport, Train)
  2. Does the customer need different items per region? (e.g., domestic vs. international flights)
  3. Does the customer differentiate web bookings? (different items for online vs. agent-booked)
  4. Does the customer use vouchers, or have subcontractor vendors? (both force Plus Voucher = Yes on hotel/car rental rows)
  5. Does the customer handle refunds/exchanges/voids? (these need their own Service Type rows)
caution

If a booking is processed and no matching row is found, the import stops with an error in the AIR Import Log — unless Test Mode is on, in which case the test default items are used instead. Cover all expected combinations and verify with Test Mode off before go-live.