Interactz AX
Reference Guide


PREFACE

Stratopa Software Solutions

Stratopa Software Solutions supports organizations in the integration of document management, content management and collaboration systems. We develop easy to implement and high value solutions and professional service offerings for such environments.

Product Details

Interactz AX is a Microsoft .Net library providing simple connectivity to the Oracle Aconex APIs.

For more information visit the Stratopa Software Solutions website: -

https://www.stratopa.com

Version

Version 3.1

Release Notes

Version 3.1 provides interfacing to the following Aconex APIs: -

  • Document Register
  • Mail
  • Package Management
  • Project Fields
  • Tasks
  • User Directory
  • Workflow

Prerequisites

Microsoft .Net Framework 4.8.

Copyright Notice

Copyright © 2023, Stratopa Software Solutions FZE and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Waranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

GETTING STARTED

Installation

Currently there is no dedicated installation program to run to install Interactz AX. Installation is simply done by carrying out the following steps: -

  1. Create a new folder for Interactz AX (e.g. c:\Program Files\Stratopa\Interactz AX).
  2. Copy the contents of the delivery media file to the new folder.

Licensing

Stratopa Software Solutions will provide you with a unique Customer ID and a Product License File. These are required to use the Interactz AX.

The Product License File includes an encrypted Registration Key holding customer identification, product identification and terms of usage (such as expiration) details. You will only be able to successfully call Interactz AX methods if the registration key is valid. An example of the Product License Files is shown below: -

Example - License File
Stratopa Software Solutions FZE. Copyright 2023. All Rights Reserved. Product License File . Customer ID: 001-0001 Product ID: Stratopa.Interactz.AX Product Description: Stratopa Interactz Aconex .Net Interface . Registration Key: SAmpL3A5dA6KtPAH8N6+4AgZO9fhf/cGR623273nmYtK26/kFH2o32MA4L1jN=

During initialization Interactz AX will read the product license file and validate the registration key. The placement of the product license file is left up to you. You may, for example, decide to place it in a central location (such as a shared folder) or deploy it as part of your application.

Referencing

To use Interactz AX simply create a reference to the following dll files file in your .Net application.

  • Stratopa.Common.dll
  • Stratopa.Interactz.Common.dll
  • Stratopa.Interactz.AX.dll

Your application must import the following namespaces.

Example - Namespaces
Imports Stratopa.Common Imports Stratopa.Interactz.Common Imports Stratopa.Interactz.Aconex

Initialization

To invoke any of the Interactz AX methods it is first necessary to instantiate and initialize the interface. Instantiate the interface by using the .Net New constructor method.

You must pass in your unique Stratopa assigned customer identifier and a file reference to the Interactz AX license file: -

Example
Dim lobjInteractzAX As New InteractzAX(lstrStratopaCustomerID, lobjLicenseFileInfo)

Initializing the interface is simply supplying the Aconex credentials, i.e. hostname, username and password.

The credentials are used by the interface for all subsequent calls to the Aconex API. The Aconex API cannot be accessed without valid credentials.

Note:

  • The hostname is part of the URL that you use to login into Aconex (e.g., ‘ea1.aconex.com’).
  • The username must be given access to the Aconex API by your organization’s Aconex administrator.
  • To integrate your application with Aconex on a live project you will need a unique Integration ID which you must obtain from Aconex.

To initialize Interactz AX call the Initialize method by passing the Aconex credentials as string arguments as shown below: -

Example - Initialize
lobjInteractzAX.Initialize(lstrHostname, lstrUsername, lstrPassword, lstrIntegrationID)

We recommend that after initialization a call is made to the IsUserValid method to determine whether the credentials that will be used to access the Aconex API are valid.

Example - Initialize
If Not lobjInteractzAX.IsUserValid() ‘place error processing here End If

Setting the Aconex Project

Most calls to the Aconex API require an internal Project Id to be specified. Interactz AX hides the complexity of knowing internal Project Ids for Aconex Projects. All that is required is the Project’s Name (as displayed in the Aconex user interface).

Prior to invoking any project dependent Interactz AX method it is necessary to set the Aconex Project that you intend to work with. This can be done through the interface’s SetProject method.

Example - Set Aconex Project
lobjInteractzAX.SetProject(lstrProjectName)

Performance Throttling

There are reasonable limits which apply to both the volume and frequency of requests to the Aconex API. When interfacing to the Aconex API it is important to ensure that the limits are not exceeded, otherwise the Aconex API will return error messages.

Interactz AX provides an approach for automatically controlling the frequency of calls to the Aconex API, thereby avoiding or reducing the probability of receiving error messages. This approach involves setting two properties as described below.

The UseRequestFrequencyLimit property is used to set the request frequency method on or off. By default, this property is set to True during interface initialization.

The RequestFrequencyLimit property is used to set the minimum time (in milliseconds) between calls to the Aconex API. By default, this property is set to 250 milliseconds during interface initialization.

Example - Performance Thrfottling
lobjInteractzAX.UseRequestFrequencyLimit = True lobjInteractzAX.RequestFrequencyLimit = 400

WORKING WITH DOCUMENTS

Interactz AX provides a simple approach for searching the Aconex document register for required documents. You can search for a single document or use search criteria to search and return a collection of documents.

Searching for Specific Documents

To search for a single document, use the interface’s GetDocument method.

To search for the latest revision of a specific document simply pass the document number to the method as shown below: -

Example - Document Search By Number
Dim lobjDocument As Document = lobjInteractzAX.GetDocument(lstrDocNumber) . If lobjDocument Is Nothing Then ‘place error processing here End If

If you need to search for a specific revision of the document, whether current or superseded, then pass both the document number and revision to the method as shown below: -

Example - Searching for a Specific Document Revision
Dim lobjDocument As Document = lobjInteractzAX.GetDocument(lstrDocNumber, lstrRevision)

Advanced Document Search

To search for documents using search criteria use the interface’s GetDocuments method. Before calling this method you must first initialize and add the required search criteria. This ensures that criteria from any previous searches are cleared.

Example - Initialize Document Search Criteria
lobjInteractzAX.InitializeDocSearchCriteria()

The available search criteria fields have been enumerated for ease of use. Use the AddSearchField method to specify your search criteria, passing in the enumerated field name and search value.

You can call the AddSearchField method as many times as you like to build up your search criteria. The following example shows how to search for all documents with a discipline of Mechanical and a document type of Detail Drawing.

Example - Using Document Search Criteria
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.discipline, "Mechanical") lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.doctype, "Detail Drawing") . Dim lcolDocuments As DocumentCollection = lobjInteractzAX.GetDocuments()

If the same search field is added multiple times, then, by default, the values are applied by using an OR operator. The AddSearchField method can also be called setting the operator to AND as shown in the example below.

Example - Using Document Search Criteria
lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.doctype, "Detail Drawing") lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.doctype, "Layout Drawing", CommonEnumerators.SearchOperator.op_AND)

By default, the GetDocuments method will return the latest revisions of a document only. If you wish to return all revisions of a document, then you must set the ShowDocumentHistory property on the search criteria to True.

Example - Returning All Document Revisions From Search
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.discipline, "Mechanical") lobjInteractzAX.ShowDocumentHistory = True

Document Search with Wildcards

The interface allows search criteria values to be specified using wildcards. The interface supports the same wildcards as supported by Aconex. For more information, please see Aconex Support Central.

https://help.aconex.com/DisplayContent/advanced-document-searching

Returning A Document Count

If you wish to return a count of documents only then use the interface’s GetDocumentCount method. This works in the same way as the GetDocuments method in that it uses specified search criteria to determine the result.

Example - Returning a Document Count
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.discipline, "Mechanical") . Dim llngNumDocuments As long = lobjInteractzAX.GetDocumentCount()

Document Results

The GetDocument and GetDocuments methods return either a Document Class object or a collection of Document Class objects.

After initializing the document search criteria, it is possible to set the SearchType property determine how results are returned. The SearchType property has the following enumerations that can be used during search:

Search Type Description
NUMBER_LIMITED Limits the number of documents returned by a specified value. This is the default search type.
PAGED Returns a specific page of documents for a larger set of documents.
FULL Returns all documents for the specified search criteria.

Limiting Document Results

By default, the GetDocument and GetDocuments methods limit the number of documents returned to 250. However, it is possible to increase this limit to a maximum of 500 documents.

To do this you must set the search criteria’s SearchType property to NUMBER_LIMITED and the ResultsSize property to the number of results you wish returned. If you specify a value greater than 500 then the ResultsSize property will be set to 500.

Example - Limiting Document Results
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.SearchType = SearchType.NUMBER_LIMITED lobjInteractzAX.DocSearchCriteria.ResultsSize = 500

The ResultsSize property has a maximum value of 500 and must be divisible by 25.

Paged Document Results

When using the GetDocument and GetDocuments methods it is possible to return a specific page of documents from a large result set.

To do this you must set the search criteria’s SearchType property to PAGED, the PageSize property to the number of documents per page, and the PageNumber property of the page of documents you want returned.

Example - Paged Document Results
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.SearchType = SearchType.PAGED lobjInteractzAX.DocSearchCriteria.PageSize = 25 lobjInteractzAX.DocSearchCriteria.PageNumber = 1

The ResultsSize property is ignored when the SearchType property is PAGED.

The PageSize property has a maximum value of 500 and must be divisible by 25.

All Document Results

As previously described, there are limits to the number of documents that can be returned using the GetDocument and GetDocuments methods. The Aconex API previously supported a full or unlimited results search; however this support has been depreciated.

However, Interactz AX continues to provide full document results for the specified search criteria by internally combining results of incremental paged calls to the GetDocuments method. To do this, simply set the SearchType property to FULL.

Example - Returning All Documents
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.discipline, "Mechanical") lobjInteractzAX.DocSearchCriteria.SearchType = SearchType.FULL

As Interactz AX must incrementally call the GetDocuments method, it uses the RequestFrequencyLimit property to limit the frequency between calls (see Performance Throttling section) and thus whilst all document results can be returned, it can take some time for very large data sets.

Document Return Fields

Each Document Class object that is returned fromthe GetDocument and GetDocuments methods is initialized to include all relevant Aconex properties in its Properties collection, however, the properties that will have values set is determined by the search criteria’s Return Fields.

By default, only the DocumentNumber, Revision, Title, RevisionStatus and Filename properties are returned. This improves search performance. However, it is possible to return all available property values, or specified property values.

To return all available property values call the search criteria’s AddAllReturnValues method, as shown in the eample below.

Example - Returning All Document Fields
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddAllReturnFields

To specify the additional property values that you want returned call the search criteria’s AddReturnValue method, as shown below.

Example - Returning Specific Document Fields
lobjInteractzAX.InitializeDocSearchCriteria() lobjInteractzAX.DocSearchCriteria.AddSearchField(DocRegister.SearchField.docno, "ABC-123-PID*") . lobjInteractzAX.DocSearchCriteria.AddReturnField(DocRegister.ReturnField.discipline) lobjInteractzAX.DocSearchCriteria.AddReturnField(DocRegister.ReturnField.attribute1) lobjInteractzAX.DocSearchCriteria.AddReturnField(DocRegister.ReturnField.contractordocumentnumber) . Dim lcolDocuments As DocumentCollection = lobjInteractzAX.GetDocuments()

Registering Documents

Interactz AX provides a simple approach for registering documents to the Aconex document register using the RegisterDocument method.

To register a document in Aconex you must perform the following: -

  • Use the SetProject method to set the Aconex Project to which you are registering the document.
  • Instantiate a valid FileInfo object for the file that is to be associated to the document being registered.
  • Instantiate a new Document Class object.
  • Set the document’s metadata using the SetProperty method. The valid Aconex properties have been enumerated (AconexEnumerators.DocumentField) for easy use. The properties required to set will be dependent on each specific Aconex Project.
Example - Registering a Document
lobjInteractzAX.SetProject(lstrProjectName) . Dim lobjDocument As Document = lobjInteractzAX.InitializeNewDocument(lstrDocumentNumber, lstrRevision, lobjFileInfo) . lobjDocument.SetProperty(DocumentField.DocumentTypeId.ToString, "Manual") lobjDocument.SetProperty(DocumentField.DocumentStatusId.ToString, "Approved") lobjDocument.SetProperty(DocumentField.Attribute1.ToString, "Airport") lobjDocument.SetProperty(DocumentField.Attribute1.ToString, "Process Plant") lobjDocument.SetProperty(DocumentField.Attribute2.ToString, "Engineering") lobjDocument.SetProperty(DocumentField.Title.ToString, "My Document Title") lobjDocument.SetProperty(DocumentField.Discipline.ToString, "Mechanical") lobjDocument.SetProperty(DocumentField.PrintSize.ToString, "A4") lobjDocument.SetProperty(DocumentField.RevisionDate.ToString, "11/09/2013") lobjDocument.SetProperty(DocumentField.Comments.ToString, "Comments") . Try lobjInteractzAX.RegisterDocument(lobjDocument) Catch ex As Exception ‘Handle Errors End Try

Note: The RegisterDocument method will validate the property values set for the document against the Aconex document schema for the selected project and raise an exception if any of the supplied metadata is invalid.

Downloading Documents

Interactz AX provides a simple approach for downloading documents from the Aconex document register using the DownloadDocument method.

To download a document from Aconex you must perform the following: -

  • Use the SetProject method to set the Aconex Project to which you are registering the document.
  • Call the DownloadDocument method.
Example - Downloading a Document
lobjInteractzAX.SetProject(lstrProjectName) . Dim lobjDocument As Document = lobjInteractzAX.GetDocument(lstrDocNumber) . If lobjDocument Is Nothing Then ‘place error processing here Else lobjInteractzAX.DownloadDocument(lobjDirInfo, lobjDocument.Filename, lobjDocument) End If

Note: The filename to which the document is downloaded does not have to be the same as the filename stored in Aconex.

To download multiple documents simply use the GetDocuments method to search for the required documents then call the DownloadDocuments method for each returned document, as shown in the example below.

Dim lcolDocuments As DocumentCollection = lobjInteractzAX.GetDocuments() . With lcolDocuments.GetEnumerator Do While .MoveNext Dim lobjDocument As Document = CType(.Value, Document) lobjInteractzAX.DownloadDocument(lobjDirInfo, lobjDocument.Filename, lobjDocument) Loop End With

Superseding Documents

Interactz AX provides a simple approach for superseding documents in the Aconex document register using the SupersedeDocument method.

To supersede a document in Aconex you must perform the following: -

  • Use the SetProject method to set the Aconex Project to which you are registering the document.
  • Get the document from the Aconex register that you want to supersede using the GetDocument method.
  • Set the new Revision property and other properties you wish to change for the new revision.
  • Initialize the document’s associated file.
  • Call the SupersedeDocument method.
Example - Superseding a Document
lobjInteractzAX.SetProject(lstrProjectName) . Dim lobjDocument As Document = lobjInteractzAX.GetDocument(lstrDocumentNumber) . If lobjDocument Is Nothing Then ‘Place error handling here End If . Try lobjDocument.SetProperty("Revision", lstrNewRevision) lobjDocument.InitializeFile(lobjFileInfo) . lobjInteractzAX.SupersedeDocument(lobjDocument) . Catch ex As Exception ‘Handle Errors End Try

WORKING WITH MAIL

Interactz AX provides a simple approach for searching the Aconex mail register. You can search for all mail in a specified mailbox or use search criteria to search and return a collection of mail items.

Searching for All Mail

To search for all mail, use the GetMail method. Before calling this method, you must first initialize the search criteria.

Example - Get Mail
lobjInteractzAX.InitializeMailSearchCriteria() . Dim lcolMail As MailCollection = lobjInteractzAX.GetMail()

The default mailbox used for searching is the Inbox. If you want to search the Sent or Drafts mailboxes then you must specify this on the search criteria.

Example - Get Mail From Inbox
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.Mailbox = Mailbox.SENTBOX . Dim lcolMail As MailCollection = lobjInteractzAX.GetMail()

Searching for Mail By Number

To search for mail by its number use the GetMailByNumber method. This method returns all properties for the mail item, including collections of mail attachments (files, documents, and mail).

Example - Get Mail By Number
Dim lobjMail As Mail = lobjInteractzAX.GetMailByNumber(lstrMailNumber)

Searching for Mail By Id

To search for mail by its internal Id use the GetMailByID method. This method returns all properties for the mail item, including collections of mail attachments (files, documents, and mail).

Example - Get Mail By Number
Dim lobjMail As Mail = lobjInteractzAX.GetMailByID(lstrMailID)

Advanced Mail Search

To search for mail using search criteria use the GetMail method. Before calling this method, you must first initialize and add the required search criteria. This ensures that criteria from any previous searches are cleared.

Example - Initialize Mail Search Criteria
lobjInteractzAX. InitializeMailSearchCriteria()

The available search criteria fields have been enumerated for ease of use. Use the AddSearchField method to specify your search criteria, passing in the enumerated field name and search value.

You can call the AddSearchField method as many times as you like to build up your search criteria. The following example shows how to search for all mail with a recipient of Joe Bloggs and a type of Transmittal.

Example - Using Mail Search Criteria
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.AddSearchField(MailRegister.SearchField.touserfullname, "Joe Bloggs") lobjInteractzAX.MailSearchCriteria.AddSearchField(MailRegister.SearchField.corrtypeid, "Transmittal") . Dim lcolMail As MailCollection = lobjInteractzAX.GetMail()

If the same search field is added multiple times, then, by default, the values are applied by using an OR operator. The AddSearchField method can also be called setting the operator to AND as shown in the example below.

Example - Using Mail Search Criteria
lobjInteractzAX.MailSearchCriteria.AddSearchField(MailRegister.SearchField.corrtypeid, "Transmittal") lobjInteractzAX.DocSearchCriteria.AddSearchField(MailRegister.SearchField.corrtypeid, "Variation", CommonEnumerators.SearchOperator.op_AND)

Mail Search with Wildcards

The interface allows search criteria values to be specified using wildcards. The interface supports the same wildcards as supported by Aconex. For more information, please see Aconex Support Central.

https://help.aconex.com/DisplayContent/advanced-document-searching

Returning a Mail Count

If you wish to return a count of mail items only, then use the GetMailCount method. This works in the same way as the GetMail method in that it uses specified search criteria to determine the result.

Example - Returning a Mail Count
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.AddSearchField(MailRegister.SearchField.corrtypeid, "Transmittal") . Dim llngNumMail As long = lobjInteractzAX.GetMailCount()

Mail Results

The GetMail, GetMailByNumber and GetMailById methods return either a Mail Class object or a collection of Mail Class objects.

After initializing the mail search criteria, it is possible to set the SearchType property determine how results are returned. The SearchType property has the following enumerations that can be used during search:

Search Type Description
NUMBER_LIMITED Limits the number of mail items returned by a specified value. This is the default search type.
PAGED Returns a specific page of mail for a larger set of documents.
FULL Returns all mail for the specified search criteria.

Limiting Mail Results

By default, the GetMail method limit the number of mail items returned to 250. However, it is possible to increase this limit to a maximum of 500 mail items.

To do this you must set the search criteria’s SearchType property to NUMBER_LIMITED and the ResultsSize property to the number of results you wish returned. If you specify a value greater than 500 then the ResultsSize property will be set to 500.

lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.SearchType = SearchType.NUMBER_LIMITED lobjInteractzAX.MailSearchCriteria.ResultsSize = 500

Paged Mail Results

When using the GetMail method it is possible to return a specific page of mail items from a large result set.

To do this you must set the search criteria’s SearchType property to PAGED, the PageSize property to the number of mail items per page, and the PageNumber property of the page of mail items you want returned.

Example - Paged Mail Results
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.SearchType = SearchType.PAGED lobjInteractzAX.MailSearchCriteria.PageSize = 25 lobjInteractzAX.MailSearchCriteria.PageNumber = 1

The ResultsSize property is ignored when the SearchType property is PAGED.

The PageSize property has a maximum value of 500 and must be divisible by 25.

All Mail Results

As previously described, there are limits to the number of mail items that can be returned using the GetMail method. The Aconex API previously supported a full or unlimited results search however this support has been depreciated.

However, Interactz AX continues to provide full mail item results for the specified search criteria by internally combining results of incremental paged calls to the GetMail method. To do this, simply set the SearchType property to FULL.

Example - Returning All Mail Results
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.AddSearchField(MailRegister.SearchField.corrtypeid, "Transmittal") lobjInteractzAX.MailSearchCriteria.SearchType = SearchType.FULL

As Interactz AX must incrementally call the GetMail method, it uses the RequestFrequencyLimit property to limit the frequency between calls (see Performance Throttling section) and thus whilst all document results can be returned, it can take some time for very large data sets.

Mail Return Fields

Each Stratopa Mail Class object that is returned from the GetMail, GetMailByNumber or GetMailById methods is initialized to include all relevant Aconex properties in its Properties collection, however, the properties that will have values set is determined by the search criteria’s Return Fields.

By default, only the Mail Number, Sent Date, Subject, From User and Recipients, properties are returned. This improves search performance. However, it is possible to return all available property values, or specified property values.

Example - Returning All Mail Fields
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.AddAllReturnFields

To specify the property values that you want returned call the search criteria’s AddReturnField method, as shown below.

Example - Returning Specific Mail Fields
lobjInteractzAX.InitializeMailSearchCriteria() lobjInteractzAX.MailSearchCriteria.AddReturnField(MailRegister.ReturnField.responsedate) lobjInteractzAX.MailSearchCriteria.AddReturnField(MailRegister.ReturnField.confidential) . Dim lcolMail As MailCollection = lobjInteractzAX.GetMail()

Downloading Mail Attachments

Interactz AX provides a simple approach for downloading mail attachments from the Aconex mail register using the DownloadMailAttachments method.

To download a mail attachments from Aconex you must perform the following: -

  • Use the SetProject method to set the Aconex Project to which you are registering the document.
  • Search for the mail item you want to download using one of the search methods described earlier.
  • Initialize a DirectoryInfo class for the directory where you want the file attachments to be downloaded to. Note that a subdirectory will be created with the number of the mail item for which file attachments are being downloaded.
  • Call the DownloadMailAttachments method.
Example - Download Mail Attachments
lobjInteractzAX.SetProject(lstrProjectName) . Dim lobjMail As Mail = lobjInteractzAX.GetMailByNumber("SSS-SEQ-000001") . Dim lobjDirInfo As New DirectoryInfo("c:\Temp\AconexMailAttachments") . lobjInteractzAX.DownloadMailAttachments(lobjDirInfo, lobjMail, False, False)

Note: The DownloadMailAttachments method downloads all file attachments, using the same filename as registered in Aconex.

The DownloadMailAttachments method includes two boolean parameters for determining the handling of attached markup files and document attachments, as shown in the method signature below: -


DownloadMailAttachments(ByVal TargetDir As DirectoryInfo, ByRef Mail As Mail, ByVal MarkedUp As Boolean, ByVal IncludeAttachedDocumentFile As Boolean)


If the MarkedUp parameter is set to [valTrue the DownloadMailAttachments method will download the marked-up version of the attached file(s) in a PDF format.

If the IncludeAttachedDocumentFile parameter is set to True the DownloadMailAttachments method will also download files for any attached document.

Mail Threads

In Aconex, mail threads are created whenever someone responds to, or forwards, a mail. The action is added into the 'mail thread'. This helps you keep track of the mail's progress. Thus, a mail thread consists of multiple mail items. A mail item is therefore associated with a mail thread.

Interactz AX provides a simple approach for retrieving mail thread information.

Getting the Mail Thread

A mail thread can be retrieved using the GetMailThread method. There are two overloads to this method. It can be called with either a mail item number or a Mail item.

Example - Get Mail Thread By Mail Number
Dim lobjMailThread As MailThread = lobjInteractzAX.GetMailThread ("SSS-SEQ-000001")

Example - Get Mail Thread By Mail Item
Dim lobjMailThread As MailThread = lobjInteractzAX.GetMailThread (lobjMail)

Creating and Registering Mail

Interactz AX provides a simple approach for creating mail items in Aconex using the CreateMail or RegisterMail method.

These methods are functionally the same except that the RegisterMail method creates a new mail item on behalf of another user, in the specified project.

To create or register a mail in Aconex you must perform the following: -

  • Use the SetProject method to set the Aconex Project to which you are creating the mail item.
  • Instantiate a new Mail Class object using the InitializeNewMail method.
  • Set the mail item’s metadata values using the SetProperty method.

Note: Unlike the document register, the properties for the Mail Register have not been enumerated. This is because the Mail Register properties are configurable by both Project and Mail Type. However, the InitializeNewMail method will instantiate a Mail class object which will include a collection of ItemProperty objects that are valid for the specified project and mail type.

  • Add file, document or mail attachments to the Mail Class object as required.
  • Call the CreateMail or RegisterMail method.
lobjInteractzAX.SetProject(lstrProjectName)
. 'Initialize new Mail Item Dim lobjMail As Mail = lobjInteractzAX.InitializeNewMail("", "Variation Request", lenumMailCreationType) . Set the Mail Item properties (metadata) as required. SetMailMetadat(lobjMail) . 'Add File Attachment(s) to the Mail Item as required. Dim lobjFileInfo As New FileInfo("C:\Temp\Aconex Uploads\AconexTestMail.txt") . lobjMail.Attachments.Add("FileAttachment1", New MailAttachmentFile(lobjFileInfo.Name, lobjFileInfo.FullName, lobjFileInfo.Length)) . 'Add Document Attachment(s) to the Mail Item as required. lobjMail.Attachments.Add("DocumentAttachment1", New MailAttachmentDocument(lstrDocumentID, lstrDocumentID)) . 'Add Mail Attachment(s) to the Mail Item as required. lobjMail.Attachments.Add("MailAttachment1", New MailAttachmentMail(lstrMailID)) . Try If lenumMailCreationType = enumMailCreationType.RegisterMail Then lobjInteractzAX.RegisterMail(lobjMail) Else lobjInteractzAX.CreateMail(lobjMail) End If Catch ex As Exception 'Handle Errors End Try

Note: The CreateMail method will validate the property values set for the mail item against the Aconex mail schema for the selected project and raise an exception if any of the supplied metadata is invalid.

Mail Types

When creating or registering mail it is necessary to specify a mail type. It is the mail type that determines what properties are available for the mail.

Interactz AX provides a simple approach for listing available mail types for a project in Aconex mail items in Aconex using the GetMailTypes method.

This method returns a List of PropertyValue objects (essentially items with an [propID and Value property).

Example - Get Mail Types
Dim lcolMailTypes As List(Of PropertyValue) = lobjInteractzAX.GetMailTypes()

You may, for example, wish to populate a combo box on a form with a list of mail types.

Example - Get Mail Types
Me.cmbMailTypes.Items.Clear() Me.cmbMailTypes.DisplayMember = "Value" Me.cmbMailTypes.ValueMember = "ID" Me.cmbMailTypes.Items.Add(New PropertyValue("", "")) . With lobjInteractzAX.GetMailTypes().GetEnumerator Do While .MoveNext Me.cmbMailTypes.Items.Add(.Current) Loop End With

WORKING WITH PACKAGES

Interactz AX provides a simple approach for managing packages. You can search for package types and packages, add and remove documents, mail and collaborators to and from packages.

Note: Aconex's Package Management module adopts an Eventual Consistency model, with which changes in the system might not be immediately available, but could have a delay(eventually) before they can be observed. Generally, the delay would be minor(seconds). However, it could be more obvious when the system is under pressure.

Searching for a Specific Package Type

To search for a single package type, use the interface’s GetPackageTypeByName, GetPackageTypeByCode or GetPackageTypeByID methods. These methods return a PackageType object which includes a collection of ProjectFields. This means that a separate call to Aconex is not required to fetch the project fields that have been defined for a package type. You should first call the SetProject method to set the Aconex Project for which you are to search for package types.

Example - Package Type Search By Name
Dim lobjPackageType As PackageType = lobjInteractzAX.GetPackageTypeByName(lstrName) . If lobjPackageType Is Nothing Then ‘place error processing here End If
Example - Package Type Search By Code
Dim lobjPackageType As PackageType = lobjInteractzAX.GetPackageTypeByCode(lstrCode) . If lobjPackageType Is Nothing Then ‘place error processing here End If
Example - Package Type Search By ID
Dim lobjPackageType As PackageType = lobjInteractzAX.GetPackageTypeByName(lstrID) . If lobjPackageType Is Nothing Then ‘place error processing here End If

Searching for All Package Types

To search for all package types for a project, use the interface’s GetPackages method.

Example - Search for All Package Types
Dim lcolPackageTypes As PackageTypeCollection = lobjInteractzAX.GetPackageTypes()

Searching for a Specific Package

To search for a single package, use the interface’s GetPackageByName or GetPackageByID methods. You should first call the SetProject method to set the Aconex Project for which you are to search for packages.

Example - Package Search By Name
Dim lobjPackage As Package = lobjInteractzAX.GetPackageByName(lstrName) . If lobjPackage Is Nothing Then ‘place error processing here End If
Example - Package Search By ID
Dim lobjPackage As Package = lobjInteractzAX.GetPackageByID(lstrID) . If lobjPackage Is Nothing Then ‘place error processing here End If

Searching for Packages

To search for all packages, use the interface’s GetAllPackages method. You should first call the SetProject method to set the Aconex Project for which you are to search for packages.

Example - Search for All Packages
Dim lcolPackages As PackageCollection = lobjInteractzAX.GetAllPackages()

You can also search for packages by state (i.e. OPEN, CLOSED or DEACTIVATED) you can use the GetOpenPackages, GetClosedPackages or GetDeactivatedPackages methods.

Example - Search for All Packages
Dim lcolOpenPackages As PackageCollection = lobjInteractzAX.GetOpenPackages()

Advanced Package Search

To search for packages using search criteria use the interface’s GetPackages method. Before calling this method you must first initialize and add the required search criteria. This ensures that criteria from any previous searches are cleared.

Example - Initialize Search Criteria
lobjInteractzAX.InitializePackageManagementSearchCriteria()

The available search criteria fields are Name, Title, Revision, Transmitted, State, Package Type ID, Updates Available Status as well as any Project Field that has been inherited from a package's Package Type. You can add Project Field cirtieria by calling the SetPropjectFieldSearchCriteria method.

You can call the SetPropjectFieldSearchCriteria method as many times as you like to build up your search criteria. The following example shows how to search for all packages with a package name beginning with PKG and having a comment containing the text Mechanical.

Example - Using Package Search Criteria
lobjInteractzAX.InitializePackageManagementSearchCriteria() lobjInteractzAX.PackageManagementSearchCriteria.Name = "PKG*" lobjInteractzAX.PackageManagementSearchCriteria.SetPropjectFieldSearchCriteria("Comment", "*Mechanical*") Dim lcolPackages As PackageCollection = lobjInteractzAX.GetPackages()

Paged Package Results

When using the GetPackages method it is possible to return a specific page of packages from a large result set.

To do this you must set the search criteria’s SearchType property to PAGED and the PageNumber property of the page of tasks you want returned.

Example - Paged Package Results
lobjInteractzAX. InitializePackageManagementSearchCriteria () lobjInteractzAX.PackageManagementSearchCriteria.SearchType = SearchType.PAGED lobjInteractzAX.PackageManagementSearchCriteria.PageSize = 50 lobjInteractzAX.PackageManagementSearchCriteria.PageNumber = 1

Note: The GetPackages method sets a maximum page size of 100. Setting the PageSize property to a value greater than 100 will still only result in a maximum of 100 results per page when searching for packages.

Creating Packages

To create a new package use both the InitiazlizeNewPackage and CreatePackage methods.

The InitiazlizeNewPackage method initializes as new Package object from a PackageType object, setiing the packages project fields from the project type. Values for the package's project fields can then be set using the Package object's SetProjectFieldValue method. When calling the SetProjectFieldValue method you can pass either the ID, Label a Fully Qualified Name value as the identifier.

Example - Create Package
Dim lobjPackage As Package = lobjInteractzAX.InitializeNewPackage("API-PKG-001", "A", "API Test Package", lobjPackageType) lobjPackage.SetProjectFieldValue("API Test Boolean", True) lobjPackage.SetProjectFieldValue("API Test Date", Now) lobjPackage.SetProjectFieldValue("API Test Number", 101) lobjInteractzAX.CreatePackage(lobjPackage)

Managing Package Collaborators

To return collaborators for a package use the GetPackageCollaborators method. With this method you can return ALL, ADMINISTRATOR or EDITOR collaborators by setting the required enumPackageCollaboratorRoleSearch enumerator.

Example - Get Package Collaborators
Dim lcolEditors As CollaboratorCollection = lobjInteractzAX.GetPackageCollaborators(lstrPackageID, enumPackageCollaboratorRoleSearch.EDITOR)

You can add a collaborator to a package using the AddPackageCollaborator method.

Example - Add a Package Collaborator as an Editor
Dim lobjUser As User = lobjInteractzAX.GetUserByName("Joe Bloggs", enumUserSearchScope.OrganizationAndProject) Dim lobjPackage As Package = lobjInteractzAX.GetPackageByName("PKG-001") . If lobjUser IsNot Nothing AndAlso lobjPackage IsNot Nothing Then lobjInteractzAX.AddPackageCollaborator(lobjPackage, lobjUser, enumPackageCollaboratorRole.EDITOR) End If

You can update a package collaborators type (i.e. Administrator or Editor) using the UpdatePackageCollaborator method. Note that a Package must have at least one administrator.

Example - Update a Package Collaborator
lobjInteractzAX.UpdatePackageCollaborator(lobjPackage, lobjUser, enumPackageCollaboratorRole.ADMINISTRATOR)

You can remove a package collaborator using the RemovePackageCollaborator method. Note that a Package must have at least one administrator.

Example - Update a Package Collaborator
lobjInteractzAX.RemovePackageCollaborator(lobjPackage, lobjUser)

Managing Package Documents

To add documents to a package use the AddPackageDocuments method. This method accepts either a Document collection OR a HashSet of document IDs as for each document that is to be added to the package. This method is cumulative in nature, meaning that you can progressively call the method as many times as required to add the required documents to a package.

Example - Adding Package Documents
lobjInteractzAX.AddPackageDocuments(lobjPackage, lcolDocuments)

To remove documents from a package user the RemovePackageDocuments method. This method accepts a HashSet of document IDs as for each document that is to be removed from the package. This method is cumulative in nature, meaning that you can progressively call the method as many times as required to remove the required documents to a package.

Example - Removing Package Documents
lobjInteractzAX.RemovePackageDocuments(lobjPackage, lcolDocuments)

To get the documents attached to a package use the InitializePackageDocumentIDs method. This method will populate the DocumentIDs property of the Package object.

Example - Get Package Documents
lobjInteractzAX.InitializePackageDocumentIDs(lobjPackage)

Managing Package Mails

To add mail to a package use the AddPackageMail or AddPackageMails methods.

To add a single mail to a package then use the AddPackageMail method, passing either a Mail ID or a Mail object.

To add multiple mails to a package then use the AddPackageMails method, passing either a HastSet Mail IDs or a collection Mail objects.

Example - Adding Package Mail
lobjInteractzAX.AddPackageMail(lstrPackageID, lobjMail)
Example - Adding Package Mails
lobjInteractzAX.AddPackageMails(lobjPackage, lcolMail)

To remove mail from a package use the RemovePackageMail or RemovePackageMails methods.

To remove a single mail from a package then use the RemovePackageMail method, passing either a Mail ID or a Mail object.

To remove multiple mails from a package then use the RemovePackageMails method, passing either a HastSet Mail IDs or a collection Mail objects.

Example - Removing Package Mail
lobjInteractzAX.RemovePackageMail(lobjPackage.ID, lobjMail)
Example - Removing Package Mails
lobjInteractzAX.RemovePackageMails(lobjPackage.ID, lcolMail)

To get package mail use the GetPackageMail method.

Example - Get Package Mails
Dim lcolMail as MailCollection = lobjInteractzAX.GetPackageMails(lobjPackage.ID)

Managing Package Attachments

To get file attachments for a package use the GetPackageAttachments method.

Example - Get Package Attachments
Dim lcolPackageAttachments As PackageAttachmentCollection = lobjInteractzAX.GetPackageAttachments(lobjPackage.ID)

To download package file attachements use the DownloadPackageAttachments method.

Example - Download Package Attachments
Dim lobjTargetDir As New DirectoryInfo("C:\Temp\Aconex Package Downloads") lobjInteractzAX.DownloadPackageAttachments(lobjTargetDir, lobjPackage.ID)

Get Package Event Log

To get a log of events for a package use the GetPackageEventLog method. This method can be called withor without a date range. If a date range is not specified the complete ebent log for the Package will be returned.

Example - Get Package Event Log
Dim lobjPackageEventLog As PackageEventLog = lobjInteractzAX.GetPackageEventLog(lobjPackage.ID, ldatEventStartDate ,ldatEventEndDate)

Get Package Distribution List

To get the distribution list for a package use the GetPackageDistributionList method. This method can return either a collection of User objects OR a HashSet of User IDs.

Example - Get Package Distribution List
Dim lcolUsers As UserCollection = lobjInteractzAX.GetPackageDistributionList(lobjPackage.ID)

WORKING WITH PROJECT FIELDS

Searching for Project Fields

To search for a single project field, use the interface’s GetProjectFieldByID or GetProjectFieldByLabel methods.

Example - Project Field Search By Label
Dim lobjProjectField As ProjectField = lobjInteractzAX.GetProjectFieldByLabel("Field 1") . If lobjProjectField Is Nothing Then ‘place error processing here End If
Example - Project Field Search By ID
Dim lobjProjectField As ProjectField = lobjInteractzAX.GetProjectFieldByID(lstrProjectFieldID) . If lobjProjectField Is Nothing Then ‘place error processing here End If

To get all project fields use the GetProjectFields method.

Example - Get All Project Fields
lobjInteractzAX.SetProject(lstrProjectName) Dim lcolProjectFields As ProjectFieldCollection = lobjInteractzAX.GetProjectFields()

Disabling Project Fields

To disable a project field use the DisableProjectField method. This method can be called by passing a ProjectField object or a Project Field ID.

Example - Disable a Project Field
lobjInteractzAX.DisableProjectField(lobjProjectField)

Enabling Project Fields

To enable a project field use the EnableProjectField method. This method can be called by passing a ProjectField object or a Project Field ID.

Example - Enable a Project Field
lobjInteractzAX.EnableProjectField(lobjProjectField)

Creating and Updating Project Fields

To create a project fields use the CreateProjectField method. This method accepts a ProjectField object with correctly initialized Label, Type and HintText properties, along with a valid ProjectFieldSpecification object.

After a ProjectField object is initialized, call its Validate method to ensure that its properties amd specification have been initialized correctly for the Type of project field being created.

If the project field is of type Single Select or Multi-Select then valid values can be added to the ProjectFieldSpecification using its AddOption method.

Example - Creating a Project Field
'Initialize a new Project Field Dim lobjProjectField as New ProjectField(lstrLabel, enumProjectFieldType.type_multiSelect, lstrHintText, enumProjectFieldStatus.Enabled) 'Initialize a new specification and add to the project field Dim lobjSpecification As ProjectFieldSpecification = New ProjectFieldSpecification(lintMinLength, lintMaxLength, "", "", enumSortDirection.ASC) lobjSpecification.AddOption(New ProjectFieldOption(lstrCode1, lstrValue1) lobjSpecification.AddOption(New ProjectFieldOption(lstrCode2, lstrValue2) lobjProjectField.SetSpecification(lobjSpecification) 'Validate the project field and create if valid Dim lcolErrors As New ArrayList If lobjProjectField.Validate(lcolErrors) Then lobjInteractzAX.CreateProjectField(lobjProjectField) else 'Handle errors End With

To update a project field's properties and/or specification use the UpdateProjectField method.

Example - Updating a Project Field
lobjInteractzAX.UpdateProjectField(lobjProjectField)

WORKING WITH TASKS

Interactz AX provides a simple approach for searching for outstanding tasks for a specified project and task type using the GetTasks method.

Searching for Tasks By Type

To search for tasks for a project, use the GetTasks method. Before calling this method, you must first initialize the search criteria and set the SearchType property to FULL.

Example - Searching for Tasks
lobjInteractzAX.InitializeWorkflowSearchCriteria() lobjInteractzAX.WorkflowSearchCriteria.SearchType = enumSearchType.FULL Dim lcolTasks As TasksCollection = lobjInteractzAX.GetTasks(enumTaskType.mail_unreadto)

When calling the GetTasks method you must specify which task type you are searching. The available task types have been enumerated for ease of use. The following lists the task types available: -

  • documents_supplierdocssubmissionrequired
  • documents_supplierdocssubmitted
  • mail_unreadto
  • mail_unreadcc
  • mail_responserequired_OUTSTANDING
  • mail_responserequired_OVERDUE
  • mail_awaitingapproval
  • transmittals_unreadtransmittalto
  • transmittals_unreadtransmittalcc
  • transmittals_responserequiredtransmittal_OUTSTANDING
  • transmittals_responserequiredtransmittal_OVERDUE
  • transmittals_unreadshare
  • transmittals_awaitingreview

Paged Task Results

When using the GetTasks method it is possible to return a specific page of tasks from a large result set.

To do this you must set the search criteria’s SearchType property to PAGED and the PageNumber property of the page of tasks you want returned.

lobjInteractzAX. InitializeTasksSearchCriteria () lobjInteractzAX.TasksSearchCriteria.SearchType = SearchType.PAGED lobjInteractzAX.TasksSearchCriteria.PageNumber = 1

Note: The GetTasks method sets a fixed page size of 25. Setting the PageSize property has no effect when searching for tasks.

Returning Task Counts

If you wish to return a count of tasks for a specified project, then use the GetTaskCounts method. This method returns a total count of tasks along with counts by task feature (i.e., documents, mail, transmittals) and task type.

Dim lobjTaskCounts As TaskCounts = lobjInteractzAX.GetTaskCounts()

Similarly, if you wish to return a count of tasks for ALL projects, then use the GetTaskCountsAllProjects method.

Dim lobjTaskCounts As TaskCounts = lobjInteractzAX.GetTaskCountsAllProjects()

WORKING WITH WORKFLOWS

Interactz AX provides a simple approach for searching for project workflows. You can search for all workflows for a project, search for workflows created before or after a specified date or use predefined searches.

Searching for All Workflows

To search for all workflows for a project, use the GetWorkflows method. Before calling this method, you must first initialize the search criteria and set the SearchType property to FULL.

Example - Get All Workflows
lobjInteractzAX.InitializeWorkflowSearchCriteria() lobjInteractzAX.WorkflowSearchCriteria.SearchType = enumSearchType.FULL Dim lcolWorkflows As WorkflowCollection = lobjInteractzAX.GetWorkflows()

Paged Workflow Results

When using the GetWorkflows method it is possible to return a specific page of workflow items from a large result set.

To do this you must set the search criteria’s SearchType property to PAGED, the PageSize property to the number of workflow items per page, and the PageNumber property of the page of workflow items you want returned.

Example - Paged Workflow Results
lobjInteractzAX.InitializeWorkflowSearchCriteria () lobjInteractzAX.WorkflowSearchCriteria.SearchType = SearchType.PAGED lobjInteractzAX.WorkflowSearchCriteria.PageSize = 25 lobjInteractzAX.WorkflowSearchCriteria.PageNumber = 1

The PageSize property has a maximum value of 500 and must be divisible by 25.

Advanced Workflow Search

To search for workflow using search criteria use the GetWorkflows method. Before calling this method, you must first initialize and add the required search criteria. This ensures that criteria from any previous searches are cleared.

Example - Initialize Workflow Search Criteria
lobjInteractzAX. InitializeWorkflowSearchCriteria()

The available search criteria fields have been enumerated for ease of use. Use the AddSearchField method to specify your search criteria, passing in the enumerated field name and search value.

There are currently only two search fields available when searching for workflow items and these are updated_before and updated_after.

The updated_before search field allows a date time to be set, specifying the earliest modification to be included in the returned results. That is, only workflows that have changed at or prior to this time will be included in the results.

The updated_after search field allows a date time to be set, specifying the latest modification to be included in the returned results. That is, only workflows that have changed at or after this time will be included in the response.

Example - Searching for Workflows
lobjInteractzAX.InitializeWorkflowSearchCriteria() . lobjInteractzAX.WorkflowSearchCriteria.AddSearchField(AconexWorkflowEnumerators.enumSearchField.updated_after, "2022-07-01T03:00:00Z") . Dim lcolMWorkflows As WorkflowCollection = lobjInteractzAX.GetWorkflows()

Predefined Workflow Search

The following methods can be used to search for workflows using preconfigured Aconex searches.

  • GetWorkflowsInitiatedByUserOrganization
  • GetWorkflowsNotInitiatedBuUserOranization
  • GetWorkflowsAssignedToUserOrganization
  • GetWorkflowsNotAssignedToUserOrganization

They can be used to return full or paged results, and use the updated_before and updated_after search criteria as previously described.

Example - Predefined Workflow Search
lobjInteractzAX.InitializeWorkflowSearchCriteria() lobjInteractzAX.WorkflowSearchCriteria.SearchType = enumSearchType.FULL Dim lcolWorkflows As WorkflowCollection = lobjInteractzAX.GetWorkflowsInitiatedByUserOrganization()

WORKING WITH USER ROLES

Getting User Roles

You can get available roles by using the GetRoles, GetOrganizationRoles or GetProjectRoles methods.

Example - Get Project Roles
lobjInteractzAX.SetProject(lstrProjectName) Dim lcolUserRoles As RoleCollection = lobjInteractzAX.GetRoles()

You can get a specific role by using the GetRoleByID, GetOrganizationRoleByID, GetProjectRoleByID, GetRoleByName, GetOrganizationRoleByName or GetProjectRoleByName methods.

Example - Get Project Role By Name
lobjInteractzAX.SetProject(lstrProjectName) Dim lobjRole As Role = lobjInteractzAX.GetProjectRoleByName(lstrRoleName)

The functionallity that a role has been granted or denied access to is stored in a collection of SecuredAsset objects. The Role object, returned when getting roles from Aconex, has a SecuredAssets property which is initially not populated, To initialize the SecuredAssets property use the InitializeSecuredAssetsForRole method.

Example - Initialize a Role's Secured Assets
lobjInteractzAX.InitializeSecuredAssetsForRole(lobjRole)

To get users that are assigned to roles use the GetRoleUsers, GetOrganizationRoleUsers or GetProjectRoleUsers methods. You can call these methods by passing either a Role object or a Role Name.

Example - Get a Project Role's Users
Dim lcolUsers As UserCollection = lobjInteractzAX.GetProjectRoleUsers(lobjRole)

To get roles to which a user has been assigned use the GetUserRoles, GetUserOrganizationRoles or GetUserProjectRoles methods.

Example - Get a Project Role's Users
Dim lcolRoles As RoleCollection = mobjInteractzAX.GetUserProjectRoles(lobjUser)

Creating User Roles

To create a new role use either the CreateOrganizationRole or CreateProjectRole method.

When a new role is created, its SecuredAssets property will be initialized to the defaults set by Aconex. You can modify the secured assets to define the functional requirements for the the role. To grant or deny a role access to secured asset use the SetSecuredAsset method on the Role object, and then call the interface's UpdateRoleSecuredAssets method. The available secured assests have been enumerated.

Example - Create a Project Role
lobjInteractzAX.CreateProjectRole("My Project Doc Controllers", True) . lobjRole.SetSecuredAsset(enumSecuredAssetName.VIEW_TRANSMITTAL_HISTORY, enumSecuredAssetPermission.Grant) lobjRole.SetSecuredAsset(enumSecuredAssetName.CAN_EDIT_MARKUPS_IN_DOC_REGISTER, enumSecuredAssetPermission.Grant) lobjInteractzAX.UpdateRoleSecuredAssets(lobjRole)

Assigning Roles to Users

To assign a user to a role or multiple roles use the AssignUserToRole methods. Pass either a single Role object or a collecion of Role objects to this method.

Example - Assign a User to a Role
lobjInteractzAX.AssignUserToRole(lobjUser, lobjRole)

Similarly, to unassign a user from a role or multiple roles use the UnassignUserFromRole methods. Pass either a single Role object or a collecion of Role objects to this method.

Example - Unassign a User to a Role
lobjInteractzAX.UnassignUserFromRole(lobjUser, lobjRole)

DIRECTORY API METHODS

GetCurrentOrganization Description

This method returns an Organization object represneting the organization of the active user (i.e. the user currently logged into Aconex).

Signatures
GetCurrentOrganization() As Organization
Parameters

None.

GetCurrentUser Description

This method returns a User object represneting the active user (i.e. the user currently logged into Aconex).

Signatures
GetCurrentUser() As User
Parameters

None.

GetUserByID Description

This method queries and returns a User object for the specified user unique identifier.

Signatures
GetUserByID(ByVal UserID As String, ByVal UserSearchScope As enumUserSearchScope) As User
Parameters
UserIDString The unique identifier of the user to return.
UserSearchScopeenum?????? This is an enumerated value to specify the scope used for searching for the user. See the Enumerators for a list of possible values.
GetUserByName Description

This method queries and returns a User object for the specified user name.

Signatures
GetUserByName(ByVal UserName As String, ByVal UserSearchScope As enumUserSearchScope) As User
Parameters
UserNameString The name of the user to return.
UserSearchScopeenumUserSearchScope This is an enumerated value to specify the scope used for searching for the user. See the Enumerators for a list of possible values.
GetUsers Description

This method uses the Directory Search Criteria to query and return a collection of users from Aconex. The Directory Search Criteria should be initialized and set prior to calling this method.

Signatures
GetUsers(ByVal UserSearchScope As enumUserSearchScope) As UserCollection
Parameters
UserSearchScopeenumUserSearchScope This is an enumerated value to specify the scope used for searching for the user. See the Enumerators for a list of possible values.
InitializeDirectorySearchCriteria Description

Initializes the Directory Search Criteria in preparation for calls to the [key]GetUsers[/key] method.

Signatures
InitializeDirectorySearchCriteria()
Parameters

None.

DOCUMENT API METHODS

DownloadDocument Description

This method downloads a document file from Aconex to the specified filename and directory. Requires a valid Aconex document identifier, therefore the document should first be fetched using either the [key]GetDocument[/key] or [key]GetDocuments[/key] methods. Updates the file reference on the input Document object.

Signatures
DownloadDocument(ByVal TargetDir As DirectoryInfo, ByVal Filename As String, ByRef Document As Document) DownloadDocument(ByVal DocumentID As String, ByVal TargetDir As DirectoryInfo, ByVal Filename As String, ByRef Document As Document)
Parameters
DocumentDocument A Document object representing the document to be downloaded.
DocumentIDString The unique identifier of the document to be downloaded.
FilenameString The name of the file you wich to download the document file to.
TargetDirDirectoryInfo A DirectoryInfo object rpresenting the folder to which the document's file should be downloaded to.
DownloadDocumentToMemory Description

This method allows a document file to be downloaded from Aconex into a memory stream only, i.e., does not have to be saved to disk. Requires a valid Aconex Document Identifier, therefore the document should first be fetched using either the [key]GetDocument[/key] or [key]GetDocuments[/key] methods. Updates the file reference on the input Document object.

Signatures
DownloadDocumentToMemory(ByVal Document As Document, ByRef MemoryStream As MemoryStream) DownloadDocumentToMemory(ByVal DocumentID As String, ByRef MemoryStream As MemoryStream)
Parameters
DocumentDocument A Document object representing the document to be downloaded.
DocumentIDString The unique identifier of the document to be downloaded.
MemoryStreamMemoryStream A MenoryStream object used to download the document to.
GetDocument Description

This method queries and returns a single document from Aconex. If a revision is not specified, then the current revision of the document is returned. If the specified document is not found, then the method returns nothing. Note that only document metadata is returned.

Signatures
GetDocument(ByVal DocumentNumber As String) As Document GetDocument(ByVal DocumentNumber As String, ByVal Revision As String) As Document
Parameters
DocumentNumberString The number of the document to return.
RevisionString The revision of the document to return.
GetDocumentByID Description

This method queries and returns a single document from Aconex using a document unique identifier. If the specified document is not found, then the method returns nothing. Note that only document metadata is returned.

Signatures
GetDocumentByID(ByVal DocumentID As String) As Document
Parameters
DocumentIDString The unique identifier of the document to return.
GetDocumentCount Description

This method uses the Document Search Criteria to query and return a count of documents in Aconex. The Document Search Criteria should be initialized and set prior to calling this method.

Signatures
GetDocumentCount() As Long
Parameters

None.

GetDocumentEventLog Description

This method returns the complete event log for a specified document.

Signatures
GetDocumentEventLog(ByVal DocumentID As String) As DocumentEventLog
Parameters
DocumentIDString The unique identifier of the document for which the event log is to to be returned.
GetDocuments Description

This method uses the Document Search Criteria to query and return a collection of documents from Aconex. Note that only document metadata is returned. The Document Search Criteria should be initialized and set prior to calling this method. Only document metadata corresponding to the Return Fields specified on the Search Criteria is returned.

Signatures
GetDocuments() As DocumentCollection
Parameters

None.

GetDocumentSchema Description

This method returns the document schema in XML format for the current project. The schema describes the fields available for executing a document search operation and describes the fields required to be able to register a new document onto a project.

Signatures
GetDocumentSchema() As XmlDocument
Parameters

None.

GetDocumentsLastUpdated Description

This method queries and returns a collection of documents that have been updated since the specified date.

Signatures
GetDocumentsLastUpdated(ByVal LastUpdateType As enumLastUpdateType, ByVal Since As Date, ByVal ReturnDocumentIdsOnly As Boolean) As DocumentCollection
Parameters
LastUpdateTypeenumLastUpdateType This is an enumerated value to specify the last update type used for searching for documents. See the Enumerators for a list of possible values.
ReturnDocumentIdsOnlyBoolean A boolean indicator used to specify whether to return only document ids (i.e. no other document metadata).
SinceDate The date since documents were last updated.
InitializeDocSearchCriteria Description

This method initializes the Search Criteria for Document searches. Clears search criteria and sets the following properties to default values.

  • Search Type = NUMBER_LIMITED
  • Results Size = 250
  • Page Size = 25
  • Page Number = 1
  • Sort Direction = Ascending
Signatures
InitializeDocSearchCriteria()
Parameters

None.

InitializeNewDocument Description

This method instantiates and initializes a new instance of the Document Class. The Aconex document schema for the current project is queried to determine what properties are to be added to the document’s Properties collection. Only the document’s [prop]DocumentNumber[/prop] and [prop]Revision[/prop] properties are set.

Signatures
InitializeNewDocument(ByVal DocumentNumber As String, ByVal Revision As String) As Document InitializeNewDocument(ByVal DocumentNumber As String, ByVal Revision As String, ByVal FileInfo As System.IO.FileInfo) As Document InitializeNewDocument(ByVal DocumentNumber As String, ByVal Revision As String, ByVal Filename As String, ByRef FileBuffer As Byte()) As Document
Parameters
DocumentNumberString The number of the document to be created.
FileBufferByte( A byte array for the file to ab attached to the new document.
FileInfoSystem.IO.FileInfo A FileInfo object rpresenting the file attached to the new document.
FilenameString The name of the file to be attached to the document.
RevisionString The revision of the document to be created.
IsRevisionCurrent Description

This method returns a boolean value indicating whether the specified document revision is current. Returns false if the document revision is superseded or cannot be found.

Signatures
IsRevisionCurrent(ByVal DocumentNumber As String, ByVal Revision As String) As Boolean
Parameters
DocumentNumberString The number of the document to assess.
RevisionString The revision of the document to assess.
RegisterDocument Description

This method registers a document in Aconex.

Signatures
RegisterDocument(ByRef Document As Document)
Parameters
DocumentDocument A Document object representing the document to be registered.
SupersedeDocument Description

This method supersedes a document revision in Aconex.

Signatures
SupersedeDocument(ByRef Document As Document)
Parameters
DocumentDocument A Document object representing the document to be superseded.
TemporaryFileUpload Description

This method uploads a file to the temporary file store against an Aconex project.

Signatures
TemporaryFileUpload(ByRef Document As Document)
Parameters
DocumentDocument A Document object representing the document for which the remporary file is to be uploaded.

MAIL API METHODS

CreateMail Description

This method creates a new mail item in Aconex.

Signatures
CreateMail(ByRef Mail As Mail)
Parameters
MailMail A Mail object representing the mail to be created.
DownloadMailAttachments Description

This method downloads all file attachments for a mail item from Aconex to the specified directory. Requires a valid Mail object, therefore the mail item should first be fetched using either the [key]GetMailByID[/key] or [key]GetMailByNumber[/key] methods.

Marked up attachments are returned in PDF format. Attachments without markup are retrieved in their original format.

This method will also download file from document attachments to the email.

Signatures
DownloadMailAttachments(ByVal TargetDir As DirectoryInfo, ByRef Mail As Mail, ByVal MarkedUp As Boolean, ByVal IncludeAttachedDocumentFile As Boolean)
Parameters
IncludeAttachedDocumentFileBoolean A boolean indicator used to specify whether to also download files for documents attached to the mail.
MailMail A Mail object representing the mail for which attachments are to be downloaded.
MarkedUpBoolean A boolean indicating whether the marked-up version of the file is to be wonload. If the attachment is a file containing markups, the marked-up version can be downloaded by setting this to True.
TargetDirDirectoryInfo A DirectoryInfo object rpresenting the folder to which the files of mail attachments should be downloaded to.
GetMail Description

This method uses the Mail Search Criteria to query and return a collection of mail items from Aconex. Note that only mail metadata is returned. The Mail Search Criteria should be initialized and set prior to calling this method. Only mail metadata corresponding to the Return Fields specified on the Search Criteria is returned.

Signatures
GetMail() As MailCollection
Parameters

None.

GetMailByID Description

This method queries and returns a single mail item from Aconex. If the specified mail item is not found, then the method returns nothing. Note that only mail metadata is returned.

Signatures
GetMailByID(ByVal MailID As String) As Mail GetMailByID(ByVal MailID As String, ByVal ReturnAllFields As Boolean) As Mail
Parameters
MailIDString The unique identifier of the mail to return.
ReturnAllFieldsBoolean A boolean indicator used to specify whether to return all mail return fields (i.e. metadata).
GetMailByNumber Description

This method queries and returns a single mail item from Aconex. If the specified mail item is not found, then the method returns nothing. Note that only mail metadata is returned.

Signatures
GetMailByNumber(ByVal MailNumber As String) As Mail GetMailByNumber(ByVal MailNumber As String, ByVal ReturnAllFields As Boolean) As Mail
Parameters
MailNumberString The number of the mail to return.
ReturnAllFieldsBoolean A boolean indicator used to specify whether to return all mail return fields (i.e. metadata).
GetMailCount Description

This method uses the Mail Search Criteria to query and return a count of mail items in Aconex. The Mail Search Criteria should be initialized and set prior to calling this method.

Signatures
GetMailCount() As Long
Parameters

None.

GetMailCreationSchema Description

This method returns the mail schema used to create new mail in the specified project. It provides information about fields used to create a new mail.

Signatures
GetMailCreationSchema() As XmlDocument
Parameters

None.

GetMailFormFieldSchema Description

This method returns the mail [b]forms fields[/b] schema for the specified project's mail type.

Signatures
GetMailFormFieldSchema(ByVal MailTypeID As String) As XmlDocument
Parameters
MailTypeIDString The unique identifier of the mail type for which the schema is to be returned.
GetMailForwardSchema Description

This method returns the mail [b]forward[/b] schema for the specified project's mail type.

Signatures
GetMailForwardSchema(ByVal MailID As String) As XmlDocument
Parameters
MailIDString The unique identifier of the mail for which the schema is to be returned.
GetMailLastUpdated Description

This method queries and returns a collection of mail items that have been updated since the specified date.

Signatures
GetMailLastUpdated(ByVal Mailbox As enumMailbox, ByVal Since As Date) As MailCollection GetMailLastUpdated(ByVal Mailbox As enumMailbox, ByVal Since As Date, ByVal ReturnAllFields As Boolean) As MailCollection
Parameters
MailboxenumMailbox This is an enumerated value to specify the mailbox used for searching for mail. See the Enumerators for a list of possible values.
ReturnAllFieldsBoolean A boolean indicator used to specify whether to return all mail return fields (i.e. metadata).
SinceDate The date since mail items were last updated.
GetMailReplySchema Description

This method returns the mail [b]reply[/b] schema for the specified project's mail type.

Signatures
GetMailReplySchema(ByVal MailID As String) As XmlDocument
Parameters
MailIDString The unique identifier of the mail for which the schema is to be returned.
GetMailResrictedFieldSchema Description

This method returns the mail [b]restricted field[/b] schema for the specified project's mail type.

Signatures
GetMailResrictedFieldSchema(ByVal OrganizationID As String, ByVal MailTypeID As String) As XmlDocument
Parameters
MailTypeIDString The unique identifier of the mail type for which the schema is to be returned.
OrganizationIDString The unique identifier of the mail type for which the schema is to be returned.
GetMailSearchSchema Description

This method returns the mail search schema for the specified project's mail. It provides information about performing a mail search.

Signatures
GetMailSearchSchema() As XmlDocument
Parameters

None.

GetMailThreadByID Description

This method queries and returns a mail thread from Aconex.

Signatures
GetMailThreadByID(ByVal ThreadID As String) As MailThread
Parameters
ThreadIDString The unique identifier of the mail thread to return.
GetMailThreadByMailID Description

This method queries and returns a mail thread for a specified mail item from Aconex.

Signatures
GetMailThreadByMailID(ByVal MailID As String) As MailThread
Parameters
MailIDString The unique identifier of the mail for which the mail thread is to to be returned.
GetMailThreadByMailNumber Description

This method queries and returns a mail thread for a specified mail item from Aconex.

Signatures
GetMailThreadByMailNumber(ByVal MailNumber As String) As MailThread
Parameters
MailNumberString The mail number of the mail thread to be returned.
GetMailTypes Description

This method returns a list of PropertyValue objects (i.e., Identifier / Value) which represent the Mail Type [prop]ID[/prop] and [prop]Name[/prop] for all mail types used by the current project.

Signatures
GetMailTypes() As List(Of PropertyValue)
Parameters

None.

InitializeMailSearchCriteria Description

This method initializes the Search Criteria for mail searches. Clears search criteria and sets the following properties to default values.

  • Search Type = NUMBER_LIMITED
  • Results Size = 250
  • Page Size = 25
  • Page Number = 1
  • Sort Direction = Ascending
Signatures
InitializeMailSearchCriteria()
Parameters

None.

InitializeNewMail Description

This method is used to create or register mail in Aconex.

Signatures
InitializeNewMail(ByVal MailNumber As String, ByVal MailType As String, ByVal MailCreationType As enumMailCreationType) As Mail
Parameters
MailCreationTypeenumMailCreationType This is an enumerated value to specify the mail type for the mail. See the Enumerators for a list of possible values.
MailNumberString The number of the mail to be registered or created.
MailTypeString The mail type of the mail to be registered or created.
RegisterMail Description

This method registers a new mail item on behalf of another user.

Signatures
RegisterMail(ByRef Mail As Mail)
Parameters
MailMail A Mail object representing the mail to be registered.

PACKAGE MANAGEMENT API METHODS

AddPackageCollaborator Description

This method is used to add a user as a collaborator, either an administrator or editor, for the package. The active user must be a package administrator.

Signatures
AddPackageCollaborator(ByVal Package As Package, ByVal User As User, ByVal Role As enumPackageCollaboratorRole) AddPackageCollaborator(ByVal Package As Package, ByVal UserID As String, ByVal Role As enumPackageCollaboratorRole) AddPackageCollaborator(ByVal PackageID As String, ByVal UserID As String, ByVal Role As enumPackageCollaboratorRole)
Parameters
PackagePackage A Package object representing the package to which the collaborator is to be added.
PackageIDString The unique identifier of the package for which the collaborator is to be added.
RoleenumPackageCollaboratorRole This is an enumerated value to specify the role for the collaborator. See the Enumerators for a list of possible values.
UserUser A User object representing the user to add as a collaborator.
UserIDString The unique identifier of the user to be added as a package collaborator.
AddPackageDocuments Description

This method is used to add a set of documents to a package.

[b]Note:[/b] Whilst the Aconex API expects the complete set of documents to be included, the Interactz AX interface enables any number of documents to added at a time.

This method can therefore be called as many times as required to add a complete set of documents to the package. However, when the number of documents already attached to the package is large, each subsequent call to this method will have a peformance penalty. Therefore it is recommened not to add small document sets to a package with a large number of documents.

Signatures
AddPackageDocuments(ByRef Package As Package, ByVal Documents As DocumentCollection) AddPackageDocuments(ByRef Package As Package, ByVal DocumentIDs As HashSet(Of String))
Parameters
DocumentIDsHashSet[Of This is a set of document unique identifiers that are to be added to the package.
DocumentsDocumentCollection A collection of Document objects representing documents to be added to the package.
PackagePackage A Package object representing the package from which the documents are to be added.
AddPackageMail Description

This method is used to add a mail item to a specified package.

Signatures
AddPackageMail(ByVal PackageID As String, ByVal Mail As Mail) AddPackageMail(ByVal PackageID As String, ByVal MailID As String)
Parameters
MailMail A Mail object representing the mail to be added to the package.
MailIDString The unique identifier of the mail to added to the package.
PackageIDString The unique identifier of the package for which mails are to be added.
AddPackageMails Description

This method is used to add a set of mail items to a specified package.

Signatures
AddPackageMails(ByVal PackageID As String, ByVal Mails As MailCollection) AddPackageMails(ByVal PackageID As String, ByVal MailIDs As HashSet(Of String))
Parameters
MailIDsHashSet[Of This is a set of mail unique identifiers that are to be removed from the package.
MailsMailCollection A collection of Mail objects representing mail items to be added to the package.
PackageIDString The unique identifier of the package for which mails are to be added.
CreatePackage Description

This method creates a package in Aconex.

Signatures
CreatePackage(ByRef Package As Package)
Parameters
PackagePackage A Package object representing the package to be created.
DownloadPackageAttachments Description

This method downloads all file attachments for a package from Aconex to the specified directory. Requires a valid [b]Package[/b] object or package ID.

Signatures
DownloadPackageAttachments(ByVal TargetDir As DirectoryInfo, ByVal PackageID As String) DownloadPackageAttachments(ByVal TargetDir As DirectoryInfo, ByVal Package As Package)
Parameters
PackagePackage A Package object representing the package for which the attachments are to be downloaded.
PackageIDString The unique identifier of the package to be downloaded.
TargetDirDirectoryInfo A DirectoryInfo object rpresenting the folder to which the files of package attachments should be downloaded to.
GetAllPackages Description

This method queries and returns a collection of ALL Package objects.

Signatures
GetAllPackages() As PackageCollection
Parameters

None.

GetClosedPackages Description

This method queries and returns a collection of Closed Package objects.

Signatures
GetClosedPackages() As PackageCollection
Parameters

None.

GetDeactivatedPackages Description

This method queries and returns a collection of deactivated Package objects.

Signatures
GetDeactivatedPackages() As PackageCollection
Parameters

None.

GetOpenPackages Description

This method queries and returns a collection of Open Package objects.

Signatures
GetOpenPackages() As PackageCollection
Parameters

None.

GetPackageAttachments Description

This method gets all file attachments for a package from Aconex to the specified directory. Requires a valid [b]Package[/b] object or package ID.

Signatures
GetPackageAttachments(ByVal PackageID As String) As PackageAttachmentCollection
Parameters
PackageIDString The unique identifier of the package for which attachments are to be returned.
GetPackageByID Description

This method queries and returns a Package object for the specified unique identifier.

Signatures
GetPackageByID(ByVal PackageID As String) As Package
Parameters
PackageIDString The unique identifier of the package to return.
GetPackageByName Description

This method queries and returns a Package object for the specified package name.

Signatures
GetPackageByName(ByVal pstPackageName As String) As Package
Parameters
pstPackageNameString The name of the package to return.
GetPackageCollaborators Description

This method is used to return a collection of Collaborator objects for specified package.

Signatures
GetPackageCollaborators(ByVal Package As Package, ByVal Role As enumPackageCollaboratorRoleSearch) As CollaboratorCollection GetPackageCollaborators(ByVal PackageID As String, ByVal Role As enumPackageCollaboratorRoleSearch) As CollaboratorCollection
Parameters
PackagePackage A Package object representing the package for which the collaborators are to be returned.
PackageIDString The unique identifier of the package for which collaborators are to be returned.
RoleenumPackageCollaboratorRoleSearch This is an enumerated value to specify the role used for searching for collaborators. See the Enumerators for a list of possible values.
GetPackageDistributionList Description

This method is used to return a collection of User objects representing the distribution list for the specified package.

Signatures
GetPackageDistributionList(ByVal PackageID As String) As UserCollection
Parameters
PackageIDString The unique identifier of the package for which the distribution list is to be returned.
GetPackageDistributionListUserIds Description

This method is used to return a set of User Ids representing the distribution list for the specified package.

Signatures
GetPackageDistributionListUserIds(ByVal PackageID As String) As HashSet(Of String)
Parameters
PackageIDString The unique identifier of the package for which the distribution list is to be returned.
GetPackageEventLog Description

This method is used to return an EventLog object attached to a specified package.

Signatures
GetPackageEventLog(ByVal PackageID As String) As PackageEventLog GetPackageEventLog(ByVal PackageID As String, ByVal EventStartDate As Date, ByVal EventEndDate As Date) As PackageEventLog
Parameters
EventEndDateDate The start of the date range for the events to be returned as part of the event log .
EventStartDateDate The end of the date range for the events to be returned as part of the event log .
PackageIDString The unique identifier of the package for which the event log is to to be returned.
GetPackageMails Description

This method is used to return a collection of Mail objects attached to a specified package.

Signatures
GetPackageMails(ByVal PackageID As String) As MailCollection
Parameters
PackageIDString The unique identifier of the package for which mails are to be returned.
GetPackages Description

This method uses the Package Management Search Criteria to query and return a collection of packages from Aconex. The Package Management Search Criteria should be initialized and set prior to calling this method.

Signatures
GetPackages() As PackageCollection
Parameters

None.

GetPackageTypeByCode Description

This method queries and returns a Package Type object for the specified package code.

Signatures
GetPackageTypeByCode(ByVal Code As String) As PackageType
Parameters
CodeString The unique code of the package to return.
GetPackageTypeByID Description

This method queries and returns a Package Type object for the specified unique identifier.

Signatures
GetPackageTypeByID(ByVal PackageTypeID As String) As PackageType
Parameters
PackageTypeIDString The unique identifier of the package type to return.
GetPackageTypeByName Description

This method queries and returns a Package Type object for the specified package name.

Signatures
GetPackageTypeByName(ByVal PackageTypeName As String) As PackageType
Parameters
PackageTypeNameString The name of the package type to return.
GetPackageTypeForPackage Description

This method queries and returns the Package Type for a specified package.

Signatures
GetPackageTypeForPackage(ByVal Package As Package) As PackageType
Parameters
PackagePackage A Package object representing the package for which the package type is to be returned.
GetPackageTypes Description

This method queries and returns all Package Types for the active project.

Signatures
GetPackageTypes() As PackageTypeCollection
Parameters

None.

GetPackageVersion Description

This method is used to return a specific package version.

Signatures
GetPackageVersion(ByVal PackageID As String, ByVal VersionID As String) As Package GetPackageVersion(ByVal PackageID As String, ByVal Version As Integer) As Package
Parameters
PackageIDString The unique identifier of the package version to return.
VersionInteger The version of the package to return.
VersionIDString The unique identifier of the package version to return.
GetPackageVersions Description

This method is used to return all versions of package.

Signatures
GetPackageVersions(ByVal PackageID As String) As PackageCollection
Parameters
PackageIDString The unique identifier of the package for which all versions are to be returned.
InitializeNewPackage Description

This method initializes a [Package][/b] object in preparation for creating a new package.

Signatures
InitializeNewPackage(ByVal Name As String, ByVal Revision As String, ByVal Title As String, ByVal PackageType As PackageType) As Package
Parameters
NameString The name of the package to be created.
PackageTypePackageType A PackageType object representing the type of package to be created.
RevisionString The revision of the package to be created.
TitleString The title of the package to be created.
InitializePackageDocumentIDs Description

This method queries and updates a Package object's list of attached documents.

Signatures
InitializePackageDocumentIDs(ByRef Package As Package)
Parameters
PackagePackage A Package object representing the package for which the document identifiers as to be initialized.
InitializePackageManagementSearchCriteria Description

This method initializes the Search Criteria for package management searches. Clears search criteria and sets the following properties to default values.

  • Search Type = FULL
  • Results Size =100
  • Page Size = 100
  • Page Number = 1
Signatures
InitializePackageManagementSearchCriteria()
Parameters

None.

RemovePackageCollaborator Description

This method is used to remove a specified collaborator from a package. The active user must be a package administrator.

Signatures
RemovePackageCollaborator(ByVal Package As Package, ByVal User As User) RemovePackageCollaborator(ByVal Package As Package, ByVal UserID As String) RemovePackageCollaborator(ByVal PackageID As String, ByVal UserID As String)
Parameters
PackagePackage A Package object representing the package from which the collaborator is to be removed.
PackageIDString The unique identifier of the package for which the collaborator is to be removed.
UserUser A User object representing the user to remove as a collaborator.
UserIDString The unique identifier of the user to be removed as a package collaborator.
RemovePackageDocuments Description

This method is used to remove a set of documents from a package.

Signatures
RemovePackageDocuments(ByRef Package As Package, ByVal Documents As DocumentCollection) RemovePackageDocuments(ByRef Package As Package, ByVal DocumentIDs As HashSet(Of String))
Parameters
DocumentIDsHashSet[Of This is a set of document unique identifiers that are to be removed from the package.
DocumentsDocumentCollection A collection of Document objects representing documentsto be removed from the package.
PackagePackage A Package object representing the package from which the documents are to be removed.
RemovePackageMail Description

This method is used to remove a specific mail from the package.

Signatures
RemovePackageMail(ByVal PackageID As String, ByVal Mail As Mail) RemovePackageMail(ByVal PackageID As String, ByVal MailID As String)
Parameters
MailMail A Mail object representing the mail to be removed from the package.
MailIDString The unique identifier of the mail to removed to the package.
PackageIDString The unique identifier of the package for which mail is to be removed.
RemovePackageMails Description

This method is used to remove a specific set of mail items from the package.

Signatures
RemovePackageMails(ByVal PackageID As String, ByVal Mails As MailCollection) RemovePackageMails(ByVal PackageID As String, ByVal MailIDs As HashSet(Of String))
Parameters
MailIDsHashSet[Of This is a set of mail unique identifiers that are to be removed from the package.
MailsMailCollection A collection of Mail objects representing mail items to be removed from the package.
PackageIDString The unique identifier of the package for which mail is to be removed.
UpdatePackageCollaborator Description

This method is used to update a specific collaborator's type (i.e. administrator or editor). The active user must be a package administrator. A package [b]must[/b] have at least one administrator.

Signatures
UpdatePackageCollaborator(ByVal Package As Package, ByVal User As User, ByVal Role As enumPackageCollaboratorRole) UpdatePackageCollaborator(ByVal Package As Package, ByVal UserID As String, ByVal Role As enumPackageCollaboratorRole) UpdatePackageCollaborator(ByVal PackageID As String, ByVal UserID As String, ByVal Role As enumPackageCollaboratorRole)
Parameters
PackagePackage A Package object representing the package for which the collaborator is to be updated.
PackageIDString The unique identifier of the package for which the collaborator is to be updated.
RoleenumPackageCollaboratorRole This is an enumerated value to specify the role to be updated for the collaborator. See the Enumerators for a list of possible values.
UserUser A User object representing the user to update the collaborator role.
UserIDString The unique identifier of the user to be updated as a package collaborator.

PROJECT FIELDS API METHODS

CreateProjectField Description

This method is used to create new Project Field that can subsequently be assigned to a Package Type or Mail Type.

Signatures
CreateProjectField(ByRef ProjectField As ProjectField)
Parameters
ProjectFieldProjectField A ProjectField object representing the project field to be created.
DisableProjectField Description

This method is used to disable a Project Field.

Signatures
DisableProjectField(ByVal ProjectFieldID As String) DisableProjectField(ByRef ProjectField As ProjectField)
Parameters
ProjectFieldProjectField A ProjectField object representing the project field to be disabled.
ProjectFieldIDString The unique identifier of the project field to disable.
EnableProjectField Description

This method is used to enable a Project Field.

Signatures
EnableProjectField(ByVal ProjectFieldID As String) EnableProjectField(ByRef ProjectField As ProjectField)
Parameters
ProjectFieldProjectField A ProjectField object representing the project field to be enabled.
ProjectFieldIDString The unique identifier of the project field to enable.
GetProjectFieldByID Description

This method queries and returns a Project Field object for the specified user unique identifier.

Signatures
GetProjectFieldByID(ByVal ProjectFieldID As String) As ProjectField
Parameters
ProjectFieldIDString The unique identifier of the project field to return.
GetProjectFieldByLabel Description

This method queries and returns a Project Field object for the specified label.

Signatures
GetProjectFieldByLabel(ByVal Label As String) As ProjectField
Parameters
LabelString The label or display name of the project field to be returned.
GetProjectFieldByName Description

This method queries and returns a Project Field object for the specified name.

Signatures
GetProjectFieldByName(ByVal ProjectFieldName As String) As ProjectField
Parameters
ProjectFieldNameString The name of the project field to be returned.
GetProjectFields Description

This method queries and returns a Project Fields for the active project.

Signatures
GetProjectFields() As ProjectFieldCollection
Parameters

None.

UpdateProjectField Description

This method is used to update a Project Field.

Signatures
UpdateProjectField(ByRef ProjectField As ProjectField)
Parameters
ProjectFieldProjectField A ProjectField object representing the project field to be updated.

PROJECT API METHODS

GetProjects Description

This method returns a sorted list of Aconex projects for which the user has access to. The returned sorted list has a key of Project Name and a value of Project Id.

Signatures
GetProjects() As SortedList
Parameters

None.

SetProject Description

Sets the active Aconex Project.

Signatures
SetProject(ByVal ProjectShortName As String)
Parameters
ProjectShortNameString The short name that identifies the project.

TASKS API METHODS

GetTaskCounts Description

This method returns task counts for the set project. Counts include totals for individual features (Mail, Register, Supplier Documents) and totals for different task types within features.

Signatures
GetTaskCounts() As TaskCounts
Parameters

None.

GetTaskCountsAllProjects Description

This method returns task counts for ALL projects. Counts include totals for individual features (Mail, Register, Supplier Documents) and totals for different task types within features.

Signatures
GetTaskCountsAllProjects() As TaskCounts
Parameters

None.

GetTasks Description

This method uses the Task Search Criteria to query and return a collection of tasks from Aconex. The Task Search Criteria should be initialized and set prior to calling this method.

Signatures
GetTasks(ByVal TaskType As enumTaskType) As TasksCollection
Parameters
TaskTypeenumTaskType This is an enumerated value to specify the task type used for searching for tasks. See the Enumerators for a list of possible values.
InitializeTasksSearchCriteria Description

This method initializes the Search Criteria for task searches. Clears search criteria and sets the following properties to default values.

  • Search Type = NUMBER_LIMITED
  • Results Size = 250
  • Page Size = 25
  • Page Number = 1
  • Sort Direction = Ascending
Signatures
InitializeTasksSearchCriteria()
Parameters

None.

USER ROLES API METHODS

AssignUserToRole Description

This method is used to assign a user to a role.

Signatures
AssignUserToRole(ByVal User As User, ByVal Role As Role) AssignUserToRole(ByVal User As User, ByVal Roles As RoleCollection)
Parameters
RoleRole A Role object representing the role to which the user is to be assigned.
RolesRoleCollection A collection of Role objects representing roles to which the user is to be assigned.
UserUser A User object representing the user to assign to the role.
CreateOrganizationRole Description

This method is used to create an organization role in the active user's organization.

Signatures
CreateOrganizationRole(ByVal RoleName As String, ByVal AssignRoleToNewMembers As Boolean) As Role
Parameters
AssignRoleToNewMembersBoolean A boolean indicator to determine whether to automatically assign this role to new organization users.
RoleNameString The name of the role to be created.
CreateProjectRole Description

This method is used to create an project role in the active project.

Signatures
CreateProjectRole(ByVal RoleName As String, ByVal AssignRoleToNewMembers As Boolean) As Role
Parameters
AssignRoleToNewMembersBoolean A boolean indicator to determine whether to automatically assign this role to new project users.
RoleNameString The name of the role to be created.
DeleteRole Description

This method is used to delete a project.

Signatures
DeleteRole(ByVal Role As Role)
Parameters
RoleRole A Role object representing the role to be deleted.
GetOrganizationRoleByID Description

This method queries and returns an organization Role object for the specified unique identifier.

Signatures
GetOrganizationRoleByID(ByVal RoleID As String) As Role
Parameters
RoleIDString The unique identifier of the organization role to return.
GetOrganizationRoleByName Description

This method queries and returns an organization Role object for the specified name.

Signatures
GetOrganizationRoleByName(ByVal RoleName As String) As Role
Parameters
RoleNameString The name of the organization role to return.
GetOrganizationRoles Description

This method queries and returns a collection of Role objects for the active user's organization.

Signatures
GetOrganizationRoles() As RoleCollection
Parameters

None.

GetOrganizationRoleUsers Description

This method queries and returns a collection of User objects for the specified organization role.

Signatures
GetOrganizationRoleUsers(ByVal RoleName As String) As UserCollection
Parameters
RoleNameString The name of the organization role for which users are to be returned.
GetProjectRoleByID Description

This method queries and returns a project Role object for the specified unique identifier.

Signatures
GetProjectRoleByID(ByVal RoleID As String) As Role
Parameters
RoleIDString The unique identifier of the project role to return.
GetProjectRoleByName Description

This method queries and returns a project Role object for the specified name.

Signatures
GetProjectRoleByName(ByVal RoleName As String) As Role
Parameters
RoleNameString The name of the project role to return.
GetProjectRoles Description

This method queries and returns a collection of Role objects for the active project.

Signatures
GetProjectRoles() As RoleCollection
Parameters

None.

GetProjectRoleUsers Description

This method queries and returns a collection of User objects for the specified project role.

Signatures
GetProjectRoleUsers(ByVal RoleName As String) As UserCollection
Parameters
RoleNameString The name of the project role for which users are to be returned.
GetRoleByID Description

This method queries and returns a Role object for the specified unique identifier.

Signatures
GetRoleByID(ByVal RoleID As String) As Role
Parameters
RoleIDString The unique identifier of the role to return.
GetRoleByName Description

This method queries and returns a Role object for the specified name.

Signatures
GetRoleByName(ByVal RoleName As String) As Role
Parameters
RoleNameString The name of the role to return.
GetRoles Description

This method queries and returns a collection of Role objects for the active user's organization and active project.

Signatures
GetRoles() As RoleCollection
Parameters

None.

GetRoleUsers Description

This method queries and returns a collection of User objects for the specified role.

Signatures
GetRoleUsers(ByVal RoleName As String) As UserCollection
Parameters
RoleNameString The name of the role for which users are to be returned.
GetUserOrganizationRoles Description

This method queries and returns a collection of organization Role objects for which the active user is assigned.

Signatures
GetUserOrganizationRoles(ByVal User As User) As RoleCollection GetUserOrganizationRoles(ByVal UserID As String) As RoleCollection
Parameters
UserUser A User object representing the user whose organization roles are to be returned.
UserIDString The unique identifier of the user whose organization roles are to be returned.
GetUserProjectRoles Description

This method queries and returns a collection of project Role objects for which the active user is assigned.

Signatures
GetUserProjectRoles(ByVal User As User) As RoleCollection GetUserProjectRoles(ByVal UserID As String) As RoleCollection
Parameters
UserUser A User object representing the user whose project roles are to be returned.
UserIDString The unique identifier of the user whose project roles are to be returned.
GetUserRoles Description

This method queries and returns a collection of Role objects for which the active user is assigned.

Signatures
GetUserRoles(ByVal User As User) As RoleCollection GetUserRoles(ByVal UserID As String) As RoleCollection
Parameters
UserUser A User object representing the user whose roles are to be returned.
UserIDString The unique identifier of the user whose roles are to be returned.
InitializeSecuredAssetsForRole Description

This method is used to initialize a collection of [b]SecuredAsset[/b] objects for a specified role. Secured assets are essentially a list of functioanlity items for which access can be granted or denied to the role.

Signatures
InitializeSecuredAssetsForRole(ByRef Role As Role)
Parameters
RoleRole A Role object representing the role for which the secured assets are to be initialized.
UnassignUserFromRole Description

This method is used to unassign a user from a role.

Signatures
UnassignUserFromRole(ByVal User As User, ByVal Role As Role) UnassignUserFromRole(ByVal User As User, ByVal Roles As RoleCollection)
Parameters
RoleRole A Role object representing the role from which the user is to be unassigned.
RolesRoleCollection A collection of Role objects representing roles from which the user is to be unassigned.
UserUser A User object representing the user to unassign from the role.
UpdateRole Description

This method is used to update role's properties.

Signatures
UpdateRole(ByVal Role As Role)
Parameters
RoleRole A Role object representing the role to be updated.
UpdateRoleSecuredAssets Description

This method is used to update the role's access to secured assets. Secured assets are essentially a list of functioanlity items for which access can be granted or denied to the role.

Signatures
UpdateRoleSecuredAssets(ByVal Role As Role)
Parameters
RoleRole A Role object representing the role to be updated.

WORKFLOW API METHODS

GetWorkflows Description

This method uses the Workflow Search Criteria to query and return a collection of workflows from Aconex. The Workflow Search Criteria should be initialized and set prior to calling this method. The search criteria allow you to provide a date time specifying the earliest or latest modification to be included in the returned results. That is, only workflows that have changed at or prior/after to this time will be included in the response.

This method also allows you to return a collection of workflows with a specified workflow step status.

Signatures
GetWorkflows() As WorkflowCollection GetWorkflows(ByVal WorkflowStepStatus As enumWorkflowStepStatus) As WorkflowCollection
Parameters
WorkflowStepStatusenumWorkflowStepStatus This is an enumerated value to specify the step status used for searching for workflows. See the Enumerators for a list of possible values.
GetWorkflowsAssignedToUserOrganization Description

This method uses the Workflow Search Criteria to query and return a collection of workflows that are assigned to the user’s organization from Aconex. The Workflow Search Criteria should be initialized and set prior to calling this method. The search criteria allow you to provide a date time specifying the earliest or latest modification to be included in the returned results. That is, only workflows that have changed at or prior/after to this time will be included in the response.

This method also allows you to return a collection of workflows with a specified workflow step status.

Signatures
GetWorkflowsAssignedToUserOrganization() As WorkflowCollection GetWorkflowsAssignedToUserOrganization(ByVal WorkflowStepStatus As enumWorkflowStepStatus) As WorkflowCollection
Parameters
WorkflowStepStatusenumWorkflowStepStatus This is an enumerated value to specify the step status used for searching for workflows. See the Enumerators for a list of possible values.
GetWorkflowsInitiatedByUserOrganization Description

This method uses the Workflow Search Criteria to query and return a collection of workflows were initiated by the user’s organization from Aconex. The Workflow Search Criteria should be initialized and set prior to calling this method. The search criteria allow you to provide a date time specifying the earliest or latest modification to be included in the returned results. That is, only workflows that have changed at or prior/after to this time will be included in the response.

This method also allows you to return a collection of workflows with a specified workflow step status.

Signatures
GetWorkflowsInitiatedByUserOrganization() As WorkflowCollection GetWorkflowsInitiatedByUserOrganization(ByVal WorkflowStepStatus As enumWorkflowStepStatus) As WorkflowCollection
Parameters
WorkflowStepStatusenumWorkflowStepStatus This is an enumerated value to specify the step status used for searching for workflows. See the Enumerators for a list of possible values.
GetWorkflowsNotAssignedToUserOrganization Description

This method uses the Workflow Search Criteria to query and return a collection of workflows that are NOT assigned to the user’s organization from Aconex. The Workflow Search Criteria should be initialized and set prior to calling this method. The search criteria allow you to provide a date time specifying the earliest or latest modification to be included in the returned results. That is, only workflows that have changed at or prior/after to this time will be included in the response.

This method also allows you to return a collection of workflows with a specified workflow step status.

Signatures
GetWorkflowsNotAssignedToUserOrganization() As WorkflowCollection GetWorkflowsNotAssignedToUserOrganization(ByVal WorkflowStepStatus As enumWorkflowStepStatus) As WorkflowCollection
Parameters
WorkflowStepStatusenumWorkflowStepStatus This is an enumerated value to specify the step status used for searching for workflows. See the Enumerators for a list of possible values.
GetWorkflowsNotInitiatedBuUserOranization Description

This method uses the Workflow Search Criteria to query and return a collection of workflows that were NOT initiated by the user’s organization from Aconex. The Workflow Search Criteria should be initialized and set prior to calling this method. The search criteria allow you to provide a date time specifying the earliest or latest modification to be included in the returned results. That is, only workflows that have changed at or prior/after to this time will be included in the response.

This method also allows you to return a collection of workflows with a specified workflow step status.

Signatures
GetWorkflowsNotInitiatedBuUserOranization() As WorkflowCollection GetWorkflowsNotInitiatedByUserOranization(ByVal WorkflowStepStatus As enumWorkflowStepStatus) As WorkflowCollection
Parameters

None.

InitializeWorkflowSearchCriteria Description

This method initializes the Search Criteria for workflow searches. Clears search criteria and sets the following properties to default values.

  • Search Type = PAGED
  • Results Size = 250
  • Page Size = 25
  • Page Number = 1
  • Sort Direction = Ascending
Signatures
InitializeWorkflowSearchCriteria()
Parameters

None.

ENUMERATORS

Directory Enumerators

AconexDirectoryEnumerators. enumSearchField
org_name given_name family_name job_title email division show_groups
AconexDirectoryEnumerators. enumUserSearchScope
Organization Project OrganizationAndProject GlobalDirectory

Document Enumerators

AconexDocEnumerators. enumSearchField
approved asbuiltrequired attribute secondaryattribute attribute1 attribute2 attribute3 attribute4 author category check1 check2 confidential contractnumber contractdeliverable contractordocumentnumber contractorrev date1 date2 discipline docid docno doctype forreview hasmarkups markupdate milestonedate packagenumber plannedsubmissiondate received reference registered reviewed reviewstatus revision revisiondate scale selectlist1 selectlist2 selectlist3 selectlist4 selectlist5 selectlist6 selectlist7 selectlist8 selectlist9 selectlist10 statusid title toclient trackingid uploaddate vdrcode vendordocumentnumber vendorrev
AconexDocEnumerators. enumReturnField
approved asBuiltRequired attribute1 attribute2 attribute3 attribute4 author authorisedBy category check1 check2 comments comments2 confidential contractdeliverable contractnumber contractordocumentnumber contractorrev current date1 date2 discipline docno doctype filename fileSize filetype forreview markupLastModifiedDate markupdate milestonedate modifiedby modifieddate numberOfMarkups packagenumber percentComplete plannedsubmissiondate printSize projectField1 projectField2 projectField3 received reference registered reviewed reviewSource reviewstatus revision revisiondate scale selectlist1 selectlist2 selectlist3 selectlist4 selectlist5 selectlist6 selectlist7 selectlist8 selectlist9 selectlist10 statusid tagNumber title toclient trackingid uploaddate vdrcode vendordocumentnumber vendorrev versionnumber
AconexDocEnumerators. enumSortField
approved asBuiltRequired attribute1 attribute2 attribute3 attribute4 author authorisedBy category check1 check2 comments comments2 confidential contractDeliverable contractnumber contractordocumentnumber contractorrev date1 date2 discipline docno doctype fileSize forreview markupLastModifiedDate milestonedate numberOfMarkups packagenumber percentComplete plannedsubmissiondate printSize projectField1 projectField2 projectField3 received reference registered reviewed reviewSource reviewstatus revision revisiondate scale selectlist1 selectlist2 selectlist3 selectlist4 selectlist5 selectlist6 selectlist7 selectlist8 selectlist9 selectlist10 statusid tagNumber toclient vdrcode vendordocumentnumber vendorrev
AconexDocEnumerators. enumLastUpdateType
ModifiedDate EventDate
AconexDocEnumerators. enumDocumentField
DocumentNumber DocumentTypeId Revision HasFile AccessList AsBuiltRequired Attribute1 Attribute2 Attribute3 Attribute4 Author AuthorizedBy Category Check1 Check2 Comments Comments2 ContractNumber ContractDeliverable ContractorDocumentNumber ContractorRev Date1 Date2 DateApproved DateCreated DateForReview DateModified DateReviewed Discipline DocumentStatusId MilestoneDate PackageNumber PercentageComplete PlannedSubmissionDate PrintSize ProjectField1 ProjectField2 ProjectField3 Reference RevisionDate Scale SelectList1 SelectList2 SelectList3 SelectList4 SelectList5 SelectList6 SelectList7 SelectList8 SelectList9 SelectList10 TagNumber Title ToClientDate UploadDate UploadedBy Vdrcode VendorDocumentNumber VendorRev AutoNumber
AconexDocEnumerators. enumDocumentEventType
Authorization Maintenance Management Modification Notification Print Send Update View

Mail Enumerators

AconexMailEnumerators. enumSearchField
attribute closedoutdate corrdata corrtypeid docno fourthattribute fromtradingname fromuserfullname inreftomailno mailid reasonforissueid responsedate secondaryattribute sentdate subject thirdattribute tostatusid totradingname touserfullname
AconexMailEnumerators. enumReturnField
attribute closedoutdetails confidential corrtypeid docno fromUserDetails inreftomailno mailRecipients reasonforissueid responsedate secondaryattribute sentdate subject tostatusid totalAttachmentsSize attachedDocumentCount
AconexMailEnumerators. enumSortField
confidential corrtypeid docno inreftomailno reasonforissueid responsedate sentdate subject
AconexMailEnumerators. enumMailField
AttachmentFileSize Attribute1 Attribute2 Attribute3 Attribute4 Confidential corrtypeid Footer MailNo MailSubject MailTypeId ReasonForIssue RichText SentDate Status tostatusid
AconexMailEnumerators. enumMailbox
inbox sentbox draftbox
AconexMailEnumerators. enumMailReplyType
NEVER_RESPONDED REPLY FORWARD
AconexMailEnumerators. enumMailSchemaType
Creation Search Reply Forward
AconexMailEnumerators. enumMailCreationType
CreateMail RegisterMail GetMail

Package Management Enumerators

AconexPackageManagementEnumerators. enumPackageState
OPEN CLOSED DEACTIVATED
AconexPackageManagementEnumerators. enumPackageUpdatesAvailableStatus
OUTDATED UP_TO_DATE
AconexPackageManagementEnumerators. enumPackageEventType
PACKAGE_CREATED PACKAGE_EDITED PACKAGE_REOPENED PACKAGE_CLOSED DOCUMENTS_ADDED DOCUMENTS_UPDATED DOCUMENTS_REMOVED MAIL_CREATED MAIL_LINKED MAIL_REMOVED ATTACHMENT_ADDED ATTACHMENTS_REMOVED ATTACHMENTS_SHARED ATTACHMENTS_UNSHARED PACKAGE_TRANSMITTED PACKAGE_TRANSMITTAL_SENT ADMINISTRATOR_DOWNGRADED EDITOR_UPGRADED EDITOR_ADDED ADMINISTRATOR_REMOVED EDITOR_REMOVED USER_ADDED_TO_DISTRIBUTION_LIST USER_REMOVED_FROM_DISTRIBUTION_LIST
AconexPackageManagementEnumerators. enumPackageEventChangeType
PACKAGE PACKAGE_VERSION DOCUMENT MAIL PACKAGE_TRANSMITTAL ATTACHMENT
AconexPackageManagementEnumerators. enumPackageCollaboratorRole
ADMINISTRATOR EDITOR
AconexPackageManagementEnumerators. enumPackageCollaboratorRoleSearch
ADMINISTRATOR EDITOR ALL

Project Field Enumerators

AconexProjectFieldEnumerators. enumProjectFieldType
type_date type_boolean type_number type_singleLineText type_multiLineText type_singleSelect type_multiSelect type_user
AconexProjectFieldEnumerators. enumProjectFieldStatus
Enabled Disabled

Tasks Enumerators

AconexTasksEnumerators. enumTaskType
documents_supplierdocssubmissionrequired documents_supplierdocssubmitted mail_unreadto mail_unreadcc mail_responserequired_OUTSTANDING mail_responserequired_OVERDUE mail_awaitingapproval transmittals_unreadtransmittalto transmittals_unreadtransmittalcc transmittals_responserequiredtransmittal_OUTSTANDING transmittals_responserequiredtransmittal_OVERDUE transmittals_unreadshare transmittals_awaitingreview
AconexTasksEnumerators. enumTaskFeature
documents mail transmittals

User Roles Enumerators

AconexUserRolesEnumerators. enumSecuredAssetPermission
Grant Deny NotApplicable
AconexUserRolesEnumerators. enumRoleScope
Organization Project
AconexUserRolesEnumerators. enumSecuredAssetName
ALLOW_ALLOCATE_REAL_MAIL_NUMBERS_PRIOR_TO_SEND APPROVAL_ORGANIZATION_EDIT APPROVAL_PROJECT_EDIT AUTO_UPDATE_TRANSMITTED_DOCUMENTS CAN_ACCESS_BIM CAN_ACCESS_BOX CAN_ACCESS_DROPBOX CAN_ACCESS_VIA_MOBILE_APPS CAN_ACCESS_VIEWER CAN_ADD_PROJECT_PARTICIPANTS CAN_CONFIGURE_ACCESS_CONTROL CAN_CONFIGURE_CUSTOM_FIELDS CAN_CONFIGURE_USER_NOTIFICATION_ATTACHMENTS_SIZE_LIMIT CAN_CONFIGURE_USER_NOTIFICATION_TYPE CAN_CREATE_MODEL_STACKS CAN_CREATE_PLACEHOLDERS CAN_CREATE_WORKFLOW_TEMPLATE CAN_EDIT_DOC_SHARED_SAVED_SEARCHES CAN_EDIT_DOCUMENT_FIELD_VALUES CAN_EDIT_MAIL_SHARED_SAVED_SEARCHES CAN_EDIT_MARKUPS CAN_EDIT_MARKUPS_IN_DOC_REGISTER CAN_EDIT_PACKAGE_SHARED_SAVED_SEARCHES CAN_EDIT_PROJECT_DIRECTORY_VISIBILITY CAN_EDIT_SUPPLIER_DOC_SHARED_SAVED_SEARCHES CAN_EDIT_WORKFLOW_SHARED_SAVED_SEARCHES CAN_INITIATE_WORKFLOW CAN_MARK_DOCUMENTS_AS_NO_LONGER_IN_USE CAN_REMOVE_PROJECT_PARTICIPANTS CAN_RESET_VERIFICATION_ENROLMENT CAN_RESTORE_HISTORICAL_DOCUMENT_AS_CURRENT CAN_REVIEW_DOCUMENT_APPROVAL_WORKFLOW CAN_SHARE_DOC_SAVED_SEARCHES CAN_SHARE_DOCUMENT_UPLOAD_PROFILE CAN_SHARE_MAIL_SAVED_SEARCHES CAN_SHARE_PACKAGE_SAVED_SEARCHES CAN_SHARE_SUPPLIER_DOC_SAVED_SEARCHES CAN_SHARE_WORKFLOW_SAVED_SEARCHES CAN_USE_BULK_PROCESSING CAN_USE_EXTERNAL_API CAN_USE_OFFICE_ONLINE CAN_VIEW_BIP_REPORTS CAN_VIEW_PROJECT_PARTICIPANTS CAN_VIEW_REPORTS CHECK_IN_ANY_DOC_FOR_OWN_ORGANIZATION CLOSE_OUT_OTHER_USER_MAIL CONFIGURE_MAIL_ROUTING_RULES CREATE_DESIGN_ISSUE CREATE_DESIGN_ISSUE_SET CREATE_EXT_USER CREATE_MAIL CREATE_NEW_CONTROLLED_DOCUMENT CREATE_PACKAGE CREATE_PRINT_REQUEST CREATE_REPORT_LAYOUTS CREATE_REPORT_ONLY_SELF CREATE_SHARE_REPORT_PROJECT CREATE_SHARE_REPORT_PROJECT_ORG CREATE_TRANSMITTAL CREATE_USER_FOR_OWN_ORGANIZATION DESIGN_ISSUES_ADMINISTRATION EDIT_CONTROLLED_DOCUMENT EDIT_DIRECTORY_VISIBILITY EDIT_DOCUMENT_CONFIDENTIALITY EDIT_FIELD_PERMISSIONS EDIT_OWN_ORGANIZATION EDIT_OWN_USER EDIT_PROJECT EDIT_PROJECT_PASSWORD_SESSION EDIT_ROLE_SECURED_ASSET_SETTINGS EDIT_ROLE_USER_SETTINGS EDIT_ROLE_USER_SETTINGS_PROJECT EDIT_USER_FOR_OWN_ORGANIZATION EDIT_USER_SESSION_TIME_DURATION EXPORT_PROJECT_SETTINGS MAKE_SENT_MAIL_YOUR_RESPONSE MANAGE_RELATED_ITEMS ORG_CAN_GRANT_SSO_TO_ROLES ORG_CAN_GRANT_TSV_TO_ROLES OUTLOOK_PLUGIN PROCESS_APPROVALS PROJECT_FIELD REGISTER_TRANSMITTAL_ATTACHMENTS SEARCH_ALL_ORGANIZATIONS_MAIL SEARCH_REGISTERED_DOCUMENTS SEND_PACKAGE_VERSION SUPPLIER_DOC_ADMINISTRATOR VIEW_GLOBAL_DIRECTORY VIEW_PRINT_REQUESTS VIEW_TRANSMITTAL_HISTORY WORKFLOW_ADMINISTRATOR

WorkflowE numerators

AconexWorkflowEnumerators. enumSearchField
updated_before updated_after
AconexWorkflowEnumerators. enumWorkflowStatus
Completed InProgress Terminated
AconexWorkflowEnumerators. enumWorkflowStepStatus
Completed Current Forecast Overdue Skipped Terminated

Common Enumerators

AconexCommonEnumerators. enumSearchOperator
Operator_AND Operator_OR
AconexCommonEnumerators. enumSortDirection
ASC DESC
AconexCommonEnumerators. enumSearchType
ID FULL NUMBER_LIMITED PAGED COUNT_ONLY

SUPPORT CLASSES

Class Collaborator Properties
IDString ReadOnly
NameString ReadOnly
RoleenumPackageCollaboratorRole ReadOnly
UserUser ReadOnly
Class Document Properties
AutoNumberBoolean ReadOnly
DocumentNumberString ReadOnly
DocumentNumberPropertyString
DocumentRevisionPropertyString
FileBufferByte() ReadOnly
FileInfoFileInfo ReadOnly
FilenameString ReadOnly
HasFileBoolean ReadOnly
IDString
IsTemporaryBoolean
PropertiesHashtable ReadOnly
RevisionString ReadOnly
RevisionStatusenumRevisionStatus
UseFileBufferBoolean ReadOnly
Class DocumentEvent Properties
EventTimeDateTime ReadOnly
EventTypeenumDocumentEventType ReadOnly
NameString ReadOnly
OrganizationString ReadOnly
RevisionString ReadOnly
UserString ReadOnly
VersionString ReadOnly
Class DocumentEventLog Properties
mTotalResultsLong ReadOnly
Class Mail Properties
AttachmentsHashtable ReadOnly
ClosedOutBoolean
ClosedOutDateString
ClosedOutUserUser
FromUserUser
HasAttachmentsBoolean ReadOnly
HasDocumentAttachmentsBoolean ReadOnly
HasFileAttachmentsBoolean ReadOnly
HasMailAttachmentsBoolean ReadOnly
IDString
InRefToMailIDString
IsRegisteredBoolean
MailNumberString
NotesArrayList ReadOnly
PropertiesHashtable ReadOnly
RecipientsHashtable ReadOnly
RegisteredUserIDString
RegisteredUserNameString
RepliesArrayList ReadOnly
SentAsFaxBoolean
ThreadIDString
Class MailAttachment Properties
IDString ReadOnly
Class MailAttachmentDocument Properties
ConfidentialBoolean
DocumentIdString ReadOnly
DocumentNumberString ReadOnly
FileNameString ReadOnly
FileSizeDouble ReadOnly
RegisteredAsString
RevisionString
RevisionDateString
StatusString
TitleString
Class MailAttachmentFile Properties
FileNameString ReadOnly
FileSizeDouble ReadOnly
Class MailAttachmentMail Properties
FromNameString
FromOrgString
SentDateString
Class MailNote Properties
ContentsString ReadOnly
FromUserIDString ReadOnly
TimeCreatedString ReadOnly
Class MailReply Properties
MailMail ReadOnly
MailReplyTypeenumMailReplyType ReadOnly
Class MailThread Properties
IDString ReadOnly
TopLevelMailMailCollection ReadOnly
Class Organization Properties
IDString ReadOnly
NameString ReadOnly
TradingNameString ReadOnly
Class Package Properties
AttachmentsPackageAttachmentCollection
DocumentIDsHashSet(Of String)
IDString ReadOnly
NameString ReadOnly
ProjectFieldsProjectFieldCollection
RevisionString ReadOnly
StateenumPackageState ReadOnly
TitleString ReadOnly
TypeIDString ReadOnly
VersionString ReadOnly
Class PackageAttachment Properties
FileNameString ReadOnly
IDString ReadOnly
Class PackageEvent Properties
ChangesDictionary(Of enumPackageEventChangeType, HashSet(Of String)) ReadOnly
EventTimeDateTime ReadOnly
EventTypeenumPackageEventType ReadOnly
OrganizationIDString ReadOnly
PackageIDString ReadOnly
ProjectIDString ReadOnly
UserIDString ReadOnly
VersionString ReadOnly
VersionIDString ReadOnly
Class PackageEventLog Properties
EventsList(Of PackageEvent) ReadOnly
Class PackageType Properties
ActiveBoolean ReadOnly
CodeString ReadOnly
IDString ReadOnly
MandatoryProjectFieldIDsHashSet(Of String)
NameString ReadOnly
ProjectFieldsProjectFieldCollection
Class ProjectField Properties
FullyQualifiedNameString ReadOnly
HintTextString ReadOnly
IDString
LabelString ReadOnly
ReferenceString ReadOnly
SpecificationProjectFieldSpecification ReadOnly
StatusenumProjectFieldStatus ReadOnly
TypeenumProjectFieldType ReadOnly
ValuesList(Of String) ReadOnly
Class ProjectFieldOption Properties
CodeString ReadOnly
ValueString ReadOnly
Class ProjectFieldSpecification Properties
MaxLengthInteger ReadOnly
MinLengthInteger ReadOnly
OptionsList(Of ProjectFieldOption) ReadOnly
SortDirectionenumSortDirection ReadOnly
UnitNameString ReadOnly
UnitQuantityString ReadOnly
UserIDsHashSet(Of String) ReadOnly
Class Recipient Properties
DistributionTypeString ReadOnly
StatusString ReadOnly
UserUser ReadOnly
Class Role Properties
DefaultRoleBoolean
IDString ReadOnly
NameString
NewOrganizationRoleBoolean ReadOnly
OrganizationAdminRoleBoolean ReadOnly
OwningOrganizationIDString ReadOnly
ProjectIDString ReadOnly
ScopeenumRoleScope ReadOnly
SecuredAssetsSecuredAssetCollection ReadOnly
Class SecuredAsset Properties
DescriptionString
IDString ReadOnly
NameString ReadOnly
PermissionenumSecuredAssetPermission
Class Task Properties
AggregateCountLong ReadOnly
AssigneByOrganizationString ReadOnly
AssigneByUserString ReadOnly
CreationDateDate ReadOnly
DescriptionString ReadOnly
DueDateDate ReadOnly
IDString ReadOnly
MailIDString ReadOnly
ReferenceString ReadOnly
StepNameString ReadOnly
Class TaskCounts Properties
TotalCountLong ReadOnly
Class User Properties
EmailString ReadOnly
IDString ReadOnly
JobTitleString ReadOnly
LoginNameString ReadOnly
MobileString ReadOnly
NameString ReadOnly
OrganizationIDString ReadOnly
OrganizationNameString ReadOnly
Class Workflow Properties
AssigneesUserCollection ReadOnly
CommentsString ReadOnly
DateCompletedDate ReadOnly
DateDueDate ReadOnly
DateInDate ReadOnly
DateOrginallyDueDate ReadOnly
DaysLateLong ReadOnly
DocumentNumberString ReadOnly
DocumentRevisionString ReadOnly
DocumentTitleString ReadOnly
DocumentTrackingIDString ReadOnly
DocumentVersionString ReadOnly
DurationDouble ReadOnly
FileNameString ReadOnly
FileSizeLong ReadOnly
IDString ReadOnly
InitiatorUser ReadOnly
NameString ReadOnly
NumberString ReadOnly
ParentWorkflowIDString ReadOnly
ReasonForIssueString ReadOnly
ReviewerUser ReadOnly
StatusString ReadOnly
StepNameString ReadOnly
StepOutcomeString ReadOnly
StepStatusString ReadOnly
TemplateString ReadOnly