 |
|
|
Mon Mail ProPour toute information, n'hésitez pas à me contacter directement par mail |
|
|
| Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
| Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
|
| Bonjour et Bienvenue sur mon blog concernant les technologies Microsoft et notamment les produits & technologies SharePoint. |
30/07/2008Suite à la lecture, puis critique constructive de Stéphane, j'ai donc repris l'article, publié il y'a environ 1 mois, afin d'y ajouter des informations pour le moins capitale lorsque l'on travaille avec le BDC.
J'ai ce sens, j'ai donc rajouté une partie intitulée « Points supplémentaires », et traitant de :
- L'intégration de plusieurs LobSystemInstances dans le même fichier ADF,
- Les différentes méthodes de connexions au BDC.
Dans la partie traitant notamment des différentes méthodes de connexion au BDC, vous verrez notamment comment utiliser et configurer le service SSO, afin de passer des informations d'authentification (login/mot de passe), que l'on soit en authentification Windows ou non.
Dans la partie traitant de plusieurs LobSystemInstances, vous verrez également comment et surtout pourquoi utiliser plusieurs LobSystemInstances, et ensuite les intégrer à notre application BDC.
Enfin, il me semble également judicieux de joindre les fichiers de code (adf et sql), afin que vous puissiez directement travailler dessus J.
Ces fichiers sont disponibles ici ; attention à remplacer toutes les références afin qu'ils fonctionnent dans votre environnement ; pensez également à configurer votre service SSO.
Le nouvel article quant à lui est disponible à la même adresse, il vient donc en remplacement du précédent.
SPEnjoy ! 18/07/2008Suite au précédent post sur la publication de l'article concernant la gestion des profils sous Moss 2007, voici un post supplémentaire qui vient compléter l'article, en vous montrant comment réaliser les même opérations, voire plus, mais cette fois ci via du code.
Lorsque vous souhaitez travailler sur les profils avec le modèle objet de SharePoint, la méthode la plus simple d'y arriver est d'utiliser la classe UserProfileManager.
using (SPSite siteColl = new
SPSite("http://localhost:8080")){
UserProfileManager profileMan = new
UserProfileManager(ServerContext.GetContext(siteColl));
//Suite du code...
} |
A partir de cette classe, vous pouvez à peu près tout faire.
Vous pouvez par exemple récupérer la liste des profils utilisateurs ou un profil en particulier,
foreach(UserProfile profil in profileMan){
//Suite...
}
UserProfile oneProfile =
profileMan.GetUserProfile(@"demo-coforcert0\account"); |
Ou encore créer de nouveaux profils ou en supprimer,
UserProfile newProfile = null;
if (profileMan.UserExists(@"demo-coforcert0\account")){
profileMan.RemoveUserProfile(@"demo-coforcert0\account");
}
newProfile =
profileMan.CreateUserProfile(@"demo-coforcert0\account", "displayname"); |
On va également pouvoir travailler au niveau des propriétés; par exemple, en créer de nouvelles,
Property p = profileMan.Properties.Create(false);
p.Name = "CustomProp";
p.DisplayName = "Custom Property";
//Cette propriété ne peut contenir qu'une liste de termes prédéfinis
p.ChoiceType = ChoiceTypes.Closed;
p.ChoiceList.Add("Choice 1");p.ChoiceList.Add("Choice 2");p.ChoiceList.Add("Choice 3");
p.Type = "String";
p.Length = 255;
//Cette propriété est visible par mon groupe de travail
p.DefaultPrivacy = Privacy.Organization;
p.Description = "Propriété créée par code";
//Cette propriété peut contenir plusieurs valeurs, va pouvoir etre recherchée et est éditable
p.IsMultivalued = true;
p.IsSearchable = true;
p.IsUserEditable = true;
//Cette propriété est obligatoire
p.PrivacyPolicy = PrivacyPolicy.Mandatory;
p.UserOverridePrivacy = true;
p.Separator = MultiValueSeparator.Newline;
p.Commit(); |
Une autre fonctionnalité intéressante, va être de travailler avec le Change Log présent pour les profils ; de cette façon, vous pourrez par exemple décider d'envoyer un mail à chaque fois qu'un utilisateur est rajouté dans le Profile Store, ou tout simplement logguer tout de ce qui se passe.
UserProfileChangeCollection changes = profileMan.GetChanges();
foreach (UserProfileChange change in changes) {
AddLog("{0} has {1} {3} at {2}",
change.AccountName, change.ChangeType.ToString(),
change.EventTime.ToString(), change.ObjectType.ToString());
} |
Si cependant, vous souhaitez démarrer un import, le UserProfileManager ne va pas être suffisant ; il va falloir cette fois ci passer par le UserProfileConfigManager
UserProfileConfigManager ConfigMan = new
UserProfileConfigManager(ServerContext.GetContext(siteColl));
ConfigMan.ActivateImport(true);
//CrawStatus = 0, l'import n'a pas encore démarré
ConfigMan.GetImportStatus().CrawlStatus;
//false = Full Import; true = Incremental Import
ConfigMan.StartImport(false);
//CrawStatus = 1, import en cours…
ConfigMan.GetImportStatus().CrawlStatus; |
Rajouter une nouvelle connexion à votre source de données ?
DataSource ds = ConfigMan.SetDataSource(DataSource.Options.Custom);
ApplicationRegistryConnection BDCConnection = new
ApplicationRegistryConnection(ds "System", "entity", "userProfile");
LDAPConnection ADConnection = new
LDAPConnection(ds,
DataSource.Type.ActiveDirectory);
//Initialisation des différentes connexions
ds.Add(BDCConnection);
ds.Add(ADConnection);
ds.Commit(); |
Etc...
Ensuite, au niveau des profils même, on va pouvoir faire énormément de choses ; nous avons vu précédemment comment récupérer un profil ; une fois récupéré, nous allons pouvoir mettre à jour les propriétés du profil, créer des sites personnels, récupérer la liste des collègues, etc…
oneProfile[PropertyConstants.Birthday].Value = new
DateTime(1984, 01, 21);
oneProfile.CreatePersonalSite();
oneProfile[PropertyConstants.WebSite].Value = oneProfile.PersonalSite.Url;
foreach (Colleague colleague in oneProfile.Colleagues.GetItems()) {
//traitement sur les collègues
}
...
//ne pas oublier le commit à la fin !
oneProfile.Commit(); |
Comme vous pouvez le constater, il y'a matière à investiguer pour un SPProfiler ! Voici un nouvel article sur la gestion des profils sous Moss 2007.
Vous y apprendrez comment fonctionnent les profils sous Moss 2007, et comment travailler avec les profils depuis la page des services partagés.
L'article est disponible ici.
Bonne Lecture ! 17/07/2008Parfois, il peut arriver que vous souhaitiez désactiver la fonctionnalité de création de sites personnels Mon/My Site.
Vous pouvez pour cela utiliser stsadm pour désactiver la feature, car c'est une feature hidden, comme précisé dans le fichier feature.xml décrivant la fonctionnalité ;
<Feature
Id="69CC9662-D373-47fc-9449-F18D11FF732C"
Title="$Resources:spscore,PeopleFeatures_MySite_Text;"
Description="$Resources:spscore,PeopleFeatures_MySite_Desc;"
Version="12.0.0.0"
Scope="Farm"
Hidden="TRUE"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest
Location="mysitefeatureelements.xml"/>
</ElementManifests>
</Feature> |
Stsadm –o deactivatefeature –name mysite
Après exécution de cette commande, vous désactivez donc la possibilité de créer des sites personnels pour vos utilisateurs, et le lien My Site disparait de l'interface SharePoint.
Il existe cependant une solution moins radicale, pour empêcher certains groupe d'utilisateurs, par exemple vos prestataires de services, de créer des sites personnels.
Pour cela, allez sur la page d'administration des services partagés, puis dans la catégorie User Profiles and My Sites, choisissez de gérer les autorisations.
Sélectionnez ensuite votre groupe de personnes et supprimez leur les autorisations adéquates.
Dorénavant, seuls certains utilisateurs auront le droit de créer des sites personnels.
Une autre utilisation serait dans le cadre ou vous auriez plusieurs SSP, ce qui pourrait conduire les utilisateurs à avoir plusieurs sites personnels, en fonction du SSP sur lequel ils pointent. Il vous suffit alors, par exemple, de désactiver la création de sites personnels sur les autres SSP et ne la laissez active que sur le SSP désiré ; vous pourriez également répartir les sites personnels sur vos différents SSP, en fonction de vos groupes d'utilisateurs. 09/07/2008Décidément, je ne suis pas au bout de mes surprises avec la nouvelle génération de logiciels serveurs de Microsoft.
Après avoir cherché en vain un service pop3 qui n'existe plus sur WS 2008, je me heurte à présent à 3 erreurs lors d'une tentative d'installation de CRM 4.0.
Ces erreurs sont les suivantes :
- Une erreur Windows Server 2008 : « Le service cisvc est introuvable ».
- Une erreur SQL Server 2008 : « Le mode SharePoint Intégré de Reporting Service n'est pas pris en charge ».
- Une erreur SQL Server 2008 : « Le service msftesql est introuvable ».
Pour corriger la 1ère erreur, facile ! (mais il faut jouer un peu à cache-cache avec Windows.). Le service cisvc correspond en fait au service d'indexation de windows server 2003. Pour le réactiver, il faut commencer par définir le role de serveur de fichier sur votre serveur, puis activer le service d'indexation comme illustré ci-dessous.
Pour la 2ème facile aussi, il suffit, soit de reconfigurer votre RS en mode natif, soit d'installer une nouvelle instance et de configurer RS en mode natif sur cette dernière.
Concernant la 3ème, l'installateur CRM recherche le service msftesql ; il s'agit du moteur de recherche FullText de SQL Server, qui s'appelait ainsi dans la version 2005. Dans la version 2008, il change de nom pour s'appeler désormais MSSQLFDLauncher.
Il faut donc aller renommer MSSQLFDLauncher en msftesql dans la base de registre pour valider cette étape. Cette clé se trouve dans HKLM\System\Services\
Une fois tout ceci effectué, vous obtenez (enfin) une validation complète du processus. (Je vous conseille néanmoins de repositionner le nom du service de recherche Full Text dans la base de registre une fois l'installation terminée.)

07/07/2008Depuis quelques temps, chaque fois que j'essayais de publier un article sur mon blog, j'obtenais toujours un échec depuis word2007 « word ne peut pas publier cet article » ou alors une erreur HRESULT depuis l'interface graphique.
En investiguant un peu, je me suis rendu compte qu'à chaque fois que j'essayais d'effectuer une opération de création d'objet, ou de modification, j'obtenais également le même message d'erreur.
Ceci était en fait du au fait que le disque contenant nos bases de données SharePoint était plein à craquer !
Une libération de l'espace disque effectuée, et tout est repartie à la normale.
Pensez-y ;)
PS : Un grand merci à Jérémy pour avoir trouvé d'où provenait l'erreur, et par la même occasion m'avoir aidé à la résoudre. Le 2ème article de la suite sur le bdc vient enfin de voir le jour.
Vous pouvez le télécharger ici.
Au menu, vous apprendrez à écrire vos propres fichiers adf pour accéder à une base de données et comprendrez chacun des concepts qui s'y cache derrière.
Vous verrez notamment comment utiliser conjointement le xml de l'adf et les différentes webparts fournies pour développer de manière rapide et performantes vos applications.
Le round 3 traitera de l'écriture d'un adf pour se connecter à 1 web service, ainsi que des fichiers de ressources.
Bonne Lecture.
Pour l'un de mes clients, j'ai du développer une petite application lui permettant d'envoyer un sms afin de récupérer des informations provenant de l'annuaire de l'entreprise.
L'idée de ce sms était de pouvoir recevoir ce type d'information depuis n'importe ou (ou presque) sans être contraint d'être présent en intranet.
Vous me direz pour cela, il existe beaucoup de société sur le net qui fournissent ce genre de services via des serveurs de sms + des web services, oui mais voila, il s'agit ici de faire un démonstrateur afin de « vendre » l'idée, et puis comme d'habitude, le projet a été monté aujourd'hui et est à livrer pour hier…
Bref, ce petit scénario me permet de vous montrer une des fonctionnalités de windows mobile, les MessageInterceptors.
Un MessageInterceptor est un « Message (SMS, mail, etc…) Listener » qui va doit être à l'écoute de tous les messages que vous allez recevoir et va intercepter ceux qui correspondent à la condition définie
Voici le code de notre SMSInterceptor
|
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsMobile.PocketOutlook;
using MI = Microsoft.WindowsMobile.PocketOutlook.MessageInterception;
using MessageInterceptor.localhost;
namespace MessageInterceptor {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.CreateInterceptor();
}
private void button2_Click(object sender, EventArgs e) {
this.CloseInterceptor();
this.Close();
Application.Exit();
}
public StringBuilder Debug;
MI.MessageInterceptor intercept;
public void CreateInterceptor(){
Debug = new StringBuilder();
intercept = new MI.MessageInterceptor(MI.InterceptionAction.NotifyAndDelete);
intercept.MessageCondition = new MI.MessageCondition(MI.MessageProperty.Body, MI.MessagePropertyComparisonType.Contains, "#inf#");
intercept.MessageReceived += new MI.MessageInterceptorEventHandler(MessageReceived);
}
void MessageReceived(object sender, MI.MessageInterceptorEventArgs args) {
//Format du message recu : #inf#nom#prenom
SmsMessage receiveMsg = (SmsMessage)args.Message;
string data = receiveMsg.Body;
Debug.AppendLine(data);
string[] names = data.Split('#');
string firstname, lastname = "";
List<string> nameList = new List<string>();
if (names.Length > 2) {
lastname = names[2];
nameList.Add(lastname);
Debug.AppendLine("LastName : " + lastname);
}
if (names.Length > 3) {
firstname = names[3];
nameList.Add(firstname);
Debug.AppendLine("FirstName : " + firstname);
}
WebService ws = new WebService();
Employee[] employees = ws.ProcessEmployees(nameList.ToArray());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < employees.Length; i++) {
Employee e = employees[i];
sb.AppendLine(e.Nom + " " + e.Prenom + " - " + e.TelBureau + " - " + e.TelMobile + " - " + e.Mail);
}
Debug.AppendLine(sb.ToString());
SmsMessage msgToSend = new SmsMessage();
msgToSend.To.Add(receiveMsg.From);
msgToSend.Body = sb.ToString();
msgToSend.Send();
this.label1.Text += this.Debug.ToString();
}
public void CloseInterceptor() {
intercept.MessageReceived -= MessageReceived;
intercept.Dispose();
}
}
} |
La méthode CreateInterceptor() va donc mettre en œuvre notre interceptor ; à notre interceptor, nous lui précisons que tous les messages qu'il intercepte devront être supprimés une fois qu'il les aura traité via la InterceptorAction.NotifyAndDelete, et pour terminer, nous definissons une condition qui est la suivante : le message doit contenir la chaine #inf# dans son body.
Lorsque nous quittons l'application, ne pas oublier de faire appel à intercept.MessageReceived -= MessageReceived, pour supprimer proprement notre handler.
Voila. 10 minutes plus tard, mon démonstrateur était prêt !
Dommage que l'on ne puisse pas remonter le temps… 17/06/2008Après l'annonce de SQL Server 2008 RC0, Microsoft n'a pas tardé à publier les certifications liées à SQL Server 2008.
Voici la liste des certifications MCTS :
Et la liste des certifications PRO donnant accès au titre MCITP :
Vivement les training kits ! 12/06/2008Voici un nouvel article qui traite du BDC, et de son utilisation OOTB (Out Of The Box).
Dans cet article, vous apprendre à utiliser les Shared Services pour importer des fichiers d'application, gérer la sécurité, rajouter des actions à vos applications BDC, etc…
Vous verrez également comment travailler avec les webparts du BDC, comment intégrer vos données directement dans les listes SharePoint, l'intégration du BDC avec la recherche et le service de Profil.
Cet article sera suivi de quelques autres traitant toujours du BDC, mais cette fois-ci du point de vue du développeur.
On y verra comment écrire nos propres fichiers ADF pour attaquer des bases de données ou des listes SharePoint, mais également comment utiliser les 2 API qui accompagnent le BDC pour créer nos composant custom, alors restez informé !
| Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Modifier dans le navigateur | /_layouts/images/icxddoc.gif | /dntamack/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Afficher dans le navigateur Web | /_layouts/images/ichtmxls.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Instantané dans Excel | /_layouts/images/ewr134.gif | /dntamack/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|
|