Mjesečni arhiv: Studeni 2007

MOSS mi govori Moj stupac Naziv je rezerviran ili u uporabi … Ali to nije

UPDATE 12/04/07: Vidjeti this Microsoft KB (http://support.microsoft.com/kb/923589) za informacije koje se odnose.

Zapravo, ispada da je, ali tricksy MOSS had to make it difficult.

My customer does some development work on his MOSS site over the weekend. It’s a bit of a jumble as to what he actually did, ali krajnji rezultat je to:

  • He tries to add a site column called "Quantity" and MOSS replies: "The column name that you entered is already in use or reserved. Choose another name."
  • He attempts to add it to another environment and that works. Stoga, "Quantity" is not a reserved name.
  • He tries to find an existing site column named "Quantity" in that site collection. He cannot find it.

I did some research, and even some coding, waxed philosophical and finally found that a column named Quantity did, zapravo, exist. It was in the "_Hidden" group. Hence, we could not find it via the SharePoint user interface.

How did it get there? I do not know, but I have a theory (or as my wife would call it, "blah blah blah"). Negdje duž linije, a fabulous forty template was added and probably activated at a site in the site collection. It was then deactivated (or the site removed). The site column, međutim, remained but in the "_Hidden" group. If someone knows better, please let me know via e-mail or post in the comments.

SharePoint was telling the truth. It’s hardly worth pointing out that that message is not as helpful as it could be. It would be nice to see that message fork into two different messages in the future: 1) Say that the column name is reserved or it is not. 2) If it’s not reserved, show the site, or at least the group, where the column name is already used.

</kraj>

OM Sadašnje podataka putem prilagođeni popis (ili, Još jedan OM podataka Displayor [kao Yacc, ali različite])

Danas, I spent a handful of hours tracking down the root cause behind the message "The column name that you entered is already in use or reserved. Choose another name."

Stupac u pitanje mogao biti stvoren, izbrisati i ponovno stvara u drugom okruženju, so I knew it wasn’t a reserved name. Međutim, Ja jednostavno ne mogu naći nigdje stupac putem standardnih SharePoint korisničko sučelje, na bilo kojem mjestu u zbirci web-mjesta.

Ja objavljena na MSDN forumi ovdje i odlučna Andrew Woodward mi je ukazao u smjeru predmetnih objekata model podataka.

Sam otišao codeplex pronaći neki alat koji bi mi pomoći zaviriti u dublje OM podataka i pomoći mi locirati problem.

Pokušao sam nekoliko alata, a oni su jako cool i zanimljiva, ali na kraju, the UI wasn’t good enough for my purpose. I’m not criticizing them by any means, ali jasno funkcije odluka nije imala moj problem na umu kada su je stvorili UI :). Most people seem to be investing a fair amount of time and effort in creating workstation / klijentske aplikacije koje pružaju stabla pogled, right-click context menus and so forth. These are nice and all, ali to je puno posla za napraviti top-of-the-line korisničko iskustvo koje je također vrlo fleksibilni.

Ja stvarno potreban odgovor na ovaj problem. Ona se dogodila mi se da sam mogao dobiti sve od stupova mjestu u zbirci web-mjesta u prilagođenom popisu, Ja mogu filtrirati, sortirati i stvoriti stavove koji će mi pomoći pronaći ovog navodno postojeći stupac (koji je to učinio, BTW). I went ahead and did that and an hour or two later, su svi moji licu stupovi učitava u prilagođenom popisu s grupiranjem, sorting and so forth. I found my answer five minutes later.

Ako i kada sam uspješno preuzeti svijet, I think I will decree that all SharePoint tools providers must seriously consider surfacing their object model data in a custom list. That way, Imam moć Usporedite bilo koji način na koji želim (ograničen, naravno, standardnom SharePoint značajke).

SharePoint Designer Workflow Custom Akcija — Promatranje O <Područje Kravata Dizajner Type =”StringBuilder” … />

Just a quick Ustanovljeno je da postoji vrlo važna razlika između ove dvije definicije:

<FieldBind Field="InParam1" DesignerType="StringBuilder" Id="2" Text="Input parameter #1"/>

protiv:

<FieldBind Field="InParam1" Id="2" Text="Input parameter #1"/>

Prvi pokazuje kao što je ovaj u SPD:

slika

dok je potonji pokazuje kao što je ovaj:

slika

I’m not sure how helpful these screen shots are but I put in the effort to make them so you have to view them 🙂

Promatranje je to: StringBuilder omogućiti da izgrade niz (očito) Zajedno string literali miješanjem podataka i workflow (via the "Add Lookup" Gumb u-donjem lijevom kutu). When you use the Add Lookup button, it inserts a token in the form "[%tokena%]". When SharePoint invokes your custom action, (C # koda u mom slučaju), SharePoint prolazi-token sama, not the value of the token. If you use the default designer type (-I drugi tip), Proširi SharePoint i položi-token-token za stvarne vrijednosti svog djelovanja.

StringBuilder = LOŠE, Zadana dizajnerica putovanja = DOBRO.

Naravno, that’s not what I really mean. Just don’t try and pass a parameter to your custom action when the designer type = StringBuilder. Use the default designer type and chain a StringBuilder to it up front if you need to build complex strings in your workflow (koji usput rečeno je točno ono što čovjek čini stvoriti dinamičnu temu za e-akcije, ali to je tema za neki drugi blog stupanja, Har Har).

<kraj />

Prijevremena Workflow Aktivacija — Non-Medicinski rješenje

UPDATE: Vidi ovu raspravu MSDN, pogotovo zadnji upis: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. It describes a condition that may short circuit this whole thing. In short, može biti kao jednostavan kao što barem jedan od polja obvezna.

Imam biblioteku dokumenata koja podržava osam vrsta sadržaja.

I have a SharePoint Designer workflow that wants to calculate and assign a "reminder date" jednostavnim oduzimanjem 30 dana od drugog stupca, "due date". This should only happen for one of the content types, "Insurance". The business objective is to produce a KPI that shows two categories of insurance documents: "about to expire" and "expired." (Možete pročitati više o ovoj vrsti KPI i jači drill-down ovdje).

I have configured the workflow to fire when a new item is created and when an item is modified. The idea is that when an insurance document is uploaded, we calculate a "warning date" based on the expiration date. A pair of views work in connection with a KPI List to highlight these conditions when users hit their home page.

Ova strategija ne radi kada ću uploadati dokument.

I upload the document and I am presented with the meta data entry screen. U ovom trenutku, I’m already in trouble. SharePoint has already, prerano iz moje perspektive, fired the workflow. I haven’t had a chance to pick the correct content type nor assign a due date. Istovremeno, the workflow does not fire when I hit the submit button at this time. There’s some built-in logic that "believes" that first submit is part of the "create" event. Tako … Moj workflow je pucao i kada je izvršena, it was passed default meta data values.

The best work-around I know of is to insert a "pause until" activity in the workflow. I have the workflow pause for 1 minute. While it’s pausing, Sam odabrati ispravnu vrstu sadržaja, enter the meta data and submit. The pause completes and the workflow proceeds as needed. (Imajte na umu da u mom okruženju, timer workflow activities from SPD do not work out of the box. You may have the same trouble. Vidjeti ovdje za više detalja).

I don’t like "magic delay" work-around. What happens if the user uploads a document and the phone rings and the ensuing conversation outlasts the pause? I can make the pause longer, ali ja još uvijek se ne sviđa.

Napisao sam o tome na MSDN forumima ovdje: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

SharePoint Sigurnost Osnove Primer / Izbjegnite zamke zajedničkih

UPDATE 12/18/07: Vidi Paula Liebrand je članak za nekih tehničkih posljedica uklanjanja ili mijenjanja imena zadane grupe (vidjeti njegov komentar ispod, kao i).

Pregled:

SharePoint security is easy to configure and manage. Međutim, it has proven to be difficult for some first-time administrators to really wrap their hands around it. Not only that, I have seen some administrators come to a perfect understanding on Monday only to have lost it by Friday because they didn’t have to do any configuration in the intervening time. (Ja priznajem da imaju ovaj problem sam). This blog entry hopefully provides a useful SharePoint security primer and points towards some security configuration best practices.

Važna napomena:

This description is based on out of the box SharePoint security. My personal experience is oriented around MOSS so there may be some MOSS specific stuff here, but I believe it’s accurate for WSS. I hope that anyone seeing any errors or omissions will point that out in comments or elektronička pošta mene. I’ll make corrections post haste.

Osnove:

Za potrebe ovog pregleda, postoje četiri temeljna aspekta sigurnosti: Korisnici / grupe, securable objekti, razina dozvole i baština.

Korisnici i grupe razbiti se:

  • Individualni korisnici: Povukao iz aktivnog imenika ili stvorili izravno u SharePoint.
  • Grupe: Mapped directly from active directory or created in SharePoint. Groups are a collection of users. Groups are global in a site collection. They are never "tied" na određenu securable objekta.

Securable objekti razbiti barem:

  • Stranice
  • Document knjižnice
  • Pojedinačne stavke popisa i biblioteke dokumenata
  • Mape
  • Različiti BDC postavke.

Postoje drugi objekti securable, ali ćete dobiti sliku.

Razine dozvola: Snop granule / low level access rights that include such things as create/read/delete entries in lists.

Baština: By default entities inherit security settings from their containing object. Sub-sites inherit permission from their parent. Document libraries inherit from their site. So on and so forth.

Korisnici i grupe se odnose na securable objekata preko razina dozvole i nasljedstvo.

Najvažnijih sigurnosnih pravila razumjeti, Ever 🙂 :

  1. Grupe su jednostavno skupovi izabranih korisnika.
  2. Grupe su globalne unutar zbirke web-mjesta (i.e. ne postoji takva stvar kao grupa definiranih na razini web-mjesta).
  3. Naziv grupe ne izdržati, skupine ne, sami po sebi, have any particular level of security.
  4. Groups have security in the context of a specific securable object.
  5. Možete dodijeliti različite razine dozvole u istoj skupini za svaki objekt securable.
  6. Web aplikacija politike adut sve to (vidi dolje).

Sigurnosni administratori izgubljeni u moru i grupe korisnika oglasi se uvijek može osloniti na tim aksiomima za upravljanje i razumjeti njihovu sigurnosnu konfiguraciju.

Zajednički Zamke:

  • Skupina imena lažno podrazumijeva dozvolu: Out of the box, SharePoint defines a set of groups whose names imply an inherent level of security. Consider the group "Contributor". One unfamiliar with SharePoint security may well look at that name and assume that any member of that group can "contribute" to any site/list/library in the portal. That may be true but not because the group’s name happens to be "contributor". This is only true out of the box because the group has been provided a permission level that enables them to add/edit/delete content at the root site. Through inheritance, the "contributors" group may also add/edit/delete content at every sub-site. One can "break" the inheritance chain and change the permission level of a sub-site such that members of the so-called "Contributor" grupa ne može doprinijeti na sve, , ali samo čitati (na primjer). This would not be a good idea, očito, jer će biti vrlo zbunjujući.
  • Grupe nisu definirane na razini web-mjesta. It’s easy to be confused by the user interface. Microsoft provides a convenient link to user/group management via every site’s "People and Groups" link. It’s easy to believe that when I’m at site "xyzzy" and I create a group through xyzzy’s People and Groups link that I’ve just created a group that only exists at xyzzy. That is not the case. I’ve actually created a group for the whole site collection.
  • Grupe članstvo ne ovisi o web-mjestu (i.e. to je svugdje ista skupina koristi): Consider the group "Owner" i dva mjesta, "HR" and "Logistics". It would be normal to think that two separate individuals would own those sites — an HR owner and a Logistics owner. The user interface makes it easy for a security administrator to mishandle this scenario. If I didn’t know better, Ja mogu pristupiti ljudima i skupinama veze putem HR web-mjestu, select the "Owners" group and add my HR owner to that group. A month later, Logistics comes on line. I access People and Groups from the Logistics site, add pull up the "Owners" group. I see the HR owner there and remove her, thinking that I’m removing her from Owners at the Logistics site. Zapravo, I’m removing her from the global Owners group. Hilarity ensues.
  • Neuspjeh u ime skupine na temelju specifične uloge: The "Approvers" group is a perfect example. What can members of this group approve? Where can they approve it? Do I really want people Logistics department to be able to approve HR documents? Of course not. Always name groups based on their role within the organization. This will reduce the risk that the group is assigned an inappropriate permission level for a particular securable object. Name groups based on their intended role. In the previous HR/Logistics scenario, Trebao sam stvorio dvije nove skupine: "HR Owners" and "Logistics Owners" osjetljiv i dodijeliti razine dozvola za svaki i najmanji iznos potreban za one korisnike da rade svoj posao.

Ostali Korisni Reference:

Ako ste napravili je to daleko:

Please let me know your thoughts via the comments or email me. If you know other good references, molimo vas da učinite isto!

Technorati Tags:

Brzo i jednostavno: Stvaranje web-dio Prikaz podataka (DVWP)

Tu je bogatstvo velike informacije o WSS 3.0 Pregled podataka web-dio (DVWP) on the web from several sources. Međutim, I found it to be surprisingly difficult to find information on this first very basic step. Here is another article in the "quick and easy" Serija njegovom rješavanju.

Slijedite ove korake za stvaranje web pregleda podataka dio (DVWP). They are based on an "Announcements" Web-dio, ali primjenjivati ​​na većini popisa.

  1. Otvori dio najave stranica i dodajte ga na licu mjesta.
  2. Otvorite stranicu na SharePoint Designer.
  3. Otvorite web-Default.aspx.
  4. Select the Announcements web part and right-click.
  5. Iz kontekstnog izbornika, select "Convert to XSLT Data View".

SharePoint Designer vas obavještava da je ova stranica je sada prilagoditi na svom mjestu definiciji. To nije nužno loše, ali ima važne implikacije (performanse, poboljšati, drugi) which are beyond the scope of this little "Quick and Easy" ulazak. To get more information on this subject, Preporučujem obje knjige ovdje , kao i vaš omiljeni pretraživanje interneta.

Uvjerite se da ste to učinili ispravno:

  1. Zatvorite i ponovno otvorite web-preglednik (to avoid accidentally re-posting the original "add a new web part").
  2. Select the web part’s arrow drop-down and choose "Modify Shared Web Part" iz izbornika.
  3. Alat otvara se u desno.
  4. Ploča se promijenila od svojih uobičajenih zadanih opcija za to:
slika

“Ne mogu dobiti stupac nekretnine sheme popisa iz SharePoint popisa” — Opis / zaobilazna

Ovaj tjedan, napokon smo reproducirati problem koji je bio prijavljen od strane udaljenog korisnika: Kada je pokušao izvesti sadržaj popisa u Excel, stvari bi se činiti da počnu raditi, ali onda Excel će poskočiti pogrešku: "Cannot get the list schema column property from the SharePoint list". She was running office 2003, windows XP and connecting to MOSS.

Tražila sam internets i vidio neke špekulacije, ali ništa 100% definitive. Hence, ovaj post.

Problem: Izvoz pogled na Excel koji sadrži datum (datum = Tip podataka stupca).

Što je radio za nas: Convert the date to a "single line of text". Tada, pretvoriti ga natrag do datuma.

That solved it. It was nice to see that the conversion worked, actually. It was quite nervous that converting things this way would fail, but it did not.

Ovaj bug je bačen ogroman sjenu vrsti datumu podataka u klijenta uma, tako da ćemo biti tražeći definitivan odgovor od Microsofta i nadam se da ću postavljati i ažurirati ovdje u sljedećem kratkom vremenskom razdoblju s njihovom službenom odgovoru i popravcima informacija.

Ostale reference:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<kraj>

Pretplatite se na moj blog.

Technorati Tags: ,

Brzo i jednostavno: Pošaljite e-mail s ugrađenim hipervezu iz SharePoint Designer tijeka rada

Jednom ili dva puta mjesečno, netko postovi forum pitanje: "How do I include hyperlinks to URL’s that are clickable from a SharePoint Designer email?"

Predstavljen bez daljnjeg komentara: (dobro, zapravo ima dodatno komentirati po slici):

slika

Becky Isserman prati s korisnim objašnjenje o tome kako ugraditi link na stavku u poruku e-pošte: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

Novo izdanje: SharePoint Designer tijeka Extensions (niz manipulacija funkcije)

UPDATE: Pogledajte ovdje za moje misli na komercijalizaciju ovog projekta: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Ja sam bio zauzet radi na mom Codeplex projekt koji je trenutno usredotočen na pružanje ekstenzije niz manipulacija u tijekove rada stvorio putem SharePoint Designer.

Vidi ovdje za detalje:

Projekt kuće: http://www.codeplex.com/spdwfextensions

Oslobodite: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Verzija 1.0 uključuje sljedeće nove značajke:

Funkcija Opis (ako ne i isti kao. Neto funkciju)
Broj-unosi() Returns the number "entries" in a string as per a specified delimiter.

Na primjer: Num-entries in a string "a,b,c" with delimiter "," = 3.

Ulazak() Returns the nth token in a string as per a specified delimiter.
Dužina String.Length
Zamijeniti() String.Replace()
Sadrži() String.Contains()
Returns the word "true" or the word "false".
Podniz(početi) String.Substring(početi)
Podniz(početi,dužina) String.Substring(početi,dužina)
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".

BDC runtime error objasnio

Ja izazvao BDC pogrešku ovog tjedna da se očituje o korisničkom sučelju i 12 Grozd log tijekom izvršavanja.

Prvi, to se pojavio u korisničkom sučelju:

Ne mogu pronaći stavke za umetanje sve identifikatora vrijednosti pravilno izvršiti SpecificFinder MethodInstance s Ime … Osigurajte ulazni parametri moraju TypeDescriptors povezane sa svakom Identifier definirane za ovog entiteta.

Ovdje je screen shot:

clip_image001

Ja se također može uzrokovati ovu poruku da se pojavi u 12 Grozd log po volji (using my patented high-tech-don’t-try-this-at-home "mysterious errors" način):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Identifier vrijednost ”, Tipa ”, je nevažeći. Expected Identifier value of Type ‘System.String’. na Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entitetska entitet, Objekt[] userValues, LobSystemInstance lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Pogledajte desiredView) na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Tražio sam okolo i naći neke ponude u MSDN forum, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison da je moja društvo squirreled je daleko na poslužitelju i shvatio moj problem.

U mom ADF, Ja sam spajanje na SQL bazi podataka kao što je prikazano:

            <Svojstvo Ime="RdbCommandText" Tip="System.String">
              <![CDATA[
                SELECT
                      , CARRIER_ID, EFFDT, Descr, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      DRŽAVA, Address1, Adresa2, ADDRESS3, ADDRESS4, GRAD, NUM1, Num2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      ŽUPANIJA, DRŽAVNA, POŠTANSKI, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, PROŠIRENJE, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                 (nolock)
                GDJE
                  (SETID <> 'Dijele') i
                  (sniziti(CARRIER_ID) >= Niži(@ MinId)) i
                  (sniziti(CARRIER_ID) <= Niži(@ MaxId)) i
                  (sniziti(Descr) Kao što su niže(@ InputDescr))
                ]]>
            </Svojstvo>

Bio sam pod uvjetom da iz SQL DBA osobe, a ja sam dao razumjeti da je poseban view they created just for me. The unique key there is CARRIER_ID.

Ovdje je bug sam uveo:

      <Identifikatora>
        <Identifier Ime="CARRIER_ID" TypeName="System.String" />
        <Identifier Ime="Descr" TypeName="System.String" /> 
</Identifikatora>

Negdje duž linije, I uspjela sam se zbuniti oko značenja <Identifikatora> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Sve je radio.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,