11. maj 2007 - 14:08Der er
8 kommentarer og 1 løsning
Sikre at kun 1 kan ændre dokumentet
Hej,
Ifb. med et skema som løbende skal udfyldes af 4 forskellige mennesker, kan jeg forestille mig en funktion som gør at når Person 1 åbner for editering så "låses" dokumentet således at andre ikke kan åbne det for editering.
Problemet er at det helst skal virke både fra Web og Notes klient
Har du en god idé for hvordan man kunne gøre det ?
Det er ikke spor nemt at lave 100% tjekket. Den model jeg endte på, var at i webQueryOpen, kører jeg en agent der via UniversalID, flytter indholdet af dokumentets authors/readers felterne over i et midlertidig felt, og overskriver derefter authors/readers felterne med userid på den person der åbner dokumentet. Og vice versa i webQuerySave. Jeg har kun haft brug for det på web, men det bør kunne gøres på samme måde i klienten. Hermed forhindres det andre at redigere dokumentet, og andre personer vil ikke kunne se dokumentet i oversigter (hvilket kan være upraktisk). Har de allerede åbnet oversigten inden en anden åbner dokumentet, vil de kunne se dokumentet, men vil blive bedt om at logge ind (kun på web, i klient vil de få at vide at de ikke har rettighederne) hvis de prøver at åbne det, mens det redigeres (også upraktisk). Alternativt kan du sætte et redigeringsmærke på dokumentet, istedet for at ændre authors/reader felterne - og så lave en masse hide/when på felterne styret af redigeringsmærket, så den "redigerbare" del skjules når det er åbnet til redigering, og der istedet for vises en "Dette dokument redigeres af en anden, prøv igen senere" tekst. Jeg valgte førstnævnte, fordi jeg i min oversigt øverst kunne gøre opmærksom på at hvis et dokument ikke var synligt, skulle der prøves senere. Og oversigterne her er altid af begrænset omfang. Udover at aktivere agenten til at "unlocke" dokumentet i webQuerySave, skal denne også aktiveres når dokumentet blot lukkes (via diverse knapper) samt når det blot krydses og her (på web) skal du have fat i (javascript) onUnLoad - men det giver til gengæld et problem hvis din form kræver refresh under redigering....Derudover skal du også tage forbehold for at en brugers browser/pc/klient går død under redigering, så du har et låst dokument dersom brugeren ikke selv går ind og redigere igen og gemmer/lukker korrekt - så her skal du have en tidsstyret agent til at rydde op.
Jeg er rimeligt hængt op for tiden, men vi tager den bare her. Opret et felt (docID) på din (web)form med @text(@documentUniqueID). Kig på notesSession.documentContext - her kan du se hvordan du får fat i feltværdier fra en webside, i en wqo-agent. Brug docID til at hente documentet back-end (notesdatabase.getDocumentByUNID(docID)). Lav en print statement med et eller andet feltindhold fra back-end dokumentet, - så bliver det printet i browseren. Prøv i første omgang at få det til at fungere.
Damn, jeg har ikke glemt hverken dig eller det her projekt, men hvordan ser din tid ud pt. ? Jeg er villig til at betale os fra at få det lavet (Selvfølgelig anpå hvad du skal have for det), hvis du har tid, kan du ikke smide mig en mail hvis du har tid til at lave det for mig ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.