Integração do SharePoint rápido: Código de exemplo, para exibir todas as vistas rápidas disponíveis

Aqui está um código que mostra todos os modos de exibição disponíveis de um RÁPIDO baseado no nome de servidor Indexer (o processo do servidor com o qual nos comunicamos.). Ofereço-isto para todos dar um gostinho de como é usar a API rápido fornecido.

usando Sistema;
usando System.Collections.Generic;
usando System. Linq;
usando System. Text;
usando Com.FastSearch.Esp.Search;
usando Com.FastSearch.Esp.Search.Http;
usando Com.FastSearch.Esp.Search.Navigation;
usando Com.FastSearch.Esp.Search.Query;
usando Com.FastSearch.Esp.Search.Result;
usando Com.FastSearch.Esp.Search.View;
usando System.Collections.Specialized;
usando System. Collections;


espaço para nome Conchango
{
    Classe EnumerateFASTViews
    {
        estático privatevoid Principal(Cadeia de caracteres[] args)
        {

            ISearchFactory searchFactory;

            NameValueCollection nameValueCollection = Novo NameValueCollection();

            NameValueCollection("fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
            NameValueCollection("Com.FastSearch.Esp.Search.Http.QRServers", "fastdemoback:15100");
            NameValueCollection("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");

            searchFactory = SearchFactory.NewInstance(nameValueCollection);

            Console.WriteLine("Totais Views: [" + searchFactory.GetSearchViewList().Contagem + "].");

            int Eu = 0;

            foreach (objeto ó em searchFactory.GetSearchViewList())
            {
                Console.WriteLine("View [" + i     + "]: [" + o.ToString() + "].");

            }

            Console.ReadLine();

        }
    }
}

Note que eu me considero um mal competente programador c# e tenho pele fina, Então não enviar qualquer caminho de framboesas, especialmente re: o "foreach (o objeto em …)" construct 🙂

</fim>

Technorati Tags: ,

Subscreva ao meu blog.

RÁPIDO e SharePoint integração primeiro olhar

Eu tive sorte de ter uma oportunidade de trabalhar em um rápido <–> Projeto de integração do SharePoint e pensei que eu iria continuar a compartilhar minha limitada experiência com a Comunidade.

A Microsoft está em o processo de compra RÁPIDO. Não sei nada sobre o horário, exceto que ele deve ser concluído no "2º trimestre" Eu assumo o que significa por 06/30/08.

Do meu projeto, em um nível muito elevado, chamadas para a criação de algumas partes da web que tem aproximadamente o mesmo olhar, sentir e funcionalidade como o musgo padrão caixa de busca e resultados de núcleo web parte, Mas puxando de rápido. Já fiz alguns passos nessa direção.

É um motor de busca dedicado a velocidade. Não é baseado na tecnologia Microsoft, Apesar de ser óbvio para mim que alguns dos engenheiros rápidos entender claramente MS tech (ou eles fizeram uso de empreiteiros).

RÁPIDO:

FAST é um produto de servidor de grande monstro (e não digo isso num sentido ruim; MOSS é um produto de grande monstro para mim também). Parece ser baseado em Java e notei algumas coisas de apache e talvez algumas PHP. Eu não ficaria surpreso se houvesse outros pedaços de tecnologia misturada aqui e ali. Isso definitivamente é executado no windows server e está funcionando bem no ambiente virtual que eu usei.

Faz uso de um serviço de web de fachada que rastreia o conteúdo do SharePoint para indexação em sua maneira especial de rápido.

Um usuário final do SharePoint seria praticamente em casa com a interface de usuário do FAST. Tem pesquisa simples/avanço, mostra resultados, é grande a relevância (Mas não vejo como ele lida com relevância social). No entanto, Ele vai mais longe. Seu lematização parece melhor. Eu realmente não posso articulá-lo bem, mas vou apenas dizer "é melhor." Você tem minha palavra por isso, ou não 🙂 posso elaborar sobre este ponto no futuro, como aprender mais.

MUSGO:

RÁPIDO fornece um. NET-amigável DLL que fornece uma interface para o motor rápido. Isto torna possível para nós criar web parts ou páginas de aplicativos ou o que quisermos consultar rapidamente e apresentar os resultados.

Parece haver também uma interface de serviço web.

Eu também tenho acesso a uma parte da web fornecido pelo FAST que integram MOSS e rápido. Não sei se este é um POC, algo que foi chicoteado até como uma demo ou o que. Definitivamente é uma ferramenta de aprendizado, Não tenho tanta certeza se está pronto para produção.

É isso por agora. Medida que progridem através do projeto, Vou postar mais.

</fim>

Technorati Tags: , ,

Subscreva ao meu blog.

Determinar rápido indexer Porto

Para se comunicar com busca rápida através de sua API, Precisamos saber a porta em que está executando o indexer.

Eu segui estes passos para localizá-lo:

  1. Entrar no site admin rápido (http://server:port/admin).
  2. Navegue para a visão geral do sistema.
  3. Localize "busca Dispatcher" e clique no ícone de binóculo:

    imagem

  4. Eu usei com sucesso o valor, 15100 para nome de informação"" = "http":

    imagem

Notas:

1. Porto 15100 Parece ser o número da porta de fora-de--caixa padrão para o indexer.

2. Use este código semelhante ao seguinte para instanciar uma conexão rápida:

     ISearchFactory searchFactory;
    
        NameValueCollection nameValueCollection = Novo NameValueCollection();
    
        NameValueCollection("fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
        NameValueCollection("Com.FastSearch.Esp.Search.Http.QRServers", "fastdemoback:15102");
        NameValueCollection("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");
    
        searchFactory = SearchFactory.NewInstance(nameValueCollection);

3. Se você escolher uma porta descontroladamente incorreta, Você receberá uma mensagem de erro útil:

imagem

4. No entanto, Se você escolher o número de porta sobre a visão (15102) Não te essa mensagem de erro útil. Em vez disso, mais tarde, quando você tenta acessar quaisquer dados através de uma pesquisa ou referência a uma vista rápida, Você obterá um erro. Depuração mostra que do searchFactory vista counté zero. Você receberá a mensagem "Falha ao buscar a lista de exibição de pesquisa".

</fim>

Technorati Tags:

Subscreva ao meu blog.

No sentido de padrões de Design técnico de SharePoint: Fluxo de trabalho do SharePoint Designer + Receptor de eventos = coquetel de alta potência

Um dos padrões emergentes de que encontrar na elaboração de soluções do SharePoint utiliza o fluxo de trabalho do SharePoint Designer e um receptor de eventos.

Aqui está um cenário de negócios para colocá-lo no contexto:

  • Enviar um documento para uma lib doc.
  • Eu chutar fora várias etapa de fluxo de trabalho criado usando o SharePoint Designer.
  • Em algum momento durante o processo de, fluxo de trabalho atribui uma tarefa a alguém (através de coletar dados de usuário ou atribuir uma tarefa).
  • Queremos usar um KPI para controlar quanto tempo essa tarefa está aguardando conclusão. O KPI mostra verde para tarefas que são concluídas ou devida mais de 3 daqui a dias. Ele mostra amarelo se a tarefa é pra amanhã ou hoje. Ele mostra vermelho se a tarefa é vencida.
  • Aqui está o kicker: Eu quero a data que impulsiona o KPI para estar ciente de férias.

Não posso imaginar um devido reconhecimento de férias muito facilmente a data no fluxo de trabalho do SharePoint Designer. Eu teria que criar uma ação personalizada ou usar uma ferramenta de festa 3. No entanto, é fácil de calcular uma data em um receptor de eventos. Mesclar os dois juntos e obtemos um padrão como este:

  • Definir um oculto Sim/nenhuma coluna de site na biblioteca de documento rotulada "DoCalcualteDueDate".
  • Inicializá-lo para false.
  • No momento apropriado do fluxo de trabalho (EG. pouco antes os "coletar dados" ação), atribuir esse valor como True.
  • Um ItemUpdate() receptor de eventos procura para ver se "DoCalculateDueDate" é verdade. Desde que o receptor de evento é executado em cada atualização, "DoCalculateDueDate" é normalmente false.
  • Quando o fluxo de trabalho atribui DoCalculateDueDate para true, o receptor de evento calcula o devido reconhecimento de férias data.
  • Quando o receptor de evento é que este cálculo, Ele define o sinalizador DoCalculateDueDate para false.

No final, Fluxo de trabalho do SPD é comunicado com um receptor de eventos através do sinal de DoCalculateDueDate e temos reconhecimento de férias devido as datas que são atribuídas no momento exatamente correto na vida do fluxo de trabalho. Controles de SharePoint Designer quando é atribuída a data de vencimento, mas o receptor de evento executa o cálculo real e atribuição.

</fim>

Subscreva ao meu blog.

Comportamento observado: Fluxos de trabalho SPD se movendo dentro de um conjunto de sites

ATUALIZAÇÃO: Estive pesquisando como a incorporação de um fluxo de trabalho do SPD em uma definição de site. Esta cadeia de fórum MSDN tem algumas informações interessantes. Não é conclusivo, mas aponta para o caminho através da selva.

Eu estou dando este post um pouco excêntrico comportamento observado"" chumbo, desde que eu estou um pouco desconfiado de tirar conclusões a partir dele. Fluxos de trabalho do SPD são … temperamental.

As pessoas muitas vezes perguntam / querendo saber / se preocupar com movendo os fluxos de trabalho do SPD de um lugar para outro. Hoje, Segui estes passos e fez estas observações:

  • Eu criei um fluxo de trabalho usando o SharePoint Designer em um site ligado a uma biblioteca de documentos.
  • A biblioteca de documentos associada já abrigou diversos documentos.
  • Guardei o site como um modelo.
  • Quando eu salvo o site como um modelo, Salvei o conteúdo, bem como.
  • Eu criei um novo site na mesma coleção site usando esse modelo.

Neste ponto, Eu tentei executar o fluxo de trabalho. Ele prontamente se finalizado com a mensagem de log, "Falha ao iniciar".

Eu esperava por isso. Eu tenho poucas expectativas quando se trata de fluxos de trabalho do SPD se movendo.

Eu continuei:

  • Inaugurado o site no SharePoint Designer.
  • Tinha uma espiada no fluxo de trabalho. Pareceu-me bem.
  • Cliquei em "Concluir".
  • Eu corri o fluxo de trabalho.

Desta vez, funcionou muito bem.

Vou acrescentar que este fluxo de trabalho usado a "coleta de dados de usuário" ação que é uma ação relativamente complexa sob o capô.

Concluo, provisoriamente, que o processo de "acabamento" o fluxo de trabalho causou SPD associar o fluxo de trabalho do SPD corretamente a nova biblioteca de documentos. Também concluir que o XOML e outros artefatos XML são razoavelmente "soltos". Eles não são super rigidamente acoplados na biblioteca de documentos.

O que isso significa? Supondo que é um processo confiável e reprodutível, Há pelo menos um método áspero que podemos usar para movê-los. Não sei se isso iria funcionar se cruzamos fronteiras de coleção do site ou até mesmo mais drasticamente, fazendas novas inteiras (EG. dev para estágio para prod).

Se você está lendo isso e inclinado, por favor, postar um comentário ou correio eletrónico a mim sua história de migração SharePoint Designer. Eu alegremente vou atualizar esta postagem com opiniões assim oferecidos.

</fim>

Subscreva ao meu blog.

Rápido e simples: Campo de atualização somente para fluxo de trabalho

Geralmente é útil armazenar informações de status em uma lista personalizada como um código de aprovação que nunca deve ser diretamente manipulado pelos usuários finais. Este é um cenário comum de negócios. Eu tenho trabalhado em um projeto deste ano que gera várias datas de status e lembrete via fluxos de trabalho do SharePoint Designer que então dirigir KPIs e geralmente suportam processos de negócios críticos-tempo.

Use um tipo de conteúdo de site / coluna para conseguir esse efeito.

Criar um tipo de conteúdo do site com a coluna de status conforme mostrado:

imagem

Observe o Status" (para Demo)" campo na parte inferior.

Próximo, Clique no nome da coluna para acessar as propriedades da coluna. Selecione "escondido (Não aparecerá em formas)" na seção Configurações de coluna, como mostrado:

imagem

Isto remove o campo de formulários padrão Editar/atualizar. No entanto, está ainda disponível nos modos de exibição, KPIs, o modelo de objeto e em nenhum outro lugar você quer usá-lo, incluindo o fluxo de trabalho do SPD.

</fim>

Subscreva ao meu blog.

Domingo engraçados: “Eu pensei que isto era suposto ser uma cidade de Rich”

Há um pouco mais de três anos, minha esposa e eu assinado meu filho para uma actividade de Verão, Os jogadores de Midland Park. Este é um grupo de teatro que gasta cerca de três ou quatro semanas se preparando para uma peça e em seguida, mostrando-o aos pais, amigos e parentes. Sempre foi muito bem feito.

Não sei se a criança é assim, Mas meu filho é extremamente relutante em experimentar coisas novas. Sabendo disso, Nós assinou-o para o programa. Nós achamos que é melhor para alertá-lo para esses tipos de coisas mais cedo e muitas vezes. Assim, a fim de superar sua relutância natural, Nós dissemos-lhe mais cedo e fiz o nosso melhor para fazê-lo soar como diversão, etc. Mesmo com uma campanha publicitária de vários meses, Ele ainda não estava convencido. Nós forçou a fazer, Embora, e como é o caso, Ele tinha um grande tempo.

Quando rolou o segundo ano, Ele tinha mais uma vez convencido de que ele não queria participar. Mas, nós tinha oferecido e no dia zero, Deixei uma manhã na escola onde eles praticam. Quando fui buscá-lo depois do almoço, Ele estava muito animado, Só sorrisos e anunciou, "A peça é a Coelho de pelúcia e eu quero ser o coelho". Ele tinha passado literalmente meses carregando (às vezes histericamente) sobre como ele não queria ter nada a ver com os jogadores do parque e depois do primeiro dia, Ele quer ser o papel principal na peça. Já vimos este padrão antes.

(Para nossa surpresa, Ele conseguiu o papel de coelho e ele era incrível.)

Rápido para a frente alguns anos. Ele esteve no parque jogadores três vezes agora, Então, ele é algo de um veterano. Este verão (2008), Os jogadores começa de novo. Nesse meio tempo, Ele finalmente convenceu-nele realmente Não quer jogar futebol e ele nunca gostou de basquete. Que o deixou com nenhuma atividade extra curricular para o final do inverno / início da Primavera. Um cliente com quem eu trabalhava mencionou que sua filha estava em um programa chamado estágio direito. À direita do palco é uma versão ligeiramente mais cara do Parque jogadores e não é na minha cidade, Mas adjacente a ele. Perfeito.

O que podemos saber sobre aquela cidade é que é praticamente um outro país em termos de riqueza. Tem um trem de alta-frequência para Wall Street e NYC em geral. É um lugar rico. Dentre os temas de discussão familiar em curso é que se deve ter mudamos para aquela cidade em vez de onde vivemos agora. É uma cidade maior, suas escolas para oferecer mais programas para as crianças, etc. Minha esposa cresceu naquela cidade, e os pais dela moram lá, Então nós são "viciadas em" Apesar de não viver lá. Eu pessoalmente cresci em diferentes circunstâncias em Massachusetts, Então não tenho muito a dizer sobre isso durante a conversa do jantar em família. Isso não quer dizer que não somos felizes onde vivemos.... Só sabemos que essa cidade está um nível acima de nossa cidade economicamente.

Próximo programa de estágio da direita começou muito cedo para nos lançar nossa campanha de publicidade normal para superar a relutância do meu filho. Isto é, quando ele veio com um meus pessoais favoritos argumentos contra a fazer algo: "Noites de sexta-feira são Prime noites para dormir excessos!" À direita do palco ia interferir com seus encontros de fim de semana.

Chega o dia, Podemos trazê-lo de lá e soltar no-lo fora e como tudo o resto, assumiu seu amor natural de estar vivo e ele está tendo um bom tempo com isso.

Este fim de semana passado minha mulher estava falando com ele e pela primeira vez, Acho que ele está costurando suas discussões com precisão para o seu público. Ela pediu-lhe como palco compara a Midland Park jogadores. Ele diz a ela que "no parque os jogadores, Temos que nos ajudam adolescentes. Não existem em qualquer um no palco. No parque os jogadores, adolescentes fazem todos os adereços. No palco, Temos que trazer nossos próprios adereços. Temos que fazer tudo. E então ele torce a faca: "Eu pensei que isto era suposto para ser uma cidade rica."

Todos estes anos, Nunca pensei que ele estava ouvindo ou entender alguma coisa, como relacionado com a "cidade rica". No entanto, Acontece que ele era.

</fim>

Subscreva ao meu blog.

Technorati Tags:

SharePoint não fornece calendário Roll-ups; Possíveis soluções

ATUALIZAÇÃO: Uma pessoa anônima nos comentários postos neste link: http://www.atidan.com/atidan-collaboration-kit.php

Os usuários do fórum muitas vezes uma perguntam como esta:

"Eu gostaria de ter um calendário no nível do site que é preenchido por eventos de calendários de subsite. Idealmente, usuários em subsites irão criar calendário de eventos, e terá a opção de marcando-os como ' público.’ Eventos marcados como pública dinamicamente aparecerá no calendário site compartilhado. Assim, o calendário do site compartilhado é um roll-up de todos os eventos públicos de todos os calendários de subsite."

É WSS 3.0 ou MOSS 2007, Não é possível configurar diretamente um "roll-up" calendário. Calendários existem na própria, independente de qualquer outro calendário.

Para criar um calendário de enrolar, Siga um desses caminhos:

  1. Usar uma Web Part de consulta de conteúdo. Esta é a solução mais fácil para os usuários do MOSS (WSS não fornece CQWP). CQWP, Infelizmente, não fornece uma exibição de calendário de dados fora da caixa. Ele fornece flexibilidade de processamento enorme (Veja aqui um exemplo) Mas, por padrão, mostra seus resultados em formato de lista simples. Em muitos casos, CQWP provavelmente uma boa escolha.
  2. Uma solução mais orientado para a programação seria usar receptores de eventos. Implementar a receptores de eventos sobre os calendários de subsite que mantém seus eventos públicos em sincronia com o calendário do mestre. Como um calendário determinado subsite é modificado, chegar até o mestre calendário e atualizá-lo conforme necessário. Esta opção está disponível em ambos WSS 3.0 e musgo.

Há provavelmente outras soluções inteligentes para este problema. Se você tem um ou sabe de um, por favor, deixe um comentário ou correio eletrónico a mim e vou atualizar este post.

</fim>

Subscreva ao meu blog.

Criar Sites (SPWeb) através do fluxo de trabalho do SharePoint Designer

Esta entrada de blog é mais um "no Reino do possível" entrada vs. informação concreta.

Nós temos um projeto técnico que chama por nós criar um site em um conjunto de sites através de um processo de fluxo de trabalho manualmente lançado. Basicamente, usuários inserir dados em um "novo cliente" lista personalizada e, em seguida, quando eles têm terminado e validado o processo de entrada de dados, Precisamos criar um site para que o cliente.

Eu sou um grande fã de fluxo de trabalho declarativo, bem como um programador de fluxo de trabalho do studio visual fraco, Então eu queria cumprir a exigência usando o SharePoint Designer.

Eu pretendo escrever sobre isso mais detalhadamente (e esperemos que apresentar para um grupo de usuários ou duas no ano que vem), Mas aqui está a solução global:

  • Criar uma ação personalizada que se integra com o SPD.
  • A ação personalizada permite SPD para invocar um serviço web e passá-lo uma seqüência de caracteres de XML.
  • Serviço Web localiza a linha na lista personalizada e cria um novo site de acordo com os dados para esse novo cliente usando uma definição de site personalizada.
  • Serviço da Web, em seguida, atualiza a lista personalizada com algumas informações, como um link para o novo site.

Consideramos outras abordagens, como manipuladores de eventos e fluxo de trabalho do visual studio com base. A abordagem do SPD dá nossos usuários finais um pouco mais controle sobre o processo de. Concedida, Há um monte de código c# nesta solução, Mas ele é encapsulado dentro de um fluxo de trabalho declarativo, Então pegamos alguns dos benefícios do fluxo de trabalho declarativo enquanto enganchando para o serviço de criação de site.

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</fim>

Subscreva ao meu blog.

Technorati Tags: ,