in

didierdanse.net

Site personnel de Didier Danse
Didier Danse's Personnal Website
Microsoft Most Valuable Professional SharePoint

This Blog

Syndication

didierdanse.net - Les news Developpement

January 2009 - Posts

  • SharePoint: Modifier la valeur d'un hyperlien par du code

    Ce n'est pas une astuce mais juste un rappel. Modifier un hyperlien est simple mais la syntaxe peut être déroutante.

    item["mon_champs"].Value = "http://monserveur.com, le titre de mon lien";

    Je sais que cela servira à certaines personnes ;-)

  • Executer Virtual PC sur Vista

    Lors du démarrage de Virtual PC sous Vista, vous recevez le message suivant

    image_thumb3

    Suite à cela, j'ai entendu dire que Virtual PC 2007 n'était pas compatible avec Vista. C'est faux.

    Vous n'êtes certainement pas sans savoir que Vista utilise l'UAC (User Account Control), ce qui empêche entre autres à un logiciel d'accéder aux fichiers du file system sans lui donner explicitement des droits. Ainsi, il est nécessaire de donner ces droits à Virtual PC pour qu'il puisse accéder aux fichiers qui lui sont nécessaires.

    Pour cela, il suffit de faire un clic droit sur l'icône de Virtual PC, sélectionner Propriétés et de se rendre dans l'onglet Compatibilité. Cochez l'option Exécuter ce programme en tant qu'administrateur.

    image_thumb5 

    Et voilà, rien de plus simple :)

  • Microsoft TechDays France du 10 au 12 février 2009 à Paris (évènement gratuit)

    23 parcours thématiques, 300 conférences techniques, plus de 140 partenaires experts Microsoft autour de 5 grands thèmes :

    • Découvertes
      Windows 7, Windows Azure, SaaS, Cloud Computing…
    • Architecture et Développement
      Windows Live, SOA, Visual Studio, .NET, Silverlight, Design, Biztalk…
    • Infrastructure et socle applicatif de l'entreprise numérique
      SQL Server, Windows Server, Virtualisation, Microsoft Desktop Optimization Pack, High Performance Computing, Small Business Server, Enterprise Business Server, Sécurité, ERP…
    • Efficacité individuelle et collective
      Poste de travail, Communications Unifiées, Recherche en entreprise, Microsoft PerformancePoint, SharePoint, Office Communications Server, CRM…
    • Enjeux
      Sécurité, Interopérabilité, Accessibilité, Education, Recherche, Programme de licences...

    Site officiel: http://www.microsoft.com/france/mstechdays/

    Inscriptions: http://galilee.microsoft.fr/TechDays2009/Default.aspx

  • SharePoint: Un Web Service intermédiaire pour réaliser des appels à GetListItems de Lists.asmx depuis InfoPath

    Lors d'un appel au Web Service Lists.asmx et plus exactement à la méthode GetListItems, il est souvent nécessaire de passer des paramètres de types XML. Ces paramètres sont mal interprétés, rendant ainsi l'utilisation du Web Service difficile voire impossible.

    Les paramètres XML sont indiqués dans InfoPath sous la forme d'une chaîne de caractères (ceci dit de l'XML, ce n'est jamais que des caractères qui respectent des règles prédéfinies).

    image

    C'est cette chaîne qui, une fois encodée pour être envoyée, n'est plus compréhensible par le Web Service.

    Une fois le problème repéré, des tests montrent que l'appel du Web Service depuis une application .NET se fait sans aucun souci. Sur base de ces informations, une solution s'offre à nous: utiliser un Web Service (écrit en .NET) que l'on déploie au sein de SharePoint afin de générer le message à envoyer de manière correcte.

        <WebMethod()> _
        Public Function GetListItems(ByVal listName As String, ByVal viewID As String, ByVal query As String, ByVal viewFields As String, ByVal rowLimit As String, ByVal queryOptions As String, ByVal webID As String) As XmlNode
            Dim service As SharePointListsWS.Lists = GetWebServiceInstance(webID)
    
            Dim queryElement As XmlNode = CreateNode("Query", query)
            Dim viewFieldsElement As XmlNode = CreateNode("ViewFields", viewFields)
            Dim queryOptionsElement As XmlNode = CreateNode("QueryOptions", queryOptions)
    
            Return service.GetListItems(listName, viewID, queryElement, viewFieldsElement, rowLimit, queryOptionsElement, webID)
    
        End Function
    
        Private Function GetWebServiceInstance(ByVal webID As String) As SharePointListsWS.Lists
            Dim service As New SharePointListsWS.Lists
            service.Credentials = System.Net.CredentialCache.DefaultCredentials
    
            service.Url = SPContext.Current.Web.Url + "/_vti_bin/Lists.asmx"
    
            Return service
        End Function
    
        Private Function CreateNode(ByVal name As String, ByVal innerXml As String)
            Dim document As New XmlDocument
            Dim node As XmlNode = document.CreateElement(name)
            node.InnerXml = innerXml
            Return node
        End Function

    Ce Web Service, après avoir générer du XML valide et compréhensible, passe les paramètres au Web Service Lists.asmx qui, cette fois, pourra interpréter les paramètres en entrée. Les valeurs retournées par celui-ci sont quant à elle directement renvoyées vers le client appelant.

    Ce qu'il vous faut donc savoir pour réaliser ce Web Service intermédiaire:

    • Comment écrire un Web Service;
    • Comment permettre de l'intégrer dans SharePoint;
    • Comment le déployer dans SharePoint.

    Il existe de nombreux articles discutant de chacun des points. Pour simplifier la vie aux personnes qui ne souhaitent pas trop de temps, je vous joins un fichier zippé comprenant l'ensemble des fichiers nécessaires pour installer un tel Web Service: Téléchargement

    La procédure se résume donc par:

    • Dézippez le fichier;
    • Appuyez sur install.bat.

    Attention! La version actuelle de ce package fait que le fichier spdisco.aspx existant sur le serveur est remplacé par celui présent dans le package. Il est par ailleurs supprimé lors d'un retract de la solution. Faites un backup préalablement.

More Posts
L'auteur du site ne peut être tenu responsable des dommages que les informations fournies pourraient entraîner. Tout est cependant mis en oeuvre pour éviter tout désagrément.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems