"Массив" и EDT типа массив - это "две большие разницы"

Types::String предполагает хранение переменной типа String, но никак не массива.
В данном случае, можно инкапсулировать сложный тип данных в контейнер примерно так
X++:
static void ArrayMapExample2(Args _args)
{
Dimension value, result;
Map map;
MapEnumerator me;
int64 key;
;
map = new Map(Types::Int64, Types::Container);
key = 1; value[1] = 'abc'; value[2] = 'def'; value[3] = 'jhi';
map.insert(key, [value]);
key = 2; value[1] = '3.0'; value[2] = '2.0'; value[3] = '1.0';
map.insert(key, [value]);
key = 3; value[1] = '+++'; value[2] = '???'; value[3] = '!!!';
map.insert(key, [value]);
me = map.getEnumerator();
while (me.moveNext())
{
key = me.currentKey();
[result] = me.currentValue();
info(strfmt('%1;%2;%3;%4', key, result[1], result[2], result[3]));
}
}
Хотя, если все-равно используется контейнер, то какой смысл использовать Dimension? Проще уж сделать как написал
ConsAx