Hi Hans,

do you have a screenshot for those that have no beta installed yet?
So we can see the magic appear on our screens?

Dank u wel!

Greetings,
Jeff

On 7/12/07, Hans van der Maarel <[EMAIL PROTECTED]> wrote:

  Bruce Harold wrote:

> This sounds eminently sensible to me. Otherwise its
> TransportSender/Receiver in the same workbench (if that is possible).

It is... See the attached workbench (FME Professional, build 5024). It's
almost like magic :) I do wonder how 'smooth' this would be in a big
workbench with a lot of data running through it. I'll see if I have some
time for benchmarking soon...
--
Hans van der Maarel
Red Geographics

Zevenbergsepoort 44b www.redgeographics.com
4791 AE Klundert [EMAIL PROTECTED] <hans%40redgeographics.com>
The Netherlands phone: +31-168-401035

#! <?xml version="1.0" encoding="iso-8859-1" ?>
#! <WORKSPACE
#
#
#    Commandline to run this workspace:
#
#
#    fme.exe tunnel.fmw
#
#
#! MAX_LOG_FEATURES="200"
#! SOURCE="NONE"
#! END_TCL=""
#! DESTINATION="NONE"
#! SHOW_BOOKMARKS="true"
#! GRID_VISIBLE="false"
#! GRID_HEIGHT="50"
#! SHOW_INFO_NODES="true"
#! BEGIN_PYTHON=""
#! BEGIN_TCL=""
#! VIEW_POSITION="0 0"
#! ZOOM_SCALE="100"
#! PASSWORD=""
#! VIEW_PAGE_BREAKS="false"
#! FME_CACHED_OBJECTS_HINT="7500"
#! SHOW_ANNOTATIONS="true"
#! LOG_MAX_RECORDED_FEATURES="200"
#! END_PYTHON=""
#! FME_REPROJECTION_ENGINE="FME"
#! FME_BUILD_NUM="5024"
#! GRID_SNAPTO="false"
#! GRID_WIDTH="50"
#! SOURCE_ROUTING_DIR=""
#! LOG_FILE=""
#! DESTINATION_ROUTING_DIR=""
#! WORKSPACE_VERSION="1"
#! TITLE=""
#! FME_USE_RICH_GEOMETRY="Classic"
#! IGNORE_READER_FAILURE="No"
#! ATTR_TYPE_ENCODING="SDF"
#! >
#! <DATASETS>
#! </DATASETS>
#! <DATA_TYPES>
#! </DATA_TYPES>
#! <GEOM_TYPES>
#! </GEOM_TYPES>
#! <FEATURE_TYPES>
#! </FEATURE_TYPES>
#! <GLOBAL_PARAMETERS>
#! </GLOBAL_PARAMETERS>
#! <COMMENTS>
#! <COMMENT
#! IDENTIFIER="6"
#! COMMENT_VALUE="Lots of other stuff goes here...|"
#! POSITION="1514 -745"
#! ORDER="7"
#! FOLLOW_ANCHOR="true"
#! INFO_NODE="false"
#! />
#! </COMMENTS>
#! <CONSTANTS>
#! </CONSTANTS>
#! <BOOKMARKS>
#! <BOOKMARK
#! IDENTIFIER="7"
#! NAME="The rest of the workbench"
#! DESCRIPTION=""
#! TOP_LEFT="1306 -327"
#! BOTTOM_RIGHT="2306 -1269"
#! STICKY="true"
#! COLOUR="0.584887,0.664205,0.640889"
#! />
#! </BOOKMARKS>
#! <TRANSFORMERS>
#! <TRANSFORMER
#! IDENTIFIER="0"
#! TYPE="2DGridCreator"
#! VERSION="1"
#! POSITION="187 -685"
#! ORDER="3"
#! PARMS_EDITED="true"
#! ENABLED="true"
#! >
#! <OUTPUT_FEAT NAME="CREATED"/>
#! <FEAT_COLLAPSED COLLAPSED="0"/>
#! <XFORM_ATTR ATTR_NAME="_row" IS_USER_CREATED="false" FEAT_INDEX="0"/>
#! <XFORM_ATTR ATTR_NAME="_column" IS_USER_CREATED="false"
FEAT_INDEX="0"/>
#! <XFORM_PARM PARM_NAME="NUMROWS" PARM_VALUE="10"/>
#! <XFORM_PARM PARM_NAME="GRID_TYPE" PARM_VALUE="Polygons"/>
#! <XFORM_PARM PARM_NAME="COL_ATTR" PARM_VALUE="_column"/>
#! <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="2DGridCreator"/>
#! <XFORM_PARM PARM_NAME="YINC" PARM_VALUE="10"/>
#! <XFORM_PARM PARM_NAME="LOWERLEFTX" PARM_VALUE="0"/>
#! <XFORM_PARM PARM_NAME="NUMCOLS" PARM_VALUE="10"/>
#! <XFORM_PARM PARM_NAME="XINC" PARM_VALUE="10"/>
#! <XFORM_PARM PARM_NAME="LOWERLEFTY" PARM_VALUE="0"/>
#! <XFORM_PARM PARM_NAME="ROW_ATTR" PARM_VALUE="_row"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#! IDENTIFIER="1"
#! TYPE="TransporterSender"
#! VERSION="1"
#! POSITION="816 -686"
#! ORDER="4"
#! PARMS_EDITED="true"
#! ENABLED="true"
#! >
#! <XFORM_PARM PARM_NAME="MODE" PARM_VALUE="TCP/IP"/>
#! <XFORM_PARM PARM_NAME="FEATURES_PER_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#! <XFORM_PARM PARM_NAME="FILE_NAME" PARM_VALUE="&lt;Unused&gt;"/>
#! <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TransporterSender"/>
#! <XFORM_PARM PARM_NAME="PORT" PARM_VALUE="8586"/>
#! <XFORM_PARM PARM_NAME="INITIATION_SEQUENCE" PARM_VALUE="ESTABLISH"/>
#! <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="localhost"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#! IDENTIFIER="3"
#! TYPE="TransporterReceiver"
#! VERSION="1"
#! POSITION="2388 -750"
#! ORDER="5"
#! PARMS_EDITED="true"
#! ENABLED="true"
#! >
#! <OUTPUT_FEAT NAME="TRANSPORTED"/>
#! <FEAT_COLLAPSED COLLAPSED="0"/>
#! <XFORM_PARM PARM_NAME="MODE" PARM_VALUE="TCP/IP"/>
#! <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TransporterReceiver"/>
#! <XFORM_PARM PARM_NAME="PORT" PARM_VALUE="8586"/>
#! <XFORM_PARM PARM_NAME="INITIATION_SEQUENCE" PARM_VALUE="CONNECT"/>
#! <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="localhost"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#! IDENTIFIER="4"
#! TYPE="Visualizer"
#! VERSION="1"
#! POSITION="3236 -731"
#! ORDER="6"
#! PARMS_EDITED="false"
#! ENABLED="true"
#! >
#! <XFORM_PARM PARM_NAME="TACKATTRS" PARM_VALUE=""/>
#! <XFORM_PARM PARM_NAME="AREA_COLOR" PARM_VALUE=""/>
#! <XFORM_PARM PARM_NAME="XFORMER_NAME"
PARM_VALUE="TransporterReceiver_TRANSPORTED"/>
#! <XFORM_PARM PARM_NAME="PEN_COLOR" PARM_VALUE=""/>
#! </TRANSFORMER>
#! </TRANSFORMERS>
#! <FEAT_LINKS>
#! <FEAT_LINK
#! IDENTIFIER="2"
#! SOURCE_NODE="0"
#! TARGET_NODE="1"
#! SOURCE_PORT_DESC="fo 0"
#! TARGET_PORT_DESC="fi 0"
#! ENABLED="true"
#! EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#! IDENTIFIER="5"
#! SOURCE_NODE="3"
#! TARGET_NODE="4"
#! SOURCE_PORT_DESC="fo 0"
#! TARGET_PORT_DESC="fi 0"
#! ENABLED="true"
#! EXTRA_POINTS=""
#! />
#! </FEAT_LINKS>
#! <ATTR_LINKS>
#! </ATTR_LINKS>
#! <SUBDOCUMENTS>
#! </SUBDOCUMENTS>
#! <LOOKUP_TABLES>
#! </LOOKUP_TABLES>
#! </WORKSPACE>
#!
#! START_HEADER
#! START_WB_HEADER
READER_TYPE NULL
READER_KEYWORD NULL_SOURCE
NULL_SOURCE_DATASET null
WRITER_TYPE NULL
WRITER_KEYWORD NULL_DEST
NULL_DEST_DATASET null
#! END_WB_HEADER
#! END_HEADER

LOG_FILENAME "$(FME_MF_DIR)tunnel.log"
LOG_APPEND NO
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_CACHED_OBJECTS_HINT 7500
FME_REPROJECTION_ENGINE FME
FME_USE_RICH_GEOMETRY no
#
-------------------------------------------------------------------------

MULTI_READER_CONTINUE_ON_READER_FAILURE No

#
-------------------------------------------------------------------------

MACRO WORKSPACE_NAME tunnel
DEFAULT_MACRO WB_CURRENT_CONTEXT
#
-------------------------------------------------------------------------

FACTORY_DEF * CreationFactory    FACTORY_NAME 2DGridCreator    2D_GEOMETRY
0 0    NUMBER_TO_CREATE @Evaluate("10 * 10")    OUTPUT FEATURE_TYPE
__TO_TESTER__        _column @Evaluate(int("(&creation_instance+0) / 10"))
     _row @Evaluate("(&creation_instance+0) % 10")        xOffset
@Evaluate(&_column * 10)        yOffset @Evaluate(&_row * 10)
 @Offset(&xOffset,&yOffset)
 @RemoveAttributes(xOffset,yOffset,creation_instance)
FACTORY_DEF * TestFactory    FACTORY_NAME 2DGridCreator_Tester    INPUT
FEATURE_TYPE __TO_TESTER__    TEST Polygons == "Points"    OUTPUT PASSED
FEATURE_TYPE __TO_CLEANER__    OUTPUT FAILED FEATURE_TYPE __TO_CLEANER__
  xPt @XValue()       yPt @YValue()       @XValue(&xPt,RESET)
@YValue(&yPt)       @XValue(&xPt)       @YValue(@Evaluate(&yPt+10))
@XValue(@Evaluate(&xPt+10))       @YValue(@Evaluate(&yPt+10))
@XValue(@Evaluate(&xPt+10))       @YValue(&yPt)       @XValue(&xPt)
@YValue(&yPt)       @GeometryType(fme_polygon)
@RemoveAttributes(xPt,yPt)
FACTORY_DEF * TeeFactory    FACTORY_NAME 2DGridCreator_Cleaner    INPUT
FEATURE_TYPE __TO_CLEANER__    OUTPUT FEATURE_TYPE 2DGridCreator_CREATED

#
-------------------------------------------------------------------------
#
FACTORY_DEF * TransporterFactory    FACTORY_NAME TransporterSender
 INPUT  FEATURE_TYPE 2DGridCreator_CREATED    MODE TCP/IP    HOST localhost
   INITIATION_SEQUENCE ESTABLISH    DIRECTION SEND    PORT 8586    FILE_NAME
<Unused>    FEATURES_PER_FILE <Unused>

#
-------------------------------------------------------------------------
#
FACTORY_DEF * TransporterFactory    FACTORY_NAME TransporterReceiver
 MODE TCP/IP    HOST localhost    INITIATION_SEQUENCE CONNECT    DIRECTION
RECEIVE    PORT 8586    OUTPUT TRANSPORTED FEATURE_TYPE
TransporterReceiver_TRANSPORTED

#
-------------------------------------------------------------------------

# Set the directive to add all the meta-attributes to the features.
# We do this so users see all possible information in the viewed
# features.

READER_META_ATTRIBUTES fme_feature_type fme_dataset fme_basename
# First, set up the temporary directory that will be used for
# the recordings we will be viewing (these three lines do this)
# They assume that the WORKSPACE_NAME macro has already been set

DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [ if {[string length {$(WORKSPACE_TEMP_DIR)}] < 2} {
if {[info exists env(TEMP)]}                  {set gVisualizerTemp
$env(TEMP)}               else                  {set gVisualizerTemp c:} ;
            regsub -all {[ ,]} {$(WORKSPACE_NAME)} {_} wsname;
set gVisualizerTemp $gVisualizerTemp\\${wsname}_[clock format [clock
seconds] -format %H%M%S] ;               puts "MACRO WORKSPACE_TEMP_DIR
$gVisualizerTemp";         } ;         if { [string length {}] > 0 } {
      set catter "" ;             set comma "" ;             foreach attr ""
{                 set catter "$catter$comma&$attr" ;                 set
comma ",_," ;             } ;             puts "MACRO CATMAC
[EMAIL PROTECTED]($catter)" ;         }         else {             puts "MACRO
CATMAC " ;         };         set safeName "[regsub -all {[^a-zA-Z0-9]}
{TransporterReceiver_TRANSPORTED} _]_[expr round(rand() * 1000000)]_[clock
clicks]";         puts "MACRO SAFE_FFS_NAME $safeName";         ]
# Make the temporary directory that the FFS files will live in.
FACTORY_DEF * CreationFactory      FACTORY_NAME
TransporterReceiver_TRANSPORTED_DirCreator      OUTPUT FEATURE_TYPE
__nukeme__          @Tcl2("catch {file mkdir {$(WORKSPACE_TEMP_DIR)}}")
FACTORY_DEF * TeeFactory    FACTORY_NAME
TransporterReceiver_TRANSPORTED_DirCreatorCleanerUpper    INPUT FEATURE_TYPE
__nukeme__
# Now route all the features into the recorder, changing their
# feature type to the transformer name so that they view nicely

FACTORY_DEF * TeeFactory    FACTORY_NAME
TransporterReceiver_TRANSPORTED_SetterUpper    INPUT  FEATURE_TYPE
TransporterReceiver_TRANSPORTED    OUTPUT FEATURE_TYPE __viewme__
FACTORY_DEF * RecorderFactory    FACTORY_NAME
TransporterReceiver_TRANSPORTED_Recorder    INPUT FEATURE_TYPE __viewme__
@FeatureType(TransporterReceiver_TRANSPORTED$(CATMAC))    FEATURE_FILE
"$(WORKSPACE_TEMP_DIR)/$(SAFE_FFS_NAME).ffs"    MODE RECORD_PASS_THROUGH
FACTORY_DEF * CreationFactory      FACTORY_NAME
TransporterReceiver_TRANSPORTED_Trigger      CREATE_AT_END      OUTPUT
FEATURE_TYPE __nukeme__          @TCL("lappend gVisualizerFilesToView
$(SAFE_FFS_NAME)")
FACTORY_DEF * TeeFactory    FACTORY_NAME
TransporterReceiver_TRANSPORTED_CleanerUpper    INPUT FEATURE_TYPE
__nukeme__

#
-------------------------------------------------------------------------

FACTORY_DEF * TestFactory   FACTORY_NAME "Final Output Feature Type
Router"   INPUT FEATURE_TYPE *   TEST @Value(__wb_out_feat_type__) != ""
OUTPUT PASSED FEATURE_TYPE *     @FeatureType(@Value(__wb_out_feat_type__))
#
-------------------------------------------------------------------------

DEFAULT_MACRO WORKSPACE_TEMP_DIR
INCLUDE [ if {{$(WORKSPACE_TEMP_DIR)} == {}} { puts {MACRO
__WB_ENABLE_VISUALIZER__ no} } else { puts {MACRO __WB_ENABLE_VISUALIZER__
*} } ]
FACTORY_DEF $(__WB_ENABLE_VISUALIZER__) CreationFactory   CREATE_AT_END
OUTPUT FEATURE_TYPE __NUKEME__   @TCL("eval FME_Execute System \173fmeview
/ownffs {$(WORKSPACE_TEMP_DIR)} $gVisualizerFilesToView & }")
FACTORY_DEF * TeeFactory   INPUT FEATURE_TYPE __NUKEME__




--
Jeff Konnen
INSER SA
Switzerland
+41 (0) 21 643 77 11

Reply via email to