Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités


  • Ancien MVP SharePoint 8 ans ...
    Des projets .Net, SharePoint 2013 ou Office 365 ??

    Contactez-nous :

Archives

SharePoint 2007 : une méthode rapide pour tout récupérer en XML

Un petit post en réponse à une question que j'ai vu sur le newsgroup français de SharePoint.

En résumé, comment récupérer en flux XML le contenu d'une liste de contenu ?

Naturellement, je répondrais :

  • API SharePoint
  • Web Service SharePoint
  • query Moteur de recherche

Mais bon c'est une réponse pour développeurs ...

Donc, je m'orienterais plus par de l'aggrégation de contenu via le RSS des listes ou du search

Mais voila, ce n'est pas vraiment un format complet pour récupérer du contenu et l'exploiter ...

Cul de sac ?

Mais non mon ami, il reste l'alternative du diable smile_sarcastic

Je voulais dire mon cher copain owssvr.dll aka FrontPage RPC.

Ce cher protocol RPC héritage de SPS fonctionne toujours aussi bien (et toujours aussi floue à maitriser) sour SharePoint 2007.

Pour récupérer le flux XML d'une liste, il vous suffit de passer par la commande Display

Exemple :

1) Voici l'adresse d'une liste :

http://o12srv:141/Proposals/Forms/AllItems.aspx

2) On récupére l'ID de la liste en ouvrant le source HTML puis en recherchant le contextinfo :

ctx = new ContextInfo();
ctx.listBaseType = 1;
ctx.listTemplate = 101;
ctx.listName = "{1A15A801-4F2D-49B4-A18F-835AF291A117}";
ctx.view = "{49EC61D9-C6C9-48DB-991B-633D80173F57}";
ctx.listUrlDir = "\u002fProposals";
ctx.HttpPath = "\u002f_vti_bin\u002fowssvr.dll?CS=65001";
ctx.HttpRoot = "http:\u002f\u002fo12srv:141";
ctx.imagesPath = "\u002f_layouts\u002fimages\u002f";
ctx.PortalUrl = "";
ctx.SendToLocationName = "";
ctx.SendToLocationUrl = "";
ctx.RecycleBinEnabled = -1;
ctx.OfficialFileName = "";
ctx.WriteSecurity = "1";
ctx.SiteTitle = "WSS";
ctx.ListTitle = "Proposals";
if (ctx.PortalUrl == "") ctx.PortalUrl = null;
ctx.displayFormUrl = "\u002fProposals\u002fForms\u002fDispForm.aspx";
ctx.editFormUrl = "\u002fProposals\u002fForms\u002fEditForm.aspx";
ctx.isWebEditorPreview = 0;
ctx.ctxId = 1;
g_ViewIdToViewCounterMap[ "{49EC61D9-C6C9-48DB-991B-633D80173F57}" ]= 1;
ctx.CurrentUserId = 1073741823;

ctx.WorkflowsAssociated = true;

 

3) On appelle le RPC via l'adresse générique : /_vti_bin/owssvr.dll

soit http://o12srv:141/_vti_bin/owssvr.dll

4) On ajoute le querystring de Display simple : ?Cmd=Display&List={ListID}&XMLDATA=TRUE

soit http://o12srv:141/_vti_bin/owssvr.dll?Cmd=Display&List={1A15A801-4F2D-49B4-A18F-835AF291A117}&XMLDATA=TRUE

5) Voici votre XML smile_regular

 <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
- <s:Schema id="RowsetSchema">
- <s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
- <s:AttributeType name="ows_DocIcon" rs:name="Type" rs:number="1">
  <s:datatype dt:type="string" dt:maxLength="512" /> 
  </s:AttributeType>
- <s:AttributeType name="ows_LinkFilename" rs:name="Name" rs:number="2">
  <s:datatype dt:type="string" dt:maxLength="512" /> 
  </s:AttributeType>
- <s:AttributeType name="ows_Modified" rs:name="Modified" rs:number="3">
  <s:datatype dt:type="datetime" dt:maxLength="8" /> 
  </s:AttributeType>
- <s:AttributeType name="ows_Editor" rs:name="Modified By" rs:number="4">
  <s:datatype dt:type="string" dt:lookup="true" dt:maxLength="512" /> 
  </s:AttributeType>
  </s:ElementType>
  </s:Schema>
- <rs:data>
  <z:row ows_LinkFilename="Exemple" ows_Modified="2007-06-05 14:42:39" ows_Editor="1073741823;#System Account" /> 
  <z:row ows_DocIcon="docx" ows_LinkFilename="Adventure Works Proposal.docx" ows_Modified="2007-06-05 14:42:39" ows_Editor="1073741823;#System Account" /> 
  <z:row ows_DocIcon="docx" ows_LinkFilename="Contoso Proposal.docx" ows_Modified="2007-06-05 14:42:39" ows_Editor="1073741823;#System Account" /> 
  <z:row ows_DocIcon="docx" ows_LinkFilename="Wingtip Toys Proposal.docx" ows_Modified="2007-06-05 14:42:39" ows_Editor="1073741823;#System Account" /> 
  </rs:data>
  </xml>

 

Simple non ?

A vous maintenant les plaisirs de

  • L'XSL
  • archivage
  • Lots DTS
  • composition sous SP Designer
  • ...

A bientôt

Annexes :

Renaud Comte aka TheMit (j'ai toujours une solution, faut pas s'inquieter, j'ai été élevé avec MC Gyver et l'Agence Tous Risque smile_regular)
Member of WygTeam
http://www.wygwam.com

Technorati tags: , , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 28 août 2007 12:18 par themit

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01