СхареПоинт Продавница Талк Отвори П&Седница Четвртак 08/13 @ 12:30 ЕДТ

Арцовис ће домаћин бити наш други "СхареПоинт Продавница Талк" на седници у четвртак 12:30 ЕДТ. Show up with your SharePoint questions and we’ll do our best to entertain you with banjo jokes, smart but harmless put-downs of our fellow panelists and maybe even answer a question or two. This week’s “official” panel includes yours truly, мој Арцовис партнери (Наталија Воскресенскаа и Хари Јонесу) и Лаура Родгерс (од цвркут & ЕндУсерСхареПоинт слава). Bob fox threatened to join too, but I don’t take that too seriously. Last time, имали смо висок ниво учешћа публике која замаглио линију између панелиста и учесника и очекујем исто ће се десити четвртак.

Овај догађај је ко-спонзорисан од стране интегрисане системе анд Сервицес (ввв.иссгроуп.нет).

Региструјте се овде: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=9xrzxfs9x34sb0sm

Ако имате питања која желите да, just dial into the call and ask it. If you want us to think about it first, пошаљите нам е-маил или оставите коментар овде.

Видимо се онда!

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Већ постојећим условима: СхареПоинт Упозорење шаблон по откупу (?)

One of my clients worked with a previous contractor to build out a small but useful HR application for the enterprise. That contractor used SharePoint Designer to implement the workflow portion of the solution. It’s a bit of a mess. На пример, there are nine SPD workflows in support of a single logical workflow process and up to five of them may fire simultaneously at any given time given the right conditions. It’s not easy to debug 🙂

Мој клијент има низ изванредних услова још увек-, one of which is to generally provide more context when the system sends out email alerts – both in the email itself as well as associated task forms. As SPD workflow implementers know, the “collect data from user” SPD action actually creates a task with a custom content type. When we use that action, we don’t get to specify much. We can prompt for some values (e.g. "Одобрити" или "негира") and we can specify a hard coded value in the title and description. That’s about it.

Мој захтев купца је два пута:

  1. Када СхареПоинт шаље поруку о расподеле послова, укључују много информација о задатку у тело е-.
  2. Још важније, далеко – када корисник кликне на линк задатака у е-маил, the task form should have all the information the approver needs in order to make his/her approve or deny decision. Right now, the manager needs to click on the item link itself to drill down into the underlying details and no one likes that. You have to click in the email. Then you need to click a sort of obscure link on the task item. Then you can look at the underlying data (ИнфоПатх образац у овом случају). Then you click back/back, итд. Everyone hates it.

Ја сам наследио ову помало неуредан техничко решење и ја желим да се промене у најмање наметљиве могући начин.

The approach I’m taking right now is to create a custom alert template. Можете прочитати о томе овде. The flow works like this:

  • СПД ток посла ради.
  • У неком тренутку, она додељује задатак менаџера.
  • SharePoint system automatically sends out an alert to that manager. This is not part of the SPD workflow but rather “what SharePoint does.” (СхареПоинт тајмер сервис, Верујем).
  • Прилагођено обавештење руковалац се призива у корист стандардног упозорења процеса (након магичне правила као што је описано у горе наведеном чланку).
  • Када је мој обичај упозорење руковалац ради, it generates a beautiful email. Још важније, јер има задатак у руци, Он такође украшава актуелни задатак са свим информација о контексту неопходне да задовоље захтеве пословних.
  • Корисник добија е-маил и то је пун корисних информација о контексту.
  • Корисник кликне на линк и задатака самог задатак је пун корисних информација о контексту.
  • Свако иде кући да се лубенице и сладолед.

I did a quick POC and it works well in a lab environment. I get my custom email alert as expected. I also get to update the task description and title itself.

Само варљиви део, досада, је да се избегне ситуација у којој су се ажурирање обавештења ставку, triggering another alert. This doesn’t worry me.

Обећава до сада ...

The great thing about this is that I don’t need to muck about with any of the existing SPD workflows. They are blissfully unaware that an alert handler is “IIZ RUNNIN IN DA BAKGROUND, ДЕЦОРАТИН ТЕХ листа задатака ВИФ МОАР КОНТЕКСТ".

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Уживо СхареПоинт П&Седница Четвртак 07/30/09 @ 12:30 ЕДТ завршава 1:30ЕДТ

Ажурирање: The format for this is basically a conference call with a couple of PPT slides to set the stage. We have a SharePoint environment on stand by to fire up in case it helps out, but this is mainly people talking out loud. There will be opportunities for follow up by email.

Going back to my first ever SharePoint conference, just over a year ago, I’ve been struck by how terrific a live Q&A session can be. The conference organizers had put together a sort of ad hoc group of “experts” (и.е. people who were hanging around and weren’t afraid of looking to silly up on stage) to answer any questions that came from the audience in the room. It was in my head back then, and periodically since then, to host a similar session but do it on line and the phone. I don’t think it can be as good as an in-person Q&A session, but I think it could be pretty cool.

I finally got around to it and next Thursday, 07/30, моја фирма (Арцовис) and business partner, Integrated Systems and Services group, will be hosting a Q&A like that. I’m hoping to do these regularly, as often as weekly.

This inaugural session will probably be a little bumpy, but the concept is this:

  • If you have questions that you’d like to have answered during the session, just show up and ask.
  • If you want, you can email the question in advance.

We plan to spend the first half of the Q&A on emailed questions and then open it up to anything that anyone asks after that.

The session takes place on Thursday, 07/30 starting at 12:30 and ending at 1:30 ЕДТ.

Уколико сте заинтересовани, kindly register here: https://www323.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=pxlsd9fpsm2md7h9

The panel will include me and other SharePoint luminaries. You’ll have to sign up to find out who they are 🙂

If you’d like to be one of those luminaries for a future Q&A session, let me know.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Тецхнорати Тагс:

Додајте белешке програмере Инсиде Иоур ИнфоПатх Формс

Ја сам још увек живе у свету ИнфоПатх обрасце и морао сам да се један од оних "малих" промена у облику који, нажалост, breaks a naming convention I adopted with it two weeks ago. I thought to myself, "Неко ће да погледам у ову ствар годину дана и рећи, "Оно што је Павле мислио? By Jove, his naming convention makes no sense!"

I realized that I could create a view on the form for this and then, поново, realized that I could have been doing something like this all along. I added a “Developer Notes” view to the InfoPath form as such:

image

I’ve configured the form so that users can’t get to that view and therefore, it’s only visible with the InfoPath client in design view. Now I feel a little inoculated against some future unknown developer looking at my form and thinking bad thoughts about me. Phew!

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Тецхнорати Тагс:

Управљање ИнфоПатх Виевс

Чини ми се да идем кроз ИнфоПатх фаза у којима се, изненада, I’m crafting a bunch of forms. My fingers learn how to use the tool well and then I go through nine month drought and have to learn it all over again.

I’m in the middle of an InfoPath phase and I’m creating InfoPath forms with a lot of views. One thing you probably notice is that the InfoPath 2007 client shows views in alphabetical order. This is a real nuisance some times. My best technique these days is to prepend a number to the view name so that they always show in the order I want, as illustrated here:

image

I wish I had been doing this all along.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Тецхнорати Тагс:

ИнфоПатх образаца Севицес, Обрасци потврда идентитета заснована на (ФБА) и јединствена имена датотека

Радим на неком ИнфоПатх Формс ове недеље у МОСС у ФБА окружењу и научили, када сам отишао да се распореди образаца у производном окружењу са ФБА зону да корисничко име() function function does not work. I was using it to generate unique file names.

Добро, that function doesn’t work in an FBA environment (најмање, not out of the box). И, upon reflection, using username in the way I had planned wouldn’t have guaranteed a unique file name in any event.

My solution was to use the now() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (I don’t show it in the screen shot, but put a condition on the rule to only fire when “myFilename” is blank). I used to set the file name at the data source level. Typically, I would do something (лоше) овако:

image

The problem with that is that if user A opens the form on Monday and the user B changes it on Tuesday, you’ll end up with two different forms since two different users saved it with different user names.

Тако, as annoying as FBA can be in general and with InfoPath in particular, it made me re-think a small but really important technical detail and approach that I wouldn’t have done otherwise!

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Тецхнорати Тагс:

Обезбеђивање СхареПоинт листа / библиотеку докумената Виевс Изгледа (врста) Могуће са јКуери

Ово је још једна порука у мом у току Сериес о томе како да користите јКуери са СхареПоинт.
Ако желите да сазнате више о јКуери, Топло препоручујем: јКуери у акцији по Беар Бибеаулт и Јехуда Катз.

Једна од првих ствари које сам мислио, када сам почео да се играте са јКуери, was whether we could use it to secure a SharePoint view. The answer is “no” (или барем, I’m not claiming it’s possible). Међутим, it is certainly possible to make it difficult for people to see a particular view.

I started with my sandbox environment when working on this. I wrote about that environment here: Брзо и лако: Креирај своју Сандбок јКуери за СхареПоинт.

To “secure” a view, follow these steps:

  1. Create a view you want to secure. I did that and called it “Secured View”.

    This is what it looks like when it’s not “secured”:

    image

  2. Add a content editor web part to the view’s page using the trick described in the sandbox article (и.е. add “PageView=Shared&ToolPaneView=2” to the URL).
  3. Figure out your SharePoint _spUserId by following these crazy steps, believe or not:
    1. Log into your SharePoint environment.
    2. In the web browser’s address field, тип: “javascript:alert(_spUserId”).
    3. Record the result (it’s “13” in my case).

      image

  4. Add the following javascript to your CEWP in code view:

    <скрипта
        "text/javascript"
        срц ="../../jQuery%20Library/jquery-1.3.2.min.js">
    </скрипта>
    
    <сцрипт типе ="text/javascript">
      $(функција() {
    
        alert(_spUserId);
    
        var theSecuredView = $('iframe[FilterLink*=Secured%20View]');
    
        ако ((theSecuredView.length > 0) && (_spUserId == 13))
          $('iframe[FilterLink*=Secured%20View]').родитељ().родитељ().родитељ().ХТМЛ("<тр бгцолор = црвена><тд>No view for you!</тд></тр>");
      });
    
    </скрипта>
    

I’ve included that alert(_spUserId) line in there to demonstrate how this is not really a “securing” a view, but simply making it more difficult to see. More on that in a moment.

У основи, jQuery is looking for an iFrame on the page who has an attribute that contains “Secured%20View” in its value. Once it finds it, we check to see if the current user is “13”. If it is, we walk up the DOM to a <ТР> tag (which I figured out by viewing source and tracing it) and then replacing that TR tag with my message. I really don’t know how robust this is (I’m very suspicious, заправо), but it worked in my sandbox. If I find a better way, I’ll blog about it. This is the result:

image

I click the OK button and the data is replaced with a big red message:

image

As you can tell, the way I’ve implement this “security” solution is to allow the web part to render itself. After it finishes, I overwrite its content with my “No view for you!” message.

Despite the fact that it’s not really a “secured’” view, it’s potentially useful and with some clever work, it may eventually be securable in a more formal sense. The fundamental issue is that the client is getting all the data and then, only after it gets the data, it wipes it out. If the client is getting the data, a clever user can prevent the jQuery from running at all and see what he/she wants to see.

There are other drawbacks. This “security” approach is based off a _spUserId. We’d want to really secure based on the full SharePoint security model, or at least by user name. That becomes progressively harder, but I see some good stuff written on this subject, so I’m hopeful there’s a good answer to that problem.

The list of views themselves should be trimmed, if possible. I haven’t tried to figure that out. I assume it’s possible, but doesn’t really solve the fundamental security issue because someone could still just type the URL of the view they want (if they knew it). Међутим, trimming makes sense. It’s a good usability feature and it helps to obfuscate things. If an end user doesn’t know that the view event exists, they probably won’t try to use it. Понекад, that’s good enough.

With luck, I’ll have more to write on this subject over time.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Брзо и лако: Бољи начин за коришћење јКуери да Сакриј поље за текст на СхареПоинт формулар

Ово је још једна порука у мом у току Сериес о томе како да користите јКуери са СхареПоинт.
Ако желите да сазнате више о јКуери, Топло препоручујем: јКуери у акцији по Беар Бибеаулт и Јехуда Катз.

Раније, I wrote about how to use jQuery to locate and hide a text field on a form. I didn’t care for the specific approach (Био сам Уланчавање родитељи - то се једноставно не ради ових дана, бар у породицама квалитета).

Када сам први пут почео да размишљам о томе, Знао сам да је потребно наћи <ТР> на које сам могао да се позове на кожу() метод. My early effort to find the correct <ТР> је нешто овако:

$('Тр:има(улазни[титле = Сакриј ме!])');

Проблем је у томе да ће пронаћи сваки <ТР> ознака да је имао било какав однос родитељ да ме сакрити! поље, чак и ако Сакриј ме! угнездио се много нивоа дубоко у <ТР>’s. It turns out that on my sandbox form, да израз проналази 9 различити ТР је ко су ме сакрити! as a child somewhere in its DOM tree. I realized that I could walk back up the tree from the input field itself, па тако сам завршио злостављали родитеље, али није добро седети са мном.

Дао сам неке мисли да овај и једна од ствари које сам прочитао на крају је имао смисла: Добро би ми не() метод да се трим <ТР>’s I don’t want in my wrapped set. То ме је довело до овог:

$('Тр:има(улазни[титле = Сакриј ме!])').не('Тр:има(тр)').сакрити();

Први бит проналази све <ТР> ознаке које су ме сакрити! field anywhere in their own hierarchy. It then strips out any <ТР> да имају дете <ТР>. This leaves us with a single <ТР> да:

1) Нема <ТР> дете записи

2) Does have the input field as child.

Тада можемо применити кожу() метод да добијени скуп, а ми смо урадили.

И даље сам помало нервозан у вези тога, али не као нервозан као вез родитеља.

I don’t know if this is a best practice or not. There may be a more appropriate way of identifying just the <ТР> that we care about in a SharePoint form. If you know, пошаљите коментар.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Брзо и лако: Користите јКуери да Сакриј поље за текст на СхареПоинт формулар

Ово је још једна порука у мом у току Сериес о томе како да користите јКуери са СхареПоинт.
Ако желите да сазнате више о јКуери, Топло препоручујем: јКуери у акцији по Беар Бибеаулт и Јехуда Катз.

УПДАТЕ (већ!): Ја нисам смислити бољи начин да се пронађе <ТР> означите Желим да сакрију и писао о томе овде. You may still find this article interesting anyway so I’m leavnig it up.

Желим да сакријете поље за текст, "Сакриј ме!"Као што је приказано:

image'

Следећи јКуери не трик за мене:

<сцрипт типе ="text/javascript">

  $(функција() {


    $('Улаз[титле = Сакриј ме!]').родитељ().родитељ().родитељ().сакрити();

  });

</скрипта>

Код говори, "Ми наћи сва поља за унос чији је наслов = Сакриј ме!. Онда, добити своју родитеља и онда следећи родитеља и родитеља * Следећа * (фуј!) и призову кожу() Начин на ту ствар, шта год да се дешава да се.

Схватио сам тај родитељ структура прегледом ХТМЛ у форми која СхареПоинт креирана као што је приказано:

<ТР>
    <ТД НОВРАП="true" валигн="top" ширина="190px" класа="ms-formlabel">
        <Х3 класа="ms-standardheader">
            <фонт>Сакриј ме!</фонт>
        </Х3>
    </ТД>

    <ТД валигн="top" класа="ms-formbody" ширина="400px">
        <!-- FieldName="Hide Me!"
                 FieldInternalName="Hide_x0020_Me_x0021_"
                 FieldType="SPFieldText"
        -->
        <распон ви="none">
            <улазни
                име="ctl00$m$g_bdb23c2c_fde7_495f_8676_69714a308d8e$ctl00$ctl04$ctl02$ctl00$ctl00$ctl04$ctl00$ctl00$TextField"
                тип="text"
                МАКСЛЕНГТХ="255"
                ид="ctl00_m_g_bdb23c2c_fde7_495f_8676_69714a308d8e_ctl00_ctl04_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00_TextField"
                наслов="Hide Me!"
                класа="ms-long" />
                <БР>
        </распон>


    </ТД>
</ТР>

Ова слика приказује исти, али означене са родитељима:

image

Прво родитељ (1) is a span tag. Span’s parent (2) ТД је ознака, а на крају ћемо доћи до реалног родитељ желим да се сакрије (3) што је ТР ознака сама.

This is a pretty terrible approach I think because it’s extremely dependent on the very specific structure of this form. When SharePoint 2010 излази, this whole structure could change and break this approach. What I really want to do is craft a jQuery selector that is along the lines of “find me all the TR’s (и само Тр Теги) да имају негде у својим подређених елемената улазног поља чији наслов = Сакриј ме!". I starting from the bottom and moving up. Assuming I figure this out, Ја ћу пост ажурирану "брзо и једноставно" пост.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin

Брзо и лако: Креирај своју Сандбок јКуери за СхареПоинт

Ово је још једна порука у мом у току Сериес о томе како да користите јКуери са СхареПоинт.
Ако желите да сазнате више о јКуери, Топло препоручујем: јКуери у акцији по Беар Бибеаулт и Јехуда Катз.

Први кораци са јКуери у СхареПоинт је изненађујуће лако (мени). (Ја немам озбиљна питања о "најбољим праксама" приступа ангажовања ових ствари производњу, али то је за неки други дан). I’ve just started playing with this technology and to that end, I created a sandbox environment to use. If you’re looking to get started with jQuery, можда је овај приступ користан.

1. Креирајте празну сајт

Креирајте празну сајт негде на вашем сајту и позвати га нешто паметно попут "јКуери Сандбок".

2. Преузмите јКуери

Можете преузети јКуери ЈаваСцрипт библиотека одавде: http://docs.jquery.com/Downloading_jQuery

Сачувај то за радну површину.

Ја сам био користећи "минифиед" верзију.

3. Креирање СхареПоинт библиотека докумената

У вашем сајту сандбок, create a document library.

4. Уплоад јКуери библиотеку на СхареПоинт

Приступите доц библиотеку сте управо креирали и уплоад јКуери библиотеку.

5. Креирање прилагођене листе СхареПоинт

I’ve started with a custom list because I want to muck about with standard SharePoint forms. You could also create a page in a pages library or web part pages and probably a lot of other places.

Add some columns to the custom list so that you have something to run jQuery against. My initial objectives were to:

  1. Сакриј поља.
  2. Додељивања вредности пољу.

Са тим циљем на уму, I added two text fields. Over time, Ја ћу да играм са линковима, слике, лоокуп, итд.

6. Измените НевФорм.аспк странице Веб сегмента и садржаја Додавање Веб сегмента уређивача

Ово је мала црна магија-исх , in that it’s a new concept to me. I first learned about this from Павле Грениер, СхареПоинт јКуери Суперстар, на свом сајту пројекта ЦодеПлек: http://spff.codeplex.com/.

Следите ове кораке да бисте додали ЦЕВП на истој страници која приказује НевФорм.аспк за било коју прилагођену листу:

  1. Приступите прилагођене листе и кликните на дугме Ново.
  2. Додај следеће на УРЛ: Пагевиев = Дељени&ТоолПанеВиев = 2

То ће трансформисати ваш досадно ваниле формулар за унос података из овако нешто:

image

Да би ово:

image

Додајте део садржаја веб едитор на страну.

7. Напишите свој први код јКуери

Отвори тај ЦЕВП у приказу код и додајте следећи:

image

Овде је стварни број ако желите да цопи / пасте:

<скрипта
    "text/javascript"
    срц ="../../jQuery%20Library/jquery-1.3.2.min.js">
</скрипта>

<сцрипт типе ="text/javascript">
  $(функција() {

    $('# РесултсИД').ХТМЛ("Постоје ' + $('').величина() + 'А ознаке ознаке на овој страници.');

  });
</скрипта>

Резултат:
<див ид ='РесултсИД'></див>
/резултат

Имајте на уму да је први <скрипта> tag is referencing the actual jQuery library. Presumably, ове ствари мењају током времена, тако да ћете желите да се уверите да) користе право име и б) указују да је у исправном СхареПоинт библиотеке докумената.

Уживају у слави

Ако сте то урадили исправно, видећете резултат сличан следећем:

image

Завршавајући

Ово није једини начин да почнете, али је брзо, easy and isolated from your existing SharePoint environment.

</крај>

Претплатите се на мој блог.

Следите ме на Туиттер на http://www.twitter.com/pagalvin