Create Technical Document from AX

Creating detail technical document in projects is very time consuming. Isn’t

Particularly if there are many objects in the project it will take more time
in creating it.

Here is the solution.This job will list the table fields properties like table field name,help text(Description),type, Size etc.

static void
sgx_TehnicalDocument_Tables(Args _args)


COM         document;

COM         wordDocument;

COM         wordRange;

COM         app;

str         tableContent;

SysDictTable    dictTable;

SysDictField    dictField;

Counter         fieldCounter;

Counter         arrayCounter;

str typeofTheField(DictField df, Types _types)


str typeName;

SysDictType dictType;

SysDictEnum dictEnum;




            case Types::UserType    :  
dictType = new SysDictType(dictField.typeId());


            case Types::Container   :  
return ‘container’;


            case Types::Date        :  
return  ‘date’;


            case Types::Enum        :  
dictEnum = new SysDictEnum(dictField.enumId());



            case Types::Integer     :

                                 return  ‘int’;

             case Types::Int64       :

return  ‘int64’;

             case Types::Real        :

return  ‘real’;

             case Types::Record      :

return  ‘record’;

            case Types::VarString   :

            case Types::RString     :

            case Types::String      :  
return  ‘str’;

            case Types::BLOB        :  
return  ‘blob’;

            case Types::DateTime    : 
return  ‘datetime’ ;

            case Types::Guid        : 
return  ‘guid’ ;

            default : return ”;




app = new com("Word.Application");


document     = app.Documents();

wordDocument = document.add();


wordRange   =

dictTable = new SysDictTable(tablenum(CustTable)); //
Mention your table here

for (fieldCounter = 1; fieldCounter <= dictTable.fieldCnt();


dictField = new SysDictField(,

if (!dictField.isSystem())


            for (arrayCounter = 1; arrayCounter
<= dictField.arraySize(); arrayCounter++)


                dictField = new
SysDictField(, dictTable.fieldCnt2Id(fieldCounter),

                 tableContent += + "\t" + + "\t" +
typeofTheField(dictField, dictField.type()) + "\t" +
int2str(dictField.stringLen()) + "\n";







Note: This has been developed as per my requirements. Beautifications and customizations
can be done as per your requirements. I wrote simple job to do this. But it
can be customized in such a way that you can right click the project- context
menu- create technical document and will create the technical document for all the objects(Enums,EDT,Forms,classes etc) in the project.This development is in progress and will surely
update this in the blog soon.

Now this is how the word document will be loaded with the data after running the job


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: