#!#! #! #! #!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #! #!#!#!#!#!#!#!#! #! #!#!#!#! #!#!#! #!#! #!#! #!#! #! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!ValueList10 Right SET_TO ValueList11">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!ValueLeft-ValueRight'BOOL_OP;OR;COMPOSITE_TEST;;TEST Right ATTRIBUTE_VALUE_NULL _FME_BLANK_STRING_'ValueLeft'FME_NUM_CONDITIONS2___"">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!ValueLeft-ValueRight">#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#! #!#! #!#! #!#! #!#!FME_PYTHON_VERSION 27 GUI忽略SourceDataset_XLSXR_1,XLSXR_IN_MANYFILE_XLSXR_1,XLSXR_IN_ADVANCED_XLSXR_1,XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1,XLSXR_IN_READ_BLANK_AS_XLSXR_1,XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1,XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1 DEFAULT_MACRO SourceDataset_XLSXR $(FME_MF_DIR)DEL.xlsx GUI的多文件SourceDataset_XLSXR Excel_Files(* XLSX; * XLSM; * XLS。)| *的.xlsx; *。。XLSM; |(。* XLSX)文件(* .xls)* XLS Excel_Workbook_2007 | *的.xlsx | Excel_Macro_Workbook(。* XLSM)| | * .XLSM Excel_Workbook_Pre_2007 | * .xls的| All_files(*)| *资料来源Microsoft Excel文件(词):INCLUDE [如果{{$(SourceDataset_XLSXR)} {==}} {puts_real {参数 'SourceDataset_XLSXR' 必须被给出的值};。出口1;};]#!START_HEADER#!START_WB_HEADER READER_TYPE MULTI_READER MULTI_READER_TYPE {0} XLSXR MULTI_READER_KEYWORD {0} XLSXR_1 MULTI_READER_GEN_DIRECTIVES {0} ALLOW_DOLLAR_SIGNS,YES,TABLELIST ,, FORCE_DATETIME,NO,USE_SCHEMA_OTHER_FILES,不,SCAN_SCHEMA_IF_DYNAMIC,不,高级,, EXPAND_MERGED_CELLS,是的,EXCEL_COL_NAMES,YES,模式,,MANYFILE ,, XLSXR_EXPOSE_FORMAT_ATTRS ,, READ_BLANK_AS,丢失CONFIGURATION_DATASET ,, EXPOSE_ATTRS_GROUP ,, QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,是的,_MERGE_SCHEMAS,YES,CASE_SENSITIVE_FEATURE_TYPES,YES WRITER_TYPE NULL WRITER_KEYWORD NULL_DEST NULL_DEST_DATASET空#!END_WB_HEADER#!START_WB_HEADER MACRO WB_KEYWORD “XLSXR_1” #!END_WB_HEADER#!START_SOURCE_HEADER XLSXR XLSXR_1#============================================================================#首先得到数据库的数据集。 For Excel, it's the file name. # For now we'll use whatever they had when they generated this mapping file, # and not reprompt # 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_XLSXR_1 $(SourceDataset)} \ } ] #! END_WB_HEADER #! START_SOURCE_HEADER XLSXR XLSXR_1 DEFAULT_MACRO SourceDataset_XLSXR_1 $(SourceDataset_XLSXR) GUI MULTIFILE SourceDataset_XLSXR_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(*)|* Source Microsoft Excel File(s): #GUI GROUP TABLELIST Constraints # TABLELIST is not shown in GUI, but is required for infrastructure # to not show the Table List popup DEFAULT_MACRO XLSXR_IN_CONFIGURATION_DATASET_XLSXR_1 XLSXR_1_CONFIGURATION_DATASET "$(XLSXR_IN_CONFIGURATION_DATASET_XLSXR_1)" # Flag to switch from old naming scheme of col_1, col_2 etc. to a, b, etc. # To better match up with Excel files DEFAULT_MACRO XLSXR_IN_EXCEL_COL_NAMES_XLSXR_1 YES XLSXR_1_EXCEL_COL_NAMES "$(XLSXR_IN_EXCEL_COL_NAMES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_FORCE_DATETIME_XLSXR_1 NO XLSXR_1_FORCE_DATETIME "$(XLSXR_IN_FORCE_DATETIME_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_MANYFILE_XLSXR_1 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_MANYFILE_XLSXR_1 XLSXR_IN_USE_SCHEMA_OTHER_FILES Multiple File Parameters DEFAULT_MACRO XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_1 No XLSXR_1_USE_SCHEMA_OTHER_FILES "$(XLSXR_IN_USE_SCHEMA_OTHER_FILES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_ADVANCED_XLSXR_1 GUI OPTIONAL DISCLOSUREGROUP XLSXR_IN_ADVANCED_XLSXR_1 XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1%XLSXR_IN_READ_BLANK_AS_XLSXR_1%XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Advanced DEFAULT_MACRO XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1 No XLSXR_1_SCAN_SCHEMA_IF_DYNAMIC "$(XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1)" GUI OPTIONAL CHECKBOX XLSXR_IN_SCAN_SCHEMA_IF_DYNAMIC_XLSXR_1 Yes%No Scan Schema in Dynamic Workflow: DEFAULT_MACRO XLSXR_IN_READ_BLANK_AS_XLSXR_1 Missing XLSXR_1_READ_BLANK_AS "$(XLSXR_IN_READ_BLANK_AS_XLSXR_1)" GUI CHOICE XLSXR_IN_READ_BLANK_AS_XLSXR_1 Missing%Null Read blank cells as: DEFAULT_MACRO XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Yes XLSXR_1_EXPAND_MERGED_CELLS "$(XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1)" GUI OPTIONAL CHECKBOX XLSXR_IN_EXPAND_MERGED_CELLS_XLSXR_1 Yes%No Expand Merged Cells: DEFAULT_MACRO XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_1 XLSXR_1_EXPOSE_ATTRS_GROUP "$(XLSXR_IN_EXPOSE_ATTRS_GROUP_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_1 Yes XLSXR_1_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS "$(XLSXR_IN_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_1 YES XLSXR_1_CASE_SENSITIVE_FEATURE_TYPES "$(XLSXR_IN_CASE_SENSITIVE_FEATURE_TYPES_XLSXR_1)" DEFAULT_MACRO XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_1 YES XLSXR_1_ALLOW_DOLLAR_SIGNS "$(XLSXR_IN_ALLOW_DOLLAR_SIGNS_XLSXR_1)" # =========================================================================== DEFAULT_MACRO XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1 XLSXR_1_NETWORK_AUTHENTICATION "$(XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1)" GUI OPTIONAL AUTHENTICATOR XLSXR_IN_NETWORK_AUTHENTICATION_XLSXR_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # ============================================================================ DEFAULT_MACRO XLSXR_IN_ATTRIBUTE_READING_XLSXR_1 DEFLINE XLSXR_1_ATTRIBUTE_READING "$(XLSXR_IN_ATTRIBUTE_READING_XLSXR_1)" # ============================================================================ XLSXR_1_GENERATE_FME_BUILD_NUM 18586 XLSXR_1_DATASET "$(SourceDataset_XLSXR_1)" #! END_SOURCE_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)RakeshReddySafe.log" LOG_APPEND NO LOG_TIMINGS YES LOG_FILTER_MASK -1 LOG_MAX_FEATURES 200 LOG_MAX_RECORDED_FEATURES 200 FME_REPROJECTION_ENGINE FME FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto FME_GEOMETRY_HANDLING Enhanced FME_STROKE_MAX_DEVIATION 0 DEFAULT_MACRO DATASET_KEYWORD_XLSXR_1 XLSXR_1 # ------------------------------------------------------------------------- XLSXR_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME RakeshReddySafe 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 # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD $(DATASET_KEYWORD_XLSXR_1) INPUT FEATURE_TYPE * ROUTE XLSXR XLSXR_1::Sheet1 multi_reader_keyword,$(DATASET_KEYWORD_XLSXR_1) TO FME_GENERIC ::Sheet1 ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * XLSXR_1_MERGE_DEF XLSXR_1::Sheet1 EXACT Sheet1 DEFLINE xlsx_start_row,,xlsx_end_row,,fme_attribute_reading,defined,S.No,number 3 0 ,HSN,焦炭 9 #)-----------工厂定义*TeeFactory工厂名称“Sheet1(XLSXR_1)拆分器”输入功能_1类型Sheet1输出功能_1类型Sheet1_XLSXR_1默认_1宏WB_2当前_3上下文准备TestFactory的表的测试子句;每个属性放在单独的子句中,包括[set table{HSN;TYPE;NUM};set testString{MACRO testclausses};set rows[split$table{/}];for Each row$rows{set cells[split$row{;}];set attrs[split[lindex$cells 0]{,}];set op[lindex$cells 1];设置val[lindex$cells 2];foreach attr$attrs{append testString“TEST${attr}${op}${val}ENCODED”;};};放置$testString;]FACTORY_DEF*TestFactory_NAME AttributeValidator INPUT FEATURE_TYPE Sheet1_XLSXR_1$(testClauses)BOOLEAN_OPERATOR AND VALIDATOR_MODE TRUE OUTPUT PASSED FEATURE_TYPE AttributeValidator_PASSED OUTPUT FAILED FEATURE_TYPE AttributeValidator_FAILEDTEST FACTORY_NAME Tester INPUT FEATURE_TYPE AttributeValidator_FAILED CASE_不区分大小写_TEST@EvaluateExpression(FDIV,STRING_ENCODED, HSN ,Tester)包含-编码的布尔运算器或输出通过的特征_typetester _PASSED的输出失败的特征_typetester _FAILED#——编码的_支持Unicode工厂_DEF*TeeFactory工厂_nameattributeValueMapper_3输入功能_typetester_FAILED输出功能_typeattributeValueMapper_3_OUTPUT@Lookup(AttributeValueMapper_3_Lookup_TABLE,“HSN”,FORWARD |编码的_ATTR | REAL _NULL_支持,HSN)#——;{global attributesplittles_aab4026d_85ad_4e16_80e9_e679fa9ddcdc9_分割宽度;$endPos];设置part[string trim$bit];如果{$keepmptyparts | |$part!u splitDelim];设置delim length[字符串长度$delim];设置[字符串前$delim$source$startIndex];};lappend bits[string range$source$startIndex end];set listName[FME_DecodeText{List1};set attrNum 0;foreach bits$bits{set trimmedPart[string trim$bit];if{$keepEmptyParts|124;$trimmedPart!=\“\”}{FME\u SetAttribute“$listName{$attrNum}”$trimmedPart;incr attrNum;};}}FACTORY_DEF*TeeFactory FACTORY_NAME attributesplith INPUT FEATURE_TYPE Tester_PASSED OUTPUT FEATURE_TYPE attributesplith_OUTPUT@Tcl2(attributesplith_doSplit)ญ-----------------------------------FACTORY_DEF{*}attrstfactory_NAME AttributeCreator COMMAND_PARM_EVALUATION SINGLE_PASS输入要素类型属性属性输出多要素模式无空属性模式无操作属性集创建指令传播缺少操作属性集“左”设置为 List1 0 “} {ATTR_ACTION ”“ ”右“ ”SET_TO“” List1 1 “}OUTPUT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT#-----------------------------------宏测试子句#Tcl为准备测试工厂的表生成测试子句#每个属性放在一个单独的子句中,包括[设置表{Left;TYPE;NUM};设置测试字符串{宏测试子句};设置行[split$table{/}];foreach row$rows{set cells[split$row{;}];set attrs[split[lindex$cells 0]{,}];set op[lindex$cells 1];set val[lindex$cells 2];foreach attr$attrs{append testString“TEST${attr}${op}${val}ENCODED”;};};放置$testString;]FACTORY_DEF*TestFactory_NAME AttributeValidator_2 INPUT FEATURE_TYPE AttributeCreator_OUTPUT$(testclausses)BOOLEAN_OPERATOR和VALIDATOR_MODE TRUE OUTPUT PASSED FEATURE_TYPE AttributeValidator_2_PASSED OUTPUT FAILED FEATURE_TYPE AttributeValidator_2_FAILED——查找AttributeValueMapper_2_Lookup_TABLE rPr 2 rrr FME_NULL_VALUE hit 3“”编码的_SUPPORTUNICODE FACTORY_DEF*TeeFactory FACTORY_NAME AttributeValueMapper_2 INPUT FEATURE_TYPE AttributeValidator_2_FAILED OUTPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT@查找(AttributeValueMapper_2_Lookup_TABLE,“左”,转发|编码|属性|实数|空_支持,左图)工厂名称属性创建者3命令参数求值单通道输入功能类型属性值映射器输出多功能模式无空属性模式无操作属性集创建指令传播指令丢失FDIV属性操作{“HSN”“设置为” - 正确的 “}输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT#------------------------------------------------------------------------- Lookup AttributeValueMapper_LOOKUP_TABLE rPr 2 rrr FME_NULL_VALUE "" "" ENCODED_SUPPORTUNICODE FACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper INPUT FEATURE_TYPE AttributeValidator_2_PASSED OUTPUT FEATURE_TYPE AttributeValueMapper_OUTPUT @Lookup(AttributeValueMapper_LOOKUP_TABLE,"Right",FORWARD|ENCODED_ATTR|REAL_NULL_SUPPORT, Right) # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeValueMapper_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "HSN" "SET_TO" "FME_CONDITIONAL:DEFAULT_VALUE' - 正确的 “BOOL_OP; OR; COMPOSITE_TEST; ;测试右ATTRIBUTE_VALUE_NULL _FME_BLANK_STRING_” ”FME_NUM_CONDITIONS2___}输出输出FEATURE_TYPE AttributeCreator_2_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME Tester_2输入FEATURE_TYPE AttributeValidator_PASSED测试@EvaluateExpression (FDIV STRING_ENCODED, StringLength HSN ,Tester_2)= 8编码BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE Tester_2_PASSED OUTPUT FAILED FEATURE_TYPE Tester_2_FAILED#------------------------------------------------------------------------- FACTORY_DEF * TestFactory中FACTORY_NAME Tester_3 INPUT FEATURE_TYPE Tester_2_PASSED TEST @EvaluateExpression(FDIV,STRING_ENCODED, 子串 HSN 0 4 ,Tester_3)> = 2000 ENCODED BOOLEAN_OPERATOR OR OUTPUT PASSED FEATURE_TYPE Tester_3_PASSED OUTPUT FAILED FEATURE_TYPE Tester_3_FAILED#------------------------------------------------------------------------- DEFAULT_MACRO DateTimeConverter_2_EXPRESSION_LIST INCLUDE [组repairInput {};如果{{YES}当量{YES}} {设定repairInput“ 修复”;};FME | ISO设置备用{};如果{{% Y % m % d } {NE}} {集INFORMAT {%Y%米%d };if {[string first " “$ INFORMAT]!= -1} {设定了信息[字符串映射{” “” “}$inFormat];};};如果{[string first,则设置outFormat{%N-%y}” “$outFormat]!=-1}{设置outFormat[字符串映射{” “” “}$outFormat];};设置parmList{};设置attrs{HSN};foreach attr$attrs{lappend parmList$attr;设置funcAttr$attr;如果{[字符串优先” “$ ATTR]!= -1} {集funcAttr [字符串映射{” “” “} $ ATTR];追加funcAttr” “设置funcAttr” $ funcAttr“;}; lappend parmList DateTimeFormat DateTimeParse $ funcAttr $ INFORMAT $ repairInput outFormat美元 _DecodeText$attr];lappend decodedAttrs$decodedAttr;lappend attrVals[FME_GetAttribute$decodedAttr];lappend attrNulls[FME_IsAttributeNull$decodedAttr];lappend attremists[FME_AttributeExists$decodedAttr];};FME_Execute evaluteexpression ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV$(DateTimeConverter_2_EXPRESSION_LIST)DateTimeConverter_2;foreach attr$decodedAttrs oldAttrVal$attrVals oldattrvals$attrVals oldattrvals$attrVals{设置newAttrVal[FME GetAttribute$attr];如果{[string length$newAttrVal]==0}{if{{NO}eq{NO}124;[string length$oldAttrVal]>0}{FME SetAttribute FME\u拒绝代码“无效的输入”;break;}elseif{!$oldattresists}{FME\u UnsetAttributes$attr;}elseif{!$oldattrill}{FME_SetAttribute$attr{};};};}FACTORY_DEF*TeeFactory FACTORY_NAME DateTimeConverter_2_1 INPUT FEATURE_TYPE Tester_3_FAILED OUTPUT FEATURE_TYPE_uutorejector_uuuu@RenameAttributes(FME_ustrict,u FME_urejection_ucode_u,fme_拒绝代码)@Tcl2(DateTimeConverter_2 bb0_9f55_414b_a7b5_fc1d9d91c9de13_DateTimeConverter)FACTORY_DEF*TestFactory_NAME DateTimeConverter_2_Rejector INPUT FEATURE_TYPE_uuuuuuuuuuuuuuuuuuuuuutest@Value(fme_拒绝代码)!“”输出传递的功能类型DateTimeConverter\u 2_ @RemoveAttributes(___ fme_rejection_code___)OUTPUT失败FEATURE_TYPE DateTimeConverter_2_OUTPUT @RenameAttributes(FME_STRICT,fme_rejection_code,___ fme_rejection_code___)DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TeeFactory FACTORY_NAME DateTimeConverter_2_ 输入功能类型DateTimeConverter_ FEATURE_TYPE * @Abort(已编码的,DateTimeConverter_2) 产量 被拒绝 特性。 继续 翻译 什么时候 特征 拒绝了 改变 工作空间 参数 翻译 被拒绝 特征 处理 继续 翻译 )“#”----------默认的“宏DateTimeConverter”表达式列表包括[设置修复输入{};如果{{YES}eq{YES}}{设置修复输入” 修复”;};FME | ISO设置备用{};如果{{% Y % m % d } {NE}} {集INFORMAT {%Y%米%d };if {[string first " “$ INFORMAT]!= -1} {设定了信息[字符串映射{” “” “} $ INFORMAT];};};组outFormat {%D-%N};如果{[字符串第一” “$outFormat]!=-1}{设置outFormat[字符串映射{” “” “}$outFormat];};设置parmList{};设置attrs{HSN};foreach attr$attrs{lappend parmList$attr;设置funcAttr$attr;如果{[字符串优先” “$ ATTR]!= -1} {集funcAttr [字符串映射{” “” “} $ ATTR];追加funcAttr” “设置funcAttr” $ funcAttr“;}; lappend parmList DateTimeFormat DateTimeParse $ funcAttr $ INFORMAT $ repairInput outFormat美元 ;};放入“宏DateTimeConverter_EXPRESSION_LIST [join $parmList{}]”;[Tcl2 proc DateTimeConverter_c9b489e2_93e7_452c_a4f4_57aca897161314_DateTimeConverter{}设置attrs {HSN};设置decodedAttrs {};设置attrval {};设置attrNulls {};设置attrMissings {};set decodedAttr [FME_DecodeText $attr];lappend decodedAttrs decodedAttr美元; lappend attrVals [FME_GetAttribute $decodedAttr]; lappend attrNulls [FME_IsAttributeNull $decodedAttr]; lappend attrExists [FME_AttributeExists $decodedAttr]; }; FME_Execute EvaluateExpression ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV $(DateTimeConverter_EXPRESSION_LIST) DateTimeConverter; foreach attr $decodedAttrs oldAttrVal $attrVals oldAttrExists $attrExists oldAttrNull $attrNulls { set newAttrVal [FME_GetAttribute $attr]; if {[string length $newAttrVal] == 0} { if {{NO} eq {NO} || [string length $oldAttrVal] > 0} { FME_SetAttribute fme_rejection_code "INVALID_INPUT"; break; } elseif {!$oldAttrExists} { FME_UnsetAttributes $attr; } elseif {!$oldAttrNull} { FME_SetAttribute $attr {}; }; } }; } FACTORY_DEF * TeeFactory FACTORY_NAME DateTimeConverter_1 INPUT FEATURE_TYPE Tester_3_PASSED OUTPUT FEATURE_TYPE ___TOREJECTOR___ @RenameAttributes(FME_STRICT, ___fme_rejection_code___,fme_rejection_code) @Tcl2(DateTimeConverter_c9b489e2_93e7_452c_a4f4_57aca897161314_DateTimeConverter) FACTORY_DEF * TestFactory FACTORY_NAME DateTimeConverter_Rejector INPUT FEATURE_TYPE ___TOREJECTOR___ TEST @Value(fme_rejection_code) != "" OUTPUT PASSED FEATURE_TYPE DateTimeConverter_ 参数:DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TeeFactory FACTORY_NAME DateTimeConverter_OUTPUT INPUT FEATURE_TYPE DateTimeConverter_ FEATURE_TYPE * @Abort(已编码的,DateTimeConverter) 产量 被拒绝 特性。 继续 翻译 什么时候 特征 拒绝了 改变 工作空间 参数 翻译 被拒绝 特征 处理 继续 翻译 )# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -包括[设置macroLine“宏观AttributeKeeper_e1fa688d_c76d_4fcb_8746_fe7c848ab7d64_LIST_EXP”;设置attr [FME_DecodeText $attr];设置attr [regsub "{}$";设置attr (regsub——“{}”美元attr”\ \ {\ [0 - 9 \] + \ \} ");附加macroLine”^ attr美元”;};把macroLine美元;]FACTORY_DEF {*} TeeFactory FACTORY_NAME AttributeKeeper输入FEATURE_TYPE AttributeCreator_3_OUTPUT输入FEATURE_TYPE AttributeCreator_2_OUTPUT输入FEATURE_TYPE Tester_2_FAILED输入FEATURE_TYPE DateTimeConverter_2_OUTPUT输入FEATURE_TYPE DateTimeConverter_OUTPUT输入FEATURE_TYPE AttributeValueMapper_3_OUTPUT输出{FEATURE_TYPE AttributeKeeper_OUTPUT @KeepAttributes (fme_encoded, HSN、S.No fme_pcre_match,“^ fme_ $ (AttributeKeeper_e1fa688d_c76d_4fcb_8746_fe7c848ab7d64_LIST_EXP) ")} #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #假设是工作区临时dir已经设置和创建。参见ControlDefs .cpp - ControlDefs::writeVisualizerTempDir DEFAULT_MACRO WORKSPACE_TEMP_DIR INCLUDE [set sa亚搏在线feName "[regsub -all {[^a-zA-Z0-9]} {AttributeKeeper_Output} _[expr round(rand() * 1000000)]_[时钟点击-毫秒]"; puts "MACRO SAFE_FFS_NAME $safeName"; ] FACTORY_DEF {*} InspectorFactory FACTORY_NAME AttributeKeeper_Output_Prepper COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE AttributeKeeper_OUTPUT GROUP_ATTRIBUTE __inspector_feature_type_attr__ GROUP_BY { } GROUP_ATTRIBUTE_PREFIX { AttributeKeeper_Output } RASTER_REDUCTION NoReduction POINT_CLOUD_REDUCTION NO_THINNING OUTPUT RESULT FEATURE_TYPE __viewme__ # Now route all the features into the recorder, changing their # feature type to the transformer name so that they view nicely DEFAULT_MACRO VISUALIZER_FEATURE_FILE $(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs DEFAULT_MACRO VISUALIZER_CREATE_SPATIAL_INDEX NO # [PR#45549] The Data Inspector will limit the maximum number of features # it reads on WIN32, so we will correspondingly limit the number of # features we record here using the MAX_FEATURES_TO_RECORD directive. FACTORY_DEF * RecorderFactory FACTORY_NAME AttributeKeeper_Output_Recorder COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE __viewme__ _wb_termination_feature Yes @FeatureType(TERMINATOR_@Value(_wb_termination_xformer)) INPUT FEATURE_TYPE __viewme__ @FeatureType(@Value(__inspector_feature_type_attr__)) @RemoveAttributes(__inspector_feature_type_attr__) FEATURE_FILE "$(VISUALIZER_FEATURE_FILE)" STORE_SCANNED_SCHEMA YES CREATE_SPATIAL_INDEX "$(VISUALIZER_CREATE_SPATIAL_INDEX)" INSPECTOR "$(VISUALIZER_CREATE_SPATIAL_INDEX)" FSC_SCHEMA S.No,varchar 255 ,HSN,VARCHAR 255 模式录制STORE_SCANNED_METADATA RECORD_DIRECTLY_TO_DISK是MAX_FEATURES_TO_RECORD WIN32 2000000#------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__ OUTPUT ROUTED FEATURE_TYPE * OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__ # ------------------------------------------------------------------------- FACTORY_DEF * CreationFactory FACTORY_NAME VisualizerProcessor CREATE_AT_END OUTPUT FEATURE_TYPE __NUKEME__ @TCL("if [file exists {$(WORKSPACE_TEMP_DIR)}] {set files [glob -nocomplain -directory {$(WORKSPACE_TEMP_DIR)} -tails *.ffs]; if {[llength $files] == 1} { set theFile {$(WORKSPACE_TEMP_DIR)/}; append theFile [lindex $files 0]; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -f FFS \042$theFile\042 & \175; } elseif { [llength $files] == 0 } { catch { file delete -force {$(WORKSPACE_TEMP_DIR)} }; } else { set filesNoExt {}; set lastfile {}; foreach {fileName} [lsort $files] { set fileNoExt [string trimright $fileName {.ffs}]; if [regexp {(.*)_[0-9]*$} $fileNoExt wholething fileNoExtBase] { if { $fileNoExtBase == $lastfile } { continue } }; set lastfile $fileNoExt; lappend filesNoExt $fileNoExt }; eval FME_Execute System \173\042$(FME_HOME_UNIX)/fmedatainspector\042 --visualizer --single-application --delete-on-close --no-source-prompt -d {$(WORKSPACE_TEMP_DIR)} -a ffs -f FFS $filesNoExt & \175; }; }; ") FACTORY_DEF * TeeFactory FACTORY_NAME VisualizerCleaner INPUT FEATURE_TYPE __NUKEME__