Beispiele für Abhängigkeitserweiterbarkeit
Anwendungsfall für Abhängigkeitserweiterbarkeit
Dieser Anwendungsfall soll Benutzern erklären, wie die Konfigurationsdateien erstellt werden müssen, damit die jeweiligen geschäftsspezifischen Anwendungsfälle in die Analyse integriert werden.
Dieser Anwendungsfall wurde erstellt, um die Situation zu demonstrieren, die entsteht, wenn ein Benutzer Zuordnungen zwischen Transaktionen und Programmen erstellt.
Die Datei API_Dependency.json gibt die APIs an, die Zuordnungen zwischen Ressourcen zurückgeben.
Hinweis: Jede API hat einen Namen und eine Beschriftung. Die APIs für Abhängigkeiten haben das Attribut
"type":"post_build".{
"info":
{
"version":"5.1.0"
},
"extensions":
[
{
"apiKey":"a2",
"name":"MAPPING_TRAN",
"type":"post_build"
}
]
}Die Datei ue-config.json gibt den Typ der Benutzerexitdatei und den Pfad an, unter dem sich die
Benutzerexitdatei für eine bestimmte Abhängigkeits-API befindet.
{
"schemaVersion":"1.0.1",
"documentVersion":"1.0.1",
"ueConfig" :[
{"name": "uejson",
"type":"dependency-file-json",
"location":"D:/EZSourceBuildProjects/API_JCL_PROJECTS/DOC_JCL_DEP/API Config/Resolutions/resolutionDEP.json",
"appliesTo":["a2"]
}
]
}Die Datei resolutionDEP.json enthält die Zuordnung der Ressourcen, die von der API
"MAPPING_TRAN" zurückgegeben werden. In diesem besonderen Fall sehen die Zuordnungen wie folgt aus:- Transaktion
"TRAN1"zu Programm"PROGRAM1" - Transaktion
"TRAN2"zu Programm"PROGRAM2"
Die folgenden Anmerkungen enthält die Datei resolutionDEP.json:
- Für PROGRAM1 - Anmerkung
"annText": "ANNOTATION3"und Anmerkungsschlüsselwort"annKeyword" : "API_RESOLUTION". - Für PROGRAM2 - Anmerkung
"annText": "ANNOTATION4"und Anmerkungsschlüsselwort"annKeyword" : "API_RESOLUTION".
Die AD-Analyse zeigt die Links zwischen
den genannten Ressourcen.
{
"schemaVersion": "1.0.0",
"documentVersion": "1.0.0",
"entries": [{
"input": {
"apiKey": "a2",
"apiText": "MAPPING_TRAN"
},
"resolutions": [{
"action": "dependency",
"source": {
"resourceType": "GenericTransaction",
"value": "TRAN1"
},
"target": {
"resourceType": "CobolProgram",
"value": "PROGRAM1",
"annText": "ANNOTATION3",
"annKeyword" : "API_RESOLUTION"
}
},{
"action": "dependency",
"source": {
"resourceType": "GenericTransaction",
"value": "TRAN2"
},
"target": {
"resourceType": "CobolProgram",
"value": "PROGRAM2",
"annText": "ANNOTATION4",
"annKeyword" : "API_RESOLUTION"
}
} ]
}]
}JSON-Schemata
Schema für Abhängigkeit API_Dependency.json
Eine neue Konfigurationsdatei wird eingeführt. Die API für Abhängigkeiten umfasst einen neuen Typ des Attributs
"type": "post_build".
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AD Extensibility dependencies definition file",
"type": "object",
"properties": {
"info": {
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "The extension file version",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+"
}
},
"required": [
"version"
]
},
"extensions": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/Extension"
}
}
},
"required": [
"info",
"extensions"
],
"definitions": {
"Extension":
{
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"post_build"
],
"description": "Extension for dependencies",
"minLength": 1
}
},
"required": [
"apiKey",
"name",
"type"
],
"additionalProperties": false
}
}
}
}
Das Schema ue-config.json , das in den Beispielen für die Erweiterbarkeit von API/Makroaufrufen enthalten ist, enthält einen neuen API-Typ "type":"dependency-file-json".
Schema für Abhängigkeit resolution.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"version": "1.0.0",
"type": "object",
"description": "The json schema for a file-json based AD dependency resolutions.",
"properties": {
"schemaVersion": {
"description": "This json schema version.",
"$ref": "#/definitions/versionDef"
},
"documentVersion": {
"description": "The user exit dependency json file version.",
"$ref": "#/definitions/versionDef"
},
"entries": {
"type": "array",
"description": "An array containing the user exit dependency content.",
"items": {
"type": "object",
"description": "A user exit dependency content object.",
"properties": {
"input": {
"type": "object",
"description": "An object which contains the inputs for the user exit dependency.",
"properties": {
"apiKey": {
"type": "string",
"description": "The parameter key as defined in the API config json."
},
"apiText": {
"type": "string",
"description": "The name of the API_NOT_SOURCE as defined in the API config json."
}
},
"required": [
"apiKey"
],
"additionalProperties": false
},
"resolutions": {
"type": "array",
"description": "An array which contains the user exit resolution objects.",
"properties": {
"action": {
"type": "string",
"description" : "The name of the action, expect dependency.",
"enum": [
"dependency"
]
},
"source": {
"$ref": "#/definitions/sourceDef"
},
"target": {
"$ref": "#/definitions/targetDef"
}
}
}
},
"additionalProperties": false,
"required": [
"resolutions",
"input"
]
}
}
},
"required": [
"entries",
"schemaVersion",
"documentVersion"
],
"definitions": {
"versionDef": {
"type": "string",
"description": "A schema/document versioning pattern.",
"pattern": "^[0-9]{1,3}\\.[0-9]{1,3}(\\.[0-9]{1,3})?$"
},
"sourceDef": {
"properties": {
"resourceType": {
"type": "string",
"description": "A string which defines the source type of the resource from depedency relation."
},
"value": {
"type": "string",
"description": "A string which defines the source name of the resource from depedency relation."
},
"qualifier": {
"type": "string",
"description": "A string which defines the qualifier of the resource from depedency relation."
}
},
"required": [
"resourceType",
"value"
]
},
"targetDef": {
"properties": {
"resourceType": {
"type": "string",
"description": "A string which defines the target type of the resource from depedency relation."
},
"value": {
"type": "string",
"description": "A string which defines the target name of the resource from depedency relation."
},
"annText": {
"type": "string",
"description": "A string which defines the key of the annotation."
},
"annKeyword": {
"type": "string",
"description": "A string which defines the text of the annotation."
}
}
}
}
}