Язык скриптования сайтов Parser 3

       

Mathuuid


uuid. Универсальный уникальный идентификатор [3.0.8]


^math:uuid[]


Выдает случайную строку вида…

    22C0983C-E26E-4169-BD07-77ECE9405BA5

Примечание: на некоторых операционных системах выдает псевдослучайную строку.



Удобно использовать, когда трудно обеспечить или вообще нецелесообразно использовать сквозную нумерацию объектов.

Например, при распределенных вычислениях.

UUID также известен как GUID.

Пример

В разных филиалах компании собираются заказы, которые периодически отправляются в центральный офис. Чтобы обеспечить уникальность идентификатора заказа используем UUID.


# в разных филиалах происходит наполнение таблицы orders и order_details

# создаем уникальный идентификатор

$order_uuid[^math:uuid[]]

# добавляем запись о заказе

^void:sql{

insert into orders

    (order_uuid, date_ordered, total)

values

    ('$order_uuid', '$date_ordered', $total)

}

#цикл по заказанным продуктам вокруг добавления записи о продукте

^void:sql{

insert into order_details

    (order_uuid, item_id, price)

values

    ('$order_uuid', $item_id, $price)

}

# с какой-то периодичностью выбирается часть таблицы orders (и order_details)

# отправляется (^mail:send[…]) в центральный офис, 

# где части таблиц попадают в общие таблицы orders и order_details

# БЕЗ проблем с повторяющимся order_id

Примечание: Parser создает UUID основываясь на случайных числах, а не времени. Параметры:

·variant = DCE;  

·version = DCE Security version, with embedded POSIX UIDs.  

В UUID не все биты случайны, и это так и должно быть:

xxxxxxxx-xxxx-4xxx-{8,9,A,B}xxx-xxxxxxxxxxxx

Подробная информация о UUID доступна здесь: http://www.opengroup.org/onlinepubs/9629399/apdxa.htm



Содержание раздела