بایگانی ماهانه: نوامبر 2007

شما می تواند رسیدن به شیرپوینت را ضرب و شتم

در طول دو روز گذشته, I have participated in two meetings during which we presented the results of a SharePoint project. The CIO and his team joined the first meeting. That’s standard and not especially notable. The IT department is obviously involved in an enterprise rollout of any technology project. The second meeting expanded to include a V.P. from marketing, several directors representing HR, Logistics, Manufacturing, Capital Projects, Quality, Purchasing, Corporate development and other departments (some of whom were not even directly involved in the current phase). That’s a mighty wide audience.

In my prior life, I primarily worked on ERP and CRM projects. They both have a fairly wide solution domain but not as wide as SharePoint. To be fully realized, SharePoint projects legitimately and necessarily reach into every nook and cranny of an organization. How many other enterprise solutions have that kind of reach? Not many.

SharePoint clearly represents an enormous opportunity for those of us fortunate enough to be in this space. It provides a great technical opportunity (which is somehow turned on its head اینجا under "Technologies You Must Master"). But even better, SharePoint exposes us to an extensive and wide range of business processes through these engagements. How many CRM specialists work with the manufacturing side of the company? How many ERP consultants work with human resources on talent acquisition? SharePoint exceeds them both.

Like anything, it’s not perfect, but it’s a damned good place to be.

برای عشق [پر کردن در ترین فرد خود را دوست داشتنی / بالاتر بودن], don’t change the ‘Title’ ستون سایت.

در انجمن شیرپوینت, گاهی اوقات کسی که در مورد "تغییر برچسب عنوان می پرسد" و یا "از بین بردن عنوان را از لیست".

خط پایین: آیا آن را انجام دهد!

متاسفانه, رابط کاربر اجازه می دهد تا یک تغییر یک طرفه از برچسب ستون که به عنوان نشان داده شده است:

تصویر

عنوان یک ستون همراه با آیتم "می باشد" نوع محتوا. بسیاری, بسیاری, بسیاری از CT استفاده از این ستون و اگر شما آن را در اینجا تغییر, it ripples out everywhere. There’s a good chance that you didn’t intend for that to happen. You were probably thinking to yourself, "I have a custom lookup list and ‘Title’ فقط معنی به عنوان نام ستون را ندارد, so I’m going to change it to ‘Status Code’ and add a description column." But if you follow through on that thought and rename ‘Title’ to ‘Status Code’, عنوان هر لیست (از جمله کتابخانه های سند) changes to "Status Code" و شما احتمالا قصد نداشتند برای آن که این اتفاق می افتد.

مشکل واقعی این است که این تغییر یک طرفه. The UI "knows" that "title" is a reserved word. پس, if you try and change "Status Code" back to "Title", آن را به شما جلوگیری از و در حال حاضر شما باید خود را به گوشه نقاشی using paint that never dries 🙂

پس چه اتفاقی می افتد اگر شما در حال حاضر آن را تغییر? I haven’t seen the answer we all want, which is a simple and easy method to change the label back to ‘Title’. Right now, the best advice is to change it to something like "Doc/Item Title". That’s a generic enough label that may not be too jarring for your users.

من چند ایده دیگر که در لیست کارهای من همه چیز را به پژوهش هستند:

  • تماس با مایکروسافت.
  • آیا چیزی با مدل شی, شاید در رابطه با یکی از ویژگی های.
  • شکل شمای پایگاه داده و به روز رسانی دستی SQL. (شما باید مایکروسافت قبل از انجام این کار هر چند تماس بگیرید; آن به احتمال زیاد قرارداد پشتیبانی خود را از درجه اعتبار ساقط).

اگر کسی می داند که چگونه به حل این, لطفا نظرتان را تایپ کنید.

بروز اواخر بعد از ظهر, 11/15: که من پیدا کردم این لینک که یک روش برای ایجاد یک نوع لیست را توصیف می کند که یک ستون عنوان ندارد: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF و به دوستان خود, CDATA

من برخی از بی دست و پا و غیر ضروری دست کدگذاری از RdbCommandText را در برخی از نمونه های مورد توجه (از جمله مستندات MSDN).

من می خواستم به این نکته اشاره به تازه واردان به BDC که دستورات را می توان در داخل یک تگ CDATA در خود را "طبیعی پیچیده" form. پس, این ساخت و ساز بی دست و پا:

<ویژگی نام="RdbCommandText" نوع="System.String">
انتخاب dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement از dbo.MCRS_SETTLEMENT
مکانی که در آن (شناسایی &پیداکنید;= @ MinID) و (شناسایی &LT;= @ MaxId)
</ویژگی>

بهتر می تواند به نمایندگی از این راه:

<ویژگی نام="RdbCommandText" نوع="System.String">
<![CDATA[
انتخاب dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement از dbo.MCRS_SETTLEMENT
مکانی که در آن (شناسایی >= @ MinID) و (شناسایی <= @ MaxId)
]]>
</ویژگی>

</پایان>

به عنوان مثال BDC

معرفی به BDC

به عنوان مثال تابعی: BDC ADF که برای اتصال به پایگاه داده SQL با شناسه کاربری و رمز عبور تعبیه شده

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with this template (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), I created an ADF that connects to a particular SQL server instance and logs in with a specific user id and password and shown in this snippet:

  <LobSystemInstances>
    <LobSystemInstance نام="ClaimsInstance">
      <خواص>
        <ویژگی نام="AuthenticationMode" نوع="System.String">PassThrough</ویژگی>
        <ویژگی نام="DatabaseAccessProvider" نوع="System.String">SqlServer</ویژگی>
        <ویژگی نام="RdbConnection Data Source" نوع="System.String">actual server\actual instance</ویژگی>
        <ویژگی نام="RdbConnection Initial Catalog" نوع="System.String">actual initial catalog</ویژگی>
        <ویژگی نام="RdbConnection Integrated Security" نوع="System.String">SSPI</ویژگی>
        <ویژگی نام="RdbConnection Pooling" نوع="System.String">غلط</ویژگی>

        <!-- These are the key values: -->
        <ویژگی نام="RdbConnection User ID" نوع="System.String">actual User ID</ویژگی>
        <ویژگی نام="RdbConnection Password" نوع="System.String">actual Password</ویژگی>
        <ویژگی نام="RdbConnection Trusted_Connection" نوع="System.String">غلط</ویژگی>

      </خواص>
    </LobSystemInstance>
  </LobSystemInstances>

It is not a best practice, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • adf embedded userid and password
  • embed user id and password in adf
  • embed user id and password in adf bdc
  • sharepoint bdc primer
  • sharepoint embed user id and password in adf

</پایان>

مشترک شدن در وبلاگ من.

SPD اقدامات گردش کار سفارشی — رشته پیشرفت دستکاری

حدود یک هفته پیش, I started up a codeplex project that provides a simple and reasonably generic method for adding custom action functions to SharePoit Designer workflow. It’s described here: http://www.codeplex.com/spdwfextensions. Beyond simply providing a framework, it also aims to provide a set of useful functions that will make SPD more useful/flexible/powerful.

در اینجا ویژگی های برنامه ریزی شده در حال حاضر برای نسخه 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

اگر کسی هر گونه علاقه در این پروژه, لطفا ترک یک دیدگاه یا شروع / اضافه کردن به بحث به اینجا: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

در اینجا مجموعه ای از توابع است که کدگذاری شده اند (هر چند به طور کامل به عنوان آزمایش نشده 11/08/07):

تابع شرح (اگر همان عملکرد خالص)
تعداد نوشته های() Returns the number "entries" in a string as per a specified delimiter.

مثلا: Num-entries in a string "a,ب,ج" with delimiter "," = 3.

ورود() Returns the nth token in a string as per a specified delimiter.
طول String.Length
جایگزین کردن() String.Replace()
شامل() String.Contains()
Returns the word "true" or the word "false".
زیر رشته(شروع) String.Substring(شروع)
زیر رشته(شروع,پایان) String.Substring(شروع,پایان)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returns the word "true" or the word "false".
EndsWith() String.EndsWith()
Returns the word "true" or the word "false".

سریع & آدرس رمزگذاری آسان ابزار دسکتاپ

I’ve been needing to url-encode some strings this week and slapped together a a little utility that I thought I’d put up on SkyDrive for the community.

باینری در اینجا: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

راه حل ویژوال استودیو: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

در اینجا یک شات صفحه نمایش:

تصویر

دسترسی سریع و آسان: قراردادن لینک به XSLT بخش داده ها مشاهده وب سایت

تکمیلی (01/17/08): این مذاکرات وبلاگ بیشتر لینک خوبی XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

بررسی اجمالی و هدف: I had created a simple bar chart to serve as component on a dashboard. I’ll save the details on building charts for another post, اما من این روش را ابداع (و نه علامت سوال, که برای ماده). It turned out there was a bug in the chart and while I fixed that, I took the opportunity to convert some labels into hyperlinks that pointed at the underlying list behind the graph. مثلا, there is a label with value "Hold". I wanted to turn the label into a hyperlink so that the user could click on it and drill down to the specific entries in the list whose status value is "Hold".

مراحل:

  1. با استفاده از ویژوال استودیو برای INTELLISENSE شیرپوینت آگاه.
  2. کپی XSLT DVWP در به ویژوال استودیو (ایجاد یک پروژه خالی, اضافه کردن یک فایل XSL به پروژه).
  3. کپی لینک شما مایل به استفاده به کلیپ بورد.
  4. چسباندن آن را به محل مناسب در XSL.
  5. Convert URL argument separators on the query string from "&" to "&آمپر;"
  6. آدرس رمزگذاری استدلال فردی.
  7. قرار دادن که در داخل <یک عکاس هنگام عکسبرداری…> </a>

مثال:

من یک URL:

HTTP://[سرور]/[محل]/لیست /٪ 20Positions/AllItems.aspx باز?نمایش ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = همکاران&FilterValue1 = نگه دارید

من آن را به تبدیل:

     <a عکاس هنگام عکسبرداری="لیست /٪ 20Positions/AllItems.aspx باز?نمایش =٪ 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&آمپر;FilterField1 = همکاران&آمپر;FilterValue1 = نگه دارید"> نگه داشتن: </a>

من دستی آرگومان اول از تبدیل:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

به:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

(در این, بریس باز تبدیل به٪ 7B و بریس اختتامیه تبدیل به٪ 7D)

آرگومان دوم و سوم’ پارامترهای ("FilterField1=همکاران" and "FilterValue1=نگه داشتن" به ترتیب) لازم نیست به آدرس کد گذاری شده، زیرا آنها شامل هر کاراکتر ناامن نیست.

یادداشت ها:

این تکنیک به طور کلی باید کار کند در هر جایی که شما می خواهید به جاسازی لینک در XSLT است که در آن لینک شامل پارامتر در URL مانند:

HTTP://[سرور]/[محل]/لیست /٪ 20Positions/AllItems.aspx باز?نمایش ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = همکاران&FilterValue1 = نگه دارید

من URL خود را با دسترسی به لیست های سفارشی و دستی فیلتر در ستون وضعیت، (labeled "Recruiter" بالاتر).

سریع و ساده: فعال کردن شیرپوینت طراح گردش کار فرم InfoPath و برای به روز رسانی

سناریوی: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Since I cannot count on workflow history to meet my auditing requirements, تصمیم گرفتم برای ذخیره پیام های حسابرسی خود را به طور مستقیم بر روی فرم خود.

بررسی اجمالی:

Design the form and publish it as a نوع محتوا and the form itself to a document library. Mark desired form fields as being updateable from MOSS. The form is tied to the content type and the content type is "attached" to a forms library (or many, if you want). Write a workflow that updates the field.

Specific Steps:

  1. Create a document library. This will hold your InfoPath template.
  2. Create a forms library.
  3. Create the InfoPath form. Include a text field, "Audit Message".
  4. Publish the form as a content type (NOT a document).
  5. While filling out the publishing dialogs:
    a) Save the .xsn file to the document library (گام #1).
    ب) Publish the "Audit Message" field and mark true: "Allow users to edit data in this field by using a datasheet or properties page".
    ج) Create a new content type and give it an appropriate name.
  6. Access the forms library.
    a) Go to its advanced settings and enable the forms library to manage content types.
    ب) Select the newly created content type (5c above). It will be grouped under "Microsoft InfoPath" (or similar).
    ج) Remove the default "Form" content type from the library.
    d) Mark the library to "show as web page" so that the form will launch from SharePoint and not the InfoPath workstation client.
  7. Go back to the forms library proper and click "New" to simply verify that the form is posted correctly and acting as you want.
  8. Fire up SharePoint Designer and navigate to the site that hosts your form library (from step 2).
  9. Create a new workflow attached to the forms library.
  10. Add a single action "Set Field in Current Item". You should expect SharePoint Designer to list your your field, "Audit Message". Assign it a value.
  11. Click Finish and go back to the form library.
  12. Create a new form and put some test value into the "Audit Message" میدان.
  13. Save it and go back to the form library.
  14. Right-click, select "Workflow" and start up your workflow.
  15. It should run almost immediately. Pull up the form (from step 12) and if all has gone to plan, "Audit Message" has been assigned whatever value you provided in step 10.

یادداشت ها:

Not all controls may configured for this bi-directional communication. مثلا, it does not seem to implement an SPD workflow that modifies text fields wrapped inside repeating sections.

One of the key take-away’s here is that we’ve really created a content type with an associated template. This also enables us to store multiple InfoPath form templates in the same form library.

This requires forms server. It’s most certainly not going to work in a WSS 3.0 environment and probably even requires an Enterprise SharePoint environment.

تازی شکاری پاکوتاه فرود شده است. (اکتبر 2007 موضوع)

(این است که در واقع یک خبر کمی قدیمی, اما به عنوان آتش شعار مورد علاقه من ایستگاه اعلام, "Better late than never").

آن را چک کنید از اینجا: http://www.sharepointbeagle.com/

اگر شما در حال حاضر نمی, مطمئن شوید که به ثبت نام.

البته, مطمئن باشید به خواندن مقاله من about a real-world SharePoint project (از جمله تعریف مورد نیاز, در KPI, نوع محتوا, dashboards and more) as well as همکار من article about the content query web part.

بسیاری از چیزهای خوب دیگر نیز وجود دارد.

چگونه برای حذف “مشاهده تمام محتویات سایت” پیوند

این سوال را از من خواسته شده تقریبا هر هفته, به طور معمول در زمینه بحث های امنیتی. An administrator/site creator has provisioned a site, پیکربندی امنیتی, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. اما, از جعبه, you can’t remove the "view all site content" پیوند.

Mark Wagner provides the answer اینجا (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). His write-up is terrific on two levels. It provides an answer to the question, "How do I remove the View All Site Content" پیوند? سپس, it answers the immediate follow-on question: How do I easily enable the view all site content link on a site-by-site basis?

As a bonus: His approach works for WSS, not just MOSS.

</پایان>

مشترک شدن در وبلاگ من!