Méthode ProjectDocument.setResourceFieldAsync (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.


Définit de manière asynchrone la valeur du champ spécifié pour la ressource spécifiée.

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.setResourceFieldAsync(resourceId, fieldId, fieldValue[, options][, callback]);

resourceId

GUID de la ressource. Obligatoire.

fieldId

ID du champ cible, tel qu’une constante ProjectResourceFields ou sa valeur entière correspondante. Obligatoire.

fieldValue

Valeur du champ cible, au format string, number, boolean ou object. 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 setResourceFieldAsync, 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

Cette méthode ne renvoie pas de valeur.

Appelez d’abord la méthode getSelectedResourceAsync ou getResourceByIndexAsync pour obtenir le GUID de ressource, puis transmettez le GUID en tant qu’argument resourceId à setResourceFieldAsync. Vous ne pouvez mettre à jour qu’un seul champ pour une seule ressource dans chaque appel asynchrone.

L’exemple de code suivant appelle getSelectedResourceAsync pour obtenir le GUID de la ressource actuellement sélectionnée dans un affichage des ressources. Ensuite, il définit deux valeurs de champ de ressource en appelant setResourceFieldAsync de manière récursive.

la méthode getSelectedTaskAsync utilisée dans l’exemple nécessite qu’un affichage des tâches (par exemple, Utilisation des tâches) soit la vue active et qu’une tâche soit sélectionnée. Voir la méthode addHandlerAsync pour obtenir un exemple qui permet d’activer un bouton en fonction du type de vue active.

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="set-info" type="button" value="Set info" /><br />
<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 () {

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

    // Get the GUID of the resource, and then get the resource fields.
    function setResourceInfo() {
        getResourceGuid().then(
            function (data) {
                setResourceFields(data);
            }
        );
    }

    // Get the GUID of the selected resource.
    function getResourceGuid() {
        var defer = $.Deferred();
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Set the specified fields for the selected resource.
    function setResourceFields(resourceGuid) {
        var targetFields = [Office.ProjectResourceFields.StandardRate, Office.ProjectResourceFields.Notes];
        var fieldValues = [.28, 'Notes for the resource.'];

        // Set the field value. If the call is successful, set the next field.
        for (var i = 0; i < targetFields.length; i++) {
            Office.context.document.setResourceFieldAsync(
                resourceGuid,
                targetFields[i],
                fieldValues[i],
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        i++;
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
        $('#message').html('Field values set');
    }

    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

WriteDocument

Types de complément

Volet de tâches

Bibliothèque

Office.js

Espace de noms

Office

Version

Modifications

1.1

Introduites

Afficher: