<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code</title><link>https://www.infopathdev.com:443/forums/45.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Query an Infopath field, run a script and populate another field</title><link>https://www.infopathdev.com:443/forums/thread/40599.aspx</link><pubDate>Tue, 14 Apr 2009 16:15:07 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:40599</guid><dc:creator>DerekB</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/40599.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=40599</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s what I&amp;#39;m trying to do.&amp;nbsp; I have my form automatically populating the requester&amp;#39;s First Name, Last Name, Phone Number, E-Mail Address and user ID (I&amp;#39;m pulling this from the Sharepoint Authentication Service).&amp;nbsp; The one thing I cannot do is to get the user&amp;#39;s manager information, as this is not currently stored in my Active Directory environment.&amp;nbsp; We do have a Novell E-Directory where we can get this information from (this uses LDAP).&amp;nbsp; I had one of our scripters write a VBscript that can pull this information (just have to run it, it popus up a box to enter an ID then it gives you the Manager information), but I don&amp;#39;t know how to get it to work within Infopath.&lt;/p&gt;
&lt;p&gt;Basically, it should (hopefully work like this):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;The user loads the form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;The form populates the following fields:&amp;nbsp; Requester_First_Name, Requester_Last_Name, Requester_Phone_Number, Requester_Email and Enterprise ID (this is working)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A script runs to take the Enterprise_ID and populates the Manager_EMail field&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;The script I have looks like this:&lt;/p&gt;
&lt;p&gt;&amp;#39;Enable Strict Mode&lt;br /&gt;Option Explicit&lt;/p&gt;
&lt;p&gt;&amp;#39;Set Error Handling Options&lt;br /&gt;On Error Resume Next&lt;br /&gt;&amp;#39;On Error Goto 0&lt;/p&gt;
&lt;p&gt;&amp;#39;Variable declarations&lt;br /&gt;Dim strEdsUserName : strEdsUserName = &amp;quot;CN=xxxxxx,OU=Admins,OU=Services,O=BMGC&amp;quot;&lt;br /&gt;Dim strEdsPassword : strEdsPassword = &amp;quot;xxxxxxx&lt;br /&gt;Dim strEdsSearchBase: strEdsSearchBase = &amp;quot;&amp;lt;&lt;a&gt;LDAP://eds-ldap-1.bmogc.net/O=BMGC&lt;/a&gt;&amp;gt;&amp;quot;&lt;br /&gt;Dim strFilter, strAttributes, strQuery, strBase, strUserName&lt;br /&gt;Dim objCommand, objConnection, objRecordSet&lt;br /&gt;Dim strManagerWorkForceID, strGivenName, strSn, strMail&lt;/p&gt;
&lt;p&gt;strUserName = Inputbox(&amp;quot;Enter the user name to search.&amp;quot;)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;#39;Establish a connection to the directory service&lt;br /&gt;Set objCommand = CreateObject(&amp;quot;ADODB.Command&amp;quot;)&lt;br /&gt;Set objConnection = CreateObject(&amp;quot;ADODB.Connection&amp;quot;)&lt;br /&gt;objConnection.Provider = &amp;quot;ADsDSOObject&amp;quot;&lt;br /&gt;objConnection.Properties(&amp;quot;User ID&amp;quot;) = strEdsUserName&lt;br /&gt;objConnection.Properties(&amp;quot;Password&amp;quot;) = strEdsPassword&lt;br /&gt;objConnection.Properties(&amp;quot;Encrypt Password&amp;quot;) = False&lt;br /&gt;objConnection.Properties(&amp;quot;ADSI Flag&amp;quot;) = 0&lt;br /&gt;objConnection.Open &amp;quot;Active Directory Provider&amp;quot;&lt;br /&gt;objCommand.ActiveConnection = objConnection&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;#39;Search #1&lt;br /&gt;&amp;#39;Find out what the specified user&amp;#39;s &amp;#39;managerWorkForceID&amp;#39; attribute is&lt;br /&gt;strFilter = &amp;quot;(cn=&amp;quot; &amp;amp; strUserName &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;strAttributes = &amp;quot;managerWorkForceID&amp;quot;&lt;br /&gt;strQuery = strEdsSearchBase &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strFilter &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strAttributes &amp;amp; &amp;quot;;subtree&amp;quot;&lt;br /&gt;objCommand.CommandText = strQuery&lt;br /&gt;Set objRecordSet = objCommand.Execute&lt;/p&gt;
&lt;p&gt;&amp;#39;If the record set is empty, we didnt&amp;#39; find a user with the specified user name, so exit&lt;br /&gt;If objRecordSet.EOF Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Quit&lt;br /&gt;End If&lt;/p&gt;
&lt;p&gt;&amp;#39;Find the user&amp;#39;s managerworkforceID&lt;br /&gt;Do Until objRecordSet.EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each strName in objRecordSet.Fields(&amp;quot;managerWorkForceID&amp;quot;).Value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strManagerWorkForceID = strName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objRecordSet.MoveNext&lt;br /&gt;Loop&lt;/p&gt;
&lt;p&gt;&amp;#39;If the managerWorkForceID is empty, we don&amp;#39;t have any criteria to perform the next search on&lt;br /&gt;&amp;#39;so exit&lt;br /&gt;If strManagerWorkForceID = &amp;quot;&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Quit&lt;br /&gt;End If&lt;/p&gt;
&lt;p&gt;&amp;#39;Search #2&lt;br /&gt;&amp;#39;Search for the user who has a &amp;#39;workForceID&amp;#39; attribute equal to the &amp;#39;managerworkForceID&amp;#39;&lt;br /&gt;&amp;#39;found above, then pull that user&amp;#39;s first name, last name and smtp address&lt;br /&gt;strFilter = &amp;quot;(workForceID=&amp;quot; &amp;amp; strManagerWorkForceID &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;strAttributes = &amp;quot;givenName,sn,mail&amp;quot;&lt;br /&gt;strQuery = strEdsSearchBase &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strFilter &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strAttributes &amp;amp; &amp;quot;;subtree&amp;quot;&lt;br /&gt;objCommand.CommandText = strQuery&lt;br /&gt;Set objRecordSet = objCommand.Execute&lt;/p&gt;
&lt;p&gt;Do Until objRecordSet.EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim givenname, sn, mail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each givenname in objRecordSet.Fields(&amp;quot;givenName&amp;quot;).Value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strGivenName = givenname&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each sn in objRecordSet.Fields(&amp;quot;sn&amp;quot;).Value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSn = sn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each mail in objRecordSet.Fields(&amp;quot;mail&amp;quot;).Value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMail = mail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objRecordSet.MoveNext&lt;br /&gt;Loop&lt;/p&gt;
&lt;p&gt;WScript.Echo strGivenName &amp;amp; &amp;quot; &amp;quot; &amp;amp; strSn &amp;amp; &amp;quot;, &amp;quot; &amp;amp; strMail&lt;/p&gt;
&lt;p&gt;&amp;#39; Clean up.&lt;br /&gt;objConnection.Close&lt;br /&gt;Set objConnection&amp;nbsp;&amp;nbsp; = Nothing&lt;br /&gt;Set objCommand&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = Nothing&lt;br /&gt;Set objRecordSet&amp;nbsp;&amp;nbsp;&amp;nbsp; = Nothing&lt;/p&gt;</description></item></channel></rss>