Export (0) Print
Expand All

ProjectDocument.getProjectFieldAsync method (JavaScript API for Office v1.1)

JavaScript API for Office v1.1

Asynchronously gets the value of the specified field in the active project.

Last modified: September 17, 2014

Office.context.document.getProjectFieldAsync(fieldId[, options][, callback]);

fieldId

The ID of the target field, as a ProjectProjectFields constant or its corresponding integer value. Required.

options

The following optional parameter:

asyncContext

Type: array, boolean, null, number, object, string, or undefined

A user-defined item of any type that is returned in the AsyncResult object without being altered. Optional.

For example, you can pass the asyncContext argument by using the format {asyncContext: 'Some text'} or {asyncContext: <object>}.

callback

Type: function

A function that is invoked when the method call returns, where the only parameter is of type AsyncResult. Optional.

When the callback function executes, it receives an AsyncResult object that you can access from the parameter in the callback function.

For the getProjectFieldAsync method, the returned AsyncResult object contains the following properties:

Name

Description

asyncContext

The data passed in the optional asyncContext parameter, if the parameter was used.

error

Information about the error, if the status property equals failed.

status

The succeeded or failed status of the asynchronous call.

value

Contains the fieldValue property, which represents the value of the specified field.

The following code example gets the values of three specified fields for the active project, and then displays the values in the app.

The example calls getProjectFieldAsync recursively, after the previous call returns successfully. It also tracks the calls to determine when all calls are sent.

The example assumes your app has a reference to the jQuery library and that the following page control is defined in the content div in the page body:

<span id="message"></span>
(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // Get information for the active project.
            getProjectInformation();
        });
    };

    // Get the specified fields for the active project.
    function getProjectInformation() {
        var fields =
            [Office.ProjectProjectFields.Start, Office.ProjectProjectFields.Finish, Office.ProjectProjectFields.GUID];
        var fieldValues = ['Start: ', 'Finish: ', 'GUID: '];
        var index = 0; 
        getField();

        // Get each field, and then display the field values in the app.
        function getField() {
            if (index == fields.length) {
                var output = '';
                for (var i = 0; i < fieldValues.length; i++) {
                    output += fieldValues[i] + '<br />';
                }
                $('#message').html(output);
            }
            else {
                Office.context.document.getProjectFieldAsync(
                    fields[index],
                    function (result) {

                        // If the call is successful, get the field value and then get the next field.
                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                            fieldValues[index] += result.value.fieldValue;
                            getField(index++);
                        }
                        else {
                            onError(result.error);
                        }
                    }
                );
            }
        }
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

Supported clients

Project Standard 2013, Project Professional 2013, and Project 2013 SP1

Libraries

Office.js, Project-15.js

Namespace

Office

Show:
© 2014 Microsoft