Link to home
Start Free TrialLog in
Avatar of RichardStarkey
RichardStarkey

asked on

Getting an external Common Name / Not a member : Evaluate



Hi All,

I've got a small problem.  I'm trying to get  the common name of an external e-mail address.  I'm using the From field on the memo form and it's not as easy as doing Left and Rights due to the unpredictable format of the external email addresses.  For example the From field could be:
"Richard Starkey" <rstarkey@mail.com> or
Richard Starkey <rstarkey@mail.com> or
richardstarkey@mail.com

I've been trying to use the evluate statement to get the Given Name to see how this would work but keep getting a script error: "Not a member : Evaluate".  Below is the pertinent code in my script..

--------------
Dim sess as New NotesSession
Dim externalPrincipal as Variant
externalPrincipal = sess.Evaluate("@Name([G]; From)", maildoc)
-------------

Anybody know what I'm doing wrong or a better way to do it?
Avatar of madheeswar
madheeswar
Flag of Singapore image

How about using "Principal"?
tmpname=doc.Principal
Avatar of Sjef Bosman
If you want to play around with names, use the NotesName object.

    Dim nn= New NotesName(maildoc.From(0))

There are many properties that can be retrieved from a NotesName. Please see the Help-db.
Avatar of HemanthaKumar
HemanthaKumar

Use @Name(Phrase];From) to get Richard Starkey or "Richard Starkey"

For internet address.. use @Name([Address821]; From).. which returns rstarkey@mail.com

~Hemanth
Why use Evaluate in this case?
Avatar of RichardStarkey

ASKER

I tried using maildoc.Principal at first but the external mails don't always have a Principal field.

I've also tried playing around with the NotesName option.  But I found a problem with this is in that the From field wasn't recognised as a names field on an external mail so I got a type mismatch error.  

I would give the @Name([Phrase]; From) a go but when I try to save I still get the "Not a memeber : Evaluate" error message!

To be honest, having looked at it I don't think it is that simple anyway.  I basically need the value that is displayed in the 'Who' column of the users Inbox and formula for that is pretty complicated.
Hi All,
I've worked out the "Not a member : Evaluate" error message.  Evaluate is a standalone function and is not a member of the NotesSession class.  So just using the following does not through an error:
externalPrincipal = Evaluate("@Name([G]; From)", maildoc)

Unfortunaltey, the From field on an external mail is not recognised as a notes name so none of the @Name abbreviations work anyway!

ASKER CERTIFIED SOLUTION
Avatar of Sjef Bosman
Sjef Bosman
Flag of France image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Even script object NotesName has phrase component... Check Addr822Phrase property in NotesName class

No one restricts you from not going for evaluate.. there is no reason.. that simple.

> Unfortunaltey, the From field on an external mail is not recognised as a notes name so none of the @Name abbreviations work anyway!

This is confusing... If you are working on the mail document then you should have from field , no matter where it is generated !
Hemantha, it almost makes you think that maildoc isn't a mailed document at all!
that is what it looks like...when he mentions about @name not recognizing the parts of the name

Thanks!  I think we've got it working.  Sjef - I pasted in the longer version of the code from above and it seems to get the values.  I can then use notesname.common to get the part of the name I want.  
Great! Thanks for the points. Eh, are you in any way related to the, eh, drummer...? Or a big fan?


Alas no relation!  Just a fan of the band!!