Buwanang Archive: Setyembre 2007

MRO workflow case study gamit Moss, SPD, InfoPath & web mga serbisyo.

Pangkalahatang-ideya ng

Entry na ito ay naglalarawan ng isang case study na naglalarawan ng isang aktwal na MRO (Pagpapanatili, Pagawaan at Operations) daloy ng trabaho sa pag-apruba ng proseso na ipinapatupad sa Moss.

Ito ay hindi isang teknikal na pantao talakayan, ngunit sa halip ay naghahain upang magbigay ng real-world na halimbawa na nagpapakita kung paano ang Moss platform nakamit ng isang real-world na pangangailangan.

(Entry na ito ay nai-post tumawid sa pagitan ng http://paulgalvin.spaces.live.com at http://blogs.conchango.com)

Likuran

MRO proseso ng kliyente ay nailalarawan sa pamamagitan ng mga sumusunod na

  • Mano-manong pag-apruba ng proseso.
  • Ang ilan sa suporta gamit ang mga spreadsheet sa excel.
  • Irregular approval process. The same MRO purchase approval process would vary day to day, isang tao.
  • Napakaraming papel at kamay naisulat na mga lagda — pagbili requisitions kinakailangan hanggang sa 3 nakasulat lagda bago ang huling pag-apruba.

Ang layunin ng proyektong ito kasama:

  • Ganap na awtomatiko ang proseso.
  • Ipatupad ang mga pamantayan ng enterprise para sa pag-apruba.
  • Magbigay ng pinagsama-samang tanawin ng MRO sa pagbili ng iba't-ibang mga tagapamahala.
  • Detailed audit trail.

As a side effect of the solution, nakasulat na mga lagda ay hindi na kinakailangan.

Pag-apruba ng Proseso

The approval process consists of four "swim lanes": Maylikha, Direktang manager, Functional manager at division manager.

Maylikha:

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. Ang ilang mga beses, the originator does not have the technical expertise to fill out the PO requisition. Halimbawa, ang isang gumagamit ay maaaring magnais na pag-uutos ng isang bagong computer laptop, ngunit hindi alam ang pinakamahusay na vendor, IT pamantayan, at iba pa. Sa kasong ito, the originator works with IT and IT actually fills out the requisition.

Direktang manager:

Ito ang direct manager ng maylikha (na kung saan ay maaaring naiiba mula sa tao na aktwal na ipinasok ang PO pag-uutos sa 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. Halimbawa, 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.

Ang Solusyon

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

Lumot: Serves as the platform off which everything else "hangs". MOSS provides bedrock services for security, master data, audit trails at iba pang mga tampok.

InfoPath bumubuo serbisyo: Ang isang bahagi Moss, ito ay nagbibigay-daan sa mga gumagamit punan requisitions pagbili sa pamamagitan ng isang web browser.

SharePoint Designer (SPD): Ginamit namin SPD upang ipatupad ang automated na proseso ng daloy ng trabaho.

Web Serbisyo: 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. Tingnan dito para sa isang teknikal na dive malalim sa paksang ito at ang aming mga dahilan para sa paggamit nito.

Custom na Mga Listahan: MOSS user profiles provided a given user’s direct manager, but did not provide most of the data that controlled workflow decisions (e.g. kung ang naghahati manager ay kinakailangan upang aprubahan ang PO pag-uutos). 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) pag-andar na may pag-audit at seguridad sa labas ng kahon.

Gamitin ang Case

Ang paggamit kaso ay naglalarawan kung paano ang solusyon ay magkasya magkasama:

  1. Paul wants a new laptop. He describes his needs to Vivek, isang IT tao pamilyar sa corporate pamantayan ng laptop, ginustong vendor, at iba pa.
  2. Vivek log in sa 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 batay sa daloy ng trabaho ng mga pagsisimula, direct manager Tinutukoy ni Pablo at mga ruta sa pag-uutos sa kanyang manager, Stacy.
  4. Stacy aprubahan ang pagbili hingi.
  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 aprubahan ang pag-uutos.
  7. SPD workflow muli inspects ang pag-uutos at tumutukoy na ang mga pagbili na halaga ay lumampas sa isang maxium halagang dolyar at ruta ito sa division manager para sa pag-apruba.
  8. Ang division manager aprubahan ang pagbili hingi.

Mga Tala

  • 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.
  • Kung ang isang responsable manager rejects ang pagbili pag-uutos sa anumang punto, the PO requisition is "dead" and the process must be started from the beginning.
  • Workflow Inaabisuhan ang nagpasimula sa bawat hakbang ng proseso ng.
  • Walang nakasulat na mga lagda — ang client natutukoy (makalipas ang ilang malakas na rekomendasyon) na ang pag-audit trail tulad ng ibinigay sa pamamagitan ng daloy ng trabaho sa kasaysayan, Hinahain ang kanilang mga pangangailangan sa pag-audit.
  • Pagsisikap — it took approximately three man weeks to implement this solution.

Konklusyon

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 (kung saan mismo Pinakikinabangan Moss), almost no actual "programming" ay kinakailangan.

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

Talahulunganan

MRO: Pagpapanatili, repair and operations. These purchases typically include items such as notepads, mga silya, personal na mga computer, printer, mga cell phone at ang mga tulad ng.

Eksamen 70-542: Pag-aaral rekomendasyon (Microsoft Office SharePoint Server 2007 – Application Development)

I-UPDATE: Sa mga komento, may isang taong nag-post ang link na ito: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. It looks good to me too.

Ako nakapasa sa eksaminasyon Moss teknikal na ngayong araw, 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 paghahanda gabay.

Ako nagtatrabaho sa Moss sa araw-araw at walang beats aktwal na hands-on na karanasan para sa lahat ng mga pagsusulit.

Na sinabi, I took note of what I was studying as I studied. I believe that all of these resources are helpful, lalo na bilang paraan ng reinforcing na hands-on na karanasan.

Paksa Link
Excel Serbisyo http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Hanapin 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" bahagi ng Moss.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Madla http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profile http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Nilalaman 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 Hands-on na nagtatrabaho sa KPI sa Moss.
Workflow http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Impormasyon mgmt http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Pagkakaiba-iba 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

Marami sa mga link na iyon na humantong sa higit pang mga link at ako tended upang sundin ang mga ito ng hanggang sa tungkol sa 3 mga antas ng malalim.

Hindi ko sasabihin na basahin ang lahat ng bagay ako direktang inilapat sa mga pagsusulit, ngunit hindi ko ikinalulungkot pagbabasa ng anumang mga ito at kahit na ang ilang mga bits ay hindi direktang may-katuturan. Ito ay ang lahat ng magagandang bagay-bagay upang malaman at ako Minumungkahi ang materyal para sa lahat ng minimithi well-Pabilog na mga developer Moss.

Moss / WSS Mga resulta ng paghahanap (at dataviews): tingnan ang raw data ng XML

Maaaring ito ay kitang-kita sa maraming, pero habang nag-aaral para sa aking pagsusulit Moss programming, Natutunan ko na ito ay medyo madali upang makuha ang aktwal na XML mula sa isang query sa paghahanap sa pamamagitan ng interface ng gumagamit.

Isang mabilis na paraan ay ang mga sumusunod:

  • I-access ang mga advanced na paghahanap.
  • Magsagawa ng paghahanap na nagbabalik ng ilang data.
  • I-edit ang pahina (sa pamamagitan ng mga setting ng site).
  • Baguhin ang XSL sa mga sumusunod na:

<?xml salin="1.0" pag-encode="utf-8"?>
<
xsl:stylesheet salin="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<
xsl:pagbubuhos pamamaraan="xml" salin="1.0" pag-encode="UTF-8" mag-urong="oo"/>
<
xsl:template tumugma="/">
<
pre>
<
xsl:-kopya ng piliin="*"/>
</
pre>
</
xsl:template>
</
xsl:stylesheet>

  • Pindutin apply.
  • Tingnan ang Source sa browser.

Tandaan na ang <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 beses ko nilikha ang ilang mga customized na mga resulta ng paghahanap.

Ito marapat upang gumana para sa dataviews pati na rin, kahit na hindi ko pa nasubok na out bilang pa.

Walang CQWP para sa WSS? Subukan ito…

Nakikita ko na Eric Kraus was faced with a requirement normally met with a content query web part. Ang problema? He was in a pure WSS environment with no access to the CQWP. Rather than curling up in the fetal position (isang gumiit Mayroon akong upang labanan ang araw-araw, wari), he came up with solution that at least gives WSS shops a fighting chance to succeed. It’s described dito.

Brilliant at detalyadong pagtingin ng pamamahala ng nilalaman API

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

Ako unang kinuha ang link na ito mula sa Joris poelmans blog sa http://jopx.blogspot.com/.

Kahit na ikaw ay tulad ng sa akin, sa na hindi mo pa nagkaroon na gawin magkano hands-on sa trabaho para sa pamamahala ng nilalaman, ito rin ay nagkakahalaga ng 20 minutes of your time to read.

Gamit ang mga API, maaari:

  • I-export at i-import ng nilalaman napaka madali.
  • Re-parent content. If you want to export some content from a site "A" and send it to site "B" ngunit sa isang ganap na bagong lugar sa hierarchy, ito ay posible.
  • I-export ng nilalaman mula sa isang site at i-import ang mga napiling mga piraso sa isang site.
  • Re-link nilalaman (ibig sabihin na deal sa lahat ng mga hyperlink).

WSS, doc libs & mga listahan, Kinalkula haligi na kinasasangkutan [Sa akin]

Someone on the Internets was asking about how to create a calculated column on a list that would show a value formatted as "[Gumagamit] – [Katayuan] – [Kinalalagyan]" as in "Paul Galvin – Pag-inom [libre] Serbesa – The Beach".

Paul would go in and update his entry in the list and the calculated column would update appropriately. The [Gumagamit] dapat default sa user na pagpasok / pag-update ng listahan.

A calculated column cannot use "volatile" function tulad ng [Sa akin] o [Ngayon]. I solved it in a test environment with these steps:

  1. Create a text column named "Current User".
  2. Itakda ang default na halaga nito sa [Sa akin]
  3. Create a calculated column called "Calc Test".
  4. Itakda ang halaga nito = [Kasalukuyang Gumagamit]

Nagpunta ako sa, idinagdag na item sa listahan at nagtrabaho.

Ang pumasa sa aking 70-315 pagsusulit ngayon!

I passed the "Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET" pagsusulit ngayon sa mahusay na estado ng NJ sa mga kagalang-galang mga opisina ng SolarTech sa Hasbrouck Heights.

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

Upang mag-aral, Ginamit ko ang mga MCAD / MCSD Sarili bilis Training kit libro may karapatan Pagbuo ng mga Aplikasyon Web sa Microsoft Visual Basic. NET at Visual C #. NET.

Microsoft mga alituntunin (dito) 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.

Ako kahit na pumunta sa abot ng upang inirerekumenda ang aklat na ito sa pro ni, 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, “Mangolekta ng mga Data mula sa User” at gamit ang mga resulta.

Use the "Collect Data from User" action to create and assign a task to a user that prompts them for data. Among other things, Na nagamit ko ito upang i-prompt ng gumagamit upang aprubahan o tanggihan ang isang kahilingan at maglagay ng ilang mga komento.

Ang pagkilos na ito ay tumatagal ang form ng:

Magtipon data mula sa sa user na ito (Output sa Nagbabago: collect1)

Ang pag-click sa data pulls up ng isang serye ng mga dialog box kung saan mo tukuyin kung ano ang data ng user ang dapat ibigay kapag nakumpleto ang mga gawain at sa user na ito ay halata.

Ang output bahagi (Nagbabago: 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.

Na kondisyon ay nagpapakita ng bilang

Kung patlang ay katumbas ng halaga

Mag-click sa patlang at pagkatapos ay ang 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. Paano dapat ang workflow engine mahanap ang partikular na hilera sa na listahan?

Upang gawin ito:

  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" seksyon.
  2. Sa field na Paghahanap ng Mga Detalye ng dropdown, piliin ang pangalan ng patlang na kung saan ang halaga na gusto mong (mga mapa na ito sa kung ano ang tinatawag sa Kolektahin ang kahon data dialog mula sa itaas).
  3. In the "Find the List Item" seksyon, select "Tasks:ID" sa Field dropdown.
  4. Sa halaga ng patlang, mag-click sa 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" mula sa Kolektahin ang pagkilos na data.
  7. I-click ang OK / OK at tapos ka na.

Mukhang ito para sa akin:

imahen

Sa puntong ito, Maaari mo na ngayong gamitin ang halagang iyon sa iyong daloy ng trabaho bilang kinakailangan.

Karagdagang mga Tala:

Bilang isang maikling isang tabi, 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 hanay ay ginagamit sa iba't ibang mga lugar sa SPD at ay mahusay nagkakahalaga ng mastering.

== Pagtatapos

Technorati Tags:

Pasulput-sulpot na IE crash kapag nag-access ng mga dokumento sa isang WSS / Moss library dokumento

Ako plagued sa pamamagitan ng ito para sa 9 na buwan at ko makita na ang mga tao sa MSDN at mga forum ng Usenet mayroon itong too.l

Kung minsan, kapag-access ng isang salita dokumento (o iba pang mga uri ng doc) mula sa isang library dokumento nagiging sanhi ng Internet Explorer upang simpleng pag-crash at pumunta ang layo (pagkuha ng lahat ng mga tab na may ito kung mayroon man ay bukas).

Ito MS hotfix Maaaring malutas ito: http://support.microsoft.com/kb/938888

Din, mayroong ilang mga paglalarawan tungkol sa problema dito:

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

Magpapakita ba ang real xpath hakbang pasulong?

Pangkalahatang-ideya ng:

Nilikha ng isang pasadyang listahan na namamahala ng isang uri ng nilalaman na may ilang mga hanay dosena.

Idinagdag ito sa isang pahina at pagkatapos ay sa pamamagitan ng SPD, convert sa isang view ng data.

Problema:

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:halaga-ng>
          </td>
        </tr>
      </xsl>
    </talahanayan>

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.

Solusyon:

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.

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

<nobr><maikling panahon><A HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID=17">Galvin, Paul</Ang isang><img border ="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’/></isang></maikling panahon></nobr>