Месечни архиви: Октомври 2007

SharePoint Designer — Прилагодено активност да се изврши кориснички дефинирани C # функции

Ажурирање: Ова е објавен на CodePlex овде: http://www.codeplex.com/spdwfextensions

Ажурирање: Погледнете тука за најновото издание белешки: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

Ажурирање: Погледнете тука за моите мисли за комерцијализација на овој проект: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

This project provides a custom activity in SharePoint Designer. Use this custom activity to invoke (испрати) any C# function that you incorporated into the linked assembly.

Кон крајот на октомври, 2007, this is just an initial version of the project. I plan to expand it with a number of additional functions, вклучувајќи подниза, индекс, замени, invoking web services and anything that seems useful or interesting. I also plan to post this to codeplex once I have my act together on that front. This will also be deployable as a solution at some point.

Ако имате било какви коментари, прашања или сугестии, Ве молиме оставете ги во коментари или е-мејл мене.

Општи услови:

I make absolutely no claims as to the suitability of this for any purpose. Use at your own risk.

Инсталација чекори (треба да се следи за секој WFE на фармата):

1. Преземете. Zip и екстракт.

2. Install the .dll into the GAC. I usually open c:\WINDOWS собранието користење на Windows Explorer и ископирајте ја има.

3. Менувате web.config да додадете собранието за безбедно контроли:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<authorizedType Assembly="SpdGenericInterface, Верзија = 1.0.0.0, Култура = неутрален, PublicKeyToken = abe076fd8125f3c4" Namespace="Nivlag" TypeName="*" Authorized="True" />

4. Copy "SpdGenericInterface.actions" на C:\Program Files Common Files Мајкрософт Муабет веб сервер екстензии 12 ОБРАЗЕЦ 1033 Работното

Забележете дека погоре локација е специфична за англиски јазик инсталации.

5. Затвори SharePoint Designer (ако тоа е веќе отворен).

6. iisreset

7. Отвори СПД и да се создаде нов работното.

Ако се оди добро, треба да биде награден со нова категорија на акција:

сликата

Белешки:

Види тука (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) за страшно преглед на процесот за создавање, инсталирање и конфигурирање на решение како ова.

На. Zip е дизајниран за да се извлече директно до вас в:\ drive. If you do this, можете да ја отворите проектот и сите патишта ќе бидат во согласност.

Да го користите овој во Visual Studio, you probably need to install "Extensions for Windows WF".

The initial upload contains just one "dispatcher function", "ToLower()". To add more functionality, додадете на методот Изврши како што е прикажано:

 заштитени избегне ActivityExecutionStatus
          Изврши(ActivityExecutionContext executionContext)
        {

            низа functionToDispatch;
            functionToDispatch = овој.DispatchFunction.ToLower();

            префрлате (functionToDispatch)
            {
                случај "tolower()":
                    {
                        овој.OutResult1 = овој.InParam1.ToLower();
                        се скрши;
                    }

                стандардно:
                    {
                        овој.OutResult1 = "Unknown function: [" + овој.DispatchFunction + "].";
                        се скрши;
                    }
            }

            се врати ActivityExecutionStatus.Затворена;
        } // ActivityExecutionStatus

    }

Потоа, re-build the project and copy the assembly to the GAC. I expect an iisreset would be required.

СПД Работното сопствена акција – добие <WorkflowInfo> таг право да се избегне фрустрација

Part of the process for creating a custom action for SharePoint Designer involves create a ".actions" датотека.

Сум го нашол и се обидел да се користи примерок дефиниција која започнува како:

<?XML верзија="1.0" кодирање="UTF-8" ?>
<
WorkflowInfo xmlns="HTTP://schemas.microsoft.com / SharePoint /">
<
Активности Секвенцијален="потоа" Паралелни="и">

Сепак, that xmlns attribute prevents my environment from working. My actions don’t show up in SPD.

Решението е да се отстранува на xmlns атрибут, do an iisreset and close/re-open SPD.

Брзо и едноставно: Конфигурирате Мос за да пребарувате одреден документ библиотека

See UPDATE (Јас) below (11/24/07) на Како да одбереш Microsoft Office SharePoint Server 2007 да индексира и индексирање мрежа Папки за пребарување

Цел: I want to execute a search restricted to a specific document library. Во овој случај, документот библиотека содржи обуката документи.

Чекори:

1. Рекорд на URL-то на документот библиотека.

2. Создаде опсегот:

Оди до централната администрација.

Пристап до SSP.

Go to "Search Settings".

Scroll down to the scope section and select "View Scopes".

Create a new scope. Give it a name and useful description.

3. Дефинира опсегот лази правила:

Додадете правило што ги дефинира документот библиотека за овој опсег.

Select "web address" for "Scope Rule Type".

Внесете го името на вашата папка (види #1 погоре).

Accept the default value of "Include".

Чека на опсегот да се ажурира (или го пушти рачно).

4. Овозможи на обемот на сајт за собирање.

Оди до сајт за собирање каде што сакате да го користите овој опсег.

Додадете вашиот нов опсег на соодветен приказ група или групи.

5. Пребарување!

Во овој момент, you’re done. Assuming the scope is properly defined, тоа ќе биде достапен во домет капка падови за едноставни и напредни пребарувања и кога барате со користење дека обемот, сте само ќе добиете резултатите кои ги очекувате.

Белешки:

Напишав овој блог запис бидејќи моите пребарувања за едноставни обем подесување вклучив сува користеше фрази како:

  • конфигурирање домет во Мос
  • конфигурирате пребарување обемот мов
  • домет во SharePoint 2007
  • домет во SharePoint
  • пребарувате документи библиотека мов
  • Домет прв мов

Можете да креирате пребарување обемот на папката, not just the entire document library.

А обем може да се дели во неколку сајт колекции (оттука, a "shared service").

You can create the scope at the site collection level itself. Сепак, I prefer to go to central admin because I can start the crawl from there. You cannot start the crawl from the site collection.

Ажурирање (Јас) како на 11/24/07:

Kai Shang put together a great post entitled Како да одбереш Microsoft Office SharePoint Server 2007 да индексира и индексирање мрежа Папки за пребарување @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Нема супа за вас! Е Cisco супата нацистичкиот на НЛБ производи?

Денес, I tried to access a document library via windows explorer. This doc lib is living inside a system that consists of two WFE’s load balanced by some kind of Cisco NLB solution. (Ако / кога мрежата волшебници ми каже што е тоа, Јас ќе се ажурира овој пост).

Windows explorer couldn’t connect. I did some research and eventually, мрежата волшебници рече дека WebDAV е оневозможен од страна на / не се поддржани од / beneath the dignity of the NLB.

Така, assuming the network wizards aren’t just telling me the network wizard equivalent of "take a long walk off a short bridge", Јас да се прашувам — не НЛБ, по природа, оневозможи WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Супа нацистички?

Управување Мос / WSS околини — следење на база на знаење на Microsoft

Microsoft creates knowledge base articles day in and day out and some of those are darned important to know about if you live in the SharePoint world.

Јас се задржи до брзината со нив преку сервисот обезбеди од страна на добар луѓе во www.kbalertz.com. KBAlertz enables you to sign up for your favorite MS technology and they send you digest versions of Microsoft KB articles via email.

Веб апликација за приватност, Безбедноста сајтови и безбедност Порамнување — Знаете вашата конфигурација

(Актуелни 11/29 да се објасни како да пристапите веб апликација политика поставувања преку адаптери)

I had one of those "why is MOSS doing this to me????" moments today. На крајот, сето тоа е моја вина.

We have an enterprise MOSS project going on and we want to secure "place holder" sites so that no user may access it or see it. That’s easy:

  1. Go to the site.
  2. Break the security inheritance.
  3. Remove every user/group from site permissions.

The above should leave just the site collection administrator with permission to see the site.

If anyone else logs in, they should no longer see the site and it should be security-trimmed from all the usual places.

Но … тоа не беше. Во исто време, I suddenly realize that my "Joe User" standard user test account with no priv’s other than restricted read access has a "Site Actions" choice everywhere he goes. I double check one thing and double check something else. I pick up the phone to call a colleague, but put it down and check something else. I go for a walk and try everything all over again. I call a colleague and leave a message. And then, конечно, I find that at Ethan’s blog, his opening graph makes it quite simple:

Мос 2007 has a new feature called Web Application Policies. These are security permissions that is tied to a Web Application. These security settings override any security setting that is set at the Site Collection or Site (Web) level for that user.

A quick visit to web application policies shows that "NT Authority\authenticated users" had been granted Full Read. I removed them from the list and everything finally started working as expected. I believe they were added in the first place by someone with the mistaken impression that that is best method to grant read access to everyone in the enterprise. It does, но, to strain a quote, "It does not mean what you think it means."

Access web application policies this way:

  1. Go to Central Administration
  2. Select Application Management
  3. Select "Policy for Web Application"
  4. On that screen, make sure you pick the correct web application. За мене, it defaults to the web application of central admin which may not be the one you want.

When I had this problem, I searched for the following phrases and got surprisingly little in terms of direct help on this issue:

Site actions visible for all users

Site actions visible to all users

site actions are not security trimmed

secure a MOSS site

introduction to moss security

Technorati Тагови:

Брзо и едноставно: Користете Фиксни клучни зборови за пребарување во пребарувач Основни Резултати

Брзи и едноставни упатства:

Уредам страница и додадете Барај Core Резултати веб дел.

Edit that web part and expand "Fixed Keyword Query".

Додадете фиксна клучни зборови за пребарување (e.g. ContentType:"Training invoice" TrainingInvoiceNumber:1111)

Expand Results Query Options and change "Cross-Web Part query ID" to a value other than "User Query" (e.g. "Query 2").

Белешки:

Using core search results in this manner allowed me to create a page that shows information from another site collection. The client has two major site collections: Одделенија и производи.

На производот сајт збирка содржи, природно доволно, product information. Each product in the site collection aggregates data from multiple sources.

Еден од секторите, кодови и тестирање, is on such source. When users access product XYZ, they should see codes and testing data directly on the XYZ main page. Since codes and testing is hosted in another site collection, it’s a little awkward. We decided to use the core search results web part since search spans site collections. Codes and Testing manages product data via a custom list that is constrained by a specific content type. Aa keyword query that uses first the content type and then the product number narrow down the search to a single row in the custom list.

The keyword query above is an AND. It returns documents of content type "Training Invoice" and where the invoice number equals "1111".

Познат корист од овој пристап: We can edit the XSL from the core search results web part and generate any format that we want.

Видите тука (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) за дискусија друг блогер е на оваа тема.

</крајот>Да се ​​претплатите на мојот блог.

Кажи ми за вашиот блог!

Ако одржување на блог, кој е барем минимално поврзани со SharePoint, please let me know in comments. I would love to add you to my блог листа.

Ако одржување на блог, кој не е поврзан со SharePoint, но сакаат мене да го додадете во секој случај, дозволете ми да знам. I’ll may create a separate blog list.

Ве молиме да дадете:

  • Вашиот блог URL (очигледно)
  • Еден краток опис на вашиот блог.

I want to keep the link to "active" блогови, which I’m roughly defining as one post per week and minimum three months old. If you don’t meet that "requirement" add your name to comments anyway. It’s *my* list so I can break my own rule if I want to.

Благодарение!

Вработен обука Распоред и материјали Шаблон — Намалување бубачка во дефиниција

The client noticed a bug today with the above mentioned template.

Course managers create courses. When creating a course, на менаџер одредува максималниот број на достапни места.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" поврзани со тој курс.

Individuals may also unregister from a course. The bug lies here. Unregistering from a course does not increment the available seats counter. Како резултат на, available seats is not accurate. This bug is compounded by the fact that when available seats decrements to zero, не повеќе самопослужување регистрација е дозволено.

За среќа, Microsoft provides the workflow for this process. Even better, тоа е право напред работното создадени преку SharePoint Designer.

Следете ги овие високо ниво чекори да го поправам:

  1. Оган СДП.
  2. Пристапите на овој сајт базирана на обука дефиниција.
  3. Access "Attendee unregistration" работното.
  4. Вметнете ги овие чекори (Јас ги направи првите два чекори):
    1. Пресмета Курсеви:Исполнет Седишта минус 1 (Излез Променлива:Calc)
    2. (потоа) Ажурирање ставка во Курсеви

Кликнете на Finish и ќе завршиш.

Екран снимки:


SharePoint Designer:

сликата

Заврши работното:

сликата

Пресмета вежба-долу:

сликата

Ажурирање ставка во Курсеви:

сликата

Даде добри вести често; даде лоши вести почетокот

Сум бил консултант за многу години и како и секој искусен консултант знае, good communication is one of the key pillars to the successful delivery of a project. Тоа е толку очигледно, it’s really almost boring to talk about. This isn’t a post about generic communication. Наместо, Јас пишувам за темната страна на комуникација — комуникација лоши вести.

Тоа подразбира дека давањето на добри вести на клиентот се прави цело време, as often as possible. Who doesn’t want to give good news? Who doesn’t like to hear good news?

На друга страна, bad news is no fun at all. I have always struggled with this. In the earlier days of my career, Јас ќе знам дека нешто не е криво со проект и наместо да кажува на клиентот, I would work longer hours to try and solve the problem. I would enjoin my team to work harder. It’s a natural enough impulse to think that a super-human effort can save the day. Some times this works, some times it does not. Even when it "works" it’s often a mixed bag. Is the quality of the deliverable really up to spec when key parts have been developed over several 60 да 80 час недели?

Што е најдобар начин да се справи со лоши вести? The answer is: tell it early. Don’t wait until one week before the project budget will be consumed. If you know six weeks out that there simply isn’t enough time to deliver some bit of promised functionality, tell the client right then and there. The client may get upset (веројатно ќе), there may be incriminations and accusations and hurt feelings. Но, кога емоциите се разладат, there’s still six weeks left on the project. Six weeks is a good chunk of time. There’s time to adjust plans, промени распоредот, добиете топка тркалање на буџетот екстензии (со среќа!) and just generally come to grips with the "facts on the ground" and devise a new plan that still results in a successful project.

Случај во точка: Јас работам на еден проект карактеризира со:

  • Т&E budget with a capped "Not to exceed" долар износ.
  • A "best efforts will be made" ветување да дава X, Y и Z до крајот на проектот.
  • Lack of promised key resources on the client side. These resources were not withheld on purpose, nor for any "bad" Причината, но тие беа задржувани.
  • A dawning realization as the project passed the half-way point that we were not going to be able to deliver "Z" (главно поради тоа што вети ресурси не биле всушност на располагање).
  • Regular status reports and "CYA" документација што ни поддржани (консултантскиот тим) up.
  • Тесно поврзана имплементација тим со членови составен од консалтинг организација (мојата компанија) и на клиентот.
  • Далечни менаџерски тим, in both a metaphorical and physical sense. The management team was focused on another large enterprise project and due to space constraints, спроведувањето на тимот беше сместен во посебна зграда на кампусот, down a hill and relatively far way from "civilization".

Со околу шест недели оставена на буџетот на проектот, ние (спроведувањето на тимот) knew that we were trouble. The contract said that we needed to deliver "Z". Even though the project is time & materials and even though we only promised "best efforts" да дава Z и иако имавме голема оправданост за исчезнати испорака … во крајна линија е дека тоа не е во потрага добро — ние не се случува да се испорача Z во облик на квалитетот што ќе го направи секој горд.

Признавајќи го ова, отидовме на управување и им рече дека буџетот на проектот ќе се консумира од страна на одреден датум и дека сме биле во неволја со Z.

А огнената стихија мини изби во текот на следните неколку дена.

Ден 1: Менаџерскиот тим повици во својот персонал за специјален состанок (ние, консултантите не се поканети). Contracts are printed and handed out to everyone and a line-by-line review ensues. Management puts the staff members on the defensive. I don’t think the phrase "Стокхолм синдром" е * навистина * се користат, но ќе го добиете слика. We’re a tight-knit group, по сите, и персоналот е работа со нас консултанти ден во и надвор за неколку месеци, сега.

Ден 2: Management calls another staff meeting. They feel a little better. They want options and ideas for moving forward. They realize there’s still six weeks remaining in the current project budget, which is still a decent bit of time. One of the action items: закажеш состанок со целосна имплементација тим (вклучувајќи консултанти).

Ден 5: Комплетна тим се состанува, constructive meeting ensues and a new achievable plan put into place. Even better, we’ve already begun discussing phase two and the client invites us to prepare proposals for that phase immediately.

Ако ги чекавме додека само три недели остана, или уште полошо, една или две недели, it would have been much different. Instead of a constructive meeting to re-align the project, ние би биле тргнуваше статус извештаи, parsing the contract and reviewing old emails to justify this or that decision. We would have "won" but is it really "winning" во овој случај?

Така, ако треба да се даде лоши вести, give it early. Bad news given late isn’t just bad, тоа е ужасно.