Méthode ProjectDocument.getTaskByIndexAsync (API JavaScript pour Office version 1.1)

Office and SharePoint Add-ins

La dernière version de ce complément Office est disponible dans le référentiel GitHub des compléments.


Obtient de manière asynchrone le GUID de la tâche comportant l’index spécifié dans la collection de tâches.

Important : cette API fonctionne uniquement dans une version de bureau Windows de Project 2016.

Hôtes :

Project

Disponible dans l’ensemble de ressources requis

Selection

Ajouté dans

1.1

Afficher toutes les informations de prise en charge

Office.context.document.getTaskByIndexAsync(taskIndex[, options][, callback]);

taskIndex

Type : number

Index de la tâche dans la collection de tâches pour le projet. Obligatoire.

options

Paramètre facultatif suivant :

asyncContext

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

Élément défini par l’utilisateur de n’importe quel type qui est renvoyé dans l’objet AsyncResult sans être modifié. Facultatif.

Vous pouvez par exemple transmettre l’argument asyncContext en utilisant le format {asyncContext: 'Some text'} ou {asyncContext: <object>}.

callback

Type : function

Fonction appelée lors du retour de l’appel de la méthode, où le seul paramètre est de type AsyncResult. Facultatif.

Lorsque la fonction callback s’exécute, elle reçoit un objet AsyncResult accessible à partir du paramètre de la fonction de rappel.

Pour la méthode getTaskByIndexAsync, l’objet AsyncResult renvoyé contient les propriétés suivantes.

Nom

Description

asyncContext

Données transmises dans le paramètre asyncContext facultatif si le paramètre a été utilisé.

error

Informations sur l’erreur, si la propriété status est failed.

status

État succeeded ou failed de l’appel asynchrone.

value

GUID de la tâche au format string.

Pour obtenir l’index maximal de la collection de tâches pour le projet, utilisez la méthode getMaxTaskIndexAsync. La tâche d’index 0 représente la tâche récapitulative de projet.

L’exemple de code suivant appelle getMaxTaskIndexAsync pour obtenir l’index maximal dans la collection de tâches du projet, puis appelle getTaskByIndexAsync pour obtenir le GUID de chaque tâche.

L’exemple suppose que votre complément comporte une référence à la bibliothèque jQuery et que les contrôles de page suivants sont définis dans la balise div de contenu du corps de la page.

<input id="get-info" type="button" value="Get info" /><br />
<span id="message"></span>
(function () {
    "use strict";
    var taskGuids = [];

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

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#get-info').click(getTaskInfo);
        });
    };

    // Get the maximum task index, and then get the task GUIDs.
    function getTaskInfo() {
        getMaxTaskIndex().then(
            function (data) {
                getTaskGuids(data);
            }
        );
    }

    // Get the maximum index of the tasks for the current project.
    function getMaxTaskIndex() {
        var defer = $.Deferred();
        Office.context.document.getMaxTaskIndexAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get each task GUID, and then display the GUIDs in the add-in.
    function getTaskGuids(maxTaskIndex) {
        var defer = $.Deferred();
        for (var i = 0; i <= maxTaskIndex; i++) {
            getTaskGuid(i);
        }
        return defer.promise();
        function getTaskGuid(index) {
            Office.context.document.getTaskByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        taskGuids.push(result.value);
                        if (index == maxTaskIndex) {
                            defer.resolve();
                            $('#message').html(taskGuids.toString());
                        }
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
    }
    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

Une coche (v) dans la matrice suivante indique que cette méthode est prise en charge dans l’application Office hôte correspondante. Une cellule vide indique que l’application hôte Office ne prend pas en charge cette méthode.

Pour plus d’informations sur les exigences de l’application et du serveur hôtes Office, voir Configuration requise pour exécuter des compléments pour Office.

Office pour Bureau Windows

Office Online
(dans le navigateur)

Project

v

Disponible dans les ensembles de ressources

Niveau d’autorisation minimal

ReadDocument

Types de complément

Volet de tâches

Bibliothèque

Office.js

Espace de noms

Office

Version

Modifications

1.1

Introduites

Afficher: