AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.08.2017, 11:04   #1  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Генерация неуникального ID
Добрый день товарищи!
DAX 3.0. В рамках одной задачки необходимо генерить некий ID, который м.б. неуникальным и прерывным в своей последовательности. Номерная серия не подходит. М.б. есть уже существующие примеры в системе, дабы не изобретать велосипед.
Заранее спасибо!
Старый 14.08.2017, 11:13   #2  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
А каковы критерии неуникальности? то есть, в каком случае нужно генерировать номер как плюс один к предыдущему, а в каких случаях - какой то другой который уже есть? Странная задача.
За это сообщение автора поблагодарили: r2d2 (1).
Старый 14.08.2017, 11:15   #3  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от Zabr Посмотреть сообщение
А каковы критерии неуникальности? то есть, в каком случае нужно генерировать номер как плюс один к предыдущему, а в каких случаях - какой то другой который уже есть? Странная задача.
Критерий уникальности по приходящим из сторонней базы данным. Т.е.определенная группа записей может иметь один ID.
Старый 14.08.2017, 11:17   #4  
wef is offline
wef
Наблюдатель
Самостоятельные клиенты AX
 
14 / 15 (1) ++
Регистрация: 24.01.2005
Адрес: Москва
Цитата:
Сообщение от r2d2 Посмотреть сообщение
Добрый день товарищи!
DAX 3.0. В рамках одной задачки необходимо генерить некий ID, который м.б. неуникальным и прерывным в своей последовательности. Номерная серия не подходит. М.б. есть уже существующие примеры в системе, дабы не изобретать велосипед.
Заранее спасибо!
random не подойдет?
__________________
Ax 3.0 SP3
За это сообщение автора поблагодарили: r2d2 (1).
Старый 14.08.2017, 12:01   #5  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от wef Посмотреть сообщение
random не подойдет?
Да м.б. и подойдет, но возможно существует в стандартном функционале что то похожее
Старый 14.08.2017, 12:08   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от r2d2 Посмотреть сообщение
Критерий уникальности по приходящим из сторонней базы данным. Т.е.определенная группа записей может иметь один ID.
Неуникальный ID это противоречие - если он неуникальный, то он не может идентифицировать.

Следовательно имеется ввиду ID группы. Соответственно, надо понять как выделить группу во входящих данных (например значение полей должны совпадать, или это должен быть неприрывный кусок с совпадающими значениями поле и т.п.) Завести таблицу групп и там добавлять запись или искать по естественному ключу
За это сообщение автора поблагодарили: r2d2 (1), mazzy (2).
Старый 14.08.2017, 12:13   #7  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Цитата:
Сообщение от belugin Посмотреть сообщение
Неуникальный ID это противоречие - если он неуникальный, то он не может идентифицировать.

Следовательно имеется ввиду ID группы. Соответственно, надо понять как выделить группу во входящих данных (например значение полей должны совпадать, или это должен быть неприрывный кусок с совпадающими значениями поле и т.п.) Завести таблицу групп и там добавлять запись или искать по естественному ключу
ID - это я неправильно выразил мысль, ваше предложение мне нравится, спасибо!
Старый 14.08.2017, 13:53   #8  
brahma is offline
brahma
Участник
1C
 
278 / 80 (3) ++++
Регистрация: 01.12.2005
Считать хеш от значений полей идентифицирующих группу.
За это сообщение автора поблагодарили: r2d2 (1).
Старый 22.08.2017, 12:24   #9  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Цитата:
Сообщение от r2d2 Посмотреть сообщение
генерить некий ID, который м.б. неуникальным и прерывным в своей последовательности. Номерная серия не подходит.
дабы не изобретать велосипед.
Чем не подходит номерная серия?

По запросу предоставляется следующий уникальный ID из номерной серии. Номерную серию можно настроить чтобы непрерывность не контроллировалась.
Это как раз не велосипед.

Хочется велосипед - Random, GUID, или хеш-функция (как уже тут советовали).

Но мне так кажется, что проблема не в том как генерить некий ID, а вообще в определении этого ID из набора данных. Нет?

P.S. Еще из не велосипедов - это RecId записи в таблице.
Старый 22.08.2017, 12:39   #10  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от r2d2 Посмотреть сообщение
Добрый день товарищи!
DAX 3.0. В рамках одной задачки необходимо генерить некий ID, который м.б. неуникальным и прерывным в своей последовательности. Номерная серия не подходит. М.б. есть уже существующие примеры в системе, дабы не изобретать велосипед.
Заранее спасибо!
Есть:

X++:
EventInbox::idGenerator().nextval(1,#EVENT_SEQUENCE_SCOPE);
X++:
#Event
public static Sequence idGenerator()
{
    ;
    //Should only be instantiated once
    return new Sequence(#EVENT_SEQUENCENAME, #EVENT_SEQUENCEID, #EVENT_SEQUENCEMIN, -1);
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009 Экспорт платежей vs Генерация платежей mnt_dx DAX: Функционал 1 25.01.2017 09:59
Журнал платежей поставщика-генерация платежей IKA DAX: Функционал 1 29.10.2010 20:22
Автоматическая генерация номера партии simply2double DAX: Программирование 2 29.06.2006 17:29
Автоматическая генерация закупки по заказу 2b4fITin DAX: Функционал 3 13.01.2005 14:57
Конфигуратор продукции. Автоматическая генерация спецификаций mav DAX: Функционал 16 28.06.2004 18:13

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:44.