بایگانی ماهانه: اکتبر 2007

شیرپوینت طراح — فعالیت های سفارشی برای اجرای تعریف شده توسط کاربر 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. دانلود فایل های فشرده است. و استخراج.

2. Install the .dll into the GAC. I usually open c:\WINDOWS مونتاژ با استفاده از ویندوز اکسپلورر و کپی کردن آن وجود دارد.

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" به ج:\فایل های برنامه فایلها متداول مایکروسافت پسوند وب سرور 12 TEMPLATE 1033 گردش کار

توجه داشته باشید که محل بالا مشخص شده است به نصب و راه اندازی های زبان انگلیسی.

5. بستن طراح شیرپوینت (اگر آن را در حال حاضر باز).

6. iisreset

7. باز کردن SPD و ایجاد یک گردش کار جدید.

اگر همه به خوبی می رود, شما باید با گروه جدیدی از عمل پاداش:

تصویر

یادداشت ها:

دیدن اینجا (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) فوق العاده برای یک نمای کلی از فرایند برای ایجاد, نصب و پیکربندی یک راه حل مثل این.

فایل های فشرده است. طراحی شده است که برای استخراج به طور مستقیم به شما ج:\ drive. If you do this, شما می توانید پروژه ها و باز کردن تمام مسیرهای سازگار خواهد بود.

برای استفاده از این در ویژوال استودیو, 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 عمل گردش کار سفارشی – دریافت <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 / شیرپوینت /">
<
عملیات پی در پی="سپس" موازی="و">

اما, 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) بر چگونه برای پیکربندی مایکروسافت آفیس شیرپوینت سرور 2007 فهرست و پوشه ها خزیدن شبکه برای جستجو

هدف: I want to execute a search restricted to a specific document library. در این مورد, کتابخانه اسناد شامل مدارک آموزشی.

مراحل:

1. ضبط URL از کتابخانه های سند.

2. ایجاد یک دامنه:

برو به آسیای دولت.

دسترسی به SSP.

برو به "تنظیمات جستجو".

پایین به بخش حوزه و انتخاب "مشاهده دهی".

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

3. تعریف قوانین خزیدن دامنه:

اضافه کردن یک قانون است که برای این حوزه تعریف کتابخانه سند.

را انتخاب کنید "آدرس وب سایت" "محدوده نوع قانون".

نام پوشه خود را وارد کنید (دیدن #1 بالاتر).

قبول مقدار پیش فرض "شامل".

صبر کنید برای دامنه برای به روز رسانی (یا آن را شروع دستی).

4. فعال کردن دامنه در مجموعه سایت.

رفتن به مجموعه سایت که در آن شما می خواهید به استفاده از این حوزه.

اضافه کردن دامنه جدید خود را به گروه نمایش مناسب یا گروه.

5. جستجو!

در این مرحله, you’re done. Assuming the scope is properly defined, آن در دسترس خواهد بود در حوزه فراز قطره برای جستجوهای ساده و پیشرفته و هنگامی که شما با استفاده از آن محدوده, شما فقط می خواهید نتایج: از شما انتظار می رود دریافت کنید.

یادداشت ها:

من نوشت: این وبلاگ به دلیل جستجوهای من برای راه اندازی دامنه ساده تبدیل شده تا خشک با استفاده از عباراتی مانند:

  • پیکربندی حوزه در MOSS
  • پیکربندی خزه دامنه جستجو
  • حوزه در شیرپوینت 2007
  • حوزه در شیرپوینت
  • جستجو در فایل ها کتابخانه خزه
  • دهی 1 خزه

شما می توانید دامنه جستجو را در یک پوشه ایجاد کنید, not just the entire document library.

دامنه را می توان در سراسر مجموعه سایت های مختلف به اشتراک گذاشته شده (از این رو, "خدمات مشترک).

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 چگونه برای پیکربندی مایکروسافت آفیس شیرپوینت سرور 2007 فهرست و پوشه ها خزیدن شبکه برای جستجو @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

هیچ سوپ برای شما! سیسکو نازی محصولات 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. (If/when the network wizards tell me what it is, من این پست را به روز رسانی کنید).

Windows explorer couldn’t connect. I did some research and eventually, the network wizards said that WebDAV هستید is disabled by / not supported by / 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", I have to wonder — does NLB, by nature, disable WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Soup Nazi?

Managing MOSS / WSS Environments — keeping up with Microsoft’s knowledge base

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.

I keep up to speed with them via a service provide by the good folks at 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.

Web Application Policy, Security Sites and Security Trimming — Know your configuration

(UPDATED 11/29 to explain how to access web application policy settings via the UI)

I had one of those "why is MOSS doing this to me????" moments today. در پایان, it’s all my fault.

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

برچسب ها:

سریع و ساده: استفاده از پرس و جو ثابت کلمه کلیدی در جستجو نمایش نتایج: از شماره اصلی

Quick and Simple Instructions:

Edit a page and add a Search Core Results web part.

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

Add the 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: Departments and Products.

The product site collection contains, naturally enough, product information. Each product in the site collection aggregates data from multiple sources.

One of the departments, codes and testing, 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".

A nice benefit from this approach: We can edit the XSL from the core search results web part and generate any format that we want.

See here (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) for another blogger’s discussion on this topic.

</پایان>مشترک شدن در وبلاگ من.

به من بگو در مورد وبلاگ شما!

اگر شما حفظ یک وبلاگ است که حداقل حداقل به شیرپوینت متصل, please let me know in comments. I would love to add you to my لیست وبلاگ.

اگر شما حفظ یک وبلاگ است که به شیرپوینت متصل نشده است، اما من می خواهم به آن اضافه کنید به هر حال, let me know. I’ll may create a separate blog list.

لطفا:

  • آدرس وبلاگ شما (بدیهی است که)
  • شرح کوتاه از وبلاگ خود.

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 manager specifies maximum number of available seats.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" associated with that course.

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, no more self-service registration is allowed.

Fortunately, Microsoft provides the workflow for this process. Even better, it’s a straight-forward workflow created via SharePoint Designer.

Follow these high level steps to fix it:

  1. Fire up SDP.
  2. Access the site based off the training template.
  3. Access "Attendee unregistration" گردش کار.
  4. Insert these steps (I made them the first two steps):
    1. Calculate Courses:Filled Seats minus 1 (Output to متغیر:calc)
    2. (سپس) Update item in Courses

Click Finish and you’re done.

Screen shots:


شیرپوینت طراح:

تصویر

Finished workflow:

تصویر

Calculate drill-down:

تصویر

Update item in Courses:

تصویر

مژده بده به اغلب; در اوایل دادن خبر بد

من یک مشاور برای بسیاری از سال در حال حاضر بوده ام و به عنوان هر مشاور با تجربه می داند, 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 "سندرم استکهلم" * در واقع *, اما شما می توانید از تصویر. 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, وحشتناک.