Archive | June 2013

Sharepoint 2007 Workflows Logs

If you have problems in Workflows, you can activate Workflows logs to see which activities are generating errors.

You should do this in two places, one in your SharePoint portal’s web.config file, and also for owstimer process.

For owstimer, you should go to 12\bin folder and create a new file “owstimer.exe.config” with the following code:

<?xml version="1.0" encoding="utf-8"?> 

<configuration>

  <system.diagnostics>

    <sources>

      <source name="System.Workflow.Runtime" >

        <listeners>

          <add name = "System.Workflow"/>

        </listeners>

      </source>

      <source name="System.Workflow.Runtime.Hosting">

        <listeners>

          <add name="System.Workflow"/>

        </listeners>

      </source>

      <source name="System.Workflow.Activities">

        <listeners>

          <add name="System.Workflow"/>

        </listeners>

      </source>

    </sources>

    <sharedListeners>

      <add name="System.Workflow"

           type="System.Diagnostics.TextWriterTraceListener"

           initializeData="c:\tracing\WFTrace.log"

           traceOutputOptions="DateTime,ProcessId"/>

    </sharedListeners>

    <switches>

      <add name="System.Workflow.LogToTraceListeners" value="1"/>

      <add name="System.Workflow.Runtime" value="All" />

      <add name="System.Workflow.Runtime.Hosting" value="All" />

      <add name="System.Workflow.Runtime.Tracking" value="All" />

      <add name="System.Workflow.Activities" value="All" />

      <add name="System.Workflow.Activities.Rules" value="All" />

    </switches>

  </system.diagnostics>

</configuration>

For your portal’s web.config file you should copy the system.diagnostics section.

Office 365 Access Services Sample

This post is about how to create an Access Application in Office 365 SharePoint Online.

First you need to create a new Access App. Go to your site menu, and select “Add an app”:

ooAApp1

Select the “Access App” option:

ooAApp2

Give your app a name and create it, mine is AccessApp1.

Next click in your new application.

ooAApp3

Click to open your new application and start adding tables:

ooAApp4

You’ll open your application in Access Client, where you can start adding tables based on access templates or create your tables without any template:

ooAApp5

In this case I selected the “Book Collection” template and it automatically created the following tables:

ooAApp6

Save your new application and start using it in your SharePoint Online Portal. You’ll have automatically the create, edit, list and delete operations available:

ooAApp7

Office 365 Sharepoint Sandbox Solution

This post is to show how to use a sandbox solution in office 365.

I used the Sandbox Solution created in the composed looks sample, and deployed the .wsp to my Office Online SharePoint Subscription.

In my Office 365 SharePoint Portal, I went to Site Settings/ Solutions:

OOSS1

Next, uploaded my wsp file:

OOSS2

Selected the Activate button:

OOSS3

And I can start using my solution features, in this case, my custom composed look:

OOSS4

 

Sharepoint 2013 Create a Minimal Master Page

To create a minimal Master Page in SharePoint 2013, you can use the Design Manager.

MP1

Choose the option “4 – Edit Master Pages” and then “Create a minimal master page”.

MP2

Give a name to your page and create it. Next, go to your master pages gallery, and you’ll see your new master page.

You can now, download a copy from your master page, and create a Visual Studio 2012, SharePoint 2013 empty project to deploy your new master page.

You need to add a new module to your project, add your master page file, and configure your elements.xml file:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="SampleMinimalMaster" Url="_catalogs/masterpage">
    <File Path="SampleMinimalMaster\SM12.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary" Url="SM12.master" />
  </Module>
 </Elements>

I made some changes to the original master page, to use the PublishingWebControls:AuthoringContainer control:

<%-- SPG:

This HTML file has been associated with a SharePoint Master Page (.master file) carrying the same name.  While the files remain associated, you will not be allowed to edit the .master file, and any rename, move, or deletion operations will be reciprocated.

To build the master page directly from this HTML file, simply edit the page as you normally would.  Use the Snippet Generator at http://win-f9pitqqtmf3/_layouts/15/ComponentHome.aspx?Url=http%3A%2F%2Fwin%2Df9pitqqtmf3%2F%5Fcatalogs%2Fmasterpage%2FMinimalTest%2Emaster to create and customize useful SharePoint entities, then copy and paste them as HTML snippets into your HTML code.   All updates to this file will automatically sync to the associated Master Page.

 --%>
<%@Master language="C#"%>
<%@Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@Register TagPrefix="wssucmui" TagName="MUISelector" Src="~/_controltemplates/15/MUISelector.ascx"%>
<%@Register TagPrefix="wssucw" TagName="Welcome" Src="~/_controltemplates/15/Welcome.ascx"%>
<%@Register TagPrefix="PublishingRibbon" TagName="PublishingRibbon" Src="~/_controltemplates/15/Ribbon.ascx"%>
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<!DOCTYPE html >
<SharePoint:SPHtmlTag dir="<%$Resources:wss,multipages_direction_dir_value%>" ID="SPHtmlTag" runat="server" >
    <head id="Head1" runat="server">
        <meta http-equiv="X-UA-Compatible" content="IE=10" />
        
        
        
        
        <meta name="GENERATOR" content="Microsoft SharePoint" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="Expires" content="0" />
        <SharePoint:RobotsMetaTag ID="RobotsMetaTag1" runat="server" />
        <SharePoint:PageTitle ID="PageTitle1" runat="server">
            <asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server">
            <SharePoint:ProjectProperty ID="ProjectProperty1" Property="Title" runat="server" />
            </asp:ContentPlaceHolder>
        </SharePoint:PageTitle>
        <SharePoint:StartScript ID="StartScript1" runat="server" />
        
        <SharePoint:CssLink ID="CssLink1" runat="server" Version="15">
            
        </SharePoint:CssLink>

        <SharePoint:ScriptLink ID="ScriptLink1" language="javascript" name="core.js" OnDemand="true" runat="server" Localizable="false" />
        <PublishingWebControls:AuthoringContainer runat="server" id="AuthoringContainer1" DisplayAudience="AuthorsOnly">
            <SharePoint:ScriptLink ID="ScriptLink2" language="javascript" name="menu.js" OnDemand="true" runat="server" Localizable="false" />
            <SharePoint:ScriptLink ID="ScriptLink3" language="javascript" name="callout.js" OnDemand="true" runat="server" Localizable="false" />
            <SharePoint:ScriptLink ID="ScriptLink4" language="javascript" name="sharing.js" OnDemand="true" runat="server" Localizable="false" />
            <SharePoint:ScriptLink ID="ScriptLink5" language="javascript" name="suitelinks.js" OnDemand="true" runat="server" Localizable="false" />
        </PublishingWebControls:AuthoringContainer>



        <SharePoint:CacheManifestLink ID="CacheManifestLink1" runat="server" />
        <SharePoint:PageRenderMode ID="PageRenderMode1" runat="server" RenderModeType="Standard" />
        <SharePoint:CustomJSUrl ID="CustomJSUrl1" runat="server" />
        <SharePoint:SoapDiscoveryLink ID="SoapDiscoveryLink1" runat="server">
            
        </SharePoint:SoapDiscoveryLink>
        <SharePoint:AjaxDelta id="DeltaPlaceHolderAdditionalPageHead" Container="false" runat="server">
            <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server">
            </asp:ContentPlaceHolder>
            <SharePoint:DelegateControl ID="DelegateControl1" runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true">
            </SharePoint:DelegateControl>
            <asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server">
            </asp:ContentPlaceHolder>
        </SharePoint:AjaxDelta>
        <SharePoint:CssRegistration ID="CssRegistration1" Name="Themable/corev15.css" runat="server" />
        <SharePoint:AjaxDelta id="DeltaSPWebPartManager" runat="server">
        <WebPartPages:SPWebPartManager ID="SPWebPartManager1" runat="server" />
        </SharePoint:AjaxDelta>
        
        
    </head>
    <body onhashchange="if (typeof(_spBodyOnHashChange) != 'undefined') _spBodyOnHashChange();"><SharePoint:SPClientIDGenerator ID="SPClientIDGenerator1" runat="server" ServerControlID="DeltaPlaceHolderMain;DeltaPlaceHolderPageTitleInTitleArea;DeltaPlaceHolderUtilityContent" /><SharePoint:ImageLink ID="ImageLink1" runat="server" /><SharePoint:SharePointForm ID="SharePointForm1" onsubmit="if (typeof(_spFormOnSubmitWrapper) != 'undefined') {return _spFormOnSubmitWrapper();} else {return true;}" runat="server"><asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />
        <div id="ms-designer-ribbon">
            
            <div id="TurnOnAccessibility" style="display:none" class="s4-notdlg noindex">
                <a id="linkTurnOnAcc" href="#" class="ms-accessible ms-acc-button" onclick="SetIsAccessibilityFeatureEnabled(true);UpdateAccessibilityUI();document.getElementById('linkTurnOffAcc').focus();return false;">
                    <SharePoint:EncodedLiteral ID="EncodedLiteral1" runat="server" text="&lt;%$Resources:wss,master_turnonaccessibility%&gt;" EncodeMethod="HtmlEncode">
                    </SharePoint:EncodedLiteral>
                </a>
            </div>
            <div id="TurnOffAccessibility" style="display:none" class="s4-notdlg noindex">
                <a id="linkTurnOffAcc" href="#" class="ms-accessible ms-acc-button" onclick="SetIsAccessibilityFeatureEnabled(false);UpdateAccessibilityUI();document.getElementById('linkTurnOnAcc').focus();return false;">
                    <SharePoint:EncodedLiteral ID="EncodedLiteral2" runat="server" text="&lt;%$Resources:wss,master_turnoffaccessibility%&gt;" EncodeMethod="HtmlEncode">
                    </SharePoint:EncodedLiteral>
                </a>
            </div>
            <PublishingRibbon:PublishingRibbon runat="server" />
            
        </div>
        <SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" AuthenticationRestrictions="AnonymousUsersOnly">
            <wssucw:Welcome runat="server" EnableViewState="false" />
        </SharePoint:SPSecurityTrimmedControl>
        <div id="s4-workspace">
            <div id="s4-bodyContainer">
                <div>
                   
                    <SharePoint:AjaxDelta id="DeltaPlaceHolderMain" IsMainContent="true" runat="server">
                        <asp:ContentPlaceHolder ID="PlaceHolderMain" runat="server">
                            <div class="DefaultContentBlock" style="border:medium black solid; background:yellow; color:black;">
                                This area will be filled in by content you create in your page layouts.
                            
                            </div>
                        </asp:ContentPlaceHolder>
                    </SharePoint:AjaxDelta>
                    
                </div>
            </div>
        </div>
    <SharePoint:AjaxDelta id="DeltaFormDigest" BlockElement="true" runat="server"><asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server"><SharePoint:formdigest ID="Formdigest1" runat="server" /></asp:ContentPlaceHolder></SharePoint:AjaxDelta></SharePoint:SharePointForm><SharePoint:AjaxDelta id="DeltaPlaceHolderUtilityContent" runat="server"><asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server" /></SharePoint:AjaxDelta><asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderGlobalNavigationSiteMap" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderGlobalNavigation" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderSearchArea" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderTopNavBar" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderLeftActions" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderSiteName" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderPageDescription" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderPageImage" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderTitleLeftBorder" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderMiniConsole" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderTitleRightMargin" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderTitleAreaSeparator" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderNavSpacer" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderLeftNavBarBorder" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderBodyLeftBorder" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" Visible="False" runat="server" /><asp:ContentPlaceHolder id="WSSDesignConsole" Visible="False" runat="server" /><asp:ContentPlaceHolder id="SPNavigation" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderQuickLaunchTop" Visible="False" runat="server" /><asp:ContentPlaceHolder id="PlaceHolderQuickLaunchBottom" Visible="False" runat="server" /></body>
</SharePoint:SPHtmlTag>

Sharepoint Power Shell Add Nodes to Quick Launch Navigation

This script will add all Site subSites to QuickLaunch Navigation, in the "Sites" node.


$siteUrl = "http://localhost"
$spWeb = Get-SPWeb $siteUrl -ErrorAction Stop
$quickLaunch = $spWeb.navigation.quicklaunch
$sitesGroup = $quickLaunch | where { $_.Title -eq "<strong>Sites</strong>" }

foreach($subSite in $spWeb.Webs)
{
 $node = New-Object -TypeName Microsoft.SharePoint.Navigation.SPNavigationNode -ArgumentList $subSite.Title , $subSite.Url
 $sitesGroup.Children.AddAsLast($node)
 $spWeb.Update()

}
$spWeb.Dispose()

Sharepoint Power Shell include lists in Quick Launch Navigation

The next PowerShell Script will be usefull to include all web lists in Quick Launch Navigation:

$site = Get-SPSite  http://localhost
#Walk through each web/site in the site collection
$site | Get-SPWeb | ForEach-Object {
foreach($list in $_.Lists)
        {
         $list.OnQuickLaunch = "true"
         #Update the list
         $list.Update()
        }
}

#Dispose of the site object
$site.Dispose()