App for SharePoint: Web Cam
/This is a Sway post. It is a short demo of an upcoming discussion on:
- App for SharePoint
- Web Cam
- HTML5
- And SharePoint Libraries
Code zealot in a connected world
This is a Sway post. It is a short demo of an upcoming discussion on:
Microsoft announced a series of Azure App Services today:
http://weblogs.asp.net/scottgu/announcing-the-new-azure-app-service
Specifically, I want to focus on Azure Logic Apps.
http://azure.microsoft.com/en-us/documentation/articles/app-service-logic-what-are-logic-apps/
In Microsoft's words.
Azure App Service is a fully managed Platform as a Service (PaaS) offering ... allow any technical user or developer to automate business process execution via an easy to use visual designer.
Best of all, Logic Apps can be combined with API apps and Connectors from our Marketplace to help solve even tricky integration scenarios with ease.
Microsoft has a tutorial on how to create Azure Logic Apps:
http://azure.microsoft.com/en-us/documentation/articles/app-service-logic-create-a-logic-app/
http://channel9.msdn.com/Shows/Azure-Friday/Azure-App-Service-Logic-Apps-with-Josh-Twist
You should go through these first. There are a number of new Azure templates that are wordy to describe, but a video will show how it all works together fairly quickly.
So I only want to focus on the SharePoint Online Connectors. They are easy to set up, but actually, tricky to find.
The Workflow:
Once you watched the video and we start by creating our own Azure Logic App.
Once it's ready, head into Triggers and Actions - this is where the rules are defined.
On the right hand side you wouldn't have any API Apps in the resource group. We'll configure them in a minute. Click Visit the Marketplace
There is a giant header at the top to add Office 365 Connector. We should go ahead and add that.
Note, in your happiness to add the Office 365 connector, you will, like me, completely fail to read "send and receive emails, calendar and contacts". No files, or SharePoint sites. Essentially, this connector is only for Exchange-related services.
Still useful for sending emails, so let's configure it.
Go back to Triggers and Actions on the Logic App
http://azure.microsoft.com/en-us/documentation/articles/app-service-logic-connector-sharepoint/
So far so good. Let's do the next one. And I think you'll fall into another hole.
You look at this and you say, surely. That one is for SharePoint, since the earlier Office 365 connector isn't.
Yes, I say. That's exactly what I want. Those are the right triggers and actions!
And here is the next hole I fell in.
Chances are, you got all the way to the end and thought why do I need a service bus for Azure Logic App to talk to Office 365. Something don't smell right.
I have failed to read the text again - this one is for On-Premises SharePoint, and you will need to install a listener proxy that will talk to Azure Logic Apps via an Azure Service Bus.
We'll cover that later when we talk about Hybrids.
For now, go back to the Marketplace.
Use the search filter. There are 2 SharePoint connectors. The SharePoint Online Connector isn't shown in the default view.
Create -> Package Settings -> OK <- Create
While you wait for the API App to be created, your Startboard is currently looking like a mess. Right click on the other connectors and unpin from Startboard.
This is in the video above. So I'll jump through this one really quick.
More spinning. All done! OK now we have all our connectors. Let's look at them.
I want to show the various different triggers from different connectors. But I won't actually use these in the later example.
Office 365 Trigger looks like this. | SharePoint Online Trigger looks like this | Twitter Trigger looks like this | The trigger I want to use is a simple Recurrence timer. It will run every hour. |
Next, pull down some tweets.
Add Twitter Connector and Authorize
Twitter Authorize, and set up to grab my timeline.
I want to put them into SharePoint Online.
Click Authorize - you'll see a pop up
You should see these actions to perform on the connector. Notice it connects to two lists specified during the setup, and there doesn't seem to be a way to change that afterwards.
Pick Insert Into tasks
We'll need to loop through the tweets and insert each one.
We need to change the TweetText reference from the First tweet to Each Repeating Item tweet.
Change it from:
to
Last action is an email. Add the Connector.
The Office365 Connector (Exchange) is the same as Office 365.
I set the body to the created date of the first tweet (in descending order, so actually the latest tweet).
The big picture:
Save
:-)
You save and close the Triggers and Actions editor.
:-(
Thanks. I think you forgot I had just saved... (another preview bug)
Back on the Logic App screen, I see this:
With a Recurrence trigger I find it always run first time I save. But if it doesn't, you can manually Run Now
Here we have it.
The list, in my Tasks list on my SharePoint Online.
The email I received.
Click the Pencil - I find that it is not intuitive that's clickable. I think it should be next to the cog wheel.
And that's quite possibly the easiest Tweets to SharePoint Online List example (including set up the infrastructure) that I have ever done.
The announcement of SharePoint 2016 should not come as a surprise (Office 2016 was previously announced, and SharePoint has always been a product released in parallel).
http://blogs.office.com/2015/02/02/evolution-sharepoint/
What was the surprise, to me, is how many people immediately jump the gun and asks is there another version of SharePoint after 2016, I don't recall a time where when Microsoft announces Office 2010 is coming and people immediately ask is there an Office 2013.
I think the confusion, or concern, is that customers can clearly see Microsoft's heavy investment in Office 365, and even the attitude of cannibalizing its own existing products to move forward.
I think this is the right thing to do for Team Office. Apple let iPhone ate the iPod. Windows didn't evolve and got stagnant.
But our concern is genuine. Many customers can not move to the cloud. They are indeed worried whether they should continue spending in the on-premises product, or invest elsewhere. It seems that Microsoft has not been investing in existing features, instead it has been investing only in Office 365 and very little is coming down the pike.
There are also much FUD spread by competitors implying Microsoft has abandoned on-premises and thus a customer should consider abandoning Microsoft and go with a competing on-premises product.
There are areas that Microsoft is playing to its strengths. Many companies - Facebook for Work, Google Apps - are entirely cloud (or mobile) offerings. SharePoint and Office 365 is a hybrid offering. And in this strength, Microsoft is uniquely in the cloud, but also in your enterprise and cross-platform in your devices. This isn't going to change, in fact, this is an area Microsoft will continue to expand the offering.
A decade ago, we can distil Microsoft and Windows down to A PC on Every Desktop.
I'd like to think that for Team Office, it should be Office anywhere you do Work.
This means that perhaps while SharePoint the brand is fading into an on-premises only product, SharePoint the product is never going away. It has not been given the 10-year support life line. And Microsoft continues to invest in the product.
I see two possibilities with the shape of the next version of SharePoint.
It could be a stand alone product, in the shape of SharePoint 2019, launched with Office 2019 desktop suite.
It is also possible that in the SharePoint 2016 timeframe, the product becomes Evergreen and future updates are rolled out in the form of Service Packs.
I would kiss the Microsoft Product Manager that makes SharePoint On-Premises Evergreen. This isn't something unimaginable. Office 365 has already gone that route. Windows 10 is envisioned as Windows as a Service and new updates will just roll out new features. An Evergreen SharePoint effectively means this would be the last release version of SharePoint - and that is great for customers.
It's worthwhile to note that this isn't a decision Team Office has to make in the 2015-2016 timeframe. This is a decision that should be made in the 2016-2018 timeframe. By that time, Microsoft and customers would be well-understood about what Microsoft means when it says Windows As A Service.
So no rush. But you know what I want, Dear Team-Office-Santa.
Reading between the lines in the Office announcement, I think Office 365/SharePoint announcements coming up in Ignite will be split into really three areas:
I expect news to be a bit light between now and Ignite conference, where Microsoft is storing up bags of product announcement goodies.
I'm preparing for everything to get more awesome. And I don't think SharePoint is going away anytime soon. If anything, it is still right in the middle of everything (if you are on the ground, not just in the cloud).
I'm Loving every bit of it. Turn it up to v15!
I want to describe a method that I use to check if a user is a member of a group.
MSDN (http://msdn.microsoft.com/en-us/library/office/dn268594(v=office.15).aspx - this needs to be a SharePoint Developer's home page) documents a few REST end points that I use for this.
http://msdn.microsoft.com/en-us/library/office/dn531432(v=office.15).aspx#bk_Group
Says you can get to a sharepoint group via:
The group also has a Users property that points to a Users Collection.
http://msdn.microsoft.com/en-us/library/office/dn531432(v=office.15).aspx#bk_UserCollection
This expands our example to:
For example:
The Users Collection does not have a method for testing if a user exists. So I've taken the shortcut and basically brute force the service and just try to retrieve a user. If you try to request a user that doesn't exist in the collection, it will just error, and I just catch that error.
Both Accept and Content-Type needs to be "application/json;odata=verbose"
Concatenate Current Site URL (which ends without a trailing /) and the earlier API.
Note my group name is 'john Members'
The ResponseCode could be either OK or InternalServerError
Get a property from the returned Response variable "d/Title" would correspond to the Display Name of the user returned. If the ResponseCode was Error, then there would be no value in the Response object.
In Visual Studio, these activities can be bundled into one single Activity that can be reused in SharePoint Designer. I'll update this in a future blog post on Visual Studio.
The more I work with SharePoint 2013 Workflows the closer parallels I see relating to a traditional programming language. Here's the same function call in Javascript.
var promise = $.ajax({
type: "GET",
url: _spPageContextInfo.siteServerRelativeUrl + "/_api/web/sitegroups/getbyname('john Owners')/users/getbyid(" + _spPageContextInfo.userId + ")",
headers: {
"accept": "application/json;odata=verbose"
},
contentType: "application/json;odata=verbose",
dataType: "json",
cache: false,
processData: true
});
promise.then(
function (data, status) {
if (status == "success" && data && data.d) {
var title = d.Title;
}
else {
// success, but no records - this can't really happen.
}
},
function () {
// not successful - usually not a member of that group
}
);
November 29, 2014 was a great day for SharePoint Saturday.
I presented "Develop and Build Workflow Apps in SP2013. Wait, Workflow Apps?" - which is a session that covers lots of the new things you can build with SharePoint 2013 workflows using primarily Visual Studio 2013. These work on premises and in Office 365.
I still think my transition along with exploring new activity and suddenly jumping into REST was tough. I need to work on how to introduce that point.
The key point stands. As a developer, or even a power user using Workflows - the REST API opens SharePoint completely to me. I can use it to create lists, site columns or assign permission groups. The trouble is that creating the JSON packet to talk to SharePoint end point is quite hard. Which is why the need (and the ability) to package existing series of Actions into a reusable Custom Activity is a big deal.
There was actually a lot of confusion over the artefact "Custom Activity". In 2010, these were sandbox or coded solutions. In 2013, Custom Activity is completely declarative. It is a way for you to save a series of workflow actions into a reusable piece of functionality that you can use over and over. In my demo project I have about 10 custom activities.
We announced at the beginning and the end of SharePoint Saturday 2014 that this would be the last SharePoint Saturday in Australia. As Microsoft and Industry trends towards Office 365, we will move with that trend.
From 2015 onwards, Office 365 Saturday will return, bigger and with more coverage of Office and SharePoint Online, but also address your On Premises needs.
Hope you have a great holidays and see you soon in 2015!
I look at how a small team can build amazing things with the latest tools we have in Office 365 & SharePoint. I'm a coder, developer, Office SharePoint MVP. I dream, then I rant.
Founder @ Flow Studio App
A poweruser tool to help every maker write better Microsoft Flows and manage them.
MVP Alumni Office Apps and Services: SharePoint
MVP Alumni Business Applications: Flow
This work by John Liu is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Permissions beyond the scope of this license may be available at /about-me/.