Seguridade mínima esixida para formularios do InfoPath

I needed to meet a security requirement for an InfoPath form today. In this business situation, a relatively small number of individuals are allowed to create a new InfoPath form and a much wider audience are allowed to edit it. (Esta é a nova contratación en boarding forma utilizada pola área de recursos humanos, que lanza un fluxo de traballo).

Para alcanzar este obxectivo, Eu creei creou dous novos niveis de permiso ("create and update" and "update only"), broke inheritance for the form library and assigned permissions to a "create, actualizar" user and a separate "update only" usuario. The mechanics all worked, but it turned out to be a little more involving than I expected. (If you feel a little shaky on SharePoint permissions, check out this blog post). The required security configuration for the permission level was not the obvious set of granular permissions. To create an update-only permission level for an InfoPath form, Eu fixen o seguinte:

  1. Create a new permission level.
  2. Clear away all options.
  3. Selected only the following from "List permissions":
    • Edit Items
    • View Items
    • View Application Pages

Selecting these options allows a user to update a form, but not create it.

The trick was to enable the "View Application Pages". There isn’t any verbage on the permission level that indicates that’s required for update-only InfoPath forms, but turns out it is.

Create-and-Update was even stranger. I followed the same steps, 1 through 3 arriba. I had to specifically add a "Site Permission" option: "Use client integration features". De novo, the description there does not make it seem like it ought to be required for an InfoPath form, but there it is.

</final>

Que “Intermedio” Sentimento; Observacións sobre SharePoint Consulting

Desafortunadamente, phase one of my last project has come to a close and the client has opted to move ahead by themselves on phase two. We did our job too well, as usual 🙂 I’m now between projects, un momento especial para consultores persoal como eu (as opposed to independents who must normally live in perpetual fear of in-between time 🙂 ). We staff consultants fill this time in various ways: Working with sales folk to write proposals; filling in for someone or backing up a person on this or that odd job; studying; Blogs :). It’s hard to plan more than a few days in advance. At times like this, while I have a bit of time on my hands, I like to reflect.

I’m almost always sad to leave a client’s campus for the last time. We consultants form a peculiar kind of relationship with our clients, unlike your typical co-worker relationship. There’s the money angle — everyone knows the consultant’s rate is double/triple or even more than the client staff. You’re a known temporary person. As a consultant, you’re a permanent outsider with a more or less known departure date. Aínda, you eat lunch with the client, take them out to dinner and/or for drinks, buy cookies for the team, go on coffee runs, give/receive holiday cards — all the kinds of things that co-workers do. On one hand, you’re the adult in the room. You’re an expert in the technology which puts you in a superior position. Por outra banda, you’re a baby. On day zero, consultants don’t know the names, the places or the client’s lingo. Most times, consultants never learn it all.

Cando as cousas van ben, you become very well integrated with the client’s project team. They treat you like a co-worker in one sense, and confidant in another. Since we don’t have a manager-style reporting relationship with the client, the project team often feels a little free to air their dirty laundry. They let their barriers down and can put the consultant into an awkward position, nunca entender que eles están a facer iso.

Consultants often don’t get to implement phase two and that never gets easy for me. I think this is especially hard with SharePoint. Phase one of of your typical SharePoint project covers setup/configuration, Goberno, taxonomía, básicas de tipos de contido, etc. e en moitos aspectos, elévase a unha longa, extremely detailed discovery. That’s how I view my last project. We did all the basic stuff as well as execute some nice mini-POC’s by extending CQWP, implementación de conexións BDC para PeopleSoft, introduciu un fluxo de traballo moi complexo co SharePoint Deseño, touched on basic KPI’s and more. A proper phase two would extend all of that with extensive, case xeneralizada BDC, moi bo fluxo de traballo, ben afinado e busca mellor, Centro de Rexistros, Servizos de Excel e, probablemente, máis importante, reaching out to other business units. Pero, non é ser para min, and that’s sad.

Con base nesa experiencia recente, I think it’s fair to say that a proper enterprise SharePoint implementation is a one year process. It could probably legitimately run two years before reaching a point of diminishing returns. Details matter, claro.

That’s the consultant’s life and all of these little complaints are even worse in a SharePoint engagement. Como xa escribín antes, SharePoint’s horizontal nature brings you into contact with a wide array of people and business units. When you’re working with so many people, you can see so many ways that SharePoint can help the company become more efficient, save time, do things better… but you don’t always get to do them.

I often look back to my first job out of college, before starting a consulting career 1995. We did get to do a phase two and even a phase three. Those were nice times. On the downside, con todo, that means that that would mean a lot of routine stuff too. Managing site security. Tweaking content types. Creating views and changing views. Dealing with IE security settings. Restoring lost documents. Blech! 🙂

Despite my melancholy mood, I can’t imagine a place I’d rather be (except at a warm beach with a goodly supply of spirits).

I can’t wait to get started implemented the next enterprise SharePoint project.

(Apropos of nothing, I wrote most of this blog entry on an NJ Transit bus. I don’t think I made any friends, but one CAN blog on the bus 🙂 )

</final>

Technorati Tags:

Domingo divertido: “Eles non son tan malo”

Volver preto 1999, Eu estaba gastan moito de semana en Santa Barbara, CA, traballando a un cliente, leaving my poor wife back here in New Jersey alone. I dearly love my wife. I love her just as much today as I did when she foolishly married me 1,000 years or so ago. Nalgún lugar ao longo da liña, I coined a phrase, "special fear", as in "Samantha has special fears." She as a special fear of "bugs", which to her are not flies or ladybugs, but rather microbes. She’s afraid of this or that virus or unusual bacteria afflicting our son, or me, but never really herself. (She is also specially afraid of vampires, miniature evil dolls (especially clowns) and submarine accidents; she has out-grown her special fear of people dressed in Santa Claus outfits).

Un día, my co-worker and I decided to drive up into the nearby mountains near Ohai. At one point, we got out of the car to take in the scene. When we got back into the car, I noticed that a tick was on my shoulder. I flicked out the window and that was it.

That night, I told her about our drive and mentioned the tick. The conversation went something like this:

S: "Oooo! Those are bad. They carry diseases."

P: "Well, I flicked it out the window."

S: "They are really bad though. They can get under your skin and suck blood and transfer bugs. You better check your hair and make sure there aren’t any in your head!"

P: In a loud voice: "My God! CAN THEY TAKE OVER YOUR MIND???"

S: Literally reassuring me: "No, they’re not THAT bad."

</final>

Technorati Tags:

Fácil e rápida: Formulario InfoPath automaticamente Aberto de SharePoint Design Correo-e

Actualización: Madjur Ahuja apunta este enlace dun discusión newsgroup: http://msdn2.microsoft.com/en-us/library/ms772417.aspx. It’s pretty definitive.

===

We often want to embed hyperlinks to InfoPath forms in emails sent from SharePoint Designer workflows. When users receive these emails, poden premer na ligazón do correo-e e ir directamente ao formulario do InfoPath.

Este URL construción monstro funciona para min:

http://server/sites/departments/Technical Services/InformationTechnology/HelpDesk/_layouts/FormServer.aspx?XmlLocation=/sites/departments/Technical Services/InformationTechnology/HelpDesk/REC REM RED Forms/REC2007-12-18T11_33_48.xml&Source=http://server.corp.domain.com/sites/departments/Technical%20Services/InformationTechnology/HelpDesk/REC%20REM%20RED%20Forms/Forms/AllItems.aspx&DefaultItemOpen = 1

Substituír o texto en negra vermello co nome do formulario, como se mostra na imaxe seguinte:

imaxe

Teña en conta que hai unha morea de camiño hard-Coded ese URL, as well as a URL-encoded component. If this is too hard to translate to your specific situation, try turning on alerts for the form library. Post a form and when you get the email, ver o código fonte do correo electrónico e vai ver todo o que ten que incluír.

Astute readers may notice that the above email body also shows a link that directly accesses the task via a filtered view. I plan to explain that in greater detail in a future post.

</final>

Pensar sobre produtos comerciais

Engada un Proxecto extensións SharePoint Deseño en CodePlex a principios deste ano e, a pesar de que é realmente moi limitado en alcance, Eu estimo que foi descargado por 40 para 60 (posiblemente, ata mesmo 100) companies in just about two months. That indicates to me that there’s a market for that solution and if I were to successfully commercialize it, that could translate into a goodly amount of beer 🙂

A miña formación é en realidade moito máis no desenvolvemento de produtos e sei o que é necesario para traer un produto top-notch, en oposición a un hobby CodePlex, to market. In my vida pasada, Eu era responsable do produto R&D for all software products. The difference between then and now is that I’m a consultant now working for an (excelente) empresa de consultoría (Conchango). Anteriormente, Tiven unha compañía enteira detrás de min e á miña fronte, selling and supporting the products we brought to market. Hoxe, Eu sería só.

Teño varias ideas de produtos presente, but I think the easiest would be to create a commercial version of the above-mentioned CodePlex project that uses that as a starting point and extends it further. My fuzzy off-the-cuff thinking is to charge something like $100 para unha licenza de creador e ilimitado $500 per production web front end. I think I would also give away the source code.

Se tes ideas ou experiencias que está disposto a compartir, por favor, deixe un comentario ou enviar correo-e me directamente. I’d like to hear opinions like:

  • É todo valer a pena?
  • Suxestións prácticas para comercialización, obtención de diñeiro, distribuidor.
  • Prezos.
  • Apoiar.
  • Calquera outro comentario que quere deixar.

It’s "easy" para vir enriba con ideas de produtos e implementar las, though many dozens of hours of work are required. The other stuff is not as easy for me.

</final>

Technorati Tags:

Domingo Morning divertido: “Xesús Must Die”

Nós compramos noso primeiro (e só) "luxury" car back when hurricane Floyd nailed the east coast of the U.S. We got a LOT of rain here in New Jersey and Varios días pasaron before life returned to normal. Just before Floyd struck, fixemos unha oferta para un Volvo usado 850 GL e despois chegou Floyd, levou-o a casa.

It was our first car with a CD player. Like most new car owners, fomos un pouco tolo CD, revived our dormant CD collection and went on long drives just to listen to CD’s in the car. Like all fads, this passed for us and we ended listening to the same CD over and over again. No noso caso, era Jesucristo Superstar.

Un dos (moitos) pezas brillantes en que opera rock é cantada polos tipos relixiosos establecemento, liderado por Caifás, the "High Priest". They sing their way into deciding how to handle the "Jesus problem" and Caiaphas directs them to the conclusion that "Jesus must die". The refrain on the song is "Just must die, debe morrer, debe morrer, this Jesus must die". You hear that refrain a lot in that piece.

No momento, my son was about three years old. You can probably see where this is going.

I came home from work one day and my son is in the living room playing with toys and humming to himself. I’m taking off my jacket, mirando a través do correo electrónico e todo o meu walk-in-the-door habitual cousas e de súpeto podo entender que el está só dicindo, realmente non cantar: "Jesus must die, debe morrer, must die." I was mortified. I could just see him doing that while on one of his baby play dates at a friend’s house — probablemente a última data do xogo co amigo bebé.

We pulled that CD out of the Volvo after that 🙂

</final>

Google aceptou meu Blog Live Spaces no programa AdSense

Actualización: A partir de 03/09, I have found no way to integrate my live spaces account with Google Adsense. Microsoft’s system here seems to prevent all of the technical mechanisms that Google provides would-be adsense hosters. I tend to believe this is mainly a side effect of the security they’ve built into live spaces, not a direct effort to disable Adsense.

Isto non é un post SharePoint, pero pode ser de interese para os blogueiros en xeral.

Someone commented on their Windows Live Spaces blog that Google affirmatively denied their application to participate in AdSense. She theorized that Google denied her because Windows Live Spaces hosts her blog. Con todo, Estiven recentemente aceptado no programa para os meus espazos Blog ao vivo, entón a política ten cambiado ou Google negouse la por algún outro motivo.

Por suposto, Non vexo ningunha maneira obvia para integrar Google AdSense no meu espazo en directo, pero é un comezo 🙂

</final>

Technorati Tags: ,

Implementar Mestre / Relación detalles utilizando listas personalizadas

Os usuarios do foro a miúdo como preguntas como esta:

> Ola,
>
> Por favor, me diga se hai posibilidades de construír unha lista personalizada con
> Tipo de mestre e de detalles (como facturas) sen usar InfoPath.
>

SharePoint ofrece algúns fóra das características da caixa que soportan tipos de requisitos de negocios coma este.

En xeral, one links two lists together using a lookup column. List A contains the invoice header information and list B contains invoice details.

Usa as listas adicionais para manter o número de clientes, números de produtos, etc.

Usar a consulta de contidos web part (en só Moss) and/or a data view web part to create merged views of the lists. SQL Server Reporting Services (SRS) tamén está dispoñible para o lado da mesma comunicación.

Con todo, there are some important limitations that will make it difficult to use pure out-of-the-box features for anything that is even moderately complex. These include:

  • Tamaño da investigación relacionada listas vs. "smartness" of the lookup column type. A lookup column type presents itself on the UI differently depending on whether you’ve enabled multi-select or not. In either case, the out-of-the-box control shows all available items from the source list. If the source list has 1,000 items, that’s going to be a problem. The lookup control does not page through those items. Pola, it pulls all of them into the control. That makes for a very awkward user interface both in terms of data entry and performance.
  • Lookups "pull back" one column of information. You can never pull back more than one column of information from the source list. Por exemplo, you cannot select a customer "12345" and display the number as well as the customer’s name and address at the same time. The lookup only shows the customer number and nothing else. This makes for an awkward and difficult user interface.
  • No intra-form communication. Eu escribín sobre iso aquí. You can’t implement cascading drop-downs, condicional activar / desactivar campos, etc.
  • No cascading deletes or built-in referential integrity. SharePoint treats custom lists as independent entities and does not allow you to link them to each other in a traditional ERD sense. Por exemplo, SharePoint permite que cree dúas listas personalizadas, "customer" and "invoice header". You can create an invoice header that links back to a customer in the customer list. Entón, you can delete the customer from the list. Fóra da caixa, there is no way to prevent this. To solve this kind of problem, usaría normalmente manipuladores de eventos.

Pode parecer sombrío, but I would still use SharePoint as a starting point for building this kind of functionality. Though there are gaps between what you need in a solution, SharePoint permite cubrir esas lagoas usando ferramentas como:

  • Event handlers. Use them to enforce referential integrity.
  • Columnas personalizadas: Create custom column types and use them in lieu of the default lookup column. Add paging, buffer e os recursos AJAX para facelas sensibles.
  • BDC. This MOSS-only feature enables us to query other SharePoint lists with a superior user interface to the usual lookup column. BDC can also reach out to a back end server application. Use BDC to avoid replication. Rather than replicating customer information from a back end ERP system, use BDC instead. BDC features provide a nice user interface to pull that information directly from the ERP system where it belongs and avoids the hassle of maintaining a replication solution.

    BDC é unha característica Moss (non está dispoñible no WSS) and is challenging to configure.

  • Formulario web ASP.NET: Crear un formulario habilitados para AJAX completo que utiliza o modelo de obxecto do SharePoint e / ou servizos web para alavancar as listas do SharePoint, que proporciona unha interface de usuario moi sensible.

A última opción pode sentir como se está empezando de cero, pero considerar o feito de que a plataforma SharePoint comeza fóra coas seguintes características principais:

  • Modelo de seguridade co mantemento.
  • Sistema de menú co mantemento.
  • "Master table" (i.e. Contraer personalizadas) con seguridade, built-in de mantemento e auditoría.
  • Procurar.
  • Volver acabar ferramentas de integración (BDC).

Se comeza cun novo proxecto en branco no visual studio, ten unha morea de infraestrutura e encanamento para construír antes de chegar preto do que o SharePoint ofrece.

I do believe that Microsoft intends to extend SharePoint in this direction of application development. It seems like a natural extension to the existing SharePoint base. Microsoft’s CRM application provides a great deal of extensibility of the types needed to support header/detail application development. Although those features are in CRM, the technology is obviously available to the SharePoint development team and I expect that it will make its way into the SharePoint product by end of 2008. If anyone has an knowledge or insight into this, por favor, deixe un comentario.

</final>

Consello Rápida: Content Query web Part, Busca de valor de columna e XSL

I have a column name in a content type named "Real Estate Location".

That column is of type "lookup".

Eu modifiquei <CommonViewFields> e ItemStyle.xsl para mostrar a columna.

Un simple <XSL:valor de select =…> retorna un valor interno que inclúe datos de posición ordinal, como:

1;#Miami

Para obter o valor humano-friendly, usar XSL substring-after, como se mostra:

<XSL:value-of select="substring-after(@ Real_x005F_x0020_Estate_x005F_x0020_Location,'#')"></XSL:valor de>

Use esta técnica cando se está a traballar con valores de investigación en transformacións XSL e que obter o valor humano-friendly.

</ Comezo>

Technorati Tags: , ,

Beagle SharePoint edición de decembro Up & Vivir

Moitos de vós xa saben diso, pero a edición de decembro da Beagle SharePoint é en directo.

Todo artigo paga a pena ler na miña opinión.

Quero dar unha pequena colisión extra para artigo do meu compañeiro (Natalya Voskrensenskya). She provides a screen-shot extravaganza while describing how she used custom lists, fluxo de traballo, SharePoint Deseño, data views and other elements to implement a self-service training feature in MOSS. She describes techniques that can be applied in many different business scenarios. Check out o blog dela mentres está niso.

Non esqueza comprobar meu artigo as well 🙂 I wrote about using MOSS to help an HR department manage open positions.

</final>