بایگانی ماهانه: سپتامبر 2007

MRO گردش کار مطالعه موردی با استفاده از MOSS, SPD, InfoPath و & خدمات وب سایت.

بررسی اجمالی

در این مطلب یک مطالعه مورد توصیف MRO واقعی (نگهداری, تعمیر و عملیات) فرآیند گردش کار تصویب به اجرا در MOSS.

این بحث آشکار فنی است, اما به جای خدمت به ارائه یک مثال در دنیای واقعی است که نشان می دهد که چگونه پلت فرم MOSS به ملاقات یک نیاز واقعی جهان.

(عبور این مطلب است ارسال شده بین http://paulgalvin.spaces.live.com و http://blogs.conchango.com)

زمینه

فرایند مشتری MRO به شرح زیر مشخص شده بود

  • فرآیند تصویب دستی.
  • برخی حمایت ها را با استفاده از صفحات گسترده اکسل.
  • Irregular approval process. The same MRO purchase approval process would vary day to day, فرد.
  • مقدار زیادی از کاغذ و دست نوشته امضا — نیازهای خرید تا لازم 3 امضا نوشته شده است قبل از تایید نهایی.

هدف از این پروژه شامل:

  • کاملا این روند به طور خودکار.
  • اجرای استانداردهای شرکت برای تصویب.
  • فراهم می کند که تلفیقی از MRO خرید به مدیران مختلف.
  • Detailed audit trail.

As a side effect of the solution, نوشته شده امضا دیگر مورد نیاز بود..

فرآیند تصویب

The approval process consists of four "swim lanes": مبتکر, مدیر, مدیر تابعی و مدیر بخش.

مبتکر:

Sees the need for the purchase and starts the process. Note that the originator may or may not actually enter the purchase requisition, but instead direct another staff member to do so. Some times, the originator does not have the technical expertise to fill out the PO requisition. مثلا, یک کاربر ممکن است بخواهید به مصادره یک کامپیوتر لپ تاپ جدید, اما بهترین فروشنده نمی دانم, IT استانداردها, غیره. در این مورد, the originator works with IT and IT actually fills out the requisition.

مدیر:

این مدیر مستقیم از موسس (که ممکن است متفاوت باشد از کسی که در واقع مصادره PO را به MOSS وارد). Direct managers must approve the PO requisition before the system seeks approval further down the line.

مدیر تابعی:

The functional manager is the individual responsible for ensuring that the proposed purchase conforms to enterprise standards within the scope of a particular corporate function. مثلا, IT purchases are approved by an IT functional manager.

مدیر بخش:

Division managers approve purchase requisitions strictly by dollar amount. Division manager approve purchase requisitions in excess of a configurable dollar amount.

راه حل

We used the following tools and components to implement the solution:

خزه: Serves as the platform off which everything else "hangs". MOSS provides bedrock services for security, شاه داده, مسیرهای پیاده روی حسابرسی و ویژگی های دیگر.

InfoPath و به شکل خدمات: جزء MOSS, این کاربران را قادر می سازد تا با پر کردن نیازهای خرید از طریق مرورگر وب.

شیرپوینت طراح (SPD): ما با استفاده از SPD به منظور پیاده سازی روند گردش کار خودکار.

وب سرویس: A c# web service enhances the user experience by enabling cascading selections lists in the InfoPath form and provides better performance with respect to filtering data. دیدن اینجا برای شیرجه رفتن عمیق فنی در مورد این موضوع و دلایل ما برای استفاده از آن.

لیست سفارشی: MOSS user profiles provided a given user’s direct manager, but did not provide most of the data that controlled workflow decisions (e.g. آیا مدیر بخشی لازم است به تایید درخواست PO). We used custom lists in an "Enterprise Data" site to maintain data such as "Divisional Manager Approval Dollar Amount", "Functional Area Manager" and so forth. Lists integrated very nicely with InfoPath and also provide create/update/delete (CRUD) قابلیت با ممیزی و امنیتی خارج از کادر.

مورد استفاده

این حالت نشان می دهد که چگونه راه حل متناسب با هم:

  1. Paul wants a new laptop. He describes his needs to Vivek, یک فرد IT آشنا با استاندارد های لپ تاپ شرکت های بزرگ, فروشندگان ترجیح داده, غیره.
  2. ویوک سیاهههای مربوط به MOSS, accesses the PO Requisition form and enters the requisition on behalf of Paul. The form prompts Vivek for a purchase category which then uses the web services to populate a drop-down list of company-approved vendors. Vivek also specifies the corporate functional area of this purchase (e.g. "IT" or "Finance").
  3. گردش کار مبتنی بر SPD شروع می شود, مدیر عامل تعیین پل و راه مصادره به مدیر خود, استیسی.
  4. استیسی تصویب درخواست خرید.
  5. SPD workflow inspects the requisition and determines it’s an IT purchase. It routes the workflow to the IT functional manager, Wonson.
  6. Wonson تصویب درخواست.
  7. SPD گردش کار دوباره درخواست بازرسی و تشخیص داد که مبلغ خرید بیش از یک مقدار دلار maxium و مسیرهای آن را برای تصویب به مدیر بخش.
  8. مدیر بخش تصویب درخواست خرید.

یادداشت ها

  • The use case demonstrates a "clean" run with no rejections or jumps.
  • Every approver has the ability to approve or reject the requisition as well as provide written comments. These are logged in the audit trail.
  • اگر یک مدیر مسئول درخواست خرید در هر نقطه ای را رد کرد, the PO requisition is "dead" and the process must be started from the beginning.
  • گردش کار اطلاع موسس در هر مرحله از فرآیند.
  • بدون امضا نوشته شده است — مشتری تعیین می (پس از برخی از توصیه های قدرتمندانه) که دنباله ممیزی از طریق تاریخچه گردش کار, خدمت حسابرسی خود را نیاز دارد.
  • تلاش — it took approximately three man weeks to implement this solution.

نتیجه

This solution leverages MOSS as a development and run-time platform. The client was able to leverage core MOSS features to automate a routine business process that affected nearly every employee in the company. With the exception of a simple web service (که خود اهرم MOSS), almost no actual "programming" لازم بود.

The solution also serves as a "showcase" برای مشتری, demonstrating how different MOSS features can be combined to create a fully featured business application and generate new consulting opportunities in the future.

واژه نامه

MRO: نگهداری, repair and operations. These purchases typically include items such as notepads, صندلی ها, رایانه های شخصی, پرینتر, تلفن های همراه و مانند آن.

امتحان 70-542: توصیه های مطالعه (مایکروسافت آفیس شیرپوینت سرور 2007 – برنامه توسعه)

تکمیلی: در نظر, کسی این لینک: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. It looks good to me too.

من گذشت امتحان فنی MOSS امروز, entitled "Microsoft Office SharePoint Server 2007 – Application Development". I found the exam to be pretty rigorous and that it matched up quite well with Microsoft’s راهنمای آماده سازی.

من مشغول به کار بوده ام با خزه به صورت روزانه و هیچ چیز ضربان واقعی تجربه عملی برای همه از این امتحانات.

که گفت:, I took note of what I was studying as I studied. I believe that all of these resources are helpful, به خصوص به عنوان یک ابزار تقویت که تجربه عملی.

موضوع پیوند
خدمات اکسل http://msdn2.microsoft.com/en-us/library/ms519581.aspx
جستجو No special recommendation. I had taken a class on search earlier this year and real-world experience carried me through. Work with the "search center" بخشی از MOSS.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
مخاطبان http://msdn2.microsoft.com/en-us/library/ms496822.aspx
پروفایل http://msdn2.microsoft.com/en-us/library/ms496822.aspx
MGMT محتوا http://www.sharepointblogs.com/tonstegeman/archive/2007/02/01/moss-custom-policies-part-1-creating-a-custom-information-management-policy.aspx

http://blogs.msdn.com/ecm/archive/2007/03/04/customize-the-page-editing-toolbar-in-moss-2007.aspx

http://msdn2.microsoft.com/en-us/library/aa674506.aspx

BI دست در کار با KPI در MOSS.
گردش کار http://msdn2.microsoft.com/en-us/library/aa830816.aspx
اطلاعات MGMT http://msdn2.microsoft.com/en-us/library/bb397403.aspx
تغییرات http://aspnetcoe.wordpress.com/2007/02/09/customize-variation-root-landing-logic/
سوابق MGMT http://blogs.msdn.com/recman/archive/2006/06/16/633393.aspx
Infopath http://msdn.microsoft.com/msdnmag/issues/06/08/infopath2007/default.aspx

بسیاری از کسانی که لینک ها به لینک های بیشتر منجر شد و من تمایل به دنبال آنها تا حدود 3 سطوح عمیق.

من می خواهم که همه چیز من خواندن به طور مستقیم به امتحان اعمال می شود می گویند نیست, اما من پشیمان نیستم از خواندن هر یک از آن و حتی اگر برخی از بیت ها به طور مستقیم مرتبط نیست. این همه چیزهای خوب می دانم و من به شدت مواد برای همه توسعه دهندگان MOSS گرد مشتاق توصیه.

MOSS / WSS نتایج جستجو (و dataviews): مشاهده داده های خام XML

This may be obvious to many, but while studying for my MOSS programming exam, I learned that it’s pretty easy to get the actual XML from a search query via the user interface.

One quick method is as follows:

  • Access advanced search.
  • Perform a search that returns some data.
  • Edit the page (via site settings).
  • Change the XSL to the following:

<?XML نسخه="1.0" پشتیبانی می کند="UTF-8"?>
<
XSL:شیوه نامه نسخه="1.0" xmlns:XSL="HTTP://www.w3.org/1999/XSL/Transform">
<
XSL:تولید روش="XML" نسخه="1.0" پشتیبانی می کند="UTF-8" دندانه دار کردن="بله"/>
<
XSL:قالب مسابقه="/">
<
pre>
<
XSL:copy-of را انتخاب کنید="*"/>
</
pre>
</
XSL:قالب>
</
XSL:شیوه نامه>

  • Hit apply.
  • View Source in the browser.

Note that the <pre> tag doesn’t do much except serve as a convenient marker when you view the results.

This trick can be very helpful when working with managed properties and customizing search. It will provide a definitive list of the XML available for you to use in your xslt which would have been very helpful the last 25 times I created some customized search results.

This ought to work for dataviews as well, though I have not tested that out as yet.

No CQWP for WSS? Try this…

I see that Eric Kraus was faced with a requirement normally met with a content query web part. The problem? He was in a pure WSS environment with no access to the CQWP. Rather than curling up in the fetal position (an urge I have to fight every day, it seems), he came up with solution that at least gives WSS shops a fighting chance to succeed. It’s described اینجا.

نمایش درخشان و دقیق از API های مدیریت محتوا

Stefan Goßner has put together a terrific 4-part series on the SharePoint Content and Deployment API اینجا. It offers a great overview and very good examples in code (C #).

I first picked up this link from joris poelmans blog at http://jopx.blogspot.com/.

Even if you’re like me, in that you have not had to do much hands-on work for content management, this is well worth 20 minutes of your time to read.

Using the API, one can:

  • Export and import content very easily.
  • Re-parent content. If you want to export some content from a site "A" and send it to site "B" but in a totally new place in the hierarchy, this is possible.
  • Export content from a site A and import selected bits into site A.
  • Re-link content (meaning deal with all the hyperlinks).

WSS, libs DOC & لیست, محاسبه ستون مربوط به [به من]

Someone on the Internets was asking about how to create a calculated column on a list that would show a value formatted as "[کاربر] – [وضعیت] – [محل]" در "پل گالوین – آشامیدنی [رایگان] آبجو – ساحل.

Paul would go in and update his entry in the list and the calculated column would update appropriately. The [کاربر] باید به طور پیش فرض کاربر ورود / به روز رسانی فهرست.

یک ستون محاسبه شده می تواند استفاده از "فرار" توابع از قبیل [به من] یا [امروز]. I solved it in a test environment with these steps:

  1. ایجاد یک ستون متن به نام "کاربر فعلی.
  2. مقدار پیش فرض آن به [به من]
  3. ایجاد یک ستون محاسبه شده به نام "تست کالک".
  4. مقدار آن = [کاربر جاری]

من در رفت, آیتم را به لیست اضافه شده و آن را کار کرده.

گذشت من 70-315 امتحان امروز!

I passed the "Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET" exam today in the great state of NJ at the venerable offices of SolarTech in Hasbrouck Heights.

I put this exam up there with BizTalk in terms of difficulty. You can’t fake your way through it.

To study, I used the the MCAD/MCSD Self Paced Training kit book entitled Developing Web Applications with Microsoft Visual Basic .NET and Visual C# .NET.

Microsoft guidelines (اینجا) are exactly correct IMO. The book addresses everything and if you have a modicum or real-world experience, it should be a straight-forward exam. If not, take the time get some real world experience or at least execute the labs in the book. That will probably give you what you need.

I even go so far as to recommend the book to pro’s, especially self-taught people like myself. It covers some basic stuff which I just never had a reason to stumble upon in my travels and I’m kicking myself a little bit for never having taken the time to learn them.

شیرپوینت طراح, “جمع آوری اطلاعات از کاربر” و با استفاده از این نتایج.

Use the "Collect Data from User" action to create and assign a task to a user that prompts them for data. Among other things, I’ve used it to prompt a user to approve or reject a request and enter some comments.

This action takes the form of:

Collect data از this user (Output to متغیر: collect1)

Clicking on data pulls up a series of dialog boxes where you specify what data the user should provide when completing the task and this user آشکار است.

The output part (متغیر: collect1) saves the ID of the task. You use this in your workflow to extract the user’s actual response via the "Compare any data source" condition.

That condition shows as

If میدان equals ارزش

Click on میدان and then the f(X) icon and it pulls up another dialog box. Use this generalized dialog box to to tell SPD two things;

1. What is the list and column whose value you want to compare.

2. How should the workflow engine locate the specific row in that list?

To do this:

  1. Change the "Source" dropdown to point at the correct task list. Note that the dialog box expands to show a "Find the List Item" بخش.
  2. In the Lookup Details field dropdown, select the name of the field whose value you want (this maps to what you called in the Collect data dialog box from above).
  3. In the "Find the List Item" بخش, select "Tasks:شناسایی" in the Field dropdown.
  4. In the value field, click on the f(X). This opens yet another dialog box.
  5. Change the source "Workflow Data"
  6. Select the workflow variable that matches to the "Output to Variable" from the Collect data action.
  7. Click OK/OK and you’re done.

It looks like this for me:

تصویر

در این مرحله, you can now use that value in your workflow as required.

Additional Notes:

As a brief aside, I always create an appropriately named workflow variable of type "List Item ID" and use that instead of the auto-generated "collect1".

This "compare any data source" dialog set is used in several different places in SPD and is well worth mastering.

==end

برچسب ها:

Intermittent IE crashes when accessing documents in a WSS/MOSS document library

I’ve been plagued by this for 9 months and I see that people on the MSDN and Usenet forums have it too.l

Sometimes, when accessing a word document (or other doc types) from a document library causes Internet Explorer to simply crash and go away (taking all the tabs with it if any are open).

This MS hotfix may solve it: http://support.microsoft.com/kb/938888

همچنین, there’s some description about the problem here:

http://jopx.blogspot.com/2007/07/solving-internet-explorer-crash-when.html

گام XPath و واقعی رو به جلو?

بررسی اجمالی:

Created a custom list that manages a content type with some dozen columns.

Added it to a page and then via SPD, converted into a data view.

مشکل:

My Xpath expression was returning blank for a column named "Current Position". I referenced it thusly:

    <table border="1">
      <XSL:for-each select="/dsQueryResponse/Rows/Row" >
        <TR>
          <فلش>
            Current Status:
            <XSL:value-of select="@Current_x0020_Status"></XSL:ارزش>
          </فلش>
        </TR>
      </XSL>
    </جدول>

The column in the CT is named "Current Status". It shows up in the lookup as "Current Status". Everywhere you look, you see "Current Status".

While thrashing madly about, looking for a solution, I instead referred to "@Recruiter" and behold! — that actually returned back the current status. I expected it to return back the recruiter when I did that.

راه حل:

I poked about in SPD. Go to that page in SPD and it shows the data view. You can inspect the actual data provided to the view and associated Xpath. Here I found out that indeed, the Xpath pointed at "Recruiter". Strangely enough, the "actual" recruiter field pointed from "Recruiter1".

Take Away:

SPD provides authoritative Xpath expressions for rows & columns in a data view.

دوم, it shows the actual data. So for example, a column of type shows this:

<nobr><محدوده><A HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID=17">Galvin, پل</A><مرز IMG ="0" height="1" width="3" src="/_layouts/images/blank.gif"/><a href=’javascript:’ onclick=’IMNImageOnClick();return false;’ class=’ms-imnlink’><img name=’imnmark’ title=” مرز =’0′ height=’12’ width=’12’ src=’/_layouts/images/blank.gif’ alt=’No presence information’ sip=’PGalvin@xxx.com’ id=’imn_77,type=smtp’/></a></محدوده></nobr>