# !# ! # ! # ! # !# !# ! # !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # ! # !# !# ! # !# !# !# ! # ! # ! # ! # !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !

Only process new files

" POSITION="-2195.4936944309247 2961.8736818350353" TOP_LEFT="-2195.4936944309247 2961.8736818350353" BOTTOM_RIGHT="-2195.4936944309247 2961.8736818350353" BOUNDING_RECT="-2195.4936944309247 2961.8736818350353 0 0" ORDER="500000000000000" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19215686274509805" SIZE_POLICY="8" ANCHORED_NODE="6">
# !

Tasks:

1) Enter your FME Server connection into the FMEServerJobSubmitter, select the Samples Repository and select the easyTranslation2.fmw workspace

2) Publish to FME Server Samples Repository, select the Notification Service, click edit. For Topics to Subscribe add convert_tool, then for Parameter to Get Topic Message select Source Text Fiile(s)

3) For Email: Set up the User Parameters with your FME Server Token, the email you would like to recieve the conversion and your FME Server Host Name

4) Publish to FME Server, edit the Notifications Service and for Notifiy on Job Completion Post to Topics select email_results, and for Post Data From select Destination Text File

" POSITION="-455.68637504556909 916.16092466097552" TOP_LEFT="-455.68637504556909 916.16092466097552" BOTTOM_RIGHT="1104.0787226054074 7.1521345730747043" BOUNDING_RECT="-455.68637504556909 916.16092466097552 1559.7650976509765 909.00879008790082" ORDER="500000000000000" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19215686274509805" SIZE_POLICY="10" ANCHORED_NODE="0">
# !

Structure Comparison K - QS

" POSITION="1205.1787797617212 3284.2152804191992" TOP_LEFT="1205.1787797617212 3284.2152804191992" BOTTOM_RIGHT="1677.1787797617212 3285.2152804191992" BOUNDING_RECT="1205.1787797617212 3284.2152804191992 472 -1" ORDER="500000000000086" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="64">
# !

Structure Comparison QS - P

" POSITION="2437.7825322634862 3799.8534704156577" TOP_LEFT="2437.7825322634862 3799.8534704156577" BOTTOM_RIGHT="2909.7825322634862 3800.8534704156577" BOUNDING_RECT="2437.7825322634862 3799.8534704156577 472 -1" ORDER="500000000000086" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="72">
# !

Publishing to QS

" POSITION="1815.5796280950631 3400.9305486307048" TOP_LEFT="1815.5796280950631 3400.9305486307048" BOTTOM_RIGHT="2287.5796280950631 3401.9305486307048" BOUNDING_RECT="1815.5796280950631 3400.9305486307048 472 -1" ORDER="500000000000087" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="43">
# !

Publishing to P

" POSITION="3136.1876731839884 3741.261319290531" TOP_LEFT="3136.1876731839884 3741.261319290531" BOTTOM_RIGHT="3608.1876731839884 3742.261319290531" BOUNDING_RECT="3136.1876731839884 3741.261319290531 472 -1" ORDER="500000000000088" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="52">
# !

Attribute: postgis_namespace

" POSITION="-1322.7098040143956 2959.6931592343603" TOP_LEFT="-1322.7098040143956 2959.6931592343603" BOTTOM_RIGHT="-892.70980401439556 2960.6931592343603" BOUNDING_RECT="-1322.7098040143956 2959.6931592343603 430 -1" ORDER="500000000000093.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="67">
# !

Attribute: postgis_table

" POSITION="-2130.3808295511481 2453.1943354673854" TOP_LEFT="-2130.3808295511481 2453.1943354673854" BOTTOM_RIGHT="-1700.3808295511481 2454.1943354673854" BOUNDING_RECT="-2130.3808295511481 2453.1943354673854 430 -1" ORDER="500000000000093.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="80">
# !

Attribute: csv_file

" POSITION="-2077.7916860392252 1861.1884154081856" TOP_LEFT="-2077.7916860392252 1861.1884154081856" BOTTOM_RIGHT="-1647.7916860392252 1862.1884154081856" BOUNDING_RECT="-2077.7916860392252 1861.1884154081856 430 -1" ORDER="500000000000093.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="95">
# !

Attribute:

source_path

" POSITION="-1317.7267324708298 3759.9711925985475" TOP_LEFT="-1317.7267324708298 3759.9711925985475" BOTTOM_RIGHT="-887.7267324708298 3760.9711925985475" BOUNDING_RECT="-1317.7267324708298 3759.9711925985475 430 -1" ORDER="500000000000095.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="8">
# !

Attribute: csvt_file

" POSITION="-1233.775685959225 2329.7759739289163" TOP_LEFT="-1233.775685959225 2329.7759739289163" BOTTOM_RIGHT="-803.77568595922503 2330.7759739289163" BOUNDING_RECT="-1233.775685959225 2329.7759739289163 430 -1" ORDER="500000000000093.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="100">
# !

Attribute: namespace_dot_table

" POSITION="-1260.8031662340281 1725.1876554005848" TOP_LEFT="-1260.8031662340281 1725.1876554005848" BOTTOM_RIGHT="-830.80316623402814 1726.1876554005848" BOUNDING_RECT="-1260.8031662340281 1725.1876554005848 430 -1" ORDER="500000000000101.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="113">
# !

Import nach K

" POSITION="-348.82869628647552 1856.4815845294975" TOP_LEFT="-348.82869628647552 1856.4815845294975" BOTTOM_RIGHT="123.17130371352448 1857.4815845294975" BOUNDING_RECT="-348.82869628647552 1856.4815845294975 472 -1" ORDER="500000000000103.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="90">
# !

Import Validator

" POSITION="333.20142776476496 2256.4837845514971" TOP_LEFT="333.20142776476496 2256.4837845514971" BOTTOM_RIGHT="805.20142776476496 2257.4837845514971" BOUNDING_RECT="333.20142776476496 2256.4837845514971 472 -1" ORDER="500000000000104.25" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="105">
# !

success_json

" POSITION="5936.0238291052883 424.43472905473004" TOP_LEFT="5936.0238291052883 424.43472905473004" BOTTOM_RIGHT="6366.0238291052883 425.43472905473004" BOUNDING_RECT="5936.0238291052883 424.43472905473004 430 -1" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="145">
# !

get x-auth-token

" POSITION="6515.6742533333436 -66.050749968249534" TOP_LEFT="6515.6742533333436 -66.050749968249534" BOTTOM_RIGHT="6945.6742533333436 -65.050749968249534" BOUNDING_RECT="6515.6742533333436 -66.050749968249534 430 -1" ORDER="500000000000013" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="149">
# !

login

" POSITION="5630.4895601140279 48.712649579033268" TOP_LEFT="5630.4895601140279 48.712649579033268" BOTTOM_RIGHT="6102.4895601140279 49.712649579033268" BOUNDING_RECT="5630.4895601140279 48.712649579033268 472 -1" ORDER="500000000000025" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="148">
# !

send json

" POSITION="7172.3265820452089 -162.08130703852601" TOP_LEFT="7172.3265820452089 -162.08130703852601" BOTTOM_RIGHT="7644.3265820452089 -161.08130703852601" BOUNDING_RECT="7172.3265820452089 -162.08130703852601 472 -1" ORDER="500000000000027" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="146">
# !

failure_json

" POSITION="4596.9098162267746 222.34396206381325" TOP_LEFT="4596.9098162267746 222.34396206381325" BOTTOM_RIGHT="5026.9098162267746 223.34396206381325" BOUNDING_RECT="4596.9098162267746 222.34396206381325 430 -1" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="165">
# !

failure_json

" POSITION="3138.5648950357636 131.5736285286672" TOP_LEFT="3138.5648950357636 131.5736285286672" BOTTOM_RIGHT="3568.5648950357636 132.5736285286672" BOUNDING_RECT="3138.5648950357636 131.5736285286672 430 -1" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="169">
# !

failure_json

" POSITION="1596.8830336556875 -180.92452453725031" TOP_LEFT="1596.8830336556875 -180.92452453725031" BOTTOM_RIGHT="2026.8830336556875 -179.92452453725031" BOUNDING_RECT="1596.8830336556875 -180.92452453725031 430 -1" ORDER="500000000000026" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.78431372549019607,0.19607843137254902" SIZE_POLICY="10" ANCHORED_NODE="173">
# !# !# !# !# !
# ! # !# ! # !


" top_left="-2314.0680705746859 3921.1907995033125" order="500000000000000" bottom_right="-747.97807057468594 843.00843008430093" bounding_rect="-2314.0680705746859 3921.1907995033125 1566.0899999999999 3078.1823694190116" sticky="true" colour="0.43137254901960786,0.83137254901960789,0.76470588235294112" contents="93 44 67 95 102 4 97 7 115 89 77 20 100 18 94 41 88 16 19 73 6 13 11 91 104 87 101 8 2 79 27 113 15 86 114 80 85 96 28 98 "> # !
# !


" top_left="-468.85184880586553 3921.1907995033125" order="500000000000105.38" bottom_right="4586.4250065502611 1287.7051847441553" bounding_rect="-468.85184880586553 3921.1907995033125 5055.2768553561264 2633.4856147591572" sticky="true" colour="0.81176470588235294,0.81176470588235294,0.92156862745098034" contents="138 139 122 81 83 111 92 52 137 108 65 84 134 99 117 82 133 43 116 64 107 75 135 136 90 103 72 71 105 "> # !
# !
# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !Valuepostgis_namespace.Valuepostgis_table"># !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !status=ToProddatabaseName=$(prod_db_name)schemaName=Valuepostgis_namespacetableName=Valuepostgis_tablecreateStatement=reason=success"># !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !status=ToProddatabaseName=$(prod_db_name)schemaName=Valuepostgis_namespacetableName=Valuepostgis_tablecreateStatement=reason=failure"># !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !status=ToQSdatabaseName=$(qs_db_name)schemaName=Valuepostgis_namespacetableName=Valuepostgis_tablecreateStatement=reason=failure"># !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !status=ToConfdatabaseName=$(config_db_name)schemaName=Valuepostgis_namespacetableName=Valuepostgis_tablecreateStatement=reason=failure"># !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# ! # !This transformer provides an easy method for creating an email message to be sent by the FME Server Notification Service.

" doc_dynamic_input_attrs="0" doc_extents="3985 1128" doc_top_left="38 -1194" fme_document_guid="411718c1-7b1a-4e88-8025-b4ff8df36d1a" fme_document_priorguid="" fme_process_count="NO_PARALLELISM" fme_process_groups_ordered="No" fme_process_group_by="" fmx_attribute_propogation_mode="AUTO" history="21-03-2013,AaronKoning,Created" is_visible="false" last_save_build="" last_save_date="" markdown_description="" markdown_usage="" python_compatibility="" suppress_upgrade="false" title="FMEServerEmailGenerator" usage="

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

  • add a text file writer to the workspace
  • connect this transformer to the text file writer's feature type
  • publish the workspace
  • register it with the Job Submitter, Data Download and/or Notification Service
  • for each service, click the edit button
  • for Topics to Publish (Success), select the topic you created earlier
  • for Notification Writer, select the text file writer you added eariler
  • finish publishing the workspace
  • now the workspace will send an email whenever it is run through the FME Server Service you registered it with.


B. Send an email using a transformer

  • add a FMEServerNotifier transformer to your workflow
  • configure it to publish to the topic that you created earlier
  • for Content, select the text_line_data attribute
  • now the workspace will send an email whenever it is run.
" use_markdown="" view_position="0 0" xform_deprecated="No" zoom_scale="100"> # ! # !# !# !# !# !# !# !# !# ! # !# ! # !# ! # ! # !# !# ! # ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # ! # !# ! # !# !# ! # !# !# !# !# !# !# !# !# !# !# !# !# !# !# ! # !# ! # !# !
# !
# ! # !# !
FME_PYTHON_VERSION 27 GUI IGNORE SourceDataset_TEXTLINE_1,TEXTLINE_IN_READ_WHOLE_FILE_AT_ONCE_TEXTLINE_1,TEXTLINE_IN_READ_BOTTOM_UP_TEXTLINE_1,TEXTLINE_IN_SKIP_LINES_TEXTLINE_1,TEXTLINE_IN_SKIP_FOOTER_TEXTLINE_1,TEXTLINE_IN_ENCODING_TEXTLINE_1,TEXTLINE_IN_NETWORK_AUTHENTICATION_TEXTLINE_1,TEXTLINE_IN_NETWORK_PROXY_TEXTLINE_1,DestDataset_TEXTLINE_2,TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_2,TEXTLINE_OUT_END_OF_LINE_TEXTLINE_2,TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_2,TEXTLINE_OUT_ENCODING_TEXTLINE_2,TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_2 DEFAULT_MACRO SourceDataset_TEXTLINE C:\用户\ Spring.Markus \文件\ FME \ testdaten \ dirwatch_file。TXT GUI多文件SourceDataset_TEXTLINE文本/ 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(s): DEFAULT_MACRO DestDataset_TEXTLINE C:\TEMP\email.txt GUI FILENAME DestDataset_TEXTLINE Text/Compressed_Text_Files(*.txt;*.txt.gz)|*.txt;*.txt.gz|Text_Files(*.txt)|*.txt|Compressed_Text_Files(*.txt.gz)|*.txt.gz|All_files(*.*)|*.* Destination Text File: DEFAULT_MACRO email_from 2683433@markus-spring.de GUI TEXT email_from email_from: DEFAULT_MACRO email_to spring.markus@swm.de GUI TEXT email_to email_to: DEFAULT_MACRO email_cc m.spring@gmx.de GUI TEXT email_cc email_cc: DEFAULT_MACRO email_replyto spring.markus@swm.de GUI TEXT email_replyto email_replyto: DEFAULT_MACRO admin-manager-url http://localhost:8080 GUI OPTIONAL TEXT admin-manager-url Admin-Manager url: DEFAULT_MACRO admin-manager-username gdi_user GUI OPTIONAL TEXT admin-manager-username admin-manager-username: DEFAULT_MACRO admin-manager-password gdi_user GUI OPTIONAL TEXT admin-manager-password admin-manager-password: DEFAULT_MACRO prod_db_name geoportal_i GUI OPTIONAL TEXT prod_db_name prod_db_name: DEFAULT_MACRO qs_db_name geoportal_i_qs GUI OPTIONAL TEXT qs_db_name qs_db_name: DEFAULT_MACRO config_db_name geoportal_i_config GUI OPTIONAL TEXT config_db_name config_db_name: DEFAULT_MACRO FME_SHAREDRESOURCE_TEMP . GUI IGNORE OPTIONAL TEXT FME_SHAREDRESOURCE_TEMP FME_SHAREDRESOURCE_TEMP: INCLUDE [ if {{$(SourceDataset_TEXTLINE)} == {}} { puts_real {Parameter 'SourceDataset_TEXTLINE' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(DestDataset_TEXTLINE)} == {}} { puts_real {Parameter 'DestDataset_TEXTLINE' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(email_from)} == {}} { puts_real {Parameter 'email_from' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(email_to)} == {}} { puts_real {Parameter 'email_to' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(email_cc)} == {}} { puts_real {Parameter 'email_cc' must be given a value.}; exit 1; }; ] INCLUDE [ if {{$(email_replyto)} == {}} { puts_real {Parameter 'email_replyto' 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} SKIP_LINES,0,READ_BOTTOM_UP,No,SKIP_FOOTER,0,_MERGE_SCHEMAS,YES,READ_WHOLE_FILE_AT_ONCE,NO,ENCODING, WRITER_TYPE MULTI_WRITER MULTI_WRITER_DATASET_ORDER BY_ID MULTI_WRITER_FIRST_WRITER_ID 0 MULTI_WRITER_TYPE{0} TEXTLINE MULTI_WRITER_KEYWORD{0} TEXTLINE_2 #! 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: #! 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 $(SourceDataset_TEXTLINE) GUI MULTIFILE 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(s): DEFAULT_MACRO TEXTLINE_IN_READ_WHOLE_FILE_AT_ONCE_TEXTLINE_1 YES TEXTLINE_1_READ_WHOLE_FILE_AT_ONCE "$(TEXTLINE_IN_READ_WHOLE_FILE_AT_ONCE_TEXTLINE_1)" GUI ACTIVECHOICE TEXTLINE_IN_READ_WHOLE_FILE_AT_ONCE_TEXTLINE_1 YES,TEXTLINE_IN_READ_BOTTOM_UP,TEXTLINE_IN_SKIP_LINES,TEXTLINE_IN_SKIP_FOOTER%NO Read Whole File at Once: DEFAULT_MACRO TEXTLINE_IN_READ_BOTTOM_UP_TEXTLINE_1 NO TEXTLINE_1_READ_BOTTOM_UP "$(TEXTLINE_IN_READ_BOTTOM_UP_TEXTLINE_1)" GUI CHOICE TEXTLINE_IN_READ_BOTTOM_UP_TEXTLINE_1 Yes%No Read Bottom Up: DEFAULT_MACRO TEXTLINE_IN_SKIP_LINES_TEXTLINE_1 0 TEXTLINE_1_SKIP_LINES "$(TEXTLINE_IN_SKIP_LINES_TEXTLINE_1)" GUI OPTIONAL INTEGER TEXTLINE_IN_SKIP_LINES_TEXTLINE_1 Number of Lines to Skip: DEFAULT_MACRO TEXTLINE_IN_SKIP_FOOTER_TEXTLINE_1 0 TEXTLINE_1_SKIP_FOOTER "$(TEXTLINE_IN_SKIP_FOOTER_TEXTLINE_1)" GUI OPTIONAL INTEGER TEXTLINE_IN_SKIP_FOOTER_TEXTLINE_1 Number of Footer Lines to Skip: # ===================================================================== # Allows to force the encoding of source text file DEFAULT_MACRO TEXTLINE_IN_ENCODING_TEXTLINE_1 TEXTLINE_1_ENCODING "$(TEXTLINE_IN_ENCODING_TEXTLINE_1)" GUI OPTIONAL STRING_OR_ENCODING TEXTLINE_IN_ENCODING_TEXTLINE_1 SYSTEM%* Character Encoding: # =========================================================================== DEFAULT_MACRO TEXTLINE_IN_NETWORK_AUTHENTICATION_TEXTLINE_1 TEXTLINE_1_NETWORK_AUTHENTICATION "$(TEXTLINE_IN_NETWORK_AUTHENTICATION_TEXTLINE_1)" GUI OPTIONAL AUTHENTICATOR TEXTLINE_IN_NETWORK_AUTHENTICATION_TEXTLINE_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication # =========================================================================== DEFAULT_MACRO TEXTLINE_IN_NETWORK_PROXY_TEXTLINE_1 TEXTLINE_1_NETWORK_PROXY "$(TEXTLINE_IN_NETWORK_PROXY_TEXTLINE_1)" GUI OPTIONAL AUTHENTICATOR TEXTLINE_IN_NETWORK_PROXY_TEXTLINE_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Proxy"%PROMPT_TYPE%PROXY Network Proxy TEXTLINE_1_DATASET "$(SourceDataset_TEXTLINE_1)" TEXTLINE_1_GENERATE_FME_BUILD_NUM 14223 #! END_SOURCE_HEADER #! START_WB_HEADER MACRO WB_KEYWORD "TEXTLINE_2" #! END_WB_HEADER #! START_DEST_HEADER TEXTLINE TEXTLINE_2 # ===================================================================== # The following GUI line prompts for a directory to be used as the # the destination for the TextLine files. The user input is stored in # a macro, which is then used to define the dataset to be written. #! END_DEST_HEADER #! START_WB_HEADER DEFAULT_MACRO DestDataset INCLUDE [ if {"$(DestDataset)" != ""} { \ puts {DEFAULT_MACRO DestDataset_TEXTLINE_2 $(DestDataset)} \ } ] #! END_WB_HEADER #! START_DEST_HEADER TEXTLINE TEXTLINE_2 DEFAULT_MACRO DestDataset_TEXTLINE_2 $(DestDataset_TEXTLINE) GUI FILENAME DestDataset_TEXTLINE_2 Text/Compressed_Text_Files(*.txt;*.txt.gz)|*.txt;*.txt.gz|Text_Files(*.txt)|*.txt|Compressed_Text_Files(*.txt.gz)|*.txt.gz|All_files(*.*)|*.* Destination Text File: # ===================================================================== # The following GUI line prompts for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_2 YES TEXTLINE_2_OVERWRITE_FILE "$(TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_2)" GUI CHOICE TEXTLINE_OUT_OVERWRITE_FILE_TEXTLINE_2 YES%NO Overwrite Existing File: # ===================================================================== # Set the type of encoding for the output file # ===================================================================== # Set line termination character DEFAULT_MACRO TEXTLINE_OUT_END_OF_LINE_TEXTLINE_2 System TEXTLINE_2_END_OF_LINE "$(TEXTLINE_OUT_END_OF_LINE_TEXTLINE_2)" GUI CHOICE TEXTLINE_OUT_END_OF_LINE_TEXTLINE_2 System%Windows%Unix%Macintosh%Source%None Line Termination: # ===================================================================== # Set whether to write the last line termination character DEFAULT_MACRO TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_2 YES TEXTLINE_2_WRITE_LAST_EOL "$(TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_2)" GUI CHOICE TEXTLINE_OUT_WRITE_LAST_EOL_TEXTLINE_2 YES%NO Write Last Line Terminator: DEFAULT_MACRO TEXTLINE_OUT_ENCODING_TEXTLINE_2 ANSI TEXTLINE_2_ENCODING "$(TEXTLINE_OUT_ENCODING_TEXTLINE_2)" GUI STRING_OR_ENCODING TEXTLINE_OUT_ENCODING_TEXTLINE_2 UTF-8%UTF-16LE%UTF-16BE%ANSI%BIG5%SJIS%CP037%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: # ===================================================================== # The following GUI line prompts for the overwrite flag. The default is # YES. Possible values are YES or NO. Any value other than NO or # no is interpreted as YES. DEFAULT_MACRO TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_2 YES TEXTLINE_2_WRITE_UTF8_BOM "$(TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_2)" GUI CHOICE TEXTLINE_OUT_WRITE_UTF8_BOM_TEXTLINE_2 YES%NO Write UTF Byte Order Mark # ===================================================================== # Set the mime type. Note -- it is actually only used inside of workspaces # as a FORMAT_PARAMETER which even then is parsed only by the FME Server # Repository Manager TEXTLINE_2_DATASET "$(DestDataset_TEXTLINE_2)" TEXTLINE_2_GENERATE_FME_BUILD_NUM 13518 #! END_DEST_HEADER #! START_WB_HEADER #! END_WB_HEADER #! END_HEADER LOG_FILENAME "$(FME_MF_DIR)wkt_import_submitter.log" LOG_APPEND NO 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 LOG_FILTER_MASK -17 DEFAULT_MACRO DATASET_KEYWORD_TEXTLINE_1 TEXTLINE_1 DEFAULT_MACRO DATASET_KEYWORD_TEXTLINE_2 TEXTLINE_2 # ------------------------------------------------------------------------- TEXTLINE_1_READER_META_ATTRIBUTES fme_feature_type # ------------------------------------------------------------------------- MULTI_READER_CONTINUE_ON_READER_FAILURE No # ------------------------------------------------------------------------- MACRO WORKSPACE_NAME wkt_import_submitter MACRO FME_VIEWER_APP fmedatainspector # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Router and Unexpected Input Remover" COMMAND_PARM_EVALUATION SINGLE_PASS MULTI_READER_KEYWORD $(DATASET_KEYWORD_TEXTLINE_1) INPUT FEATURE_TYPE * ROUTE TEXTLINE TEXTLINE_1::text_line multi_reader_keyword,$(DATASET_KEYWORD_TEXTLINE_1) TO FME_GENERIC ::text_line ALIAS_GEOMETRY MERGE_INPUT Yes OUTPUT ROUTED FEATURE_TYPE * TEXTLINE_1_MERGE_DEF TEXTLINE_1::text_line EXACT text_line # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "text_line (TEXTLINE_1) Splitter" INPUT FEATURE_TYPE text_line OUTPUT FEATURE_TYPE text_line_TEXTLINE_1 DEFAULT_MACRO WB_CURRENT_CONTEXT # ------------------------------------------------------------------------- FACTORY_DEF * JSONQueryFactory FACTORY_NAME JSONFlattener INPUT FEATURE_TYPE text_line_TEXTLINE_1 MODE FLATTEN JSON_DOCUMENT "@EvaluateExpression(FDIV,STRING_ENCODED, text_line_data ,JSONFlattener)” EXPLODE_QUERY “JSON” RECURSIVE_FLATTEN YES ERROR_LIST_ATTR “_json_error” 输出部件分解FEATURE_TYPE JSONFlattener_OUTPUT OUTPUT REJECTED FEATURE_TYPE JSONFlattener_ FACTORY_DEF * TeeFactory FACTORY_NAME“JSONFlattener 变压器输出Nuker” INPUT FEATURE_TYPE JSONFlattener_ #------------------------------------------------------------------------- FACTORY_DEF * TestFactory FACTORY_NAME Tester INPUT FEATURE_TYPE JSONFlattener_OUTPUT TEST @EvaluateExpression(STRING_ENCODED, dirwatch_publisher_content ,测试仪)包含ENTRY_CREATE ENCODED BOOLEAN_OPERATOR和输出PASSED FEATURE_TYPE Tester_PASSED OUTPUT失败FEATURE_TYPE Tester_FAILED#-------------------------------------------------------------------------#默认行为是中止任何功能进入变压器。#如果工作台已设置_WB_BYPASS_TERMINATION宏的“是”的值,#那么功能将改为通过与#__WB_BYPASS_TERMINATOR__的一个特征,类型的工作台将发送到可视化工具或#诸如此类过去了。DEFAULT_MACRO _WB_BYPASS_TERMINATIONNo FACTORY_DEF * TestFactory FACTORY_NAME Terminator INPUT FEATURE_TYPE Tester_FAILED TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"Translation Terminated") @SupplyAttributes(_wb_termination_xformer,"Terminator") @SupplyAttributes(_wb_termination_feature,Yes) OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED,"Translation Terminated") # ------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCopier INPUT FEATURE_TYPE Tester_PASSED ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "dirwatch_publisher_content" "source_path" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_OUTPUT # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringReplacer_54fb32c3_eb78_435b_b0bf_aec71b3e1a1c13_replacer { findText replaceText invalidValue} { set attrs [split \"source_path\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{NO} == {YES}} { set newAttrVal [FME_ReplaceRegex $(casemac) $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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 StringReplacer INPUT FEATURE_TYPE AttributeCopier_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_OUTPUT @Tcl2("StringReplacer_54fb32c3_eb78_435b_b0bf_aec71b3e1a1c13_replacer {ENTRY_CREATE } {} {_FME_NO_OP_}“)#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME FilenamePartExtractor_2 INPUT FEATURE_TYPE StringReplacer_OUTPUT OUTPUT FEATURE_TYPE FilenamePartExtractor_2_OUTPUT @SupplyAttributes("_dirpath",@Filenamepart(ENCODED,DIRNAME,"@EvaluateExpression(STRING_ENCODED, SOURCE_PATH FilenamePartExtractor_2)”)) @SupplyAttributes (“_filename @Filenamepart(编码、文件名、“@EvaluateExpression (STRING_ENCODED, SOURCE_PATH ,FilenamePartExtractor_2) “))@SupplyAttributes(” _ ROOTNAME “@ Filenamepart(编码ROOTNAME,” @ EvaluateExpression(STRING_ENCODED, SOURCE_PATH ,FilenamePartExtractor_2) “))@SupplyAttributes(” _扩展 “@ Filenamepart(编码EXTENSION,” @ EvaluateExpression(STRING_ENCODED, SOURCE_PATH ,FilenamePartExtractor_2) “))@SupplyAttributes(” _目录名称 “@ Filenamepart(编码PARENT_DIRECTORY,” @ EvaluateExpression(STRING_ENCODED, SOURCE_PATH ,FilenamePartExtractor_2)”)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCopier_2输入FEATURE_TYPE FilenamePartExtractor_2_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION {“source_path”“postgis_namespace”“复制”“}输出输出FEATURE_TYPE AttributeCopier_2_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{puts {MACRO casemac -nocase}} ] Tcl2 proc StringReplacer_3_4bafce9b_47e5_48df_8701_7f66e809d66813_replacer { findText replaceText invalidValue} { set attrs [split \"postgis_namespace\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{YES} == {YES}} { set newAttrVal [FME_ReplaceRegex $(casemac) $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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 StringReplacer_3 INPUT FEATURE_TYPE AttributeCopier_2_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_3_OUTPUT @Tcl2("StringReplacer_3_4bafce9b_47e5_48df_8701_7f66e809d66813_replacer {^.* BAU | BD |目录| GSM |柑| KULT | KVR |计划| POR |原料| RBS | RGU | SKM | SOZ . *}{ 1} {}“)#-------------------------------------------------------------------------FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCopier_3 INPUT FEATURE_TYPE StringReplacer_3_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "source_path" "postgis_table" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_3_OUTPUT # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringReplacer_4_12b471a0_bb51_439d_b280_08cc095d734413_replacer { findText replaceText invalidValue} { set attrs [split \"postgis_table\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{YES} == {YES}} { set newAttrVal [FME_ReplaceRegex $(casemac) $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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 StringReplacer_4 INPUT FEATURE_TYPE AttributeCopier_3_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_4_OUTPUT @Tcl2("StringReplacer_4_12b471a0_bb51_439d_b280_08cc095d734413_replacer {.* BAU | BD |目录| GSM |柑| KULT | KVR |计划| POR |原料| RBS | RGU | SKM | SOZ *。 。*? .. *? } { 2} {}“)#-------------------------------------------------------------------------FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCopier_5 INPUT FEATURE_TYPE StringReplacer_4_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "source_path" "csv_file" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_5_OUTPUT # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringReplacer_6_d3667615_5064_420a_924b_9e6c424a173e13_replacer { findText replaceText invalidValue} { set attrs [split \"csv_file\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{YES} == {YES}} { set newAttrVal [FME_ReplaceRegex $(casemac) $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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 StringReplacer_6 INPUT FEATURE_TYPE AttributeCopier_5_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_6_OUTPUT @Tcl2("StringReplacer_6_d3667615_5064_420a_924b_9e6c424a173e13_replacer { *。 。*? .. *? } { 1 2 3. 4 2 3.csv} {}“)#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCopier_4 INPUT FEATURE_TYPE StringReplacer_6_OUTPUT ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "source_path" "csvt_file" "COPY" "" } OUTPUT OUTPUT FEATURE_TYPE AttributeCopier_4_OUTPUT # ------------------------------------------------------------------------- MACRO casemac INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ] Tcl2 proc StringReplacer_2_ee7da619_11d8_4453_92e4_f15a0a64ed3a13_replacer { findText replaceText invalidValue} { set attrs [split \"csvt_file\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{YES} == {YES}} { set newAttrVal [FME_ReplaceRegex $(casemac) $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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 StringReplacer_2 INPUT FEATURE_TYPE AttributeCopier_4_OUTPUT OUTPUT FEATURE_TYPE StringReplacer_2_OUTPUT @Tcl2("StringReplacer_2_ee7da619_11d8_4453_92e4_f15a0a64ed3a13_replacer { *。 。*? .. *? } { 1 2 3. 4 2 3.csvt} {}“)#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator INPUT FEATURE_TYPE StringReplacer_2_OUTPUT MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "namespace_dot_table" "SET_TO" " postgis_namespace postgis_table ”}输出输出FEATURE_TYPE AttributeCreator_OUTPUT FACTORY_DEF * TeeFactory FACTORY_NAME”AttributeCreator输出分配器”输入FEATURE_TYPE AttributeCreator_OUTPUT输出FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ + 3 mj5tm0e =输出FEATURE_TYPE AttributeCreator_OUTPUT_1_Et / p63Aqn4M = # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerJobSubmitter_6输入FEATURE_TYPE AttributeCreator_OUTPUT_1_Et / p63Aqn4M =行动“springm SUBMIT_JOB连接 FME Server02“REPOSITORY”地理位置表“WORKSPACE_NAME”wkt_import2k_worker。fmw“阻塞真正的WORKSPACE_PARAMETERS”SourceDataset_CSV2列表@EvaluateExpression(FDIV,STRING_ENCODED, csv_file ,FMEServerJobSubmitter_6) DestDataset_POSTGIS字符串地理位置 配置DB_SCHEMA字符串@EvaluateExpression(FDIV,STRING_ENCODED, postgis_namespace ,FMEServerJobSubmitter_6)DB_TABLE串@EvaluateExpression(FDIV,STRING_ENCODED, postgis_table ,FMEServerJobSubmitter_6) SourceDataset_CSVT字符串@EvaluateExpression(FDIV,STRING_ENCODED, csvt_file ,FMEServerJobSubmitter_6)” PRIORITY “100” OUTPUT JOB_SUCCEEDED FEATURE_TYPE FMEServerJobSubmitter_6_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE FMEServerJobSubmitter_6_JOB_FAILED#-------------------------------------------------------------------------#默认行为是中止任何功能进入变压器。#如果工作台已设置_WB_BYPASS_TERMINATION宏的“是”的值,#那么功能将改为通过与#__WB_BYPASS_TERMINATOR__的一个特征,类型的工作台将发送到可视化工具或#诸如此类过去了。DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TestFactory中FACTORY_NAME Terminator_2 INPUT FEATURE_TYPE FMEServerJobSubmitter_6_JOB_FAILED TEST “$(_ WB_BYPASS_TERMINATION)” ==是的Passed FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@类型特征())@SupplyAttributes(编码_wb_termination_message,“高铁总站进口 K 返回 @SupplyAttributes(_wb_termination_xformer,"Terminator_2") @SupplyAttributes(_wb_termination_feature,Yes)输出失败的FEATURE_TYPE * @Abort(已编码,"WKT-Import " K 返回 FALSE“)#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME Import_Validator INPUT FEATURE_TYPE FMEServerJobSubmitter_6_JOB_SUCCEEDED ACTION SUBMIT_JOB CONNECTION "springm FME Server02" 上库 “Geoportal” WORKSPACE_NAME “wkt_import2k_validator_worker.fmw” 堵TRUE WORKSPACE_PARAMETERS“的压缩文件字符串@EvaluateExpression(FDIV,STRING_ENCODED, SOURCE_PATH namespace_dot_table字符串@EvaluateExpression(FDIV,STRING_ENCODED, namespace_dot_table ,Import_Validator)allowed_margin串0.05" PRIORITY “100” OUTPUT JOB_SUCCEEDED FEATURE_TYPE Import_Validator_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE Import_Validator_JOB_FAILED FACTORY_DEF * TeeFactory FACTORY_NAME “Import_Validator JOB_SUCCEEDED分配器” INPUT FEATURE_TYPE Import_Validator_JOB_SUCCEEDED OUTPUT FEATURE_TYPE Import_Validator_JOB_SUCCEEDED_0_gs0P9Uyb3Rc = OUTPUT FEATURE_TYPE Import_Validator_JOB_SUCCEEDED_1_aj7HP4FLP1M = FACTORY_DEF * TeeFactory FACTORY_NAME “Import_Validator JOB_FAILED分配器” INPUT FEATURE_TYPEImport_Validator_JOB_FAILED OUTPUT FEATURE_TYPE Import_Validator_JOB_FAILED_0_2 / 43BB / ti3w = OUTPUT FEATURE_TYPE Import_Validator_JOB_FAILED_1_T5 / tSD6NQts = OUTPUT FEATURE_TYPE Import_Validator_JOB_FAILED_2_s9LbUtaZFXk =#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_5INPUT FEATURE_TYPE Import_Validator_JOB_FAILED_2_s9LbUtaZFXk = MULTI_FEATURE_MODE NO NULL_ATTR_MODEñO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { “” “success_json” “SET_TO”“ 状态 = ToConf 数据库名称 = $(config_db_name $编码) SCHEMANAME = postgis_namespace 表名 = postgis_table 的createStatement = 原因 = 失败 “}输出输出FEATURE_TYPE AttributeCreator_5_OUTPUT#-------------------------------------------------------------------------#The default behaviour is to abort on any feature entering the transformer. # If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes", # then the features will instead be passed through with a feature type of # __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or # somesuch. DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_3 INPUT FEATURE_TYPE Import_Validator_JOB_FAILED_1_T5/tSD6NQts= TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"Import 验证器 返回 FALSE “)@SupplyAttributes(_wb_termination_xformer,” Terminator_3 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码” 导入 验证器 返回 FALSE“)#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerLogFileRetriever_2 INPUT FEATURE_TYPE Import_Validator_JOB_SUCCEEDED_1_aj7HP4FLP1M= INPUT FEATURE_TYPE Import_Validator_JOB_FAILED_0_2/43BB/ti3w= ACTION RETRIEVE_JOB_LOG CONNECTION "springm FME Server02 JOB_ID @EvaluateExpression (FDIV、浮点数、 _job_id ,FMEServerLogFileRetriever_2)” LOG_ATTR _log_attr输出输出FEATURE_TYPE FMEServerLogFileRetriever_2_OUTPUT#-------------------------------------------------------------------------FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller_2 INPUT FEATURE_TYPE FMEServerLogFileRetriever_2_OUTPUT SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import fmeobjects 进口 再保险 FeatureProcessor 对象 : 高清 __在里面__ : self.featureList = # self.totalArea = 0.0 通过 高清 输入 特征 : S2 = WKT-进口 DER Tabelle + feature.getAttribute namespace_dot_table + n 线 = feature.getAttribute _log_attr .splitlines l 线路: 如果 re.search r 分路器*克隆|。开幕|编码|表|完成 阅读|成功|失败 l re.M被|如re.I : 如果 re.search r multi_reader |命令 线 参数 l re.M被|如re.I : S2 = S2 + l + n feature.setAttribute _log_attr S2 self.featureList.append 特征 # self.totalArea + = feature.getGeometry .getArea 高清 关闭 : 特征 self.featureList: self.pyoutput 特征 feature.setAttribute 总面积 self.totalArea 输出PYOUTPUT FEATURE_TYPE PythonCaller_2_OUTPUT#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerJobSubmitter_4 INPUT FEATURE_TYPE Import_Validator_JOB_SUCCEEDED_0_gs0P9Uyb3Rc= ACTION SUBMIT_JOB CONNECTION "springm FME Server02“REPOSITORY”地理位置表“WORKSPACE_NAME”vector_structure_comparator_k_qs。fmw“阻塞真工作空间参数”_namespace_dot_table字符串@EvaluateExpression(FDIV,STRING_ENCODED, namespace_dot_table FMEServerJobSubmitter_4)”PRIORITY "100" OUTPUT JOB_SUCCEEDED FEATURE_TYPE FMEServerJobSubmitter_4_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE FMEServerJobSubmitter_4_JOB_FAILED # ------------------------------------------------------------------------- # The default behaviour is to abort on any feature entering the transformer. # If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes", # then the features will instead be passed through with a feature type of # __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or # somesuch. DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_4 INPUT FEATURE_TYPE FMEServerJobSubmitter_4_JOB_FAILED TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"Structure 比较 K QS 返回 @SupplyAttributes(_wb_termination_xformer,"Terminator_4") @SupplyAttributes(_wb_termination_feature,Yes)输出失败的FEATURE_TYPE * @Abort(ENCODED,"结构 比较 K QS 返回 FALSE“)#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerJobSubmitter_2 INPUT FEATURE_TYPE FMEServerJobSubmitter_4_JOB_SUCCEEDED ACTION SUBMIT_JOB CONNECTION "springm FME Server02" 上库 “Geoportal” WORKSPACE_NAME “vector_copier_k2qs_worker.fmw” 堵TRUE WORKSPACE_PARAMETERS“SourceDataset_POSTGIS串Geoportal 配置namespace_dot_table字符串@EvaluateExpression(FDIV,STRING_ENCODED, namespace_dot_table ,FMEServerJobSubmitter_2)DestDataset_POSTGIS串Geoportal QS” PRIORITY “100” OUTPUT JOB_SUCCEEDED FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED FACTORY_DEF * TeeFactory FACTORY_NAME “FMEServerJobSubmitter_2 JOB_SUCCEEDED分配器” INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED OUTPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED_0_Au5TC3yjPbo = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED_1_kDOf7B7YIGo = FACTORY_DEF * TeeFactory FACTORY_NAME “FMEServerJobSubmitter_2 JOB_FAILED分配器” INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED OUTPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_0_SXovZ6KcZ +G = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_1_ / CCW + eR8YL4 = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_2_ydJenGdZAug =#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_4 INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_2_ydJenGdZAuG = MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { “” “success_json” “SET_TO”“ 状态 = ToQS 数据库名称 = $(美元qs_db_name编码) SCHEMANAME = postgis_namespace 表名 = postgis_table 的createStatement = 原因 = 失败 “}输出输出FEATURE_TYPE AttributeCreator_4_OUTPUT#-------------------------------------------------------------------------#The default behaviour is to abort on any feature entering the transformer. # If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes", # then the features will instead be passed through with a feature type of # __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or # somesuch. DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_5 INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_0_SXovZ6KcZ+g= TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"Publishing QS 返回 @SupplyAttributes(_wb_termination_xformer,"Terminator_5") @SupplyAttributes(_wb_termination_feature,Yes)输出失败的FEATURE_TYPE * @Abort(ENCODED,"Publishing QS 返回 FALSE“)#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerLogFileRetriever_3 INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED_1_kDOf7B7YIGo= INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_FAILED_1_/cCW+eR8YL4= ACTION RETRIEVE_JOB_LOG CONNECTION "springm FME Server02 JOB_ID @EvaluateExpression (FDIV、浮点数、 _job_id ,FMEServerLogFileRetriever_3)” LOG_ATTR _log_attr输出输出FEATURE_TYPE FMEServerLogFileRetriever_3_OUTPUT#-------------------------------------------------------------------------FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller_3 INPUT FEATURE_TYPE FMEServerLogFileRetriever_3_OUTPUT SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import fmeobjects 进口 再保险 FeatureProcessor 对象 : 高清 __在里面__ : self.featureList = # self.totalArea = 0.0 通过 高清 输入 特征 : S2 = 进口 DER Tabelle + feature.getAttribute namespace_dot_table + NACH QS n 线 = feature.getAttribute _log_attr .splitlines l 线路: 如果 re.search r 分路器*克隆|。开幕|编码|表|完成 阅读|成功|失败 l re.M被|如re.I : 如果 re.search r multi_reader |命令 线 参数 l re.M被|如re.I : S2 = S2 + l + n feature.setAttribute _log_attr S2 self.featureList.append 特征 # self.totalArea + = feature.getGeometry .getArea 高清 关闭 : 特征 self.featureList: self.pyoutput 特征 feature.setAttribute 总面积 self.totalArea 输出PYOUTPUT FEATURE_TYPE PythonCaller_3_OUTPUT#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerJobSubmitter_5 INPUT FEATURE_TYPE FMEServerJobSubmitter_2_JOB_SUCCEEDED_0_Au5TC3yjPbo= ACTION SUBMIT_JOB CONNECTION "springm FME Server02" 上库 “Geoportal” WORKSPACE_NAME “vector_structure_comparator_qs_p.fmw” 堵TRUE WORKSPACE_PARAMETERS“_namespace_dot_table串@E​​valuateExpression(FDIV,STRING_ENCODED, namespace_dot_table ,FMEServerJobSubmitter_5)” PRIORITY “100” OUTPUT JOB_SUCCEEDED FEATURE_TYPE FMEServerJobSubmitter_5_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE FMEServerJobSubmitter_5_JOB_FAILED#-------------------------------------------------------------------------#默认行为是中止任何功能进入变压器。#如果工作台已设置_WB_BYPASS_TERMINATION宏的“是”的值,#那么功能将改为通过与#__WB_BYPASS_TERMINATOR__的一个特征,类型的工作台将发送到可视化工具或#诸如此类过去了。DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TestFactory中FACTORY_NAME Terminator_6 INPUT FEATURE_TYPE FMEServerJobSubmitter_5_JOB_FAILED TEST “$(_ WB_BYPASS_TERMINATION)” ==是的Passed FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@类型特征())@SupplyAttributes(编码_wb_termination_message,“结构 比较 QS P 返回 FALSE “)@SupplyAttributes(_wb_termination_xformer,” Terminator_6 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码,” 结构 比较 QS P 返回 假”)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerJobSubmitter_3输入FEATURE_TYPE FMEServerJobSubmitter_5_JOB_SUCCEEDED行动SUBMIT_JOB连接”springm FME Server02" 上库 “Geoportal” WORKSPACE_NAME “vector_copier_qs2p_worker.fmw” 堵TRUE WORKSPACE_PARAMETERS“SourceDataset_POSTGIS串Geoportal 字符串@EvaluateExpression(FDIV,STRING_ENCODED, namespace_dot_table ,FMEServerJobSubmitter_3)DestDataset_POSTGIS串Geoportal P” PRIORITY “100” OUTPUT JOB_SUCCEEDED FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED OUTPUT JOB_FAILED FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED FACTORY_DEF * TeeFactory FACTORY_NAME “FMEServerJobSubmitter_3 JOB_SUCCEEDED分配器” INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED OUTPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED_0_1ZK8go / ct8Y = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED_1_bxSZEku1qfQ = FACTORY_DEF * TeeFactory FACTORY_NAME “FMEServerJobSubmitter_3 JOB_FAILED分配器” INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED OUTPUT FEATURE_TYPEFMEServerJobSubmitter_3_JOB_FAILED_0_XrjJimzKkE0 = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED_1_iejS1 + gJQgA = OUTPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED_2_vwrR6Cc2imA =#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_3 INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED_2_vwrR6Cc2imA= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { “” “success_json” “SET_TO”“ 状态 = ToProd 数据库名称 = $(prod_db_name $编码) SCHEMANAME = postgis_namespace 表名 = postgis_table 的createStatement = 原因 = 失败 “}输出输出FEATURE_TYPE AttributeCreator_3_OUTPUT#-------------------------------------------------------------------------#The default behaviour is to abort on any feature entering the transformer. # If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes", # then the features will instead be passed through with a feature type of # __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or # somesuch. DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_7 INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED_0_XrjJimzKkE0= TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"Publishing P 返回 FALSE “)@SupplyAttributes(_wb_termination_xformer,” Terminator_7 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码” 出版 P 返回 FALSE“)#------------------------------------------------------------------------- FACTORY_DEF {*} AttrSetFactory FACTORY_NAME AttributeCreator_2 INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED_1_bxSZEku1qfQ= MULTI_FEATURE_MODE NO NULL_ATTR_MODE NO_OP ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV ATTR_ACTION { "" "success_json" "SET_TO" " 状态 = ToProd 数据库名称 = $(prod_db_name $编码) SCHEMANAME = postgis_namespace 表名 = postgis_table 的createStatement = 原因 = 成功 ”}输出输出FEATURE_TYPE AttributeCreator_2_OUTPUT # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller_Login输入FEATURE_TYPE AttributeCreator_2_OUTPUT输入FEATURE_TYPE AttributeCreator_3_OUTPUT输入FEATURE_TYPE AttributeCreator_4_OUTPUT输入FEATURE_TYPE AttributeCreator_5_OUTPUT TARGET_URL”@EvaluateExpression (FDIV STRING_ENCODED, $(美元admin-manager-url编码) 登录,HTTPCaller_Login) “HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME” “ 输出目录 ” “ 文件扩展名 ” “TARGET_ATTR ”_response_body“ FILE_PATH_ATTR” “UPLOAD_FILE” “UPLOAD_BODY”“MULTIPART_UPLOAD没有UPLOAD_CONTENT_TYPE”应用程序/ x-www-form-urlencoded”COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE ADDITIONAL_URL_PARAMETERS密码;@EvaluateExpression (FDIV, STRING_ENCODED, $(美元admin-manager-password编码),HTTPCaller_Login)用户名;@EvaluateExpression (FDIV, STRING_ENCODED, $(美元admin-manager-username编码),HTTPCaller_Login) AUTH_USERNAME” “AUTH_PASSWORD” “AUTH_METHOD” TARGET_ATTRIBUTE_ENCODING自动检测RESPONSE_HEADER_LIST_ATTR "_login_response_header" " STATUS_CODE_ATTR " "_http_status_code" " ERROR_ATTR " "_error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 follow _re重定向Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION " “USE_COOKIES无输出输出FEATURE_TYPE HTTPCaller_Login_Output输出拒绝的FEATURE_TYPE HTTPCaller_Login_ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #默认行为是中止任何特性进入变压器。如果Workbench已经将_WB_BYPASS_TERMINATION宏的值设置为“Yes”,那么这些特性将通过一个类型为# _ wb_bypass_terminator__的特性类型传递,Workbench将把这个特性类型发送给visualizer或# somesuch。DEFAULT_MACRO _WB_BYPASS_TERMINATION没有FACTORY_DEF * TestFactory中FACTORY_NAME Terminator_8 INPUT FEATURE_TYPE HTTPCaller_Login_ 测试" $ (_WB_BYPASS_TERMINATION) "==Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"JSON 信息 服务 电话: 登录 返回 FALSE “)@SupplyAttributes(_wb_termination_xformer,” Terminator_8 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码” JSON 信息 服务 电话: 登录 返回 假”)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #最接近listindexer的代码但不确切beucase #我们有类型LIST_ATTR而不是类型LIST_NAME所以需要#算出列表名称Tcl2 proc ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13_indexer{指数前缀}{设置fullListAttrName [FME_DecodeText _login_response_header . name];设置last大括号[string last \"{}\" $fullListAttrName];设置listAttr [string range $fullListAttrName 0 [expr $lastBrace+1]];regsub \“{}”$listAttr \“{$index}”listWithIndex;regsub \"{}\" $listAttr {} listBase;设置complexListExp“listWithIndex \美元。”;设置前缀长度[expr][字符串长度$complexListExp]-1];设置前缀[FME_DecodeText $prefix];foreach attr [FME_AttributeNames] {set newAttr {};如果{$attr == $listWithIndex}{设置newAttr $listBase; } elseif {[string first $complexListExp $attr] == 0} { set newAttr [string replace $attr 0 $prefixLength]; }; if {$newAttr != {}} { if {$prefix != {} } { set newAttr $prefix$newAttr; }; if {[string first {fme_} $newAttr] != 0} { set first [string first {fme_} $newAttr]; lappend attrsToCopy $newAttr $attr; }; }; }; if {[info exists attrsToCopy] && [llength $attrsToCopy] > 0} { eval FME_Execute CopyAttributes $attrsToCopy; }; } FACTORY_DEF * TeeFactory FACTORY_NAME ListSearcher INPUT FEATURE_TYPE HTTPCaller_Login_Output OUTPUT FEATURE_TYPE ListSearcher__IndexedFeatures___ "ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13" @SearchList(fme_encoded,"_login_response_header .NAME”, “X-AUTH-令牌”,FIRST_MATCHED_ENCODED)FACTORY_DEF * TestFactory中FACTORY_NAME ListSearcher__Tester INPUT FEATURE_TYPE ListSearcher__IndexedFeatures___ TEST @Value(ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13)== “-1” 输出PASSED FEATURE_TYPE ListSearcher_NOT_FOUND @RemoveAttributes(ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13)OUTPUT FAILED FEATURE_TYPE ListSearcher__IndexFound__ FACTORY_DEF * TestFactory中FACTORY_NAME ListSearcher__Tester2 INPUT FEATURE_TYPE ListSearcher__IndexFound__ TEST YES == “否” 输出PASSED FEATURE_TYPE ListSearcher_FOUND @CopyAttributes(_list_index,ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13)@RemoveAttributes(ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13)OUTPUT FAILED FEATURE_TYPE ListSearcher_FOUND @ TCL2(“ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13_indexer {@Value(ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13)} {X-AUTH-token_}“)@CopyAttributes(_list_index,ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13.) @RemoveAttributes(ListSearcher_6b75fc29_fa29_4023_80f1_7a47878ce25f13) # ------------------------------------------------------------------------- # The default behaviour is to abort on any feature entering the transformer. # If Workbench has set the _WB_BYPASS_TERMINATION macro to a value of "Yes", # then the features will instead be passed through with a feature type of # __WB_BYPASS_TERMINATOR__, which Workbench will send to a visualizer or # somesuch. DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_9 INPUT FEATURE_TYPE ListSearcher_NOT_FOUND TEST "$(_WB_BYPASS_TERMINATION)" == Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"JSON 信息 服务 电话: X-auth的令牌 找到 “)@SupplyAttributes(_wb_termination_xformer,” Terminator_9 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码” JSON 信息 服务 电话: X-auth的令牌 找到“)#------------------------------------------------------------------------- FACTORY_DEF * HTTPFactory FACTORY_NAME HTTPCaller INPUT FEATURE_TYPE ListSearcher_FOUND TARGET_URL "@EvaluateExpression(FDIV,STRING_ENCODED,$(admin-manager-url$encode) API v1 门户 fmepublish HTTPCaller)”HTTP_METHOD POST SAVE_FILE NO OUTPUT_FILENAME " “ 输出目录 ” “ 文件扩展名 ” “TARGET_ATTR ”_response_body“ FILE_PATH_ATTR” “UPLOAD_FILE” “UPLOAD_BODY” @EvaluateExpression(FDIV,STRING_ENCODED, success_json HTTPCaller)”MULTIPART_UPLOAD NO UPLOAD_CONTENT_TYPE "application/json" COMBINED_MULTIPART_TABLE REQUEST_HEADER_TABLE x-auth-token;@EvaluateExpression(FDIV,STRING_ENCODED, X-AUTH-token_value ,HTTPCaller) ADDITIONAL_URL_PARAMETERS AUTH_USERNAME " “AUTH_PASSWORD” “AUTH_METHOD” TARGET_ATTRIBUTE_ENCODING自动检测RESPONSE_HEADER_LIST_ATTR "" STATUS_CODE_ATTR "" _http_status_code" " ERROR_ATTR "" _error" CONNECTION_TIMEOUT_LENGTH 60 TRANSFER_TIMEOUT_LENGTH 90 follow _re重定向Yes VERIFY_SSL_CERTIFICATES Yes NAMED_CONNECTION " “USE_COOKIES无输出输出FEATURE_TYPE HTTPCaller_Output输出拒绝的FEATURE_TYPE HTTPCaller_ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #默认行为是中止任何特性进入变压器。如果Workbench已经将_WB_BYPASS_TERMINATION宏的值设置为“Yes”,那么这些特性将通过一个类型为# _ wb_bypass_terminator__的特性类型传递,Workbench将把这个特性类型发送给visualizer或# somesuch。DEFAULT_MACRO _WB_BYPASS_TERMINATION No FACTORY_DEF * TestFactory FACTORY_NAME Terminator_10输入特性_type HTTPCaller_ 测试" $ (_WB_BYPASS_TERMINATION) "==Yes OUTPUT PASSED FEATURE_TYPE __WB_BYPASS_TERMINATOR__ @SupplyAttributes(_wb_termination_feature_type,@FeatureType()) @SupplyAttributes(ENCODED,_wb_termination_message,"JSON 信息 服务 电话: 发出 JSON 失败 “)@SupplyAttributes(_wb_termination_xformer,” Terminator_10 “)@SupplyAttributes(_wb_termination_feature,是)OUTPUT失败FEATURE_TYPE * @Abort(编码” JSON 信息 服务 电话: 发出 JSON 失败”)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TeeFactory FACTORY_NAME Logger_2_Logger输入FEATURE_TYPE HTTPCaller_Output输出FEATURE_TYPE Logger_2_LOGGED @Log(编码,“Logger_2: @EvaluateExpression(FDIV,STRING_ENCODED,发送 JSON 成功 _response_body ,Logger_2)”, “20”, “20”, “”,INFO,LOG_ONLY,Logger_2_950bb405_cd0c_4ac9_936e_075302c02b5c13)FACTORY_DEF * TeeFactory FACTORY_NAME “Logger_2 LOGGED变压器输出Nuker” INPUT FEATURE_TYPE Logger_2_LOGGED#------------------------------------------------------------------------- FACTORY_DEF * ServerFactory FACTORY_NAME FMEServerLogFileRetriever_4 INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_SUCCEEDED_0_1ZK8go/ct8Y= INPUT FEATURE_TYPE FMEServerJobSubmitter_3_JOB_FAILED_1_iejS1+gJQgA= ACTION RETRIEVE_JOB_LOG CONNECTION "springm FME Server02 JOB_ID @EvaluateExpression (FDIV、浮点数、 _job_id FMEServerLogFileRetriever_4)”LOG_ATTR _log_attr OUTPUT OUTPUT FEATURE_TYPE FMEServerLogFileRetriever_4_OUTPUT # ------------------------------------------------------------------------- FME_PYTHON_PATH "$(FME_MF_DIR)" FACTORY_DEF * PythonFactory FACTORY_NAME PythonCaller_4 INPUT FEATURE_TYPE FMEServerLogFileRetriever_4_OUTPUT SYMBOL_NAME FeatureProcessor PYTHON_NAMESPACE FMEOBJECTS SOURCE_CODE import fmeobjects 进口 再保险 FeatureProcessor 对象 : 高清 __在里面__ : self.featureList = # self.totalArea = 0.0 通过 高清 输入 特征 : S2 = 进口 DER Tabelle + feature.getAttribute namespace_dot_table + NACH P n 线 = feature.getAttribute _log_attr .splitlines l 线路: 如果 re.search r 分路器*克隆|。开幕|编码|表|完成 阅读|成功|失败 l re.M被|如re.I : 如果 re.search r multi_reader |命令 线 参数 l re.M被|如re.I : S2 = S2 + l + n feature.setAttribute _log_attr S2 self.featureList.append 特征 # self.totalArea + = feature.getGeometry .getArea 高清 关闭 : 特征 self.featureList: self.pyoutput 特征 feature.setAttribute 总面积 self.totalArea 输出PYOUTPUT FEATURE_TYPE PythonCaller_4_OUTPUT#------------------------------------------------------------------------- DEFAULT_MACRO Aggregator_2_BREAK_ATTR FACTORY_DEF {*} AggregateFactory FACTORY_NAME Aggregator_2 INPUT FEATURE_TYPE PythonCaller_2_OUTPUT INPUT FEATURE_TYPE PythonCaller_3_OUTPUT INPUT FEATURE_TYPE PythonCaller_4_OUTPUT MODE ONE_LEVEL $(Aggregator_2_BREAK_ATTR) REMOVE_GEOMETRY NO ACCUMULATE_ATTRIBUTES One LIST_ATTRS_TO_INCLUDE { } LIST_ATTRS_TO_INCLUDE_MODE CONCATENATE_FIELDS {} _log_attr分离器 - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * PRODUCE_MULTIS是产出的总FEATURE_TYPE Aggregator_2_AGGREGATE#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "FMEServerEmailGenerator INPUT Input Collector" INPUT FEATURE_TYPE Aggregator_2_AGGREGATE OUTPUT FEATURE_TYPE FMEServerEmailGenerator_INPUT MACRO FMEServerEmailGenerator_WORKSPACE_NAME FMEServerEmailGenerator MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_XFORMER_NAME FMEServerEmailGenerator MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_TRANSFORMER_GROUP MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)___COMPOUND_PARAMETERS MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_SUB_DOC_NAME FMEServerEmailGenerator MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_email_to $(email_to$encode) MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_email_cc $(email_cc$encode) MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_email_from $(email_from) MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_email_replyto $(email_replyto$encode) MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_email_subject Import 来自 einer WKT-Datei宏(FMEServerEmailGenerator_WORKSPACE_NAME) _email_subscriber_content美元 text_line_data _log_attr “”包括[put {MACRO WB_OLD_CONTEXT_$(FMEServerEmailGenerator_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)};将{宏WB_CURRENT_CONTEXT $ (FMEServerEmailGenerator_WORKSPACE_NAME)}] FACTORY_DEF * TeeFactory FACTORY_NAME " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT1526194514输入分流”输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT“输出FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _INPUT " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #创建这个变压器将使用的域名。因为@Count本身将评估表达式来计算#域,所以我们不需要在Tcl中对INCLUDE [set domainPrefix {};如果{{Local} == {Local}} {set domainPrefix [FME_EncodeText {$(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_}];};设置“宏$(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_FULL_DOMAIN ${domainPrefix}counter”;]FACTORY_DEF * ExecuteFunctionFactory FACTORY_NAME $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Counter_Rejector输入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_ “FACTORY_DEF * TeeFactory FACTORY_NAME” $(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter 变压器输出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} {集VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher}];} elseif的{[字符串匹配{* FME_CONDITIONAL *} $ VAL] == 1} {集VAL [FME_Execute EvaluateExpression {STRING} $ VAL {$(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher}];}否则{集VAL [FME_DecodeTextOrAttr $ VAL]。};FME_SetAttribute [FME_DecodeText $名称] $ VAL}} FACTORY_DEF * TeeFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher INPUT FEATURE_TYPE “$(FMEServerEmailGenerator_WORKSPACE_NAME)_Counter_OUTPUT” 输出FEATURE_TYPE “$(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher_OUTPUT” @ TCL2($(FMEServerEmailGenerator_WORKSPACE_NAME)_ParameterFetcher_doFetch)#------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeCreator NULL_ATTR_MODE EMPTY MULTI_FEATURE_MODE YES NUM_PRIOR_FEATURES 0 NUM_SUBSEQUENT_FEATURES 0 NULL_ATTR_VALUE_PROMPT "Attribute Replacement Value:" NULL_ATTR_VALUE "" INPUT 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) OUTPUT OUTPUT FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeCreator_OUTPUT" # ------------------------------------------------------------------------- FACTORY_DEF * XMLTemplaterFactory FACTORY_NAME $(FMEServerEmailGenerator_WORKSPACE_NAME)_JSONTemplater INPUT CONTROL_FEATURE FEATURE_TYPE "$(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeCreator_OUTPUT" INPUT DATA_FEATURE FEATURE_TYPE $(FMEServerEmailGenerator_WORKSPACE_NAME)_JSONTemplater_DataFeatures RESULT_ATTR text_line_data OUTPUT_XML_HEADER NO CONSECUTIVE_GROUPS NO BUCKET_ATTR_NAME __xml_templater_bucket__ CONTROL_TEMPLATE_EXPR email_to : FME:GET属性 _发邮件给 email_cc : FME:GET属性 _email_cc EMAIL_FROM : FME:GET属性 _email_from email_replyto : FME:GET属性 _email_replyto email_subject : FME:GET属性 _电子邮件主题 subscriber_content : FME:GET属性 _email_subscriber_content 输出XML_DOCUMENT FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _JSONTemplater_OUTPUT " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FACTORY_DEF * TestFactory FACTORY_NAME美元(FMEServerEmailGenerator_WORKSPACE_NAME) _Tester输入FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _JSONTemplater_OUTPUT“测试_email_attachment_paths ATTRIBUTE_IS_EMPTY 编码BOOLEAN_OPERATOR或输出通过FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Tester_PASSED“输出失败FEATURE_TYPE " $ (FMEServerEmailGenerator_WORKSPACE_NAME) _Tester_FAILED " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tcl2设置$ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitDelim [FME_DecodeText { });如果{[regexp {^ ([1 - 9] [0 - 9] * s) + $}[设置(FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitDelim美元]]}{设置$ (FMEServerEmailGenerator_WORKSPACE_NAME) _AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitWidths[分裂[regsub -{新元}{ }{}]s];{global $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitWidths;设置源[FME_GetAttribute {"_email_attachment_paths"}];设置attrNum 0;设置listName {_email_attachment_path_list};设置attrPos 0;[set $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitWidths] [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_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_splitDelim; set delim [set $(FMEServerEmailGenerator_WORKSPACE_NAME)_AttributeSplitter_90fd07b8_3d3a_44e9_abb5_21fb0d17cf8a13_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_f8a763a6_469f_4770_8e11_30fd17a7f9fe13_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_f8a763a6_469f_4770_8e11_30fd17a7f9fe13_doSetAttr {@EvaluateExpression(STRING_ENCODED, 邮件附件 _element_index : _email_attachment_path_list ,$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringConcatenator)}“)#-------------------------------------------------------------------------DEFAULT_MACRO $(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_BREAK_ATTR INCLUDE [if {"No" == "Yes"} {puts {MACRO $(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 Yes CONCATENATE_FIELDS { _email_attachment_json } SEPARATOR $(FMEServerEmailGenerator_WORKSPACE_NAME)_Aggregator_AGGREGATE”@Geometry(set_to_contain_personal_geoms,NO) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -宏casemac包括(如果{{没有}= ={没有}}{把{宏casemac查看nocase}}] Tcl2 proc美元(FMEServerEmailGenerator_WORKSPACE_NAME) _StringReplacer_2_b3fddeae_26ab_4db4_81af_789cbf2fbe8213_replacer {findText replaceText invalidValue}{设置attrs[分裂\“_email_attachment_json \”{}];设置findValue [FME_DecodeText $findText];设置replaceValue [FME_DecodeText $replaceText];{set attrVal [FME_GetAttribute $attr];设置noMatch真;如果{{NO} == {YES}} {set newAttrVal [regsub $(casemac) -all—$findValue $attrVal $replaceValue];{set newAttrVal [string map $(casemac)] [list $findValue $replaceValue] $attrVal];};如果{$newAttrVal ne $attrVal}{设置noMatch为假; 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_b3fddeae_26ab_4db4_81af_789cbf2fbe8213_replacer { } { } {_FME_NO_OP_}“)#-------------------------------------------------------------------------MACRO casemac INCLUDE [ if { {NO} == {NO} } { puts {MACRO casemac -nocase}} ] Tcl2 proc $(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_de7a10bc_6cba_4e94_99d2_032a1562689c13_replacer { findText replaceText invalidValue} { set attrs [split \"text_line_data\" {,}]; set findValue [FME_DecodeText $findText]; set replaceValue [FME_DecodeText $replaceText]; foreach attr $attrs { set attrVal [FME_GetAttribute $attr]; set noMatch true; if {{NO} == {YES}} { set newAttrVal [regsub $(casemac) -all -- $findValue $attrVal $replaceValue]; } else { set newAttrVal [string map $(casemac) [list $findValue $replaceValue] $attrVal]; }; if { $newAttrVal ne $attrVal } { set 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_de7a10bc_6cba_4e94_99d2_032a1562689c13_replacer { } {@EvaluateExpression(STRING_ENCODED, _email_attachment_json ,$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer)} {_FME_NO_OP_} “)FACTORY_DEF * TeeFactory FACTORY_NAME ”$(FMEServerEmailGenerator_WORKSPACE_NAME)_OUTPUT1526194514输出集电极“ INPUT FEATURE_TYPE ”$(FMEServerEmailGenerator_WORKSPACE_NAME)_StringReplacer_OUTPUT“ INPUT FEATURE_TYPE ”$(FMEServerEmailGenerator_WORKSPACE_NAME)_Tester_PASSED“ OUTPUT FEATURE_TYPE” $(FMEServerEmailGenerator_WORKSPACE_NAME)_output” INCLUDE [看跌{MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT _ $(FMEServerEmailGenerator_WORKSPACE_NAME))}] * FACTORY_DEF TeeFactory FACTORY_NAME “FMEServerEmailGenerator输出输出更名/ Nuker” INPUT FEATURE_TYPE FMEServerEmailGenerator_OUTPUT OUTPUT FEATURE_TYPE FMEServerEmailGenerator_OUTPUT#-------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME Logger_Logger INPUT FEATURE_TYPE AttributeCreator_OUTPUT_0_lQ+3mj5tm0E= OUTPUT FEATURE_TYPE Logger_LOGGED @Log(ENCODED, "Logger: @EvaluateExpression(FDIV,STRING_ENCODED,-------------------------------------------------------------------------------------------------------- dirwatch_publisher_content: dirwatch_publisher_content source_path: SOURCE_PATH 命名空间: postgis_namespace 表: postgis_table csv_file: csv_file csvt_file: csvt_file -------------------------------------------------------------------------------------------------------- ,记录器)”, “20”, “20”, “”,INFO,LOG_ONLY,Logger_de435e59_6216_4b02_8c67_98295d1fefd913)FACTORY_DEF * TeeFactory FACTORY_NAME “记录器LOGGED变压器输出Nuker” INPUT FEATURE_TYPE Logger_LOGGED#------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" COMMAND_PARM_EVALUATION SINGLE_PASS INPUT FEATURE_TYPE * ROUTE FME_GENERIC FMEServerEmailGenerator_OUTPUT TO TEXTLINE __GO_TO_FINAL_OUTPUT_ROUTER__ multi_writer_id,0, SupplyAttributes ENCODED __wb_out_feat_type__ text_line 几何ROUTE FME_GENERIC __WB_BYPASS_TERMINATOR__ Tcl2 FME_StatMessage 818062 _wb_termination_message _wb_termination_xformer 818063 对FME_GENERIC __WB_BYPASS_TERMINATOR__ __wb_out_feat_type__、__WB_BYPASS_TERMINATOR__几何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__