Personnalisation avancée > Utilisation de composants réutilisables > Composants réutilisables disponibles > Barre d'actions
  
Barre d'actions
Définition et mode d'utilisation
Le composant réutilisable 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 un menu déroulant associé. 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 non présentées sous la forme de boutons sont accessibles dans le menu déroulant. Vous pouvez configurer le composant réutilisable 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
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.
Une barre d'actions est incluse dans les composants réutilisables Liste des éléments et Identité d'élément.
La capture d'écran suivante vous donne un aperçu du composant réutilisable Barre d'actions :
Aucune configuration prédéfinie n'est disponible pour le composant réutilisable Barre d'actions.
Propriétés de liaison
Huit propriétés de liaison sont disponibles pour le composant Barre d'actions :
Disabled : valeur booléenne qui désactive le widget dans l'application composite.
EventTriggered : évé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".
Input : JSON qui fournit l'ID d'entrée pour lequel les données doivent être récupérées à partir du système principal. Ces informations sont fournies dans un format CCO (Common Communication Object).
PopupClosed : événement déclenché à la fermeture d'une fenêtre contextuelle précédemment ouverte.
ServiceActionId : chaîne mise à jour avec l'ID d'action d'une action de service lorsque l'action est cliquée.
ServiceActionIdChanged : événement déclenché lorsque la valeur de ServiceActionId change, ce qui signifie qu'un service appelé par la barre d'actions a fini son exécution.
SubComponentConfiguration : JSON pouvant être lié au JSON de configuration si le JSON de configuration change à l'exécution. Utilisez les champs de configuration décrits à la section suivante si la configuration ne change pas à l'exécution.
Champs de configuration
Les tableaux suivants présentent les champs JSON que vous pouvez utiliser pour configurer ce composant.
Nom de la propriété
Description
Type
Valeur par défaut
Obligatoire ou facultatif ?
maxItemsToShow
Nombre maximal de boutons d'action affichés. S'il existe plus de boutons d'action que la valeur spécifiée, les actions supplémentaires apparaissent dans le menu déroulant.
Integer
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.
String
"PTC.ActionBar Model.Thing"
Obligatoire
actions
Actions disponibles dans la barre d'actions. Consultez la sous-propriété :
String
N/A
Obligatoire
id
ID de l'action, tel qu'envoyé par le système principal. Consultez le tableau suivant pour connaître les sous-propriétés.
String
N/A
Obligatoire
objectType
Type d'objet pour lequel les actions doivent être récupérées.
String
N/A
Obligatoire
adapter
Source de configuration du système principal. Consultez les sous-propriétés :
String
N/A
Obligatoire
instanceName
Instance de connecteur. Cela indique quel connecteur utiliser pour se connecter au système principal.
String
"windchill"
Obligatoire
thingName
Nom de l'adaptateur ou du système principal sur lequel les données sont récupérées.
String
"PTC.WCAdapter"
Obligatoire
Champs de configuration sous id
Nom de la propriété
Description
Type
Valeur par défaut
Obligatoire ou facultatif ?
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.
String
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 doit être activé ou désactivé.
String
N/A
Obligatoire
buttonStyle
Détermine le style visuel du bouton. Options : primary, secondary, tertiary, danger, transparent.
String
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é.
Boolean
N/A
Facultatif
activityType
Détermine si cette action exécute un service ou affiche une application composite contextuelle. Options : popup, service. Reportez-vous aux tableaux ci-dessous pour connaître les sous-propriétés requises pour la fenêtre contextuelle et pour le service.
String
N/A
Obligatoire
fireEventOnFinish
Si ce champ est défini sur "vrai", 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é.
Boolean
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.
String
N/A
Facultatif
ordinal
Ordre d'affichage des boutons d'action. L'action présentant la valeur ordinale la plus basse est affichée dans la position la plus à gauche au départ. Les valeurs négatives sont autorisées.
Integer
N/A
Obligatoire
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é.
String
N/A
Facultatif
entityName
Nom de l'entité de média à utiliser en tant qu'icône.
String
N/A
Facultatif
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é.
String
N/A
Facultatif
entityName
Nom de l'entité de média à utiliser en tant qu'icône.
String
N/A
Facultatif
Sous-propriétés du paramètre activityType de popup
Nom de la propriété
Description
Type
Valeur par défaut
Obligatoire ou facultatif ?
mashupName
Nom de l'application composite qui s'affiche sous forme de fenêtre contextuelle.
String
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 indiquer à la barre d'actions si l'opération effectuée par la fenêtre contextuelle a abouti ou non, vous devez définir le paramètre de session nommé PTC.ActionBar.popupCloseParameters, de manière à signaler 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 } ));
String
N/A
Facultatif
popupWidth
Spécifie la largeur de la fenêtre contextuelle qui s'affiche. Si ce champ n'est pas renseigné, la fenêtre contextuelle aura par défaut une largeur de 1024.
Integer
N/A
Facultatif
popupHeight
Spécifie la largeur de la fenêtre contextuelle qui s'affiche. Si ce champ n'est pas renseigné, la fenêtre contextuelle aura par défaut une largeur de 640.
Integer
N/A
Facultatif
Sous-propriétés du paramètre activityType de service
Nom de la propriété
Description
Type
Valeur par défaut
Obligatoire ou facultatif ?
thingWithService
Nom de l'objet qui contient le service à exécuter.
String
N/A
Obligatoire
serviceName
Nom du service à exécuter.
String
N/A
Obligatoire
parameters
Ce champ facultatif nous permet de transmettre des paramètres codés en dur au service. 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.
StringRepresentationOfJSONObject
N/A
Facultatif
Utilisation du paramètre parameters pour configurer une action de service
Supposons qu'il existe un service nommé MyService, avec cette signature :
@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
}
* 
Il y a deux paramètres que votre service obtient automatiquement 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 JSONObject et correspond à l'entrée fournie à la 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
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 1
}, {
"id": "Reject",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 2
}, {
"id": "Analyze",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 3
}, {
"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": 4
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}