SharepointOnLine

Usefull informations for Sharepoint On Line

JSON Formatting Show File Size

By On 03/05/2023

Show File size in kilo bytes in sharepoint list

 


{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "div",
  "attributes": {
  },
  "style": {
    "flex-directon": "row",
    "justify-content": "left",
    "align-items": "center",
    "flex-wrap": "nowrap"
  },
  "children": [
    {
      "elmType": "span",
      "txtContent": "=[$File_x0020_Size]/1000 + ' kbytes'"
    }
  ]
}

 

Get Sharepoint Audit Logs

By On 05/04/2023

Create certification for azure app

    
        # Create certificate
        $mycert = New-SelfSignedCertificate -DnsName "myCertificate.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
        
        $mypwd = ConvertTo-SecureString -String "myCertificatePsw" -Force -AsPlainText
        # Export certificate to .pfx file
        $mycert | Export-PfxCertificate -FilePath myCertificate.pfx -Password $mypwd
        
        # Export certificate to .cer file
        $mycert | Export-Certificate -FilePath myCertificate.cer  
    

Connect to site

    
        $url = "https://m365x6422vvvvd.sharepoint.com/";
        $appId = "868d7a0c-a3dc-45af-b4a7-f72a70f61a60";
        $thumbprint = "A17177BB0E8A465F6AD08B0CEAE2F369C46D6481";
        $tenantId = "3533ab30-c2f0-48fd-b4c5-f5dc6ca77ec3"

        Connect-PnPOnline  -Url $url -Tenant $tenantId -Thumbprint $thumbprint -ClientId $appId
    

Export audit

premission required

Office 365 Management APIs (3) :: ActivityFeed.Read

possible filters

  • FilePreviewed
  • FileAccessed
  • SignInEvent
  • FileModifiedExtended
  • FileUploaded
  • PageViewed
  • PagePrefetched
  • FileCheckedIn
  • FileModified
  • FolderCreated
  • ListUpdated
  • ListViewed
    
        $ele = Get-PnPUnifiedAuditLog -ContentType SharePoint -StartTime (Get-Date).AddDays(-2) -EndTime (Get-Date).AddDays(-1)

        $ele = Get-PnPUnifiedAuditLog -ContentType SharePoint

        $ele = Get-PnPUnifiedAuditLog -ContentType SharePoint | Where-Object {$_.Operation -eq "PageViewed"} | Select-Object CreationTime,Operation,Workload,UserId,ObjectId,SourceFileName,SiteUrl,SourceFileExtension,SourceRelativeUrl

        $ele | Export-Csv -Path "Audit_3.csv" -Encodin:UTF8 -NoTypeInformation -Delimiter ";"
    

with sharepoint search request

    
        kqlQuery = "ContentTypeId:0x0101009D1CB255DA76424F860D91F20E6C4118*";//news
        kqlQuery = "ContentTypeId:0x0101* language=fr ViewsLastMonths3=0";//documents
        kqlQuery = "ContentTypeId:0x0101* ViewsLifeTime=0";
        var seletvvv = "Title,ViewsLifeTimeUniqueUsers,ViewsLifeTime,language,Created,Size,Path,LastModifiedTime,ViewsLastMonths3,ViewsLastMonths3Unique,LastAnalyticsUpdateTime";

        &sortlist='Size:descending'
        &sortlist='ViewsLifeTime:descending'
    

Connect Sharepoint With AppID Certificate

By On 21/03/2023

Connect to Sharepoint using app registration and certificate

 



using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Graph;
using PnP.Core.Auth;
using PnP.Core.Auth.Services.Builder.Configuration;
using PnP.Core.Services;
using PnP.Core.Services.Builder.Configuration;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;


namespace HGH.Buisiness4
{
    public class SPTools2 : IDisposable
    {
        private IHost _host;


        public SPTools2()
        {

        }

        public async Task Connect(string appId, string tenantId, string siteUrl, string thumbprint, StoreName storeName, StoreLocation storeLocation)
        {
            try
            {
                _host = Host.CreateDefaultBuilder()
               .ConfigureServices((hostingContext, services) =>
               {
                   // Add the PnP Core SDK library
                   services.AddPnPCore(options =>
                   {
                       options.Sites.Add("SiteToWorkWith", new PnPCoreSiteOptions
                       {
                           SiteUrl = siteUrl
                       });
                   });
                   services.AddPnPCoreAuthentication(
                       options =>
                       {
                           // Configure an Authentication Provider relying on Windows Credential Manager
                           options.Credentials.Configurations.Add("x509certificate",
                               new PnPCoreAuthenticationCredentialConfigurationOptions
                               {
                                   ClientId = appId,
                                   TenantId = tenantId,
                                   X509Certificate = new PnPCoreAuthenticationX509CertificateOptions
                                   {
                                       StoreName = storeName,
                                       StoreLocation = storeLocation,
                                       Thumbprint = thumbprint
                                   }
                               });

                           // Configure the default authentication provider
                           options.Credentials.DefaultConfiguration = "x509certificate";

                           // Map the site defined in AddPnPCore with the 
                           // Authentication Provider configured in this action
                           options.Sites.Add("SiteToWorkWith",
                               new PnPCoreAuthenticationSiteOptions
                               {
                                   AuthenticationProviderName = "x509certificate"
                               });
                       });


               })
            // Let the builder know we're running in a console
            .UseConsoleLifetime()
            // Add services to the container
            .Build();
                await _host.StartAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"ERROR SPTools2 appId {appId} siteUrl {siteUrl} thumbprint {thumbprint} {ex}");
                throw new Exception($"ERROR SPTools2 appId {appId} siteUrl {siteUrl} thumbprint {thumbprint}", ex);
            }
            return 1;
        }

        public async Task LoadWeb()
        {
            try
            {
                // Optionally create a DI scope
                using (var scope = _host.Services.CreateScope())
                {
                    // Obtain a PnP Context factory
                    var pnpContextFactory = scope.ServiceProvider
                        .GetRequiredService();
                    // Use the PnP Context factory to get a PnPContext for the given configuration
                    using (var context = await pnpContextFactory.CreateAsync("SiteToWorkWith"))
                    {
                        // Retrieving web with lists and masterpageurl loaded ==> SharePoint REST query
                        var web = await context.Web.GetAsync(p => p.Title, p => p.Lists,
                        p => p.MasterUrl);

                        Console.WriteLine($"Web Title {web.Title} Loaded");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"ERROR LoadWeb{ex}");
                throw new Exception($"ERROR LoadWeb ", ex);
            }
            return 1;
        }

        public void Dispose()
        {
            if (_host != null)
                _host.Dispose();
        }
    }
}


 

 

 

Powershell Import Export Fields

By On 03/02/2023


Write-Output 'Connexion Portail'
# Connect-PnPOnline -Url $siteUrl -Tenant $aadDomain -Thumbprint $certifThumbprint -ClientId $appId

function ExportFieldsToCsv {
    Param(
        [string]$listTitle,
        [string]$csvFilename,
        [boolean]$includeHidden = $false
    )
    #$list = Get-PnPList -Identity $list 

    if ([string]::IsNullOrEmpty($listTitle)) {
        $fields = Get-PnPField
        $aFieldToExports = @();
        for ($i = 0 ; $i -lt $fields.Length ; $i++) {
            $field = $fields[$i];
            $aFieldToExport = New-Object -TypeName PSObject -Property @{        
                'Title'           = $field.Title;
                'InternalName'    = $field.InternalName;
                'Id'              = $field.Id;
                'TypeAsString'    = $field.TypeAsString;
                'Hidden'          = $field.Hidden;
                'StaticName'      = $field.StaticName;
                'Required'        = $field.Required;
                'Description'     = $field.Description;  
                'TypeDisplayName' = $field.TypeDisplayName;
                'Group'           = $field.Group;

            }
            $aFieldToExports += $aFieldToExport
            $aFieldToExports | Export-Csv -Path "$($csvFilename)" -Encodin:UTF8 -NoTypeInformation -Delimiter ";"
        }
    }
    else {
        <# Action when all if and elseif conditions are false #>
    }
}

function ExportFieldsToXml {
    Param(
        [string]$listTitle,
        [string]$xmlFilename,
        [boolean]$includeHidden = $false
    )
    #$list = Get-PnPList -Identity $list 

    if ([string]::IsNullOrEmpty($listTitle)) {
        $fields = Get-PnPField
        $stringBuilder = New-Object System.Text.StringBuilder
        $null = $stringBuilder.AppendLine("")
        for ($i = 0 ; $i -lt $fields.Length ; $i++) {
            $field = $fields[$i];
            $null = $stringBuilder.AppendLine($field.SchemaXml);

        }
        $null = $stringBuilder.AppendLine("")
        $stringBuilder.ToString() | Out-File -FilePath "$($xmlFilename)" -Encodin:UTF8 -Append
    }
}

function ImportFields {
    Param(
        [string]$listTitle,
        [string]$xmlFilePath,
        [boolean]$includeHidden = $false
    )
    [XML]$xmlfile = Get-Content -Path $xmlFilePath -Encoding:UTF8

    
    if ([string]::IsNullOrEmpty($listTitle)) {
        foreach ($field in $xmlfile.fields.Field) {
            Write-Host $field.Name

            $exists = Get-PnPField -Identity $field.Name -ErrorAction:SilentlyContinue

            if ($null -eq $exists) {
                Write-Host "$($field.Name) is null"

                Add-PnPFieldFromXml -FieldXml $field.OuterXml
                Write-Host "$($field.Name) added"
            }
            else {
                Write-Host "$($field.Name) exists"
            }
        }

    }
    else {        
        foreach ($field in $xmlfile.fields.Field) {
            $siteField = Get-PnPField -Identity $field.Name -ErrorAction:SilentlyContinue
            $listField = Get-PnPField -Identity $field.Name -List $listTitle -ErrorAction:SilentlyContinue
            if ($null -eq $siteField -and $null -eq $listField) {
                Write-Host "$($field.Name) is null"

                Add-PnPFieldFromXml -FieldXml $field.OuterXml
                Add-PnPField -List $listTitle -Field $field.Name
                Write-Host "$($field.Name) added"
            }
            elseif($null -eq $listField){
                Write-Host "$($field.Name) exists"
                Add-PnPField -List $listTitle -Field $siteField.InternalName
                Write-Host "$($field.Name) added to $($listTitle)"

            }
        }
    }
}

Power Automate Check User Exists

By On 24/01/2022

Checkuser1

Checkuser2

 


/_api/web/ensureuser
content-type application/json; odata=verbose

{'logonName': '@{variables('userMailToCheck')}'}
@{outputs('Send_an_HTTP_request_to_SharePoint')['statusCode']}


In Nintex

Nintex 2016 Issue CodeTypeReferenceExpression

By On 08/02/2021

Nintex 2016 Issue CodeTypeReferenceExpression

 

SharePoint Foundation Workflow Infrastructure Unexpected RunWorkflow:

Microsoft.SharePoint.SPException: CompilerError Line="-1" Column="-1" Text="Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.

 

Error saving from workflow export file.: Nintex.Workflow.NWSavingWorkflowException: Erreur lors de la publication du flux de travail  Text="Le type System.CodeDom.CodeTypeReferenceExpression n'est pas indiqué comme étant autorisé dans le fichier de configuration de l'application."

 

You should add below red line in each web.config form your farm except central admin

<authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeTypeReferenceExpression" Authorized="True" />


<authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.CodeDom" TypeName="CodeTypeReferenceExpression" Authorized="True" />
     </targetFx>
    </authorizedTypes>
    <authorizedRuleTypes>
      <targetFx version="v4.0">

--------------------------------

 

Nintex.Workflow.NWException: Erreur lors de la lecture du paramètre 'SMTPServerPort' depuis la base de données de configuration. Vérifiez que vos bases de données Nintex Workflow sont à jour.

 

Nintex.Workflow.NWException: Error reading 'SMTPServerPort' parameter from configuration database. Make sure your Nintex Workflow databases are up to date.

 

To solve this issue, i executed this command line in an powershell admin instance

NWAdmin.exe -o UpgradeDatabases "Server=[serverName];Database=[dbName];Trusted_Connection=True;" -isConfig

For update workflow and forms Nintex configuration databases

 

 

Sharepoint Online Missing Icons

By On 09/12/2020

Sharepoint missing icon on SPFX developpements

 

Some ican can be missing per exemple on :

SPFX missing icon as <i data-icon-name="Tag" class="ms-Button-icon icon-167" role="presentation" aria-hidden="true"></i> 

So you simply have to add this code below after yours imports

 


import { initializeIcons } from 'office-ui-fabric-react/lib/Icons';

initializeIcons();

 

In SQL

Sharepoint Caml Query

By On 08/09/2020

Basic CSOM caml query

 

<View>
    <Query>
        <Where>
            <Eq>
                <FieldRef Name='Matricule'/>
                <Value Type='Text'>90136794</Value>
            </Eq>
        </Where>

<OrderBy><FieldRef Name='ID' Ascending='True'/></OrderBy>
    </Query>
    <ViewFields>
        <FieldRef Name='Matricule' />
        <FieldRef Name='Email' />
    </ViewFields>
    <RowLimit>2</RowLimit>
</View>

 

Query Null Text fields or not

<Where>
    <IsNotNull>
        <FieldRef Name="Famille"/>
    </IsNotNull>
</Where>


<Where>
    <IsNull>
        <FieldRef Name="Famille"/>
    </IsNull>
</Where>

 

by ID

<Where>
    <Eq>
        <FieldRef Name='ID'/>
        <Value Type='Counter'>645</Value>
    </Eq>
</Where>

 

Get tasks by itemId (relatedItems in tasks list)

<Where>
    <Eq>
        <FieldRef Name='RelatedItems'/>
        <Value Type='RelatedItems'>""ItemId"":435,</Value>
    </Eq>
</Where>

 

boolean / Yes/No

<Eq><FieldRef Name='YourFieldName'/><Value Type='Boolean'>1</Value></Eq>

 

Comparators

<Eq> => equals

<Neq> => not equals

<Lt> => Less than

<Leq> => less or equal

<Gt> greater than

<Geq> greater or equal

<Contains>

<BeginsWith>

 

Errors

  • Sharepoint error Error in my cases
    One or more field types are not installed properly. Go to the list settings page to delete these fields. Fields in your query are not in list

    Cannot complete this action.

    Please try again.

    Syntax error in your query
       
       
       
       
       
       
       

     

SPFX React Tips

By On 02/09/2020

Override native css

 

:global(#spLeftNav) {  
  display: none;
} 
:global(.CanvasZone) {  
  max-width: 100%;
} 

Is member of

import 'core-js/modules/es6.string.includes.js';
import 'core-js/modules/es6.number.is-nan.js';
import 'core-js/es6/array';
import 'es6-map/implement';
import { sp,SPRest } from '@pnp/sp';
import { IWebPartContext } from '@microsoft/sp-webpart-base';
import * as React from 'react';

class PeopleService {
    private _context: IWebPartContext;
    private _localPnPSetup: SPRest;

    public constructor(webPartContext: IWebPartContext) {
        this._context = webPartContext;

        // To limit the payload size, we set odata=nometadata
        // We just need to get list items here
        // We use a local configuration to avoid conflicts with other Web Parts
        this._localPnPSetup = sp.configure({
            headers: {
                Accept: 'application/json; odata=nometadata',
            },
        }, this._context.pageContext.web.absoluteUrl);
    }

    public async isMemberOf(group: string): Promise{
        let groups = await this._localPnPSetup.web.currentUser.groups.get();
        let ret: boolean = false;
        
        groups.map(grp =>{
            if(grp.LoginName == group)
            ret =  true;
        });
        return ret;
    }

    public async isMemberOfanyGroup(groupNames: string[]): Promise{
        let groups = await this._localPnPSetup.web.currentUser.groups.get();
        let ret: boolean = false;
        groups.map(grp =>{
            groupNames.map(name =>{
                console.log("name : '" + name + "' grp : '" + grp.LoginName  + "'");
            if(grp.LoginName == name)
                ret = true;
            });
        });
        return ret;
    }

}
export default PeopleService;

Taxonomy, get tags, add tags

import { IWebPartContext } from '@microsoft/sp-webpart-base';
import { Session, ITermStore, ITermSet, ITermData, ITerm } from '@pnp/sp-taxonomy';

class TaxonomyService {
    private _context: IWebPartContext;
    
    public constructor(webPartContext: IWebPartContext) {
        this._context = webPartContext;
    }

    public async getTags() : Promise{
        
        console.log("Session");
        const taxonomy = new Session(this._context.pageContext.site.absoluteUrl);
        const store: any = taxonomy.termStores.getByName("Taxonomy_Wf8XzHaRobdAERjvvke+Tg==");
        let datas = await store.getTermSetById("c18ff3e6-e4a8-4dcb-85f5-51171f4bbc11").terms.select('Name', 'Id', 'Parent').get();
        
        let ret: string[] = [];
        for(let i = 0 ; i < datas.length ; i++)
            ret.push(datas[i]);

        return datas;
    }
    
    public async addNewTag(tag){
        
        const taxonomy = new Session(this._context.pageContext.site.absoluteUrl);
        const store: any = taxonomy.termStores.getByName("Taxonomy_Wf8XzHaRobdAERjvvke+Tg==");
        let datas = await store.getTermSetById("c18ff3e6-e4a8-4dcb-85f5-51171f4bbc11");
        const term: ITerm & ITermData = await datas.addTerm(tag, 1036, true);
    }
}
export default TaxonomyService;

CSOM Delete Items By Id Range

By On 02/09/2020

CSOM delete items by id range

Get items

public ListItemCollection GetItems(string listRelativUrl, string where, string orderBy, string viewFields, int rowlimit = 100)
{
    string xmlView = "";
    try
    {
        List lst = CurrentWeb.GetList(CurrentWeb.ServerRelativeUrl + listRelativUrl);

        StringBuilder vf = new StringBuilder();
        if (!string.IsNullOrEmpty(viewFields))
        {
            vf.Append("<ViewFields>");
            foreach (string fieldName in viewFields.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
            {
                vf.Append($"<FieldRef Name='{fieldName.Trim()}' />");
            }

            vf.Append("</ViewFields>");
        }

        CamlQuery camlQuery = new CamlQuery();
        camlQuery = new CamlQuery();
        Logger.LogInfo($"listRelativUrl {listRelativUrl} : <View><Query>{where}{orderBy}</Query>{vf.ToString()}<RowLimit>{rowlimit}</RowLimit></View>");
        xmlView = $"<View><Query>{where}{orderBy}</Query>{vf.ToString()}<RowLimit>{rowlimit}</RowLimit></View>";
        camlQuery.ViewXml = xmlView;

        ListItemCollection coll = lst.GetItems(camlQuery);
        SPContext.Load(coll);
        SPContext.ExecuteQuery();

        Logger.Log($"coll.Count : '{coll.Count}' : camlQuery.ViewXml {camlQuery.ViewXml}");

        return coll;
    }
    catch (ServerException ex1)
    {
        Logger.LogError($"Error ServerException Common.Sharepoint.SPTools.GetItems url '{_url}' login : '{_login}' " +
            $" listRelativUrl '{listRelativUrl}' where '{where}' orderBy '{orderBy}' rowlimit '{rowlimit}' xmlView : '{xmlView}' Exception '{ex1}'");
        throw;
    }
    catch (Exception ex)
    {
        Logger.LogError($"Error .Common.Sharepoint.SPTools.GetItems url '{_url}' login : '{_login}' " +
            $" listRelativUrl '{listRelativUrl}' where '{where}' orderBy '{orderBy}' rowlimit '{rowlimit}' xmlView : '{xmlView}' Exception '{ex}'");
        throw;
    }
}

delete items


public int DeleteItemByIdRange(string listRelativeUrl, int rowLimit, int from, int to = -1)
{
    int deleted = 0;
    try
    {
        string req = "";
        if (to == -1)
            req = $"<Where><Geq><FieldRef Name='ID'/><Value Type='Counter'>{from}</Value></Geq></Where>";
        else
        {
            if (from > to)
                throw new Exception($"DeleteItemByIdRange from should be < than to listRelativeUrl '{listRelativeUrl}' from '{from}' to '{to}'");
            req = $"<Where><And><Geq><FieldRef Name='ID' /><Value Type='Counter'>{from}</Value></Geq><Leq><FieldRef Name='ID' /><Value Type='Counter'>{to}</Value></Leq></And></Where>";
        }
        ListItemCollection coll = GetItems(listRelativeUrl, req, "", "ID", rowLimit);

        while (coll.Count > 0)
        {
            string id = coll[0].Id.ToString();
            coll[0].DeleteObject();
            this.ExecuteQuery($"DeleteItemByIdRange listRelativeUrl '{listRelativeUrl}' from '{from}' to '{to}' Id = '{id}'");
            deleted++;
        }
        return deleted;
    }
    catch (Exception ex)
    {
        Logger.LogError($"Error Sharepoint.SPTools.DeleteItemByIdRange from id '{from}' to id '{to}' url '{_url}' login : '{_login}'  Exception '{ex}'");
        throw;
    }
}

catch ServerException to get more details on CSOM exceptions

SPFX pnp Taxonomy with internet explorer 11

By On 26/06/2020

SPFX webpart query Taxonomy / Term store with @pnp/sp-taxonomy on ie / internet explorer

 

Your package.json must contains at least :

"@pnp/polyfill-ie11": "1.0.0", 
"@pnp/sp": "1.2.7", 
"@pnp/sp-clientsvc": "^1.3.9", 
"@pnp/sp-taxonomy": "^1.3.9", 
"@types/es6-promise": "0.0.33"

 

In your service where you want to query Term store, you should import :

import 'core-js/modules/es6.string.includes.js';
import 'core-js/modules/es6.number.is-nan.js'; 
import 'core-js/es6/array'; 
import 'es6-map/implement'; 
import { Session } from '@pnp/sp-taxonomy'; 

 

Power Automate Flow Functions

By On 18/06/2020

Power plateform

Power automate flow

 

Functions

Check date is null

if(equals(triggerBody()?['myDate'], null),'[myDate is null]', formatDateTime(triggerBody()?['myDate'], 'dd/MM/yyyy'))

Power apps

Display view on query string value

If ( !IsBlank(Param("taskDisplay")) && Param("taskDisplay")="true"; Navigate(DevTasksView;ScreenTransition.Cover) )

set variable value (separator in english is , in french ;)

Set(CurrentToShow; "loppement") ;; Set(CurrentButton; "DEV")

Flow Get Item Send Mail

By On 10/06/2020

Microsoft Flow hot to get item by lookup and send a mail, with lookup details

Initialize variable

Initvars

Get lookup datas

Getitem 1

Extract approver datas


{
    "type": "object",
    "properties": {
        "@@odata.type": {
            "type": "string"
        },
        "Claims": {
            "type": "string"
        },
        "DisplayName": {
            "type": "string"
        },
        "Email": {
            "type": "string"
        }
    }
}

Extractdisplayname

Append datas to an array

Appendtoarray

Create an html table

Createhtml

Send the mail

Sendmail

Sharepoint Online Web Templates

By On 11/01/2019

Name Title Category Compatiblity Level
STS#3 Site d’équipe Collaboration 15
STS#0 Site d’équipe (expérience classique) Collaboration 15
BLOG#0 Blog Collaboration 15
BDR#0 Centre de documents Entreprise 15
DEV#0 Site de développeur Collaboration 15
OFFILE#1 Centre des enregistrements Entreprise 15
EHS#1 Site d’équipe - Configuration SharePoint Online Entreprise 15
SRCHCEN#0 Centre de recherche d’entreprise Entreprise 15
BLANKINTERNETCONTAINER#0 Portail de publication Publication 15
ENTERWIKI#0 Wiki d’entreprise Publication 15
PROJECTSITE#0 Site de projet Collaboration 15
COMMUNITY#0 Site communautaire Collaboration 15
COMMUNITYPORTAL#0 Portail communautaire Entreprise 15
SITEPAGEPUBLISHING#0 Site de communication Publication 15
SRCHCENTERLITE#0 Centre de recherche de base Entreprise 15

List templates

ID Template Name Description SP2016 SP2013 SP2010 SP2007
-1 InvalidType Not used. Yes Yes Yes Yes
0 NoListTemplate unspecified list type. Yes Yes Yes No
100 GenericList Custom list. Yes Yes Yes Yes
101 DocumentLibrary Document library. Yes Yes Yes Yes
102 Survey Survey. Yes Yes Yes Yes
103 Links Links. Yes Yes Yes Yes
104 Announcements Announcements. Yes Yes Yes Yes
105 Contacts Contacts. Yes Yes Yes Yes
106 Events Calendar. Yes Yes Yes Yes
107 Tasks Tasks. Yes Yes Yes Yes
108 DiscussionBoard Discussion board. Yes Yes Yes Yes
109 PictureLibrary Picture library.  Yes Yes Yes Yes
110 DataSources Data sources for a site. Yes Yes Yes Yes
111 WebTemplateCatalog Site template gallery.  Yes Yes Yes Yes
112 UserInformation User Information. Yes Yes Yes Yes
113 WebPartCatalog Web Part gallery. Yes Yes Yes Yes
114 ListTemplateCatalog List Template gallery. Yes Yes Yes Yes
115 XMLForm XML Form library. Yes Yes Yes Yes
116 MasterPageCatalog Master Page gallery. Yes Yes Yes Yes
117 NoCodeWorkflows No Code Workflows. Yes Yes Yes Yes
118 WorkflowProcess Custom Workflow Process. Yes Yes Yes Yes
119 WebPageLibrary Wiki Page Library. Yes Yes Yes Yes
120 CustomGrid Custom grid for a list. Yes Yes Yes Yes
121 SolutionCatalog Solutions. Yes Yes Yes No
122 NoCodePublic No Code Public Workflow. Yes Yes Yes No
123 ThemeCatalog Themes. Yes Yes Yes No
124 DesignCatalog DesignCatalog. Yes Yes No No
125 AppDataCatalog AppDataCatalog. Yes Yes No No
130 DataConnection
Library
Data connection library for sharing information about external data connections. Yes Yes Yes Yes
140 WorkflowHistory Workflow History. Yes Yes Yes Yes
150 GanttTasks Project Tasks. Yes Yes Yes Yes
151 HelpLibrary Help Library. Yes Yes No No
160 AccessRequest Access Request List. Yes Yes No No
171 TasksWithTimeline
AndHierarchy
Tasks with Timeline and Hierarchy. Yes Yes No No
175 MaintenanceLogs Maintenance Logs Library. Yes Yes No No
200 Meetings Meeting Series (Meeting). Yes Yes Yes Yes
201 Agenda Agenda (Meeting). Yes Yes Yes Yes
202 MeetingUser Attendees (Meeting). Yes Yes Yes Yes
204 Decision Decisions (Meeting). Yes Yes Yes Yes
207 MeetingObjective Objectives (Meeting). Yes Yes Yes Yes
210 TextBox Text Box (Meeting). Yes Yes Yes Yes
211 ThingsToBring Things To Bring (Meeting). Yes Yes Yes Yes
212 HomePageLibrary Workspace Pages (Meeting). Yes Yes Yes Yes
301 Posts Posts (Blog). Yes Yes Yes Yes
302 Comments Comments (Blog). Yes Yes Yes Yes
303 Categories Categories (Blog). Yes Yes Yes Yes
402 Facility Facility. Yes Yes Yes No
403 Whereabouts Whereabouts. Yes Yes Yes No
404 CallTrack Call Track. Yes Yes Yes No
405 Circulation Circulation. Yes Yes Yes No
420 Timecard Timecard. Yes Yes Yes No
421 Holidays Holidays. Yes Yes Yes No
499 IMEDic IME (Input Method Editor) Dictionary. Yes Yes Yes No
600 ExternalList External. Yes Yes Yes No
700 MySiteDocument
Library
MySiteDocumentLibrary. Yes Yes No No
1100 IssueTracking Issue tracking. Yes Yes Yes Yes
1200 AdminTasks Administrator Tasks. Yes Yes Yes Yes
1220 HealthRules Health Rules. Yes Yes Yes No
1221 HealthReports Health Reports.  Yes Yes Yes No
1230 DeveloperSiteDraft
Apps
Draft Apps library in Developer Site. Yes Yes No No
3100 AccessApp   Yes No No No
3101 AlchemyMobileForm   Yes No No No
3102 AlchemyApproval
Workflow
  Yes No No No
3300 SharingLinks   Yes No No No
    Total 64 60 52 38