Hi All, 

Has anyone successfully change a table field's property (especially 
ExtendedDataType) using AOTSetPropertiesExt in AX 2009 SP0/SP1? 

Whenever I tried to run below job, it crashed at AOTSetPropertiesExt 
statement. I had experience to make it run once before, but maybe I was lucky. 

static void Job6(Args _args) 
{ 
#define.TableName('TSTTestTable') 
#define.FieldName('TestField') 

#AOT 
#Properties 

TreeNode a,b,c; 
AOTTableFieldList fields; 
Struct s; 
Map map = new Map(Types::String, Types::String); 

Counter propertiesCount; 
Array propertyInfoArray; 
Struct propertyInfo; 
str propertyValue; 
int i; 

; 

//create table 
a = infolog.findNode(#TablesPath); 
b = a.AOTfindChild(#TableName); 
if (!b) 
{ 
b = a.AOTadd(#TableName); 
b.AOTsave(); 
} 

//create field 
fields = b.AOTfindChild('Fields'); 
c = fields.AOTfindChild(#FieldName); 
if (!c) 
{ 
fields.addString(#FieldName); 
c = fields.AOTfindChild(#FieldName); 
b.AOTsave(); 
} 

//set field's properties 
s = c.AOTgetPropertiesExt(); 
map.insert(#PropertyExtendedDataType, 'SalesId'); 

propertiesCount = s.value('Entries'); 
propertyInfoArray = s.value('PropertyInfo'); 
for (i = 1; i <= propertiesCount; i++) 
{ 
propertyInfo = propertyInfoArray.value(i); 

if (map.exists(propertyInfo.value('Name'))) 
{ 
propertyValue = map.lookup(propertyInfo.value('Name')); 
propertyInfo.value('Value', propertyValue); 
} 
} 

c.AOTsetPropertiesExt(s); 
b.AOTsave(); 
} 

If I run it on AX 4 SP2, it didn't crash, but the string size is wrong (2 
instead of 10 as in SalesId). But second run will give 10 in string size. 

Is it as simple as 'unstable'? 

If I use normal AOTSetProperties, sometimes it hang or took very long time 
to finish (either 30 seconds or forever). 


Regards,


      Start your day with Yahoo!7 and win a Sony Bravia TV. Enter now 
http://au.docs.yahoo.com/homepageset/?p1=other&p2=au&p3=tagline

Reply via email to