Size: 7888
Comment:
|
← Revision 21 as of 2012-12-19 08:47:02 ⇥
Size: 7848
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 59: | Line 59: |
<Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" protectAttributes="" postAction="close" | <Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" |
Popis formulářů pro volání akcí na serveru
Popis životního cyklu
- Uživatel se přihlásí do distributora
Po přihlášení se stáhne definice akcí a formulářů (DocumentTasks.xml)
- Uživatel si vyžádá dokument
- Distributor přidá atribut Document.task.json s odkazy na použité akce
- Uživatel vyvolá akci nad dokumentem z kontextového menu
- Zobrazí se formulář
- Uživatel vyplní požadované hodnoty a potvrdí
- Dokument zmizí z UI a je vyvolána funkce na serveru
- po úspěšném provedení funkce se dokument buď zobrazí s aktualizovanými hodnotami, nebo je z Tahiti odstraněn
- při neúspěšném vyvolání funkce je zobrazena chybová hláška a dokument je obnoven v původním stavu
Princip fungování akcí v Tahiti
V Tahiti je možné k dokumentu nadefinovat akce. Akce jsou zobrazovány v kontextovém menu. Pokud je akce vyvolána z kontextového menu, tak k ní může být zobrazen formulář. Použití akcí spojených s dokumentem se aktivuje nastavením speciálního atributu v dokumentu. Je možné přenášet celou definici akcí a formulářů nebo pouze odkaz na akce z již staženého popisu akcí do Tahiti.
Přenos celé definice formuláře a akcí
Formulář je popsán v xml a je přenášen jako hodnota atributu. Document.task.xml. Definiční formát je rozšířením workflow definovaných v Admin guide Workflow/Native format s drobnou změnou syntaxe.
<?xml version="1.0"?> <DocumentTasks> <Actions id="GolemTasks"> <Action id="ChangeType" name="Zmena typu v oblasti" description="Zmena dokumentoveho typu v ramci jedne oblasti" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="Y" changeArea="N" changeAttributes="" protectAttributes="" postAction="close" confirm="Zmenit dokumentovy typ?" method="Golem.changeAttributes"/> </Action> <Action id="ChangeArea" name="Zmena oblasti" description="Zmena oblasti" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="Y" changeArea="Y" changeAttributes="" protectAttributes="" postAction="close" confirm="Zmenit oblast" method="Golem.changeAttributes"/> </Action> <Action id="ChangeEntity" name="Presun k jine entite" description="Zmena entity" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" protectAttributes="" postAction="close" confirm="Presunout dokument k zadane entite?" method="Golem.changeAttributes"/> </Action> <Action id="ChangeAttributes" name="Zmena ostatnich atributu" description="Zmena ostatnich atributu" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="*" protectAttributes="CJ" postAction="close" confirm="Zmenit atributy?" method="Golem.changeAttributes"/> </Action> <Action id="CopyDocument" name="Kopie dokumentu" description="Vytvorit kopii dokumentu" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" confirm="Vytvorit kopii dokumentu?" method="Golem.copyDocument"/> </Action> <Action id="InvalidateDocument" name="Zneplatneni" description="Zneplatneni dokumentu" form="Tahiti.internalForm.confirm"> <Attributes> <Attribute name="Document.newState" value="INVALID"/> </Attributes> <Tahiti.internalForm.confirm confirm="Zneplatnit vybrany dokument?" postAction="close" method="Golem.changeDocumentState"/> </Action> <Action id="UnidentifyDocument" name="Neidentifikovan" description="Oznacit dokument jako neidentifikovany" form="Tahiti.internalForm.confirm"> <Attributes> <Attribute name="Document.newState" value="UNIDENTIFIED"/> </Attributes> <Tahiti.internalForm.confirm confirm="Presunout dokument mezi neidentifikovane?" postAction="close" method="Golem.changeDocumentState"/> </Action> </Actions> </DocumentTasks>
Název atributu |
význam |
form |
název formuláře zobrazeného při vyvolání akce, pokud není zadáno, tak se žádný formulář nezobrazuje, u jednotlivých akcí je umístěna konfigurace pro konkrétní formulář |
Přenos odkazu na již stažený formulář
Přenáší se pouze odkaz na definici formuláře a použité akce. Odkaz je zakódován jako objekt ve formátu JSON. Odkaz je přenášen jako hodnota atributu dokumentu s názvem Document.task.json. Definice formuláře je přenášena na klienta jako soubor DocumentTasks.xml, který je součástí Tahiti5config.zip. Odkaz má následující atributy
Název atributu |
Význam |
def |
Název definičního souboru s definicí akcí a formulářů |
actions |
pole s názvy použitých akcí, akce se stejným názvem musí existovat v definičním souboru, pokud seznam akcí obsahuje pouze hodnotu "*", jsou použity všechny akce |
Povolení všech akcí
Document.task.json={"def":"GolemTasks","actions":["*"]}
Povolení pouze vybraných akcí
Document.task.json={"def":"GolemTasks","actions":["ChangeAttributes","ChangeType","CopyDocument"]}
Formuláře
Tahiti.internalForm.changeAttributes
Formulář pro změnu atributů dokumentu
<Action id="CopyDocument" name="Kopie dokumentu" description="Vytvorit kopii dokumentu" form="Tahiti.internalForm.changeAttributes"> <Attributes/> <Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" protectAttributes="" postAction="close" confirm="Vytvorit kopii dokumentu?" method="Golem.copyDocument"/> </Action>
Název atributu |
Význam |
changeType |
změna dokumentového typu v rámci jedné oblasti, možné hodnoty Y,N |
changeArea |
změna dokumentového typu včetně oblasti, možné hodnoty Y,N |
changeAttributes |
seznam atributů, které je možné měnit, pokud je zadána * je možné měnit všechny atributy |
protectAttributes |
seznam atributů, které není možné měnit, pro použití v kombinaci s changeAttributes="*" |
postAction |
akce provedenaá po úspěšném zavolání metody na serveru, možné akce jsou close - zavře dokument, update - změní hodnoty dokumentu na zadané a nechá ho v Tahiti, pokud není zadáno ponechá dokument v Tahiti nezměněn |
confirm |
zpráva zobrazená před provedením akce, pokud není zadána potvrzení není vyžadováno a akce se rovnou provede |
method |
název metody volané na serveru |
Tahiti.internalForm.confirm
Formulář pro zobrazení potvrzovací zprávy před provedením akce
<Action id="UnidentifyDocument" name="Neidentifikovan" description="Oznacit dokument jako neidentifikovany" form="Tahiti.internalForm.confirm"> <Attributes> <Attribute name="Document.newState" value="UNIDENTIFIED"/> </Attributes> <Tahiti.internalForm.confirm confirm="Presunout dokument mezi neidentifikovane?" postAction="close" method="Golem.changeDocumentState"/> </Action>
Název atributu |
Význam |
confirm |
zpráva zobrazená před provedením akce, pokud není zadáno, zpráva se nezobrazí a akce je rovnou provedena |
postAction |
akce provedenaá po úspěšném zavolání metody na serveru, možné hodnoty close - zavře dokument, pokud není zadáno ponechá dokument v Tahiti nezměněn |
method |
název metody volané na serveru |