Schlei

InfoPath 2007

 

1      Contact Selector Control CSC

1.1    Einführung

In InfoPath 2007 Anwendung des Contact Selector Controls und den Webdienst GetUserDataByName zum auslesen der Email Adresse und anderer Merkmale.

 

1.2    CSC einbinden

Control in InfoPath aktivieren

Arbeitsbereich Steuerelemente auswählen

Datenquelle automatisch erstellen- deaktivieren (funktioniert nicht wirklich)

benutzerdefinierte Steuerelemente hinzufügen oder entfernen

Hinzufügen -> ActiveX ->

Contact Selector auswählen

weiter

keine cab Datei einschließen

weiter

Bindende Eigenschaft: Value

 

Feld o. Gruppe(beliebiger Datentyp) auswählen

Fertig

 

schließen

 

 

 

1.3    Datenquelle erstellen

Gruppe: CS

Gruppe wiederholt: Person

Felder string: DisplayName

                   AccountId

                   AccountType

genau so – Groß+Klein Schreibung beachten !!

 

 

 

1.4    Context.xml

als sekundäre Datenverbindung

und Ressourcendatei einbinden

1.5    Contact Selector ins Formular

Mit der Maus das Control auf das Formular ziehen, dann öffnet sich der Dialog zur Datenquelle – CS auswählen.

 

Der CSC liefert folgende Werte:

 

1.6    Datenverbindung zu Webdienst GetUSerProfileByname erstellen

Extras – Datenverbindung- URL angeben: _vti_bin/ProfilService.asmx

 

 

weiter, ….

 

1.7    Regeln auf die Gruppe CS -

Doppelklick auf Gruppe CS

1.7.1   Regel1 an Gruppe CS: AccountName finden und extrahieren:

Aktion1: AccountName (hier in Feld AccountName_prim2) aus AccountID auslesen

Aktion: Wert eines Feldes setzen:

Feld: AccountName_prim2

Wert: auswerten(auswerten(Person; 'concat(my:AccountId, "")'); "..")

 

Info: Anwendung von auswerten in wiederholten Feldern http://www.ascentium.com/blog/g/Post223.aspx

auswerten= gibt die Ergebnisse des Knotensatzes zurück

 

Aktion 2: AccountName nach slash hinter Domäne extrahieren:

Aktion: Wert eines Feldes setzen:

Feld: AccountName_prim21 setzen, aus AccountName_prim2 auslesen)

Wert: teilzeichenfolge-nach(feld; „\“)

Könnte auch über eine Feld erfolgen - wegen der Nachvollziehbarkeit in 2 Felder)

 

 

1.7.2   Regel2: Email auslesen mit GetUserProfileByName

Aktion 1: Wert eines Feldes setzen

Feld: AccountName (aus der sek. Datenquelle!)

Aktion: AccountName_prim21

 

Aktion 2: Datenverbindung abfragen

Aktion 3: Wert eines Feldes setzen

Feld:

Wert: XPATH Ausdruck:

xdXDocument:GetDOM("GetUserProfileByName")/dfs:myFields/dfs:dataFields/s0:GetUserProfileByNameResponse/s0:GetUserProfileByNameResult/s0:PropertyData[s0:Name = "WorkEmail"]/s0:Values/s0:ValueData/s0:Value

 

Hier: WorkEmail

 

 ------------------  ende --------------------------------------------------