BLOGas.lt
Naujausi įrašai
  Lėktuvų bilietai
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

Sharepoint Development

2010-05-21

Apie maksimalaus perduodamos informacijos kiekio padidinimą

Gali nutikti, kad atsakymai (pranešimai) iš Web servisų yra gana dideli (pvz., didelis prekių, darbuotojų, klientų sąrašas ir pan., didelis dokumentas ir t.t.) ir .net aplikacija pateikia klaidą apie tai, kad viršytas maksimalus pranešimo dydis (System.ServiceModel.Communication: The maximum size quota or incoming messages (xxxxxx) has been exceeded). Norint išvengti šios klaidos (ir užsitikrinti saugų programos veikimą) reikia padidinti MaxReceivedMessageSize dydį (kurio nutylimoji reikšmė yra 65536, t.y. 64 KB).

 Tam reikia surasti atitinkamą rišantįjį elementą. Jums teks redaguoti aplikacijos web.config (arba app.config) konfigūracinį failą. Jame suraskite binding elementą (pagal nurodytą hierarchinę schemą), kuris atrodys maždaug taip:

<configuration>
   …
   <system.serviceModel>
       <bindings>
           <basicHttpBinding>
               <binding name=”ObjectServicePortBinding” closeTimeout=”00:01:00″
                     … maxBufferSize=”65536″ maxBufferPoolSize=”524288″
                     maxReceivedMessageSize=”65536″ … >
                        …
               </binding>
                       …
           </basicHttpBinding>
       </bindings>
           …
   </system.serviceModel>
       …
</configuration>

 Pakeiskite maxBufferSize, maxBufferPoolSize ir maxReceivedMessageSize reikšmes į planuojamą didžiausią galimą Web serviso atsakymą. Tarkim, 512 KB reikšmę nurodo skaičius 524288. Aišku, elkitės protingai ir be reikalo pernelyg nepadidinkite šios reikšmės, nes tai atsilieps bendram sistemos produktyvumai, nes aplikacija reikalaus daugiau atminties resursų.

Beje, tai galima padaryti ir programiškai, bet apie tai kitą kartą.

2010-04-23

Filtruoti pagal srauto (workflow) statusą

Tema: Bibliotekos, Kita, Sąrašai, Workflowtapatus @ 13:19

Viena naudingų SharePoint 2007 galimybių yra rodinio (view) filtrai - įrašų atranka pagal tam tikrus kriterijus. Jei sąrašas (ar biblioteka) turi priskirtą srautą (workflow), galima filtruoti ir pagal jo statusą. Tereikia palyginti srauto pavadinimą su tam tikra skaitine reikšme. Pvz., nustatomas filtras, kurio srautas UploadActivitiesFile nėra baigtas (Completed):

Statusas Reikšmė  Pastabos
Not Started 0  
Failed on Start 1  
In Progress 2  
Error Occurred 3  
Canceled 4  
Completed 5  
Failed on Start (retrying) 6  
Error Occurred (retrying) 7  
Canceled 15 * Apibrėžta, bet neaišku, ar naudojama
Approved 16  
Rejected 17  

2010-03-22

Stipraus parašo įtraukimas

Tema: Bendra, Kita, Programavimastapatus @ 18:04

Kartais susiduriama su situacija, kai reikia įtraukti į projektą DLL, kurių pradinių kodų neturime (pvz., trečiųjų šalių DLL). Tam pareikalaujama, kad jis būtų „stipriai pasirašyta” (strong signing). Čia pateiksime paprastą būdą sukurti „stiprų parašą”.

Tarkim turime NotSigned.dll, kuriam reikia priskirti „stiprų parašą”.

  • 1. Deasembliuojame jį:
    ildasm NotSigned.dll /out:NotSigned.il
  • 2. Sukuriame “viešą raktą”:
    sn -k KeyToSign.snk
  • 3. Asembliuojame panaudodami sukurtą “viešą raktą”:
    ilasm NotSigned.il /dll /key:KeyToSign.snk /out:itSigned.dll

Dabar galite itSigned.dll  užregistruoti “sambūryje” (assembly) ir naudoti savo projekte. Galite jį pasitikrinti su komanda
sn -vf itSigned.dll

Ji turi pranešti, kad Assembly ‘itSigned.dll’ is valid

2010-01-21

Neinformatyvaus pranešimo iššifravimas

 Administruojant SharePoint, pasirenkant
Central Administration - > Application Management -> (InfoPath Forms Services grupėje) Manage forms templates
gali būti pateikiama mažai informacijos suteikiantis klaidos pranešimas:
 Error. Unknown Error.

Pirmiausia - kaip gauti detalesnį klaidos priežasties paaiškinimą.

a) Suraskite problemą sukėlusios svetainės  web.config  failą.
Jį galima rasti taip: IIS Manager  pasirenkate serverį, išskleidžiate Web Sites medį, susirandate svetainę (mūsų atveju, Central Administration). Iš dešiniu pelės klavišu išskleisto meniu pasirenkame Properties…

IIS Central Administration Site

ISS Home Directory Local Path

 

Home Directory kortelės lauke Local path yra nurodytas kelias, kurį galite nusikopijuoti ir įkelti į Windows Explorer adreso lauką.

 

Tame kataloge rasite  web.config  failą, kurį atverkite su Notepad programa. Suraskite SafeMode sritį ir jos atributo CallStack reikšmę iš false pakeiskite į true. Išsaugokite failą. Nuo šiol gausite klaidos pranešimą, kuris iš tikro leis nustatyti klaidos priežastį.

web.config SafeMode CallStack attibute

2010-01-20

Formų servisai neįjungti? - ne tai tik teisės!

Jei įdiegiant Infopath formas arba net bandant gauti įdiegtų sąrašą (stsadm -o enumformtemplates) ir panašiose operacijose gaunamas pranešimas

InfoPath Forms Services is not turned on

tai gali būti todėl, kad jūs neturite teisių į konfigūracijos duomenų baze (MS SQL serveryje).

2010-01-06

Laukui priskirti formos ID reikšmę

Poreikis:  tam tikram InfoPath formos laukui priskirti formos, išsaugotos bibliotekoje, ID reikšmę (pvz., formos pavadinime).

Nors tai atrodytų paprasta iš pirmo žvilgsnio, tačiau reikalauja tam tikrų „triukų”. Mat tuo metu, kai kuriama forma, tas ID dar nežinomas, nes jis priskiriamas tik išsaugojus formą. Pateikiamas pavyzdys gali būti pagrindu jūsų konkretiems sprendimams.

Skaitykite:  Laukui priskirti formos ID reikšmę  (PDF)

2009-12-22

Kokioms grupėms priklausom?

Kartais gali tekti patikrinti, kokioms grupėms priklauso vartotojas. Pateikiamas kodo pavyzdys, pailiustruojantis kaip nustatyti, kokioms veiksnios svetainės (current site) grupėms priklauso vartotojas (forma: domenas\registracijos_kodas). WS_UserGroup, naudojamas pavyzdyje, yra nuoroda į Sharepoint svetainės UserGroup Web Service.

Kodas: Grupės, kurioms priklauso vartotojas

2009-12-16

Timeout laiko reikšmės padidinimas kviečiant Web Service

Tema: Bendra, InfoPath, Kita, WebServicestapatus @ 18:29

Kartais gali susidaryti situacija, kai InfoPath formoje gaunama klaida, kad Web Service (WS) iškvietimas buvo nutrauktas dėl per ilgo jo kvietimo (ar vykdymo) laiko (timeout klaida). Ši problema gali būti išspręsta dviem būdais, priklausomai nuo to, kurioje vietoje įvyko delsimas.
1) Jei ilgai vykdomas pats Web Service, tai galima padidinti būtent WS vykdymo laiką (timeout reikšmę). Tai galima pasiekti paredagavus Web Service konfigūracijos failą web.config – pataisyti (ar įdėti naują raktą) httpRuntime reikšmę sekundėmis) system.web srityje, pvz.,

<configuration>
        <system.web>
                <httpRuntime executionTimeout=”240” />
        </system.web>
</configuration>

2. Jei WS kvietimas nutraukiamas InfoPath formoje, reikėtų pakeisti DataConnection laukimo reikšmę. Tai atliekama SharePoint 3.0 Central Administration pagalba: Application Management sekcijoje pasirinkti InfoPath Forms Services, o čia galima pakeisti Data Connection Timeouts nustatymus (reikšmės – milisekundėmis) – žr. piešinį:

InfoPath Forms Services Timeout nustatymas

InfoPath Forms Services Timeout nustatymas

2009-12-13

WebPart zonos įterpimas arba pašalinimas

Pastaba: tam jums svetainėje (site) reikia turėti arba „Add/Remove Private Web Parts“, arba „Add and Customize Pages” teises. Bent vieną šių teisių turi Contribute, Web Designer arba Administrator grupių nariai.

WebPart‘ų zona yra dėklas, per kurį galima tvarkyti (grupuoti ir išdėstyti), suteikti teises ir formatuoti (išvaizda: visiems ir asmeniškai) jame esančius WebPart‘us (WP).

Puslapio WebPart‘ai gali:

  • būti WebPart‘ų zonoje: jų savybės yra saugomos WSS 3.0 turinio DB (t.y. ne aspx puslapyje). Įtraukdami WP į zoną suteikiate galimybę vartotojams naršyklės pagalba sąveikauti arba modifikuoti WP;
  • nebūti WP zonoje: jų savybės yra aspx puslapyje, o ne DB. Vartotojai gali tik matyti WP, tačiau negali sąveikauti ir jų modifikuoti.

 WebPart zonos įterpimas

1. „SharePoint Designer 2007″ (SPD) įkelkite reikiamą puslapį:
2. „Task Panes” meniu pasirinkite „Web Parts”;
3. “Design” rodinyje nurodyke vietą puslapyje, kur norite įterpti WP zoną:
4. „Web Parts” panelės apačioje pasirinkite „New Web Part Zone”;
5. Spragtelėkite dešiniu pelės mygtuku zoną ir meniu pasirinkite „Web Part Zone Properties”;
6. Atsivėrusiame dialogo lange galite:
    * suteikti pavadinimą zonai: „General settings” kortelės lauke „Zone title”;
    * nurodyti rėmelio tipą: iš „General settings” kortelės sąrašo „Frame style”;
    * parinkti WP išdėstymo būdą (vertikalų ar horizontalų): “Layout of Web Parts contained in the zone”;
    * nurodyti savybes, kurias gali keisti vartotojai: “Browser settings for Parts contained in the zone”;
7. Baigus, paspausti OK mygtuką.

WebPart zonos pašalinimas

Šalinant WP zoną, iš puslapio pašalinami ir visi zonoje buvę WP. Prieš šalindami WP zoną, įsitikinkite, kad pasirinkote tik WP zoną, o ne daugiau objektų (pasitikslinti galite pagal lango viršuje esantį „Quick Tag Selector” - jei jis nesimato, „View” meniu pasirinkite „Quick Tag Selector”).

1. Pasirinkite WP zoną;
2. Paspauskite Delete klavišą.

2009-11-06

Parametrai InfoPath formose

Tema: Formos, InfoPath, Kitatapatus @ 21:38

InfoPath 2007 turi naują galimybę - leidžia perduoti formai parametrus, kuriuos galima paimti formos įkėlimo metu. Pavyzdžiui, userID, kuris nurodo vartotoją, kurio kai kuriuos duomenis reikia panaudoti formoje.
Parametrus galima perduoti arba formos šablonui (.xsn), arba formai (.xml). Tai galima padaryti dviem būdais:
1) nuorodoje (URL) į formą, pvz.,
http://www.formos.lt/darbas.xsn?userID=54321&PrintView=1

2) komandos eilutėje, pvz., 
infopath.exe c:\formos\darbas.xml /InputParameters “userID=54321&PrintView=1″

 Abiem šiais atvejais, formai perduodami du parametrai: userID, kurio reikšmė yra 54321, bei PrintView, kurio reikšmė yra 1.

 Norint formoje paimti šių parametrų reikšmę, reikia parašyti atitinkamą kodą formos įkėlimo įvykio apdorojimo procedūroje, pvz.,

Sub Forms_Events_Loading(sender As Object, e As LoadingEventArgs)
Dim sparUserID As String = e.InputParameters(”userid”)
Dim sparPrintView As String = e. InputParameters(”printview”)
     ‘ - tolimesni veiksmai formos įkėlimo metu
End Sub

Labai svarbu: parametrų vardai formai perduodami mažosiomis raidėmis! Tad nors pavyzdžiuose parametrų vardus nurodėme ir su didžiosiomis raidėmis, jų paėmimui būtina naudoti tik mažąsias raides - t.y., negalime į juos kreiptis e.InputParameters(”userID”) ar e.InputParameters(”PrintView”). Tokiais atvejais gautume klaidą, kad tokio parametro nėra (The given key was not present in the dictionary).

Pastaba: „seniems” objektiniams modeliams (IP 2003 SP1 Managed Object model ir JScript) parametrų paėmimas skiriasi (tais atvejais naudojami “XDocument” objekto metodai). Jų čia neaptarinėjame.

Naujesnis puslapis »

„WordPress“ variklis. WPMU Theme pack by WPMU-DEV.