Impresii dupa CeBit 2011

Autor: Tibi | Categorie: Sharepoint | Data: 7 Apr 2011

CeBit 2011Si anul acesta, aflati la a treia participare, iQuest a fost prezent la CeBit 2011, alaturi de alte companii romanesti. Motivul principal al prezentei noastre la CeBit l-a reprezentat cererea tot mai mare din piata pentru solutii Sharepoint: solutii colaborative, automatizare de procese, portaluri intra si extranet, gestiunea documentelor, BI dashboards etc

In 2011 Microsoft a avut o prezenta masiva, atragand multe companii care dezvolta aplicatii si in mediul Sharepoint.

S-au inceput dialoguri si exista pasi concreti de a incepe noi colaborari. Datorita experientei puternice pe zona Mobile a iQuest, am putut sa incepem dialoguri legate de parteneriate si in aceasta zona de mare cerere.

A fost de asemenea o buna ocazie de a cunoaste si alte firme romanesti din domeniul IT si a discuta posibilitati de colaborare.

Ne-am concentrat acolo pe discutiile cu experti din domeniile noastre de produse: Sharepoint si LynC server, solutii BI pe tehnologii Microsoft, Team Foundation server si SCRUM.

Pentru cei care se gandesc daca se merita sau nu sa participle la CeBit putem sa spunem ca atunci cand exista servicii targetate pe nise tehnologice

clar identificate, tehnologia respectiva fiind prezenta la targ, nu putem decat sa recomandam tuturor firmelor romanesti sa fie prezente la editiile viitoare.

Ca si trend-uri observate la CeBit anul acesta, putem mentiona faptul ca Microsoft a avut o prezenta impresionanta in zona Cloud Computing (AZURE).

De asemenea, toti operatorii mobil prezenti au scos in evidenta tabletele si smart-phone-urile, cum e cazul celor de la T Systems.

Notificari prin email si Alerte – Sharepoint Tasks List

Autor: Daniel | Categorie: Sharepoint | Data: 14 Mai 2010 | 1 comentariu

In urma cu cateva zile, am intampinat probleme la trimiterea de emailuri cand un nou task este adaugat intr-o lista de task-uri Sharepoint. O sa fac o mica introducere pentru a intelege contextul, inainte de a explica problema in sine.

Avem un workflow care creaza task-uri in lista predefinita de task-uri a unui site de colaborare in echipa. Cerinta de securitate este sa dai permisiune de citire userului asignat task-ului respectiv si de asemenea unui anumit grup sharepoint.

Am decis sa implementez cerinta de securitate ca si parte componenta a unui event handler:

public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
this.DisableEventFiring();

SPWeb web = properties.OpenWeb();
SPUser user = web.SiteUsers.GetByID(Convert.ToInt32(properties.AfterProperties["AssignedTo"]));

if (!properties.ListItem.HasUniqueRoleAssignments)
{
properties.ListItem.BreakRoleInheritance(false);
}

SPGroup group = properties.ListItem.Web.SiteGroups["My Group"];
SPRoleAssignment assignment1 = new SPRoleAssignment(group);

SPRoleDefinition roleDefinition = properties.ListItem.Web.RoleDefinitions["My Custom Permission Level"];
assignment.RoleDefinitionBindings.Add(roleDefinition);
properties.ListItem.RoleAssignments.Add(assignment1);
properties.ListItem.Update();
SPRoleAssignment assignment2 = new SPRoleAssignment(user.LoginName, user.Email, user.Name, string.Empty);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
properties.ListItem.RoleAssignments.Add(assignment2);
properties.ListItem.Update();
this.EnableEventFiring();
}

Cand am testat, am observat ca nu este trimis nici un email dupa ce workflow-ul creaza un task nou si dupa ce handler-ul nostru este apelat. Ce a fost foarte ciudat era faptul ca doar notificarea crearii task-ului nu fusese trimisa. Daca schimbam task-ul, persoana asignata primea notificarea pe email.

A trebuit sa inteleg mecanismul care produce notificarile prin email: facilitate de alerte Sharepoint collaboration. Am descoperit cateva lucruri interesante in timpul testelor mele si “cercetarea google” si vreau sa impartasesc aceste informatii si cu voi, inainte de a ne reintoarce la problema noastra.

Alertele sunt create/exista la nivelul unui site si pot fi asociate cu liste, item-uri sau obiecte custom. Daca construiesti un site folosind o definitie de site de tip Team Collaboration o alerta va fi creata automat si asociata listei de task-uri. Aceasta se intampla pentru ca optiunea de Notificare prin Email este activate (Tasks > Settings > Advanced Settings). Daca selectati “No” alerta va fi stearsa.

Pentru a vizualiza alertele existente (inclusive proprietatile acestora) intr-un site Sharepoint eu folosesc Sharepoint Manager 2007. Acest tool foloseste numai Sharepoint Object Model (OM) pentru a afisa informatia Sharepoint si ofera o ocazie buna de a invata foarte multe lucruri despre posibilitatile OM.
Urmatoarea imagine prezinta proprietatile alertei pentru lista predefinita de task-uri:

Merita observat faptul ca alerta noastra este alerta “System”, este o alerta imediata, folosind un destinatar dynamic pentru a primi adresele de email, are tipul de lista si este asociata la lista de task-uri.

Destinatar dinamic se refera la faptul ca alerta se leaga de coloana AssignedTo din lista de task-uri pentru a primi adresa de email. Deci doar persoanele asignate task-ului respectiv vor primi notificari pe email.

Alertele immediate pot fi de asemenea vizualizate in tabelul ImmedSubscriptions al bazei de date de continut.

Alerta in sine nu trimite nici un email. Doar introduce inregistrari in baza de date de continut (tabelul EventCache) si, bazat pe aceste inregistrari, altcineva este la datorie si trimite emailuri.

Emailurile sunt trimise de catre timer job-ul de Immediate Alerts (Central Administration > Operations > Timer Job Definitions). Exista un job pentru fiecare aplicatie web si este setat predefinit sa fie executat la interval de 5 minute. Puteti gasi informatii detaliate despre comportamentul anormal si rezolvarea acestuia, in acest articol.

Consecinta observabila din punctul de vedere al utilizatorului final este intarzierea care exista din momentul in care task-ul este adaugat/modificat (alert logic scrie in DB) si momentul la care este primit emailul (job-ul de timer citeste din DB si trimite emailul). In cel mai rau caz trebuie sa astepti 5 minute (predefinit) pentru a-ti putea vedea noile task-uri sau modificarile pe task-urile existente. Daca vrei sa modifici programatorul temporal de job timer, poti utilize urmatoarea comanda:

stsadm.exe -o setproperty -pn job-immediate-alerts -pv “every 3 minutes between 0 and 59″ –url

Dupa ce am inteles toate mecanismele procesului de notificare, am cautat greseala in mediul meu de lucru. Totul parea in regula, asa ca am pornit cercetarea mea in jurul securitatii listei de task-uri. Mai jos va prezint scenariile testate de mine si comentariile aferente:

1. Am lasat mostenirea permisiilor nemodificata. Lista nu avea nici o permisiune pentru utilizatorul AssignedTo. Era clar ca mecanismul de modificare isi intrase in rol si ca job-ul de alerte imediate nu trimite nici un email. Asigurati-va deci ca acordati nivelul necesar de permisii utilizatorului AssignedTo al item-ului din task pentru ca acesta va primi notificarile prin email.

2. Am inlaturat mostenirea si am adaugat permisii numai utilizatorului AssignedTo. Surpriza: a functionat! Notificarea despre crearea task-ului a fost trimisa prin email.

3. Am mutat codul care creaza permisiile pentru utilizator deasupra celui care creaza permisiile pentru grup. Alta surpriza: functiona si acum.

4. Am crezut apoi ca s-ar putea sa aiba legatura cu modul de apelare Update asa ca am comentat prima declaratie properties.ListItem.Update() in codul original al event handler-ului. Aceasta implementare a functionat conform asteptarilor si a devenit si Solutia noastra finala in aces caz.

Este evident acum unde era problema, dar nu a fost la momentul implementarii event handler-ului: in codul original primul Update creaza obiectul task-ului care este monitorizat de catre alerta register. In acest moment numai grupul Sharepoint are asignate permisii pentru obiectul task-ului dar nu si utilizatorul AssignedTo. Chiar daca adaugi permisii utilizatorului AssignedTo in urmatorul Update, este prea tarziu pentru ca alerta tine cont de securitatea de la momentul crearii task-ului. Asta explica de ce utilizatorul AssignedTo incepe sa primeasca notificari despre modificari chiar daca nu a primit notificarea despre crearea task-ului.

Incarca Data Connection Files (.udcx) in libraria Sharepoint Data Connection

Autor: Daniel | Categorie: Sharepoint | Data: 13 Mai 2010 | 1 comentariu

Urmatoarele citate XML va prezinta un exemplu despre modul de constructie al unei facilitati care va incarca un fisier de data connection (.udcx) intr-o librarie de documente existenta in Sharepoint (Mostra de mai jos foloseste doar un singur fisier de data connection dar puteti sa introduceti cate doriti):

Feature.xml:

<Feature
Title=”Data Connections Feature”
Description=” Data Connections Feature”
Version=”1.0.0.0″
Scope=”Site”
Hidden=”FALSE”>
<ElementManifests>
<ElementManifest Location=”Elements.xml” />
<ElementFile Location=”GetUserProfileByName.udcx” />
</ElementManifests>
</Feature>

Elements.xml:

<Elements xmlns=”http://schemas.microsoft.com/sharepoint/”>
<Module Url=”MyDataConnectionsDocLibrary” RootWebOnly=”TRUE”>
<File Url=”MyDataConnection.udcx”>
<Property Value=”Universal Data Connection File” />
</File>
</Module>
</Elements>

Singurul truc este sa setezi proprietatea ContentType al fisierului incarcat pe valoarea “Universal Data Connection File” pentru ca libraria Data Connection nu are acest tip de continut ca predefinit.

Acces rapid la orice informatii si colaborare facila

Autor: Tibi | Categorie: Sharepoint | Data: 15 Ian 2010

Daca iti ia mult timp sa gasesti un anumit document sau este dificil sa iei decizii rapide din cauza ca informatiile din companie nu sunt centralizate, ai acum la indemana platforma Microsoft Office SharePoint Server (MOSS). Cu ajutorul ei simplifici modul in care angajatii gasesc si partajeaza informatii si modul in care colaboreaza.

Odata implementata platforma Microsoft Office SharePointServer, angajatii din companie castiga:

• acces simplu si rapid la informatii;

• un mod de lucru mai eficient prin colaborarea cu colegii si partenerii;

• comunicare imbunatatita cu clientii;

• posibilitatea de a lucra si din alta parte decat de la birou;

• capacitatea de a realiza cautari avansate de informatii la nivel de companie si nu numai;

• modalitatea optima de a lua decizii prin consultarea informatiilor structurate in tablouri de bord.

Iata in continuare 5 cai prin care poti obtine aceste beneficii:

Management al documentelor – Solutiile de management al documentelor te ajuta sa reduci volumul total de documente, marind in acelasi timp valoarea informatiilor extrase din acestea. Indiferent cati colegi colaboreaza la crearea unui document, istoricul modificarilor este pastrat, astfel se poate afla oricand cine si in ce fel a modificat un document.

Automatizarea proceselor – Pentru ca toti anagajatii sa lucreze intr-un mod unitar, ai nevoie de procese interne consistente si de controlul asupra acestor procese. Un astfel de proces este cel de aprobare a unui document care trebuie sa fie revizuit de mai multe persoane inainte de a ajunge la stadiul final. Folosind platforma MOSS se creeaza un flux: documentul este trimis in mod automat tuturor celor implicati in procesul de aprobare. Aceasta duce la eficientizarea modului de lucru între angajati, si a acestora cu clientii si partenerii externi.

Managementul continutului – Angajatii companiilor genereaza un volum mare de continut nestructurat, care include documente, mesaje electronice (e-mail), continut video, conversatii pe messenger sau skype, pagini web si multe altele. Managementul documentelor si managementul continutului web asigura imbunatatirea modului in care aceste resurse informationale sunt utilizate; astfel colegii comunica mai bine intre ei si realizeaza un schimb mai eficient de informatii.

Colaborare – Un avantaj al sistemului este acela ca mai multe persoane pot contribui la dezvoltarea documentelor inainte de a le publica, iar modificarile sunt notificate prin e-mail celor vizati. In plus, sistemul poate sa indexeze multiple tipuri de surse: informatii interne de business, dar si documente si pagini Web, pentru a genera rezultate cat mai complete prin instrumentul de cautare complexa. Angajatii pot astfel lucra de oriunde si oricand si isi pot sincroniza ulterior munca.

Portaluri intranet/extranet – Sistemele de tip intranet te ajuta sa organizezi informatiile interne intr-un singur loc si permit vizualizarea acesteia de catre angajati pe baza drepturilor lor de acces in diverse pagini ale portalului. Solutiile extranet pot fi accesate din afara companiei, facilitand astfel schimbul de informatii cu clientii si partenerii in mod securizat.

Unele functionalitati pot fi implementate cu versiunea gratuita a platformei Microsoft Office SharePoint Server.