Open core: don’t reinvent the wheel — build your fenestration software on ours.

Skip to main content

A series is a product line / extrusion profile system. Pricing, designs, and the
rules that pick parts are all defined per series. The Series screen is the administrative
home of a series: its identity and defaults on the Header tab, and everything that
makes it buildable on nine more tabs.

What, where, who, when, why

What The create/edit screen for a product series: identity and
defaults on the Header tab, plus nine configuration tabs (Shapes, Openings,
Open/Shape, Family, Coupler/Mullion, Designs, RO Adj, Glazing Thickness, Rules).
Where Administration → OJ Setup → Product Setup →
Series.
Who Product setup staff — whoever owns the catalog. Series
work is foundational: done once per profile system, revisited when the supplier changes
extrusions, price logic, or designs.
When Before anything else in product setup: options, matrices,
designs and rules all hang off a series, and an order item cannot exist without one. A
brand-new tenant defines its first series here.
Why it matters Every quote line and order item points at a series;
pricing, the size grid offered in the designer, units/rounding, and the rules that pick
parts are all keyed to it. Wrong Header defaults (units, grid ideals, sub-routine type)
propagate into every order entered against the series.

Layout

Left rail: Search box, the series list (ID, Description), and
New / Copy / Delete buttons. Right: ten tabs — Header · Shapes · Openings ·
Open/Shape · Family · Coupler/Mullion · Designs · RO Adj · Glazing Thickness · Rules
.
All tabs except Header stay disabled until you select a series.

Header tab

Top strip: ID (read-only), Name, Description; checkboxes
Active, Made In, I/O Any?; and Order (display order). Then five
collapsible panels:

Panel What you set
Identity & Category Category, Lead Time,
Continuity (Vertical / Horizontal / None), the Not Sub-Routine / Options
Sub-Routine / Rules Sub-Routine
radio, and — only for a sub-routine type — the
Global checkbox and ID (global segment ID).
Units & Decimals Metric / Imperial radio, decimal places,
Rounding, F/I Adj. Imperial mode shows a /64 marker (dimensions
are stored in 64ths of an inch).
Grid Ideal / Min / Max Width and Height — the default size
grid offered in the designer.
Facet & Defaults Min Facet W/H, Bay Center %,
Default Opening, Default Opening Class, Frame Depth,
Glazed Out, Warn when no NFRC/CPD code (see below), and
Qty Discount + matrix combo (see
Matrix).
Supplier Supplier ID, Sup. URL, Acc. @ Sup.,
Pwd @ Sup., Series @ Sup. — for a bought-out series. Hidden when
Made In is ticked.

Automatic behaviors: ticking Made In hides the Supplier panel and saves Supplier ID
as 0; the sub-routine radio shows Global + ID (editable only when Global is
ticked); switching Metric/Imperial mid-edit does not lose values — both unit copies
are saved.

Warn when no NFRC/CPD code

When an item is saved, the designer can warn that no NFRC/CPD code was found for this
item
and offer to cancel the save. This warning is off unless the series asks for
it
— tick Warn when no NFRC/CPD code on the series whose products actually carry
NFRC labels.

Two things must both be true for the warning to appear:

  1. the company preference Use NFRC is on, and
  2. the item’s series has Warn when no NFRC/CPD code ticked.
Why it is per series
Whether a product is NFRC-labelled is a property of the product line, not of the company. With
the check driven by the company preference alone, every save of every item raised the dialog —
including on products that will never have a code, where the only possible response was to
dismiss it. Existing series are unaffected: the tick-box starts off, so nothing changes
until somebody turns it on.

Worked example — adding a vinyl sliding patio door series

The plant adds a vinyl sliding patio door line it extrudes itself. One person spends an
afternoon on the Header tab so the designer offers sane defaults from the first item
onward:

Field Value Why
Name / Description VS-PD / “Vinyl Sliding Patio Door” The label shown everywhere a series can be picked — order entry, reports,
part rules.
Made In ticked Extruded in-house, so the Supplier panel
(bought-out series credentials) hides and Supplier ID saves as 0.
Sub-routine radio Not Sub-Routine This series is sold
directly; only reusable configuration bundles become sub-routines (Sub-Routines).
Metric / Imperial Imperial, 2 decimals, /64 marker shown North-American dealers quote in inches; dimensions are stored in 64ths of an
inch.
Grid Ideal / Min / Max Ideal 72″×80″, Min
60″×76″, Max 120″×96″
The size grid the
designer offers; min/max also fence off unbuildable sizes before rules ever
run.
Default Opening / Class OX / Patio Door New items in the
designer start from this opening instead of a blank canvas.
Warn when no NFRC/CPD code left off Patio doors are not
NFRC-labelled here; ticking it would raise a pointless dialog on every item
save.

After Save assigns the series ID, the real work begins on the other tabs —
openings and their pricing, designs, and the rules that pick parts. Copy from the
closest existing vinyl series first: the deep copy brings shapes, openings, designs and
rules across, and you edit the differences instead of starting from zero.

Working with series

  • Create: New → the form blanks with Active pre-ticked → fill in the
    header → Save. The server assigns the ID. Then configure the other tabs.
  • Edit: select a series → Edit → change → Save (or Cancel to
    reload the stored values).
  • Copy: select → Copy → confirm. A full deep copy is made on the
    server — header plus shapes, openings, opening-shape pricing, matrix links, designs,
    design families, RO adjustments, coupler/mullions, and rules — and the new series is
    selected for you. Use it to start a new series from a similar one.
  • Delete: select → Delete → confirm. A soft delete — the series is
    marked inactive and leaves the list, but stays in the database; it cannot be undone
    from this screen.

Caution: the sub-routine radio moves records between screens. Saving a
series as an Options or Rules Sub-Routine removes it from this list — it now belongs to the
Sub-Routines screen (and vice versa).

Tables behind this screen

The tables the Series screen reads or writes. Global = the shared
openjanela schema; tenant = your company’s
openjanela_partner_* schema.

Table Scope Purpose Where it surfaces
series tenant Series/sub-routine header (~50 fields:
units, grid, facet, supplier)
Left list + Header tab; isseg splits
Series vs Sub-Routines; Delete sets active=0
series_category tenant Series categories Header → Category combo
matrix_header tenant Pricing/lookup matrix
headers
Header → Qty Discount combo; Open/Shape, Coupler/Mullion and
Designs → Matrix combos; Rules Value 1/2
type_shape global Shape catalog Shapes tab
checkbox list
series_valid_shapes tenant Shapes allowed per
series
Shapes tab (Save = delete-all + re-insert)
type_opening global Opening-type catalog Openings tab checkboxes; Open/Shape → Opening type combo
series_valid_openings tenant Openings allowed per
series
Openings tab
series_valid_opening_shape tenant Opening/shape
pricing records
Open/Shape tab
system_uom global Units of measure Open/Shape
& Coupler/Mullion → $ UOM combo
group_pricing tenant Price groups Open/Shape
& Coupler/Mullion → $ Group combo
design_family tenant Design families Family
tab; Designs → Family combo
type_coupler_mullion tenant Coupler/mullion
definitions per series (tenant table despite the type_ name)
Coupler/Mullion tab
design tenant Saved designs per series Designs tab
adjustment_ro tenant Rough-opening adjustments RO Adj tab; Rules Value 1 (rule type 23)
series_allowed_su_thick tenant Allowed glazing
thickness ranges
Glazing Thickness tab
rules, rule_test, rule_test_value,
rule_answers
tenant Rule definitions, their tests,
pick-list values, and saved option answers
Rules tab list + form; Rule Tests
inner editor

Series Copy deep-copies all of the tenant rows above (except
rule_answers) into the new series.

Series categories — series_category

Tenant table feeding the Header Category combo. Names and rows vary by company;
a representative set (the acs tenant):

id Category series_type
1 Windows 1
2 Patio Doors 1
3 Entrance Doors 9
20 Parts 3
21 Profiles 4
22 Custom Parts 12
30 Glass 2
40 Installation 5
41 Repairs 5
50 Shipping 5

The series_type column is what the seriestype column of the
global position/test dictionaries refers to (1 = operable product, 2 = glass, 3 = parts,
4 = profiles, 5 = service, 9 = entrance door, 12 = custom parts).

Shape catalog — type_shape

62 shapes, one checkbox per row on the Shapes tab (checked ids are stored per series in
series_valid_shapes). Grouped by id: 1 Rectangle; 10 None (the
no-shape placeholder); 90–93 Pentagon/Hexagon/Octagon; 100–115 rakes, leans
and trapezoids (incl. parallelogram and trapezoid orientation variants); 150–165
peak, partial and double rakes; 200–205 half/quarter rounds; 300–305 arcs;
400–402 ellipses; 450–461 Gothic variants; 700–706 triangles;
800–802 circle/ovals. All rows are selectable.

Opening-type catalog — type_opening

133 opening types, one checkbox per row on the Openings tab (stored in
series_valid_openings); also the Open/Shape Opening type combo and the
Rule-Tests opening lists. Families by id range:

id range Family Examples
1–10 Projected-out/in casements & fixed Picture/Fixed (1),
PO/PI left/right/top/bottom-hinged, Fixed Sash
11–18 Single-track sliders OX, XO, XOX, OXXO, center sliders,
custom
21–24 2-track sliders XX L/R, XOX, OXXO
31–32 Hung Single/Double Hung
41–44 Tilt-turn TTL/TTR ± slave
51–52 Pivot Horizontal/Vertical
61 Louvered/Jealousies —
71–78 Double casements (PO/PI, slave variants) —
211–293 Same families with Variable Split variable-split
sliders/hung/tilt-turn/double casement
301–303 Folding Left/Right/Middle
311–313 Pocket Left/Right/Middle
502–578 Full duplicate of 1–78 at a 500-offset (US naming:
Casement/Awning/Hopper)
e.g. 502 Casement LH
711–813 Variable-split duplicate of the 500-block e.g. 801–803
folding, 811–813 pocket