Category Archives: SharePoint

কিভাবে রহস্যময় SharePoint ত্রুটি ট্রাবলশুট করুন.

পরিদর্শন:

ডিবাগ করার পদ্ধতি হল কঠিন যখন উইন্ডোজ SharePoint সেবা জন্য কাস্টম কার্যকারিতা উন্নয়নশীল 3.0 (WSS) অথবা মাইক্রোসফট অফিস SharePoint সার্ভার (শৈবাল). 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.

আমি মহান সাফল্য সাথে এই কৌশল থেকে অন্যথায় রহস্যময় ত্রুটি বিশ্লিষ্ট ব্যবহৃত.

অভিগমন:

SharePoint একটি লগ ফাইলের মধ্যে ডায়গনিস্টিক লগ থেকে একটি তথ্য মহান চুক্তি সংরক্ষণ 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 মধুচক্র লগ নির্দেশিকা.

মাইক্রোসফট সর্বোত্তম কার্যাভ্যাস (অনুযায়ী মাইক T-. এর মাইক্রোসফট) 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 মধুচক্র অবস্থান).

এই এন্ট্রিটি যেমন বিষয় ঠিকানাগুলি:

  • SharePoint কার্যপ্রবাহ কারণে অভ্যন্তরীণ ত্রুটি থেকে আরম্ভ করতে ব্যর্থ.
  • (অধিক সময়ের জন্য যোগ করা)
  • এই এন্ট্রিটি বড় হয়েছে কার্যপ্রবাহ ত্রুটি diagnosing (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. আপনি কল্পনা করতে পারেন, এই শ্রেষ্ঠ রোলআউট কৌশল ছিল না (যা সহজেই ক্লায়েন্ট admits) এবং যখন পানা দৃশ্যের উপর উপগত, the client resolved to "do it right" এবং আমাদের তাদের সাহায্য ঠিকা.

কেন্দ্রিয় আমাদের সম্মুখীন যখন আমরা শুরু এই প্রকল্প বাস্তবায়ন প্রশ্ন ছিল: কিভাবে আমরা এই ক্লায়েন্টের পরিচয় করিয়ে শৈবাল? 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 পারে সত্যিই প্রায় প্রতিটি প্রধান পানা বৈশিষ্ট্য ব্যবহার করে আপনি একটি উদ্যোগ নাগালের এবং অনেক ভাল থিংস আর হ্যাপেনিং সঙ্গে একটি বড় প্রকল্পের লাভ আছে.

আমরা আবার এই সময় এবং সময় সঙ্গে মুখোমুখি করছি … শৈবাল একটি উদ্যোগ বৈশিষ্ট্য-সেট সঙ্গে Enterprise ভিতরে আছে, এখনও এমনকি কিছুটা বাস্তববুদ্ধিসম্পন্ন ক্লায়েন্ট একটি হার্ড সময় মানসিকভাবে যারা বৈশিষ্ট্য বিশোষণ আছে, না ঘাঁটান তাদের দৈনন্দিন নিত্যকর্ম মধ্যে একটি তাদের উপলব্ধিজনক ভগ্নাংশ একত্রিত.

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, প্রভৃতি).

উপরোক্ত Enterprise ব্যাপী বৈশিষ্ট্য ছাড়াও (যার অর্থ তারা সমস্ত বিভাগ এবং ব্যবহারকারীদের আউট ঘূর্ণিত করা), আমরা নিম্নলিখিত একক ইন সুযোগ মিনি প্রকল্প যোগ:

  • ধারণা BDC ইন্টিগ্রেশন প্রমাণ.
  • মাল্টি পদক্ষেপ এবং একাধিক শাখা কার্যপ্রবাহ প্রক্রিয়া SPD-র মাধ্যমে নির্মিত.
  • কমপ্লেক্স InfoPath ফর্ম.
  • কিছু ব্যবসায়িক প্রক্রিয়ার জন্য KPI এর Surfacing (সম্ভবত HR কে আমাদের ক্ষেত্রে প্রতিভা অর্জন, যদিও যে পরিবর্তন হতে পারে).

এখানে সুযোগ না 100% accurate but representative of our approach and sufficient for my purpose here, which is to explain what I consider to be an "effective" শৈবাল প্রবর্তনের যে ক্লায়েন্ট পূর্ণ পানা গ্রহণ থেকে সেট দৃঢ়রূপে নিচে সুবর্ণ পাথ হবে.

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.

আমরা যা করেছি এবং জীবন কেন?

নথি ব্যবস্থাপনা এবং অনুসন্ধান উপর একটি বেসলাইন Enterprise ব্যাপী প্রয়োজন হিসাবে রয়ে নিষ্পত্তি, 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. অর্থাত, প্রায় প্রত্যেকেই পানা রোলআউট যে গুরুত্বপূর্ণ.

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.

এই আমাদের বর্তমান এবং এ পর্যন্ত সবচেয়ে কার্যকর অবতরণস্থল আমাদের নেতৃত্বে: একটি শৈবাল স্যান্ডবক্স সাইটে এই বৈশিষ্ট্য প্রদর্শন কনফিগার করা.

স্যান্ডবক্স সাইট ব্যবহার, আমরা প্রদর্শন:

  • বিষয়ের প্রকারগুলি:
    • একাধিক ডেটা ধরন সঙ্গে একটি সিটি নির্মাণ (পাঠ, তারিখ, পছন্দ, বুলিয়ান, লুকআপ, প্রভৃতি).
    • একটি নতুন সিটি একটি ঊর্ধ্বতন উপর ভিত্তি করে তৈরি একটি সিটি ব্যাপ্তিশিীল.
    • সিটি মিটাডাটা ব্যবহার করে নথি জন্য অনুসন্ধান.
  • ডকুমেন্ট লাইব্রেরী:
    • একটি লাইব্রেরি সঙ্গে একক সিটি দোসর.
    • যখন আমরা যে লাইব্রেরি থেকে একটি নথি আপলোড কি?
    • একটি doc গ্রন্থাগারের সঙ্গে একাধিক সিটি এর দোসর.
    • যখন আমরা যে লাইব্রেরি থেকে একটি নথি আপলোড কি?
    • ফিল্টারিং কলামের শিরোনাম মাধ্যমে এবং একটি doc 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".

সঙ্গে উপরোক্ত, আমরা এখন ডাউন bogged প্রথমে একটি বিমূর্ত ধারণা ব্যাখ্যা করার চেষ্টা পাচ্ছেন না কিছু সিটি 'র মূল বৈশিষ্ট্য প্রদর্শন করতে পারেন; 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, "উপভোক্তা" 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 যে তারা নিজেদের ব্যবহার যারা পর্দা করতে হবে না দেখাও, মাত্র ধারণা নিতে.
  3. ইনভয়েস বা চালান নথি গ্রন্থাগারের যান.
  4. একটি নথি আপলোড.
  5. স্পষ্ট করা হয়েছে যে গ্রাহক ড্রপ ডাউন সত্যিই একটি কাস্টম তালিকা থেকে sourced.
  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. আমরা মাপা বৈশিষ্ট্যাবলী মাধ্যমে অনুসন্ধান মধ্যে পার্থক্য প্রকট বনাম. শুধুমাত্র একটি টেক্সট অনুসন্ধান.

এই বিন্দু, 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" মধ্যে এক্সেল নথিসমূহ আকারে যা তারা এখন পূরণ এবং তাদের নিজের প্রথম স্পষ্ট বিষয়বস্তু ধরনের নকশা জন্য ব্যবহার যোগ্য.

পরিশেষে, যেমন আমরা সময়ের গণদেবতা সঞ্চালন, ক্লায়েন্টের সদস্যরাও নিজেদের হত্তয়া আরও জের টানা সক্ষম, ডেমো এর নিজেরাই এবং সাধারণত বিনামূল্যে আমাদের বিশ্রাম আপ আপ আরও জটিল সমস্যাগুলির জন্য কাজ করতে হবে, যেমন আন্তর্জাতিক শ্রেণীবিন্যাস, জটিল workflows, BDC এবং মত.

শৈবাল: প্রায়োগিক উদাহরণ - কাস্টম ডেটা প্রকার

ব্যবসা দৃশ্যকল্প:

শৈবাল এন্টারপ্রাইজ ব্যাপী উত্পাদন কোম্পানির জন্য বাস্তবায়ন সঙ্গে 30+ সাইট এবং কয়েক ডজন কর্পোরেট বিভাগ.

ব্যবসা লক্ষ্য:

সত্বেও ব্যবসা দলের নিকর (বিভাগ, অবস্থানগুলি, প্রভৃতি), নির্দিষ্ট তথ্য একটি আন্তর্জাতিক পর্যায়ে উচিত রক্ষণাবেক্ষণ. উদাহরণস্বরূপ, একটি প্রামাণিক সব কোম্পানির প্রকৃত অবস্থানকে মাস্টার তালিকা (e.g. উত্পাদন সুবিধা, পণ্যাগার অবস্থানগুলি, বিক্রয় অফিসে) একটি কেন্দ্রিয় অবস্থানে বজায় রাখা উচিত.

প্রযুক্তি সংক্রান্ত সমস্যা:

এন্টারপ্রাইজ শ্রেণীবিন্যাস একাধিক সাইট ব্যবহার করে স w বাস্তবায়িত হয়েছিল. আমরা পছন্দ একটি কাস্টম WSS তালিকায় শারীরিক অবস্থান প্রামাণিক তালিকা নির্মাণ করা হবে. তারপর, যখন আমরা একটি কনটেন্ট টাইপ একটি কলাম থাকা প্রয়োজন (অথবা একটি কলামের একটি তালিকা বা doc গ্রন্থাগারের যোগ) যে অন্তর্ভুক্ত কর্পোরেট অবস্থানগুলি, we would create a column using the "lookup" এই মাস্টার তালিকা থেকে ডাটাটাইপ এবং বিন্দু.

দুর্ভাগ্যবশত, lookup datatypes must access a source list "locally" অর্থাত আমাদের প্রামাণিক তালিকা সাইট স w না লাগে পারেন.

প্রযুক্তি সমাধান:

একটি নতুন কাস্টম ডাটা টাইপ বাস্তবায়ন ভিত্তি SPField উপর এবং UI যার ListItems মাস্টার WSS তালিকা থেকে পূর্ণ একটি DropDownList হিসাবে প্রতিনিধিত্ব বাস্তবায়ন.

আমরা একটা নতুন সাইট সংগ্রহ নামক নির্মিত "http://localhost/EnterpriseData". সেখানে, we created a custom list named "Corporate Locations". This list just uses the standard "Title" ক্ষেত্র থেকে যথার্থ কর্পোরেট অবস্থান তালিকা ধারণ করে.

এক কয়েকটি থেকে WSS মধ্যে একটি নিজস্ব ডাটা টাইপ তৈরি বিযুক্ত ধাপগুলি অনুসরণ. তারা:

  1. একটি বর্গ SPField থেকে যা inherits নির্ধারণ (অন্য একটি ক্ষেত্র থেকে যদি প্রয়োজন উত্তরাধিকারী হতে পারে).

এখানে যে জন্য কোড:

জনসাধারণের বর্গ XYZZYCorporateLocationField : SPFieldText
{
জনসাধারণের XYZZYCorporateLocationField
(SPFieldCollection ক্ষেত্র, স্ট্রিং typeName, স্ট্রিং displayName)
: তল(ক্ষেত্র, typeName, displayName) { }

জনসাধারণের XYZZYCorporateLocationField
(SPFieldCollection ক্ষেত্র, স্ট্রিং displayName)
: তল(ক্ষেত্র, displayName) { }

জনসাধারণের অগ্রাহ্য করা BaseFieldControl FieldRenderingControl
{
পাওয়া
{
BaseFieldControl control = নতুন XYZZYCorporateLocationFieldControl();
control.FieldName = এই.InternalName;
প্রত্যাবর্তন control;
} //পাওয়া
} // fieldrenderingcontrol

জনসাধারণের অগ্রাহ্য করা স্ট্রিং GetValidatedString(উদ্দেশ্য মান)
{
যদি (এই.Required || value.ToString().সমান(স্ট্রিং.খালি))
{
নিক্ষেপ নতুন SPFieldValidationException ("Department is not assigned.");
}
প্রত্যাবর্তন তল.GetValidatedString(মান);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. অন্য বর্গ তলের ক্ষেত্র নিয়ন্ত্রণ থেকে যে inherits নির্ধারণ, যেমন:

জনসাধারণের বর্গ 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".

আমি একটি একক. Cs ফাইল উভয় শ্রেণীর সংজ্ঞায়িত, এটা কম্পাইল এবং GAC সেটিকে করা (দৃঢ় আবশ্যক, স্বভাবত).

  1. একটি নিয়ন্ত্রণ ফর্মা বাস্তবায়ন (.ascx) চিত্রের:

<%@ নিয়ন্ত্রণ ভাষা="C#" Inherits="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,সংস্করণ = 12.0.0.0, সংস্কৃতি = নিরপেক্ষ,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ রেজিষ্টার Tagprefix="wssawc" নামস্থান="Microsoft.SharePoint.WebControls" সমাবেশ="Microsoft.SharePoint, সংস্করণ = 12.0.0.0, সংস্কৃতি = নিরপেক্ষ, PublicKeyToken = 71e9bce111e9429c" %> <%@ রেজিষ্টার Tagprefix="SharePoint" নামস্থান="Microsoft.SharePoint.WebControls" সমাবেশ="Microsoft.SharePoint, সংস্করণ = 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">সত্য</ক্ষেত্র>
<
ক্ষেত্র নাম="ShowInListCreate">সত্য</ক্ষেত্র>
<
ক্ষেত্র নাম="ShowInDocumentLibraryCreate">সত্য</ক্ষেত্র>
<
ক্ষেত্র নাম="ShowInSurveyCreate">সত্য</ক্ষেত্র>
<
ক্ষেত্র নাম="ShowInColumnTemplateCreate">সত্য</ক্ষেত্র>
<
ক্ষেত্র নাম="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, সংস্করণ = 1.0.0.0, সংস্কৃতি = নিরপেক্ষ, PublicKeyToken=b0b19e85410990c4</ক্ষেত্র>
<
RenderPattern নাম="DisplayPattern">
<
সুইচ>
<
Expr>
<
স্তম্ভ />
</
Expr>

<কেস মান=""/>

<ডিফল্ট>
<
এইচটিএমএল>
<![CDATA[
<span style="color:Red"><বো>]]>
</
এইচটিএমএল>

<
স্তম্ভ SubColumnNumber="0" HTMLEncode="সত্য"/>

<এইচটিএমএল><![CDATA[</বো></বিঘত>]]></এইচটিএমএল>

</
ডিফল্ট>
</
সুইচ>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" এবং সাথে মেলানো GAC'd সমাবেশ বিরুদ্ধে এটি আপ.

পরে স্থান মধ্যে সমস্ত এই বিট গতিদায়ক, iisreset সার্ভারের উপর এবং এটি সমস্ত আরম্ভ কাজ সুন্দরভাবে উচিত.

শৈবাল: একটি কাস্টম তালিকা আপডেট করার প্রণালী

SDK-র মাধ্যমে কাস্টম তালিকা আপডেট করার অনেক ভাল উদাহরণ আছে. এখানে এখনো হয় অন্য.

ব্যবসায় সমস্যা: InfoPath ফর্ম ব্যবহারকারীদের অনলাইন ক্রয় requisitions প্রবেশ করতে সক্ষম হবেন যে ডিজাইন করা হয়েছে. ডাকঘর অধিযাচন সংখ্যা ঐতিহ্যগত ক্রম ভিত্তিক পূর্ণসংখ্যা মান হতে হবে এবং স্বয়ংক্রিয়ভাবে হিসাব করা উচিত.

ব্যবসা সমাধান: দুই কলাম ধারণকারী একটি কাস্টম MOSS তালিকা তৈরি করুন: "ControlField" and "ControlValue". মান কলাম পরের ক্রয় অধিযাচন সংখ্যা উপস্থিত রয়েছে. Note that the generic "control" প্রচলিত রীতি অনুযায়ী নামকরণের প্রয়োজন হিসাবে ব্যবহার করা যেতে পারে যে ভবিষ্যতে নিয়ন্ত্রণ ক্ষেত্র জন্য উপলব্ধ.

প্রযুক্তি সমাধান: InfoPath ক্লায়েন্ট ব্যবহার করতে একটি ওয়েব পরিষেবা তৈরি করুন. ওয়েব সার্ভিস পরের ক্রয় অধিযাচন সংখ্যা এবং আপডেটের তালিকা মূল্য ফেরৎ.

শিখেছি পাঠ:

  • InfoPath ফরমের একটি তথ্য উৎস হিসেবে এই ওয়েব পরিষেবা যোগ করার সময়, 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-এ 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;

}
}