શ્રેણી આર્કાઇવ્ઝ: SharePoint

રહસ્યમય શેરપોઈન્ટ ભૂલોના મુશ્કેલીનિવારણ માટે કેટલો.

વિહંગાવલોકન:

વિન્ડોસ શેરપોઈન્ટ સર્વિસીઝ માટે કસ્ટમ વિધેય વિકાસશીલ જ્યારે ડિબગીંગ મુશ્કેલ છે 3.0 (WSS) અથવા માઈક્રોસોફ્ટ ઓફિસ શેરપોઈન્ટ સર્વર (શેવાળ). The main culprit is that SharePoint normally surfaces very little diagnostic information on the web browser when an error occurs. This blog entry describes how to locate additional system-generated diagnostic information that can often provide that extra bit of detail that one needs in order to identify root causes. This can then lead to solving the problem.

હું અન્યથા રહસ્યમય ભૂલો ઉકેલવા માટે મહાન સફળતા સાથે આ ટેકનિક વપરાય છે.

માર્ગ:

શેરપોઈન્ટ માં લોગ ફાઇલમાં એક ડાયગ્નોસ્ટિક લૉગ માહિતી એક મહાન સોદો સાચવે 12 મધપૂડો.

The "12 hive" is usually located at "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12". (તે માટે શક્ય છે જો મને ખાતરી છે કે નથી 12 ક્યાંય રહેવા માટે મધપૂડો, હકીકતમાં).

આ વિચાર વર્તમાન લોગ ફાઈલ સ્થિત કરવા માટે છે, force the error and then quickly open the log file. These log files are characterized by:

  • Copious amounts of information. SharePoint generates a very large amount of diagnostic information and writes it to that log file very quickly. You need to be quick with the fingers to capture it.
  • Multiplicity. SharePoint does not write to a single log file but rather generates multiple log files in sequence.
  • કૉપિ કરો અને એમએસ એક્સેલ માં સાવધાનીપૂર્વક પેસ્ટ કરો.

મારા પ્રિય પદ્ધતિ:

  1. આ તરફ સંકેત આપતા એક વિન્ડો સંશોધક ખોલો 12 મધપૂડો લોગો.
  2. સંશોધિત તારીખ દ્વારા બતાવવા માટે દૃશ્ય સૉર્ટ (પ્રથમ સૌથી તાજેતરનાં).
  3. સૌથી વર્તમાન લોગ ફાઈલ હાઇલાઇટ.
  4. વેબ બ્રાઉઝર વિંડોમાં, ભૂલ પેદા કરવા માટે દબાણ.
  5. ઝડપથી વર્તમાન લૉગ ફાઇલ ખોલવા અને એમએસ એક્સેલ તેના સમાવિષ્ટોની નકલ.
  6. ઓવરને સીધા આના પર જાઓ અને સંબંધિત એન્ટ્રીઓ વિશ્લેષણ.

અન્ય નોંધો:

મૂળભૂત રીતે, તપાસ લૉગ માં સ્થિત થયેલ છે 12 મધપૂડો લોગ ડિરેક્ટરી.

બોલ એમએસ શ્રેષ્ઠ પદ્ધતિઓ (માઇક ટી દ્વારા પાસાનો પો. માઇક્રોસોફ્ટના) state that the log files should be saved to a separate hard drive. One does this via central admin. Your system administrator may have done this, જે કિસ્સામાં તમે ચોક્કસપણે મૂળભૂત બદલે ત્યાં લોગ ફાઈલ શોધવા માટે જરૂર કરશો 12 મધપૂડો પાંચ આંકડાના US સ્થાન).

આ પ્રવેશ જેમ કે મુદ્દાઓને સંબોધે:

  • શેરપોઈન્ટ વર્કફ્લો આંતરિક ભૂલને કારણે શરૂ કરવામાં નિષ્ફળ.
  • (વધુ સમય પર ઉમેરવા માટે)
  • આ પ્રવેશ વર્કફ્લો ભૂલો મદદરૂપ નિદાન કરવામાં આવ્યું છે (e.g. "The workflow failed to start due to an internal error").

શેવાળ: સંસ્થા માટે અસરકારક રજૂઆત

(આ એન્ટ્રી ક્રોસ વચ્ચે પોસ્ટ http://paulgalvin.spaces.live.com/blog/ અને http://blogs.conchango.com)

આ સાઇટ પર પોસ્ટિંગ મારા પોતાના છે અને તે જરૂરી Conchango માતાનો સ્થિતિ પ્રતિનિધિત્વ નથી, વ્યૂહરચનાઓ કે અભિપ્રાય.

વિહંગાવલોકન:

આ પ્રવેશ મોટી પર કેટલાક પૃષ્ઠભૂમિ માહિતી વર્ણવે છે (3,000 વપરાશકર્તાઓ) માઈક્રોસોફ્ટ ઓફિસ SharePoint સર્વર (શેવાળ) rollout and what we did to get the project rolling in such a way that the client is happy and firmly down a path that ends with full adoption of the MOSS feature set. As of the writing of the entry, અમે આશરે છે 50% complete with the first phase of the project. As things progress, હું આ એન્ટ્રી અપડેટ અને / અથવા નવા પ્રવેશો લખીશ.

આ ચોક્કસ કિસ્સામાં, the company had already installed SharePoint Portal Server 2003. The IT group installed the product in a sort of "let’s see if anyone cares" fashion. It was quickly adopted by many business users and became quite popular in the enterprise at large. તમે કલ્પના કરી શકો છો, આ શ્રેષ્ઠ rollout વ્યૂહરચના ન હતી (ક્લાઈન્ટ સહેલાઇથી કબૂલે છે કે જે) અને MOSS દ્રશ્ય પર પહોંચ્યા ત્યારે, the client resolved to "do it right" અને તેમને મદદ કરવા માટે અમને ભાડે.

અમે આ પ્રોજેક્ટ અમલીકરણ શરૂ જ્યારે અમને સામનો કેન્દ્રીય પ્રશ્નો એક હતું: અમે કેવી રીતે આ ક્લાઈન્ટ માટે MOSS પરિચય નથી? Given that the client already had experience with SharePoint, અમે આશ્ચર્ય — do we need to do "differential" તાલીમ કે અમે જમીન થી શરૂ કરો? After working with key users, we determined that treating this as a green field project made more sense.

That decision gave a starting point but still left us with the major requirement of figuring out a good strategy for rolling MOSS out to the enterprise. MOSS is such a big animal … it includes content management, દસ્તાવેજ વ્યવસ્થાપન, શોધ, સુરક્ષા, લક્ષ્ય પ્રેક્ષકો, પ્રોજેક્ટ વ્યવસ્થાપન, "fabulous forty" નમૂનાઓ, વર્કફ્લો, વ્યાપાર માહિતી કનેક્ટર, વગેરે. Couple this with the fact that it’s a large organization that આ કરી શકો છો સાચી વર્ચ્યુઅલ રીતે દરેક મુખ્ય MOSS લક્ષણ ઉપયોગ કરે છે અને તમે શું થઈ રહ્યું એન્ટરપ્રાઇઝ પહોંચ અને ઘણા સારા વસ્તુઓ સાથે એક મહાન પ્રોજેક્ટ બનાવવાનો છે.

અમે ફરી આ મુદ્દો સમય અને સમય સાથે સામનો કરી રહ્યાં છો, … MOSS તેના એન્ટરપ્રાઇઝ લક્ષણ સેટ સાથે એન્ટરપ્રાઇઝ પહોંચ છે, હજી પણ કંઈક વ્યવહારકુશળ ક્લાઈન્ટો માનસિક તે લક્ષણો શોષણ હાર્ડ સમય છે, તેમના દિનચર્યા તેમને એક ઈન્દ્રિયગમ્ય અપૂર્ણાંક સમાવેશ એકલા દો.

I don’t have a magic solution to the problem. I instead address just the very first steps that we’ve taken with the client to lead them down the path to successful long-term adoption.

અવકાશ:

As much as I wanted the team to craft a project plan that included such milestones as "PoepleSoft Integration via BDC Completed", "New Cross-Departmental Product Launch Workflow Complete" and "Executive Management KPI’s Accepted", I had to settle for something less. This is not to say that "less" ખરાબ છે. હકીકતમાં, the "less" that we decided for the initial rollout was miles ahead of where they were before we started. અમારા કિસ્સામાં, the "less" ફેરવી:

  • દસ્તાવેજ લાઈબ્રેરીઓ ઉપયોગ કરીને સાદી દસ્તાવેજ વ્યવસ્થાપન, version control and content types.
  • સામગ્રી પ્રકારો અને વૈવિધ્યપૂર્ણ અગાઉથી શોધ પર આધારિત અસરકારક શોધ (વ્યવસ્થાપિત ગુણધર્મો મારફતે, XSLT ખૂબ પરિણામો ઉત્પન્ન કરવા માટે, વગેરે).

ઉપર એન્ટરપ્રાઇઝ વ્યાપી લક્ષણો સાથે વધુમાં (તેઓ બધા વિભાગો અને વપરાશકર્તાઓ માટે દોડી કરી હતી કે જેનો અર્થ), અમે નીચેની singleton માં સ્કોપ મીની-પ્રોજેક્ટ ઉમેરવામાં:

  • ખ્યાલ BDC એકીકરણ પુરાવો.
  • એસપીડી મારફતે બનાવી મલ્ટી પગલાની અને મલ્ટી શાખા વર્કફ્લો પ્રક્રિયા.
  • જટિલ ઈન્ફોપાથ ફોર્મ.
  • કેટલાક બિઝનેસ પ્રોસેસ માટે KPI માતાનો જોઈને (અમારા કિસ્સામાં કદાચ એચઆર પ્રતિભા સંપાદન, કે બદલી શકે છે છતાં).

અહીં અવકાશ નથી 100% accurate but representative of our approach and sufficient for my purpose here, which is to explain what I consider to be an "effective" સંપૂર્ણ MOSS દત્તક માટે નિશ્ચિતપણે સોનેરી પાથ નીચે ક્લાઈન્ટ સુયોજિત કરશે કે જે શેવાળની ​​પરિચય.

I won’t write much more about the singleton in this entry. I do want to point out that these are part of our over-arching strategy. The idea is to implement the core document management and search features to all users yet provide highly functional, high visible and highly representative examples of other core MOSS features which are simply beyond the ability of most users to absorb at this early stage. તેમ છતાં, they will be "out there" અને એક અન્ય બિઝનેસ એકમો પોતાને માટે તે લક્ષણો ખબર હોય અથવા તેમને વિશે જાણવા અને માંગો છો કરશે આશા, leading to greater adoption. These singleton success stories also serve to provide our sales team "ammunition" સફળતાપૂર્વક બીજા જીત્યા માટે, third and n-phase projects.

અમે શું બજારમાં મૂકો અને શા માટે કરી છે?

એક આધારરેખા એન્ટરપ્રાઇઝ વ્યાપી જરૂરિયાત તરીકે દસ્તાવેજ વ્યવસ્થાપન અને શોધ પર સ્થાયી કર્યા, we needed to start gathering details. As a practical matter, આ તેમના દસ્તાવેજો સમજવામાં આસપાસ ફરે છે અને તે આખરે સામગ્રી પ્રકારોને સમજવા માટે મેપ.

I’ve found it’s difficult to explain content types without visual aides. More technical folk can walk away from a discussion about content types when CT’s are described in database terms. "A CT is similar to a database table, તે સ્તંભો છે અને કૉલમ ડેટા પ્રકારો દ્રષ્ટિએ વ્યાખ્યાયિત કરવામાં આવે છે, પરંતુ સીટી ડેટા પ્રકારો સરળ પૂર્ણાંક / તારીખ કરતાં વધુ સમાવેશ થાય છે, but also "choice" and "lookup" and the like." We can talk about "extending" સામગ્રી પ્રકારોને, much like one can inherit functionality from a base class in object oriented languages. However this is obviously not helpful for the transportation department admin person who has no technical background. I.e., એક શેવાળના rollout માં બાબતો છે કે જે લગભગ દરેક.

Using a white board is iffy. I’ve presented the idea of a content type and drawn brilliant (અથવા તેથી તેઓ લાગે) સામગ્રી પ્રકારોને ચિત્રો અને શું તેઓ શોધ શબ્દો તમારા માટે શું છે અને કેવી રીતે તેઓ વિસ્તૃત કરી શકાય છે, વગેરે. અંતે, અમુક લાઇટ બલ્બ ચાલુ છે એવું લાગે છે નથી, but the resulting white board picture is a mess.

આ અમારી વર્તમાન અને અત્યાર સુધી સૌથી વધુ અસરકારક ઉતરાણ સ્થળ અમને દોરી: એક શેવાળના સેન્ડબોક્સ સાઇટ આ લક્ષણો બતાવવા માટે રૂપરેખાંકિત.

આ સેન્ડબોક્સ સાઇટ મદદથી, અમે નિદર્શન:

  • સામગ્રી પ્રકાર:
    • બહુવિધ ડેટા પ્રકારો સાથે એક સીટી બનાવવાનું (પાઠ, તારીખ, વિકલ્પ, બુલિયન, લુકઅપ, વગેરે).
    • પિતૃ પર આધારિત છે નવી સીટી બનાવીને એક સીટી વિસ્તરે.
    • CT મેટાડેટા મદદથી દસ્તાવેજો માટે શોધી.
  • દસ્તાવેજ પુસ્તકાલયો:
    • એક લાઈબ્રેરી સાથે એક સીટી સાંકળી.
    • અમે તે ગ્રંથાલય માટે એક દસ્તાવેજ અપલોડ ત્યારે શું થાય છે?
    • એક દસ્તાવેજ લાઇબ્રેરી સાથે બહુવિધ CT માતાનો સાંકળી.
    • અમે તે ગ્રંથાલય માટે એક દસ્તાવેજ અપલોડ ત્યારે શું થાય છે?
    • એક દસ્તાવેજ lib માં સ્તંભ શીર્ષકોની મારફતે ફિલ્ટરિંગ અને વર્ગીકરણ.
    • દસ્તાવેજ લાઇબ્રેરી જોવાઈ:
      • વર્ગીકરણ
      • વર્ગીકરણ
      • "Quick entry" (માહિતી શીટ દૃશ્ય)
      • "Untagged data" (અન્ય સામગ્રી સ્રોતોમાંથી શેવાળ માટે સ્થળાંતર સાથે સહાય કરવા માટે; વધુ આ નીચે પર).

આ સેન્ડબોક્સ સાઇટ:

અમે આ પ્રોજેક્ટ સમાપ્ત અને વર્ણવ્યા અનુસાર અનેક વસ્તુઓનો સમાવેશ થાય છે પછી લાંબા તાલીમ હેતુ માટે ઉપયોગ કરવા માટે વિકાસ પર્યાવરણ કાયમી લક્ષણ હોઈ અમારા સેન્ડબોક્સ સાઇટ ડિઝાઇન:

સામગ્રી પ્રકાર:

અમે નીચેની સામગ્રી પ્રકારોને વ્યાખ્યાયિત: ભરતિયું, ઓર્ડર ખરીદી, સેવાઓ ભરતિયું.

તેઓ વધુ કે ઓછું સાર્વત્રિક હેઠળ છે કારણ કે અમે બિલ અને ખરીદી હુકમ પસંદ
stood entities. Everyone in business understands that an invoice is a demand for payment to a ગ્રાહક એક માટે રકમ ચોક્કસ જારી તારીખ કેટલાક દીઠ તરીકે ચૂકવવામાં આવશે ચુકવણી શરતો. This leads to a natural definition of a CT which we called "Training Invoice" (ભરતિયું અન્ય કોઇ પ્રકારની અલગ તારવવામાં). The purchase order is similarly easily defined. We also created a "Training Services Invoice" by creating a new CT based upon the "Training Invoice" સીટી અને માત્ર એક કૉલમ ઉમેરી, "services rendered".

ઉપરના સાથે, આપણે હવે પ્રથમ એક અમૂર્ત ખ્યાલ સમજાવવા માટે પ્રયાસ કરી નીચે પડ્યાં થયા વગર સીટી ના અમુક કી લક્ષણો દર્શાવી શકે; everyone already understands what we mean by "invoice" and "purchase order" તેના બદલે સીટી પોતાની મિકેનિક પર ધ્યાન કેન્દ્રિત કરવા માટે સમર્થ છે.

વૈવિધ્યપૂર્ણ યાદી આપે છે:

CT with columns of type "lookup" point to a custom list or document library. We use this extensively and for the sandbox, we created one supporting custom list that contains customers. We picked customers because it’s an easy concept to understand and easy to demonstrate. The Invoice CT has a column, "customer" that is defined of type "lookup" that points at this list.

We created a similar custom list to manage "vendors" for the "Purchase Order" સીટી.

દસ્તાવેજ પુસ્તકાલયો:

અમે બે દસ્તાવેજ લાઈબ્રેરીઓ બનાવનાર: "Invoices" and "Mixed Documents".

We configured the invoices document library to manage only documents of CT type "Invoice".

We configured the "Mixed Documents" બધા ત્રણ સીટી માતાનો મેનેજ કરવા માટે પુસ્તકાલય.

સૉર્ટ દર્શાવે છે કે ઘણા દૃશ્યો બનાવો, ફિલ્ટરિંગ, માહિતી શીટ અને જૂથ.

શોધો:

અમે બે નવા વ્યવસ્થાપિત ગુણધર્મો વ્યાખ્યાયિત કરે છે અને બિલ સંખ્યા અને ગ્રાહક તેમને મેપ.

We created a new customized advance search site and modified it to enable users to search for "invoices" તે બે માપ થયેલ ગુણધર્મો મદદથી.

જો XSLT બદલો કે જેથી ભરતિયું અને ગ્રાહક નંબર, જ્યારે હાજર, appear in an HTML table in a bright color. The objective here is to demonstrate that such formatting is possible.

સાથે મળીને તે બધા પુટિંગ:

કી વપરાશકર્તાઓ એક ડેમો ભાગ માટે અમે વ્યવસ્થા.

અમે આ સરળ સ્ક્રિપ્ટ અનુસરો:

  1. એક સીટી અર્થ અને હેતુ વર્ણન, ઉદાહરણ તરીકે ઇન્વૉઇસેસ અને ખરીદી ઓર્ડર મદદથી.
  2. વારાફરતી તેઓ તે સ્ક્રીનો પોતાને ઉપયોગ કરવાની જરૂર નથી કે જે તેમને assuring જ્યારે બિલ CT વ્યાખ્યા બતાવો, માત્ર ખ્યાલ બનાવ્યો.
  3. જો ઇન્વૉઇસેસ દસ્તાવેજ લાઇબ્રેરી પર જાઓ.
  4. એક દસ્તાવેજ અપલોડ કરો.
  5. ગ્રાહક ડ્રોપ ડાઉન ખરેખર એક કસ્ટમ સૂચિમાંથી સ્ત્રોત છે કે પ્રદર્શન.
  6. ગ્રાહક યાદીમાં નવા ગ્રાહક ઉમેરો અને પછી નવા બનાવાયેલા ગ્રાહક સાથે તાજેતરમાં અપલોડ ભરતિયું મેટા માહિતી અપડેટ.
  7. Switch to the "mixed documents" library and upload a document. Explain how the system prompts for a document type.
  8. Go back to invoices document library and show how clicking on a column name changes sort order.
  9. કૉલમ સ્તર ફિલ્ટરિંગ પ્રદર્શન.
  10. મલ્ટી લેવલ સોર્ટિંગ નિદર્શન અલગ અલગ દૃશ્યો બતાવો, ફિલ્ટરિંગ અને વર્ગીકરણ.
  11. ડેટા શીટ દૃશ્ય બતાવો.
  12. Explain the purpose of a "untagged documents" દૃશ્ય.
  13. જો વૈવિધ્યપૂર્ણ અદ્યતન શોધ પર સ્વિચ કરો.
  14. હવે દ્વારા, તાજેતરમાં અપલોડ કરેલી દસ્તાવેજ ક્રોલ અને અનુક્રમિત કરવામાં આવી છે જોઇએ, જેથી માપ મિલકત મારફતે ભરતિયું સ્થિત કરવા માટે ક્ષમતા દર્શાવે છે કે એક શોધ કરવા.
  15. અમે vs માપ થયેલ ગુણધર્મો મારફતે શોધ વચ્ચે તફાવત દર્શાવે છે. માત્ર લખાણ શોધ.

આ બિંદુએ, we are more or less done with the demo. It seems to take about 30 માટે 45 મિનિટ, લોકો પૂછો કેટલા પ્રશ્નો પર આધાર રાખીને.

We then send them back to their desks with "homework". This consists of a simple excel spreadsheet where we ask them to define for us what they think they need in terms of CT’s, ઊંચા સ્તરે બંને (ફક્ત નામ અને બિઝનેસ હેતુ) as well as columns and type of data they would store in the column. We don’t ask them to define column data types in MOSS terms, but business terms.

સારમાં:

We’ve created a sandbox environment that we can use to demonstrate some core MOSS features whose appeal are enterprise-wide.

We have modeled easily understood and common business entities so that users can focus on MOSS and not get bogged down on the entities / ઉદાહરણો પોતાને.

Business users walk away from theses sessions with "homework" તેઓ હવે ભરો અને પોતાના પ્રથમ કટ સામગ્રી પ્રકારોને રચના માટે ઉપયોગ કરવા માટે સક્ષમ છે જે એક્સેલ દસ્તાવેજો ફોર્મ.

છેલ્લે, અમે સમય પર જનતા કરવા તરીકે, ક્લાઈન્ટ ટીમ સભ્યો પોતાની જાતને આગળ ધરવા માટે વધુ સક્ષમ બની, આ ડેમો માતાનો પોતાને અને વધુ જટિલ મુદ્દાઓ પર કામ કરવા માટે અમને બાકીના અપ સામાન્ય મફત કરવું, જેમ કે વૈશ્વિક વર્ગીકરણ તરીકે, જટિલ વર્કફ્લો, BDC અને જેવી.

શેવાળ: કાર્યાત્મક ઉદાહરણ - વૈવિધ્યપૂર્ણ ડેટા પ્રકાર

વ્યાપાર પરિદ્દશ્ય:

ઉત્પાદન કંપની માટે શેવાળના Enterprise વ્યાપી અમલીકરણ સાથે 30+ સાઇટ્સ અને થોડા ડઝન કોર્પોરેટ વિભાગો.

વ્યાપાર ઉદ્દેશ:

બિઝનેસ જૂથો એક ટોળું હોવા છતાં (વિભાગો, સ્થાનો, વગેરે), અમુક માહિતી વૈશ્વિક સ્તરે સંભાળેલ હોવી જોઇએ. ઉદાહરણ તરીકે, કંપનીના બધા ભૌતિક સ્થાનોને એક સત્તાવાર માસ્ટર યાદી (e.g. ઉત્પાદન સુવિધાઓ, વેરહાઉસ સ્થળો, વેચાણની કચેરીઓ) કેન્દ્રિય પાંચ આંકડાના US સ્થાન જાળવવામાં જોઇએ.

ટેકનિકલ સમસ્યા:

એન્ટરપ્રાઇઝ વર્ગીકરણ બહુવિધ સાઇટ સંગ્રહ ઉપયોગ કરીને લાગુ કરવામાં આવી હતી. અમે વૈવિધ્યપૂર્ણ WSS યાદીમાં ભૌતિક સ્થાનોને ની સત્તાવાર યાદી બનાવવા માટે પસંદ કરી હશે. તે પછી, અમે સામગ્રી પ્રકાર એક કૉલમ હોય જ્યારે જરૂર પડે ત્યારે (અથવા કૉલમ સૂચિ અથવા દસ્તાવેજ લાઇબ્રેરી ઉમેરવામાં) કે સમાયેલ કોર્પોરેટ સ્થળો, we would create a column using the "lookup" આ માસ્ટર યાદીમાં datatype અને બિંદુ.

કમનસીબે, lookup datatypes must access a source list "locally" અમારા સત્તાવાર યાદી સાઇટ સંગ્રહ વિસ્તારતા નથી કરી શકે છે એનો અર્થ એ થાય.

ટેકનિકલ સોલ્યુશન:

SPField પર આધારિત છે અને જેની ListItems મુખ્ય WSS સૂચિમાંથી રચના આ UI માં એક DropDownList તરીકે રજૂ અમલ એક નવા કસ્ટમ માહિતી પ્રકાર અમલ.

અમે નામની એક નવી સાઇટ સંગ્રહ બનાવનાર "http://localhost/EnterpriseData". ત્યાં, we created a custom list named "Corporate Locations". This list just uses the standard "Title" વાસ્તવિક કોર્પોરેટ સ્થળો યાદી સમાવે ક્ષેત્ર.

એક WSS માં વૈવિધ્યપૂર્ણ માહિતી પ્રકાર રચના કરવા માટે ઘણી અલગ પગલાંઓ નીચે. તેઓ આ પ્રમાણે છે:

  1. SPField માંથી બોલાવે છે, જે એક વર્ગ વ્યાખ્યાયિત (જો જરૂરી હોય તો એક અન્ય ક્ષેત્રો માંથી બોલાવે શકે).

અહીં તે માટે કોડ છે:

જાહેર વર્ગ XYZZYCorporateLocationField : SPFieldText
{
જાહેર XYZZYCorporateLocationField
(SPFieldCollection ક્ષેત્રો, સ્ટ્રિંગ typeName, સ્ટ્રિંગ displayName)
: પાયો(ક્ષેત્રો, typeName, displayName) { }

જાહેર XYZZYCorporateLocationField
(SPFieldCollection ક્ષેત્રો, સ્ટ્રિંગ displayName)
: પાયો(ક્ષેત્રો, displayName) { }

જાહેર ઓવરરાઇડ BaseFieldControl FieldRenderingControl
{
વિચાર
{
BaseFieldControl control = નવું XYZZYCorporateLocationFieldControl();
control.FieldName = .આંતરિક નામ;
પાછા control;
} //વિચાર
} // fieldrenderingcontrol

જાહેર ઓવરરાઇડ સ્ટ્રિંગ GetValidatedString(પદાર્થ કિંમત)
{
જો (.Required || value.ToString().બરાબર(સ્ટ્રિંગ.ખાલી))
{
ફેંકવું નવું SPFieldValidationException ("Department is not assigned.");
}
પાછા પાયો.GetValidatedString(કિંમત);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. આધાર ક્ષેત્ર નિયંત્રણ માંથી બોલાવે છે અન્ય વર્ગ વ્યાખ્યાયિત, તરીકે:

જાહેર વર્ગ XYZZYCorporateLocationFieldControl : BaseFieldControl
{
રક્ષિત DropDownList XYZZYCorporateLocationSelector;

રક્ષિત ઓવરરાઇડ સ્ટ્રિંગ DefaultTemplateName
{
વિચાર
{
પાછા "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

જાહેર ઓવરરાઇડ પદાર્થ કિંમત
{
વિચાર
{
EnsureChildControls();
પાછા .XYZZYCorporateLocationSelector.SelectedValue;
} // વિચાર
સેટ
{
EnsureChildControls();
.XYZZYCorporateLocationSelector.SelectedValue = (સ્ટ્રિંગ).ItemFieldValue;
} // સેટ
} // override object Value

રક્ષિત ઓવરરાઇડ ગેરમાન્ય CreateChildControls()
{

જો (.Field == શૂન્ય || .ControlMode == SPControlMode.પ્રદર્શન)
પાછા;

પાયો.CreateChildControls();

.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");

જો (.XYZZYCorporateLocationSelector == શૂન્ય)
ફેંકવું નવું અપવાદ("ERROR: Cannot load .ASCX file!");

જો (!.Page.IsPostBack)
{

નો ઉપયોગ (SPSite site = નવું SPSite("http://localhost / enterprisedata"))
{
નો ઉપયોગ (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists["Corporate Locations"];

foreach (બોલે XYZZYCorporateLocation માં currentList.Items)
{
જો (XYZZYCorporateLocation["Title"] == શૂન્ય) ચાલુ;

સ્ટ્રિંગ theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();

.XYZZYCorporateLocationSelector.Items.Add
(નવું ListItem(theTitle, theTitle));

} // foreach

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/enterprisedata")

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

ઉપરોક્ત કોડ મૂળભૂત પર સ્થિત WSS વૈવિધ્યપૂર્ણ સૂચિમાંથી કિંમતો સાથે DropDownList રચવાનું માટે તર્ક અમલીકરણ http://localhost/enterprisedata and named "Corporate Departments".

હું એક. સીએસ ફાઈલ બંને વર્ગો વ્યાખ્યાયિત, તે સંકલન અને જીએસી તેને મૂકવામાં (જરૂરી મજબૂત, અલબત્ત).

  1. નિયંત્રણ નમૂના અમલ (.ascx) બતાવ્યા:

<%@ નિયંત્રણ ભાષા="C#" બોલાવે="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,આવૃત્તિ = 12.0.0.0, સંસ્કૃતિ = તટસ્થ,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ રજિસ્ટર Tagprefix="wssawc" નામસ્થળ="Microsoft.SharePoint.WebControls" વિધાનસભા="Microsoft.SharePoint, Version=12.0.0.0, સંસ્કૃતિ = તટસ્થ, PublicKeyToken = 71e9bce111e9429c" %> <%@ રજિસ્ટર Tagprefix="SharePoint" નામસ્થળ="Microsoft.SharePoint.WebControls" વિધાનસભા="Microsoft.SharePoint, Version=12.0.0.0, સંસ્કૃતિ = તટસ્થ, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:રેન્ડરીંગ ઢાંચો ને="XYZZYCorporateLocationFieldControl" runat="server">
<ઢાંચો>
<નાનો ઝેરી સાપ:DropDownList ને="XYZZYCorporateLocationSelector" runat="server" />
</ઢાંચો>
</
SharePoint:રેન્ડરીંગ ઢાંચો>

ઉપર કેચ માં સચવાય છે:\કાર્યક્રમ ફાઈલો સામાન્ય ફાઈલો Microsoft વહેંચાયેલ વેબ સર્વર એક્સ્ટેન્શન્સ 12 controltemplates.

  1. છેલ્લે, અમે ..... 12 XML ડિરેક્ટરીમાં સાચવવા માટે એક XML ફાઇલ બનાવો. આ અમારા કસ્ટમ માહિતી પ્રકાર વ્યાખ્યાયિત કે CAML છે અને મારા ઉદાહરણ માટે, આ જેવી લાગે છે:

<?XML આવૃત્તિ="1.0" એન્કોડિંગ="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
ક્ષેત્ર નામ="TypeName">CorporateLocations</ક્ષેત્ર>
<
ક્ષેત્ર નામ="ParentType">પાઠ</ક્ષેત્ર>
<
ક્ષેત્ર નામ="TypeDisplayName">Corporate Locations</ક્ષેત્ર>
<
ક્ષેત્ર નામ="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</ક્ષેત્ર>
<
ક્ષેત્ર નામ="UserCreatable">TRUE</ક્ષેત્ર>
<
ક્ષેત્ર નામ="ShowInListCreate">TRUE</ક્ષેત્ર>
<
ક્ષેત્ર નામ="ShowInDocumentLibraryCreate">TRUE</ક્ષેત્ર>
<
ક્ષેત્ર નામ="ShowInSurveyCreate">TRUE</ક્ષેત્ર>
<
ક્ષેત્ર નામ="ShowInColumnTemplateCreate">TRUE</ક્ષેત્ર>
<
ક્ષેત્ર નામ="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, આવૃત્તિ 1.0.0.0 =, સંસ્કૃતિ = તટસ્થ, PublicKeyToken=b0b19e85410990c4</ક્ષેત્ર>
<
RenderPattern નામ="DisplayPattern">
<
સ્વીચ>
<
Expr>
<
કોલમ />
</
Expr>

<કેસ કિંમત=""/>

<મૂળભૂત>
<
HTML>
<![CDATA[
<span style="color:Red"><બોલ્ડ>]]>
</
HTML>

<
કોલમ SubcolumnNumber="0" HTMLEncode="TRUE"/>

<HTML><![CDATA[</બોલ્ડ></વેંત>]]></HTML>

</
મૂળભૂત>
</
સ્વીચ>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" અને GAC'd વિધાનસભા સામે અપ મેચ.

સ્થળ માં આ બધા બીટ્સ સ્થળાંતર કર્યા પછી, સર્વર પર iisreset છે અને તેને બધા સરસ રીતે કામ શરૂ કરીશું.

શેવાળ: વૈવિધ્યપૂર્ણ યાદી સુધારી રહ્યા છીએ

There are many good examples of updating custom lists via the SDK. Here is yet another.

વ્યાપાર સમસ્યા: InfoPath form has been designed that enables users to enter online purchase requisitions. PO Requisition numbers should be traditional sequence based integer values and calculated automatically.

વ્યાપાર સોલ્યુશન: Create a custom MOSS list containing two columns: "ControlField" and "ControlValue". The value column contains the next purchase requisition number. Note that the generic "control" naming convention provides for future control fields that may be used as needed.

ટેકનિકલ સોલ્યુશન: Create a web service accessed by the InfoPath client. The web service returns back the next purchase requisition number and updates the value of the list.

શીખેલા પાઠ:

  • When adding this web service as a data source to the InfoPath form, I found it necessary to convert it to a udc and store it into a data connection library.
  • I also found it necessary to enable cross domain scripting via central services administration // application management // form server configuration.
  • The first time the form tried to access the web service, it takes a while and on occasion, it would time out. I fiddled with settings in form server configuration to expand the timeout settings and that seemed to help.

આ કોડ:

નો ઉપયોગ પદ્ધતિ;
નો ઉપયોગ System.Web;
નો ઉપયોગ System.Web.Services;
નો ઉપયોગ System.Web.Services.Protocols;
નો ઉપયોગ Microsoft.SharePoint;
નો ઉપયોગ System.Configuration;

[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
જાહેર વર્ગ PoService : System.Web.Services.WebService
{
જાહેર PoService () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

/// <સારાંશ>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </સારાંશ>
/// <returns></returns>
[WebMethod]
જાહેર સ્ટ્રિંગ GetNextPoNumber()
{
સ્ટ્રિંગ SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
સ્ટ્રિંગ SpPoControlListName; // Name of the actual MOSS list containing the Po control.

SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();

સ્ટ્રિંગ nextPoReqNumber = "xyzzy";

નો ઉપયોગ (SPSite site = નવું SPSite(SpPoControlSiteName))
{
નો ઉપયોગ (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpPoControlListName];

foreach (બોલે controlItem માં currentList.Items)
{

જો (((સ્ટ્રિંગ)controlItem["ControlField"]).બરાબર("NextPoNumber"))
{
nextPoReqNumber = (સ્ટ્રિંગ)controlItem["ControlValue"];

ઈન્ int_nextPoReqNumber;
int_nextPoReqNumber = રૂપાંતર કરવું.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}

} // Locating, reading and updating the PO number in the list.


} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/mizuho")

પાછા nextPoReqNumber;

}
}