Штомесячны архіў: Кастрычнік 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 і скапіруйце яго туды.

3. Змяніць web.config дадаць зборку ў бяспечныя элементы кіравання:

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

<authorizedType Assembly="SpdGenericInterface, Version = 1.0.0.0, Культура = нейтральнай, PublicKeyToken = abe076fd8125f3c4" Namespace="Nivlag" TypeName="*" Authorized="True" />

4. Copy "SpdGenericInterface.actions" З:\Program Files Common Files Microsoft Shared пашырэньні вэб-сервера 12 TEMPLATE 1033 Workflow

Заўважым, што прыведзеныя размяшчэнне характэрных для ангельскай мовы установак.

5. Зачыніць SharePoint Designer, (калі ён ужо адкрыты).

6. IISReset

7. Адкрыйце SPD і стварыць новы працоўны працэс.

Калі ўсё пойдзе добра, Вы павінны быць ўзнагароджаныя з новай катэгорыяй дзеянні:

малюнак

Заўвагі:

Паглядзець тут (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.

SPD Workflow карыстацкіх дзеянняў – атрымаць <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.

Хутка і проста: Настройка MOSS знайсці канкрэтны бібліятэку дакументаў

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, ён будзе даступны ў расчыняецца абласцей падзення для простага і пашыранага пошуку і пры пошуку з дапамогай гэтай сферы, вы проста атрымаеце вынікі, якія вы чакаеце.

Заўвагі:

Я напісаў гэты допіс з блогу, таму што мае пошукі простую ўстаноўку рамкі з'явіўся сухі выкарыстаннем фраз тыпу:

  • сканфігураваць вобласці ў MOSS
  • наладзіць вобласць пошуку мох
  • абласцей у 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 Суп нацысцкай NLB з прадуктаў?

Сёння, 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", Я павінен задацца пытаннем — робіць NLB, па прыродзе, адключыць WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Суп нацысцкай?

Упраўленне MOSS / 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. Перайдзіце на сайт.
  2. Перапынак атрымання ў спадчыну бяспекі.
  3. Выдаліце ​​кожны карыстальнік / група з сайта дазволаў.

Вышэй, павінны пакінуць толькі адміністратар сямейства вузлоў з дазволам каб убачыць сайт.

Калі хто-то яшчэ ўваходзіць у, яны больш не павінны гл сайт і яна павінна быць бяспека выдаляюцца з усіх звычайных месцах.

Але … гэта не было. У той жа час, 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, у рэшце рэшт, Я лічу, што ў Ітана блог, his opening graph makes it quite simple:

MOSS 2007 мае новую функцыю пад назвай Web Ужыванне палітык. Гэтыя дазволу бяспекі, якая прывязаная да вэб-прыкладанняў. Гэтыя параметры бяспекі перавызначыць наладу бяспекі, які ўсталяваны на месцы збору або сайта (Сетка) ўзроўню для гэтага карыстальніка.

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, але, напружвацца цытатай, "It does not mean what you think it means."

Access web application policies this way:

  1. Да цэнтра адміністравання
  2. Выберыце Упраўленне праграмамі
  3. Select "Policy for Web Application"
  4. На гэтым экране, make sure you pick the correct web application. Для мяне, ён па змаўчанні вэб-прыкладанні цэнтра адміністравання, якое не можа быць той, які вы хочаце.

Калі ў мяне была гэтая праблема, Я шукаў наступныя фразы і атрымалі на здзіўленне мала з пункту гледжання прамых дапамогу па гэтым пытанні:

Сайт дзеянні адкрыты для прагляду ўсім карыстальнікам

Дзеянні вузла усе карыстальнікі

Дзеянні сайта не абразаецца бяспекі

забяспечыць бяспеку сайта MOSS

Ўвядзенне ў мох бяспекі

Technorati Тэгі:

Хутка і проста: Выкарыстоўвайце фіксаваны запыт ключавых слоў у выніках пошукавай Асноўныя

Хуткія і Простыя інструкцыі:

Рэдагаваць старонку і дадаць Асноўныя вынікі пошуку вэб-частак.

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. Запусціце SDP.
  2. Доступ да сайта заснаваны оф падрыхтоўка пра шаблон.
  3. Access "Attendee unregistration" працоўны працэс.
  4. Устаўце наступныя дзеянні (Я зрабіў іх першыя два кроку):
    1. Вылічаць Курсы:Запоўненыя месцаў мінус 1 (Выхад на Пераменная:Calc)
    2. (затым) Пункт Абнаўленне Курсы

Націсніце кнопку Гатова, і ўсё гатова.

Здымкі экрана:


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.

Разгляданая справа: Я працую над праектам, характарызуецца:

  • T&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 "Стакгольмскі сіндром" * На самай справе з'яўляецца * Б, but you get the picture. 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, гэта жудасна.