What’s new in the Vault 2013 API

We’ve officially released the Vault 2013 line of products, so I can now talk about the new API features.  This has been another good release for the API, some very nice stuff has been added for you to do interesting things with.  I’ll also list some of the more noticeable changes you will run into if you are coming from the Vault 2012 API.

In the coming weeks, I’ll be elaborating on most of these features, but for now I’ll just give you a high level view of the new API.


New Feature:  Custom Entities
Vault Professional allows you do define your own entity types.  You are no longer forced to use Files, Folders, Items and Change Orders for all your data.  Custom entities support properties, categories, ACL security, links and lifecycles (the same engine that files use).  The only behavior you might miss is versions and revisions.

Through the API you can create custom commands, custom tabs, custom new and delete behavior, and lifecycle events for you custom entity types.

New Feature:  API Compatibility
Vault Server 2013 contains two sets of web services.  Once set is the new 2013 services, but the 2012 services are still there too.  This means that 2012 clients will still work with the 2013 server.  No update required.

Note:  Compatibility does not apply to plug-ins such as custom commands, job handlers and event hooks.

New Feature:  Job Processor API
The IJobHandler interface has some new additions.  You can now run code during startup and shutdown.  You also have hooks for sleep, which is right before Job Processor goes idle, and wake, which is right after the idle period is over.

Job Processor itself has some enhancements.  It can use Windows credentials for login (however a Vault license is still consumed).  There are also new command line options for Job Processor so you can do service related operations, such as pause, resume and stop.

New Feature:  Auto Ownership Transfer
Transferring entities in a replicated environment just got much easier.  First transfers usually happen instantly instead of requiring you to wait for a few minutes.  Also the WebServiceManager will automatically transfer ownership for you attempt to edit an entity that is owned by another workgroup. 

New Feature:  Impersonation
If your program is logged in as an administrator, it can switch its credentials to that of another user.  This is useful for utilities that edit Vault data, but you want it to preserve the user that originally created the data.

Change:  .NET 4.0
All the SDK DLLs have been moved over to .NET 4.0.  Since 4.0 uses a new CLR, you can’t use projects that are 3.5 or earlier.  All SDK samples have been updated to Visual Studio 2010.

Change:  Strong named assemblies
All SDK DLLs now have a strong name.  It’s recommended you strong name your project if possible.

Change:  Autodesk.Connectivity.WebServicesTools.dll has been removed.
All the code has been moved into Autodesk.Connectivity.WebServices.dll.  So no code change is needed, you just have one less assembly to link to and deploy.  The WebServicesTools namespace has not changed.

Change:  System Name control
You can now define the system name for objects created through the API.  This gives you a reliable string that you can use to look up things like property definitions and categories.

Change:  Lifecycle Service
The code for managing file lifecycles has been moved to the new lifecycle service.  The functions have been genericized to use entities instead of files. This change was done to support lifecycles on Folders and Custom Entities.

Change:  byte [] has been changed to ByteArray
Web service functions have been updated to transfer a ByteArray object in most cases where byte [] was used, for example, upload and download.  This change was done to support the compression feature.

By default, compression is not used.  However the option is there to use LZ4 compression when transferring binary data.


Comments

7 responses to “What’s new in the Vault 2013 API”

  1. LZ4 compression ?

  2. I’ll be posting sample code on this topic in the upcoming weeks.

  3. Meir Weiss Avatar
    Meir Weiss

    Hi Doug
    Do we have now any event for linking process?

  4. Are you talking about the feature where you create a link to a file that lives in another folder? No, we do not have events for links.

  5. Andries Muylaert Avatar
    Andries Muylaert

    Hi Doug, long time no see,
    There is a new parameter in the api command for file checkout : ‘DownloadOptions’. Can your provide an example for the ‘DownloadPart’ (download in chunks) method ? Is it used in combination with the DownLoadFileInParts api method ?
    Does this mean that checkout will generate error 1101 (DownloadFileSizeExceedsServerLimit) for large files as from version 2013 ? I experience this error since the upgrade to 2013, never have seen this message before on checkout.
    Thanks in advance

  6. Yes, you understanding is correct. If you want to checkout a large file and download in the same call, you use the DownloadPart option. The Checkout function will then give you the first part. Call DownloadFilePart to get the rest of the file.
    The SDK documentation for DownloadFilePart shows some sample code, but only for DownloadFilePart alone. I don’t have an example of Checkout + DownloadFilePart.
    Personally, I checkout and download as separate calls. Checkout and Download are slow operations, so you don’t gain much performance by combining them into one API call.

  7. Hi Doug,
    I have a Vault Professional 2014 API question that I hope you can help me out with?
    I have a custom object created that allows me to create a identification number, somewhat like when a new item is created. What I would like to achieve is using the Vault API that will allow me to create this unique number that is associated with other file properties that will match up with this unique number. I am looking at the custom entity API would this API allow me to achieve this?
    I have a DECO app that is currently used for to do this to create a new reference number. I would like to replicate this using the Vault API.
    I look forward to your reply.
    Many thanks,
    Barry

Leave a Reply to Andries MuylaertCancel reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading