MRO Workflow kasu MOSS erabiliz, SPD, InfoPath & web zerbitzuak.

Orokorra

Sarrera honen benetako MRO bat deskribatzen duen kasu bat deskribatzen (Mantentze-lanak, Konponketa eta ebakuntzak) workflow onartzeko prozesuan MOSS ezarri.

Hau ez da overtly tekniko eztabaida bat, baizik eta balio errealean munduko Adibidez frogatzen nola MOSS plataforma ezagutu real-munduaren premia bat eskaintzea.

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

Aurrekariak

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. Batzuetan, the originator does not have the technical expertise to fill out the PO requisition. Adibidez, a user may want to requisition a new laptop computer, but does not know the best vendor, IT standards, etc. Kasu honetan, 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. Adibidez, 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. Ikusi hemen 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) kontu ikuskaritza eta segurtasun-kutxa atera duen funtzionalitatea.

Erabili Case

Erabilera kasu honek erakusten du nola irtenbidea egokitzen elkarrekin:

  1. Paul wants a new laptop. He describes his needs to Vivek, ordenagailu eramangarri bat korporatiboaren arauen pertsona ezagunak IT, hobetsia saltzaileen, etc.
  2. Vivek MOSS sartu erregistroak, 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 oinarritutako workflow hasten, 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.

Oharrak

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

Ondorioa

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: Mantentze-lanak, repair and operations. These purchases typically include items such as notepads, chairs, personal computers, printers, cell phones and the like.

Azterketa 70-542: Estudio gomendioak (Microsoft Office SharePoint Server 2007 – Aplikazioen garapena)

UPDATE: Iruzkin, Norbaitek argitaratua lotura hau: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. It looks good to me too.

Du MOSS tekniko orokorrak egiteko egunak pasatu dut gaur, 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 prestatzeko gida.

Izan dut MOSS bat egunero lan eta ezer eskuak-esperientzia benetako erritmoak azterketak hauek guztiak egiteko.

Esan, I took note of what I was studying as I studied. I believe that all of these resources are helpful, bereziki, esku-on duten esperientzia indartzeko bide gisa.

Gaia Link
Excel Zerbitzuak http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Bilatu 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 osagai.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Audientziak http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profilak http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Edukia 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-en lan egiten MOSS eskuak-on.
Workflow http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Info mgmt http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Aldakuntzak http://aspnetcoe.wordpress.com/2007/02/09/customize-variation-root-landing-logic/
Erregistro mgmt http://blogs.msdn.com/recman/archive/2006/06/16/633393.aspx
Infopath http://msdn.microsoft.com/msdnmag/issues/06/08/infopath2007/default.aspx

Lotura horiek askok lotura gehiago ekarri du, eta horiek jarraitu arte buruz joera dut 3 mailako sakoneran.

Ez nuke esango, dena irakurri dut zuzenean azterketa aplikatzen, baina ez dut damutuko edozein irakurketa eta nahiz eta bit batzuk ez ziren zuzenean, dagokion. Guztiak onak gauza jakin da, eta gomendatzen dut material guztia ondo biribildu aspirante MOSS garatzaileentzat.

MOSS / WSS Bilaketaren emaitzak (eta dataviews): ikusteko gordin XML datuak

Honek askotan, agerikoa izan daiteke, baina nire MOSS programazioaren azterketa-berriz ikasten, Hori nahiko erraza benetako XML lortzeko bilaketa baten erabiltzaile interfazaren bidez ikasi dut.

Ko azkar metodoa honakoa da:

  • Sartzeko bilaketa aurreratua.
  • Egin bilaketa bat itzultzen dituen datu batzuk.
  • Editatu orria (gune ezarpenak bidez).
  • Aldatu XSL du honako:

<?xml bertsioa="1.0" kodeketa="utf-8"?>
<
xsl:Estilo orria bertsioa="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<
xsl:irteera metodoa="xml" bertsioa="1.0" kodeketa="UTF-8" koska="bai"/>
<
xsl:txantiloia dator="/">
<
pre>
<
xsl:kopia-eko hautatu="*"/>
</
pre>
</
xsl:txantiloia>
</
xsl:Estilo orria>

  • Asmatu aplikatzen.
  • Ikusi nabigatzailean.

Ohartu <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 batzuetan bilaketa pertsonalizatuen emaitzetan sortu dut.

Hau izan beharko dataviews lan egiteko, baita, dut probatu, baina ez dela oraindik.

Bikaina eta zehatza eduki kudeaketa API ikuspegia

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

Eskuartean lehendabizikoz hartu nuenean lotura hau Joris poelmans blog at http://jopx.blogspot.com/.

Nahiz eta ni bezalako Oraindik duzu, horretan ez duzu asko egin izan du lan-esku-edukiak kudeatzeko, hau merezi 20 minutes of your time to read.

API erabiliz, ko can:

  • Esportazio eta inportazio eduki oso erraz.
  • Re-parent content. If you want to export some content from a site "A" and send it to site "B" baina hierarkian leku bat guztiz berri batean, hau da, ahalik eta.
  • Esportatu edukia gune bat A-tik eta hautatutako bit inportatu gune bihurtu.
  • Re-lotura eduki (Operazio zentzua hiperestekak guztiak).

WSS, doc libs & zerrendak, Kalkulatutako zutabeak parte hartuko dute [Me]

Someone on the Internets was asking about how to create a calculated column on a list that would show a value formatted as "[Erabiltzaile] – [Status] – [Kokapena]" as in "Paul Galvin – Edateko [free] Garagardoa – The Beach".

Paul would go in and update his entry in the list and the calculated column would update appropriately. The [Erabiltzaile] behar du erabiltzaileak sartzean / zerrenda eguneratzen lehenetsia.

A calculated column cannot use "volatile" hala nola, funtzio [Me] edo [Gaur egun]. I solved it in a test environment with these steps:

  1. Create a text column named "Current User".
  2. Ezarri lehenetsia du balio [Me]
  3. Create a calculated column called "Calc Test".
  4. Ezarri bere balioa = [Oraingo erabiltzailearen]

Hasi nintzen, elementu bat gehitu behar zerrenda eta lan egin.

Gainditu nire 70-315 azterketa-, gaur egun!

I passed the "Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET" azterketa-, gaur egun, NJ handi egoera SolarTech bulegoetan Hasbrouck Heights en agurgarri at.

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

Ikasi, Du MCAD / MCSD Autonomoen erritmo Prestakuntza kit liburua jasotzeko eskubidea erabiltzen dut Web aplikazioak garatzeko Microsoft Visual Basic-ekin. NET eta Visual C #. NET.

Microsoft jarraibideak (hemen) 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.

Joan naiz, nahiz eta orain arte bezala, liburu gomendatuko pro-en, 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, “Bildu Erabiltzaile datuak” eta emaitzak erabiliz.

Use the "Collect Data from User" action to create and assign a task to a user that prompts them for data. Among other things, Erabiltzen dut erabiltzaile baten gonbita onartu edo ukatzeko eskaera bat eta zenbait iruzkin sartu.

Ekintza hau forma hartzen:

Collect data tik this user (Irteera Aldakorra: 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 begien bistakoa da.

The output part (Aldakorra: 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

Bada Eremu equals balioa

Click on Eremu 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" section.
  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" section, select "Tasks:ID" 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:

image

Puntu honetan, 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

Technorati Tags:

Aldizkako IE kraskatzen denean, dokumentu bat sartzean WSS / MOSS dokumentua liburutegian

Dut hau beteta eman 9 hilabete eta ikusten dut MSDN eta Usenet foroak pertsona hori izan da too.l

Batzuetan,, denean word dokumentu bat sartzean (edo beste dokumentu motak) Dokumentu liburutegia batetik Internet Explorer eragiten du, besterik gabe, huts egin eta joan (fitxa guztiak hartuz berarekin edozein irekita daudenean).

MS Hotfix zuzenketa hau konpondu ahal izango: http://support.microsoft.com/kb/938888

Era berean,, Arazo buruzko azalpen batzuk hemen:

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

Will benetako XPath urrats?

Orokorra:

Sortu Ohiko zerrenda eduki mota bat kudeatzen dozena zutabe batzuekin.

Added ezazu orri bat eta, ondoren, SPD bidez, datuak ikuspegi bat bihurtu.

Arazoa:

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>
            Gaur egungo egoera:
            <xsl:value-of select="@Current_x0020_Status"></xsl:balio du>
          </td>
        </tr>
      </xsl>
    </taula>

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

Bitartean thrashing madly buruz, irtenbide baten bila, I instead referred to "@Recruiter" eta behold! — that actually returned back the current status. I expected it to return back the recruiter when I did that.

Irtenbidea:

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 eskaintzen autoritario XPath errenkadak adierazpenak & en datuak ikuspegian zutabeak.

Bigarren, it shows the actual data. So for example, motako zutabe bat erakusten du, hau:

<nobr><span><A HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID=17">Galvin, Paul</A><img border ="0" height="1" width="3" src="/_layouts/images/blank.gif"/><a href = "javascript:’ OnClick = 'IMNImageOnClick();itzultzeko faltsuak;’ class = "MS-imnlink '><img name=’imnmark’ title =” border =’0′ altuera = '12’ width = '12’ src = "/ _layouts / irudi / blank.gif’ alt = 'presentzia informaziorik ez’ sip = 'PGalvin@xxx.com’ id = 'imn_77, mota = smtp' /></bat></span></nobr>