Barre d'actions (bêta)
Définition et mode d'utilisation
Le composant Barre d'actions est un widget qui affiche une série d'actions accessibles à l'utilisateur. Les actions sont disponibles sous la forme d'une rangée de boutons, ainsi que dans une zone de liste associée. La configuration du composant et la taille de l'écran de l'utilisateur déterminent le nombre d'actions disponibles sous la forme de boutons. Toutes les actions qui n'apparaissent pas sous forme de boutons sont visibles dans la zone de liste qui s'affiche lorsque vous cliquez sur l'action Points de suspension.
La capture d'écran suivante vous donne un aperçu du composant Barre d'actions :
Vous pouvez configurer le composant Barre d'actions de différentes manières :
Définir les actions proposées par la barre d'actions
Définir le nombre maximum d'actions à afficher sous la forme de boutons
Définir les options de visibilité des actions en fonction de leur disponibilité
Définir l'ordre des actions
Déterminer si des entrées sont requises pour une action
Sélectionner un style pour la barre d'actions
Configurer un bouton de menu dans la barre d'actions
Les actions sont conçues pour activer un service ou bien une fenêtre contextuelle. Le service ou l'application composite contextuelle doivent être configurés séparément dans ThingWorx. Toutes les fonctionnalités supplémentaires, telles que les messages toast, doivent être configurées dans le service ou l'application composite appropriés, dans ThingWorx. Vous pouvez également configurer l'ouverture d'une URL à partir de la barre d'actions, par exemple en configurant le bouton Afficher dans Windchill.
Barre d'actions peut être incluse dans les composants Liste des éléments et Identité d'élément. Il peut également être inclus dans le volet d'aperçu des tâches Affichage de liste d'articles, Affichage de structure d'article et Affichage de structure de document. Le volet d'aperçu remplace le volet de document/article sélectionné, qui figure dans le coin supérieur droit de la tâche donnée.
Barre d'actions, Barre d'actions d'article et Barre d'actions de document sont les types de configuration disponibles pour le composant Barre d'actions. Le tableau suivant répertorie les actions disponibles pour chacune de ces configurations. Le tableau répertorie également l'ID de chaque action, qui correspond à la valeur de la propriété id dans la configuration.
Type de configuration
Actions par défaut
ID d'action
Barre d'actions
Approuver
Approve
Rejeter
Reject
Analyse
Analyze
Réaffecter
Reassign
Barre d'actions d'article
Signaler un problème
PTC.Nav.ReportAProblem
Afficher dans Windchill
PTC.Nav.ViewInWindchill
Barre d'actions de document
Ouvrir le document
PTC.Nav.OpenDocument
Signaler un problème
PTC.Nav.ReportAProblem
Afficher dans Windchill
PTC.Nav.ViewInWindchill
Propriétés de liaison 
Entrée
Nom de propriété
Description
Type de propriété
Disabled
Désactive le widget dans l'application composite.
Booléen
Input
Utilisé pour identifier les données à récupérer à partir du système principal.
JSON au format CCO
ServiceActionId
Lorsque vous cliquez sur l'action, cette chaîne est mise à jour avec l'ID d'action d'une action de service.
Chaîne
SubComponentConfiguration
Liez la configuration à cette propriété si elle change au cours de l'exécution.
JSON
Sortie
Nom de propriété
Description
Type de propriété
EventTriggered
Evénement déclenché lorsqu'un service termine son exécution ou qu'une fenêtre contextuelle est affichée, si l'action est configurée avec la propriété fireEventOnFinish définie sur vrai.
Evénement
ServiceActionIdChanged
Evénement déclenché lorsque la valeur ServiceActionId change, ce qui signifie qu'un service appelé par Barre d'actions a fini son exécution.
Evénement
PopupClosed
Evénement déclenché à la fermeture d'une fenêtre contextuelle précédemment ouverte.
Evénement
Propriétés de configuration 
Les tableaux ci-après présentent les propriétés JSON utilisées pour configurer ce composant.
Pour plus d'informations sur la structure de la configuration, consultez la rubrique Structure de configuration du composant.
Pour plus d'informations sur les sous-propriétés, consultez la rubrique Sous-propriétés et clés de conteneur.
Nom de propriété
Description
Type de propriété
Valeur par défaut
Obligatoire ou facultatif ?
maxItemsToShow
Nombre maximal de boutons d'action affichés. Si le nombre de boutons d'action dépasse la valeur spécifiée, les actions supplémentaires sont renseignées dans la zone de liste.
2
Obligatoire
modelThingName
Nom d'un objet qui contient un service avec la signature suivante :
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
Ce service accepte les entrées au format CCO contenant un seul élément. Il renvoie ensuite un objet JSONObject contenant un tableau qui mappe l'ID d'une action disponible sur son étiquette, telle qu'envoyée par le système back-end. Consultez l'exemple de configuration JSON ci-dessous.
PTC.ActionBar Model.Thing
Obligatoire
actions
La liste des actions pour lesquelles des données doivent être récupérées à partir du système principal. La clé de conteneur est actionConfiguration. Consultez les sous-propriétés ci-dessous :
N/A
Obligatoire
overrideLabel
La valeur définie ici est affichée en tant qu'étiquette du bouton d'action, en remplacement de la valeur provenant du système principal. Pour la localiser, placez la valeur entre doubles crochets.
N/A
Facultatif
actionButtonVisibility
Détermine les conditions dans lesquelles les boutons d'action sont affichés, ainsi que leur état. Options : AlwaysShown, DisableUnavailable, HideUnavailable. Pour AlwaysShown, le bouton est toujours visible et activé. Pour DisableUnavailable, le bouton est toujours visible, mais désactivé lorsque l'action n'est pas disponible pour une sélection donnée. Pour HideUnavailable, le bouton n'est visible que lorsque l'action est disponible pour la sélection donnée.
Remarque : Il existe d'autres configurations déterminant si un bouton est activé ou désactivé.
N/A
Obligatoire
buttonStyle
Détermine le style visuel du bouton. Options : primary, secondary, tertiary, danger, transparent.
N/A
Obligatoire
overrideSetDisabled
Si ce champ est défini, sa valeur correspond au seul facteur déterminant si un bouton doit être activé ou désactivé. Options : true, false. La valeur "vrai" garantit que le bouton est désactivé et la valeur "faux" qu'il est activé.
N/A
Facultatif
fireEventOnFinish
Si ce champ est défini sur true, lorsque l'exécution d'un service se termine, l'événement EventTriggered est déclenché et, lorsqu'une fenêtre contextuelle est fermée, l'événement PopupClosed est déclenché.
N/A
Facultatif
inputConstraints
Détermine la contrainte d'entrée de l'action. Options : InputRequired, SingleInputOnly et NoInputRequired.
InputRequired : cette action doit recevoir une entrée pour pouvoir fonctionner. Si l'entrée est vide et ne contient aucun élément, le bouton associé à l'action est désactivé.
SingleInputOnly : cette action doit recevoir une seule entrée pour pouvoir fonctionner. Si l'entrée est vide ou contient plusieurs éléments, le bouton associé à l'action est désactivé.
NoInputRequired : cette action peut fonctionner sans entrée ou avec entrée.
N/A
Facultatif
iconWhenEnabled
Si ce champ est spécifié, le bouton associé à l'action contient une icône placée à gauche de l'étiquette lorsque le bouton d'action est activé.
entityName
Nom de l'entité de média à utiliser en tant qu'icône.
iconWhenDisabled
Si ce champ est spécifié, le bouton associé à l'action contient une icône placée à gauche de l'étiquette lorsque le bouton d'action est désactivé.
entityName
Nom de l'entité de média à utiliser en tant qu'icône.
activityType
Détermine si cette action exécute un service ou affiche une application composite contextuelle. Options : openUrl (disponible dans Windchill Navigate 9.3.4 et versions ultérieures), popup, service et parent (disponible dans Windchill Navigate 9.4.0 et versions ultérieures). Consultez les tableaux ci-dessous pour connaître les sous-propriétés requises pour popup, service et parent.
N/A
Obligatoire
mashupName
Nom de l'application composite qui s'affiche sous forme de fenêtre contextuelle.
Cette propriété n'est utilisée que lorsque activityType est défini sur popup.
N/A
Obligatoire
redirectAfterPopupSuccess
Redirige l'utilisateur vers une autre application composite lorsque la fenêtre contextuelle est fermée après une opération réussie.
Pour informer Barre d'actions si l'opération effectuée par la fenêtre contextuelle a été effectuée avec succès, définissez le paramètre de session nommé PTC.ActionBar.popupCloseParameters pour indiquer la réussite ou l'échec. Par exemple, dans l'application composite contextuelle peut figurer une expression exécutée à la fin de l'opération effectuée par la fenêtre contextuelle ; dans cette expression, le paramètre de session est défini. Dans l'exemple suivant, l'attribut JSON operationSuccessful est défini sur "vrai", car l'opération a réussi :
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
Cette propriété n'est utilisée que lorsque activityType est défini sur popup.
N/A
Facultatif
popupWidth
Spécifie la largeur de la fenêtre contextuelle qui s'affiche.
Cette propriété n'est utilisée que lorsque activityType est défini sur popup.
1024
Facultatif
popupHeight
Spécifie la largeur de la fenêtre contextuelle qui s'affiche.
Cette propriété n'est utilisée que lorsque activityType est défini sur popup.
640
Facultatif
thingWithService
Nom de l'objet qui contient le service à exécuter.
Cette propriété n'est utilisée que lorsque activityType est défini sur service.
N/A
Obligatoire
serviceName
Nom du service à exécuter.
Cette propriété n'est utilisée que lorsque activityType est défini sur service.
N/A
Obligatoire
parameters
Ce champ facultatif permet de transmettre des paramètres codés en dur à un service ou à une application composite contextuelle. Les paramètres sont définis dans un objet JSONObject, mais doivent être formatés en tant que chaîne d'objet JSON, avec des guillemets d'échappement. Les paramètres doivent être entrés dans le fichier de configuration sous la forme suivante : "{\"myParamName\": \"hardcodedValue\"}" . Consultez les informations supplémentaires ci-dessous.
Cette propriété n'est utilisée que lorsque activityType est défini sur service ou popup.
N/A
Facultatif
openUrl
Permet de définir une URL sur le bouton d'action. Lorsqu'une valeur valide est attribuée à cette option, une nouvelle fenêtre ou un nouvel onglet s'ouvre avec l'URL définie lors de la sélection du bouton d'action.
Cette propriété n'est utilisée que lorsque activityType est défini sur openUrl.
N/A
Facultatif
parentId
Ce champ facultatif permet de définir l'ID de l'action parent. Lorsqu'il est défini sur une valeur valide, il symbolise le fait qu'il existe une action parent qui porte cet ID et définit l'action en tant qu'option sous le bouton de menu parent. S'il n'existe aucune action avec le même ID définie dans parentId, l'action est ignorée et n'est pas affichée.
Cette propriété n'est utilisée que lorsque activityType est défini sur parentId.
ID du parent
Facultatif
Utilisation du paramètre parameters pour configurer une action de service :
Il s'agit de la signature d'un exemple de service nommé MyService :
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "exampleInt", baseType = "INTEGER") Integer exampleInt,
@ThingworxServiceParameter(name = "ExampleString", baseType = "STRING") String exampleString,
@ThingworxServiceParameter(name = "ExampleBoolean", baseType = "BOOLEAN") Boolean exampleBoolean)
Voici à quoi ressemblent les valeurs de paramètre pour MyService :
{
\"exampleInt\": 123,
\"exampleString\": \"Hello\",
\"exampleBoolean\": true
}
* 
Votre service obtient automatiquement deux paramètres si vous définissez la signature du service de manière à les recevoir : serviceParam_InputCco et serviceParam_ActionId. Le paramètre serviceParam_InputCco est un objet JSONObject et correspond à l'entrée fournie à Barre d'actions. Le paramètre serviceParam_ActionId est une chaîne qui contient l'ID de l'action qui a été cliquée. Si votre service n'inclut pas ces paramètres dans sa signature, vous ne pouvez pas les utiliser. Si vous souhaitez les utiliser, définissez votre signature de service de manière à utiliser l'un ou l'autre, ou les deux, en utilisant les éléments suivants :
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "serviceParam_InputCco", baseType = "JSON")
JSONObject serviceParam_InputCco,
@ThingworxServiceParameter(name = "serviceParam_ActionId", baseType = "STRING")
String serviceParam_ActionId)
Exemple de configuration 
Exemple de configuration avec boutons standard
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 10
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 20
}, {
"id": "PTC.Nav.OpenDocument",
"additionalData": {
"actionConfiguration": {
"openUrl": {
"value": "https://www.ptc.com"
},
"overrideLabel": {
"selectedKey": "[[PTC.AccessApp.OpenDocument]]"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "openUrl"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
}
},
"ordinal": 30
}
}, {
"id": "ProblemReport",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "[[PTC.Nav.CreateProblemReport.AppTitle]]"
},
"popupHeight": {
"value": 640
},
"popupWidth": {
"value": 800
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"mashupName": {
"mashupName": "PTC.Nav.CreateProblemReportAppMashup"
},
"activityType": {
"selectedKey": "popup"
},
"parameters": {
"value": "{\"affectedItemsCCO\":{\"timeStamp\":\"2021-11-24 22:45:54.528\",\"data\":[{\"itemListsData\":[{\"items\":[{\"id\":{\"value\":\"OR:wt.part.WTPart:100447\"}}],\"objectType\":\"PTC.ProdMgmt.Part\"}],\"adapter\":{\"instanceName\":\"windchill\",\"thingName\":\"PTC.WCAdapter\"}}],\"version\":\"1.0.0\",\"statusMessage\":\"OK\",\"status\":\"200\"},\"isPopup\":true}"
}
}
},
"ordinal": 40
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}
}
Exemple de configuration avec bouton de menu
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 10
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 20
}, {
"id": "PTC.Nav.OpenDocument",
"additionalData": {
"actionConfiguration": {
"openUrl": {
"value": "https://www.ptc.com"
},
"overrideLabel": {
"selectedKey": "[[PTC.AccessApp.OpenDocument]]"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "openUrl"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
}
},
"ordinal": 30
}
}, {
"id": "ProblemReport",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "[[PTC.Nav.CreateProblemReport.AppTitle]]"
},
"popupHeight": {
"value": 640
},
"popupWidth": {
"value": 800
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"mashupName": {
"mashupName": "PTC.Nav.CreateProblemReportAppMashup"
},
"activityType": {
"selectedKey": "popup"
},
"parameters": {
"value": "{\"affectedItemsCCO\":{\"timeStamp\":\"2021-11-24 22:45:54.528\",\"data\":[{\"itemListsData\":[{\"items\":[{\"id\":{\"value\":\"OR:wt.part.WTPart:100447\"}}],\"objectType\":\"PTC.ProdMgmt.Part\"}],\"adapter\":{\"instanceName\":\"windchill\",\"thingName\":\"PTC.WCAdapter\"}}],\"version\":\"1.0.0\",\"statusMessage\":\"OK\",\"status\":\"200\"},\"isPopup\":true}"
}
}
},
"ordinal": 40
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}
}
Est-ce que cela a été utile ?