માસિક આર્કાઇવ્ઝ: ઈસાઈ વર્ષનો બીજો મહિનો 2008

નાના જાહેર ઘોષણા: Windows Live સુરક્ષા સેટિંગ્સ અને સ્પેસ કુલ સ્ત્રોતમાં માલિકોનો સંપર્ક

I receive a handful of messages from individuals via the built-in "send a message" કાર્ય માઇક્રોસોફ્ટ લાઇવ જગ્યાઓ સાથે પૂરી પાડે છે (જે પણ મારા બ્લોગ હોસ્ટ) દર મહિને.

તે સમયના એક તૃતીય, those users have secured their live spaces account such that I cannot reply. This is some kind of anti-spam feature I assume.

</અંત>

સરળ સમજાવટ: “ભાવ અપેક્ષિત શ્રેણી અંદર કરાયું નથી.”

અપડેટ: An anonymous poster left a great comment about internal names. Be sure to read it.

ઇવેન્ટ રીસીવરો અને અન્ય કોડ સાથે કામ કરે છે, ત્યારે કે ઓબ્જેક્ટ મોડલ મારફતે સંદર્ભો શેરપોઈન્ટ યાદી વસ્તુઓ, હું ઘણી વાર રનટાઈમે આ ભૂલ પેદા કરતી ભૂલો કરી:

Xyzzy લોડ કરવામાં ભૂલ અને ચાલી ઘટના રીસીવર Conchango.xyzzyEventReceiver, આવૃત્તિ 1.0.0.0 =, સંસ્કૃતિ = તટસ્થ, PublicKeyToken = 0dc50a750396c3ac. Additional information is below. : Value does not fall within the expected range.

I think this is a fairly generic error that is potentially caused many different ways. તેમ છતાં, one simple explanation is that I’m referencing a field incorrectly. If the name of the field is "Due Date", I must reference it like this in an event receiver:

properties.ListItem["Due Date"]

When I misspell or use the wrong case when referencing the field, SharePoint generates the above mentioned runtime error. ઉદાહરણ તરીકે, this is wrong:

properties.ListItem["due Date"]

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

Technorati ટૅગ્સ:

અંતે વપરાશકર્તા ઝડપી મદદ: એક દસ્તાવેજ લાઇબ્રેરી માં સોર્ટ જોવાઈ, યાદી, વગેરે.

અમે કરી શકો છો, અને શેરપોઈન્ટ યાદીઓ ઘણા દૃશ્યો બનાવો કરવું જોઈએ (દસ્તાવેજ પુસ્તકાલયો, વૈવિધ્યપૂર્ણ યાદીઓ, વગેરે). SharePoint always lists available views in alphabetical order. We cannot change this using out of the box functionality. If it can be done via customization (અને હું તે કરી શકે છે તેની ખાતરી નથી), તે તમારી લાક્ષણિક ઓવરને વપરાશકર્તા માટે તકનિકી ખૂબ છે.

તમે શેરપોઈન્ટ ઉપલબ્ધ જોવાઈ યાદી આપે છે કે જે ક્રમમાં નિયંત્રિત કરવા માંગતા હોય તો, માત્ર દેખાવ નામ એક નંબર અથવા અક્ષર જોડો, તરીકે:

1 – સામગ્રી પ્રકાર દ્વારા
2 – બધા દસ્તાવેજો
3 – નિયત તારીખ

-અથવા-

એક – સામગ્રી પ્રકાર દ્વારા
બી – બધા દસ્તાવેજો
સી – નિયત તારીખ

I have also created views whose purpose is strictly to feed a KPI. I have been following this naming convention:

Z_KPI_[વર્ણન]

That causes my "KPI" જોવાયું યાદીમાં તળિયે દેખાય છે.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

રવિવાર ફની: “હું જ્યારે લિટલ બોય હતી”

માતાપિતા તરીકે, somewhere along the line I discovered the "When I was a little boy" trick.

મારા સૂર્ય, ચાર અથવા કદાચ તે સમયે પાંચ, એક બલૂન રમતા અને સૌથી ઓછી છોકરાઓ કે ગુબ્બારા સાથે રમવા જેવી, he popped it. He was very upset. The world had come to an end. I said to him, "when I was little boy, હું એક બલૂન હતી અને તે આખરે પોપ અને, I got a new balloon." It seemed to help him cope with his loss and led to a fun talk about what it was like when I was a little boy.

That worked well as a consolation technique and I used it a several times over the next period of time. I did get into trouble once when his Monster Rancher 3 creature died. I talked about how my dog, રાજકુંવર, had died in a car accident. આ સમય, તેમના જવાબ હતો, "Now I feel bad about two things!" I shied away from using the "when I was a little boy" કે પછી આશ્વાસન માટે ટેકનિક.

મૃત કૂતરો ઘટના પહેલાં, તેમ છતાં, I had also started to use the technique to convince him to do chores. "When I was a little boy, I had to go out and get the newspaper", "clean my room", "get Mommy her coffee cup", વગેરે.

આ પણ એક જ્યારે માટે ખૂબ સફળ હતી, but he started to increasingly rebel against the tyranny of my childhood. One event, ખાસ કરીને, marked the end. I told him to bring the garbage cans from curb back to the garage. He argued and I responded, "When I was a little boy, I had to take the garbage back to the garage." He responded, "Oh yeah! Well when you were a little boy, કે મૂર્ખ હતી!".

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

Technorati ટૅગ્સ:

યાદી આપે છે અને દસ્તાવેજ લાઇબ્રેરીઓ અને જોવાઈ કૉલમ સુરક્ષિત કરી શકાતી નથી

અપડેટ (02/29/08): આ નવી કોડપ્લેક્સ પ્રોજેક્ટ વ્યક્તિગત કૉલમ સુરક્ષિત કરવા માટે એક પદ્ધતિ પૂરી પાડે છે તેમ લાગે છે: http://www.codeplex.com/SPListDisplaySetting. If you have any experience working with it, એક ટિપ્પણી છોડી કૃપા કરીને.

ફોરમ પોસ્ટરો વારંવાર આ જેમ એક પ્રશ્ન પૂછો: "I have a manager view and and a staff view of a list. How do I secure the manager view so that staff can not use it?"

તેઓ પણ ઘણીવાર સંબંધિત પ્રશ્ન પૂછો: "I want to secure a specific metadata column so that only managers may edit that column while others may not even see it."

These answers apply to both WSS 3.0 અને MOSS:

  • જોવાયું સુરક્ષિત કરવા માટે શેરપોઈન્ટ પૂરું પાડતું નથી આઉટ ઓફ ધ બોક્સ આધાર.
  • સુરક્ષા કૉલમ માટે શેરપોઈન્ટ પૂરું પાડતું નથી આઉટ ઓફ ધ બોક્સ આધાર.

There are several techniques one can follow to meet these kinds of security requirements. Here’s what I can think of:

  • Use out-of-the-box item level security. Views always honor item level security configuration. Event receivers and/or workflow can automate security assignment.
  • Use personal views for "privileged" જોવાયું. These are easy enough to set up. તેમ છતાં, due to their "personal" કુદરત, these need to be configured for each user. Use standard security configuration to prevent anyone else from creating a personal view.
  • ડેટા જુઓ વેબ ભાગ વાપરો અને AJAXy સુરક્ષા આનુષંગિક બાબતો ઉકેલ અમુક પ્રકારની અમલ.
  • તમારા પોતાના યાદી પ્રદર્શન વિધેય રોલ અને સુરક્ષા સ્તંભ સ્તરે આનુષંગિક બાબતો સમાવેશ.
  • ડેટા એન્ટ્રી સ્વરૂપો બદલો અને આનુષંગિક બાબતો કૉલમ સ્તર સુરક્ષા અમલ કરવા માટે સુરક્ષા મોડલ સાથે જોડાણમાં JavaScript નો ઉપયોગ.
  • Use an InfoPath form for data entry. Implement column-level security trimming via web service calls to SharePoint and conditionally hide fields as needed.
  • આનુષંગિક બાબતો કૉલમ સ્તર સુરક્ષા અમલીકરણ કે જે તમારા પોતાના ASP.NET ડેટા એન્ટ્રી કાર્ય પત્રક.

તે વિકલ્પો કંઈ ખરેખર મહાન છે, પરંતુ તમે જરૂર હોય તો પાલન માટે ઓછામાં ઓછી પાથ છે, તે મુશ્કેલ છે પણ જો.

નોંધ: તમે આ પાથ કોઈપણ નીચે જાઓ તો, don’t forget about "Actions -> Open with Windows Explorer". You want to be sure that you test with that feature to make sure that it doesn’t work as a "back door" અને તમારી સુરક્ષા યોજના હરાવવા.

તમે સુરક્ષિત કૉલમ અથવા જોવાયેલી અન્ય માટે વિચારો અથવા અનુભવો હોય તો, કૃપા કરીને મને ઇમેઇલ અથવા એક ટિપ્પણી મૂકો અને હું આ યોગ્ય તરીકે પોસ્ટિંગ અપડેટ કરીશું.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

ઝડપી મદદ: BDC ADF આવૃત્તિ નંબર તમારો મિત્ર છે

જો તમે છો ADF ફાઈલો હાથ કોડિંગ અને કોડ ઘણો / ચક્ર આયાત / પરીક્ષણ કરવાનું, use the version number to make your life easier.

હું તે સ્વીકાર્યું અપ્રિય, પરંતુ જ્યાં સુધી આ અઠવાડિયે, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

ઉદાહરણ:

<LobSystem
xmlns:xsi="HTTP://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" પ્રકાર="WebService" આવૃત્તિ="1.2.0.0" નામ="xyzzyDocumentReview" xmlns="HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

કે આવૃત્તિ અને ફરીથી આયાત બદલો અને હાલની બિઝનેસ માહિતી સ્તંભ કોઈ વધારાનું રૂપરેખાંકન જરૂરી સાથે આપોઆપ સુધારાયેલ આવૃત્તિ વાપરે છે.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

Technorati ટૅગ્સ:

ઉકેલ: BDC પીકર માત્ર પરિણામો એક કૉલમ બતાવે છે

એક પૂરી મારા ચાલુ પ્રયાસો BDC ઉપયોગ કરીને વધુ ઉપયોગી લૂકઅપ કૉલમ, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

તમે પ્રમાણે બિઝનેસ માહિતી સ્તંભની ખુલ્લા પુસ્તક આઇકોન પર ક્લિક કરીને પીકર ઍક્સેસ:

છબી

The above image shows a business data column called "Master Document Id". That column is connected, BDC મારફતે, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" કાર્ય. Users select a "master" દસ્તાવેજ અને જ્યારે તેઓ સેવ, આ સંદર્ભ માસ્ટર પાસેથી એક ઇવેન્ટ રીસીવર નકલો મેટા માહિતી ક્ષેત્રો.

મૂળભૂત રીતે, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

તે મદદરૂપ છે, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (e.g. શીર્ષક) પરંતુ તે મળી ટાઇટલ વાસ્તવિક યાદી દેખાશે, માત્ર તેમની DocId તરીકે અહીં દર્શાવવામાં આવ્યું છે:

clip_image002[1]

(હું કોઇ પણ માન્ય પરિણામો આપે છે કે એક શોધ પસંદ ન હતી કારણ કે આ સ્ક્રીન શૉટ એટલા મહાન નથી, પરંતુ તમે જોઈ શકો છો કે તે કેટલાક પરિણામો મળ્યાં હોત તો, તે માત્ર DocId માતાનો બતાવ્યા પ્રમાણે હશે, નથી ટાઇટલ).

I searched high and low for the answer to this and failed. મારો સાથીદાર, જો આર્યડીકનની પદવી જોનાથન બ્રેડશો, had faced and solved this issue. When I reached out to him for help, તેમણે યોગ્ય દિશામાં મને નિર્દેશ.

Configure the picker to show multiple columns via the "ShowInPicker" જો ADF માં મિલકત:

<મિલકત નામ="ShowInPicker" પ્રકાર="System.Boolean">સાચું</મિલકત>

વધુ વિગતવાર:

  <!-- શીર્ષક -->
  <TypeDescriptor TypeName="System.String" નામ="શીર્ષક" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">શીર્ષક</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <ગુણધર્મો>
      <મિલકત નામ="DisplayByDefault" પ્રકાર="System.Boolean">સાચું</મિલકત>
      <મિલકત નામ="ShowInPicker" પ્રકાર="System.Boolean">સાચું</મિલકત>
    </ગુણધર્મો>
  </TypeDescriptor>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. મારા કિસ્સામાં, BDC picker showed DocId by default. તેમ છતાં, once I added "ShowInPicker" શીર્ષક માટે, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

અહીં પરિણામ છે:

છબી

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. ટૂંકમા, જો તે સહેજ વધુ સારી રીતે વપરાશકર્તા અનુભવ માટે પરવાનગી આપે છે કે શ્રેણીબદ્ધ શબ્દમાળા છે).

અલબત્ત, આ બ્લોગ એન્ટ્રી લખી કર્યા, I just did a search for "ShowInPicker" અને સંખ્યાબંધ હિટ મળી, આ એક સહિત: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો!

Technorati ટૅગ્સ:

ઝડપી & સરળ: એક ફોલ્ડર બનાવો અને સામગ્રી પ્રકાર સોંપો (અથવા, તમારી KPIs છે અને તેમને ખૂબ ખાય છે)

આસપાસ KPI સમસ્યા કામ કરવા માટે હું અહીં વિશે લખ્યું, I did some testing and discovered that KPI’s work against folders with meta data in the same way that they work against documents or list items. I proved it out by creating a new content type based on the folder content type and then added a few fields. I created some indicators and proved to myself that KPIs work as expected. This was welcome news. It’s not perfect, because the drill-down you get from the KPI against the folders is not exactly what you want. This isn’t too much a drawback in my case because 1) ઓવરને વપરાશકર્તાઓ કોઈપણ સારી અને ખબર નથી 2) the drill-down goes to a folder. They click the folder name and they are at the item. It’s two clicks instead of one, જે વિશ્વમાં ઓવરને નથી.

This flowed nicely with the work I was doing. I am creating a folder for every document that gets uploaded. This is done via an event receiver. પરિણામે, તે રાખવા કેક ભાગ છે પિતૃ ફોલ્ડર માતાનો meta data in sync with the KPI-driven meta data from the file itself since the plumbing is already in place. આ મારી KPI માતાનો હોય છે અને તેમને ખૂબ ખાય પરવાનગી આપે છે મને 🙂

I modified the event receiver to add the folder and then set this new folder’s content type to my custom KPI-friendly content type. This bit of code did the trick:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documents").SubFolders;
  SPFolder ઉમેરી ફોલ્ડર = srcFolders.Add(properties.ListItem.ID.ToString());
  SPContentTypeId kpiCT = નવું SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Content Type ID"] = kpiCT;
  addedFolder.Item.Update();

વાસ્તવિક સામગ્રી પ્રકાર ને શોધવામાં, હું પ્રમાણે સાઇટ સેટિંગ્સ અને નકલ મારફતે સામગ્રી પ્રકાર / URL ને તેને પેસ્ટ કે ઍક્સેસ:

છબી

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો!

Technorati ટૅગ્સ: ,

ઝડપી અને સરળ: એક ઇવેન્ટ રીસીવર એક SPListItem ના SPFolder વિચાર

હું તે સ્વીકાર્યું અપ્રિય, but I struggled with this one all day. My event receiver needs to update a field of its parent folder. This little bit shows how to do it:

ખાનગી ગેરમાન્ય UpdateParentFolder(SPItemEventProperties ગુણધર્મો)
{

SPFolder thisItemFolder = properties.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ Approval Status"] = "Good news, બધા!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

આ કિસ્સામાં, હું એક દસ્તાવેજ લાઇબ્રેરી સાથે કામ કરું છું અને ગુણધર્મો એક ItemAdded ઇવેન્ટ આવતા હોય છે.

આ યુક્તિ તમે વસ્તુ પોતે સીધું આઇટમની SPFolder મળી શકે છે (દાખલા તરીકે. properties.ListItem.Folder નલ છે). ને બદલે, યાદીમાં આઇટમની સંકળાયેલ ફાઈલ પર જાઓ અને ફાઈલ માતાનો ફોલ્ડર વિચાર.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો!

Technorati ટૅગ્સ:

હજી સુધી બીજી ઇવેન્ટ રીસીવર ડીબગ ટ્રિક

I’m sure I’m not the first person to come up with this. તેમ છતાં, I haven’t noticed anyone publish a trick like this since I started paying close attention to the community last July. તેથી, હું તે આ ઝડપી અને સરળ ડિબગ ટીપ પોસ્ટ કરશો વિચાર્યું.

હું આ ભૂલ પેદા કરવા માટે શરૂ છે કે જે ઇવેન્ટ રિસીવર પર કામ કરી રહ્યો છું 12 મધપૂડો:

Xyzzy લોડ કરવામાં ભૂલ અને ચાલી ઘટના રીસીવર Conchango.xyzzyEventReceiver, આવૃત્તિ 1.0.0.0 =, સંસ્કૃતિ = તટસ્થ, PublicKeyToken = blahbalhbalh. Additional information is below. : એક વસ્તુ એક ઉદાહરણ માટે ઓબ્જેક્ટ સંદર્ભ સુયોજિત નહિં.

I didn’t know where I had introduced this bug because I had done too many things in one of my code/deploy/test cycles.

હું પ્રયત્ન કર્યો છે આ ઉકેલ આશા સાથે ત્યાં મારા pdb વિચાર કે શેરપોઈન્ટ માતાનો 12 મધપૂડો સ્ટેક ટ્રેસ બતાવશે, but no luck. I don’t know if it’s possible and if someone does, મને જણાવવા વિનંતી 🙂

હું તે શક્ય છે ખબર જો તમારા પોતાના લોગ સંદેશાઓ લખી 12 મધપૂડો. Frankly, હું અમલ કરવા માટે થોડી ઓછી ડરામણી અને ઝડપી કંઈક ઇચ્છતા.

હું ઓછામાં ઓછા આ જેમ સામાન્ય અપવાદો મોહક અને ફરીથી ઘા દ્વારા કેટલાક પાયાના ટ્રેસ માહિતી મળી શકે કે મને આવી:

  પ્રયત્ન કરવો {
    UpdateEditionDate(ગુણધર્મો);
  }
  ઝાલવું (અપવાદ અને)
  {
    ફેંકવું નવું અપવાદ("Dispatcher, UpdateEditionDate(): અપવાદ: [" + e.ToString() + "].");
  }

આ માં દર્શાવ્યું 12 મધપૂડો thusly:

Xyzzy લોડ કરવામાં ભૂલ અને ચાલી ઘટના રીસીવર Conchango.xyzzyEventReceiver, આવૃત્તિ 1.0.0.0 =, સંસ્કૃતિ = તટસ્થ, PublicKeyToken = blahblahblah. Additional information is below. : મોકલનાર, UpdateEditionDate(): અપવાદ: [System.NullReferenceException: એક વસ્તુ એક ઉદાહરણ માટે ઓબ્જેક્ટ સંદર્ભ સુયોજિત નહિં. at Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties ગુણધર્મો) at Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties ગુણધર્મો, શબ્દમાળા eventDescription)].

કે મને ચોક્કસ સમસ્યા ટ્રૅક કરવા માટે જરૂરી તમામ વિગત આપી હતી અને હું તેને આગળ જતાં ઘણો વાપરવા માટે અપેક્ષા.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો!