Hi Michael,
A custom transformer is a great idea for this - especially if you
publish the message (via an AttributeSetter).

Anyway, I tried this with an AttributeCreator and TCLCaller inside a
custom transformer and I don't get the disappering spaces problem. It
seems strange that you would - is it the TCLCaller part that is
mangling the text, or does the problem occur before that point? Can
you send us the workspace/custom transformer to check?

FYI I entered the following directly into the TclExpression of the
TCLCaller... 

 FME_LogMessage fme_inform [FME_GetAttribute myMess]

Mark

--- In [email protected], "mhabarta" <[EMAIL PROTECTED]> wrote:
>
> Hallo Dale and others
> 
> Thanks for the thorough explanation. 
> 
> It works well this way as long as ... I don't put the whole
> thing into a custom transformer.
> 
> Through the custom transformer I loose the blanks from within
> the message, although the rest survives (the not blank characters of
> the message).
> 
> Michael
> 
> --- In [email protected], "Dale Lutz" <dale.lutz@> wrote:
> >
> > Hi Michael,
> > 
> > Ah, the joys of multiple parsers.  In this case, we have both the FME
> > parser as well as the Tcl parser getting a crack at your line.
> > 
> > If you use this as your program:
> > 
> >    FME_LogMessage fme_inform &message
> > 
> > Then the FME parser replaces the &message with whatever that value
> > was, and the Tcl parser will end up ignoring all the words after the
> > first one in the message because it the FME_LogMessage call thinks it
> > should only get 2 parameters.
> > 
> > Here's the problem with each of the quoting you tried:
> > 
> > >      "&message"
> > 
> > FME's parser will get rid of the quotes before Tcl gets a crack at it,
> > so you end up with the same result as if there was no quotes.
> > 
> > >      {&message}
> > 
> > } are valid characters for an attribute name, so its looking for an
> > attribute with } as the last character.
> > 
> > >      '&message'
> > 
> > ' are not honoured as quotes by any of the parsers involved.  Again,
> > it ends up looking for ' as the last character of the attribute name,
> > and finds no attribute.
> > 
> > Mark was close when he suggested:
> > 
> >    FME_LogMessage fme_inform (FME_GetAttribute message)
> > 
> > but the syntax he was looking for is:
> > 
> >    FME_LogMessage fme_inform [FME_GetAttribute message]
> > 
> > This is the recommended way actually -- in this case, FME's parser is
> > NOT involved in any way, and we are getting Tcl to do all the work.
> > The [ ] enclose a function call that Tcl will run, which in this case
> > returns the result of getting the "message" attribute out of the
> > feature.  That is passed as the second argument to the FME_LogMessage,
> > in its entirety.    Using [ ] to nest function calls is a common Tcl
> > idiom.
> > 
> > Good luck!
> > 
> > Dale
> > 
> > 
> > 
> > 
> > > Thanks Mark for the tip ...
> > >
> > >  I tried and the next problem I run into is with any blank space
> > >  in the message. It ends with the first blank.
> > >
> > >  My parameter line in TCL Caller is:
> > >
> > >  FME_LogMessage fme_inform &message
> > >
> > >  where "message" is the attribute holding the message.
> > >
> > >  I can't seem to find a quoting method to bypass the blank space
> > >  problem... I tried:
> > >      "&message"
> > >      {&message}
> > >      '&message'
> > >
> > >  ... seems my TCL insight is too small ...
> > >
> > >  Michael
> > >
> > >  --- In [email protected], "mark2atsafe" <mark.ireland@> wrote:
> > >  >
> > >  > Hi Michael,
> > >  > The Logger won't do it, because the @Log() function only writes
> > >  > feature info with the message.
> > >  >
> > >  > However - the @Tcl2() function is the one you need - and can
be run
> > >  > from the TCLCaller.
> > >  >
> > >  > In the TCLCaller set the TCL Expression to:
> > >  >
> > >  > FME_LogMessage fme_inform xxxx
> > >  >
> > >  > ...where xxxx is the message you want logging. Check the @Tcl2()
> > >  > function in the FME Functions, Factories and Transformers manual
> > for
> > >  > the different options that are available (eg call it ERROR or
> > WARNING
> > >  > instead of INFORM).
> > >  >
> > >  > Good question - I didn't realize you could do this until I
checked
> > >  it out.
> > >  >
> > >  > Regards,
> > >  >
> > >  > Mark
> > >  >
> > >  > Mark Ireland, Senior Product Specialist
> > >  > Safe Software Inc. Surrey, BC, CANADA
> > >  > support@ http://www.safe.com
> > >  > Solutions for Spatial Data Translation, Distribution and Access
> > >  >
> > >  >
> > >  > --- In [email protected], "mhabarta" <mhabarta@> wrote:
> > >  > >
> > >  > > Hallo
> > >  > >
> > >  > > Anybody has an idea, how to write a message to the FME LOG ?
> > >  > >
> > >  > > LOGGER writes a feature to the log, but I want to write a text
> > message
> > >  > > to the LOG.
> > >  > >
> > >  > > Thanks Michael
> > >  > >
> > >  >
> > >
> > >
> >
>






Join us at the FME Worldwide User Conference Sept. 21-22, 2006 Vancouver BC 
Canada. For more information, visit www.safe.com/2006uc.   
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/fme/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to