Méthode ProjectDocument.getMaxResourceIndexAsync (interface 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 façon asynchrone l’index maximal de la collection de ressources dans le projet en cours.

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

Hôtes :

Project

Disponible dans l’ensemble de ressources requis

Sélection

Ajouté dans

1.1

Afficher toutes les informations de prise en charge

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

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 getMaxResourceIndexAsync, 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

Nombre d’index le plus élevé dans la collection de ressources du projet en cours.

Vous pouvez utiliser la valeur renvoyée avec la méthode getResourceByIndexAsync pour obtenir des GUID de ressource. Une collection de ressources ne contient pas de ressource au niveau de l’index 0.

L’exemple de code suivant appelle la méthode getResourceTaskIndexAsync pour obtenir l’index maximal de la collection de ressources dans le projet en cours. Ensuite, il utilise la valeur renvoyée et la méthode getResourceByIndexAsync pour obtenir chaque GUID de ressource.

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 resourceGuids = [];

    // 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(getResourceInfo);
        });
    };

    // Get the maximum resource index, and then get the resource GUIDs.
    function getResourceInfo() {
        getMaxResourceIndex().then(
            function (data) {
                getResourceGuids(data);
            }
        );
    }

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

    // Get each resource GUID, and then display the GUIDs in the add-in.
    // There is no 0 index for resources, so start with index 1.
    function getResourceGuids(maxResourceIndex) {
        var defer = $.Deferred();
        for (var i = 1; i <= maxResourceIndex; i++) {
            getResourceGuid(i);
        }
        return defer.promise();
        function getResourceGuid(index) {
            Office.context.document.getResourceByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        resourceGuids.push(result.value);
                        if (index == maxResourceIndex) {
                            defer.resolve();
                            $('#message').html(resourceGuids.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: