Créer une structure de classification

ArcGIS 11.4 | |  Help archive

Avant de pouvoir attribuer une structure de classification à votre organisation, vous devez la créer en définissant les options de configuration de la classification dans un fichier JSON valide. La structure de classification que vous créez doit respecter la grammaire de classification, une structure JSON incluse avec Portal for ArcGIS qui décrit et valide les structures de classification.

Selon les besoins de votre organisation, vous pouvez créer une structure simple, qui définit au minimum uniquement les propriétés requises, ou une structure complexe qui utilise des expressions ArcGIS Arcade pour une classification très détaillée des éléments. Vous trouverez ci-dessous un exemple de structure de classification. Vous pouvez également télécharger des exemples de structure à partir du référentiel GitHub ArcGIS/Classification.

Remarque :

Les exemples ci-dessous et les exemples de structure dans le référentiel GitHub ArcGIS/Classification sont destinés à être utilisés comme références pour créer une structure de classification qui répond aux besoins de votre organisation.

Lorsque vous créez une structure de classification, commencez par définir les propriétés suivantes :

Remarque :

Sauf mention contraire, les propriétés sont facultatives.

Remarque :

Les expressions Arcade ne prennent pas en charge les caractères < et >.

  • name : propriété obligatoire qui identifie le nom de la structure de classification.
  • version : propriété obligatoire qui identifie la version de la structure de classification.
  • grammarVersion : propriété obligatoire qui spécifie la version de la grammaire de classification que la structure doit respecter. Pour connaître la version de la grammaire de classification, accédez à Organization (Organisation) > Settings (Paramètres) > Items (Éléments) > Item classification (Classification des éléments) sur le site web du portail.
  • helpToolTip : texte d’aide qui apparaît lorsque vous survolez le bouton Information (Informations) Informations en haut du formulaire de classification.
  • helpURL : URL du document d’aide pour la structure qui s’ouvre dans un nouvel onglet lorsque vous cliquez sur le bouton Information (Informations) Informations en haut du formulaire de classification.
  • bannerExpression : informations de classification qui apparaissent sous Classification sur la page des éléments. Vous pouvez utiliser des expressions Arcade pour créer du texte de bannière ou définir la valeur sur une chaîne vide pour mettre en œuvre la logique d’encodage générique définie pour uiElements dans le formulaire de classification (par exemple bannerOrder, bannerLabel et labelDelimiter).
    Remarque :

    Si vous ignorez cette propriété ou que vous la définissez comme chaîne vide, vous devez disposer d’au moins un attribut avec la propriété bannerOrder définie pour mettre en œuvre la logique d’encodage générique.

  • selectionTextExpression : informations de classification qui apparaissent dans la boîte de dialogue Edit Classification (Mettre à jour la classification). Vous pouvez utiliser des expressions Arcade pour créer du texte de bannière ou définir la valeur sur une chaîne vide pour mettre en œuvre la logique d’encodage générique définie pour uiElements dans le formulaire de classification (par exemple selectionDisplayOrder, selectionDisplayLabel et labelDelimiter).
    Remarque :

    Si vous ignorez cette propriété ou que vous la définissez comme chaîne vide, vous devez disposer d’au moins un attribut avec la propriété selectionDisplayOrder définie pour mettre en œuvre la logique d’encodage générique.

  • attributeCategories : liste des catégories d’attributs qui apparaissent comme des sections ou des onglets dans le formulaire de classification.
    Remarque :

    Le mot par défaut est un mot-clé réservé et ne peut pas être utilisé comme catégorie d’attributs.

{ 
  "name": "academic-institution-classification-schema", 
  "version": "2.0", 
  "grammarVersion": "2.0", 
  "helpURL": "https://ansible.hynes.com/portal/home/schema_help.pdf", 
  "helpTooltip": "Click to open the schema help document", 
  "bannerExpression": "", 
  "selectionTextExpression": "", 
  "attributeCategories": [] 
}

Définir classificationMetadata

L’objet classificationMetadata requis peut inclure les propriétés suivantes :

  • primaryAttribute : propriété obligatoire qui identifie l’attribut qui apparaît comme champ de classification principal dans le formulaire de classification.
  • defaultValue : propriété obligatoire qui spécifie la valeur par défaut pour la propriété primaryAttribute.
  • classificationValueProperties : matrice d’objets obligatoire dans laquelle chaque objet représente une option de classification de l’attribut identifié comme valeur primaryAttribute et définit des propriétés spécifiques pour l’option. Les propriétés suivantes peuvent être définies pour chaque option de classification :
    • value : propriété obligatoire qui spécifie l’étiquette pour l’option utilisée dans le formulaire de classification.
    • acronym : acronyme de l’option.
    • textColor : lorsque l’option est sélectionnée, son étiquette apparaît dans cette couleur sous Current Selections (Sélections actuelles) dans le formulaire de classification. La couleur peut être spécifiée avec des noms de couleurs prédéfinis ou avec des valeurs RVB et HEX.
    • backgroundColor : lorsque l’option est sélectionnée, son étiquette est mise en surbrillance dans cette couleur sous Current Selections (Sélections actuelles) dans le formulaire de classification. La couleur peut être spécifiée avec des noms de couleurs prédéfinis ou avec des valeurs RVB et HEX.
{ 
... 
 
"classificationMetadata": { 
    "primaryAttribute": "classification", 
    "defaultValue": "Public Data", 
    "classificationValueProperties": [ 
      { 
        "value": "Public Data", 
        "acronym": "Public Data", 
        "backgroundColor": "Green", 
        "textColor": "Black" 
      }, 
      { 
        "value": "Restricted", 
        "acronym": "Restricted", 
        "backgroundColor": "Yellow", 
        "textColor": "Black" 
      }, 
      { 
        "value": "Confidential", 
        "acronym": "Confidential", 
        "backgroundColor": "Red", 
        "textColor": "Black" 
      } 
    ] 
  } 
}

Définir des attributs

Chaque attribut défini dans l’objet attributes requis correspond à un champ en entrée du formulaire de classification. Les propriétés suivantes peuvent être définies pour chaque attribut :

  • label : propriété obligatoire qui spécifie l’étiquette pour l’attribut utilisée dans le formulaire de classification.
  • description : description utilisée en tant qu’emplacement réservé dans le champ en entrée.
  • type : propriété obligatoire qui identifie le type de données de l’attribut. Les types de données pris en charge sont les type chaîne, date, entier, réel et booléen.
  • isRequired : valeur booléenne (true ou false) qui spécifie si l’attribut est obligatoire. Cette propriété ne peut pas être une chaîne vide.
  • uiElement : propriété obligatoire qui identifie le type d’élément d’interface utilisateur de l’attribut dans le formulaire de classification. Les sept valeurs possibles sont les suivantes :
    • text : zone de texte uniligne.
    • checkbox : case à cocher standard.
    • date : sélecteur de date qui vous permet de sélectionner une date dans le calendrier au format JJ/MM/AAAA.
    • single-select : menu déroulant qui vous permet de sélectionner une seule option.
    • multi-select : menu déroulant qui vous permet de sélectionner plusieurs options.
    • multi-grouped-select : menu déroulant qui vous permet de sélectionner des options individuelles dans des groupes d’options associées, mais pas dans les groupes supérieurs eux-mêmes.
    • multi-grouped-select-nested : menu déroulant qui vous permet de sélectionner des groupes d’options associées ou des options individuelles dans ces groupes.
  • defaultValue : valeur par défaut affectée à l’attribut. Cette propriété peut uniquement être définie pour les types uiElement à sélection unique, à sélection mutiple, à sélection de groupe multiple et à sélection de groupe multiple imbriqué.
  • defaultDateTimeline : propriété à utiliser en association avec defaultDateTimelineUnits pour définir la date par défaut de l’attribut. Cette propriété peut uniquement être définie pour le type uiElement date.
  • defaultDateTimelineUnits : propriété à utiliser en association avec defaultDateTimeline pour définir la date par défaut de l’attribut. Les valeurs possibles sont years (années), months (mois) et days (jours). Cette propriété peut uniquement être définie pour le type uiElement date.
  • validValues : liste des options qui apparaissent dans les menus déroulants de type uiElement à sélection unique ou à sélection multiple dans le formulaire de classification. Il peut s’agir d’une chaîne vide si les options sont générées par l’expression Arcade pour valueExpression.
  • validValuesMap : carte des options qui apparaissent dans les menus déroulants de type uiElement à sélection de groupe multiple ou à sélection de groupe multiple imbriqué dans le formulaire de classification. Il peut s’agir d’une chaîne vide si les options sont générées par l’expression Arcade pour valueExpression.
  • valueExpression : expression Arcade qui renvoie une liste d’options lorsque les propriétés validValues et validValuesMap ne sont pas définies ou sont des chaînes vides.
  • isAttributeEnabled : expression Arcade qui renvoie une valeur booléenne qui indique si l’attribut apparaît ou est masqué dans le formulaire de classification.
  • attributeValidation : expression Arcade qui renvoie une chaîne vide ou un message d’erreur en fonction de la valeur sélectionnée pour l’attribut dans le formulaire de classification.
  • arcadeResultLookup : carte des clés et des valeurs qui permettent à l’expression Arcade définie pour valueExpression de générer la liste.
  • attributeCategory : onglet ou section attributeCategories sous lequel l’attribut apparaît dans le formulaire de classification.
  • selectionDisplayOrder : ordre dans lequel l’attribut apparaît dans le texte selectionTextExpression.
    Remarque :

    Vous devez définir cette propriété pour au moins un attribut dans la classification si vous ignorez la propriété selectionTextExpression ou la définissez comme une chaîne vide.

  • selectionDisplayLabel : étiquette pour l’attribut utilisée dans le texte selectionTextExpression.
  • bannerOrder : ordre dans lequel l’attribut apparaît dans le texte bannerExpression.
    Remarque :

    Vous devez définir cette propriété pour au moins un attribut dans la classification si vous ignorez la propriété bannerExpression ou la définissez comme une chaîne vide.

  • bannerLabel : étiquette pour l’attribut utilisée dans le texte bannerExpression.
  • labelDelimiter : délimiteur qui sépare l’étiquette de l’attribut et la valeur dans les textes selectionTextExpression et bannerExpression.
  • valueDelimiter : délimiteur qui sépare les valeurs sélectionnées dans un type uiElement à sélection multiple lorsqu’elles apparaissent dans les textes selectionTextExpression et bannerExpression.
  • attributeDelimiter : délimiteur qui sépare l’attribut et l’attribut qui le précède dans les textes selectionTextExpression et bannerExpression.
  • labelTooltip : texte d’aide qui apparaît lorsque vous survolez le bouton Information (Informations) Informations à côté de l’étiquette de l’attribut.
{ 
... 
 
"attributes": { 
    "classification": { 
      "label": "Classification", 
      "description": "Classification", 
      "type": "string", 
      "uiElement": "single-select", 
      "validValues": [{"label": "Public Data", "value": "Public Data"}, {"label": "Restricted", "value": "Restricted"}, {"label": "Confidential", "value": "Confidential"}], 
      "selectionDisplayOrder": 1, 
      "bannerOrder": 1, 
      "labelDelimiter": "", 
      "valueDelimiter": "-", 
      "attributeDelimiter": ";" 
    }, 
    "program": { 
      "label": "Program", 
      "description": "Program", 
      "type": "string", 
      "uiElement": "single-select", 
      "valueExpression": "function getProgramValidValues(schemaJsonString, valueJsonString, attributeId) {\n    var valueJson = Dictionary(valueJsonString)\n    var schemaJson = Dictionary(schemaJsonString)\n    if (!HasKey(valueJson, \"classification\"))\n        return null;\n    if (valueJson.classification == \"Public Data\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Public_Data_List\"];\n    if (valueJson.classification == \"Restricted\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Restricted_List\"];\n    if (valueJson.classification == \"Confidential\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Confidential_List\"];\n    return null;\n}\ngetProgramValidValues(schemaJsonString, valueJsonString, attributeId)", 
      "arcadeResultLookup": { 
        "Public_Data_List": [{"label": "Intra-agency", "value": "Intra-agency"}, {"label": "Marketing", "value": "Marketing"}, {"label": "Promotional", "value": "Promotional"}], 
        "Restricted_List": [{"label": "Compliance", "value": "Compliance"}, {"label": "Financial", "value": "Financial"}, {"label": "Human Resources", "value": "Human Resources"}, {"label": "Market Data", "value": "Market Data"}, {"label": "PII", "value": "PII"}, {"label": "Proprietary", "value": "Proprietary"}], 
        "Confidential_List": [{"label": "Intellectual Property", "value": "Intellectual Property"}, {"label": "Legal", "value": "Legal"}, {"label": "Security", "value": "Security"}] 
      }, 
      "selectionDisplayOrder": 2, 
      "bannerOrder": 2, 
      "labelDelimiter": "", 
      "valueDelimiter": "-", 
      "attributeDelimiter": ";" 
    } 
  } 
}

Définir des mises en page

L’objet layouts requis spécifie l’ordre dans lequel les attributs apparaissent dans le formulaire de classification. Il peut inclure les éléments suivants :

  • default : objet qui inclut les détails d’une mise en page spécifique. Vous pouvez définir la propriété suivante dans l’objet.
    • layoutElements : objet obligatoire qui apparie les attributs et leur ordre dans le formulaire de classification. La propriété suivante peut être définie pour chaque attribut de l’objet :
      • formDisplayOrder : entier obligatoire qui identifie l’ordre dans lequel l’attribut apparaît dans le formulaire de classification.
{ 
... 
 
"layouts": { 
    "default": { 
      "layoutElements": { 
        "classification": { 
          "formDisplayOrder": 1 
        }, 
        "program": { 
          "formDisplayOrder": 2 
        } 
      } 
    } 
  } 
}

Exemple complet

Voici un exemple complet de structure de classification :

Remarque :

L’exemple de structure ci-dessous et les exemples de structure dans le référentiel GitHub ArcGIS/Classification sont destinés à être utilisés comme références pour créer une structure de classification qui répond aux besoins de votre organisation.

{  
  "name": "academic-institution-classification-schema",  
  "version": "2.0",  
  "grammarVersion": "2.0",  
  "helpURL": "https://ansible.hynes.com/portal/home/schema_help.pdf",  
  "helpTooltip": "Click to open the schema help document",  
  "bannerExpression": "",  
  "selectionTextExpression": "",  
  "attributeCategories": [], 
  "classificationMetadata": {  
    "primaryAttribute": "classification",  
    "defaultValue": "Public Data",  
    "classificationValueProperties": [  
      {  
        "value": "Public Data",  
        "acronym": "Public Data",  
        "backgroundColor": "Green",  
        "textColor": "Black"  
      },  
      {  
        "value": "Restricted",  
        "acronym": "Restricted",  
        "backgroundColor": "Yellow",  
        "textColor": "Black"  
      },  
      {  
        "value": "Confidential",  
        "acronym": "Confidential",  
        "backgroundColor": "Red",  
        "textColor": "Black"  
      }  
    ]  
  }, 
  "attributes": {  
    "classification": {  
      "label": "Classification",  
      "description": "Classification",  
      "type": "string",  
      "uiElement": "single-select",  
      "validValues": [{"label": "Public Data", "value": "Public Data"}, {"label": "Restricted", "value": "Restricted"}, {"label": "Confidential", "value": "Confidential"}],  
      "selectionDisplayOrder": 1,  
      "bannerOrder": 1,  
      "labelDelimiter": "",  
      "valueDelimiter": "-",  
      "attributeDelimiter": ";"  
    },  
    "program": {  
      "label": "Program",  
      "description": "Program",  
      "type": "string",  
      "uiElement": "single-select",  
      "valueExpression": "function getProgramValidValues(schemaJsonString, valueJsonString, attributeId) {\n    var valueJson = Dictionary(valueJsonString)\n    var schemaJson = Dictionary(schemaJsonString)\n    if (!HasKey(valueJson, \"classification\"))\n        return null;\n    if (valueJson.classification == \"Public Data\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Public_Data_List\"];\n    if (valueJson.classification == \"Restricted\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Restricted_List\"];\n    if (valueJson.classification == \"Confidential\")\n        return schemaJson.attributes[attributeId].arcadeResultLookup[\"Confidential_List\"];\n    return null;\n}\ngetProgramValidValues(schemaJsonString, valueJsonString, attributeId)",  
      "arcadeResultLookup": {  
        "Public_Data_List": [{"label": "Intra-agency", "value": "Intra-agency"}, {"label": "Marketing", "value": "Marketing"}, {"label": "Promotional", "value": "Promotional"}],  
        "Restricted_List": [{"label": "Compliance", "value": "Compliance"}, {"label": "Financial", "value": "Financial"}, {"label": "Human Resources", "value": "Human Resources"}, {"label": "Market Data", "value": "Market Data"}, {"label": "PII", "value": "PII"}, {"label": "Proprietary", "value": "Proprietary"}],  
        "Confidential_List": [{"label": "Intellectual Property", "value": "Intellectual Property"}, {"label": "Legal", "value": "Legal"}, {"label": "Security", "value": "Security"}]  
      },  
      "selectionDisplayOrder": 2,  
      "bannerOrder": 2,  
      "labelDelimiter": "",  
      "valueDelimiter": "-",  
      "attributeDelimiter": ";"  
    }  
  }, 
  "layouts": {  
    "default": {  
      "layoutElements": {  
        "classification": {  
          "formDisplayOrder": 1  
        },  
        "program": {  
          "formDisplayOrder": 2  
        }  
      }  
    }  
  } 
}