Damit Sie Ihrer Organisation ein Klassifizierungsschema zuweisen können, müssen Sie ein Schema erstellen, indem Sie die Konfigurationsoptionen der Klassifizierung in einer gültigen JSON-Datei definieren. Das erstellte Klassifizierungsschema muss der Klassifizierungsgrammatik entsprechen. Dabei handelt es sich um ein in Portal for ArcGIS enthaltenes JSON-Schema, mit dem Klassifizierungsschemas beschrieben und überprüft werden.
Je nach den Anforderungen Ihrer Organisation können Sie ein einfaches Schema erstellen, das lediglich die erforderlichen Eigenschaften definiert, oder ein komplexes Schema, das zur detaillierten Klassifizierung von Elementen ArcGIS Arcade-Ausdrücke verwendet. Ein Beispiel für ein vollständiges Klassifizierungsschema finden Sie weiter unten im entsprechenden Abschnitt. Sie können auch Beispielschemas aus dem GitHub-Repository "ArcGIS/Classification" herunterladen.
Hinweis:
Das untenstehende Beispiel und die Beispielschemas im GitHub-Repository "ArcGIS/Classification" sind als Referenzen gedacht, die Sie beim Erstellen eines Klassifizierungsschemas, das den Anforderungen Ihrer Organisation entspricht, heranziehen können.
Der erste Schritt bei der Erstellung eines Klassifizierungsschemas besteht in der Definition der folgenden Eigenschaften:
Hinweis:
Eigenschaften sind optional, sofern nicht anders angegeben.
Hinweis:
In Arcade-Ausdrücken werden die Zeichen < und > nicht unterstützt.
- name: Eine erforderliche Eigenschaft, die den Namen des Klassifizierungsschemas angibt
- version: Eine erforderliche Eigenschaft, die die Version des Klassifizierungsschemas angibt
- grammarVersion: Eine erforderliche Eigenschaft, die die Version der Klassifizierungsgrammatik für das Schema angibt. Die Version der Klassifizierungsgrammatik finden Sie auf der Portal-Website unter Organisation > Einstellungen > Elemente > Elementklassifizierung.
- helpToolTip: Der Hilfetext, der angezeigt wird, wenn Sie oben im Klassifizierungsformular mit der Maus auf die Schaltfläche Informationen
zeigen
- helpURL: Die URL des Schema-Hilfedokuments, das in einer neuen Registerkarte geöffnet wird, wenn Sie oben im Klassifizierungsformular auf die Schaltfläche Informationen
klicken
- bannerExpression: Die Klassifizierungsinformationen, die auf der Elementseite unter Klassifizierung angezeigt werden. Mittels Arcade-Ausdrücken können Sie Bannertext erstellen oder den Wert auf eine leere Zeichenfolge festlegen, um eine generische Codierungslogik zu implementieren, die für uiElements im Klassifizierungsformular (z. B. bannerOrder, bannerLabel und labelDelimiter) definiert ist.
Hinweis:
Wenn Sie diese Eigenschaft nicht angeben oder sie als leere Zeichenfolge definieren, müssen Sie mindestens ein Attribut mit bannerOrder definieren, um eine generische Codierungslogik zu implementieren.
- selectionTextExpression: Die Klassifizierungsinformationen, die im Dialogfeld Klassifizierung bearbeiten angezeigt werden. Mittels Arcade-Ausdrücken können Sie Bannertext erstellen oder den Wert auf eine leere Zeichenfolge festlegen, um eine generische Codierungslogik zu implementieren, die für uiElements im Klassifizierungsformular (z. B. selectionDisplayOrder, selectionDisplayLabel und labelDelimiter) definiert ist.
Hinweis:
Wenn Sie diese Eigenschaft nicht angeben oder sie als leere Zeichenfolge definieren, müssen Sie mindestens ein Attribut mit selectionDisplayOrder definieren, um eine generische Codierungslogik zu implementieren.
- attributeCategories: Die Liste der Attributkategorien, die als Abschnitte oder Registerkarten im Klassifizierungsformular angezeigt werden.
Hinweis:
Das Wort "default" ist ein reserviertes Schlüsselwort und kann nicht als Attributkategorie verwendet werden.
{
"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": []
}
Definieren des Objekts "classificationMetadata"
Das erforderliche Objekt classificationMetadata kann folgende Eigenschaften enthalten:
- primaryAttribute: Eine erforderliche Eigenschaft, die das Attribut angibt, das als primäres Klassifizierungsfeld im Klassifizierungsformular angezeigt wird
- defaultValue: Eine erforderliche Eigenschaft, die den Standardwert der Eigenschaft primaryAttribute angibt
- classificationValueProperties: Ein erforderliches Objekt-Array, wobei jedes Objekt eine Klassifizierungsoption für das Attribut, das als primaryAttribute-Wert festgelegt ist, angibt und bestimmte Eigenschaften für die Option definiert. Für jede Klassifizierungsoption können die folgenden Eigenschaften definiert werden:
- value: Eine erforderliche Eigenschaft, die die Beschriftung für die im Klassifizierungsformular verwendete Option angibt
- acronym: Das Akronym der Option
- textColor: Wird die Option ausgewählt, wird deren Beschriftung in dieser Farbe unter Aktuelle Auswahl im Klassifizierungsformular angezeigt. Die Farbe kann über vordefinierte Farbnamen oder über RGB- und HEX-Werte angegeben werden.
- backgroundColor: Wird die Option ausgewählt, wird deren Beschriftung im Abschnitt Aktuelle Auswahl des Klassifizierungsformulars in dieser Farbe hervorgehoben. Die Farbe kann über vordefinierte Farbnamen oder über RGB- und HEX-Werte angegeben werden.
{
...
"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"
}
]
}
}
Definieren des Objekts "attributes"
Jedes Attribut, das im erforderlichen Objekt attributes definiert ist, entspricht einem Eingabefeld im Klassifizierungsformular. Für jedes Attribut können die folgenden Eigenschaften definiert werden:
- label: Eine erforderliche Eigenschaft, die die Beschriftung für das im Klassifizierungsformular verwendete Attribut angibt
- description: Die Beschreibung, die als Platzhalter im Eingabefeld verwendet wird
- type: Eine erforderliche Eigenschaft, die den Datentyp des Attributs angibt. Die Datentypen "string", "date", "integer", "float" und "Boolean" werden unterstützt.
- isRequired: Ein boolescher Wert ("true" oder "false"), der angibt, ob das Attribut erforderlich ist. Die Eigenschaft kann nicht als leere Zeichenfolge definiert werden.
- uiElement: Eine erforderliche Eigenschaft, die den Typ des Bedienoberflächenelements im Klassifizierungsformular für das Attribut angibt. Die folgenden sieben Werte sind möglich:
- text: ein einzeiliges Textfeld
- checkbox: ein standardmäßiges Kontrollkästchen
- date: eine Datumsauswahl, über die ein Datum im Format TT/MM/JJJJ aus dem Kalender ausgewählt werden kann
- single-select: ein Dropdown-Menü, aus dem eine einzelne Option ausgewählt werden kann
- multi-select: ein Dropdown-Menü, aus dem mehrere Optionen ausgewählt werden können
- multi-grouped-select: ein Dropdown-Menü, in dem einzelne Optionen aus Gruppen verwandter Optionen ausgewählt werden können, nicht aber die übergeordneten Gruppen selbst
- multi-grouped-select-nested: ein Dropdown-Menü, in dem Gruppen verwandter Optionen oder einzelne Optionen aus diesen Gruppen ausgewählt werden können
- defaultValue: Der für das Attribut zugewiesene Standardwert. Diese Eigenschaft kann nur für die uiElement-Typen "single-select", "multi-select", "multi-grouped-select" und "multi-grouped-select-nested" festgelegt werden.
- defaultDateTimeline: Wird in Kombination mit defaultDateTimelineUnits verwendet, um das Standarddatum für das Attribut festzulegen. Diese Eigenschaft kann nur für den uiElement-Typ "date" festgelegt werden.
- defaultDateTimelineUnits: Wird in Kombination mit defaultDateTimeline verwendet, um das Standarddatum für das Attribut festzulegen. Mögliche Werte sind "years", "months" und "days". Diese Eigenschaft kann nur für den uiElement-Typ "date" festgelegt werden.
- validValues: Die Liste der Optionen, die im Klassifizierungsformular in Dropdown-Menüs des uiElement-Typs "single-select" oder "multi-select" angezeigt werden. Die Eigenschaft kann nicht als leere Zeichenfolge definiert werden, wenn die Optionen über den Arcade-Ausdruck in der Eigenschaft valueExpression generiert werden.
- validValuesMap: Die Zuordnung der Optionen, die im Klassifizierungsformular in Dropdown-Menüs des uiElement-Typs "multi-grouped-select" oder "multi-select" angezeigt werden. Die Eigenschaft kann nicht als leere Zeichenfolge definiert werden, wenn die Optionen über den Arcade-Ausdruck in der Eigenschaft valueExpression generiert werden.
- valueExpression: Ein Arcade-Ausdruck, der eine Optionsliste zurückgibt, wenn validValues und validValuesMap nicht definiert oder als leere Zeichenfolgen definiert sind
- isAttributeEnabled: Ein Arcade-Ausdruck, der einen booleschen Wert zurückgibt. Damit wird angegeben, ob das Attribut im Klassifizierungsformular angezeigt oder ausgeblendet wird.
- attributeValidation: Ein Arcade-Ausdruck, der basierend auf dem Wert, der im Klassifizierungsformular für das Attribut ausgewählt wurde, eine leere Zeichenfolge oder eine Fehlermeldung zurückgibt
- arcadeResultLookup: Eine Zuordnung von Schlüsseln und Werten, aus denen der Arcade-Ausdruck, der für valueExpression definiert ist, eine Liste generiert
- attributeCategory: attributeCategories wird im Klassifizierungsformular als Abschnitt oder Registerkarte angezeigt und enthält das Attribut.
- selectionDisplayOrder: Die Reihenfolge, in der das Attribut im Text von selectionTextExpression angezeigt wird.
Hinweis:
Sie müssen diese Eigenschaft für mindestens ein Attribut in der Klassifizierung definieren, wenn Sie selectionTextExpression nicht angeben oder als leere Zeichenfolge definieren.
- selectionDisplayLabel: Die im Text von selectionTextExpression verwendete Beschriftung für das Attribut
- bannerOrder: Die Reihenfolge, in der das Attribut im Text von bannerExpression angezeigt wird.
Hinweis:
Sie müssen diese Eigenschaft für mindestens ein Attribut in der Klassifizierung definieren, wenn Sie bannerExpression nicht angeben oder als leere Zeichenfolge definieren.
- bannerLabel: Die im Text von bannerExpression verwendete Beschriftung für das Attribut
- labelDelimiter: Das Trennzeichen, mit dem in den Texten von selectionTextExpression und bannerExpression Beschriftung und Wert des Attributs voneinander getrennt werden
- valueDelimiter: Das Trennzeichen, mit dem in den Texten von selectionTextExpression und bannerExpression die Werte, die in einem uiElement des Typs "multi-select" ausgewählt werden, voneinander getrennt werden
- attributeDelimiter: Das Trennzeichen, mit dem in den Texten von selectionTextExpression und bannerExpression das Attribut vom voranstehenden Attribut getrennt wird
- labelTooltip: Der Hilfetext, der angezeigt wird, wenn Sie neben der Attributbeschriftung mit der Maus auf die Schaltfläche Informationen
zeigen
{
...
"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": ";"
}
}
}
Definieren des Objekts "layouts"
Mit dem erforderlichen Objekt layouts wird die Reihenfolge, in der Attribute im Klassifizierungsformular angezeigt werden, angegeben. Es kann folgende Eigenschaften umfassen:
- default: Das Objekt mit den Details eines bestimmten Layouts. Sie können im Objekt die folgenden Eigenschaften definieren:
- layoutElements: Ein erforderliches Objekt, mit dem die Attribute zugeordnet werden und ihre Reihenfolge im Klassifizierungsformular festgelegt wird. Für jedes Attribut im Objekt kann die folgende Eigenschaft definiert werden:
- formDisplayOrder: Ein erforderliches Objekt zum Angeben der Reihenfolge, in der Attribute im Klassifizierungsformular angezeigt werden
- layoutElements: Ein erforderliches Objekt, mit dem die Attribute zugeordnet werden und ihre Reihenfolge im Klassifizierungsformular festgelegt wird. Für jedes Attribut im Objekt kann die folgende Eigenschaft definiert werden:
{
...
"layouts": {
"default": {
"layoutElements": {
"classification": {
"formDisplayOrder": 1
},
"program": {
"formDisplayOrder": 2
}
}
}
}
}
Vollständiges Beispiel
Nachfolgend finden Sie ein Beispiel für ein vollständiges Klassifizierungsschema:
Hinweis:
Das untenstehende Beispielschema sowie die Beispielschemas im GitHub-Repository "ArcGIS/Classification" sind als Referenzen gedacht, die Sie beim Erstellen eines Klassifizierungsschemas, das den Anforderungen Ihrer Organisation entspricht, heranziehen können.
{
"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
}
}
}
}
}