Přeskočit obsah

Counted Column

Counted Column automaticky generuje sekvenční čísla pro položky seznamu. Hodnota se vypočítá podle konfigurovatelného výrazu s podporou čítačů, datových tokenů a podmíněných pravidel.

Základní konfigurace

Minimální konfigurace s ročním čítačem:

{
  "Expression": "{Year}-{$Counter}",
  "Counters": [
    {
      "Name": "Counter",
      "Variable": "CC_{ListId}_{Year}",
      "Padding": 4,
      "PaddingCharacter": "0"
    }
  ]
}

Výsledek: 2025-0001, 2025-0002, ...

Vlastnosti

  • Expression "Expression": "{Year}-{$Counter}" — Šablona výrazu pro generování hodnoty. Obsahuje tokeny a reference na čítače. [Povinné]
  • Counters "Counters": [...] — Definice čítačů použitých ve výrazu. [Povinné]
  • AlwaysUpdate "AlwaysUpdate": true — Přegeneruje hodnotu při každé aktualizaci položky. Výchozí hodnota: false.
  • OnDemand "OnDemand": true — Hodnota se generuje pouze při explicitním požadavku. Generování se spustí, když je hodnota pole nastavena na -1 (např. pomocí workflow akce Set Field Value). Výchozí hodnota: false.
  • DisableWebhook "DisableWebhook": true — Vypne zpracování webhookem. Výchozí hodnota: false.
  • ConditionalExpressions "ConditionalExpressions": [...] — Podmíněné výrazy, které přepíší hlavní výraz na základě JavaScript podmínky. [Nepovinné]
  • SyncElement "SyncElement": {...} — Konfigurace synchronizace vypočtené hodnoty do jiného pole. [Nepovinné]
  • Resources "Resources": [...] — Lokalizační zdroje. [Nepovinné]

Vlastnosti čítače (Counter)

  • Name "Name": "Counter" — Název čítače. Ve výrazu se odkazuje jako {$Name}. [Povinné]
  • Variable "Variable": "CC_{ListId}_{Year}" — Šablona proměnné definující rozsah čítače. Podporuje tokeny. [Povinné]
  • InitialValue "InitialValue": 0 — Počáteční hodnota čítače. Výchozí: 0.
  • Mode "Mode": "Default" — Formát výstupu: Default (číslo), Roman (římské číslice), Hex (šestnáctkově), Letter (písmena). Výchozí: Default.
  • Padding "Padding": 4 — Minimální délka čísla s doplněním znaků. 0 = bez doplnění.
  • PaddingCharacter "PaddingCharacter": "0" — Znak pro doplnění. Výchozí: 0.

Dostupné tokeny ve výrazu

Datové tokeny

Token Popis
{Year} Aktuální rok (např. 2025).
{Month} Aktuální měsíc (01–12).
{Day} Aktuální den (01–31).
{date:format} Aktuální datum ve vlastním formátu .NET (např. {date:yy} = 25).

Kontextové tokeny

Token Popis
{ListId} GUID seznamu.
{ListUrl} URL seznamu.
{ListName} Název seznamu.
{WebUrl} URL webu.
{SiteUrl} URL site collection.
{WebAppUrl} URL kořene webové aplikace.
{CurrentUICultureName} Název aktuální jazykové kultury (např. cs-CZ).
{ContentTypeId} ID typu obsahu položky.
{ContentTypeName} Název typu obsahu položky.
{FieldInternalName} Interní název aktuálního pole.
{item:FieldName} Hodnota pole položky.
{folder:FieldName} Hodnota pole nadřazené složky.

JavaScript bloky

Ve výrazu lze použít JavaScript kód uzavřený do [[...]]:

{Year}-[[new Date().getMonth() > 6 ? 'H2' : 'H1']]-{$Counter}

SyncElement

Umožňuje zkopírovat vypočtenou hodnotu (nebo její transformaci) do jiného pole:

{
  "SyncElement": {
    "TargetElement": "s_displayNumber",
    "Expression": "DOC-{value}"
  }
}
  • TargetElement — Interní název cílového pole (nebo více polí oddělených středníkem/čárkou).
  • Expression — Výraz pro cílovou hodnotu. Token {value} obsahuje vypočtenou hodnotu. Pokud není zadán, použije se přímo vypočtená hodnota.

Podmíněné výrazy

Pole ConditionalExpressions umožňuje různé výrazy podle podmínky. Vyhodnotí se první odpovídající podmínka:

{
  "Expression": "{Year}-{$DefaultCounter}",
  "Counters": [
    { "Name": "DefaultCounter", "Variable": "CC_{ListId}_{Year}", "Padding": 4 },
    { "Name": "InvoiceCounter", "Variable": "INV_{ListId}_{Year}", "Padding": 5 }
  ],
  "ConditionalExpressions": [
    {
      "Condition": "'{item:ContentTypeName}' === 'Faktura'",
      "Expression": "INV-{Year}-{$InvoiceCounter}"
    }
  ]
}

Vlastnosti podmíněného výrazu:

  • Condition — JavaScript podmínka. Tokeny se nahradí před vyhodnocením. [Povinné]
  • Expression — Výraz použitý při splnění podmínky. [Povinné]
  • SyncElement — Přepíše kořenový SyncElement pro tento podmíněný výraz. [Nepovinné]
  • AlwaysUpdate — Přepíše kořenový AlwaysUpdate. [Nepovinné]
  • DisableWebhook — Přepíše kořenový DisableWebhook. [Nepovinné]
  • OnDemand — Přepíše kořenový OnDemand. [Nepovinné]

Příklady

Příklad: Číslo smlouvy s pololetím

{
  "Expression": "SM-{date:yy}[[new Date().getMonth() > 5 ? '2' : '1']]-{$Counter}",
  "Counters": [
    {
      "Name": "Counter",
      "Variable": "SM_{ListId}_{Year}",
      "Padding": 5,
      "PaddingCharacter": "0"
    }
  ]
}

Výsledek: SM-251-00001 (první pololetí 2025)

Příklad: Číslo jednací s typem obsahu

{
  "Expression": "{item:s_prefix}-{Year}/{$Counter}",
  "Counters": [
    {
      "Name": "Counter",
      "Variable": "CJ_{ListId}_{Year}_{item:s_prefix}",
      "Padding": 4
    }
  ],
  "SyncElement": {
    "TargetElement": "Title",
    "Expression": "{value}"
  }
}