The Unexpected Input Remover
Every time FME reads a dataset, it checks the feature types inside that dataset to ensure that they are all defined within the workspace schema. If there are feature types that exist in the dataset, but do not exist in the workspace, then features are classed as "unexpected" and filtered out by a function called the Unexpected Input Remover.
The actions of the Unexpected Input Remover are reported in the Log file:
STATS |Router and Unexpected Input Remover(RoutingFactory): Tested 3995 input feature(s), wrote 3995 output feature(s): 957 matched merge filters, 957 were routed to output, 3038 could not be routed
...and also through a dialog that opens at the end of a translation:
Notice how each feature type that fails to match is listed along with a count of the affected features. Also notice the checkbox that allows this report to be turned off in future translations.
|Dr Workbench says...|
It's important to consider that the feature types in a workspace might be deliberately different to those in the source dataset.
For example, a user may have purposely left a feature type out of a workspace when it was generated, or may have decided a feature type was no longer required and so deleted it. In that scenario, the Unexpected Input dialog may still pop up, but can be safely ignored as the user deliberately requires this behaviour.
So this dialog is considered a reminder rather than an error, and not always an indication something is wrong.
Unexpected Input and Dataset Type
Remember that there are two different types of file dataset: file-based and folder-based.
For file-based datasets, if there is a layer in the file that is not represented on the canvas then FME treats the layer as "unexpected" and drops it from the translation.
This most commonly happens when the layers in the source data change, or a completely different file is selected.
For folder-based datasets - where layers are stored as separate files in a folder - if there is a selected file that is not represented on the canvas, then FME treats the file as unexpected and drops it from the translation.
This is most often a problem when a set of tiled datasets are being read, as each tile is a separate file (feature type) and needs a separate definition if it is to be allowed into the translation.
Unexpected input is not reported in two cases: databases and AutoCAD files.
For databases it's because a user is unlikely to want to read every single table in the database; so it's not unexpected for them to miss some out.
AutoCAD won't report mismatched features types as "unexpected", but it will report them in the log window:
AutoCAD Reader: Features for feature type 'Arterial' will be skipped based on the feature types requested