Sharepoint

There are 42 entries for the tag Sharepoint

Visual Studio 2011 e tools per Sharepoint 2010

Novita sul supporto di Sharepoint 2010 di Visual Studio 2011: http://bitvector.tostring.it/blog/post/visual-studio-2011-e-tools-per-sharepoint-2010/ Rebitting Tags: Sharepoint | News | Visual Studio

Come configurare un’autenticazione claims e forms con un provider LDAP su Sharepoint 2010

Ultimamente ho dovuto configurare una sorgente ldap su Sharepoint 2010 per far sì che il profilo utente fosse disponibile sia in autenticazione form che in windows. Ovviamente come sorgente LDAP ho usato Active Directory su una macchina Windows 2008 R2. Una volta configurato il sistema di accesso (vediamo fra poco come), la pagina di login diverrà una solamente, con la possibilità di selezionare come identificarsi:   PREREQUISITO E’ necessario che la vostra applicazione sia configurata in Integrated Windows Authentication NTLM e che  sia abilitato l’FBA   ...

SPUserCodeV4 impossibile deploiare il vostro progetto su Sharepoint

Ultimamente, durante un deploy, mi è capitato questo errore: dopo una breve ricerca ho trovato come poter risolvere il problema: andate nel Central Administration -> System Settings -> Manage services on server fate partire il servizio: Microsoft SharePoint Foundation User Code Service e il gioco è fatto. Alla prossima Rebitting Tags: Sharepoint| Quick and Dirty

Sharepoint 2010, come deploiare in maniera smart: Css e jQuery

In tutte le master page di default in un sito Sharepoint 2010 esiste il seguente delegate control: <SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/> Seguendo il link potete leggere dalle msdn cos’è un delegate control. Velocemente, un delegate control è una feature di Sharepoint tramite la quale diciamo ad ASP.NET di trovare un determinato blocco di codice (il delegate control appunto) e inserire il nostro codice custom. E’ un modo semplice e smart per inserire i nostri blocchi di codice senza bisogno di modificare le...

InitializeControl e Sandbox Visual Web Part

Sto scrivendo questo post dopo aver passato una giornata infernale a causa di questo bug. Ho appena finito di aggiungere una Sandbox Visual Web Part al progetto di una solution per Sharepoint 2010. E’ la prima volta che uso una sandbox visual web part, perchè il progetto lo permette; ma il risultato inizia subito ad essere alquanto pessimo: Penso che quest’immagine parli da se. Ho iniziato a cercare se qualcuno aveva già avuto e risolto questo problema ed ho trovato un’interessante post: http://blog.mastykarz.nl/the-name-initializecontrol-does-not-exist-in-the-current-context-visual-web-part-sandboxed-bug-fix/comment-page-1/#comment-85457 Purtroppo io ho già installato il sp1...

Sharepoint 2010 e framework 4

Molti di voi probabilmente hanno provato ad utilizzare le novità del framework 4 su Sharepoint 2010 e saranno rimasti delusi quando hanno scopero che Sharepoint 2010 NON supporta il framework 4 (teniamo presente che Sharepoint 2010 utilizza ASP.NET 3.5 di default). La motivazione è molto semplice, .NET 4 e ASP.NET utilizzano un CLR diverso (il 4 appunto) rispetto al passato dove, invece, veniva utilizzato il 2: http://msdn.microsoft.com/en-us/library/bb822049.aspx Quindi useremo .NET 3.5 finchè non verrà prodotta una nuova versione di Sharepoint Server (che io spero sia rivoluzionata, nel front-end, con l’utilizzo di Razor e MVC)?...

Appuntamento a Bellinzona spostato

Come avevo annunciato in questo post: http://blogs.ugidotnet.org/SalvoDiFazio/archive/2011/05/26/sharepoint-2010-e-silverlight-5-a-lugano-con-ated.aspx era previsto un evento a Bellinzona su Siliverlight 5 e Sharepoint 2010. Purtroppo è stato spostato a data da decidere (speriamo presto). Ciao Rebitting Tags: Eventi| Silverlight| Sharepoint

Creare una WebPart con WSPBuilder su Sharepoint 2007

Ancora oggi mi trovo spesso a dover lavorare con Sharepoint 2007. Essendo ormai coccolato da Sharepoint 2010 e dall’integrazione con Visual Studio 2010, mi trovo sempre più spaesato nel riprendere in mano Visual Studio 2008 e dover sviluppare una feature per Sharepoint 2007. Ed ecco che ultimamente mi ritrovo con Visual Studio 2008 aperto, con la necessità di creare una feature con una web part e utilizzare WSPBuilder per creare la solution.   WSPBuilder Per colmare la lacuna tra l’integrazione del tool di sviluppo e il prodotto sono nati varie soluzioni; WSPBuilder è...

SPFile e metadati

Giusto per tenere un appunto anche per me (non è la prima volta che lo dimentico). Se stiamo lavorando con Sharepoint 2007 e abbiamo la necessità di recuperare i metadati riguardanti un file in una nostra Document Library dovremo fare accesso alla propriet’ Properties della classe SPFile. variablespfile.Properties["_FieldName"] non dovrei più dimenticarlo Rebitting Tags: 100| Tip| Sharepoint

Ottenere la lista dei permessi di una list e relativi items

Tra le tante cose in quest’ultimo periodo di attività, ho avuto la necessità di creare un XML da dare in pasto a degli utenti che gestiscono la parte di controlli di accesso ad un’area delicata di un progetto in Sharepoint 2010. Grazie a LinqToXML il compito può esser facilmente svolto Il codice non è completo, ma bastano queste poche righe per capire come poter continuare ed ottenere tutti i dati necessari per completarlo:   public class ListInformation { ...

SharePoint Client per iPhone e iPad

Seguendo le necessità di un cliente sto vagliando l’ipotesi di far comprare la seguente app: http://itunes.apple.com/it/app/filamente-sharepoint-client/id390052009?mt=8 a parole sembra risolva tutti i problemi con soli 11 € vedremo Rebitting Tags: Sharepoint| iPad

Sharepoint, update di campi via C# e SystemUpdate

Dopo aver modificato, in una web part, un campo di un Item mi sono ritrovato con i valori Modified e Modified By modificati. Logicamente correttissimo; peccato che, trattandosi di un thread, mi venivano cambiati il nome dell’utente che aveva aperto il thread e la data di pubblicazione. Per poter ovviare a questo problema ho dovuto usare il metodo SystemUpdate: Cips Rebitting Tags: Sharepoint | SPListItem | 200

Sharepoint contare il numero di post e thread del nostro sito

Ho avuto la necessità di contare il numero di thread e post per ogni forum presente nel mio site. Purtroppo gli item usati nei forum thread –> post hanno un comportamento diverso rispetto a tutti gli altri item. Nel mio caso tutti i forum hanno nel titolo un prefisso di tipo forum. Cmq per poter ottenere quello che mi serviva ho potuto scrivere queste poche righe di codice:   using (SPSite site = new SPSite(args[0])) { SPWeb web = site.OpenWeb(); var listCollection = web.Lists; ...

Sharepoint ottenere la PictureUrl nella nostra Web part

Come nel post precedente Web Part per Sharepoint che visualizza lo stato OCS dell’utente è possibile ricavare l’immagine che l’utente associata al proproio profilo nel my site, tramite le proprietà della classe UserProfile. Ecco come fare: PicUrl = colleague[PropertyConstants.PictureUrl].Value == null ? @"_layouts/images/O14_person_placeHolder_32.png" : colleague[PropertyConstants.PictureUrl].Value.ToString(), Codice moooolto semplice. Controlliamo se abbiamo la nostra PictureUrl se non c’è settiamo quella standard sotto _layouts ciao Rebitting Tags: Sharepoint| 100| Tip

Sharepoint 2010, cos’è il My Content

In Sharepoint 2010 c’è un area nella web application con template my site che si chiama my content o, in italiano, contenuti personali: in quest’area l’utente può creare delle librerie personali e può carirare contenuti personali. Esempio: ipotizziamo di voler creare una web part nel profilo personale dell’utente che visualizzi le ultime foto del nostro viaggio al mare/montagna. Per poter fare qualcosa del genere devo creare una libreria di immagini in contenuti personali e creare una web part che peschi le immagini dalla libreria creata. tutto quì… semplice no?! Rebitting Tags: SharePoint| 100

Web Part per Sharepoint che visualizza lo stato OCS dell’utente

Durante la realizzazione di una web part ho avuto la necessità di ottenere e visualizzare lo stato OCS dell’utente. Per poter ottenere questo dato bisogna far riferimento al UserProfileValueCollection. Le user properties potete trovarle da Central Administration andato a controllare le proprietà del servizio User Profile: Quella utile per ricavare i dati OSC è la proprietà WorkEmail (di default in Sharepoint inglese è chiamata così). Innanzitutto allora dichiariamo l’html per l’immagine (trovato in giro per il web) const string PRESENCEPAWN = @"<img border=""0"" height=""20"" width=""20"" src=""_layouts/images/imnhdr.gif"" onload=""IMNRC('{0}')"" ShowOfflinePawn=""1"" id=""{0}""...

Sharepoint 2010, problemi con deploy Web Part

In questi giorni ho sviluppato una web part usando la mia sempre pronta macchina virtuale con Sharepoint 2010 Server, tutto rigorosamente in inglese. Sono andato poi a deploiare tutto su un server 2010 in italiano e la web part non veniva trovata nel momento in cui provavo ad inserirla nella pagina che mi serviva. Deploia di quì, deploia di là, controlla lì e controlla là, la solution risultava installata correttamente e attivata Ok… calma e sangue freddo … è un problema di lingue? Può essere? Controllo la directory di installazione delle features e la risposta...

Update di un item su Sharepoint 2010 tramite Client Object Model

Dopo una serie di post che hanno visto l’inizio da questo http://bitvector.tostring.it/blog/post/come-leggere-da-una-lista-sharepoint-2010/ Ecco l’ultimo. Questo post è molto semplice. Se volete fare l’update di un item, ipotizzando che list sia il riferimento alla lista dove dovrete lavorare, il codice da inserire è: ListItem updateItem = list.GetItemById(5); updateItem["Title"] = "Rossi"; updateItem.Update(); Rebitting Tags: 100| SharePoint| Client Object Model

Client Object Model ottenere una lista di dati filtrati tramite CAML

Nel periodo pre-festivo (http://bitvector.tostring.it/blog/post/come-migliorare-le-prestazioni-di-una-query-tramite-client-object-model/) avevo preannunciato questo post, dove farò vedere come applicare un filtro affinchè possiamo ottenere solamente i  dati necessari alla nostra applicazione per migliorarne le prestazioni. Per filtrare i dati che vogliamo ottenere a monte della nostra richiesta potremo utilizzare il vecchio buon CAML. Facendo finta di voler ottenere tutti i contatti (creati in questo post: http://bitvector.tostring.it/blog/post/popoliamo-la-nostra-lista-di-contatti-tramite-il-client-object-model-di-sharepoint-2010/) che hanno nel campo Company il valore Equus creeremo una query caml uguale alla seguente: <View><Query> <Where> <Eq> ...

Il community tour fa tappa a Bologna

Sono proprio contento... ho da poco annunciato l'evento di Napoli: http://sharepointcrmday.dotnetcampania.org/   E già posso annunciarvi il prossimo evento (a bologna) dove terrò la sessione di sviluppo applicazioni Silverlight che consumano dati Sharepoint   http://bitvector.tostring.it/blog/post/il-community-tour-fa-tappa-a-bologna Tags: Sharepoint| Community| Eventi

AllowUnsafeUpdates

Mannaggia, più di una volta ho settato a true questa proprietà della SPSite e più di una volta mi domandavo perchè è false di default!!! Vedo di farla il più breve possibile. Settarla a true può essere male tenerla a false è sempre un bene Questa proprietà serve … http://bitvector.tostring.it/blog/post/allowunsafeupdates Tags: Sharepoint| Security

Security Advisory 2416728 (Vulnerability in ASP.NET) and SharePoint

Non sto quì a riscrivere quello che da ieri è stato scritto e riscritto. Dico solamente che a causa di un bug su ASP.NET bisogna prendere dei provvedimenti anche per Sharepoint. Il provvedimento da prendere è il seguente: http://bitvector.tostring.it/blog/post/security-advisory-2416728-vulnerability-in-asp.net-and-sharepoint   Tags: Sharepoint| Security| ASP.NET

Aggiungere un campo nei risultati di una ricerca

La web part Search Core Results si occupa della visualizzazione dei risultati ricercati in un portale Sharepoint che utilizza Fast. Mi è stato chiesto di aggiungere un campo custom all’interno dei risultati ottenuti, quindi ho dovuto fare un paio di piccole modifiche per ottenere il risultato. Per prima cosa ho dovuto creare una colonna all’interno del sito con il nome di abstract (ecco come fare http://office.microsoft.com/en-us/windows-sharepoint-services-help/create-a-site-column-HA010157769.aspx). http://bitvector.tostring.it/blog/post/aggiungere-un-campo-nei-risultati-di-una-ricerca Tags: Sharepoint| Search

Customizzazione pagina dei risultati: visualizzazione rating

Mi è stato richiesto di visualizzare il rating degli item delle liste nei risultati della ricerca. Se non sapete come abilitare il rating nelle vostre liste fate riferimento a questo link: http://office.microsoft.com/en-us/sharepoint-server-help/enable-users-to-rate-content-HA101791797.aspx#_Toc260488882 Per … http://bitvector.tostring.it/blog/post/customizzazione-pagina-dei-risultati-visualizzazione-rating   Tags: Sharepoint

SharePoint Community

il 29 giugno sarò al Lancio@Community Tour: SharePoint Community in Microsoft (Segrate) a seguire le sessioni developers e site builders. Per maggiori info: http://www.facebook.com/?sk=events#!/event.php?eid=105865259459366 Per le iscrizioni: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032451987&Culture=it-IT Ciao :) Rebitting Tags: SharePoint | Eventi

Le domande più frequenti su Microsoft Sharepoint

E’ da un pò che ricevo delle domande generiche su Sharepoint da vari amici e impressioni da parte di vari clienti… Vorrei riportarne un paio quì: 1. Per cosa può tornarmi utile Sharepoint? \ Dove posso usarlo in azienda? Più volte, nelle medie e grosse aziende, si ha la necessità di gestire documenti. Ad esempio: In realtà si potrebbe continuare ancora per molto con questo diagramma di flusso :D Siamo già nel 2010 e, purtroppo, molte aziende condividono queste informazioni...

Sharepoint and Mocking!!!

Sempre più preso dall’usare Rhino.Mocks per i propri test (a causa di Ughetto; prima facevo le mie classi di mocking), ho iniziato a guardare in giro quale sarebbe il migliore framework per mocking su Sharepoint, perchè Rhino non fa quel che ho più di bisogno: moccare classi sealed e costruttori internal. Chi ha provato a mockare dei progetti web sa bene che “problemi” si possono avere con i vari HttpContext etc. Nel mondo Sharepoint abbiamo gli stessi problemi con, l’SPContext, SpList … in più abbiamo poche interfacce e molti metodi/proprietà static. Ecco allora che abbiamo...

Customizzare i risultati del nostro Sharepoint 2010 Search Engine!

Sicuramente una cosa che torna sempre carino da fare è customizzare la result page del nostro search engine. Prima di tutto, se non abbiamo un subsite search engine lo creiamo: Fatto questo, apriamo il Designer 2010 e andiamo su All Files e (personalmente lo trovo comodo) copiamo le web part utili della pagina results.aspx: E creiamo la pagina SearchResult.aspx : Adesso andiamo sui settings del nostro site e clicchiamo su Search settings: Modifichiamo l’url della pagina di result E...

Nascondere alcune aree di Sharepoint tramite il controllo SPSecurityTrimmedControl

Ditemi… a chi piace dare al nostro Anonymouse User la nostra ribbon bellissima!? A me non piace :-\ C’è un modo per evitare di togliere elementi utili nel back-office ma non farli visualizzare nel front-end. E questo è SPSecurityTrimmedControl. Ecco un esempio. Troviamo il nostro <div> della ribbon e inseriamo il controllo: <SharePoint:SPSecurityTrimmedControl runat="server" PermissionsString="AddAndCustomizePages"> <a id="HiddenAnchor" href="javascript:;" style="display:none;"></a> <SharePoint:DelegateControl runat="server" ControlId="GlobalNavigation"/> <div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle"> <!-- .... --> </div> </SharePoint:SPSecurityTrimmedControl> La magia avviene grazie al PermissionsString. Per sapere tutti i PermissionsString a disposizione fate riferimento a: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions(v=office.14).aspx cips 0xc328a906, 0x8f6e, 0x4cdd, 0x83, 0x6d, 0xa1, 0x9a, 0x66,...

Creare un modulo per spedire mail con InfoPath

Un paio di post fà è stato creato un modulo per spedire richieste di supporto tecnico usando semplicemente una Custom List Sharepoint. In questo post invece useremo InfoPath partendo da zero. Quindi apriamo InfoPath e selezioniamo Sharepoint List: Scegliamo il nostro server Sharepoint Diamo il nome alla nostra nuova lista E iniziamo a modellare l’aspetto di layout della tabella cliccando sulla tabella e dopo su Layout e aggiungiamo delle righe: Andiamo sotto Home e iniziamo ad inserire...

Creare una Custom List come modulo per spedire Mail

Ecco come creare una custom list in Sharepoint 2010 da utilizzare come modulo per spedire mail del nostro portale. Per prima cosa creeremo una Custom List che utilizzeremo come repository per le mail che gli utenti spediranno: Adesso, tramite il designer creiamo una nuova pagina ed inseriamo la nostra web part di tipo New Item Form e modifichiamo il testo alla sua sinistra Se volete validare i campi, vi consiglio di mettere del codice javascript nella vostra pagina… oppure usate InfoPath…………… bye 0x31d346be, 0x7cfc, 0x4fa2, 0x8e, 0xcb, 0xe9, 0x2, 0x3b,...

Sharepoint 2010: Un nuovo portale con template Publishing da customizare

Mi sono trovato a dover customizzare una web application con template di tipo Publishing: Una volta creata la Web Application, ho avuto la necessità di creare una master page per le pagine che utilizzerò per gli utenti anonimi. Tanto per creare un pò di confusione abbiamo varie master page: La confusione non è sul numero di master page ma sui loro nomi. Di default non viene usata la default.master (dai dillo che l’avevi pensato!!!) ma la v4.master. La default.master viene usata per mantenere compatibilità con il...

Custom list per visualizzare un elenco di announcements e una dispform custom per visualizzare un elemento.

Creiamo una lista custom per la visualizzazione dei nostri items in una lista di tipo announcements.   Una volta creata questa Data…WebPart, possiamo modificarne l’xslt in modo da fargli puntare ad un’altra pagina (per comodità io ho modificato direttamente l’xslt ma se dovete creare solamente un link potete farlo direttamente dal designer): A causa di un bug se provate a dichiarare la variabile in querystring come ID invece che NewsID, otterrete questo errore: http://support.microsoft.com/kb/972225 A questo punto creiamo la pagina DispNews e aggiungiamo un’altra Empty Data View per visualizzare un item. ...

Sharepoint 2010: Abilitare l’accesso Anonymous

Per abilitare l’accesso Anonymous possiamo fare in due maniera: Vecchia maniera IIS Maniera Sharepoint (anche questa non tanto nuova, visto che lo facevamo anche con il 2007 :D ) Anyway… ecco i passi da fare nel secondo, semplice caso: Avviamo il Central Administrator –> Manage Web Applications –> Selezionare la web application –> Authentication Providers –> click su Default Abilitare l’anonymous nella finestra successiva ...

Dove Sharepoint 2010 (forse anche il 2007) e i DOCX salvano i metadati?

L’altro giorno ad un mio nuovo collega gli è stato chiesto da un cliente dove i metadati venissero salvati, perchè se li son ritrovati dentro il documento docx. Io credevo che il docx si portasse dietro solamente i metadati inseriti insieme al documento… ed invece “magia”; ecco un esempio. Aprite un docx scaricato dalla vostra document library in Sharepoint (la mia è stata modifica per test ed ho inserito un campo a scelta multipla di nome Scelta) e visualizzatene tutte le proprietà; ed ecco cosa si trova: mmm, rinominiamo il docx in zip, scompattiamo...

OrangeDotNet: Esportare una tabella su un sito Sharepoint

Come mi facevano notare, e mancata un pò di pubblicità sul primo articolo di OrangeDotNet http://orangedotnet.org/blogs/sharepoint/archive/2009/07/10/esportare-una-tabella-su-un-sito-sharepoint.aspx  Nel primo post, su Sharepoint (argomento che in futuro mi troverà sempre più coinvolto), si tratta di un’esportazione di dati da una List tramite LinqToXml. Sfruttando il Web Service di SharePoint e le query CAML. Buona lettura Tags: SharePoint | LINQ

Error: The language-neutral solution package was not found

Altro giro altro errore sul deploy di un progetto WebPart: Error: The language-neutral solution package was not found La solutione l'ho trovata quì: http://www.mindsharpblogs.com/aaron/archive/2007/08/23/2603.aspx In pratica nel file solution.xml il nome del progetto da deployare è diverso da quello che avete nella solution. Chiudete Visual Studio Modificate il file solution.xml Riaprite il progetto e deployate   Tags: SharePoint

VSeWSS Service Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Sto utilizzando Visual Studio 2008 extensions for Windows SharePoint Services 3.0, v1.3 - Mar 2009 CTP per deployare una WebPart come Provider. Questa ha la sua interfaccia in un'altro progetto (Class Library). Quando deployio ricevo il seguente errore: VSeWSS Service Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. Togliendo l'implementazione dell'interfaccia, tutto ricominciare a funzionare... Soluzione 0.5 beta: Linkare la dll non il progetto (pessima soluzione) Sembra che, settata correttamente la dll nel file solution.xml, rimuovendo la vecchia dalla GAC e rideployando, insernedo questa volta il progetto nelle reference, il deploy funzioni. Soluzione 1.0 beta: Questa soluzione sembra funzionare: http://oidatsmyleg.wordpress.com/2009/01/28/problems-with-vsewss/   ...

WebPart in un piatto di SharePoint con una spruzzata di WebUserControl

Creare WebPart con un'UI un pò carina è IMHO qualcosa di alquanto complicato. E' interessante, in questi casi e non, utilizzare le WebUserControl. Purtroppo ancor'oggi con le Visual Studio 2008 extensions for Windows SharePoint Services 3.0, v1.3 - Mar 2009 CTP non è stato creato un progetto che ne supporta direttamente l'utilizzo. Ma, con un paio di accorgimenti, è possibile utilizzarle. Vediamo come. Installiamo le extensions di cui sopra. Creiamo un progetto di tipo SharePoint -> WebPart Create/disegnate il vostro WebUserControl in un progetto di tipo ASP.NET Web Application (per questo esempio utilizzerò...

Nascondere View All Site Content

Una delle cose che odio di più è il "View All Site Content" di Sharepoint. Uno dei modi per nascondere questo link è inserendo un javascript come il seguente nelle pagine del vostro sito: <script language="javascript" type="text/javascript">   _spBodyOnLoadFunctionNames.push("Hide");   function getElementsByClass(searchClass) { var classElements = new Array(); var node = document; var tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)'); for (var i = 0, j = 0; i...

Sharepoint 2007: Aggiungere un'immagine ai file PDF presenti nelle liste

Di default se inserite un documento pdf in una lista, questa non associerà alcuna immagine al documento. Per customizzare questo aspetto delle liste bisognerà modificare il file Docicon.xml di Sharepoint 2007 Per prima cosa ci serve un'immagine da associare ai file pdf. Io ho recuperato questa: Aprite la directory: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images\ e copiate l'immagine (magari prima ridimensionatela 16x16) Aprite la directory: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\XML\Docicon.xml e aggiungere un elemento sotto <ByExtension> <Mapping Key="pdf" Value="pdf.jpg" />...

Sharepoint 2007: Perchè e quando usarlo

Nel seguente post ci sono 20 buoni motivi per usare e quando usare Sharepoint: http://hubpages.com/hub/Why-you-need-SharePoint-Training Tags: Sharepoint