Mostrando postagens com marcador Integração. Mostrar todas as postagens
Mostrando postagens com marcador Integração. Mostrar todas as postagens

quarta-feira, 30 de dezembro de 2015

SharePoint 2013: ScopeNotFoundException: Workflow publicado não é exibido


O evento abaixo ocorre, se o (sub)escopo do subsite no Workflow Manager não foi criado. Isso pode ocorrer após a importação de um subsite.

Maiores detalhes sobre o escopo do fluxo de trabalho:
"A scope is a named and securable container for Activities, Workflows, Instances, configuration and child Scopes.. It also provides a boundary for multi-tenancy and messaging (notifications). Scopes can be created and modified using the Workflow Client API. It is represented in the Client API by the T:Microsoft.Workflow.Client.ScopeInfo class."

Evento no log do SharePoint:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Microsoft.Workflow.Client.ScopeNotFoundException: Scope '/SharePoint/default/<site collection GUID>/<subsite GUID>' was not found. HTTP headers received from the server - ActivityId: <GUID>. NodeId: <Server name>. Scope: /SharePoint/default/<site collection GUID>/<subsite GUID>. Client ActivityId : <GUID>. ---> System.Net.WebException: The remote server returned an error: (404) Not Found.
at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content) -
-- End of inner exception stack trace ---
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Solução:

Execute os dois comandos abaixo para desabilitar e habilitar o feature oculto "WorkflowServiceStore" para forçar a cria do escopo, em seguida publique os fluxos de trabalhos.
1. Disable-SPFeature WorkflowServiceStore -Url <endereço do subsite>
2. Enable-SPFeature WorkflowServiceStore -Url <endereço do subsite>

quarta-feira, 18 de fevereiro de 2015

SharePoint 2013 - Workflow suspenso: HTTP 401: "An unhandled exception occurred during the execution of the workflow instance."




O fluxo de trabalho no SharePoint 2013 fica normalmente no estado suspenso com a mensagem de erro "An unhandled exception occurred during the execution of the workflow instance." para os usuários da FBA (usuários de declarações) devido a falta de mapeamento da propriedade "SPS-UserPrincipalName" com a propriedade "sAMAccountName".

Isso é "by design" devido a utilização do protocolo OAuth, utilizado na comunicação entre o Workflow Manager e o SharePoint, porque os tokens OAuth contém apenas o UPN por razões de segurança. 
O SharePoint utiliza essa informação (o UPN) para obter mais detalhes sobre o usuário no serviço "User Profile Service Application".

Resumindo: Os fluxos de trabalho do SharePoint 2013 requerem o serviço "User Profile Service Application" e das informações nele.

Mensagem de erro no interface::

RequestorId: <GUID>. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.ApplicationException: HTTP 401 {"Transfer-Encoding":["chunked"],"X-SharePointHealthScore":["0"],"SPClientServiceRequestDuration":["50"],"SPRequestGuid":["<GUID>"],"request-id":["<GUID>"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"MicrosoftSharePointTeamServices":["15.0.0.4569"],"X-Content-Type-Options":["nosniff"],"X-MS-InvokeApp":["1; RequireReadOnly"],[...]


Mensagem de error nos logs do SharePoint:

Problem getting output claims identity. Exception: 'Microsoft.Office.Server.Security.UserProfileNoUserFoundException: 3001002;reason=The incoming identity is not mapped to any user profile account in SharePoint. Possible cause is that no user profiles are created in user profile database. Contact your administrator.     at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList(UserProfileManager upManager, IEnumerable`1 identityClaims)     at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.<>


Solução:

1. Abre a propriedade "SPS-UserPrincipalName" (User Principal Name) no serviço de aplicação "User Profile Service Application".

2. Configure o mapeamento (direção import).


3. Execute a sincronização do User Profile (full).

SharePoint 2013 User Profile Sync for Claims Users

[]

quinta-feira, 12 de fevereiro de 2015

SharePoint - Erro na ativação do feature “Report Server Integration Feature”


O erro abaixo ocorre normalmente se houve algum problema na instalação dos features do Report Server. A ativação por meio do Powershell cmdlet Enable-SPFeature e do parâmetro force funciona, entretanto não habilita os tipos de conteúdo. 

Sorry, something went wrongThe content type with Id 0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B defined in feature {e8389ec7-70fd-4179-a1c4-6fcb4342d7a0} was found in the current site collection or in a subsite.

O content type ausente que causou esse evento foi Report Builder Report (0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B). 

Execute os seguintes comandos do stsadm para instalar os features e content types necessários para ativar o “Report Server Integration Feature”.



  1. stsadm -o installfeature -name ReportServer
  2. stsadm -o installfeature -name ReportServerCentralAdmin
  3. stsadm -o installfeature -name ReportServerItemSync
  4. stsadm -o installfeature -name ReportServerStapling


Em seguida, ative o feature por meio do Powershell:

Enable-SPFeature -Identity E8389EC7-70FD-4179-A1C4-6FCB4342D7A0 -Url http://<sua página>/

Isso ativará o feature e os tipos de conteúdo nas bibliotecas da página

Feature

Content Types



IDs dos content types:

Report Builder Model 
0x010100D8704AF8ED734F4088724751E0F2727D

Report Builder Report
0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B

Report Data Source
0x0101007DFDDF56F8A9492DAA9366B83A95B3A0

Enable-SPFeature

[]

sexta-feira, 6 de fevereiro de 2015

SharePoint: User Profile Synchronization - Redifinir a base SyncDB



As vezes, o serviço da sincronização dos perfil de usuários não inicia corretamente, está parado com o estado "starting" ou simplesmente permanece no estado "stale". Por isso, a maioria das pessoas recria o serviço inteiro a fim de normalizar o sincronização.

O serviço utiliza o banco de dados SyncDB como um banco de dados de estágio que serve como uma área de preparação das informações dos perfis de usuários. O banco contém informações sobre os mapeamentos dos atributos bem como também a configuração da conexão da sincronização.

A recriação do serviço utilizando os bancos antigos não garante a resolução desses problemas, visto que a origem, na maioria das vezes é uma informação inconsistente no banco SyncDB.

Por exemplo o seguinte evento que ocorreu no mapeamento da propriedade "Picture" (direção import):

1.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Log Name:      Application
Source:        FIMSynchronizationService
Date:          03/02/2015 11:18:46
Event ID:      6309
Task Category: Server
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      abc.contoso.com
Description:
The server encountered an unexpected error while performing an operation for a management agent.

 "BAIL: MMS(14148): cdext.cpp(412): 0x80070057 (The parameter is incorrect.): Invalid element: MAConfig [...]
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


2.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Log Name:      Application
Source:        Forefront Identity Manager
Date:          03/02/2015 11:18:46
Event ID:      3
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      abc.contoso.com
Description:
Microsoft.ResourceManagement.ResourceManagementException: Exception from HRESULT: 0x80230516 ---> System.Runtime.InteropServices.COMException (0x80230516): Exception from HRESULT: 0x80230516
   at MIISRCW.IMMSManagementAgent.ModifyMAData(String pszMADataXML, String& ppszUpdatedXML) [...]
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Nesses caso podemos executar um "reset" do banco e recuperar a configuração padrão. Os seguintes passos mostram como você deve prosseguir:

Obs.: O usuário que executa esses passos deve ser administrador local e do SharePoint (Farm Administrator).

1. Anote as configuração da sincronização e dos mapeamentos das propriedades dos usuários.

2. Desabilite o timer job "My Site cleanup timer job" se for configurado.

3. Desabilite o serviço "User Profile Synchronization Service" por meio do seguinte comando:

Get-SPServiceInstance | ? {$_.typename -eq "User Profile Synchronization Service" | Stop-SPServiceInstance

4. Execute o reset no base de dados SncDB:

net stop sptimerv4
## Identifique o ID a partir do comando Get-SPDatabase
$syncdb=Get-SPDatabase <GUID>
$syncdb.Unprovision()
$syncdb.Status='Offline'
## Identifique o ID a partir do comando Get-SPServiceApplication
$upa=Get-SPServiceApplication <GUID>
$upa.ResetSynchronizationMachine()
$upa.ResetSynchronizationDatabase()
$syncdb.Provision()
net start sptimerv4

5. Inicie o serviço "User Profile Synchronization Service" por meio do seguinte comando:

Get-SPServiceInstance | ? {$_.typename -eq "User Profile Synchronization Service" | Start-SPServiceInstance

SharePoint - User Profile Synchronization parado no estado "Starting"

[]

segunda-feira, 3 de março de 2014

SharePoint 2013 e OAuth - Uma visão geral

OAuth é um standard web para gerenciar permissões e configurações de segurança 

OAuth é um standard web para gerenciar permissões e configurações de segurança na comunicação interna e para módulos como Apps e serviços. O standard também é usado pela Google, Facebook e Twitter.
O uso da encriptação SSL é altamente recomendado para um ambiente de produção.

Simplificando: O protocolo OAuth é utilizado no SharePoint para autenticar e autorizar Apps e Serviços.

OAuth em implementações "on-premises"

SharePoint 2013, Exchange 2013,  e Lync Server 2013 não necessitam de um servidor de autenticação em uma implementação "on-premises" para emitir tokens. Cada uma destas aplicações gera tokens auto-assinados para acessar os recursos fornecidos por outras aplicações.

A aplicação que fornece acesso aos recursos, como por exemplo SharePoint 2013, precisa confiar nos tokens auto-assinados apresentados pelo aplicativo que fez a chamada. O SharePoint 2013, Exchange 2013 e o Lync Server 2013 publicam o xml de metadados de autorização nos seguintes URLs.



SharePoint 2013 - https://<serverfqdn>/_layouts/15/metadata/json/1
Exchange 2013 - https://<serverfqdn>/autodiscover/metadata/json/1
Lync Server 2013 - https://<serverfqdn>/metadata/json/1

[MS-XOAUTH]: OAuth 2.0 Authorization Protocol Extensions
OAuth.net and Web Authorization Protocol (oauth).
Authorization and authentication for apps in SharePoint 2013
Setting Up an oAuth Trust Between Farms in SharePoint 2013
OAuth authentication and authorization flow for apps that ask for access permissions on the fly in SharePoint 2013 (advanced topic)

sexta-feira, 28 de fevereiro de 2014

Caracteres Especiais e SharePoint

Todos os sistemas envolvidos pelo SharePoint criam uma oportunidade para o uso dos caracteres não suportados. O que é permitido no SharePoint não é permitido no SQL e o que é permitido no Project Server não é permitido no AD.




Até a posição do caracter pode determinar se o caracter é suportado ou não. Por exemplo o caracter _ é invalido no AD se o ID do usuário inicia com ele, porém é aceitado em qualquer outro lugar no ID....

Seguem os caracteres não suportados para cada tecnologia envolvida:

1. SharePoint

(~, #, %, &, *, {}, \, :, <>, /, +, |, “)

2. SQL Server 

/  \   : [  ]  .  =

3. NTFS

" / \ * ? < > | :

4. LDAP

(  )  \  NUL

Considerando a informação acima, podemos chamar de "Best Practices" evitar o uso dos seguintes caracteres no SharePoint:

/ " ; : < > | [ ] , . ' ? ~ ` ! $ % ^ & * ( ) - + = { }

As limitações do SharePoint - http://technet.microsoft.com/en-us/library/ff919564(v=office.14).aspx

O sistema de arquivos NTFS - http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29

Abraços

quinta-feira, 23 de janeiro de 2014

SharePoint - User Profile Synchronization parado no estado "Starting"


User Profile Synchronization parado no estado "Starting" - Porque?



Componentes envolvidos na sincronização / provisionamento

O serviço está configurado para utilizar 15 tentativas no provisionamento. Temos passos como por exemplo: configuração dos certificados, serviços do windows, instalar schemas de banco de dados, entre outros. O serviço tentará configurar tudo de novo se ocorre qualquer problema durante o provisionamento. Isso explica a impressão de que o serviço está parado. O status voltará a "stopped" depois de uns 15 a 45 minutos.

O estado (esta aparente paralisação) continua às vezes, dependendo do problema no estado "starting" mesmo depois que o servidor for reiniciado e às vezes será necessário a recriar o serviço.

Seguem as causas comuns:

Permissões incorretas

Existem duas contas que nós precisamos verificar: a identidade do serviço (a conta da farm) e a conta responsável pela sincronização.



A conta do serviço deve ser administrador local durante o provisionamento, essa permissão pode ser retirada depois do provisionamento e ele deve ter a permissão "Log on locally".

Lembrando: A atualização do SharePoint e/ou a recuperação de um backup por meio do Central Administration vai parar e reiniciar o serviço e você deve inserir o usuário da farm do SharePoint novamente np grupo dos administradores locais.

A conta responsável pela sincronização deve ter a permissão "Replicating Directory Changes" no nível do domínio, ser membro do grupo "Pre-Windows 2000 Compatible Access" e, caso você queira replicar alterações do SharePoint para o AD, a permissão "Create Child Objects and Write" no nível dos OUs.

Ambiente de desenvolvimento

É muito comum que o serviço não inicie depois que você tenha reiniciado seu ambiente de desenvolvimento. O serviço requer o SQL e falhará se o SQL não estiver respondendo.

Solução: Configure o serviço "FIM Synchronization service" para utilizar o "delayed start" no services.msc.

O serviço requer um re-provisionamento depois da atualização do SharePoint

Este comportamento é esperado, visto que o PSConfig (o wizard do produto) atualiza a schema dos bancos de dados do SharePoint, porém não do Sync DB.

ULS logs: evento 9i1w: ILM Configuration: Error ‘ERR_CONFIG_DB’

Causa: Permissões insuficientes no banco de dados Sync DB do serviço - adicione a conta do SharePoint como DBO, schema default DBO e reinicie o serviço.


Como analisar possíveis problemas durante o provisionamento 




A melhor forma para analisar possíveis problemas é por meio da ferramenta ULS Viewer. Você poderá filtrar os logs pela categoria "User Profiles" para monitorar o provisionamento e analisar a causa raiz do problema.

Existem n causas a mais que poderão causar esse comportamento, porém espero ter ajudado um pouco na sua busca...

[]

quarta-feira, 15 de janeiro de 2014

Integração do Team Foundation Server (TFS) com Project Server 2013



Eu integrei esses dias pela primeira vez o Project Server com o TFS e gostaria de compartilhar a experiencia. Uma experiencia boa, visto que o TFS é um produto bem diferente do SharePoint....


1. Instalação do pré-requisitos, que eu não vou tratar aqui. 


2. Coleção dos dados que precisaremos para configurar o TFS:
a.) URL do PWA

b.) endereço do TFS, por exemplo http://servidor-tfs01:8080 
c.) endereço da coleção do TFS, por exemplo http://servidor-tfs01:8080/tfs 
d.) usuário de serviço do TFS (verifique a conta que executa o "Application Pool" do TFS no IIS)
e.) o nome do projeto 
f.) e pelo ultimo os usuários que devem interagir com o projeto no PWA

3. Configure as permissões do usuário de serviço do TFS no PWA, ele precisa ter as seguintes permissões:

- Global -Admin: Manage Enterprise Custom Fields, Manage Server Events, Manage Site Services, and - Manage Users and Groups.
- Global -General: Log On, New Task Assignment, and Reassign Task.
- Global -Project: Build Team on New Project.
- Global -Views: View Approvals, View Project Center, View Resource Center, and View Task Center.
- Category – Project: Open Project and View Project Site.

- Category – Resource: View Enterprise Resource Data.

4. Registre o PWA no TFS utilizando os seguintes comandos (http://msdn.microsoft.com/en-us/library/gg412647.aspx):





cd %programfiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE


TfsAdmin ProjectServer /RegisterPWA /pwa:http://contoso.com/PWA /tfs:http://servidor-tfs01:8080/tfs


TfsAdmin ProjectServer /MapPWAToCollection /pwa:http://contoso.com/PWA /collection:http://servidor-tfs01:8080/tfs


TfsAdmin ProjectServer /UploadFieldMappings /collection:http://servidor-tfs01:8080/tfs/primeiro_projeto /useDefaultFieldMappings


5. A utilizaçãp do template SCRUM na criação da coleção vai resultar em seguinte evento no comando anterior:



TF294026: The following work item field does not exist: Microsoft.VSTS.Scheduling.CompletedWork. Contact your administrator for Team Foundation Server to add this work item field.

Nesse caso segue o artigo http://msdn.microsoft.com/en-us/library/gg412658.aspx#dmappings para ajustar o mapeamento e execute o comando novamente.

6. Mapea os projetos utilizando o seguinte comando:



TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://servidor-tfs01:8080/tfs /enterpriseProject:MeuProjeto /teamproject:MeuProjetoTFS /workitemtypes:"Product Backlog Item,Bug,Task"


7. Verifique a sincronização em caso de problemas por meio do seguinte comando:

TfsAdmin ProjectServer /GetSyncMessages /collection:http://servidor-tfs01:8080/tfs




Artigos relacionados



Verify the synchronization process for TFS-Project Server integration

View synchronization engine error messages

Understand how updates to specific fields are managed

Define the work item types available for synchronization

Fields available for mapping from Project Server to Team Foundation only