Notifies the FME Server with the
generated JSON. Remember to set your
server URL and password here.
send_test_email.fmw
2015, Safe Software
Updated for 2018.1
Sends a simple test email from FME Server
using the FMEServerNotifier.
1. Create Topic and Email Subscriber
In the FME Server Web Interface, create a topic for notifications to be sent to and also create a email subscriber that subscribes to this topic.
2. Create a Workspace
Once you file out the the email fields in the transformer you can send the email message in two different ways:
A. Send an email when the workspace completes
B. Send an email using a transformer
1.0编码= US_ASCII独立= 没有? 几何 尺寸= 2空值 几何 )FACTORY_DEF $(Creator_CLASSIC)CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D)$(Creator_COORDS)CREATE_AT_END无输出FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner INPUT FEATURE_TYPE _____CREATED______ @ TCL2(Creator_CoordSysRemover)@CoordSys()NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE “_creation_instance” 输出FEATURE_TYPE Creator_CREATED fme_feature_type造物主FACTORY_DEF * BranchingFactory FACTORY_NAME “Creator_CREATED分支器-1 3” INPUT FEATURE_TYPE Creator_CREATED TARGET_FACTORY “$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET” MAXIMUM_COUNT无的Passed FEATURE_TYPE *#------------------------------------------------------------------------ FACTORY_DEF * TeeFactory FACTORY_NAME “$(WB_CURRENT_CONTEXT)_CREATOR_BRANCH_TARGET” INPUT FEATURE_TYPE * OUTPUT FEATURE_TYPE *#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME“FMEServerEmailGenerator INPUT输入收藏家” INPUT FEATURE_TYPE Creator_CREATED输出FEATURE_TYPE FMEServerEmailGenerator_INPUT MACRO FMEServerEmailGenerator_WORKSPACE_NAME FMEServerEmailGenerator宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_XFORMER_NAME FMEServerEmailGenerator宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_TRANSFORMER_GROUP宏$(FMEServerEmailGenerator_WORKSPACE_NAME)___ COMPOUND_PARAMETERS宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_SUB_DOC_NAME FMEServerEmailGenerator宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_email_to FOO bar.com宏$(fmeserveremailailgenerator_workspace_name)_email_cc宏$(fmeserveremailailgenerator_workspace_name)_email_from foo@baz.com宏$(fmeserveremailailgenerator_workspace_name)_email_replyto宏$(fmeserveremailailailgenerator_workspace_name)_email_subject Test 电子邮件宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_email_subscriber_content喜 这 是 你的 FME 服务器宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_email_attachment_paths DEFAULT_MACRO FMEServerEmailGenerator_WORKSPACE_NAME "" INCLUDE [puts{宏WB_OLD_CONTEXT_$(FMEServerEmailGenerator_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)};将{宏WB_CURRENT_CONTEXT $ (FMEServerEmailGenerator_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT1545340915输入分流”输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT“输出FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #创建这个变压器将使用的域名。因为@Count本身会计算表达式的值来计算#域,所以我们不需要在Tcl中对每个特性做任何操作,包括[set domainPrefix {};if{{本地}=={本地}}{set domainPrefix [FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_}];};放入“MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_FULL_DOMAIN ${domainPrefix}counter”;]FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_Rejector COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT“FUNCTION_DEFINITION @Count (REJECTABLE_WITH_FLAG fme_encoded,美元($ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_FULL_DOMAIN),“0”) RESULT_ATTRIBUTE“_email_feature_id”输出完整FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_OUTPUT“拒绝FEATURE_TYPE输出“$ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_ $(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter Transformer输出Nuker" INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_ “# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tcl2 proc美元(FMEServerEmailGenerator_WORKSPACE_NAME) _ParameterFetcher_doFetch {} {foreach{名字val} {“_email_from {$ ((FMEServerEmailGenerator_WORKSPACE_NAME) _email_from编码)美元}_email_replyto {$ ((FMEServerEmailGenerator_WORKSPACE_NAME) _email_replyto美元)}_email_attachment_paths {$ ((FMEServerEmailGenerator_WORKSPACE_NAME) _email_attachment_paths美元)}_email_cc {$ ((FMEServerEmailGenerator_WORKSPACE_NAME) _email_cc美元)}”}{如果{ [string match {* $val] == 1} {set val [FME_Execute EvaluateExpression {STRING} $val {$(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher};} elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {set val [FME_Execute EvaluateExpression {string} $val {$(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher}};} else{设置val [fme_decodet敲诈attr $val];};FME_SetAttribute [FME_DecodeText $ name] $ val}} FACTORY_DEF * TeeFactory FACTORY_NAME美元(FMEServerEmailGenerator_WORKSPACE_NAME) _ParameterFetcher输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_OUTPUT“输出FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _ParameterFetcher_OUTPUT“@Tcl2 ($ (FMEServerEmailGenerator_WORKSPACE_NAME) _ParameterFetcher_doFetch) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * AttrSetFactoryFACTORY_NAME $ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeCreator NULL_ATTR_MODE空MULTI_FEATURE_MODE是的NUM_PRIOR_FEATURES NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_VALUE_PROMPT”属性替换值:“NULL_ATTR_VALUE”“输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _ParameterFetcher_OUTPUT“ATTR _email_to美元($ (FMEServerEmailGenerator_WORKSPACE_NAME) _email_to) ATTR _email_subject美元($ (FMEServerEmailGenerator_WORKSPACE_NAME) _email_subject) ATTR_email_subscriber_content $(美元(FMEServerEmailGenerator_WORKSPACE_NAME) _email_subscriber_content)输出输出FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeCreator_OUTPUT " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME美元(FMEServerEmailGenerator_WORKSPACE_NAME) _JSONTemplater输入CONTROL_FEATURE FEATURE_TYPE DATA_FEATURE“$ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeCreator_OUTPUT”输入FEATURE_TYPE $(FMEServerEmailGenerator_WORKSPACE_NAME)_JSONTemplater_DataFeatures RESULT_ATTR text_line_data OUTPUT_XML_HEADER没有连续的组没有BUCKET_ATTR_NAME其余xml_templater_bucket__ CONTROL_TEMPLATE_EXPR email_to:FME:GET属性 _email_to email_cc:FME:GET属性 _email_cc email_from:FME:GET属性 _email_from email_replyto:FME:GET属性 _email_replyto 电子邮件主题:FME:GET属性 _email_subject subscriber_content:FME:GET属性 _email_subscriber_contentOUTPUT XML_DOCUMENT FEATURE_TYPE “$(FMEServerEmailGenerator_WORKSPACE_NAME)_JSONTemplater_OUTPUT” #------------------------------------------------------------------------- FACTORY_DEF * TestFactory中FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_Tester INPUT FEATURE_TYPE“$(FMEServerEmailGenerator_WORKSPACE_NAME)_JSONTemplater_OUTPUT” TEST _email_attachment_paths ATTRIBUTE_IS_EMPTY ENCODED BOOLEAN_OPERATOR或输出PASSED FEATURE_TYPE “$(FMEServerEmailGenerator_WORKSPACE_NAME)_Tester_PASSED” 输出失败FEATURE_TYPE “$(FMEServerEmailGenerator_WORKSPACE_NAME)_Tester_FAILED” #------------------------------------------------------------------------- TCL2集$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitDelim [FME_DecodeText { });如果{[regexp {^ ([1 - 9] [0 - 9] * s) + $}[设置(FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitDelim美元]]}{设置$ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitWidths[分裂[regsub -{新元}{ }{}]s];$(FMEServerEmailGenerator_WORKSPACE_NAME) _attributesplitter_8b8ad24c_409f_4ff32_be42_3fc8ac5bb4c40_splitwidths;设置source [FME_GetAttribute {"_email_attachment_paths"}];设置attrNum 0;设置listName {_email_attachment_path_list};设置attrPos 0;foreach width[设置$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitWidths]{设置endPos [expr $attrPos + $width - 1];设置位[字符串范围$source $attrPos $endPos];FME_SetAttribute "$listName{$attrNum}" [string trim $bit];增加美元attrPos宽度; incr attrNum; }; }; } else { proc $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_doSplit {} { global $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitDelim; set delim [set $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_8b8ad24c_409f_4f32_be42_3fc8ac5bb4c40_splitDelim]; set delimLength [string length $delim]; set source [FME_GetAttribute {"_email_attachment_paths"}]; set keepEmptyParts [string equal {No} {No}]; set bits {}; set startIndex 0; set nextIndex [string first $delim $source $startIndex]; while {$nextIndex >= 0} { set part [string range $source $startIndex [expr $nextIndex-1]]; if { $keepEmptyParts || $part != \"\" } { lappend bits $part; }; set startIndex [expr $nextIndex + $delimLength]; set nextIndex [string first $delim $source $startIndex]; }; set lastPart [string range $source $startIndex end]; if { $keepEmptyParts || $lastPart != \"\" } { lappend bits $lastPart }; set listName {_email_attachment_path_list}; set attrNum 0; foreach bit $bits { FME_SetAttribute "$listName{$attrNum}" [string trim $bit]; incr attrNum; } } } FACTORY_DEF * TeeFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_Tester_FAILED" OUTPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" @Tcl2($(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_doSplit) # ------------------------------------------------------------------------- FACTORY_DEF * ElementFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_ListExploder INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_OUTPUT" LIST_NAME "_email_attachment_path_list{}" ELEMENT_NUMBER_FIELD "_element_index" CLONE_GEOMETRY MODE LEAN OUTPUT ELEMENT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_ListExploder_LIST_FOUND" @RemoveAttributes(ElementFactory.baseCloned) # ------------------------------------------------------------------------- Tcl2 proc $(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator_279d9929_177d_4019_98d1_fb0fd84f389f0_doSetAttr {attrText} { FME_SetAttribute [FME_DecodeText {_email_attachment_json}] [FME_DecodeText $attrText] } FACTORY_DEF * TeeFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_ListExploder_LIST_FOUND" OUTPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator_OUTPUT" @Tcl2("$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator_279d9929_177d_4019_98d1_fb0fd84f389f0_doSetAttr {@EvaluateExpression(STRING_ENCODED, email_attachment值 _element_index :值 _email_attachment_path_list ,$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator)}“)#------------------------------------------------------------------------- DEFAULT_MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_BREAK_ATTR有[如果{ “否” ==“是“} {看跌{宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE _email_feature_id}}] FACTORY_DEF {*} AggregateFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator INPUT FEATURE_TYPE ”$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator_OUTPUT“ MODE ONE_LEVEL GROUP_BY {_email_feature_id} $($(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_BREAK_ATTR)ACCUMULATE_ATTRIBUTES是CONCATENATE_FIELDS {_email_attachment_json} SEPARATORPRODUCE_MULTIS YES输出聚合特性“$(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_AGGREGATE”@Geometry(SET_TO_CONTAIN_INDIVIDUAL_GEOMS,NO) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{把{宏casemac查看nocase}}] Tcl2 proc美元(FMEServerEmailGenerator_WORKSPACE_NAME) _StringReplacer_2_c683fa19_37c2_4783_a4d6_eda63c0aad5b0_replacer {findText replaceText invalidValue}{设置attrs[分裂\“_email_attachment_json \”{}];设置findValue [FME_DecodeText $findText];$ replaceValue [FME_DecodeText];设置attrVal [FME_GetAttribute $attr];设置noMatch真;如果{{NO} == {YES}} {set newAttrVal [regsub $(casemac) -all—$findValue $attrVal $replaceValue];} else {set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal];};如果{$newAttrVal ne $attrVal}{设置noMatch false; FME_SetAttribute $attr $newAttrVal; }; if {$noMatch} { if { $invalidValue == {FME_NULL_VALUE} } { FME_SetAttributeNull $attr; } elseif { $invalidValue != {_FME_NO_OP_} } { FME_SetAttribute $attr [FME_DecodeText $invalidValue]; }; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_2 INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_AGGREGATE" OUTPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_2_OUTPUT" @Tcl2("$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_2_c683fa19_37c2_4783_a4d6_eda63c0aad5b0_replacer { }{ }{_FME_NO_OP_}”) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{把{宏casemac查看nocase}}] Tcl2 proc美元(FMEServerEmailGenerator_WORKSPACE_NAME) _StringReplacer_3f5138e0_6b8b_4a19_8437_41a19f51af410_replacer {findText replaceText invalidValue}{设置attrs[分裂\“text_line_data \”{}];设置findValue [FME_DecodeText $findText];$ replaceValue [FME_DecodeText];设置attrVal [FME_GetAttribute $attr];设置noMatch真;如果{{NO} == {YES}} {set newAttrVal [regsub $(casemac) -all—$findValue $attrVal $replaceValue];} else {set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal];};如果{$newAttrVal ne $attrVal}{设置noMatch false;FME_SetAttribute attr newAttrVal美元; }; if {$noMatch} { if { $invalidValue == {FME_NULL_VALUE} } { FME_SetAttributeNull $attr; } elseif { $invalidValue != {_FME_NO_OP_} } { FME_SetAttribute $attr [FME_DecodeText $invalidValue]; }; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer INPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_2_OUTPUT" OUTPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_OUTPUT" @Tcl2("$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_3f5138e0_6b8b_4a19_8437_41a19f51af410_replacer { }{@EvaluateExpression (STRING_ENCODED 值 _email_attachment_json $ (FMEServerEmailGenerator_WORKSPACE_NAME) _StringReplacer)}, {_FME_NO_OP_}”) FACTORY_DEF * TeeFactory FACTORY_NAME”(FMEServerEmailGenerator_WORKSPACE_NAME) _OUTPUT1545340915输出美元收集器”输入FEATURE_TYPE”(FMEServerEmailGenerator_WORKSPACE_NAME)美元_StringReplacer_OUTPUT“输入FEATURE_TYPE”(FMEServerEmailGenerator_WORKSPACE_NAME)美元_Tester_PASSED (FMEServerEmailGenerator_WORKSPACE_NAME) _OUTPUT美元“输出FEATURE_TYPE包括[{宏WB_CURRENT_CONTEXT(WB_OLD_CONTEXT_ (FMEServerEmailGenerator_WORKSPACE_NAME)美元)}]FACTORY_DEF * TeeFactory FACTORY_NAME“FMEServerEmailGenerator输出输出重命名/核”输入FEATURE_TYPE FMEServerEmailGenerator_OUTPUT输出FEATURE_TYPE FMEServerEmailGenerator_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerNotifier_2输入FEATURE_TYPE FMEServerEmailGenerator_OUTPUT行动PUBLISH_TO_TOPIC主机“/ /你的服务器连接”主题“@EvaluateExpression (FDIV STRING_ENCODED, 值 _creation_instance FMEServerNotifier_2)”BODY "@EvaluateExpression(FDIV,STRING_ENCODED, 值 text_line_data FMEServerNotifier_2)”OUTPUT OUTPUT FEATURE_TYPE FMEServerNotifier_2_OUTPUT OUTPUT REJECTED FEATURE_TYPE FMEServerNotifier_2_ 输入特性:type FMEServerNotifier_2_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME "FMEServerNotifier_2 变压器输出Nuker"输入特性类型FMEServerNotifier_2_ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * RoutingFactory FACTORY_NAME“目的地功能类型路由相关器”COMMAND_PARM_EVALUATION SINGLE_PASS输入FEATURE_TYPE * FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__输出路由FEATURE_TYPE *输出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“最终输出核武器”输入FEATURE_TYPE __nuke_me__