<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-27209935</atom:id><lastBuildDate>Thu, 14 Mar 2019 11:10:13 +0000</lastBuildDate><category>SharePoint</category><category>Happenings</category><category>Info</category><category>SharePoint 2010</category><category>Technical</category><category>Cricket</category><category>Fotos</category><category>Humour</category><category>SharePoint Online</category><category>Gizmos</category><category>Error and Fix</category><category>Office 365</category><category>.Net</category><category>PowerShell</category><category>RIA</category><category>Code</category><category>Sharepoint 2013</category><category>Test</category><category>Tips and Tricks</category><category>Javascript</category><category>News</category><category>Pocket PC</category><category>SPFX</category><category>Calgary</category><category>Certifications</category><category>Export to excel</category><category>Flex</category><category>MOSS</category><category>Modern Team Site</category><category>Observations</category><category>Project Management</category><category>Videos</category><category>C plus plus</category><category>DIY</category><category>IPL</category><category>JQuery</category><category>Microsoft Flow</category><category>Microsoft Teams</category><category>Office 365 groups</category><category>PnP</category><category>Politics</category><category>REST</category><category>Raspberry Pi</category><category>Raspbian</category><category>Receipe</category><category>SPEx</category><category>AJAX</category><category>Aamir Khan</category><category>About Widget</category><category>Azure WebJobs</category><category>CSOM</category><category>Calculated Column</category><category>Claims Provider</category><category>Communication Sites</category><category>ContentSearch</category><category>ContentTypes</category><category>CustomAction</category><category>Designer</category><category>Discussion</category><category>Downloads</category><category>HardWare</category><category>How I fixed it</category><category>Jasper</category><category>Life</category><category>Linux</category><category>Localization</category><category>MUI</category><category>MVP</category><category>Microsoft Press Books</category><category>Migration</category><category>Mobile</category><category>NodeJS</category><category>Office</category><category>PC</category><category>Patterns and Practices</category><category>Photography</category><category>Publishing Pages</category><category>SPList</category><category>Satyamev Jayate</category><category>Search</category><category>Share</category><category>SharePoint Cloud</category><category>Stress Management</category><category>TV</category><category>Term Store Management</category><category>TypeScript</category><category>Url Shortener Lite</category><category>Visual Studio</category><category>webservice</category><title>Rajesh Sitaraman | @rjesh</title><description></description><link>http://www.rjesh.com/</link><managingEditor>noreply@blogger.com (Rajesh Sitaraman)</managingEditor><generator>Blogger</generator><openSearch:totalResults>269</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-7918270125084759996</guid><pubDate>Thu, 08 Mar 2018 05:38:00 +0000</pubDate><atom:updated>2018-03-08T09:42:09.106-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Modern Team Site</category><category domain="http://www.blogger.com/atom/ns#">PnP</category><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SPFX</category><title>Add SPFx WebPart to modern page using PnP PowerShell Cmdlets </title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-JnWQzqdjuXc/WqDFpmfJcQI/AAAAAAAAhPo/s8yj-_5u7rQ0vqb8bWHpawQ9_LtISKjNQCLcBGAs/s1600/newtech1.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img alt=&quot;Add Client Side WebPart using PnP PoSh&quot; border=&quot;0&quot; data-original-height=&quot;832&quot; data-original-width=&quot;1600&quot; height=&quot;332&quot; src=&quot;https://2.bp.blogspot.com/-JnWQzqdjuXc/WqDFpmfJcQI/AAAAAAAAhPo/s8yj-_5u7rQ0vqb8bWHpawQ9_LtISKjNQCLcBGAs/s640/newtech1.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;[Photo by &lt;a href=&quot;https://unsplash.com/@cathrynlavery&quot; target=&quot;_blank&quot;&gt;Cathryn Lavery&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com/&quot; target=&quot;_blank&quot;&gt;Unsplash&lt;/a&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;You have created a modern team site, and now you are thinking about adding a custom or default webpart then this post should be helpful. Think about something like adding a site contact while provisioning the modern site. Thanks to &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps&quot; target=&quot;_blank&quot;&gt;PnP PowerShell Cmdlets &lt;/a&gt;again, for making our life easy. I&#39;ll be using &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/add-pnpclientsidewebpart?view=sharepoint-ps&quot; target=&quot;_blank&quot;&gt;Add-PnPClientSideWebPart&lt;/a&gt; command.&lt;br /&gt;
&lt;br /&gt;
I&#39;m updating the home page by adding default people webpart, and configuring it to show in the section 1 and in column 2.&lt;br /&gt;
&lt;br /&gt;
This is how it looks, after you run the below script.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-3XSZEQSDNhY/WqDEfmK7MoI/AAAAAAAAhPg/QMNvqZds04U-Pu330EE0BV9UcoT6mQ-ZgCLcBGAs/s1600/Screen%2BShot%2B2018-03-07%2Bat%2B9.04.33%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1600&quot; height=&quot;360&quot; src=&quot;https://2.bp.blogspot.com/-3XSZEQSDNhY/WqDEfmK7MoI/AAAAAAAAhPg/QMNvqZds04U-Pu330EE0BV9UcoT6mQ-ZgCLcBGAs/s640/Screen%2BShot%2B2018-03-07%2Bat%2B9.04.33%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Added a people webpart, set the title as &quot;Site Contact&quot;, and set Alex as a default user. &lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/f4b768882a801c67b3292b62c31a9732.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
Two things to consider, one finding the properties of the WebPart and second converting it into hash table. Finding properties for your own custom webpart should be easy but I found it difficult for the default webparts. There is one nice trick, posted by &lt;a href=&quot;http://www.sharepointnutsandbolts.com/2017/03/provisioning-modern-pages-and-spfx-web-parts.html&quot; target=&quot;_blank&quot;&gt;Chris O&#39;Brien&lt;/a&gt;&amp;nbsp;using CSOM object in debugger mode. For me it has been while since I used Visual Studio and I use MacBook as my primary work horse. So I used site workbench and then some digging using the React developer tools chrome extension. I have one more trick in my sleeve, but it deserves a separate post.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-Ra2Zz_Py9sw/WqDLLFNOwCI/AAAAAAAAhP4/KUGGViGHdfg5NyVepIPt-xp4Pfrd254nQCLcBGAs/s1600/Screen%2BShot%2B2018-03-07%2Bat%2B9.32.46%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;find webpart properties&quot; border=&quot;0&quot; data-original-height=&quot;765&quot; data-original-width=&quot;1600&quot; height=&quot;306&quot; src=&quot;https://2.bp.blogspot.com/-Ra2Zz_Py9sw/WqDLLFNOwCI/AAAAAAAAhP4/KUGGViGHdfg5NyVepIPt-xp4Pfrd254nQCLcBGAs/s640/Screen%2BShot%2B2018-03-07%2Bat%2B9.32.46%2BPM.png&quot; title=&quot;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Peace!&lt;br /&gt;
</description><link>http://www.rjesh.com/2018/03/add-spfx-webpart-to-modern-page-using.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-JnWQzqdjuXc/WqDFpmfJcQI/AAAAAAAAhPo/s8yj-_5u7rQ0vqb8bWHpawQ9_LtISKjNQCLcBGAs/s72-c/newtech1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-2726695475585760932</guid><pubDate>Thu, 22 Feb 2018 23:04:00 +0000</pubDate><atom:updated>2018-02-22T21:50:40.632-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><category domain="http://www.blogger.com/atom/ns#">SPFX</category><title>SharePoint Online Modern List - Export Selected Items to Excel</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-_4bJEAH9kTY/Wo9R_j0MCBI/AAAAAAAAhDM/NT4jeDTMyMwxou5XO02JRQ-x5dfk4UnkQCLcBGAs/s1600/luca-bravo-217276-unsplash.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;778&quot; data-original-width=&quot;1600&quot; height=&quot;308&quot; src=&quot;https://1.bp.blogspot.com/-_4bJEAH9kTY/Wo9R_j0MCBI/AAAAAAAAhDM/NT4jeDTMyMwxou5XO02JRQ-x5dfk4UnkQCLcBGAs/s640/luca-bravo-217276-unsplash.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
[&lt;span style=&quot;background-color: whitesmoke; color: #111111; font-family: , , &amp;quot;san francisco&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;noto&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; white-space: nowrap;&quot;&gt;Photo by&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://unsplash.com/photos/XJXWbfSo2f0?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot; style=&quot;background-color: whitesmoke; box-sizing: border-box; color: #999999; font-family: -apple-system, system-ui, &amp;quot;San Francisco&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Ubuntu, Roboto, Noto, &amp;quot;Segoe UI&amp;quot;, Arial, sans-serif; font-size: 14px; transition: color 0.2s ease-in-out, opacity 0.2s ease-in-out; white-space: nowrap;&quot;&gt;Luca Bravo&lt;/a&gt;&lt;span style=&quot;background-color: whitesmoke; color: #111111; font-family: , , &amp;quot;san francisco&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;noto&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; white-space: nowrap;&quot;&gt;&amp;nbsp;on&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://unsplash.com/search/photos/technology?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot; style=&quot;background-color: whitesmoke; box-sizing: border-box; color: #999999; font-family: -apple-system, system-ui, &amp;quot;San Francisco&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Ubuntu, Roboto, Noto, &amp;quot;Segoe UI&amp;quot;, Arial, sans-serif; font-size: 14px; transition: color 0.2s ease-in-out, opacity 0.2s ease-in-out; white-space: nowrap;&quot;&gt;Unsplash&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
It has become a kind of tradition for me to write this component to export selected items to excel, whenever there is new model or approach of development in SharePoint. It all started with the SharePoint 2007 version. Here is the list of components for various versions and development models.&lt;br /&gt;
&lt;h4&gt;
&lt;b&gt;SharePoint 2007/2010/2013/2016&lt;/b&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://www.rjesh.com/2013/04/export-selected-items-to-excel-release.html&quot; target=&quot;_blank&quot;&gt;Full trust code component can be found here&lt;/a&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;b&gt;SharePoint 2013/2016/Online&amp;nbsp;&lt;/b&gt;-&amp;nbsp;&lt;a href=&quot;http://www.rjesh.com/2016/04/export-selected-items-to-excel-office.html&quot; target=&quot;_blank&quot;&gt;Provider hosted addin - NodeJS based for classic list.&lt;/a&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;b&gt;SharePoint Online&amp;nbsp;&lt;/b&gt;- &lt;a href=&quot;http://www.rjesh.com/2018/02/sharepoint-online-modern-list-export.html&quot; target=&quot;_blank&quot;&gt;SPFx based list view extension for modern list&lt;/a&gt;&lt;/h4&gt;
Lets look into this list view command set written in SharePoint Framework, it exports selected items to excel spreadsheet in xlsx format, with the columns from the current modern list view. This Listview extension utilizes SheetJS xlsx to create spreadsheet in xlsx format with the items selected from the view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-wD_QYYgHCi0/WoxhSl4gZRI/AAAAAAAAhCU/xX9okukMy2QTj_99_Rye89EAkDjkCiYRACLcBGAs/s1600/Screen%2BShot%2B2018-02-18%2Bat%2B7.57.56%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;610&quot; data-original-width=&quot;1600&quot; height=&quot;243&quot; src=&quot;https://3.bp.blogspot.com/-wD_QYYgHCi0/WoxhSl4gZRI/AAAAAAAAhCU/xX9okukMy2QTj_99_Rye89EAkDjkCiYRACLcBGAs/s640/Screen%2BShot%2B2018-02-18%2Bat%2B7.57.56%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
This extension illustrates the following concepts:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Export selected items to excel&lt;/li&gt;
&lt;li&gt;Works across platforms&lt;/li&gt;
&lt;li&gt;No need for additional plugins&lt;/li&gt;
&lt;li&gt;No browser dependency&lt;/li&gt;
&lt;li&gt;No IQY files&lt;/li&gt;
&lt;li&gt;No additional sign-in required to render rows in spreadsheet&lt;/li&gt;
&lt;li&gt;Exports only columns you see in the view&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;370&quot; src=&quot;http://www.youtube.com/embed/NInVJqAmbns?wmode=transparent&amp;amp;autohide=1&amp;amp;egm=0&amp;amp;hd=1&amp;amp;iv_load_policy=3&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;showinfo=0&amp;amp;showsearch=0&quot; width=&quot;660&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3&gt;
&lt;b&gt;Where is source code?&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Source code is available here, at my github repo -&amp;nbsp;&lt;span style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://github.com/rjesh-git/sp-dev-fx-extensions/tree/master/samples/js-command-selecteditems-export&quot;&gt;https://github.com/rjesh-git/sp-dev-fx-extensions/tree/master/samples/js-command-selecteditems-export&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
Also created a PR to add it &lt;a href=&quot;https://github.com/SharePoint/sp-dev-fx-extensions&quot; target=&quot;_blank&quot;&gt;PnP SharePoint/sp-dev-fx-extensions&lt;/a&gt;&amp;nbsp;hopefully it will be approved soon, and will update the above link accordingly&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3&gt;
&lt;b&gt;How to test in debug mode?&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Clone this &lt;a href=&quot;https://github.com/rjesh-git/sp-dev-fx-extensions/tree/master/samples/js-command-selecteditems-export&quot; target=&quot;_blank&quot;&gt;repository&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;In the command line navigate to js-command-selecteditems-export and run:&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;npm i&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;gulp serve --nobrowser&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;In a web browser, open any custom list&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Append the below debug url and press enter&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Choose Load Debug Scripts when prompted&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Add some sample list items (Be sure at least 1 item)&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Select the item, and export from toolbar&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Generates and downloads the xlsx file&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3&gt;
&lt;b&gt;How to deploy?&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
I have not included any deployment scripts with this project, it&#39;s a two step deployment process.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;ol&gt;
&lt;li&gt;Adding ListView Command Set - You can use &lt;a href=&quot;https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/building-simple-cmdset-with-dialog-api&quot; style=&quot;text-align: left;&quot; target=&quot;_blank&quot;&gt;feature framework&lt;/a&gt;&lt;span style=&quot;text-align: left;&quot;&gt;, PnP provisioning template, or Office 365 CLI for adding the list view command set to the site&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Deploying SPFX Package - follow the steps as given here -&amp;nbsp;&lt;a href=&quot;https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/serve-your-web-part-in-a-sharepoint-page&quot; style=&quot;text-align: left;&quot;&gt;https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/serve-your-web-part-in-a-sharepoint-page&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
Known Issue&lt;/h4&gt;
&lt;div&gt;
Exports previous view columns, even after the view is changed. This is due to the limitation on using the legacyContext viewID property. Thanks&amp;nbsp;&lt;a href=&quot;https://twitter.com/alexaterentiev&quot; target=&quot;_blank&quot;&gt;@alexaterentiev&lt;/a&gt; for pointing it out.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://www.rjesh.com/2018/02/sharepoint-online-modern-list-export.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-_4bJEAH9kTY/Wo9R_j0MCBI/AAAAAAAAhDM/NT4jeDTMyMwxou5XO02JRQ-x5dfk4UnkQCLcBGAs/s72-c/luca-bravo-217276-unsplash.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-4697533775375348875</guid><pubDate>Sun, 04 Feb 2018 05:22:00 +0000</pubDate><atom:updated>2018-02-03T22:18:45.213-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><category domain="http://www.blogger.com/atom/ns#">SPFX</category><category domain="http://www.blogger.com/atom/ns#">TypeScript</category><title>Access _spPageContextInfo details in SharePoint Framework</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-dX6c2aDTKQs/WnaloE5hUkI/AAAAAAAAg2o/fHJVCfxWPdk-htot3X5dfLQcll1xXPzDACLcBGAs/s1600/Screen%2BShot%2B2018-02-03%2Bat%2B10.16.46%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;510&quot; data-original-width=&quot;1190&quot; height=&quot;274&quot; src=&quot;https://3.bp.blogspot.com/-dX6c2aDTKQs/WnaloE5hUkI/AAAAAAAAg2o/fHJVCfxWPdk-htot3X5dfLQcll1xXPzDACLcBGAs/s640/Screen%2BShot%2B2018-02-03%2Bat%2B10.16.46%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
If you are into SharePoint development, then you should be familiar with your best friend _spPageContextInfo which gives you more valuable context based information. You can also access the same now from SharePoint Framework too. &lt;br /&gt;
&lt;br /&gt;
Shows how to get current user display name. &lt;script src=&quot;https://gist.github.com/rjesh-git/bdbd2af60795dce83fb87e0b7d4223e5.js&quot;&gt;&lt;/script&gt;Below is the complete list of object&#39;s properties which sample values, &lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/304e85e70e4cbadf9c9cda357ba2cfb2.js&quot;&gt;&lt;/script&gt;</description><link>http://www.rjesh.com/2018/02/access-sppagecontextinfo-details-in.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-dX6c2aDTKQs/WnaloE5hUkI/AAAAAAAAg2o/fHJVCfxWPdk-htot3X5dfLQcll1xXPzDACLcBGAs/s72-c/Screen%2BShot%2B2018-02-03%2Bat%2B10.16.46%2BPM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-4048956651276415307</guid><pubDate>Fri, 02 Feb 2018 22:04:00 +0000</pubDate><atom:updated>2018-02-22T15:12:07.684-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Communication Sites</category><category domain="http://www.blogger.com/atom/ns#">Office 365</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Add Site Collection Admin to all Communication Sites</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-hKnam1yl4nU/WnTdJOHWubI/AAAAAAAAgyI/rCmlB1pUx4IP5hpwRYC8r5zji1HC0shAwCLcBGAs/s1600/commsite.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;421&quot; data-original-width=&quot;898&quot; height=&quot;300&quot; src=&quot;https://1.bp.blogspot.com/-hKnam1yl4nU/WnTdJOHWubI/AAAAAAAAgyI/rCmlB1pUx4IP5hpwRYC8r5zji1HC0shAwCLcBGAs/s640/commsite.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
If you are already using SharePoint Online Communication sites, would have noticed that its not showing up in the SharePoint admin center to manage or its not listed in Office 365 admin center. So there is no option as of now to manage these sites through UI, until the most awaited new SharePoint admin center is rolled out.&lt;br /&gt;
&lt;br /&gt;
The below script will help you to add yourself as a site collection admin to all the communication sites in the tenant and avoid the annoying access denied error for SharePoint admin/Global admin. PowerShell script uses SharePoint online management shell, so make sure to install it before you use the script.&lt;br /&gt;
&lt;br /&gt;
How to use the script&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/f819fa7b07a1cd2d94376febbbf9c4f7.js&quot;&gt;&lt;/script&gt;
&lt;a href=&quot;https://gallery.technet.microsoft.com/Add-Collection-to-all-e92754bf/file/187783/1/Add-CommSitesSCA.ps1&quot; style=&quot;background-color: #f3f3f3;&quot; target=&quot;_blank&quot;&gt;Download the complete script from here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Peace!</description><link>http://www.rjesh.com/2018/02/add-site-collection-admin-to-all.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-hKnam1yl4nU/WnTdJOHWubI/AAAAAAAAgyI/rCmlB1pUx4IP5hpwRYC8r5zji1HC0shAwCLcBGAs/s72-c/commsite.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-1626324204194002096</guid><pubDate>Wed, 08 Nov 2017 21:01:00 +0000</pubDate><atom:updated>2017-11-08T13:02:23.156-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Patterns and Practices</category><category domain="http://www.blogger.com/atom/ns#">PnP</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Get-PnPUnifiedGroup - Get all Office 365 Groups in tenant</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-SSy12KPCtE4/WgNvx3OakII/AAAAAAAAfE0/lC0nJB1GVdYyl1HKYonjJ5Je2OSpErghgCLcBGAs/s1600/Capture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;265&quot; data-original-width=&quot;911&quot; height=&quot;185&quot; src=&quot;https://2.bp.blogspot.com/-SSy12KPCtE4/WgNvx3OakII/AAAAAAAAfE0/lC0nJB1GVdYyl1HKYonjJ5Je2OSpErghgCLcBGAs/s640/Capture.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
Run the below script and enter tenant admin credentials when prompted. Here is the complete list of scope and permissions -&lt;a href=&quot;https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#group-permissions&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#group-permissions&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/828a9fa451da892fea5d0ea67ec964a9.js&quot;&gt;&lt;/script&gt;</description><link>http://www.rjesh.com/2017/11/get-pnpunifiedgroup-get-all-office-365.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-SSy12KPCtE4/WgNvx3OakII/AAAAAAAAfE0/lC0nJB1GVdYyl1HKYonjJ5Je2OSpErghgCLcBGAs/s72-c/Capture.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-3173233486644809049</guid><pubDate>Sun, 29 Oct 2017 13:10:00 +0000</pubDate><atom:updated>2017-10-29T06:12:58.249-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SPFX</category><title>SharePoint Framework: error TS2339: Property &#39;items&#39; does not exist on type &#39;Readonly&lt;{}&gt;&#39;</title><description>&lt;a href=&quot;https://3.bp.blogspot.com/-VzKfgnBjEIk/WfXTMe-j7JI/AAAAAAAAe_Y/vpTQDjpNkgETm9wM4uE04LXI2-ixLVchQCLcBGAs/s1600/Screen%2BShot%2B2017-10-29%2Bat%2B6.09.12%2BAM.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;329&quot; data-original-width=&quot;927&quot; height=&quot;227&quot; src=&quot;https://3.bp.blogspot.com/-VzKfgnBjEIk/WfXTMe-j7JI/AAAAAAAAe_Y/vpTQDjpNkgETm9wM4uE04LXI2-ixLVchQCLcBGAs/s640/Screen%2BShot%2B2017-10-29%2Bat%2B6.09.12%2BAM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;div class=&quot;tr_bq&quot;&gt;
When you encounter the below error, while using state object in react based webpart created by yeoman generator.&lt;/div&gt;
&lt;blockquote&gt;
error TS2339: Property &#39;items&#39; does not exist on type &#39;Readonly&amp;lt;{}&amp;gt;&#39;&lt;/blockquote&gt;
&lt;br /&gt;
Follow these steps&lt;br /&gt;
1.Create an interface with the state objects as properties, as below&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/26b36ece735f43316f4f3b07b8f971a4.js&quot;&gt;&lt;/script&gt;
2.Use the interface in your component class as below&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/bb743fdfa694c18eed51c0d2926fe1c1.js&quot;&gt;&lt;/script&gt;
</description><link>http://www.rjesh.com/2017/10/sharepoint-framework-error-ts2339.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-VzKfgnBjEIk/WfXTMe-j7JI/AAAAAAAAe_Y/vpTQDjpNkgETm9wM4uE04LXI2-ixLVchQCLcBGAs/s72-c/Screen%2BShot%2B2017-10-29%2Bat%2B6.09.12%2BAM.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-8539041663811885254</guid><pubDate>Wed, 29 Mar 2017 05:25:00 +0000</pubDate><atom:updated>2017-03-28T22:25:01.284-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ContentTypes</category><category domain="http://www.blogger.com/atom/ns#">Modern Team Site</category><category domain="http://www.blogger.com/atom/ns#">Office 365 groups</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>5 Reasons why you need to still use classic library experience</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-VE9_U9NswTs/WNrYkvB-rRI/AAAAAAAAb2U/weZncDc0Ez4KoDUIphdhVdMOV3-1t81UgCLcB/s1600/3%25252F24%25252F2017.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;308&quot; src=&quot;https://1.bp.blogspot.com/-VE9_U9NswTs/WNrYkvB-rRI/AAAAAAAAb2U/weZncDc0Ez4KoDUIphdhVdMOV3-1t81UgCLcB/s640/3%25252F24%25252F2017.png&quot; width=&quot;810&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Here are my five points why I use the classic library experience even in a modern team site, or the site provisioned with office 365 groups.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;1. Required columns are not required&lt;/b&gt;&lt;/div&gt;
All the time we were evangelizing the use of the meta data and tagging the documents, in the modern experience the required fields are not mandatory. Check-in form is not shown to the user after the document is uploaded, &amp;nbsp;so its user&#39;s discretion to use information panel to enter the required fields. Also the document is not marked in any way to notify the user that its missing required column or content type. &amp;nbsp;In the classic library UI, the document would be checked out and could only be checked in once the user filled in the required metadata.&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-7J9J_mVWO9k/WNtAgs3Wp2I/AAAAAAAAb3A/iae9iF8YyXoJpVDwMjpK1owA49tr8IBXACLcB/s1600/Screen%2BShot%2B2017-03-28%2Bat%2B10.04.14%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; src=&quot;https://2.bp.blogspot.com/-7J9J_mVWO9k/WNtAgs3Wp2I/AAAAAAAAb3A/iae9iF8YyXoJpVDwMjpK1owA49tr8IBXACLcB/s640/Screen%2BShot%2B2017-03-28%2Bat%2B10.04.14%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;2. Content Types&lt;/b&gt;&lt;br /&gt;
Users are not prompted to select a content type when the document is uploaded, when the library is associated with two or more content types. Uploaded documents are assigned with default content type, again user has to explicitly open the information details panel and change the content type and fill-in the associated meta data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Retention Policy - In Place Record&lt;/b&gt;&lt;br /&gt;
Real confusion starts when you have retention policy defined with declare record stage. In the modern experience all the records are shown as checked out item, you won&#39;t know which one are draft checked out documents and which ones are marked as records.&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;b&gt;4. Document Sets&lt;/b&gt;&lt;br /&gt;
In the modern experience when you click on the document set, it takes you back to the classic experience old UI in a very disjointed experience.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://sharepoint.uservoice.com/forums/329214-sites-and-collaboration/suggestions/14209284-document-sets-in-modern-document-libraries&quot; target=&quot;_blank&quot;&gt;Cast your vote here in user voice to add modern experience to document sets&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. Custom Actions and Others&lt;/b&gt;&lt;br /&gt;
Metadata navigation and filtering – All libraries on sites that have this feature enabled are shown in classic view.&lt;br /&gt;
Columns –&amp;nbsp;Any library which uses the below column types are automatically return to classic view&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;External data columns&lt;/li&gt;
&lt;li&gt;Geolocation columns&lt;/li&gt;
&lt;li&gt;Publishing columns (Publishing HTML, Publishing Image, Publishing Hyperlink)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I&#39;m not getting deeper in to the ribbon buttons and various other features like Export to Excel, Popularity trends, and other custom actions.&lt;br /&gt;
&lt;br /&gt;
Above is not the complete list, I tried to list out some key features which are not part of the modern experience. As of now there is no workaround other than using classic view, until the feature has been rolled out by Microsoft. If you are using Office 365 group site or Modern team site then you might need to go the library settings and set the experience to classic, in case if you are planning to use any of the above features. Modern experience has many new and enhanced features, so we cannot totally rule out and go for classic view, its to be decided case to case based on the needs of the site.&lt;br /&gt;
&lt;br /&gt;
Peace!&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://www.rjesh.com/2017/03/5-reasons-why-you-need-to-still-use.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-VE9_U9NswTs/WNrYkvB-rRI/AAAAAAAAb2U/weZncDc0Ez4KoDUIphdhVdMOV3-1t81UgCLcB/s72-c/3%25252F24%25252F2017.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-7382006745558696821</guid><pubDate>Sat, 18 Mar 2017 04:36:00 +0000</pubDate><atom:updated>2017-03-28T15:08:44.532-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Modern Team Site</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Modern site page with out fat banner </title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/--_r7dqgt2hw/WMy2dSbgRRI/AAAAAAAAbcc/mP7puDvUVGkv1GeLfC1cZMq-mo23h1T4QCLcB/s1600/Screen%2BShot%2B2017-03-17%2Bat%2B9.23.41%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: left;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;308&quot; src=&quot;https://2.bp.blogspot.com/--_r7dqgt2hw/WMy2dSbgRRI/AAAAAAAAbcc/mP7puDvUVGkv1GeLfC1cZMq-mo23h1T4QCLcB/s640/Screen%2BShot%2B2017-03-17%2Bat%2B9.23.41%2BPM.png&quot; width=&quot;810&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I&#39;m vivid user of modern teams sites, modern pages and started strongly recommending our clients to use Office 365 groups and modern team sites. I was also looking for some options to reduce the header banner. I came across Mikael Svenson&#39;s nifty #SPFx&amp;nbsp;&lt;a href=&quot;https://github.com/wobba/spfx4fun/tree/master/react-pageheaderconfigurator&quot; target=&quot;_blank&quot;&gt;header configurator WebPart&lt;/a&gt;&amp;nbsp;to configure header size.&lt;br /&gt;
&lt;center&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-cards=&quot;hidden&quot; data-lang=&quot;en&quot;&gt;
&lt;div dir=&quot;ltr&quot; lang=&quot;en&quot;&gt;
Created a nifty &lt;a href=&quot;https://twitter.com/hashtag/SPFx?src=hash&quot;&gt;#SPFx&lt;/a&gt; web part for &lt;a href=&quot;https://twitter.com/SharePoint&quot;&gt;@SharePoint&lt;/a&gt; modern pages. &lt;a href=&quot;https://t.co/qVUbFLgw7I&quot;&gt;pic.twitter.com/qVUbFLgw7I&lt;/a&gt;&lt;/div&gt;
— Mikael Svenson (@mikaelsvenson) &lt;a href=&quot;https://twitter.com/mikaelsvenson/status/836566192928219136&quot;&gt;February 28, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;/center&gt;
This approach uses the SharePoint framework and performs CSS injection to override the header size but this not a recommended approach, for more details read &lt;a href=&quot;http://www.techmikael.com/2017/03/my-dont-do-it-modern-page-header.html&quot; target=&quot;_blank&quot;&gt;Mikael&#39;s dont&#39; do it approach&lt;/a&gt; 😃 . Is there any alternative? whenever you provision the modern team site, you would have noticed that the default home page does not have the fat banner. So the workaround is, instead of creating the new modern site page go to the site pages library and make a copy of home.aspx and rename it as desired. This page does not show the page title, so you need to edit the page and add text webpart with the title. Hopefully, we expect Microsoft will provide more options to configure/extend the page elements.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-349emXNc5n4/WMy2z1XoJcI/AAAAAAAAbcg/yQuyHQwzCG8uDxo1OxtX7Dug0L9PgXpKwCLcB/s1600/Screen%2BShot%2B2017-03-17%2Bat%2B9.25.21%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;188&quot; src=&quot;https://2.bp.blogspot.com/-349emXNc5n4/WMy2z1XoJcI/AAAAAAAAbcg/yQuyHQwzCG8uDxo1OxtX7Dug0L9PgXpKwCLcB/s640/Screen%2BShot%2B2017-03-17%2Bat%2B9.25.21%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Peace!&lt;br /&gt;
&lt;br /&gt;
&lt;script async=&quot;&quot; charset=&quot;utf-8&quot; src=&quot;//platform.twitter.com/widgets.js&quot;&gt;&lt;/script&gt;</description><link>http://www.rjesh.com/2017/03/modern-site-page-with-out-fat-banner.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/--_r7dqgt2hw/WMy2dSbgRRI/AAAAAAAAbcc/mP7puDvUVGkv1GeLfC1cZMq-mo23h1T4QCLcB/s72-c/Screen%2BShot%2B2017-03-17%2Bat%2B9.23.41%2BPM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-294137090387163018</guid><pubDate>Fri, 17 Mar 2017 00:34:00 +0000</pubDate><atom:updated>2017-03-16T17:34:05.261-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Microsoft Flow</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Microsoft Flow - pause till date</title><description>Let&#39;s create a simple flow for the common scenario we encounter, send a notification on a certain date or wait till some date and perform an action. &amp;nbsp;In SharePoint designer workflow, we use the &quot;Pause until&quot; step to perform this. Similarly in Microsoft flow we will use the action &quot;Delay Until&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-aNUnIF4wPw4/WMst5VJjGsI/AAAAAAAAbbc/3uTT9q_hD_ksnqs2EDdRj5FmixC1eNGWgCLcB/s1600/1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;154&quot; src=&quot;https://3.bp.blogspot.com/-aNUnIF4wPw4/WMst5VJjGsI/AAAAAAAAbbc/3uTT9q_hD_ksnqs2EDdRj5FmixC1eNGWgCLcB/s320/1.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Look at the below flow, we have action trigger whenever an item is created in the SharePoint list we will trigger the flow. Make sure to login with your Office 365 account when prompted. Provide the site url and then select the list for which you want to trigger the flow.&lt;br /&gt;
&lt;br /&gt;
Next, add the delay until action and then use the date field which will the date till we need to pause the flow. Why do we have the Z after the due date, it might be weird but flow won&#39;t treat it as date in UTC format if we don&#39;t add one. As a next step we have &quot;Send Email&quot; action to send email after the delay period. Configure the to, subject and body of email per your requirement.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-mwwqv8wSEjU/WMsuBf5UYPI/AAAAAAAAbbg/5T_bOji9PmccHgW7J8e-0d1gChAEwxDtwCLcB/s1600/2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://2.bp.blogspot.com/-mwwqv8wSEjU/WMsuBf5UYPI/AAAAAAAAbbg/5T_bOji9PmccHgW7J8e-0d1gChAEwxDtwCLcB/s640/2.PNG&quot; width=&quot;384&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Flow run status when the due date is in past, that means there is no need pause the flow you can see the step status it executed in zero secs.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-GJN7Qt7J4jI/WMsuH4vOMlI/AAAAAAAAbbk/Cdf9xbGZ3UcGmzf2dPVstSOH9GTCwntUwCEw/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://1.bp.blogspot.com/-GJN7Qt7J4jI/WMsuH4vOMlI/AAAAAAAAbbk/Cdf9xbGZ3UcGmzf2dPVstSOH9GTCwntUwCEw/s320/3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Flow run status when the due date is in future, the orange time lapse icon states that. Its waiting for the due date.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-hdJLJj36h7E/WMsuJsH4DBI/AAAAAAAAbbo/LqP3JAHSlbA7FHD9dOyOSQtYJ_zlNnMygCLcB/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;154&quot; src=&quot;https://2.bp.blogspot.com/-hdJLJj36h7E/WMsuJsH4DBI/AAAAAAAAbbo/LqP3JAHSlbA7FHD9dOyOSQtYJ_zlNnMygCLcB/s320/4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
An important note here, the dates are in UTC. If you want your flow to wait as per your time zone then make sure to use date and time field in your List or have some logic to add time to the delay until action, otherwise its going to wait until UTC 00:00 hrs. which might not be the exact wait time.&lt;br /&gt;
&lt;br /&gt;
Peace!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://www.rjesh.com/2017/03/microsoft-flow-pause-till-date.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-aNUnIF4wPw4/WMst5VJjGsI/AAAAAAAAbbc/3uTT9q_hD_ksnqs2EDdRj5FmixC1eNGWgCLcB/s72-c/1.PNG" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-3691725747460649445</guid><pubDate>Fri, 16 Dec 2016 20:11:00 +0000</pubDate><atom:updated>2016-12-16T12:26:40.159-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Microsoft Flow</category><category domain="http://www.blogger.com/atom/ns#">Microsoft Teams</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Post SharePoint updates to Microsoft Teams using Flow</title><description>In this post, we will look into how to post the SharePoint updates to Microsoft Teams using Flow. Currently Flow works only on the Office 365 platform. For the SharePoint on-premises, we need to use the alternate like SharePoint designer workflow, that&#39;s another topic for another day.&lt;br /&gt;
&lt;br /&gt;
For this post we will post the custom list updates to teams channel, that is whenever a new item is added we will post an update that the new item is added along with its title. Lets get started with the Microsoft Teams,&lt;br /&gt;
&lt;h3&gt;
Create Connector&lt;/h3&gt;
As a first step we need to create a connector for the teams channel. Go to your favorite channel in teams where you want to post the SharePoint updates&lt;br /&gt;
Click on the ellipsis (...) and then select connectors.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-MG8Yqt5ausI/WFRB_I5WY3I/AAAAAAAAZB8/9mLYp1Am-mYU_t6KVQsLFDDgKrtfw_ulgCLcB/s1600/5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;165&quot; src=&quot;https://1.bp.blogspot.com/-MG8Yqt5ausI/WFRB_I5WY3I/AAAAAAAAZB8/9mLYp1Am-mYU_t6KVQsLFDDgKrtfw_ulgCLcB/s400/5.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;Add an incoming WebHook connector, and provide the title for your connector. If you have image which you prefer to show in teams whenever a message is posted then upload that image here. I prefer to use the default image for this exercise.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://4.bp.blogspot.com/-imHYOJxBS-A/WFRNzmpVNXI/AAAAAAAAZCU/6uvaWyBb860I0bSPXQk2j3C9YQEqXu_hgCLcB/s1600/7.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;330&quot; src=&quot;https://4.bp.blogspot.com/-imHYOJxBS-A/WFRNzmpVNXI/AAAAAAAAZCU/6uvaWyBb860I0bSPXQk2j3C9YQEqXu_hgCLcB/s400/7.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Once you hit save, copy the url of the WebHook which we will use in our Flow to post the message.&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Microsoft Flow&lt;/h3&gt;
&lt;div&gt;
Lets get into creating the flow, go to&amp;nbsp;&lt;a href=&quot;https://flow.microsoft.com/&quot; target=&quot;_blank&quot;&gt;https://flow.microsoft.com/&amp;nbsp;&lt;/a&gt;and click on My Flows. Let&#39;s choose create from blank. Give a desired title for the flow, I&#39;m giving it &quot;SharePoint to Microsoft Teams&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next, go ahead and search for triggers. In this case search for SharePoint and select &quot;SharePoint - when item is added&quot;. You need to provide the SharePoint site url and then select the list from the drop-down for which we will be posting the messages.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Click on next step and select add an action, in this step we will be using &quot;HTTP&quot; action, search for http and select the action. You need to select Post as method, and in the Uri field put the url we copied from incoming Web-Hook connector. In the headers, set the content type as&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
{&amp;nbsp;&amp;nbsp; &quot;Content-Type&quot;: &quot;application/json&quot; }&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the body of the request, { &quot;title&quot;, &quot;New item added in SharePoint list&quot;, &quot;text&quot;, &quot;&amp;lt;&amp;lt;List item title&amp;gt;&amp;gt;&quot;} in the text field I have used the dynamic content from the list. You can change the body as desired.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://4.bp.blogspot.com/-opaGPiqmfC4/WFRNZB8aEJI/AAAAAAAAZCQ/3daTQ0zGz9s4Z-nk2Y91zoaLmTgXTgcjwCLcB/s1600/2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://4.bp.blogspot.com/-opaGPiqmfC4/WFRNZB8aEJI/AAAAAAAAZCQ/3daTQ0zGz9s4Z-nk2Y91zoaLmTgXTgcjwCLcB/s640/2.PNG&quot; width=&quot;396&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;Click on create and then done.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Create an Item in SharePoint list&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Lets go ahead and test our flow, go the SharePoint list which selected in the flow creation process and create an item. Give a minute and check the flow you should be able to see the action successfully executed.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-7YM-RiaK1xw/WFRB-zYBX5I/AAAAAAAAZB0/YUhenae0FoIMigWWt6n7q5ZzoMqK-T2cgCEw/s1600/4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;138&quot; src=&quot;https://2.bp.blogspot.com/-7YM-RiaK1xw/WFRB-zYBX5I/AAAAAAAAZB0/YUhenae0FoIMigWWt6n7q5ZzoMqK-T2cgCEw/s400/4.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Microsoft Teams Channel&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
If everything goes well, we should be able to see the post in the Microsoft team&#39;s channel where we configured the Web-Hook connector.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-Hpol9I3ZBkk/WFRB-48PslI/AAAAAAAAZBw/KXEfYD2psig_rPR4aAvprZFDCGzKWW0LgCEw/s1600/3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;126&quot; src=&quot;https://3.bp.blogspot.com/-Hpol9I3ZBkk/WFRB-48PslI/AAAAAAAAZBw/KXEfYD2psig_rPR4aAvprZFDCGzKWW0LgCEw/s640/3.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
That&#39;s it we have create a flow which posts updates to the channel whenever an item is created in SharePoint, we can change the action as desired for document add, update and other actions of SharePoint as well.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Peace!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://www.rjesh.com/2016/12/post-sharepoint-updates-to-microsoft.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-MG8Yqt5ausI/WFRB_I5WY3I/AAAAAAAAZB8/9mLYp1Am-mYU_t6KVQsLFDDgKrtfw_ulgCLcB/s72-c/5.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-6537968449407875722</guid><pubDate>Sat, 19 Nov 2016 01:36:00 +0000</pubDate><atom:updated>2017-03-25T20:43:21.286-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Microsoft Teams</category><category domain="http://www.blogger.com/atom/ns#">Office 365 groups</category><title>Microsoft Teams FAQ on associating existing Office 365 groups</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-pd8nVm1tdq0/WC-pep03e-I/AAAAAAAAYEU/qra7B1l-g4ohmBj2eXhe1EbI1eXhd4oGQCLcB/s1600/skype-teams-hero.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://3.bp.blogspot.com/-pd8nVm1tdq0/WC-pep03e-I/AAAAAAAAYEU/qra7B1l-g4ohmBj2eXhe1EbI1eXhd4oGQCLcB/s1600/skype-teams-hero.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Can I associate my existing Office 365 groups to teams?&lt;/b&gt;&lt;br /&gt;
Yes, if you are owner of that group. When creating team use &quot;add Microsoft Teams Functionality&quot; link and select your existing group.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-4vdxzrpRycs/WC-pW6LNcPI/AAAAAAAAYEQ/qE06_XEYCWMHQJTU4PuOTqhHzKhDsHB8wCLcB/s1600/Capture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;187&quot; src=&quot;https://1.bp.blogspot.com/-4vdxzrpRycs/WC-pW6LNcPI/AAAAAAAAYEQ/qE06_XEYCWMHQJTU4PuOTqhHzKhDsHB8wCLcB/s640/Capture.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Why I&#39;m not seeing my existing files from group under Files tab in teams?&lt;/b&gt;&lt;br /&gt;
In teams, the tabs are specific to the channels. Every team has a default channel &quot;General&quot; and there will be subsequent folder created inside the groups site documents library. If you want your files to show then move your files to that appropriate folder.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why my existing group OneNote contents are not showing in the Notes tab?&lt;/b&gt;&lt;br /&gt;
Similar to the files, each channel has got a dedicated section. Teams only shows the pages in that particular section for the channel. If you have existing pages created before associating with teams, then move those pages to corresponding section created for channels, then it should start showing in the Notes tab.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Where is my existing group planner in teams?&lt;/b&gt;&lt;br /&gt;
As of now there is no option to add the existing planner instance to the teams, new planner instance is created when you try add one to the channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://www.rjesh.com/2016/11/microsoft-teams-faq-on-associating.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-pd8nVm1tdq0/WC-pep03e-I/AAAAAAAAYEU/qra7B1l-g4ohmBj2eXhe1EbI1eXhd4oGQCLcB/s72-c/skype-teams-hero.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-6118630575000731431</guid><pubDate>Sat, 24 Sep 2016 12:59:00 +0000</pubDate><atom:updated>2016-09-24T06:04:44.445-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Calculated Column</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Get Url parameter value in SharePoint calculated column</title><description>In this post, we will try to retrieve the query string parameter value from the url using the SharePoint calculated column. In the below formula I&#39;m trying to read the value of the query string &quot;DefaultView&quot;. So when using the formula, I have used &quot;11&quot; as index which is the length of &quot;DefaultView&quot;, that needs to changed as per your parameter&#39;s length.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/6f53a5acdd28d3e39da2f524d9d1c6b5.js&quot;&gt;&lt;/script&gt;</description><link>http://www.rjesh.com/2016/09/get-url-parameter-value-in-sharepoint.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-436125646952602666</guid><pubDate>Wed, 11 May 2016 23:38:00 +0000</pubDate><atom:updated>2016-05-11T16:38:53.559-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Designer</category><category domain="http://www.blogger.com/atom/ns#">Error and Fix</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Server error: Server is more recent than the version of SharePoint Designer</title><description>&lt;h3&gt;
Error&lt;/h3&gt;
When you try to open the SharePoint online site using the SharePoint Designer 2013, sometimes you might encounter the below error.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Server error: The version of Microsoft SharePoint Foundation running on the server is more recent than the version of SharePoint Designer that you are using. You need a more recent version of SharePoint Designer

&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-vkhkegO0DSE/VzPAszqbqkI/AAAAAAAAVM4/clf2gyF3_vMX0tjY14nSoCcgw61bXfVgQCLcB/s1600/2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;84&quot; src=&quot;https://2.bp.blogspot.com/-vkhkegO0DSE/VzPAszqbqkI/AAAAAAAAVM4/clf2gyF3_vMX0tjY14nSoCcgw61bXfVgQCLcB/s640/2.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both; text-align: left;&quot;&gt;
Fix&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
In order to fix it go to ,&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
File &amp;gt;&amp;gt; Account &amp;gt;&amp;gt; User Information &amp;gt;&amp;gt; Sign out and login again and restart the SharePoint designer.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-4l1o9xXYaI8/VzPBauA_W8I/AAAAAAAAVNA/o48d1uYsPKQZSYHDITBGBNR0_5R0oM5FACLcB/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;361&quot; src=&quot;https://2.bp.blogspot.com/-4l1o9xXYaI8/VzPBauA_W8I/AAAAAAAAVNA/o48d1uYsPKQZSYHDITBGBNR0_5R0oM5FACLcB/s400/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://www.rjesh.com/2016/05/server-error-server-is-more-recent-than.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-vkhkegO0DSE/VzPAszqbqkI/AAAAAAAAVM4/clf2gyF3_vMX0tjY14nSoCcgw61bXfVgQCLcB/s72-c/2.PNG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-3128189222514133959</guid><pubDate>Sat, 30 Apr 2016 01:38:00 +0000</pubDate><atom:updated>2016-05-06T21:11:57.472-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ContentSearch</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Dynamically Changing Content Search/Search Results WebPart&#39;s Query template</title><description>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-55G-rqBEO74/VwsAyR905mI/AAAAAAAAU-4/_SXN-lFvzZ8AK10Eyz1U6EpIVH_M-ju5Q/s1600/Screen%2BShot%2B2016-04-10%2Bat%2B6.31.22%2BPM1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://3.bp.blogspot.com/-55G-rqBEO74/VwsAyR905mI/AAAAAAAAU-4/_SXN-lFvzZ8AK10Eyz1U6EpIVH_M-ju5Q/s1600/Screen%2BShot%2B2016-04-10%2Bat%2B6.31.22%2BPM1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is going to be a rather a small post, on how to change the query template for the content search webpart and Search results dynamically through javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://j.gifs.com/pYV1yN.gif&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://j.gifs.com/pYV1yN.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/e8d660dc2007dc4b781e848df6e2478e.js&quot;&gt;&lt;/script&gt;
The above code is more self explanatory, this approach works for both Content Search and Search Results WebPart. You can use like below to identify whether its a Content Search or Search Results WebPart&lt;pre&gt;if (this.displays[0] instanceof Srch.ContentBySearch)&lt;br /&gt;if (this.displays[0] instanceof Srch.Result) &lt;/pre&gt;
&lt;blockquote&gt;&lt;a href=&quot;https://gallery.technet.microsoft.com/Dynamically-Changing-02d8cb56&quot;&gt;Download the complete code snippet!&lt;/a&gt;&lt;/blockquote&gt;
You can download the complete code from above link, which I have used here. Add it to the Content Editor/Script Editor WebPart.

Happy coding! Peace!!
       </description><link>http://www.rjesh.com/2016/04/dynamically-changing-content.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-55G-rqBEO74/VwsAyR905mI/AAAAAAAAU-4/_SXN-lFvzZ8AK10Eyz1U6EpIVH_M-ju5Q/s72-c/Screen%2BShot%2B2016-04-10%2Bat%2B6.31.22%2BPM1.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-6254266477402594004</guid><pubDate>Fri, 22 Apr 2016 04:26:00 +0000</pubDate><atom:updated>2016-04-21T21:41:40.998-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint 2013</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Create Image Renditions using CSOM</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-_2jx-Q2Wurw/VxmedmmxzOI/AAAAAAAAVDM/RLzxgJrCVZUo0NtZzhGqlz6yoQgTDq5-ACLcB/s1600/Screen%2BShot%2B2016-04-21%2Bat%2B8.38.52%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://3.bp.blogspot.com/-_2jx-Q2Wurw/VxmedmmxzOI/AAAAAAAAVDM/RLzxgJrCVZUo0NtZzhGqlz6yoQgTDq5-ACLcB/s1600/Screen%2BShot%2B2016-04-21%2Bat%2B8.38.52%2BPM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;DOWNLOAD&lt;/b&gt;: &lt;a href=&quot;https://gallery.technet.microsoft.com/office/SharePoint-Add-Image-109d8f27/file/151179/1/Add-Rendition.ps1&quot;&gt;Complete script can be downloaded from here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
We frequently use Image renditions, in our publishing sites. In this post let see how to create one using the client side object model. We will be using SetRenditions API which takes RenditionCollection and client context. The below script shows how to invoke the API.&lt;br /&gt;&lt;script src=&quot;https://gist.github.com/rjesh-git/ff30c6700fb77ab31c2625919684b715.js&quot;&gt;&lt;/script&gt;
&lt;h4&gt;How to use the cmdlet&lt;/h4&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;.\Add-Rendition.ps1 -Url https://somesite.sharepoint.com/sites/rajesh -Title MyNewRendition -Width 240 -Height 280&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;DOWNLOAD&lt;/b&gt;: &lt;a href=&quot;https://gallery.technet.microsoft.com/office/SharePoint-Add-Image-109d8f27/file/151179/1/Add-Rendition.ps1&quot;&gt;Complete script can be downloaded from here&lt;/a&gt;</description><link>http://www.rjesh.com/2016/04/create-image-renditions-through-csom.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-_2jx-Q2Wurw/VxmedmmxzOI/AAAAAAAAVDM/RLzxgJrCVZUo0NtZzhGqlz6yoQgTDq5-ACLcB/s72-c/Screen%2BShot%2B2016-04-21%2Bat%2B8.38.52%2BPM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-4684146873165640118</guid><pubDate>Sun, 17 Apr 2016 00:59:00 +0000</pubDate><atom:updated>2016-04-16T18:26:37.413-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure WebJobs</category><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Azure WebJobs for Office 365 SharePoint Online</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-Wyr325-c4S4/VxLhKI-yaPI/AAAAAAAAVBg/zc8DPuYPs9sEo4WFPqYw778_rhE91gMaACLcB/s1600/screen1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://2.bp.blogspot.com/-Wyr325-c4S4/VxLhKI-yaPI/AAAAAAAAVBg/zc8DPuYPs9sEo4WFPqYw778_rhE91gMaACLcB/s1600/screen1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As part of the on-premises customizations, we develop SharePoint timer jobs for any operations which needs to be done on a regular interval. The Timer jobs are packaged as part of our full trust solutions. In Office 365 SharePoint Online full trust code are not supported, and there is no option for us to deploy our full trust custom solutions. So there is a need to look for alternate for these timer jobs which makes use of CSOM/REST client site APIs for accessing the SharePoint resources.&lt;br /&gt;
As of now we have two options,
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Azure WebJobs&amp;nbsp;&lt;/li&gt;
&lt;li&gt;On-Premises Windows scheduled tasks&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&amp;nbsp;In this post, we will look into the Azure WebJobs option for performing any Office 365 SharePoint Online operations. For this particular case I&#39;ll be using PowerShell CSOM.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Use case:&lt;/b&gt; Add a new item to SharePoint custom list in Office 365 site on a regular interval.&amp;nbsp;
&lt;/blockquote&gt;
&lt;h3&gt;
Code&lt;/h3&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/ce063aeac57181fe00235a66b88505f7.js&quot;&gt;&lt;/script&gt;It&#39;s a very simple PowerShell CSOM used to create a list item, and its writes the current time as value to the title field. For simplicity I&#39;ll be creating user context based on the passed username and password. You can also create the addin-only (App-only) context by using the client ID and client secret. As said earlier, trying to keep it simple here.&lt;br /&gt;
Key things to note here, we are using the SharePoint Client SDK in our script. We need to make sure that to reference it from the local folder and also while packaging we need to package the PowerShell script and referenced dlls in the same folder. One more thing, we will be using &quot;Write-Output&quot; cmdlet in order to write anything back, &quot;Write-Host&quot; won&#39;t work here.&amp;nbsp;&lt;br /&gt;&lt;script src=&quot;https://gist.github.com/rjesh-git/0acc173169eb9d246de8f073bc587fba.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;https://gallery.technet.microsoft.com/Azure-WebJobs-Timer-Jobs-89eaa642/file/150976/1/AllListItem-Webjob.zip&quot; target=&quot;_blank&quot;&gt;Download: Complete zip file can be downloaded from here&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;br /&gt;Create Azure Web App&lt;/h3&gt;
&lt;center&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;380&quot; src=&quot;http://www.youtube.com/embed/RKN9-rfglGU?wmode=transparent&amp;amp;autohide=1&amp;amp;egm=0&amp;amp;hd=1&amp;amp;iv_load_policy=3&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;showinfo=0&amp;amp;showsearch=0&quot; width=&quot;660&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-waPKzAPIotk/VxLUrPGNpYI/AAAAAAAAVAc/gIwsVHzNIEoeXY_B2oBZrvtaw8CuAVkhwCLcB/s1600/Screen%2BShot%2B2016-04-16%2Bat%2B7.24.15%2BAM.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://3.bp.blogspot.com/-waPKzAPIotk/VxLUrPGNpYI/AAAAAAAAVAc/gIwsVHzNIEoeXY_B2oBZrvtaw8CuAVkhwCLcB/s320/Screen%2BShot%2B2016-04-16%2Bat%2B7.24.15%2BAM.png&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Follow the steps detailed in the video, to the create the Azure Web App, and follow the below steps for create WebJob. Open your WebApp from the Azure dashboard and in the settings, select the WebJobs. In the WebJobs blade, click on the add icon to create a new one. Give a name to your WebJob and in the &quot;How to Run&quot; drop down, select &quot;continuos&quot; for any scheduled job and &quot;on demand&quot; for running the job on demand. You can determine whether you want to run multiple instance in your app service or single instance. Now its the time to upload our package. Zip the folder where we have kept our PowerShell script and referenced dlls. Upload that zip file in the file upload section of the WebJob and hit create. Voila we have successfully create our WebJob. Now its the time to test the job, right click on our job from the list of WebJobs for the WebApp and click Run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://2.bp.blogspot.com/-yl9bcgxfh60/VxLXE5w50DI/AAAAAAAAVAs/lVH9RvO-EU0_lVSVIRVBYSb6aAkGZF61ACLcB/s1600/Screen%2BShot%2B2016-04-16%2Bat%2B5.19.20%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://2.bp.blogspot.com/-yl9bcgxfh60/VxLXE5w50DI/AAAAAAAAVAs/lVH9RvO-EU0_lVSVIRVBYSb6aAkGZF61ACLcB/s400/Screen%2BShot%2B2016-04-16%2Bat%2B5.19.20%2BPM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Once you hit the run, you should be able to see the status of the job status to &quot;Running&quot; and changes to &quot;Completed&quot;. We can access the logs by clicking on the logs url.&lt;br /&gt;
&lt;br /&gt;
In the WebJobs logs, you&#39;ll be able to see the system status like &quot;Initializing&quot;, &quot;Running&quot; and finally to &quot;Success&quot;.&lt;br /&gt;
Along with it there is also the information which wrote about the status of the script using the &quot;Write-Output&quot; cmdlet. By this way we can log any script exceptions also. In this script, shows the information about connecting the SharePoint Web and successfully creating an item inside the list.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-xwJqBYZTKW0/VxLXqgM7EgI/AAAAAAAAVA4/VjixK9-dRVk8KWuDJuIUT05pBuIrC97nwCKgB/s1600/Screen%2BShot%2B2016-04-16%2Bat%2B5.20.42%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;408&quot; src=&quot;https://1.bp.blogspot.com/-xwJqBYZTKW0/VxLXqgM7EgI/AAAAAAAAVA4/VjixK9-dRVk8KWuDJuIUT05pBuIrC97nwCKgB/s640/Screen%2BShot%2B2016-04-16%2Bat%2B5.20.42%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Lets log in to the SharePoint site, mentioned in the script You can see the list item, successfully created in the list with the timestamp as its title.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-_yh_2WsGkMA/VxLaCoFPTXI/AAAAAAAAVBA/bjRFRWb7x84PPS_fAiekf2MavwZJIpMxgCLcB/s1600/Screen%2BShot%2B2016-04-16%2Bat%2B5.33.48%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://3.bp.blogspot.com/-_yh_2WsGkMA/VxLaCoFPTXI/AAAAAAAAVBA/bjRFRWb7x84PPS_fAiekf2MavwZJIpMxgCLcB/s640/Screen%2BShot%2B2016-04-16%2Bat%2B5.33.48%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
While creating the WebJob we manually uploaded the package, let&#39;s also know how we do some continuos build and deployment. For the Azure WebApp, we have several deployment options like publishing using the Visual Studio publishing profile, which you can directly download from the WebApp settings and use. We also have the FTP portal access to connect by using the deployment credentials. I&#39;m a big fan of Git, so I&#39;m going to use Git as the deployment source.&lt;br /&gt;
&lt;br /&gt;
Lets go back to the WebApp in the Azure portal and in the settings blade under the &quot;Publishing&quot; section. Select the deployment source and in the deployment source options select the local git repository which provisions the repository for this WebApp. Go to the deployment credentials section and create a username and password. Once the deployment source is created, you should have your git repository url, clone the repo and start pushing the changes using the credentials we created earlier. Once the repo is cloned locally, the folder structure should like below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://1.bp.blogspot.com/-8RyYLIXNpY4/VxLe7gywboI/AAAAAAAAVBU/RcbJT9X0wPAwM_oo2pVrhlN9aNgQJC_xgCLcB/s1600/Screen%2BShot%2B2016-04-16%2Bat%2B5.54.45%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;144&quot; src=&quot;https://1.bp.blogspot.com/-8RyYLIXNpY4/VxLe7gywboI/AAAAAAAAVBU/RcbJT9X0wPAwM_oo2pVrhlN9aNgQJC_xgCLcB/s320/Screen%2BShot%2B2016-04-16%2Bat%2B5.54.45%2BPM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
That&#39;s how we create WebJob in Azure WebApp and configure the job to connect to SharePoint and perform operations over the SharePoint resources using CSOM or REST.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Happy coding ! Peace !!&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://www.rjesh.com/2016/04/azure-webjobs-for-office-365-sharepoint.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-Wyr325-c4S4/VxLhKI-yaPI/AAAAAAAAVBg/zc8DPuYPs9sEo4WFPqYw778_rhE91gMaACLcB/s72-c/screen1.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-4266312650663807789</guid><pubDate>Fri, 08 Apr 2016 01:18:00 +0000</pubDate><atom:updated>2017-03-27T21:03:27.436-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CustomAction</category><category domain="http://www.blogger.com/atom/ns#">NodeJS</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint Online</category><title>Export selected items to excel - Office 365/NodeJS version</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://3.bp.blogspot.com/-TRQUa9LWG6E/VwfG_8Ne1sI/AAAAAAAAU9E/j7jPNyuId3cHjmEzQg1QWr1UAayb1-Xag/s1600/Screen%2BShot%2B2016-04-08%2Bat%2B7.57.01%2BAM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;100%&quot; src=&quot;https://3.bp.blogspot.com/-TRQUa9LWG6E/VwfG_8Ne1sI/AAAAAAAAU9E/j7jPNyuId3cHjmEzQg1QWr1UAayb1-Xag/s640/Screen%2BShot%2B2016-04-08%2Bat%2B7.57.01%2BAM.png&quot; width=&quot;100%&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Sometime back, I wrote a full trust code to export selected items to excel. It was written in the form of custom action in ribbon and a layouts application page which handles the actual excel file creation and providing it as response. The layouts application page actually uses server side APIs in order to read the list item values. It works perfectly fine for the SharePoint 2010 and 2013 on-premises instances, now it has become kind of old-school method. Office 365 or SharePoint/Office 365-D model does not support any full trust code customization, so I decided to re-write this in a addin-model utilizing the client side REST APIs. When I started thinking about the addin-model, I found two available options for replacing the layouts application page. First, replace with a traditional way of using ASPX page residing in a provider hosted addin, the only difference between the earlier version and this model will be the server side APIs will be replaced by the REST APIs. I know its quiet achievable, and no big deal. Second option is to use NodeJS instead of IIS server, and use the JavaScript with the REST APIs. So this post is about the second option.
&lt;br /&gt;
&lt;h3&gt;
Download&lt;/h3&gt;
&lt;a href=&quot;https://gallery.technet.microsoft.com/office/Export-selected-items-to-07b0b62c/file/150776/1/ExportExcelAddin-master.zip&quot;&gt;ExportExcelAddin.zip&lt;/a&gt; 
&lt;br /&gt;
If you are Git person, directly fork or contribute&lt;a href=&quot;https://github.com/rjesh-git/ExportExcelAddin&quot;&gt; from here.&lt;/a&gt; 
&lt;br /&gt;
&lt;br /&gt;
Lets directly get into action and see how it works,&lt;br /&gt;
&lt;center&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;380&quot; src=&quot;http://www.youtube.com/embed/xZ2yiucJtwQ?wmode=transparent&amp;amp;autohide=1&amp;amp;egm=0&amp;amp;hd=1&amp;amp;iv_load_policy=3&amp;amp;modestbranding=1&amp;amp;rel=0&amp;amp;showinfo=0&amp;amp;showsearch=0&quot; width=&quot;660&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;
&lt;h3&gt;
Configurations&lt;/h3&gt;
&lt;h4&gt;
Custom action&amp;nbsp;&lt;/h4&gt;
Use the below PowerShell CSOM script to add the custom action to your list, watch out for the hard coded url used in the form submit, you need replace it with your address of your nodeJS server.
&amp;nbsp; 
&lt;script src=&quot;https://gist.github.com/rjesh-git/4bd8ea9f94bb8dca2811.js&quot;&gt;&lt;/script&gt;
&lt;br /&gt;
&lt;h4&gt;
Addin Registration&lt;/h4&gt;
In Azure portal, register your application and give read access on SharePoint sites. Note down the client ID and client secret. For more details on registering the application in Azure AD, refer this &lt;a href=&quot;https://msdn.microsoft.com/en-us/office/office365/howto/add-common-consent-manually&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt;.
&lt;br /&gt;
&lt;h4&gt;
 NodeJS configurations &lt;/h4&gt;
Update the below details in the parameters.json
&lt;script src=&quot;https://gist.github.com/rjesh-git/e8a509837eeaa30c31c5c899447f1f19.js&quot;&gt;&lt;/script&gt;
&lt;br /&gt;
&lt;h4&gt;
Install node dependencies&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&quot;adal-node&quot;: &quot;&amp;gt;= 0.1.17&quot;&lt;/li&gt;
&lt;li&gt;&quot;express&quot;: &quot;4.13&quot;&lt;/li&gt;
&lt;li&gt;&quot;connect-logger&quot;: &quot;0.x&quot;&lt;/li&gt;
&lt;li&gt;&quot;cookie-parser&quot;: &quot;1.4&quot;&lt;/li&gt;
&lt;li&gt;&quot;cookie-session&quot;: &quot;2.x&quot;&lt;/li&gt;
&lt;li&gt;&quot;msexcel-builder&quot;: &quot;0.0.2&quot;&lt;/li&gt;
&lt;li&gt;&quot;unirest&quot;: &quot;2.14.x&quot;&lt;/li&gt;
&lt;li&gt;&quot;body-parser&quot;: &quot;2.14.x&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
Execution&lt;/h4&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Run the main.js in node to start the server.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Your node instance is ready and starts listening the port configured.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Go to your SharePoint Online site where the custom action has been added, and select few items in the list and select &quot;export to excel&#39; from the ribbon&lt;/li&gt;
&lt;li&gt;An excel file will be downloaded with the file name same as your list name with the selected items as rows&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
Peace! Happy Coding.</description><link>http://www.rjesh.com/2016/04/export-selected-items-to-excel-office.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-TRQUa9LWG6E/VwfG_8Ne1sI/AAAAAAAAU9E/j7jPNyuId3cHjmEzQg1QWr1UAayb1-Xag/s72-c/Screen%2BShot%2B2016-04-08%2Bat%2B7.57.01%2BAM.png" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-2418305478879522070</guid><pubDate>Sat, 31 Oct 2015 15:51:00 +0000</pubDate><atom:updated>2015-10-31T09:02:56.447-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Office</category><category domain="http://www.blogger.com/atom/ns#">Office 365</category><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><title>OfficeDev/PnP PowerShell CmdLets - Add custom user action</title><description>In my previous &lt;a href=&quot;http://www.rjesh.com/2015/10/office-365-add-custom-user-action-with.html&quot; target=&quot;_blank&quot;&gt;post&lt;/a&gt;, showed how to add custom user action through PowerShell CSOM. I have re-written the same script in a new school method using the &lt;a href=&quot;https://github.com/OfficeDev/PnP-PowerShell&quot; target=&quot;_blank&quot;&gt;OfficeDev/PnP-PowerShell&lt;/a&gt; cmdlets. As a pre-requisite make sure to install the cmdlets through the binaries available in the &lt;a href=&quot;https://github.com/OfficeDev/PnP-PowerShell/tree/master/Binaries&quot; target=&quot;_blank&quot;&gt;GitHub repository&lt;/a&gt;. For On-Premises install v15 version and v16 version for Office 365. Post installing, use the below snippet in PowerShell window.&lt;br /&gt;&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/72de83ac92273749f782.js&quot;&gt;&lt;/script&gt;
Happy coding! Peace!!</description><link>http://www.rjesh.com/2015/10/add-custom-user-action-with-office-365.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-2800470612937016839</guid><pubDate>Wed, 28 Oct 2015 22:36:00 +0000</pubDate><atom:updated>2015-10-31T09:02:25.435-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Office 365</category><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><title>PowerShell CSOM - Add custom user action</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-GoQzpyMuavc/VjFMx_PJNsI/AAAAAAAAR6s/WXt7byxrxV8/s1600/ps.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-GoQzpyMuavc/VjFMx_PJNsI/AAAAAAAAR6s/WXt7byxrxV8/s1600/ps.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
There are multiple approaches to add custom user action to your Office 365 SharePoint site In this post I&#39;m using the Powershell CSOM, and will be creating a simple custom action to show in ribbon control for custom list template. The ribbon control custom action on click will show an alert with the number of items in the custom list. First, we&#39;ll start with adding DLL references for the SharePoint Client, which will help with the remote API calls.&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/ed1a3e2d44ffe725028a.js&quot;&gt;&lt;/script&gt;
Next, lets get started with creating the client context and getting the existing user custom actions. Also check if the custom action already exists, and delete if already available.
&lt;script src=&quot;https://gist.github.com/rjesh-git/de802950627fea7cf9bd.js&quot;&gt;&lt;/script&gt;
Lets initialize the properties for the new custom action, make sure that in CommandUIExtension the quotesare escaped properly. Also exercise care with the line breaks, when you are adding a complex JavaScript inside that block. If not it may prove costly later. 
&lt;script src=&quot;https://gist.github.com/rjesh-git/48584f534db1659cfde9.js&quot;&gt;&lt;/script&gt;
Lets put altogether, when executed you&#39;ll be prompted for web site url, username and password. Provide the web site where the custom action as to be added. To validate go to any custom list and in the ribbon click &quot;Get Items Count&quot; button, you&#39;ll prompted with number of items in that list.
&lt;script src=&quot;https://gist.github.com/rjesh-git/4f48698371c55655cc10.js&quot;&gt;&lt;/script&gt;

Happy coding! Peace!!
</description><link>http://www.rjesh.com/2015/10/office-365-add-custom-user-action-with.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-GoQzpyMuavc/VjFMx_PJNsI/AAAAAAAAR6s/WXt7byxrxV8/s72-c/ps.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-1927193227819066539</guid><pubDate>Fri, 16 Oct 2015 05:08:00 +0000</pubDate><atom:updated>2015-10-15T22:29:10.460-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Localization</category><category domain="http://www.blogger.com/atom/ns#">MUI</category><category domain="http://www.blogger.com/atom/ns#">Office 365</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Localizing in SharePoint Add-in with JavaScript</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-hBFv2uQfZFY/ViCF08oSN-I/AAAAAAAARi0/jaaj9zNhpX0/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-hBFv2uQfZFY/ViCF08oSN-I/AAAAAAAARi0/jaaj9zNhpX0/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Let&#39;s consider a scenario of an Add-in development, it can be either SharePoint hosted or provider hosted. If we are looking for a localization, there are couple of approaches. If you are writing more ASP.net based add-in driven by code behind then resource files comes handy. This is more an old-school type, we have been doing this over decades and I not going to detail anything on this. More details can be found here - &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/office/fp179919.aspx&quot;&gt;https://msdn.microsoft.com/en-us/library/office/fp179919.aspx&lt;/a&gt;. Approaches detailed on this article also includes JavaScript based one, I have tweaked this approach in a more reusable format. OK let&#39;s get into the action.&lt;br /&gt;
&lt;h4&gt;
How to use it?&lt;/h4&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/9d4d7863687dc00a9301.js&quot;&gt;&lt;/script&gt;
&lt;ul&gt;
&lt;li&gt;Add localizer JS to your web page&lt;/li&gt;
&lt;li&gt;Create JS resource files in the file name format resource.&amp;lt;&amp;lt;ll-CC&amp;gt;&amp;gt;.js, sample resource file has been shared below&lt;/li&gt;
&lt;li&gt;Add the attribute localeval=&quot;&amp;lt;&amp;lt;ResourceString&amp;gt;&amp;gt;&quot; to the DOM elements, like &amp;lt;h1 localeval=&quot;HeaderText&quot;&amp;gt;&amp;lt;/h1&amp;gt;&lt;/li&gt;
&lt;li&gt;Use localizer.Init() method&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
How it works?&lt;/h4&gt;
User identifies the string literals which are to be MUI and adds localeval attribute to the element with string identifier as the value. Individual resource files are created for all supported languages, and contains actual content in that language against the identifier as a set of array items. Sample resource file is given below. Localizer JS queries through the elements with the localeval element and matches the content based on the string identifier and appends the content to that element. Localizer JS selects the resource file based on the SPLanguage query string passed by the add-in as part of the standard tokens. Make sure that {StandardTokens} parameter added in the add-in app-manifest. By default &quot;en-US&quot; is will be set as language if the resource file is missing. The default language can be overwritten by passing the defaulLang parameter in the &amp;lt;&amp;lt;ll-CC&amp;gt;&amp;gt; format. Resource JS file is getting loaded dynamically and also getting cached for by default, set cache: false to override caching.
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/6ae79095f0b87ef95319.js&quot;&gt;&lt;/script&gt;

&lt;h4&gt;
Sample resource file&lt;/h4&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/7add398c374aadc1780e.js&quot;&gt;&lt;/script&gt;

&lt;h4&gt;
Code Repo&lt;/h4&gt;
It&#39;s a open source project available in GitHub, feel free to fork, star it, raise pull/merge requests and add issues. I&#39;m happy to collaborate, Together we can make it better. &lt;a href=&quot;https://github.com/rjesh-git/Localization&quot; target=&quot;_blank&quot;&gt;https://github.com/rjesh-git/Localization&lt;/a&gt;&lt;br /&gt;
&lt;h4&gt;
App for Testing&lt;/h4&gt;
Also shared the sample &lt;a href=&quot;http://aka.ms/Caa3dv&quot; target=&quot;_blank&quot;&gt;SharePoint hosted app&lt;/a&gt; directly from the NAPA cloud tools, which will help to compile and deploy site if you already have an subscription. Pre-compile app can be &lt;a href=&quot;https://crazylabs.sharepoint.com/_layouts/15/guestaccess.aspx?guestaccesstoken=wo5lUEaOq5j6LBd2Ap5TgQnw20Z%2b84EgH4sbJURUg2I%3d&amp;amp;docid=09f764f3f1fba4745946e1c1e8c0a29a8&quot; target=&quot;_blank&quot;&gt;downloaded from here&lt;/a&gt; for your on-premises server.&lt;br /&gt;
&lt;h4&gt;
Thoughts&lt;/h4&gt;
I have been using this approach, since the other documented approaches are quite messy around setting values for the elements from the resource file. Not a huge fan of having script tag embed between each DOM elements. Also needed a more clean pattern which can be easily reused in multiple projects. This method offers more flexibility when used along with libraries like Angular, KnockoutJS and others. There might be better option, but its a worth a choice.&lt;br /&gt;
&lt;br /&gt;
Happy Coding! Peace.</description><link>http://www.rjesh.com/2015/10/localizing-in-sharepoint-add-in-with.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-hBFv2uQfZFY/ViCF08oSN-I/AAAAAAAARi0/jaaj9zNhpX0/s72-c/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-6835212733787305260</guid><pubDate>Sat, 21 Mar 2015 04:14:00 +0000</pubDate><atom:updated>2016-04-15T20:23:37.374-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSOM</category><category domain="http://www.blogger.com/atom/ns#">Office 365</category><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><category domain="http://www.blogger.com/atom/ns#">Publishing Pages</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><title>Bulk creation of Publishing Pages using PowerShell CSOM</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-CXXZxEOe3Ec/VQztwIPQjVI/AAAAAAAAMZI/iM-HNC_r1tI/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://1.bp.blogspot.com/-CXXZxEOe3Ec/VQztwIPQjVI/AAAAAAAAMZI/iM-HNC_r1tI/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In this post, we will look how to create publishing pages in bulk using the PowerShell CSOM. A CSV file will be used as an input which holds the meta data details of the page to be created. I have created a simple CSV file with the below columns matching my page layouts fields. For simplicity and time saving I just created two rows which means just two pages. (You said bulk :-) ) I&#39;m using plain text for the Publishing Page Content column, I think it should be fine with the html code too.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SEE ALSO - &lt;a href=&quot;http://www.rjesh.com/2015/02/replacing-youtube-vimeo-vine-urls-with.html&quot;&gt;Replacing YouTube, Vimeo, Vine Urls with embed code in pages.&lt;/a&gt;&amp;nbsp;&lt;/b&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-7Ba05KsW3C0/VQzc7LDrqfI/AAAAAAAAMYs/_vFYF8FQlIs/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B7.48.39%2BPM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;210&quot; src=&quot;https://2.bp.blogspot.com/-7Ba05KsW3C0/VQzc7LDrqfI/AAAAAAAAMYs/_vFYF8FQlIs/s1600/Screen%2BShot%2B2015-03-20%2Bat%2B7.48.39%2BPM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I&#39;ll be using the below PowerShell CSOM code for this activity, which will read the rows in the CSV and create the corresponding publishing page. First loading the appropriate page layout from the catalogs folder.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;script src=&quot;https://gist.github.com/rjesh-git/33220ca788a761054273de19ec0c41eb.js&quot;&gt;&lt;/script&gt;
Creating the publishing page
&lt;script src=&quot;https://gist.github.com/rjesh-git/d3c5157b14862bfa4bbda65173a3285e.js&quot;&gt;&lt;/script&gt;
&lt;h4 style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;DOWNLOAD - &lt;a href=&quot;https://gallery.technet.microsoft.com/office/Bulk-provision-publishing-a2f5db9a/file/150965/1/BulkCreatePublishingPages.ps1&quot; target=&quot;_blank&quot;&gt;Complete PowerShell file from here&amp;nbsp;&lt;/a&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The code is self explanatory so I&#39;m not going line by line. Make sure to update the site url, page layout name inside the CAML query and other appropriate values. You can even have the page layout information inside the CSV file and use it for the page creation, in that case make sure to bring the page layout loading piece inside the for loop.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://www.rjesh.com/2015/03/bulk-creation-of-publishing-pages-using.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-CXXZxEOe3Ec/VQztwIPQjVI/AAAAAAAAMZI/iM-HNC_r1tI/s72-c/Screen%2BShot%2B2015-03-20%2Bat%2B8.53.30%2BPM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-9053807514789708317</guid><pubDate>Thu, 26 Feb 2015 04:35:00 +0000</pubDate><atom:updated>2015-03-15T22:38:25.609-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><title>Replacing YouTube, Vimeo, Vine Urls with embed code</title><description>In Facebook or other major social network sites, if you paste any video link from major streaming services like YouTube, Vimeo etc it would be automatically transformed to the video player. I was trying to achieve a similar behavior for one of my SharePoint page layouts, where I have link field which holds the video link. When user pastes the link, on the display view it automatically transformed to IFRAME in the background.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;400&quot; src=&quot;//jsfiddle.net/rjesh/h82ocsdh/embedded/&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;</description><link>http://www.rjesh.com/2015/02/replacing-youtube-vimeo-vine-urls-with.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-1063477946363732652</guid><pubDate>Sat, 06 Dec 2014 21:25:00 +0000</pubDate><atom:updated>2015-03-15T22:41:49.138-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><title>Javascript - Simple promise/resolve example</title><description>A simple code snippet for explaining Deferred/Promise.&lt;/br&gt;
&lt;iframe allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot; height=&quot;300&quot; src=&quot;http://jsfiddle.net/ytbmkhdx/2/embedded/&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;</description><link>http://www.rjesh.com/2014/12/javascript-simple-promiseresolve-example.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-6180135622110750013</guid><pubDate>Sat, 06 Dec 2014 18:58:00 +0000</pubDate><atom:updated>2014-12-06T11:11:02.629-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint 2013</category><title>Cross domain calls in Apps through Javascript</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-_wsgT13EYLw/VINUl8DiDEI/AAAAAAAAL7Y/HJnbVDrw6cM/s1600/Screen%2BShot%2B2014-12-06%2Bat%2B11.07.30%2BAM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-_wsgT13EYLw/VINUl8DiDEI/AAAAAAAAL7Y/HJnbVDrw6cM/s1600/Screen%2BShot%2B2014-12-06%2Bat%2B11.07.30%2BAM.png&quot; height=&quot;305&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When you try to make a cross domain call to any resource hosted in different domain, then you encounter an issue with browser does not allow to access the resources due to &quot;same-orgin policy&quot;. In order to overcome this issue in our javascript we can use the below model using SP.WebProxy. The below sample can be added to the site using CEWP or can be added to your app.

&lt;script src=&quot;https://gist.github.com/rjesh-git/c871db7a6544edd4d1f4.js&quot;&gt;&lt;/script&gt;

Peace!</description><link>http://www.rjesh.com/2014/12/cross-domain-calls-in-apps-through.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-_wsgT13EYLw/VINUl8DiDEI/AAAAAAAAL7Y/HJnbVDrw6cM/s72-c/Screen%2BShot%2B2014-12-06%2Bat%2B11.07.30%2BAM.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-27209935.post-200132391116407474</guid><pubDate>Thu, 03 Jul 2014 20:39:00 +0000</pubDate><atom:updated>2014-07-03T13:39:22.639-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Downloads</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Microsoft Office Developer Tools for Visual Studio 2013 - Update offline download</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-KMDMqhjXtKI/U7W_XLpi1iI/AAAAAAAAJJ8/f7Ay3W5-ymY/s1600/14514VisualStudio2013.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-KMDMqhjXtKI/U7W_XLpi1iI/AAAAAAAAJJ8/f7Ay3W5-ymY/s1600/14514VisualStudio2013.jpg&quot; height=&quot;138&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
If you are struck on the development server with no access to internet, and looking for an offline download for the Microsoft Office Developer Tools for Visual Studio 2013 - May Update.&lt;br /&gt;
&lt;br /&gt;
Here is the link to download -&amp;nbsp;&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=397391&amp;amp;clcid=0x409&quot; style=&quot;font-family: Calibri; font-size: 11pt;&quot;&gt;http://go.microsoft.com/fwlink/?LinkID=397391&amp;amp;clcid=0x409&lt;/a&gt;&lt;br /&gt;






&lt;!--StartFragment--&gt;



&lt;!--EndFragment--&gt;</description><link>http://www.rjesh.com/2014/07/microsoft-office-developer-tools-for.html</link><author>noreply@blogger.com (Rajesh Sitaraman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-KMDMqhjXtKI/U7W_XLpi1iI/AAAAAAAAJJ8/f7Ay3W5-ymY/s72-c/14514VisualStudio2013.jpg" height="72" width="72"/><thr:total>1</thr:total></item></channel></rss>