Differences between revisions 20 and 21
Revision 20 as of 2005-10-11 08:31:04
Size: 7354
Editor: hercules
Comment:
Revision 21 as of 2005-11-23 09:47:21
Size: 8225
Editor: hercules
Comment:
Deletions are marked like this. Additions are marked like this.
Line 241: Line 241:

== Vložení dávky do Damisu ==


Request

Zde se odesílá multipart zpráva složená ze dvou částí
 1. xml s níže popsaným příkazem, název "command"
 2. zazipovaná dávka, název "batch.zip", dávka je ve formátu pro vstup do Damisu bez příznakového souboru complete

Formát souboru command
 * id identifikátor dávky, pokud je prázdný přidělí se na serveru náhodný
 * user jméno uživatele, který vkládá dávku
 * domain název vstupní domény Damisu, do které bude dávka vložena
{{{
<?xml version="1.0"?>
<BatchInsertRequest id="" user="franta" domain="POJ_UDAL"/>
}}}

Response
Jako odpověď přijde xml soubor
{{{
<?xml version="1.0">
<BatchInsertResponse status="OK|FAIL">

</BatchInsertResponse>
}}}

OK - dávka byla vložena na vstup Damisu
FAIL - dávku se nepodařilo vložit na vstup Damisu

Protokol je určen pro komunikaci mezi Tahiti a serverem DAMIS pro distribuci spisů k identifikaci a jejich následné předání na archivaci. Komunikace probíhá pomocí HTTP protokolu (RFC1945, RFC2616), všechny dotazy jsou z klienta na server přenášeny metodou POST.

Termín

Vysvětlení

DocumentSet

Sada společně naskenovaných dokumentů

Změny

2005-10-11

Rozšíření metody Processed o atribut differential

2005-09-29

Rozšíření chybových stavů LockRequest

2005-09-27

Definice ResumeRequest, přiznak pause u ProcessedRequest

2005-09-12

Definice ReinsertRequest

2005-09-07

Rozšíření UnlockRequest o důvod odemčení

Formát DocumentSet

DocumentSet je zazipovaný soubor, který obsahuje naskenované soubory a soubor docset.xml, který popisuje jejich atributy, příslušnost do dokumentů

Popis formátu docset.xml je dostupný zde: http://frnk.lightcomp.cz/lcdevel/SpecifikaceTahitiDamisUlozeniDat, část Popis spisu

Identifikace DocumentSetu

DocumentSet je identifikován názvem serveru a vlastním identifikátorem DocumentSetu ( id ) Oba identifikátory jsou ascii

Identifikator zámku (lockId) je textový retezec ASCII, ktery vraci server

Typická komunikace mezi Tahiti a Skenovacím serverem:

  1. Tahiti dostane z dispu id DocumentSetu

  2. Tahiti zamkne DocumentSet ( při této akci získá lockId)

  3. Tahiti si vyžádá data DocumentSetu

  4. Tahiti periodicky posílá oznámení, že má DocumentSet stále zamčen

  5. Tahiti odešle zpracovaný DocumentSet

Funkce poskytované serverem:

  • Uzamknutí DocumentSetu

  • Oznámení, že DocumentSet byl zpracován a odeslání zpracovaného DocumentSetu ( zazipovaného )

  • Oznámení, že DocumentSet zpracovávat nebude ( odemkne ho )

  • Vyžádání DocumentSetu ( zazipované )

  • Oznámení, že vyžádaný DocumentSet je stále používán

Data jsou přenášena pomocí http/post s content-type=text/xml

Při odesílání zpracovaného DocumentSet je použit http/post s multipart obsahem

Uzamknutí DocumentSetu

Klient odesílá

  • identifikátor DocumentSetu

  • uživatelské jméno

Vrátí OK, FAIL

Request
<?xml?>
<LockRequest id="" user=""/>

Response 
<?xml?>
<LockResponse status="LOCKED|RACE|FAIL|NOTEXISTS" lockId="" error=""/>

LOCKED - DocumentSet je uzamcen, lockId obsahuje identifikator zamku
RACE - DocumentSet ma jiz nekdo jiny uzamcen
FAIL - chyba
NOTEXIST - DocumentSet s danym id neexistuje

lockId - obsahuje přidělený kód zámku ( status == LOCKED)
error - nepovinny atribut, obsahuje blizsi popis chyby (pravdepodobne v anglictine)  

Oznámení o zpracování spisu

Zde se odesílá multipart zpráva složená ze dvou částí

  1. xml s níže popsaným příkazem, název "command"
  2. zazipovaný DocumentSet, název "batch1.zip"

Odešle

  • identifikátor DocumentSetu

  • zámek DocumentSetu

  • jméno uživatele

Request
<?xml?>
<ProcessedRequest id="" lockId="" user="" pause="0|1" differential="0|1"/>

Response
<?xml?>
<ProcessedResponse status="OK|FAIL"/>

OK - DocumentSet byl oznacen jako zpracovany
FAIL - DocumentSet se nepodarilo oznacit jako zpracovany

Atribut

Povinnost

Význam

id

ano

Identifikátor spisu

lockId

ano

zámek spisu

user

ano

uživatel pracující se spisem

pause

ne

Může nabývat hodnot 0|1. V případě 1 je dokument pozdržen (není archivován) do doby než přijde požadavek ResumeRequest

differential

ne

0(default)-DocumentSet se ulozi do Damisu, 1-provede se merge DocumentSetu s originaální verzí. Pokud je differential="1" je nutné, aby soubor docset.xml byl v zipovém archivu na prvním místě.

Uvolnění spisu pro archivaci

Pokud byl spis uložen s atributem pause=1 je nutno ho samostatným příkazem uvolnit pro další zpracování. Požadavek je označen jako ResumeRequest

Request
<?xml?>
<ResumeRequest id="" user=""/>

Response
<?xml?>
<ResumeRequestResponse status="OK|FAIL"/>

OK - DocumentSet byl oznacen jako znovuvlozeny
FAIL - DocumentSet se nepodarilo oznacit jako znovuvložený

Oznámení o znovuvložení spisu do Damisu

Zde se odesílá multipart zpráva složená ze dvou částí

  1. xml s níže popsaným příkazem, název "command"
  2. zazipovaný DocumentSet, název "batch1.zip"

Odešle

  • identifikátor DocumentSetu

  • zámek DocumentSetu

  • jméno uživatele

Request
<?xml?>
<ReinsertRequest id="" lockId="" user=""/>

Response
<?xml?>
<ReinsertResponse status="OK|FAIL"/>

OK - DocumentSet byl oznacen jako znovuvlozeny
FAIL - DocumentSet se nepodarilo oznacit jako znovuvložený

Poznámka: Slouží pro znovuvložení opravených spisů po reklamaci

Oznámení o odmítnutí spisu

Odešle

  • identifikátor DocumentSetu

  • zámek DocumentSetu

  • jméno uživatele
  • důvod odemčení dokumentu

Hodnota

Popis

BADCONTENT

Vrácení spisu na reklamaci, nečitelné, poškozené apod.

UNABLETOPROCEED

Předání jiné osobě, není schopen identifikovat.

Request
<?xml?>
<UnlockRequest id="" lockId="" user="" reason=""/>

Response
<?xml?>
<UnlockResponse status="OK|FAIL"/>

OK - DocumentSet byl odemknut
FAIL - DocumentSet se nepodarilo odemknout

Vyžádání DocumentSetu

Odešle

  • identifikátor DocumentSetu

  • zámek DocumentSetu

  • jméno uživatele

Vrátí soubor se zazipovaným DocumentSetem

Request
<?xml?>
<DocumentSetRequest id="" lockId="" user=""/>

Response
zazipovany soubor (batch.zip) s DocumentSetem

Oznámení, že vyžádaný DocumentSet je stále používán

Odešle

  • jméno uživatele
  • seznam DocumentSetu, ktere ma zamcene ( u každého DocumentSetu posílá id, lockId)

Vrátí seznam DocumentSetu, pro ktere to opravdu plati (vrati podmnozinu toho co jsem odeslal)

Request - poslu seznam DocumentSetu, ktere mam zamknute
<?xml?>
<NotifyRequest user="">
 <LockedDocumentSet id="" lockId=""/>
 <LockedDocumentSet id="" lockId=""/>
<NotifyRequest/>


Response - vrati seznam DocumentSetu, pro ktere to stale plati 
<?xml?>
<NotifyResponse>
 <LockedDocumentSet id="" lockId=""/>
 <LockedDocumentSet id="" lockId=""/>
</NotifyResponse>

Příklad komunikace

Příklad HTTP komunikace (žádost):

POST /damis/DamisServlet HTTP/1.1
Host: 10.2.0.6:8080
Keep-Alive: 
Connection: TE, Keep-Alive
TE: trailers
Content-Type: text/xml
Content-Length: 57

<?xml version="1.0"?><LockRequest id="00000009" user=""/>

Příklad HTTP komunikace (odpověď):

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml
Transfer-Encoding: chunked
Date: Mon, 05 Sep 2005 10:25:28 GMT

<?xml version="1.0" encoding="UTF-8"?><LockResponse lockId="10625d1a505-78a145df-be5e9dd8" status="LOCKED"/>

Vložení dávky do Damisu

Request

Zde se odesílá multipart zpráva složená ze dvou částí

  1. xml s níže popsaným příkazem, název "command"
  2. zazipovaná dávka, název "batch.zip", dávka je ve formátu pro vstup do Damisu bez příznakového souboru complete

Formát souboru command

  • id identifikátor dávky, pokud je prázdný přidělí se na serveru náhodný
  • user jméno uživatele, který vkládá dávku
  • domain název vstupní domény Damisu, do které bude dávka vložena

<?xml version="1.0"?>
<BatchInsertRequest id="" user="franta" domain="POJ_UDAL"/>

Response Jako odpověď přijde xml soubor

<?xml version="1.0">
<BatchInsertResponse status="OK|FAIL">

</BatchInsertResponse>

OK - dávka byla vložena na vstup Damisu FAIL - dávku se nepodařilo vložit na vstup Damisu

SpecifikaceTahitiDamisProtokol (last edited 2012-06-20 08:46:18 by 10)