|
|
#1 |
|
Участник
|
Создается таблица в AX, вставка в которую будет происходить только сторонними средствами (скорее всего DTS). Планируется изменение одного поля (Status) в созданных записях непосредственно из AX.
Разумеется, сразу озаботился необходимостью формирования RecId. Эта тема уже поднималась 8 лет назад, но у предложенного решения было существенное ограничение: требовалось передавать параметры во внешнюю программу. Три года назад был предложен следующий код: Цитата:
Сообщение от oip
Код: -- Генерация RecId. На выходе не 0 если всё Ok и 0, если что-то не так
-- Входные параметры: код компании и шаг
-- Пример: exec AX_GETRECID 'dat', '25'
CREATE PROCEDURE [dbo].[AX_GETRECID] (@dataAreaId VARCHAR(3), @hop INT)
AS
SET NOCOUNT ON
DECLARE @RecID INT
SET @RecID = NULL
UPDATE SYSTEMSEQUENCES SET @RecID = A.NextVal,
NextVal = A.NextVal + @HOP
FROM SYSTEMSEQUENCES A WHERE A.Id = -1 AND A.DATAAREAID = @dataAreaId
SELECT ISNULL(@RecID, 0) AS RecId
RETURN ISNULL(@RecID, 0)
GOВ связи с тем, что пишут, что "в AX 2009 RecId уникален лишь для каждой таблицы, а не для базы в целом", появилась мысль: почему бы, ни на что не взирая, не авто-инкрементить RecId в данной конкретной таблице, начиная с единицы? Это чем-то чревато? Как бы поступили вы сами? Прошу поделиться соображениями. Последний раз редактировалось Hyper; 23.06.2011 в 19:48. |
|
|
| Теги |
| ax2009, recid, systemsequences, интеграция, таблица |
|
|
|