Как объединить значения полей в представлениях в Dynamics AX 2009 - PullRequest
0 голосов
/ 01 июля 2011

Мне нужно создать представление для экспорта некоторых данных продукта.В идеале мне нужно объединить два значения полей (возможно, другие, если это возможно).

Я знаю, что SQL в AX не совсем правильный SQL, как я пытался:

Select field1 + field2 from table

, который должен работать иэто не

У меня такое чувство, что я мог бы сделать это с помощью метода в представлении, но я никогда не делал этого раньше, и я нигде не могу найти приличных примеров.

что я хочу сделать, даже возможно, и если да, то как бы я это сделал?

Редактировать

Причина, по которой я это делаю, заключается в том, что я начал использоватьMagento.Он неправильно интегрирован с AX, поэтому я собирался создать представление со всеми данными о продукте, а затем выполнить ручной импорт в Magento.

Я хочу объединить SKU продукта с идентификатором цветаили идентификатор размера.

Таким образом, PP1234 и BLU станут PP1234-BLU

Ответы [ 4 ]

0 голосов
/ 04 июля 2011

Вы не упоминаете, почему вы хотите добавить эти два поля вместе, но если это просто для представления, то это можно легко решить с помощью метода отображения в экземпляре таблицы.

public Amount myCustomMethod()
{
    return this.fieldA + thisfieldB;
}

Поскольку вы используете X ++ и экспортируете, я не понимаю, почему вы не можете выполнять вычисления как часть экспорта.

Надеюсь, это поможет.

0 голосов
/ 04 июля 2011

Возможно, вы создадите промежуточную таблицу, которую сможете использовать для экспорта, если она соответствует вашим целям ...

static void Test(Args _args)
{
    InventTable inventTable;
    StagingTable stagingTable;
    ;

    ttsbegin;

    insert_recordset stagingTable (ItemId, Field1, Field2)
        select ItemId, SourceField1, SourceField2 from inventTable;

    update_recordset stagingTable
        setting Field1 = stagingTable.Field1 + inventTable.SourceField2,
                Field2 = -stagingTable.Field2 + inventTable.SourceField1
    join inventTable
        where inventTable.ItemId == stagingTable.ItemId;

    ttscommit;
}
0 голосов
/ 04 июля 2011

Из-за небольшого количества документации о Dynamics AX я не думаю, что это можно сделать.

Кажется странным, что небольшое количество SQL, которое вы можете сделать.

0 голосов
/ 01 июля 2011

попробуйте

 select CAST(field1 AS varchar(number_characters)) 
 + CAST(field2 AS varchar(number_characters))
 from table
...