#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
#!
GUI IGNORE SourceDataset_TEXTLINE_1,TEXTLINE_IN_ENCODING_TEXTLINE_1,SourceDataset_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_WHERE_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_TRANSLATE_SPATIAL_DATA_ONLY_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_RESOLVE_DOMAINS_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_RESOLVE_SUBTYPE_NAMES_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_IGNORE_NETWORK_INFO_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_IGNORE_RELATIONSHIP_INFO_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SPLIT_COMPLEX_EDGES_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SPLIT_MULTI_PART_ANNOS_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINX_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINY_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXX_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXY_GEODATABASE_FILE_1,GEODATABASE_FILE_IN_CLIP_TO_ENVELOPE_GEODATABASE_FILE_1,_GEODBSplitComplexAnnotations_GEODATABASE_FILE_1,_GEODBCacheMultipatchTextures_GEODATABASE_FILE_1,_GEODB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_GEODATABASE_FILE_1,_GEODBInSearchFeature_GEODATABASE_FILE_1,_GEODBInSearchOrder_GEODATABASE_FILE_1,_GEODBInSearchMethod_GEODATABASE_FILE_1,_GEODBInFeatureReadMode_GEODATABASE_FILE_1,_GEODBInCheckSimpleGeom_GEODATABASE_FILE_1,_GEODBMergeFeatLinkedAnnos_GEODATABASE_FILE_1,_GEODBInBeginSql_GEODATABASE_FILE_1,_GEODBInEndSql_GEODATABASE_FILE_1,DestDataset_XLSXW_1,XLSXW_OUT_OVERWRITE_FILE_XLSXW_1,XLSXW_OUT_TEMPLATEFILE_XLSXW_1
DEFAULT_MACRO SRC_GDB
GUI SOURCE_GEODATABASE SRC_GDB Source Esri File Geodatabase:
DEFAULT_MACRO DestDataset_XLSXW
GUI FILENAME DestDataset_XLSXW Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|All_files(*.*)|*.* Destination Microsoft Excel File:
INCLUDE TCL
proc __FME_ExpandMacros {text {maxlevels 100}} {
if { $maxlevels <= 0 } { return $text; }
set pattern [join {{\$} {\([^()$]*\)}} {}]
set indices [regexp -inline -all -indices $pattern $text]
if [llength $indices] {
foreach pair [lreverse $indices] {
lassign $pair start end
set replacement {}
set replacement $::FME_MacroValues([string range $text [expr $start + 2] [expr $end - 1]])
set text [string replace $text $start $end $replacement]
}
return [__FME_ExpandMacros $text [expr $maxlevels - 1]]
}
return $text
}
proc __FME_ExpandEnvVars {text {maxlevels 100}} {
if { $maxlevels <= 0 } { return $text; }
set pattern [join {{\$} {\{[^\{\}$]*\}}} {}]
set indices [regexp -inline -all -indices $pattern $text]
if [llength $indices] {
foreach pair [lreverse $indices] {
lassign $pair start end
set replacement {}
set replacement $::env([string range $text [expr $start + 2] [expr $end - 1]])
set text [string replace $text $start $end $replacement]
}
return [__FME_ExpandEnvVars $text [expr $maxlevels - 1]]
}
return $text
}
proc __FME_EvalAndEncodeMacro {macroName} {
set macroVal {}
catch { set macroVal [__FME_ExpandMacros $::FME_MacroValues($macroName)] }
catch { set macroVal [__FME_ExpandEnvVars $macroVal] }
if {[string equal -length 15 {FME_CONDITIONAL} $macroVal ] == 0} {
return [FME_EncodeText $macroVal];
}
return $macroVal;
}
END_INCLUDE
INCLUDE [ puts "MACRO SRC_GDB__FMEENCODED__ [__FME_EvalAndEncodeMacro SRC_GDB]" ; ]
INCLUDE [ puts "MACRO DestDataset_XLSXW__FMEENCODED__ [__FME_EvalAndEncodeMacro DestDataset_XLSXW]" ; ]
INCLUDE [ if {{$(SRC_GDB)} == {}} { puts_real {Parameter 'SRC_GDB' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(DestDataset_XLSXW)} == {}} { puts_real {Parameter 'DestDataset_XLSXW' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE MULTI_READER
MULTI_READER_TYPE{0} TEXTLINE
MULTI_READER_KEYWORD{0} TEXTLINE_1
MULTI_READER_GEN_DIRECTIVES{0}
MULTI_READER_TYPE{1} NULL
MULTI_READER_KEYWORD{1} GEODATABASE_FILE_1
MULTI_READER_GEN_DIRECTIVES{1} SEARCH_ENVELOPE_MINX,0,SEARCH_ENVELOPE_MINY,0,GEODATABASE_FILE_EXPOSE_FORMAT_ATTRS,,_MERGE_SCHEMAS,YES,WHERE,,USE_SEARCH_ENVELOPE,NO,TRANSLATE_SPATIAL_DATA_ONLY,no,IGNORE_RELATIONSHIP_INFO,no,SPLIT_COMPLEX_EDGES,no,CLIP_TO_ENVELOPE,NO,SPLIT_MULTI_PART_ANNOS,no,RESOLVE_DOMAINS,yes,TABLELIST,,SEARCH_ENVELOPE_MAXX,0,IGNORE_NETWORK_INFO,no,SEARCH_ENVELOPE_MAXY,0,RESOLVE_SUBTYPE_NAMES,no
WRITER_TYPE MULTI_WRITER
MULTI_WRITER_DATASET_ORDER BY_ID
MULTI_WRITER_FIRST_WRITER_ID 0
MULTI_WRITER_TYPE{0} XLSXW
MULTI_WRITER_KEYWORD{0} XLSXW_1
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "TEXTLINE_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER TEXTLINE TEXTLINE_1
# =====================================================================
# The following GUI line prompts for a file to be used as the source
# TextLine file. The user input is stored in a macro, which is then
# used to define the dataset to be read.
# The dataset this mapping file was generated from was:
GUI FILENAME SourceDataset_TEXTLINE_1 Text/Compressed_Text_Files(*.txt;*.txt.gz)|*.txt;*.txt.gz|Text_Files(*.txt)|*.txt|Compressed_Text_Files(*.txt.gz)|*.txt.gz|All_files(*.*)|*.* Source Text File:
# =====================================================================
# Allows to force the encoding of source text file
DEFAULT_MACRO TEXTLINE_IN_ENCODING_TEXTLINE_1
GUI OPTIONAL STRING_OR_CHOICE TEXTLINE_IN_ENCODING_TEXTLINE_1 UTF-8%UTF-16LE%UTF-16BE%ANSI%BIG5%SJIS%CP437%CP708%CP720%CP737%CP775%CP850%CP852%CP855%CP857%CP860%CP861%CP862%CP863%CP864%CP865%CP866%CP869%CP932%CP936%CP950%CP1250%CP1251%CP1252%CP1253%CP1254%CP1255%CP1256%CP1257%CP1258%ISO8859-1%ISO8859-2%ISO8859-3%ISO8859-4%ISO8859-5%ISO8859-6%ISO8859-7%ISO8859-8%ISO8859-9%ISO8859-13%ISO8859-15 Character Encoding:
TEXTLINE_1_ENCODING $(TEXTLINE_IN_ENCODING_TEXTLINE_1)
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {{$(SourceDataset)} != ""} { \
puts {DEFAULT_MACRO SourceDataset_TEXTLINE_1 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER TEXTLINE TEXTLINE_1
DEFAULT_MACRO SourceDataset_TEXTLINE_1 ${TEMP}\temp.fme
TEXTLINE_1_DATASET "$(SourceDataset_TEXTLINE_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "GEODATABASE_FILE_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER GEODATABASE_FILE GEODATABASE_FILE_1
# ============================================================================
# The following GUI line prompts for a file to be used as the source.
# The user input is stored in a macro, which is then used to define
# the dataset to be read.
# The dataset this mapping file was generated from was:
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {{$(SourceDataset)} != ""} { \
puts {DEFAULT_MACRO SourceDataset_GEODATABASE_FILE_1 $(SourceDataset)} \
} ]
#! END_WB_HEADER
#! START_SOURCE_HEADER GEODATABASE_FILE GEODATABASE_FILE_1
DEFAULT_MACRO SourceDataset_GEODATABASE_FILE_1 $(SRC_GDB)
GUI SOURCE_GEODATABASE SourceDataset_GEODATABASE_FILE_1 Source Esri File Geodatabase:
# Translation flags.
#
# ========================================================================
# The following defines the global where clause to be used when retrieving
# features from the Geodatabase.
DEFAULT_MACRO GEODATABASE_FILE_IN_WHERE_GEODATABASE_FILE_1
GEODATABASE_FILE_1_WHERE "$(GEODATABASE_FILE_IN_WHERE_GEODATABASE_FILE_1)"
GUI OPTIONAL TEXT GEODATABASE_FILE_IN_WHERE_GEODATABASE_FILE_1 WHERE Clause:
#==============================================================================
# Determines whether non-spatial data, such as tables, subtypes, domains,
# and relationship classes, get translated
DEFAULT_MACRO GEODATABASE_FILE_IN_TRANSLATE_SPATIAL_DATA_ONLY_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_TRANSLATE_SPATIAL_DATA_ONLY "$(GEODATABASE_FILE_IN_TRANSLATE_SPATIAL_DATA_ONLY_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_TRANSLATE_SPATIAL_DATA_ONLY_GEODATABASE_FILE_1 yes%no Spatial Data Only
#==============================================================================
# Determines whether to resolve domains
DEFAULT_MACRO GEODATABASE_FILE_IN_RESOLVE_DOMAINS_GEODATABASE_FILE_1 yes
GEODATABASE_FILE_1_RESOLVE_DOMAINS "$(GEODATABASE_FILE_IN_RESOLVE_DOMAINS_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_RESOLVE_DOMAINS_GEODATABASE_FILE_1 yes%no Resolve Domains
#==============================================================================
# Determines whether to resolve the subtype associated with a feature to the
# text description linked to the subtype value. The text description will
# be added as an attribute on the feature.
DEFAULT_MACRO GEODATABASE_FILE_IN_RESOLVE_SUBTYPE_NAMES_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_RESOLVE_SUBTYPE_NAMES "$(GEODATABASE_FILE_IN_RESOLVE_SUBTYPE_NAMES_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_RESOLVE_SUBTYPE_NAMES_GEODATABASE_FILE_1 yes%no Resolve Subtypes
#==============================================================================
# Determines whether to ignore the network info associated with a feature
# coming from a network feature class. When set to 'yes', junctions will be
# treated as point features, and edges will be treated as polyline features,
# with the geodb_type being set to geodb_point and geodb_polyline, respectively.
# Caution should be taken when changing the value for this keyword to a different
# value than was specified when creating the mapping file/workspace.
DEFAULT_MACRO GEODATABASE_FILE_IN_IGNORE_NETWORK_INFO_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_IGNORE_NETWORK_INFO "$(GEODATABASE_FILE_IN_IGNORE_NETWORK_INFO_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_IGNORE_NETWORK_INFO_GEODATABASE_FILE_1 yes%no Ignore Network Info
# ========================================================================
# Determines whether to ignore the relationship info associated with a feature
# coming from a feature class containing relationships. When set to 'yes', simple
# relationships will not be read, and attributed relationships will be read as
# tables. Caution should be taken when changing the value for this keyword to a
# different value than was specified when creating the mapping file/workspace.
DEFAULT_MACRO GEODATABASE_FILE_IN_IGNORE_RELATIONSHIP_INFO_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_IGNORE_RELATIONSHIP_INFO "$(GEODATABASE_FILE_IN_IGNORE_RELATIONSHIP_INFO_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_IGNORE_RELATIONSHIP_INFO_GEODATABASE_FILE_1 yes%no Ignore Relationship Info
#==============================================================================
# Determines whether complex edge features should be split up and each edge
# element read as a separate feature. The default behaviour is to treat an
# entire edge *feature* as an FME feature, rather than an edge *element* as an
# FME feature. Returning edge elements ensures that all network connectivity
# information on complex edges is read.
DEFAULT_MACRO GEODATABASE_FILE_IN_SPLIT_COMPLEX_EDGES_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_SPLIT_COMPLEX_EDGES "$(GEODATABASE_FILE_IN_SPLIT_COMPLEX_EDGES_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_SPLIT_COMPLEX_EDGES_GEODATABASE_FILE_1 yes%no Split Complex Edges
#==============================================================================
# Determines whether annotation features should be split up and each part
# element read as a separate feature. The default behaviour is to treat an
# entire annotation *feature* as an FME feature, rather than an annotation
# *element* as an FME feature. Returning edge elements ensures that all
# rotation and positional information for each element is preserved.
DEFAULT_MACRO GEODATABASE_FILE_IN_SPLIT_MULTI_PART_ANNOS_GEODATABASE_FILE_1 no
GEODATABASE_FILE_1_SPLIT_MULTI_PART_ANNOS "$(GEODATABASE_FILE_IN_SPLIT_MULTI_PART_ANNOS_GEODATABASE_FILE_1)"
GUI CHECKBOX GEODATABASE_FILE_IN_SPLIT_MULTI_PART_ANNOS_GEODATABASE_FILE_1 yes%no Split Multi-Part Annotations
# Include this file in source setting section to add native search envelope processing
# Zero as a default means we don't do any search -- this makes workbench happier
# ===========================================================================
DEFAULT_MACRO GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINX_GEODATABASE_FILE_1 0
GEODATABASE_FILE_1_SEARCH_ENVELOPE "$(GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINX_GEODATABASE_FILE_1)"
GUI OPTIONAL FLOAT GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINX_GEODATABASE_FILE_1 Minimum X:
# ===========================================================================
DEFAULT_MACRO GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINY_GEODATABASE_FILE_1 0
GEODATABASE_FILE_1_SEARCH_ENVELOPE "$(GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINY_GEODATABASE_FILE_1)"
GUI OPTIONAL FLOAT GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MINY_GEODATABASE_FILE_1 Minimum Y:
# ===========================================================================
DEFAULT_MACRO GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXX_GEODATABASE_FILE_1 0
GEODATABASE_FILE_1_SEARCH_ENVELOPE "$(GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXX_GEODATABASE_FILE_1)"
GUI OPTIONAL FLOAT GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXX_GEODATABASE_FILE_1 Maximum X:
# ===========================================================================
DEFAULT_MACRO GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXY_GEODATABASE_FILE_1 0
GEODATABASE_FILE_1_SEARCH_ENVELOPE "$(GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXY_GEODATABASE_FILE_1)"
GUI OPTIONAL FLOAT GEODATABASE_FILE_IN_SEARCH_ENVELOPE_MAXY_GEODATABASE_FILE_1 Maximum Y:
# ===========================================================================
DEFAULT_MACRO GEODATABASE_FILE_IN_CLIP_TO_ENVELOPE_GEODATABASE_FILE_1 NO
GEODATABASE_FILE_1_CLIP_TO_ENVELOPE "$(GEODATABASE_FILE_IN_CLIP_TO_ENVELOPE_GEODATABASE_FILE_1)"
GUI OPTIONAL CHECKBOX GEODATABASE_FILE_IN_CLIP_TO_ENVELOPE_GEODATABASE_FILE_1 YES%NO Clip to Search Envelope
#==============================================================================
# The following specifies that complex representations for annotation should
# be split into simpler representations.
DEFAULT_MACRO _GEODBSplitComplexAnnotations_GEODATABASE_FILE_1 no
GUI CHOICE _GEODBSplitComplexAnnotations_GEODATABASE_FILE_1 yes%no Split Complex Annotations:
GEODATABASE_FILE_1_SPLIT_COMPLEX_ANNOS $(_GEODBSplitComplexAnnotations_GEODATABASE_FILE_1)
#==============================================================================
# The following specifies whether to keep (YES) or clean up (NO) Esri's
# multipatch texture caches.
DEFAULT_MACRO _GEODBCacheMultipatchTextures_GEODATABASE_FILE_1 yes
GUI CHOICE _GEODBCacheMultipatchTextures_GEODATABASE_FILE_1 yes%no Cache Multipatch Textures:
GEODATABASE_FILE_1_CACHE_MULTIPATCH_TEXTURES $(_GEODBCacheMultipatchTextures_GEODATABASE_FILE_1)
# ============================================================================
# Search Envelope Coordinate System
DEFAULT_MACRO _GEODB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_GEODATABASE_FILE_1
GUI OPTIONAL COORDSYS _GEODB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_GEODATABASE_FILE_1 Search Envelope Coordinate System:
GEODATABASE_FILE_1_SEARCH_ENVELOPE_COORDINATE_SYSTEM "$(_GEODB_IN_SEARCH_ENVELOPE_COORDINATE_SYSTEM_GEODATABASE_FILE_1)"
# ========================================================================
# The following determines whether to vectorize arcs. If SPLIT_AT_ARCS
# is set to yes, then arcs do not get vectorized and lines/polygons
# containing arcs get split up into line segments and arc segments.
#
# Update: This keyword is not applicable when using rich geometry. Since
# all new mapping files/workspaces have FME_USE_RICH_GEOMETRY set to YES then
# we do not need to expose this keyword.
#DEFAULT_MACRO _GEODBInSplitAtArcs no
#DEFAULT_MACRO _GEODBInSplitAtArcs NO
#GUI OPTIONAL CHOICE _GEODBInSplitAtArcs yes%no Split at Arcs
#GEODATABASE_FILE_SPLIT_AT_ARCS "$(_GEODBInSplitAtArcs_GEODATABASE_FILE_1)"
#
# ========================================================================
# The following defines the search feature for the query. It defines an
# arbitrarily complex search feature as a spatial contraint. It is in the
# form _SEARCH_FEATURE [ ]+.
DEFAULT_MACRO _GEODBInSearchFeature_GEODATABASE_FILE_1
GUI OPTIONAL TEXT _GEODBInSearchFeature_GEODATABASE_FILE_1 Search Feature:
GEODATABASE_FILE_1_SEARCH_FEATURE $(_GEODBInSearchFeature_GEODATABASE_FILE_1)
# ========================================================================
# Determines whether the spatial component or the attribute component of a
# query is performed first. This is only applicable when both spatial and
# non-spatial searches are being performed.
DEFAULT_MACRO _GEODBInSearchOrder_GEODATABASE_FILE_1 SPATIAL_FIRST
GUI OPTIONAL CHOICE _GEODBInSearchOrder_GEODATABASE_FILE_1 SPATIAL_FIRST%ATTRIBUTE_FIRST Search Order:
GEODATABASE_FILE_1_SEARCH_ORDER $(_GEODBInSearchOrder_GEODATABASE_FILE_1)
# ========================================================================
# Determines which type of search method to use. This keyword is only applicable
# when either the keyword SEARCH_ENVELOPE or the keyword SEARCH_FEATURE is specified.
DEFAULT_MACRO _GEODBInSearchMethod_GEODATABASE_FILE_1 GEODB_INTERSECTS
GUI OPTIONAL CHOICE _GEODBInSearchMethod_GEODATABASE_FILE_1 GEODB_INTERSECTS%GEODB_ENVELOPE_INTERSECTS%GEODB_TOUCHES%GEODB_OVERLAPS%GEODB_CROSSES%GEODB_WITHIN%GEODB_CONTAINS Search Method
GEODATABASE_FILE_1_SEARCH_METHOD $(_GEODBInSearchMethod_GEODATABASE_FILE_1)
# ========================================================================
# The following determines whether to read features from the geodatabase
# tables/feature classes or to read metadata from those tables/feature
# classes.
DEFAULT_MACRO _GEODBInFeatureReadMode_GEODATABASE_FILE_1 Features
GUI CHOICE _GEODBInFeatureReadMode_GEODATABASE_FILE_1 Features%Metadata Feature Read Mode:
GEODATABASE_FILE_1_FEATURE_READ_MODE "$(_GEODBInFeatureReadMode_GEODATABASE_FILE_1)"
# ========================================================================
# The following specifies that simple geometry should be checked for
# when reading features.
DEFAULT_MACRO _GEODBInCheckSimpleGeom_GEODATABASE_FILE_1 no
GUI CHOICE _GEODBInCheckSimpleGeom_GEODATABASE_FILE_1 yes%no Check for Simple Geometry:
GEODATABASE_FILE_1_CHECK_SIMPLE_GEOM $(_GEODBInCheckSimpleGeom_GEODATABASE_FILE_1)
# ========================================================================
# The following specifies whether feature-linked annotations should
# be merged onto the main feature as a text list attribute when reading.
DEFAULT_MACRO _GEODBMergeFeatLinkedAnnos_GEODATABASE_FILE_1 no
GUI CHOICE _GEODBMergeFeatLinkedAnnos_GEODATABASE_FILE_1 yes%no Merge Feature Linked Annotations:
GEODATABASE_FILE_1_MERGE_FEAT_LINKED_ANNOS $(_GEODBMergeFeatLinkedAnnos_GEODATABASE_FILE_1)
# ==============================================================================
# The following specifies an SQL command to execute before opening the first
# Geodatabase table.
DEFAULT_MACRO _GEODBInBeginSql_GEODATABASE_FILE_1
GUI OPTIONAL TEXT_EDIT_SQL _GEODBInBeginSql_GEODATABASE_FILE_1 SQL Statement To Execute Before Translation:
GEODATABASE_FILE_1_BEGIN_SQL{0} "$(_GEODBInBeginSql_GEODATABASE_FILE_1)"
# ==============================================================================
# The following specifies an SQL command to execute after closing all the
# Geodatabase tables.
DEFAULT_MACRO _GEODBInEndSql_GEODATABASE_FILE_1
GUI OPTIONAL TEXT_EDIT_SQL _GEODBInEndSql_GEODATABASE_FILE_1 SQL Statement To Execute After Translation:
GEODATABASE_FILE_1_END_SQL{0} "$(_GEODBInEndSql_GEODATABASE_FILE_1)"
GEODATABASE_FILE_1_DATASET "$(SourceDataset_GEODATABASE_FILE_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "XLSXW_1"
#! END_WB_HEADER
#! START_DEST_HEADER XLSXW XLSXW_1
# ============================================================================
# First get the dataset for the database. For Excel, it's the file name.
# For now we'll use whatever they had when they generated this mapping file,
# and not reprompt
#! END_DEST_HEADER
#! START_WB_HEADER
DEFAULT_MACRO DestDataset
INCLUDE [ if {"$(DestDataset)" != ""} { \
puts {DEFAULT_MACRO DestDataset_XLSXW_1 $(DestDataset)} \
} ]
#! END_WB_HEADER
#! START_DEST_HEADER XLSXW XLSXW_1
DEFAULT_MACRO DestDataset_XLSXW_1 $(DestDataset_XLSXW)
GUI FILENAME DestDataset_XLSXW_1 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|All_files(*.*)|*.* Destination Microsoft Excel File:
# ============================================================================
# Whether or not to overwrite the file
DEFAULT_MACRO XLSXW_OUT_OVERWRITE_FILE_XLSXW_1 Yes
XLSXW_1_OVERWRITE_FILE "$(XLSXW_OUT_OVERWRITE_FILE_XLSXW_1)"
GUI CHOICE XLSXW_OUT_OVERWRITE_FILE_XLSXW_1 Yes%No Overwrite Existing File:
# Template file option
DEFAULT_MACRO XLSXW_OUT_TEMPLATEFILE_XLSXW_1
XLSXW_1_TEMPLATEFILE "$(XLSXW_OUT_TEMPLATEFILE_XLSXW_1)"
GUI OPTIONAL FILENAME_MUSTEXIST XLSXW_OUT_TEMPLATEFILE_XLSXW_1 Excel_Files(*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls|Excel_Workbook_2007(*.xlsx)|*.xlsx|Excel_Macro_Workbook(*.xlsm)|*.xlsm|Excel_Workbook_Pre_2007(*.xls)|*.xls|All_files(*.*)|*.* Template File:
# ============================================================================
# Parameters whose values will be percolated to the feature types, but will not
# remain as writer level settings
# Drop feature type first
DEFAULT_MACRO XLSXW_OUT_DROP_TABLE_XLSXW_1 No
XLSXW_1_DROP_TABLE "$(XLSXW_OUT_DROP_TABLE_XLSXW_1)"
# Truncate feature type first (removeallcelldata,retainformatting/headers,etc.)
DEFAULT_MACRO XLSXW_OUT_TRUNCATE_TABLE_XLSXW_1 No
XLSXW_1_TRUNCATE_TABLE "$(XLSXW_OUT_TRUNCATE_TABLE_XLSXW_1)"
# Whether to write out the field names (orjustthedata)
DEFAULT_MACRO XLSXW_OUT_FIELD_NAMES_OUT_XLSXW_1 Yes
XLSXW_1_FIELD_NAMES_OUT "$(XLSXW_OUT_FIELD_NAMES_OUT_XLSXW_1)"
# Default writer mode
DEFAULT_MACRO XLSXW_OUT_WRITER_MODE_XLSXW_1 Insert_New_Rows
XLSXW_1_WRITER_MODE "$(XLSXW_OUT_WRITER_MODE_XLSXW_1)"
XLSXW_1_DATASET "$(DestDataset_XLSXW_1)"
#! END_DEST_HEADER
#! END_HEADER
LOG_FILENAME "$(FME_MF_DIR)Extract_domains_from_geodatabase_gdb.log"
LOG_APPEND NO
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_REPROJECTION_ENGINE FME
FME_IMPLICIT_CSMAP_REPROJECTION_MODE Datum
FME_GEOMETRY_HANDLING Classic
FME_STROKE_MAX_DEVIATION 0
LOG_FILTER_MASK -1
DEFAULT_MACRO DATASET_KEYWORD_TEXTLINE_1 TEXTLINE_1
DEFAULT_MACRO DATASET_KEYWORD_GEODATABASE_FILE_1 GEODATABASE_FILE_1
DEFAULT_MACRO DATASET_KEYWORD_XLSXW_1 XLSXW_1
# -------------------------------------------------------------------------
TEXTLINE_1_READER_META_ATTRIBUTES fme_feature_type
# -------------------------------------------------------------------------
GEODATABASE_FILE_1_READER_META_ATTRIBUTES fme_feature_type
# -------------------------------------------------------------------------
MULTI_READER_CONTINUE_ON_READER_FAILURE No
FME_BEGIN_TCL FME_Decode lappendsysStringFME_MacroValuesFME_HOME_UNIXfmelappendsysStringGeneratelappendsysStringGEODATABASE_FILElappendsysStringNULLlappendsysStringFME_MacroValuesSRC_GDBlappendsysStringenvTEMPtemp.fmelappendsysString--RESOLVE_DOMAINSlappendsysStringYESlappendsysString21evalexecsysString
# -------------------------------------------------------------------------
MACRO WORKSPACE_NAME Extract_domains_from_geodatabase_gdb
MACRO FME_VIEWER_APP fmedatainspector
# -------------------------------------------------------------------------
INCLUDE [ if {[info exists env(FME_TEMP)] && [file isdirectory $env(FME_TEMP)]} {set gVisualizerTemp $env(FME_TEMP)} elseif {[info exists env(TEMP)] && [file isdirectory $env(TEMP)]} {set gVisualizerTemp $env(TEMP)} elseif { $tcl_platform(platform) == "unix" } {set gVisualizerTemp "/tmp"} else {set gVisualizerTemp c:}; regsub -all {[ ,&]} {$(WORKSPACE_NAME)} {_} wsname; set gVisualizerTemp $gVisualizerTemp/${wsname}_[clock format [clock seconds] -format %H%M%S]; puts "MACRO WORKSPACE_TEMP_DIR $gVisualizerTemp";
MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/inspector.ffs
MACRO VISUALIZER_SCHEMA_FILE $(WORKSPACE_TEMP_DIR)/inspector.fsc
MACRO VISUALIZER_CREATE_SPATIAL_INDEX YES
# -------------------------------------------------------------------------
Lookup ___KnownFeatureTypes___ "$(DATASET_KEYWORD_TEXTLINE_1)_text_line" yes "" no
# -------------------------------------------------------------------------
FACTORY_DEF * TestFactory FACTORY_NAME "Unexpected Input Remover" INPUT FEATURE_TYPE * TEST @Lookup(___KnownFeatureTypes___,@Concatenate(&multi_reader_keyword,"_",@FeatureType())) == yes OUTPUT PASSED FEATURE_TYPE *
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory FACTORY_NAME "Source -> Generic" INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE * @Transform(&multi_reader_type,FME_GENERIC,PRESERVE_GEOMETRY)
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------
MACRO casemac
INCLUDE [ if { {no} == {no} } { puts {MACRO casemac -nocase}} ]
Tcl2 proc StringSearcher_3ccf5ce1_81c0_4aad_8fbf_0831824afd763_doGrep { regExp } { set results [regexp -inline $(casemac) [FME_DecodeText $regExp] [FME_GetAttribute {"text_line_data"}]]; set attrName {_matched_characters}; set index 0; foreach part $results { FME_SetAttribute $attrName $part; set attrName "_matched_parts{$index}"; incr index; }; if {$index > 0} { FME_UnsetAttributes $attrName; }; return $index; }
FACTORY_DEF * TestFactory FACTORY_NAME StringSearcher INPUT FEATURE_TYPE text_line TEST @Tcl2("StringSearcher_3ccf5ce1_81c0_4aad_8fbf_0831824afd763_doGrep {coded_domain} ") > 0 OUTPUT PASSED FEATURE_TYPE StringSearcher_MATCHED
# -------------------------------------------------------------------------
FME_PYTHON_PATH "$(FME_MF_DIR)"
FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller INPUT FEATURE_TYPE StringSearcher_MATCHED SYMBOL_NAME parseDomains SOURCE_CODE defparseDomainsfeature:startIndex=0quotesOn=0codes=values=tempList=textLine=feature.getStringAttributetext_line_data#slicethelistbetweenparenthesesstart=textLine.index+1end=textLine.indextextLine=textLinestart:end#DecodetheWWJDencodingusingaTCLcall:tclFunc=Tcl2FME_DecodeText+textLine+textLine=feature.performFunctiontclFunc#BruteforceparsingintotempListforiinrangelentextLine:iftextLinei.count:!=0andquotesOn==0:tempList.appendtextLinestartIndex:istartIndex=i+1eliftextLinei.count!=0andquotesOn==0:quotesOn=1