Enviar e-mail usando SharePoint (Send e-mail using SharePoint)

Galera hoje vou da uma dica de como enviar e-mail usando SharePoint, gosto de ser bem prático.

Para esta função utilizei a classe SPUtility,  para que possamos ter sucesso nesta ação, estou considerando que você já tenha o Outgoing E-Mail configurado no seu ambiente.

Tendo estas configuração é só usar o trecho de código abaixo, usei o seguinte método, aplicando todos os parâmetros.

screenshot.119

Método utilizado.

 using (SPSite site = new SPSite("http://gsd:2020"))
            {
                using (SPWeb web = site.OpenWeb("blog"))
                {
                    string subject = "E-mail usando SharePoint (GSDelfino)";
                    string toAdress = "gsd@gsdelfino.com";
                    string htmlBody = @"<table>
                                          <tr>
                                            <th>Enviar e-mail usando SharePoint</th>
                                          </tr>
                                          <tr>
                                            <td>Esta é uma mensagem de teste.</td>
                                          </tr>
                                        </table>";
                    SPUtility.SendEmail(web, true, true, toAdress, subject, htmlBody);
                }
            }

 

Ultima dica, caso queira saber se seu e-mail foi enviado o método SendEmail retorna um bool true = mail enviado ou false = mail não enviado, se tiver tudo configurado e o e-mail não da uma olhadinha no ULS pode te ajudar a saber qual sem problema especificamente.

Segue o e-mail que recebido 🙂

screenshot.121

E-mail Recebido.

É isso tentei ser bem prático, espero ter ajudo!

Posted in SharePoint 2010, SharePoint 2013, SharePoint 2016, Uncategorized | Leave a comment

.

Erro RESTORE-SPSITE:<NATIVEHR>0X80070003</NATIVEHR>

 

Este erro pode ocorrer por varias por varios motivos, vou citar alguns que talvez possa ser o cenário de alguém.

No meu caso montei um ambiente com SharePoint 2013 SP1, criei esse cenário para exemplificar realizei o BKP em uma VM SP 2013 SP1 e banco de dados já atualizado e nesse ambiente novo não instalei a atualização de banco, e tive o erro abaixo:

print_11

Nesse caso foi muito simples resolver, via PowerShell rodei o comando Upgrade-SPContentDatabase “MeuContentDB”. Informações adicionais : Docs MS

Legal isso não te ajudou,  vou dar outros motivos de você não estar conseguindo realizar o Restore, analise os itens abaixo, um deles pode ser seu problema:

  1. Check suas permissões na aplicação e no banco de dados. Caso não tenha tente roda com usuário ADM da Farm ai é sucesso.
  2. Pode ter sido realizado um BKP e Restore em SharePoint de versões diferentes, vou explicar, é muito similar ao meu caso, mas no caso acima foi o banco que estava em versão diferente, agora vamos analisar as versões do SharePoint. Verifique a versão versão do SP de origem e a versão do SP destino, isto pode ser verificado na Central de Administração.
  3. Senão foi nenhum dos casos acima o BKP pode estar corrompido, para isso você pode realizar um novo BKP.
Posted in Backup SharePoint, SharePoint 2010, SharePoint 2013, SharePoint 2016, Uncategorized | Leave a comment

Conectando o local de trabalho moderno com o SharePoint e o OneDrive :)

Ontem 26 de setembro de 2017 – Jeff Teper, Vice-Presidente Corporativo  da Microsoft falou brevemente sobre o futuro  Microsoft 365, o SharePoint e o OneDrive conectam ambos ao local de trabalho, com gerenciamento inteligente de conteúdo e intranets. A transformação digital está gerando crescimento no Microsoft 365, SharePoint e OneDrive.

Vale a pena ler o post : Connecting the modern workplace with SharePoint and OneDrive: Announcements at Ignite 2017

Posted in Uncategorized | Leave a comment

Maquina Virtual SharePoint 2016

Galera, seguinte caso você esteja procurando uma maquina virtual SP 2016 para desenvolvimento, se aprofundar um pouco .net core voltado para SharePoint aproveite essa dica, segue o link  abaixo de um blog, leia com atenção o post dele que não terá problema algum tanto na descompactação, como nos acesso.

https://diman82.wordpress.com/2016/05/26/sharepoint-server-2016-virtual-machine-download/

 

Boa sorte, Developers!

Posted in Maquina Virtual, SharePoint 2016 | Leave a comment

Criando WCF Service para SharePoint 2013 – Tutorial

        Este post descreve a criação de um WCF Service e o deploy  na Farm do SharePoint 2013, no meu caso uso um StandAlone.

        O WCF Services desempenha um papel importante no modelo de desenvolvimento baseado no SharePoint 2013 Apps, atuando como uma ponte entre o SharePoint Client Object Model e o SharePoint Client Object Model.

        O Server Side Object Model  não está disponível para SharePoint 2013 Apps, isso quer dizer que qualquer operação ou requisito de negócios em uma aplicação deve ser executado somente Client Side Object Model (Microsoft.SharePoint.Client).

        Quem desenvolve para SharePoint já esta acostumado com esse cenário  e tem esse conceito bem enraizado.

Criando um WCF Service estamos violando o conceito de Modelo de Desenvolvimento de Aplicativos (SDK). Mas em certos momentos é necessário porque não existe outra maneira,   por exemplo, o SocialRatingManager. Não existe nenhuma classe CSOM equivalente a classe SocialRatingManager.

        Depois dessa introdução vou explicar o passo á passo para a criação de um serviço, bem simples!

Vamos lá hands on.

Crie um projeto do tipo SharePoint 2013 – Empty Project, defina um nome para seu projeto.

WCF1

wcf2

Adicione as seguintes referências, vamos usar ela nas nossa classes.

wcf3

Feito isso vamos mapear uma pasta do SharePoint, a pasta em questão será o LAYOUTS, onde nosso .svc será implementado.

wcf4

Neste passo vamos criar uma sub-pasta e renomeá-la como Service, e dentro desta pasta vamos adicionar um novo item do tipo texto e remomeá-lo para Service.svc.

wcf5

Dentro no nosso .svc vamos adicionar o seguinte trecho de código.

<%@ ServiceHost Language="C#" Debug="true"
    Service="GSD.WCFService.Bussiness.Services"
    Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressWebServiceHostFactory,
    Microsoft.SharePoint.Client.ServerRuntime, Version=15.0.0.0, Culture=neutral,
    PublicKeyToken=71e9bce111e9429c" %>

Esse trecho de código ainda não faz muito sentido…rs Para isso criar uma nova pasta chamada Bussiness onde colocaremos nossas classes responsável pela negocio do serviço. Dentro desta pasta vamos adicionar duas classes IServices.cs e Services.cs.

wcf6

Na classe IService iremos substituir tudo pelo código abaixo:

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
namespace GSD.WCFService.Bussiness
{
    [ServiceContract]
    public interface IServices
    {
        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetAllLists()")]
        List<string> GetAllLists();
    }

}

Faremos o mesmo procedimento para a classe Services:

using System.Collections.Generic;
using System.ServiceModel.Activation;
using Microsoft.SharePoint;

namespace GSD.WCFService.Bussiness
{
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public sealed class Service : IServices
    {
        public List<string> GetAllLists()
        {
            List<string> list = new List<string>();
            using (SPSite site = new SPSite(SPContext.Current.Web.Url))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPListCollection colList = web.Lists;
                    foreach (SPList item in colList)
                    {
                        list.Add(item.Title);
                    }
                }
            }
            return list;
        }
    }
}

Antes de darmos continuidade vou explicar o que esse trecho de código faz, busco todas as lista da WebApp e adiciono em uma lista.

OK!

Agora vamos realizar o deploy de tudo isso que a gente fez até aqui, para isso selecione o projeto e vá em propriedades e mude o Deployment Target Property para  WebApplication.

Agora vamos testar no navegador para ser o que nosso serviço retorna.

http://wv2sbe02/axa/ecm/_layouts/15/GSD.WCFService/Services/Service.svc/GetAllLists()

Como havia mencionado acima este serviço ia retornar todas as listas da minha WebApp. Então seu retorno deve ser muito similar a este:
wcf8

Com essa simples explicação vocês já podem criar serviços e realizar o deploy na Farm do SharePoint.

Vlw por  hora é isso grande abraço!!

by GSD

Posted in .NET, SharePoint 2013, SharePoint Services, Uncategorized, Visual Studio 2015, WCF Services | Leave a comment

CSC.EXE Parou de Funcionar

Galera,

Este post será um dica rápida, estou desenvolvendo uma aplicação MVC, e no momento do debug a aplicação web cai, e fica aparecendo essa tela nos demais debug que eu tento executar.  Veja imagem abaixo, se for essa mensagem que aparece para você, então neste post temos a solução.

CSCError

Lendo no fórum da MSDN descobri que esse erro pode ser atribuído a arquivos ausentes ou corrompidos, entradas de registro inválidas associadas ao Csc.exe, ou seja, um erro muito genérico.

Enfim, o que resolveu meu problema foi deletar todos arquivos da pasta /bin! Se seu cenário for similar isso realmente resolve.

CSCError1

Todas vez que o erro ocorre, executo esse procedimento, esqueci de citar também que realizo Rebuild, mas isso é default…rs

Um grande abraço!

Posted in .NET, MVC, Visual Studio 2015 | Leave a comment

SharePoint + REST – Part 2

Olá Developers,

Essa é a segunda parte do assunto SharePoint + REST, na  Part 1, não abordei tudo a respeito da REST Query, então para mais informações podem acessar esse link:  REST Query .

Nesta segunda parte vamos trabalhar com os retornos das queries realizadas usando o serviço REST.

É muito simples então não vou entrar em muitos detalhes explicando trecho de código, mas caso surja dúvidas podem me deixar nos comentários.

Parti para estrategia de trazer tudo em uma tabela, veja o trecho de código abaixo:

 $.ajax({
        url: siteUrl + "/_api/web/lists/getbytitle('Projetos')/Items?$select=Title,Versao,Horas", //Coloca o URL 
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            var tabela = "<table border=1><tr>";
            tabela += "<th>Title</th>";
            tabela += "<th>Versão</th>";
            tabela += "<th>Horas</th></tr>";
            for (var i = 0; i < data.d.results.length; i++) {
                tabela += "<tr><td>" + data.d.results[i]["Title"] + "</td>";
                tabela += "<td>" + data.d.results[i]["Versao"] + "</td>";
                tabela += "<td>" + data.d.results[i]["Horas"] + "</td></tr>";
            }
            tabela += "</table>";
            $("#Grid").html(tabela);
        }
    });

 

Todo código html escrevi dentro do success, não impede de ser criadas function para a geração do html, sem problema algum.

Vejam o resultado que foi gerado na tela:

rest4

É isso ai galera!

Esse foi mais um post rápido, sempre que sobrar um tempinho vou compartilhando um pouco de conhecimento com vocês.

Um grande abraço.

Posted in Rest, Rest JQuery, Rest SharePoint, Search SharePoint 2013, SharePoint 2010, Uncategorized | Leave a comment