MOSS istifadə MRO Workflow case study, SPD, InfoPath & web services.

Baxış

Bu giriş faktiki MRO izah təcrübələrin öyrənilməsi təsvir (Xidmət, Təmir və Əməliyyatlar) MOSS həyata iş təsdiq prosesi.

Bu açıq-aydın texniki müzakirə deyil, lakin əvəzinə MOSS platforması real-dünya tələbatını necə nümayiş etdirir ki, real-dünya nümunə xidmət.

(This entry is cross posted between http://paulgalvin.spaces.live.comhttp://blogs.conchango.com)

Fon

The client’s MRO process had been characterized by the following

  • Manual approval process.
  • Some support using excel spreadsheets.
  • Irregular approval process. The same MRO purchase approval process would vary day to day, person by person.
  • Lots of paper and hand-written signatures — purchase requisitions required up to 3 written signatures before final approval.

The objectives of this project included:

  • Fully automate the process.
  • Enforce enterprise standards for approval.
  • Provide consolidated view of MRO purchasing to various managers.
  • Detailed audit trail.

As a side effect of the solution, written signatures were no longer required.

Approval Process

The approval process consists of four "swim lanes": Originator, Direct manager, Functional manager and division manager.

Originator:

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. Məsələn, a user may want to requisition a new laptop computer, but does not know the best vendor, IT standards, və s.. Bu halda, the originator works with IT and IT actually fills out the requisition.

Direct manager:

This is the direct manager of the originator (which may be different from the person who actually entered the PO requisition into MOSS). Direct managers must approve the PO requisition before the system seeks approval further down the line.

Functional Manager:

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. Məsələn, IT purchases are approved by an IT functional manager.

Division Manager:

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

The Solution

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

MOSS: Serves as the platform off which everything else "hangs". MOSS provides bedrock services for security, master data, audit trails and other features.

InfoPath forms services: A MOSS component, this enables users to fill out purchase requisitions via a web browser.

SharePoint Designer (SPD): We used SPD to implement the automated workflow process.

Web Service: 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. Görmək burada for a technical deep dive on this subject and our reasons for using it.

Custom Lists: MOSS user profiles provided a given user’s direct manager, but did not provide most of the data that controlled workflow decisions (e.g. whether the divisional manager is required to approve the PO requisition). 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) functionality with auditing and security out of the box.

Use Case

This use case illustrates how the solution fits together:

  1. Paul wants a new laptop. He describes his needs to Vivek, an IT person familiar with corporate laptop standards, preferred vendors, və s..
  2. Vivek logs into 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 based workflow starts, determines Paul’s direct manager and routes the requisition to his manager, Stacy.
  4. Stacy approves the purchase requisition.
  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 approves the requisition.
  7. SPD workflow again inspects the requisition and determines that the purchase amount exceeds a maxium dollar amount and routes it to the division manager for approval.
  8. The division manager approves the purchase requisition.

Qeydlər

  • 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.
  • If a responsible manager rejects the purchase requisition at any point, the PO requisition is "dead" and the process must be started from the beginning.
  • Workflow notifies the originator at every step of the process.
  • No written signatures — the client determined (after some forceful recommendations) that the audit trail as provided via workflow history, served their auditing needs.
  • Effort — it took approximately three man weeks to implement this solution.

Nəticə

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 (which itself leverages MOSS), almost no actual "programming" was required.

The solution also serves as a "showcase" for the client, demonstrating how different MOSS features can be combined to create a fully featured business application and generate new consulting opportunities in the future.

Glossary

MRO: Xidmət, repair and operations. These purchases typically include items such as notepads, chairs, personal computers, printers, cell phones and the like.

Imtahan 70-542: Study tövsiyələr (Microsoft Office SharePoint Server 2007 – Application Development)

UPDATE: Şərhlər, kimsə bu link olunub: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. It looks good to me too.

Mən bu gün MOSS texniki imtahan, 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 hazırlıq üzrə təlimatda.

Mən gündəlik MOSS ilə iş etdik və heç bir şey bu imtahanlar bütün faktiki praktiki təcrübə beats.

Bildirib ki,, I took note of what I was studying as I studied. I believe that all of these resources are helpful, xüsusilə ki, praktiki təcrübə möhkəmlətmə vasitəsi kimi.

Mövzu Əlaqə
Excel Xidmətlər http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Axtar 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 komponenti.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Auditoriya http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profillər http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Məzmun 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 MOSS ildə KPI ilə bağlı iş Hands-on.
Workflow http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Məlumat MGMT http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Varyasyon http://aspnetcoe.wordpress.com/2007/02/09/customize-variation-root-landing-logic/
Records MGMT http://blogs.msdn.com/recman/archive/2006/06/16/633393.aspx
InfoPath http://msdn.microsoft.com/msdnmag/issues/06/08/infopath2007/default.aspx

Bu əlaqələri daha çox links səbəb və Mən onları təqib meyl 3 səviyyəsi dərin.

Mən birbaşa imtahan müraciət mən oxumaq ki, hər şey demək deyil, ancaq hər hansı oxu peşman deyil və bəzi bit birbaşa aidiyyəti yoxdur, hətta əgər. Bunu bütün yaxşı heyəti var və mən qəti bütün Aspiring yaxşı dairəvi MOSS developers üçün maddi gəlir.

MOSS / WSS Axtarış nəticələri (və dataviews): ham XML data keçirmək

Bu, çox aydın ola bilər, ancaq MOSS proqramlaşdırma imtahan üçün öyrənilməsi zamanı, Hesab edirəm ki, istifadəçi interfeysi vasitəsilə bir axtarış sorğu faktiki XML almaq üçün olduqca asan olduğunu öyrəndim.

Aşağıdakı kimi biri tez metodu:

  • Ətraflı axtarış daxil.
  • Bəzi qaytarır bir axtarış həyata.
  • Səhifənin Düzenle (site parametrləri ilə).
  • Change the XSL to the following:

<?xml variant="1.0" encoding="utf-8"?>
<
XSL:stylesheet variant="1.0" xmlns:XSL="http://www.w3.org/1999/XSL/Transform">
<
XSL:output üsul="xml" variant="1.0" encoding="UTF-8" indent="bəli"/>
<
XSL:şablon matç="/">
<
pre>
<
XSL:copy-of seçmək="*"/>
</
pre>
</
XSL:şablon>
</
XSL:stylesheet>

  • 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.

WSS üçün heç CQWP? Bu cəhd edin…

Görürəm ki Eric Kraus was faced with a requirement normally met with a content query web part. Problem? He was in a pure WSS environment with no access to the CQWP. Rather than curling up in the fetal position (Mən hər gün mübarizə üçün dürtü, görünür), he came up with solution that at least gives WSS shops a fighting chance to succeed. It’s described burada.

Content management API Brilliant və ayrıntılı

Stefan GOSSNER has put together a terrific 4-part series on the SharePoint Content and Deployment API burada. It offers a great overview and very good examples in code (C #).

Mən ilk Joris poelmans blog Bu link ayağa qaldırdı http://jopx.blogspot.com/.

Siz mənim kimi etdiyiniz bile, ki, content idarə edilməsi üçün iş hands-çox nə idi yoxdur, bu yaxşı dəyər 20 minutes of your time to read.

API istifadə, olar:

  • Çox asan content ixrac və idxal.
  • Re-parent content. If you want to export some content from a site "A" and send it to site "B" lakin iyerarxiyasında tamamilə yeni yerdə, bu mümkün.
  • Bir site content ixrac site içinə seçilmiş bit idxal.
  • Re-link content (bütün hiperlink ilə məşğul deməkdir).

WSS, doc libs & siyahıları, Cəlb hesablanır sütunları [Yadda]

Someone on the Internets was asking about how to create a calculated column on a list that would show a value formatted as "[İstifadəçi] – [Status] – [Location]" Paul Galvin "kimi – İçməli [pulsuz] Pivə – The Beach ".

Paul would go in and update his entry in the list and the calculated column would update appropriately. The [İstifadəçi] siyahısını yenilənməsi / daxil olan istifadəçi-u mənim olmalıdır.

A hesablanır sütun "uçucu istifadə edə bilməzsiniz" kimi funksiyaları [Yadda] və ya [Bugün]. I solved it in a test environment with these steps:

  1. "Cari İstifadəçi" adlı bir mətn sütun yarat.
  2. U mənim dəyəri seçin [Yadda]
  3. "Calc Test" adlı hesablanır sütun yarat.
  4. Dəyəri = seçin [Istifadəçi]

I getdi, siyahısına bir maddə əlavə və işləyib.

Mənim keçdi 70-315 imtahan gün!

I passed the "Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET" HASBROUCK HEIGHTS ildə SolarTech ən qocaman ofislərində NJ böyük dövlət imtahan bu gün.

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

Öyrənmək üçün, 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 (burada) 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.

SharePoint Designer, “İstifadəçi veriler toplamaq” və bu nəticələr istifadə.

İstifadəçi olan "alın Data istifadə" action to create and assign a task to a user that prompts them for data. Among other things, Mən təsdiq və ya rədd sorğu və bəzi şərh daxil istifadəçi təklif etmək üçün istifadə etdiyiniz.

Bu fəaliyyət formasında edir:

Toplamaq məlumat dən Bu istifadəçidən (Çıxış üçün Dəyişən: collect1)

Tıklayarak məlumat Siz tapşırıq tamamlayan zaman istifadəçi təmin etməlidir data dəqiqləşdirir və burada informasiya qutuları bir sıra qədər çıxarmaz Bu istifadəçidən göz qabağındadır.

Çıxış hissəsi (Dəyişən: 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.

Bu şərt kimi göstərir

Əgər sahə bərabərdir dəyər

Basın sahə və sonra 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. Necə iş mühərrik bu siyahıya xüsusi sıra tapmaq lazımdır?

Bunu etmək üçün:

  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" bölmə.
  2. Açılan isə Axtarış Details sahəsində, kimin dəyər istədiyiniz sahəsində adını seçin (Yuxarıdakı olan toplamaq data informasiya qutusunda adlandırdığı bu xəritələr).
  3. In the "Find the List Item" bölmə, select "Tasks:ID" Açılan sahəsində.
  4. Dəyəri sahəsində, f basın(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" ki, toplamaq data hərəkətlərdən.
  7. OK / OK basın və siz tamamlayın.

Bu, mənim üçün bu kimi görünür:

image

Bu noktada, tələb kimi artıq iş ki, dəyəri istifadə edə bilərsiniz.

Əlavə qeydlər:

Kənara qısa olaraq, 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" informasiya set SPD bir neçə müxtəlif yerlərdə istifadə və yaxşı dəyər mənimsənilməsi edir.

== Son

Technorati Tags:

Aralıklı IE qəzaları bir WSS / MOSS sənəd kitabxana sənədlərin erişirken

Mən bu ilə mürəkkəbləşdirilir olduğunuz 9 ay və mən MSDN və Usenet forumlarda insanların bu too.l ki bax

Bəzən, bir söz sənəd erişirken (və ya digər doc növləri) bir sənəd kitabxana sadəcə qəza və getmək üçün Internet Explorer səbəb olur (onunla bütün Nişanlar alaraq hər hansı bir açıq olduqda).

Bu MS düzeltme həll edə bilər: http://support.microsoft.com/kb/938888

Həmçinin, problem haqqında bəzi təsviri burada var:

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

Irəli real XPath addım olacaq?

Baxış:

Bir çox sütun bir içerik növü idarə edən xüsusi siyahı Yaradılma.

Bir səhifə üçün əlavə və sonra SPD vasitəsilə, bir veri görünüşü çevrilir.

Problem:

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>
          <TD>
            Current Status:
            <XSL:value-of select="@Current_x0020_Status"></XSL:dəyər və>
          </TD>
        </tr>
      </XSL>
    </masa>

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.

Həll:

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.

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

<nobr><aşırım><A HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID=17">Galvin, Paul</A><img sərhəd ="0" height="1" width="3" src="/_layouts/images/blank.gif"/><a href=’javascript:’ onclick=’IMNImageOnClick();return false;’ class=’ms-imnlink’><img name=’imnmark’ title=” border=’0′ height=’12’ width=’12’ src=’/_layouts/images/blank.gif’ alt=’No presence information’ sip=’PGalvin@xxx.com’ id=’imn_77,type=smtp’/></bir></aşırım></nobr>