Differences between revisions 1 and 21 (spanning 20 versions)
Revision 1 as of 2012-10-17 15:03:23
Size: 953
Editor: KarelZacek
Comment:
Revision 21 as of 2012-12-19 08:47:02
Size: 7848
Editor: pyta
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== Popis životního cyklu ==
Line 4: Line 5:
 1. Uživatel se přihlásí do distributora
 2. Po přihlášení se stáhne definice akcí a formulářů ({{{DocumentTasks.xml}}})
 3. Uživatel si vyžádá dokument
 4. Distributor přidá atribut Document.task.json s odkazy na použité akce
 5. Uživatel vyvolá akci nad dokumentem z kontextového menu
 6. Zobrazí se formulář
 7. Uživatel vyplní požadované hodnoty a potvrdí
 8. Dokument zmizí z UI a je vyvolána funkce na serveru
 9. po úspěšném provedení funkce se dokument buď zobrazí s aktualizovanými hodnotami, nebo je z Tahiti odstraněn
 10. 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 [[http://frnk.lightcomp.cz/docs/tahiti55/admin/html/| 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"]}
}}}
Line 14: Line 116:
<Tahiti.internalForm.changeAttributes changeType="N" changeArea="N" changeAttributes="CPS_CPU" protectAttributes="" postAction="close"
 confirm="Vytvorit kopii dokumentu?" method="Golem.copyDocument"/>
  <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>
Line 20: Line 126:
|| changeType || změna dokumentového typu v rámci jedné oblasti ||
|| changeArea || změna dokumentového typu včetně oblasti ||
|| changeAttributes || seznam atributů, které je možné měnit ||
|| 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 ||
|| confirm || zpráva zobrazená před provedením akce ||
|| 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 ||
Line 27: Line 133:

== 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 ||

Popis formulářů pro volání akcí na serveru

Popis životního cyklu

  1. Uživatel se přihlásí do distributora
  2. Po přihlášení se stáhne definice akcí a formulářů (DocumentTasks.xml)

  3. Uživatel si vyžádá dokument
  4. Distributor přidá atribut Document.task.json s odkazy na použité akce
  5. Uživatel vyvolá akci nad dokumentem z kontextového menu
  6. Zobrazí se formulář
  7. Uživatel vyplní požadované hodnoty a potvrdí
  8. Dokument zmizí z UI a je vyvolána funkce na serveru
  9. po úspěšném provedení funkce se dokument buď zobrazí s aktualizovanými hodnotami, nebo je z Tahiti odstraněn
  10. 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

TahitiForms (last edited 2012-12-19 08:47:02 by pyta)