kategori Achiv: Développement SharePoint

HTTP 406 Erreur lè w ap itilize angilè $http.get kont SharePoint POZE fini pwen

Ajou: Se Marc Piblisite ndersson ki te atire atansyon sa a gwo moso pyès enfòmasyon sou: http://blogs.Office.com/2014/08/13/json-light-Support-Rest-sharepoint-api-Released/. Sa byen eksplike :).

Sa ka fè pi mal pase tout Tit de pòs blog yon tout tan tout tan! Anyhoo.

Mwen sonje bagay fè tout prototypes m' kont yon bagay O365. Mwen gen bagay pèsonèl mwen konsa, mwen pa gen pou enkyete sou ki afekte okenn lòt moun. Kòm yon a kote-sonje lè nou fè apèl a effectué autour virtuel pou machin avanse ordinateurs nou ak bab PANYÒL-SQL sèvè, IIS, décider vs Hyper-V. VMWare? Anyhoo...

Mwen te devlope yon app itilize angilè anviwònman sa a ki fè sa ki nan, pami lòt bagay, sa a:

$http.get(serverUrl)
.siksè(fonksyon(done, estati, en-têtes, config) {

var getLinksResponse = done;

getLinksResponse.value.forEach(fonksyon(theResult) {

// Et sou Et pour mous

Sa t ap travay jis byen nan de diferan SharePoint online environnements. Sepandan, Lè m' collègue te ports li pou yon bagay Cloudshare, Jezi t' ap yon HTTP 406 erreur (ki te premye fwa a, mwen te gen tout tan tout tan sa a, Se konsa... yay, Mwen panse). Nou te fè yon ti rechèch e te note ke "Aksepte" lento te wete. Sou liy SharePoint li te genyen pafètman kontan ak:

Aksepte: aplikasyon/json

Men bagay cloudshare a (ki se SP sou prem, hébergé nan yon virtuel sèvè) yo te vle a klasik "odata = détaillé" te ajoute nan tou:

Aksepte: aplikasyon/json;odata = détaillé

Pou ka ranje sa, nou te ajoute lento a nan ka konsa:

var config = {en-têtes: {
'Asepte': ' aplikasyon/json;odata = détaillé '
}
};

$http.get(serverUrl,config)
.siksè(fonksyon(done, estati, en-têtes, config) {

var getLinksResponse = done;

getLinksResponse.value.forEach(fonksyon(theResult) {

// Et sou Et pour mous

Sa a debarase de la 406, Men, li te tou chanje fòma repons lan. Li te genyen plis... détaillé. (haha!) Chanjman plis ont mande Et isit la se rezilta final lan a:

var config = {en-têtes: {
'Asepte': ' aplikasyon/json;odata = détaillé '
}
};

$http.get(serverUrl,config)
.siksè(fonksyon(done, estati, en-têtes, config) {

var getLinksResponse = done;

getLinksResponse.d.results.forEach(fonksyon(theResult) {

// Et sou Et pour mous

Sa sèlman fè yo tounen yon 30 ti pwoblèm pou nou, Se konsa nou lucked. Yon moun trouve sa itil.

</fen>

En Sensibilisation / Adopsyon de JavaScript, Cadres

Pèsòn nan travay mwen, La, Javed Ansari (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), a yon kout blog rezime pòs sou cadres li renmen ou pou pi piti ki te itilize ak ak SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

jQuery mete nan ont été victor sou tèren an, Se konsa pou pale, pou sa fè anpil ane, Men, lòt yo, plis nouvo Et images type de ap batay li, tankou angilè. (SPServices, Men wi, ki te yon D' lavi pou ane e pwal kontinye mache pou mwen panse).

Sa ap moun itilize? Sont yo konsantre plis sou outillage Microsoft a (CSOM / JSOM) ou fè plis vers angilè, Masquage, Ember, ets?

Mwen gen yon kwasans paspouki vers sa yo ki pa Microsoft cadres. Mwen panse ke bagay MSFT la konsèy ak konsèy pou travay avèk, mande pwèske tankou anpil nan aprann fè yon koub tankou vye granmoun ak stil sèvè-bò dev.

Afiche yon kòmantè de ici ou Sur nan Gwo pòm SharePoint Si ou vle pou diskite (Gwo pòm ki gen plis probabilité de yon diskisyon byen).

</fen>

Bondi travay li tap konometre SharePoint de Configuration koleksyon kote ki gen

Pèsòn nan travay mwen, Ashish Patel, te pale a tou yon pòs blog décrivant Achitekti travay li tap konometre likid sa offre gen kèk fleksibilite bon pou sipòte lontan nan, kote travay ak/oubyen rapò.  L' te di:

1. Analyse Retiré soti fichiers Et voye rappels pou moun ki yo si le nimewo de jou (depi dokiman an yo te verifye li) depase konnen limit pou sekirite sosyal

2. Retire lyen de sanisfè lòt lè yon patikilye contenu te retire ou archivés nan sistèm nan

3. Kap itilize li an vle wè tout alertes sa li souscrit nan tout webs nan kote ki gen koleksyon an

4. Voye yon rappels otè pou revize contenu a lè sa a, yon revi tan li te genyen kategori a contenu Et ki dat qui

byen, lis la va...

– Wè plis nan: http://www.bigapplesharepoint.com/ paj/View-UN-Insight.aspx?BlogID=40#sthash.7cKuiwly.dpuf

Genyen fwa anvan m, lè gen yon bagay konsa ta trè utiles.

</fen>

kijan: Configure inite w la tès ak tès lwa sekirite sosyal ak QUnit.js ak Blanket.js pou yon biwo 365 SharePoint App

Intro

Mwen te gen te explorer inite w la tès ak tès garanti pou JavaScript menm jan mwen travay sou yon nouvo app SharePoint pou SharePoint ale nan biwo a 365 chanm.  Chemins evidan rechèch yo te dirije m' pou Qunit.js Et dwat aprè sa, pou Blanket.js.

QUnit kite m' mete sou pye tès inite w la ak gwoup yo nan modules.  Yon modile ki se jis yon fason byen senp pou òganize tès liés. (Mwen pa si se mwen menm ki itilize li kòm destinés, Men sa travay pou m' twò lwen ak ti ansanm lan nan tès sa yo mwen te defini byen lwen konsa).

Blanket.js entegre ak Qunit e li pwal montre m' réel lignes de JavaScript ki ont- epi pi enpòtan toujou-te pa aktyèlman exécuté devwa yo kouri tès yo.  Se sa rele "garanti" – lignes exécuté sont kouvri anba tès lan pandan lòt moun yo pa.

Ant òganize ka sonde yo bon ak affichage lwa sekirite sosyal, nou kapab redwi risk pou yo ke nou kòd ki hidden défauts.  Bon.

Qunit

En ou gen ou izyèl estidyo pwojè an mete sou pye, kòmanse téléchargement pakè JavaScript a de http://qunitjs.com.  Ajoute JavaScript e CSS korespondan pou ou kapab jwenn solisyon.  Tèren pyeje recherche kon sa:

image

Figi 1

Menm jan ou kapab wè, Mwen te itilize 1.13.0 Lè mwen te ekri sa a blog pas. Pa bliye, pou rale dosye e ajoute CSS dokiman an.

Sa soti nan wout la, pwochèn pa se pou kreye yon jan de tès lekipay Et référence ti kal pen te Qunit.  M ap sonde yon pakèt moun fonksyon nan yon fichier script ki rele "QuizUtil.js", se konsa mwen te kreye yon paj HTML ki rele "QuizUtil_test.html" jan montre:

image Figi 2

Isit la se kòd la:

<!DOCTYPE html>
<html xmlns= "http://www.w3.org/ 1999/xhtml">
<tèt>
    <tit>Tès QuizUtil ak Qunit</tit>
    <lyen rel= "stylesheet" HREF="../CSS/qunit-1.13.0.css" />
    <script tip= tèks/javascript"" src="QuizUtil.js" done pwotèj></script>
    <script tip ="tèks/javascript" src ="qunit 1.13.0.js"></script>
    <script tip ="tèks/javascript" src ="blanket.min.js"></script>

    <script>
        modile("getIDFromLookup");
        tès("QuizUtil getIDFromLookupField", fonksyon () {
            var goodValue = "1;#Paul Galvin";

            egal-ego(getIDFromLookupField(goodValue) + 1, 2), "Didantite de [" + goodValue + "] + 1 yo ta dwe 2";
            egal-ego(getIDFromLookupField(non), non, "Endefini D' diskisyon ta dwe retounen endefini rezilta yo.");
            egal-ego(getIDFromLookupField(""), non, "Vid D' diskisyon ta dwe retounen yon valè endefini.");
            egal-ego(getIDFromLookupField("gobbledigood3 thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;vn"), non,"Ta dwe toujou retounen yon rezilta convertible pou yon nonm antye");
            egal-ego(getIDFromLookupField("2;#kèk lòt moun"), "2", "Tcheke [2;#kèk lòt moun].");
            egal-ego(getIDFromLookupField("9834524;#valè tan"), "9834524", "Gwo valè tès.");
            notEqual(getIDFromLookupField("5;#Si yon moun", 6), 6, "Sonde yon notEqual (5 pa rive fè 6 pou sa a echantiyon: [5;#Si yon moun]");

        });

        modile("htmlEscape");
        tès("QuizUtil htmlEscape()", fonksyon () {
            egal-ego(htmlEscape("<"), "&lt;", "Ke yon te ranmase pi piti pase operatè ('<')");
            egal-ego(htmlEscape("<klas div =  "someclass">Kèk tèks</div>"), "&lt;klas div =&quot;someclass&quot;&gt;Kèk tèks&lt;/div&gt;", "Plis konplèks tès chaîne.");
        });

        modile("getDateAsCaml");
        tès("QuizUtil getDateAsCaml()", fonksyon () {
            egal-ego(getDateAsCaml(nouvo Dat("12/31/2013")), "2013-12-31T:00:00:00", "Sonde di code dat: [12/31/2013]");
            egal-ego(getDateAsCaml(nouvo Dat("01/05/2014")), "2014-01-05T:00:00:00", "Sonde di code dat: [01/05/2014]");
            egal-ego(getDateAsCaml(nouvo Dat("01/31/2014")), "2014-01-31T:00:00:00", "Sonde di code dat: [01/31/2014]");
            egal-ego(getTodayAsCaml(), getDateAsCaml(nouvo Dat()), "getTodayAsCaml() ta dwe rive nan menm getDateAsCaml(nouvo dat())");
            egal-ego(getDateAsCaml("vye koze valè"), non, "Eseye pou jwenn dat li yon valè vye koze.");
            egal-ego(getDateAsCaml(non), non, "Eseye jwenn dat li a [non] dat.");
        });

        modile("getParameterByName");
        tès("QuizUtil getParameterByName (de la chaîne requête)", fonksyon () {
            egal-ego(getParameterByName(non), non, "Eseye jwenn endefini paramètre ta dwe retounen nan endefini.");
            egal-ego(getParameterByName("pa egziste"), non, "Eseye pou jwenn valè paramètre lè nou konnen paramètre a pa egziste.");

        });

        modile("Lekòl");
        tès("QuizUtil plizyè kalite fonksyon bonbon.", fonksyon () {
            egal-ego(setCookie(tès"", "1", -1), getCookieValue(tès""), "Obtenir, yon bonbon mwen mete ta dwe travay yo.");
            egal-ego(setCookie("anycookie", "1", -1), vre, "Mete yon bon manje ta dwe retounen 'laverite'.");
            egal-ego(setCookie("bonbon fou non !@#$%"%\^&*(()?/><.,", "1", -1), vre, "Mete yon move bonbon non ta dwe retounen 'manti'.");
            egal-ego(setCookie(non, "1", -1), non, "Pase endefini tankou non bonbon.");
            egal-ego(getCookieValue("pa egziste"), "", "Bonbon pa egziste tès.");
        });

    </script>
</tèt>
<>
    <div didantite= "qunit"></div>
    <div didantite= qunit fixe""></div>

</>
</html>

Genyen anpil bagay ki pase isit la:

  1. Référence m' kòd (QuizUtil.js)
  2. Qui Qunity.js
  3. Defini modules kèk (getIDFromLookup, Lekòl, ak lòt)
  4. Mete yon <div> Didantite ki se "qunit".

apre, Mwen jis rale moute nan paj sa yo ak ou jwenn yon bagay tankou sa:

image

Figi 3

Si ou gade lòt sou tèt, ou gen kèk chwa, de nan ki yo enteresan:

  • Te pase tès ki kache: Assez aklè.  Ka ede je ou annik wè zòn sa yo pwoblèm Et pa yon bann de l'.
  • Modile: (gout (n)): Sa ap filtre tès yo desann nan gwoup sèlman sa yo nan tès sa yo ou vle.

Tankou tès yo-kèk sijesyon:

  • Sa se pa di sa ou bezwen pou yo ekri kòd ou comme ke li testable nan premye plas.  W ap itilize a konnen si yon moun ka ede appliquer disiplin sa. Ekzanp, Mwen te gen yon fonksyon ki rele "getTodayAsCaml()”.  Bagay sa a pa trè testable depi li pwan pa chire pit D' Et teste li pou egalite, nou ta bezwen constamment à kòd tès pou reflete dat aktyèl la.  Mwen refactored li pa pandan l ajoute yon paramètres D' done konsa pase dat aktyèl la lè m vle dat jodi a nan CAML fòma.
  • A Qunit-documents tès pwòp e li pi sanble ki trè gaya.  Li kapab fè sa tankou tès pou egalite e li gen sipò pou ajax stil apèl (les "reyèl" ou mocked yo ap itilize mocker pi renmen ou).
  • Ap pase nan pwosesis la tou fòs ou panse à bord ka-sa k rive koukouloukou ak "endefini" ou null te pase nan yon fonksyon.  Li fè l' mouri senp pou tès scénarios sa yo deyò.  Bon bagay.

Lwa sekirite sosyal ak Blanket.js

Blanket.js complète Qunit pa Suivi réel lignes de kòd ki te akonpli diran okou kouri tès ou.  Li entegre dwat nan Qunit menm se konsa menm si li se yon tout separe app, jwe bien – li vrèman sanble se yon sèl app sans.

Se sa rele blanket.js nan aksyon:

image Figi 4

image

Figi 5

(Ou aktyèlman gen Sur sou a "Pèmèt lwa sekirite sosyal" à nan tèt [wè figi 3] pou pèmèt sa.)

Les lignes en nan figi 5 pa te egzekite pa okenn nan tès sa yo m, Se konsa mwen bezwen devise yon tès ki koze yo pou yo egzekite si mwen vle plen lwa sekirite sosyal.

Gen blanket.js ki te travay pa swiv étapes sa yo:

  1. Rale dosye l http://blanketjs.org/.
  2. Ajoute pwojè ou
  3. À paj lekipay tès ou (QuizUtil_test.html nan ka mwen) comme piba:
    1. Référence kòd la
    2. Ekore ou <script> référence kon sa:
    <script tip= tèks/javascript"" src="QuizUtil.js" done pwotèj></script>

Blanket.js travayè kalite "done kouvèti" a epi ki fè sanp li.  Li crochets nan Qunit, à la UI pou ajoute a opsyon "Pèmèt lwa sekirite sosyal" Et Vwala!

Rezime (TL; DOKTÈ)

Sèvi ak Qunit pou yo ekri ou ka sonde.

  • Rale dosye l
  • Ajoute pwojè ou
  • Ekri yon paj lekipay tès
  • Kreye tès ou
    • Refactor kèk nan kòd ou en testable
    • Être kreyatif!  Panse a fou, scénarios enposib ak tès yo?.

Sèvi ak blanket.js pou asire ke lwa sekirite sosyal

  • Pou pi si Qunit ap travay
  • Rale dosye blanket.js Et ajoute pwojè ou
  • Ajoute paj lekipay tès ou:
    • Ajoute yon referans a blanket.js
    • Ajoute yon kalite "done kouvèti" pou ou <script> etikèt
  • Lage kous nou tès Qunit.

Mwen pa janm fè anyen nan sa deja Et te gen kèk bagay rudimentaire kap travay nan yon ti ponyen heures. 

Benediksyon pou sonde!

</fen>

undefinedVous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Lists.asmx, GetList Et "valè peut être Nil”

Mwen te dekouvwi jodi a ke GetList la() metòd nan lists.asmx sèvis entènèt ki pou rele ak anpil swen ou gen tandans pou voye yon mistik "Valè peut être Nil" eksepsyon (Et sa en ou ka resevwa mesaj erreur ak menm pi mal pase, "Eksepsyon ki jan de ' Microsoft.SharePoint.SoapServer.SoapServerException’ yo te voye.")  Espesyalman, Mwen te twouve ke ou pa ka bay tout kalite prefix sou metòd GetList.  Extrait jQuery suivant montre pwen:

image

Si ou fè sa, sèvis entènèt la répond ak "Valè peut être Nil" as per sa a fiddler-te founi HTTP transcript:

<?xml vèsyon pipiti de youn = "1.0" codage = "utf-8"?>
  <savon:Anvlòp
     xmlns:savon ="
http://schemas.xmlsoap.org/Soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/ lane 2001/XMLSchema-bagay
     xmlns:xsd ="
http://www.w3.org/ lane 2001/XMLSchema">

  <savon:Kò>
    <savon:Bay tò>
      <faultcode>savon:Sèvè</faultcode>
      <faultstring>
        Eksepsyon ki jan de ' Microsoft.SharePoint.SoapServer.SoapServerException’ yo te voye.
      </faultstring>
      <detay>
        <errorstring xmlns ="
http://schemas.Microsoft.com/sharepoint/Soap/">
Valè peut être Nil.
        </errorstring>
      </detay>
    </savon:Bay tò>
  </savon:Kò>
</savon:Anvlòp>

Men wi, ou kapab byen ne ajoute prefix "s0" sa pou kont ou, Men kèk zouti yo gen tandans pou ou fè l (tankou Eclipse).

Sa pi rèd ki pa klè / frustration paske lòt faso tolérer préfixes.  Ekzanp, a GetListCollection metòd pa chonje si l' te précédé, ata ak vye koze préfixes tankou "xyzzy":

image

Sa "valè peut être Nil" semble assez komen ak lists.asmx ki se konsa, sa ap ede yon moun deyò nan tan kap vini.

</fen>

Vous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Sans Imbrication <div> Baj Et jQuery

Sa sanble tankou sa yon tèt rubrique, Mwen pa fin sèten se vrèman yon valè de blogs osijè de, Men, sa ki pa janm sispann m' devan, se isit la n' ap Souri

M ap travay sou yon pwojè kote mwen ap rache kèk done de recherche yon, tounen tankou emballage fè l' antre nan yon mesaj XML Et puis XML sa, nan sal HTML via XSLT.  Pa gen anpil jQuery te enplike, gwo moso ki en kèk tabulation fonctionnalités.  Lè ou Sur sou yon onglet (vrèman, yon <div>), jQuery appelle .hide() Et .show() sou plizyè divs (pwemye paj chay téléchargements tout contenu a pou genyen publications pa nan ka sa).

Yon pakèt moun heures de sa, metòd pou chanje lojik onglet a te kòmanse se façon Et ne montre yonn nan onglets m.  Mwen, UN li desann a fait onn entènèt sa (pi piti) panse sa a <div> baj imbriqués byen lwen, byen lwen plus pase destinés.A devlope D' ki ta montre:

-<div didantite = "Tab1Content">
  -<div>
    -<div>
      -<div didantite = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— a la fen montre li te fèmen jouk yo rive desann isit la!

Se konsa, Si m' te fè yon $("#Tab1Content").sere(), Mwen ta tou sere Tab2 Et m te kapab pa janm fè Tab2 si m pa t tou montre Tab1.  Mwen copié Et coller kòd la nan estidyo izyèl Et sa a tout de revêtement div a moute bien, egzateman tankou yo te sipoze fè travay li, klere tankou sa:

-<div didantite = "Tab1Content">
  +<div>
  +<div>
-<div didantite = "Tab2Content">
  +<div>
  +<div>

Mwen ke yo te bat tèt mwen sou miray la pou yon ti tan e te note ke HTML aktyèl la nan kòd li te genyen génération anpil vid <div> baj, tankou:

<kò>

  <div didantite = "Tab1Content">

    <div didantite = "row1" />
    <div didantite = "row2" />

  </div>

  <div didantite = "Tab2Content">

    <div didantite = "row1" />
    <div didantite = "row2" />

  </div>

</kò>

(La CI-dessus se waaaaaaaaaaaay oversimplified.  Div vid baj yo totalman valab. Gen kèk moun mwen <div> baj pa t ' de sanisfè, Men, anpil plis yo pa t '.  Mwen te ale la réalisation sa m' <xsl:pou-chak> directives te émet ti fòm div balises lè xsl a:pou-chak pa t ' jwenn kèk done.  Mwen te fòse yon kòmantè HTML nan la sortie, jan montre:

image

 

Apre sa, mwen te fè sa, tout div a aliyen bien Et m' onglet changement te kòmanse travay.

Kòm toujou, Mwen espere ke sa ka ede yon moun nan yon ti kras.

</fen>

Vous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Fè yon sèl pou "kreyatè de pannes sa a pa te spesifye se konsa.”

Mwen te gen te fè yon bann travay ak SharePoint recherche dènyèman Et espesyalman a KeywordQuery klas, propriétés Et metòd.

Si ou vle rezilta a te fikse pou li retounen nan rezilta above and beyond selon lizaj sispèk (gade isit la), ou ajoute li a koleksyon SelectedProperties, menm jan nan:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mèsi anpil ak yon ti konsèy de chapo a pou Corey Roth Et pòs très utile blog sa a (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Nan ka mwen, "xyzzy" pa aktyèlman yon asirans sante0 propriété.  Lè mwen ajoute sa SelectedProperties?, SharePoint te lanse yonn nan ke m' tout tan tout tan D' eksepsyon ki genyen:

"Kreyatè de pannes sa a pa te spesifye se konsa."

Mwen espesyalman renmen kapital "R" nan rezon.  Sa sanble m' tankou ekivalan .NET de"M' pa soti nan bouch, e mwen dwe rele fò.”

</fen>

Vous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Referans sou la men: Defo rezilta de Recherche KeywordQuery

Ki lè ou envoke Exécuter a() metòd sou yon KeywordQuery, ou kapab kreye yon ResultTable ki baze sou ResultType.RelevantResults.  Extrait kòd sa a montre sa mwen vle di:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Tab qui la ki gen enfòmasyon kolòn: 

WorkId
Grad
Tit
Otè
Taille
Ti chemen
Dekri teren
Ekri
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Mwen sòti lis sa a yon SharePoint 2010 anviwònman, antrepriz edisyon an.  Sa ka itil pou gen yon moun nan tan kap vini.

</fen>

Vous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin

Youn nan rezon pou: "Echwe pou extraire la cabine fichier nan solisyon a”

Pandan ke yo ap travay sou yon pati entènèt izyèl estidyo projet jodi a, M' te fè yon ti si-org de fichiers kèk pou n ' antre nan Katab _layouts an kòm yon pati de pwosè a déploiement. Espesyalman, Mwen renommée yon fichier .js de "TypeAhead.js" pou "TypeAhead(granmoun).js"  Mwen gen plan pou retire li pli vit ke siksesè li "TypeAhead.js" pwouve kòrèk.  Li sanble sa:

image

Sa a imedyatman koze yon pwoblèm ak izyèl estidyo, lè mwen te eseye deplwaye pwojè a:

Erè ki te fèt nan pa deplwaman nan 'Ajoute solisyon': Te tonbe extraire la cabine fichier nan solisyon a.

Li gen pou ou ta dwe pa mete yon parantèz nan fichier non.  Mwen te retire a parens Et sa rezoud pwoblèm.

</fen>

Vous pou m' blog.

Swiv mwen sou Twitter nan http://www.twitter.com/pagalvin