- Home
- Blog
- EDGEBIC How-To
- How to Import a File with No Header Row in EDGEBIC
To import a file with no heading row in EDGEBIC, untick Header Present in the mask editor, set the delimiter to match your file, and type each field's source column number into that mapping row's Col # cell instead of dragging a heading. Columns are counted from one, and every column in the line counts even if you are not loading it. Everything else about the mask works identically in EDGEBIC by User Solutions: the same eight entity types, the same conversion factors, the same result counts.
This is the narrow case. For the general build, start with how to build an import mask; every task in this library is mapped on the EDGEBIC how-to hub.
Before You Start
- You have opened the source file in a text editor and can see a raw data line. This is not optional: positional mapping is only as good as your field count.
- You know which character separates the fields. Comma, semicolon, space, and tab are the supported delimiters for text files, and a workbook uses the Excel setting.
- You know which field holds the record's identifier. Every entity type matches on a natural key, so the key field's position is the one that must be right.
- You have access to the Settings tab, where Import lives.
The Steps
- Count the fields. Open the file in a text editor, take one data line, and number the fields left to right starting at one. Write the list down including fields you will skip, because a skipped field still occupies a position.
- Open Settings, then the Import tab, and select the entity type in the Entity Type list.
- Click Define New and give the mask a name that describes the routine rather than today's file.
- Click Get File and pick the source. A
.csv,.txt, or.tsvfile is the usual case here. - Set the delimiter to the character your file actually uses: Comma, Semicolon, Space, or Tab.
- Untick Header Present. This is the step the whole task turns on. Mapping switches from headings to positions, and no row is consumed as a heading row.
- Tick Text Enclosed in Quotes if the file wraps its text values in quotation marks. Leave it clear if it does not.
- Fill Col # on each mapping row you need. Type the source column number into the Col # cell of the target field it feeds. Every row ticked as required must get a number, or the run aborts with no rows processed.
- Set the conversion factor on any row whose units differ. A minutes column needs
0.016667to land as hours. - Save, then click Do It against a ten-row slice of the real file with update existing records left off.
Where the Numbers Go
Two columns on the mapping grid do the same job by different routes, and only one of them is live at a time.
| Mapping column | Used when | What you put in it |
|---|---|---|
| Source Header | Header Present is on | A heading dragged across from the file-headers list |
| Col # | Header Present is off | The source column's position, counted from one |
| Conv | Either | A multiplier applied to numeric values before storing |
The file-headers list is populated from the heading row, so on a headerless file there is nothing to drag. That empty list is the confirmation that Header Present is off, not a sign that the file failed to read.
How to Check It Worked
Read the Key column on the result dialog first. It shows the identifier the mask pulled from each row, so it is the fastest proof that the positions are right. Recognizable part numbers or work center codes mean field one is field one. A Key column full of descriptions, dates, or quantities means you are off by a position, almost always because the first data line was consumed as a heading row or because a skipped column was not counted.
Then read the counts: created, updated, reused, and failed. On a first slice against an empty catalog you want created with zero failed. Open the log file from the result dialog whenever anything failed, because it names the row and the reason.
Last, open the entity's own grid and look at one record end to end. A description sitting in the unit-of-measure field is a positional slip that the counts alone will never show you, because a wrong value in a valid field is a perfectly successful import.
Common Mistakes
Leaving Header Present on. The first data line is then treated as headings, which loses a real record and maps every field by a value that happens to sit in row one. The result looks like a working import with one missing record, which is exactly why it goes unnoticed.
Counting from zero. Positions start at one. An off-by-one mask usually still runs, because most cells are the right data type for the neighboring field, and that is what makes it dangerous.
Counting only the fields you want. If you load fields one, four, and nine, you still have to know that they are one, four, and nine in the full line, not one, two, and three in your shortlist.
Choosing the wrong delimiter on a space-delimited file. Values that contain spaces split into extra fields, so every position after the first offending row is wrong. A tab or comma extract is far safer if you can ask for one.
Ignoring quoting. A file that wraps text in quotation marks, imported without Text Enclosed in Quotes, stores the marks as part of the value. The record then fails to match on the next run because its natural key no longer resolves. For the format concepts underneath this, see what is a delimiter in data import.
Treating a positional mask as maintenance-free. Any change upstream shifts your numbers. Re-count and re-map deliberately, the way handling an ERP export that changed column order describes, and remember that heading-based masks are immune to this.
Assuming a workbook needs positional mapping. If the file is an .xlsx with headings, keep Header Present on and pick the worksheet in the Sheet box; getting that wrong is its own failure, covered in my import read the wrong sheet tab.
Next Steps
The mask is now reusable, and every later run is select and Do It: see how to re-run a saved import mask. If any rows failed, the import said failed rows walks the log. And when the extract changes shape, edit rather than rebuild, using how to edit or delete a saved import mask.
The takeaway
A headerless extract imports into EDGEBIC exactly like any other file once you switch the mask from heading mapping to positional mapping: untick Header Present, set the real delimiter, tick the quote option if the file quotes text, and type each field's column number, counted from one, into its Col # cell. The counting is the work, the Key column on the result dialog is the proof, and any upstream column insertion is a mask edit rather than a surprise. See how import fits the platform on the EDGEBIC overview, read what your current data carries forward on the RMDB to EDGEBIC guide, and continue with how to build an import mask and how to convert minutes to hours during an import.
Expert Q&A: Deep Dive
Q: Our legacy system writes a comma file with no heading row at all. Where do I even start?
A: Start in a text editor, not in the software. Open the file, take the first data line, and count the fields left to right so you know that the part number is field one, the description is field two, and so on. Write that list down, including the columns you do not care about, because positions count every field in the line. Then build the mask, untick Header Present, set the delimiter to comma, and type each number into the Col # cell of the target field it feeds. The counting is the whole job; the mapping afterward takes two minutes and never needs redoing while the extract keeps its shape.
Q: Someone added a column to the middle of our headerless extract and the next import made a mess. Why?
A: Because a positional mask has no way to notice. It reads field seven as the setup time because you told it field seven is the setup time, so inserting a column ahead of it shifts every later field by one and the mask happily maps the wrong values into the wrong places. A heading-based mask survives this, which is the strongest argument for asking whoever produces the extract to emit a heading row. If you cannot get one, treat any change to the source as a mask edit: re-count the fields, update every Col # from the insertion point onward, and prove it on ten rows before the full file.
Frequently Asked Questions
Ready to Transform Your Production Scheduling?
User Solutions has been helping manufacturers optimize their production schedules for over 35 years. One-time license, 5-day implementation.

User Solutions Team
Manufacturing Software Experts
User Solutions has been developing production planning and scheduling software for manufacturers since 1991. Our team combines 35+ years of manufacturing software expertise with deep industry knowledge to help factories optimize their operations.
Share this article
Related Articles
How to Create a Watched-File Integration in EDGEBIC
Create a watched-file integration in EDGEBIC: point it at the file your ERP drops, pick the target entity and import mask, set the debounce, and let a new file trigger the run.
How to Rehearse an Integration With the EDGEBIC Simulator
Use the built-in Simulator to provision demo data, watch real integration runs happen, and prove the mechanism before you point anything at a live ERP. Includes the tear-down rule.
How to Run an Integration Now and Pause All Schedules in EDGEBIC
Force one integration to run with Run Now, cancel a run in progress, disable a single definition, or tick Pause all schedules to stop every automatic sync for the session.
