Rodrigo Romano – MVP SharePoint Server

Registros de um Especialista SharePoint :)

Archive for the ‘Apps’ Category

SharePoint Apps: Como utilizar o People Picker?

leave a comment »


Olá SharePointers,

Hoje vou falar sobre como utilizar o People Picker quando estamos desenvolvendo uma app para SharePoint.

O primeiro passo, é carregar os scripts que serão utilizados (ver imagem abaixo) e colocar a div quer será utilizada para criação do controle dinamicamente.

image

 

Após a criação dos controles acima, basta colocar o código abaixo em um arquivo .js e adicioná-lo a página como referência que o People Picker funcionará perfeitamente.

 

// Run your custom code when the DOM is ready. $(document).ready(function () { // Specify the unique ID of the DOM element where the // picker will render. initializePeoplePicker('peoplePickerDiv'); }); // Render and initialize the client-side People Picker. function initializePeoplePicker(peoplePickerElementId) { // Create a schema to store picker properties, and set the properties. var schema = {}; schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup'; schema['SearchPrincipalSource'] = 15; schema['ResolvePrincipalSource'] = 15; schema['AllowMultipleValues'] = true; schema['MaximumEntitySuggestions'] = 50; schema['Width'] = '280px'; // Render and initialize the picker. // Pass the ID of the DOM element that contains the picker, an array of initial // PickerEntity objects to set the picker value, and a schema that defines // picker properties. this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema); } // Query the picker for user information. function getUserInfo() { // Get the people picker object from the page. var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan; // Get information about all users. var users = peoplePicker.GetAllUserInfo(); var userInfo = ''; for (var i = 0; i < users.length; i++) { var user = users[i]; for (var userProperty in user) { userInfo += userProperty + ': ' + user[userProperty] + '<br>'; } } $('#resolvedUsers').html(userInfo); // Get user keys. var keys = peoplePicker.GetAllUserKeys(); $('#userKeys').html(keys); // Get the first user's ID by using the login name. getUserId(users[0].Key); } // Get the user ID. function getUserId(loginName) { var context = new SP.ClientContext.get_current(); this.user = context.get_web().ensureUser(loginName); context.load(this.user); context.executeQueryAsync( Function.createDelegate(null, ensureUserSuccess), Function.createDelegate(null, onFail) ); } function ensureUserSuccess() { $('#userId').html(this.user.get_id()); } function onFail(sender, args) { alert('Query failed. Error: ' + args.get_message()); }

Bem simples, não acharam?

 

Abraços! 😀

 

Referência

http://msdn.microsoft.com/en-us/library/jj713593.aspx

Advertisements

Written by Rodrigo Romano

August 11, 2014 at 9:47 am

Troubleshooting SharePoint/Office365: Sideloading of apps is not enabled on this site

leave a comment »


Olá SharePointers,
Estava desenvolvendo uma SharePoint Hosted app para o Office 365 e, para minha surpresa, apareceu o erro abaixo.
Esse erro acontecia quando quando tentava fazer o deploy via Visual Studio.

 

Para resolver esse erro, basta rodar o script que está disponível nesse link: http://1drv.ms/1qDs0oy

 

Referência:

http://blogs.msdn.com/b/officeapps/archive/2013/12/10/enable-app-sideloading-in-your-non-developer-site-collection.aspx

Abraços! 😀

Written by Rodrigo Romano

August 2, 2014 at 12:28 pm

SharePoint 2013: Licenciamento de uma App

with 2 comments


Olá SharePointers,

Quando a versão nova do SharePoint 2013 foi lançada, muito se especulou sobre o modelo de licenciamento para Apps e como isso funcionaria, entreanto, após tanto tempo (estamos quase no SP1 do SharePoint 2013) pouco vejo falar sobre o assunto.

Em 2012, fiz uma apresentação para um evento no Senac São José dos Campos com vários profissionais renomados no mercado (http://pt.slideshare.net/rodrigoromano/mudanas-no-desenvolvimento-com-sharepoint-2013) e falei um pouco sobre o assunto.

Pensando na falta de conteúdo sobre o assunto, pensei em escrever um post.

 

Aquisição de Licenças

Ao comprar um App, a licença é enviada para o SharePoint em forma de um token. Esse token contém as informações básicas sobre a licença, tais como: data/hora da aquisição, quantas licenças foram adquiridas e etc.

Essas licenças podem ser por usuário ou por aplicativo.

 

image

OBS: O mais importante é entender que é necessário garantir a aplicação da licença via CÓDIGO customizado.

Sendo assim, o SharePoint fornece as APIs para buscar o Token de licenciamento na Store, validá-lo e tomar alguma ação no aplicativo baseado no resultado dessa validação. Dessa forma, o SharePoint provê uma funcionalidade extensível que atenda qualquer caso mais específico de uma App customizada.

 

image

 

 

 

Resumindo…

O SharePoint fornece toda a infraestrutura da App Store, permitindo a venda (gratuita ou paga) das Apps. Além disso, fornece o mecanismo para aquisição e gerenciamento das licenças, bem como WebService para validação de uma licença.

O único trabalho do desenvolvedor, nesse caso, é fazer a chamada ao Web Service, validar a licença obtida e tomar alguma ação baseada em seu resultado.

Simples, não?

SharePoint sempre pensando em nossa produtividade Smiley de boca aberta

 

Referências

(As imagens foram retiradas do link abaixo).

http://blogs.msdn.com/b/officeapps/archive/2012/11/09/licensing-your-apps-for-sharepoint.aspx

http://msdn.microsoft.com/en-us/library/office/jj163257.aspx

Written by Rodrigo Romano

January 14, 2014 at 8:04 pm