Documentum—the worst-documented software package in existence
Documentum exists, but I’d be happy if it didn’t. Here are some things you need to know if you try to use Documentum Foundation Services (DFS) via .NET:
- EMC hates you. To throw you off, they’ll provide either no documentation, or better yet documentation that is completely false.
- For that reason, you need to query your own documentation. The main tables you need are dm_cabinet, dm_folder and dm_document. For each one, this query will echo all the fields you can query via DQL:
SELECT attr_name FROM dmi_dd_attr_info WHERE type_name = ‘[tablename]’
- By default, queries return no more than 100 results. That’s called the MaxResultCount, and in C# you set that on your QueryExecution object (not that you’d know that with the dearth of documentation). You can set that to -1 to increase that amount to 500. Naturally almost every resultset you’ll ever ask for will exceed that amount, but short of tweaking settings in Documentum configuration files, you’re forced to manage caching the results and re-querying yourself (using the StartingIndex property of your QueryExecution object).
- Documents in Documentum don’t have their extension stored anywhere. If you want to download a file from Documentum after someone has renamed the document (a permitted option), you’re left figuring out the extension from the document’s a_content_type value. Documentum does have a whole table dedicated to mapping those values to things like MIME types and file extensions (as well as Mac creator codes, to the system’s credit)—it’s called dm_format, but without any documentation, good luck figuring that out for yourself.