[comment]: # ({2956300c-2956300c})
# configuration.importcompare

[comment]: # ({/2956300c-2956300c})

[comment]: # ({24146d56-069ae59d})
### Beschreibung

`array configuration.importcompare(object parameters)`

Diese Methode erlaubt es, die Importdatei mit den aktuellen Systemelementen zu vergleichen und zeigt, was geändert wird, wenn diese Importdatei importiert wird.

::: noteclassic
Diese Methode ist für Benutzer jeden Typs verfügbar. 
Die Berechtigung zum Aufrufen der Methode kann in den Benutzerrolleneinstellungen entzogen werden.
Pürfen Sie die [Benutzerrollen](/manual/web_interface/frontend_sections/users/user_roles) für weitere Informationen.
:::

[comment]: # ({/24146d56-069ae59d})

[comment]: # ({fa5f4195-0ae26f0f})
### Parameter

`(object)` Parameter, die die möglichen zu importierenden Daten und die Regeln enthalten, wie diese Daten behandelt werden sollen.

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Beschreibung|
|--|--|------|
|format|string|Format der serialisierten Zeichenkette.<br><br>Mögliche Werte:<br>`yaml` - YAML;<br>`xml` - XML;<br>`json` - JSON.<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*|
|source|string|Serialisierte Zeichenkette, die die Konfigurationsdaten enthält.<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*|
|rules|object|Regeln dafür, wie neue und vorhandene Objekte verglichen werden sollen.<br><br>Benutzer vom Typ *Admin* und *User* können neue Objekte nur mit vorhandenen Objekten vergleichen, für die sie über die Berechtigung *read-only* oder *read-write* [permission](/manual/api/reference/usergroup/object#permission) verfügen.<br><br>Der Parameter `rules` wird in der folgenden Tabelle ausführlich beschrieben.<br><br>[Parameterverhalten](/manual/api/reference_commentary#parameter-behavior):<br>- *erforderlich*|

::: noteimportant
Wenn keine Regeln angegeben werden, gibt es nichts zu aktualisieren und das Ergebnis ist leer.
:::

::: notetip
Der Vergleich wird nur für Hostgruppen und Vorlagen durchgeführt.
Auslöser und Diagramme werden nur für importierte Vorlagen verglichen; alle anderen werden als "neu" betrachtet.
:::

Das Objekt `rules` unterstützt die folgenden Parameter.

|Parameter|[Type](/manual/api/reference_commentary#data-types)|Beschreibung|
|--|--|------|
|discoveryRules|object|Regeln für den Import von LLD-Regeln.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue LLD-Regeln erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene LLD-Regeln aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden LLD-Regeln, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|graphs|object|Regeln für den Import von Diagrammen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Diagramme erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Diagramme aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Diagramme, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|host_groups|object|Regeln für den Import von Hostgruppen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Hostgruppen erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Hostgruppen aktualisiert; Standardwert: `false`.|
|template_groups|object|Regeln für den Import von Vorlagengruppen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Vorlagengruppen erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Vorlagengruppen aktualisiert; Standardwert: `false`.|
|hosts|object|Regeln für den Import von Hosts.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Hosts erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Hosts aktualisiert; Standardwert: `false`.<br><br>Dieser Parameter hat keine Auswirkung auf die Ausgabe. Er ist nur aus Konsistenzgründen mit `configuration.import` zulässig.|
|httptests|object|Regeln für den Import von Webszenarien.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Webszenarien erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Webszenarien aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Webszenarien, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|images|object|Regeln für den Import von Bildern.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Bilder erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Bilder aktualisiert; Standardwert: `false`.<br><br>Dieser Parameter hat keine Auswirkung auf die Ausgabe. Er ist nur aus Konsistenzgründen mit `configuration.import` zulässig.|
|items|object|Regeln für den Import von Datenpunkten.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Datenpunkte erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Datenpunkte aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Datenpunkte, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|maps|object|Regeln für den Import von Karten.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Karten erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Karten aktualisiert; Standardwert: `false`.<br><br>Dieser Parameter hat keine Auswirkung auf die Ausgabe. Er ist nur aus Konsistenzgründen mit `configuration.import` zulässig.|
|mediaTypes|object|Regeln für den Import von Medientypen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Medientypen erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Medientypen aktualisiert; Standardwert: `false`.<br><br>Dieser Parameter hat keine Auswirkung auf die Ausgabe. Er ist nur aus Konsistenzgründen mit `configuration.import` zulässig.|
|templateLinkage|object|Regeln für den Import von Vorlagenverknüpfungen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden Vorlagen, die nicht mit dem zu importierenden Host oder der zu importierenden Vorlage verknüpft sind, aber in den importierten Daten vorhanden sind, verknüpft; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Vorlagen, die mit dem zu importierenden Host oder der zu importierenden Vorlage verknüpft sind, aber in den importierten Daten nicht vorhanden sind, ohne Entfernen der von den getrennten Vorlagen geerbten Entitäten (Datenpunkte, Auslöser usw.) getrennt; Standardwert: `false`.|
|templates|object|Regeln für den Import von Vorlagen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Vorlagen erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Vorlagen aktualisiert; Standardwert: `false`.|
|templateDashboards|object|Regeln für den Import von Vorlagen-Dashboards.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Vorlagen-Dashboards erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Vorlagen-Dashboards aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Vorlagen-Dashboards, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|triggers|object|Regeln für den Import von Auslösern.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Auslöser erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Auslöser aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Auslöser, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|
|valueMaps|object|Regeln für den Import von Wertzuordnungen für Hosts oder Vorlagen.<br><br>Unterstützte Parameter:<br>`createMissing` - `(boolean)` wenn auf `true` gesetzt, werden neue Wertzuordnungen erstellt; Standardwert: `false`;<br>`updateExisting` - `(boolean)` wenn auf `true` gesetzt, werden vorhandene Wertzuordnungen aktualisiert; Standardwert: `false`;<br>`deleteMissing` - `(boolean)` wenn auf `true` gesetzt, werden Wertzuordnungen, die in den importierten Daten nicht vorhanden sind, aus der Datenbank gelöscht; Standardwert: `false`.|

[comment]: # ({/fa5f4195-0ae26f0f})

[comment]: # ({5ee9fb6b-43693d8e})
### Rückgabewerte

`(array)` Gibt ein Array mit den Änderungen in der Konfiguration zurück, die vorgenommen werden.

[comment]: # ({/5ee9fb6b-43693d8e})

[comment]: # ({b41637d2-b41637d2})
### Beispiele

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({ee3ffa2c-d979e902})
#### Vergleich des Imports einer Vorlage

Vergleichen Sie die in der XML-Zeichenfolge enthaltene Vorlage mit den aktuellen Systemelementen und zeigen Sie an, was geändert wird, wenn diese Vorlage importiert wird.

[Anfrage](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "configuration.importcompare",
    "params": {
        "format": "xml",
        "rules": {
            "discoveryRules": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "graphs": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "host_groups": {
                "createMissing": true,
                "updateExisting": true
            },
            "template_groups": {
                "createMissing": true,
                "updateExisting": true
            },
            "httptests": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "items": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "templateLinkage": {
                "createMissing": true,
                "deleteMissing": true
            },
            "templates": {
                "createMissing": true,
                "updateExisting": true
            },
            "templateDashboards": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "triggers": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            },
            "valueMaps": {
                "createMissing": true,
                "updateExisting": true,
                "deleteMissing": true
            }
        },
        "source": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<zabbix_export><version>7.4</version><template_groups><template_group><uuid>7df96b18c230490a9a0a9e2307226338</uuid><name>Templates</name></template_group></template_groups><templates><template><uuid>5aef0444a82a4d8cb7a95dc4c0c85330</uuid><template>New template</template><name>New template</name><groups><group><name>Templates</name></group></groups><items><item><uuid>7f1e6f1e48aa4a128e5b6a958a5d11c3</uuid><name>Zabbix agent ping</name><key>agent.ping</key><delay>3m</delay></item><item><uuid>77ba228662be4570830aa3c503fcdc03</uuid><name>Apache server uptime</name><type>DEPENDENT</type><key>apache.server.uptime</key><delay>0</delay><trends>0</trends><value_type>TEXT</value_type><preprocessing><step><type>REGEX</type><parameters><parameter>&lt;dt&gt;Server uptime: (.*)&lt;/dt&gt;</parameter><parameter>\\1</parameter></parameters></step></preprocessing><master_item><key>web.page.get[127.0.0.1/server-status]</key></master_item></item><item><uuid>648006da5971424ead0c47ddbbf1ea2e</uuid><name>CPU utilization</name><key>system.cpu.util</key><value_type>FLOAT</value_type><units>%</units><triggers><trigger><uuid>736225012c534ec480c2a66a91322ce0</uuid><expression>avg(/New template/system.cpu.util,3m)&gt;70</expression><name>CPU utilization too high on 'New host' for 3 minutes</name><priority>WARNING</priority></trigger></triggers></item><item><uuid>590efe5731254f089265c76ff9320726</uuid><name>Apache server status</name><key>web.page.get[127.0.0.1/server-status]</key><trends>0</trends><value_type>TEXT</value_type></item></items><valuemaps><valuemap><uuid>8fd5814c45d44a00a15ac6eaae1f3946</uuid><name>Zabbix agent ping</name><mappings><mapping><value>1</value><newvalue>Available</newvalue></mapping><mapping><value>0</value><newvalue>Not available</newvalue></mapping></mappings></valuemap></valuemaps></template></templates></zabbix_export>\n"
    },
    "id": 1
}
```

Antwort:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "templates": {
            "updated": [
                {
                    "before": {
                        "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                        "template": "New template",
                        "name": "New template",
                        "groups": [
                            {
                                "name": "Templates"
                            }
                        ]
                    },
                    "after": {
                        "uuid": "5aef0444a82a4d8cb7a95dc4c0c85330",
                        "template": "New template",
                        "name": "New template",
                        "groups": [
                            {
                                "name": "Templates"
                            }
                        ]
                    },
                    "items": {
                        "added": [
                            {
                                "after": {
                                    "uuid": "648006da5971424ead0c47ddbbf1ea2e",
                                    "name": "CPU utilization",
                                    "key": "system.cpu.util",
                                    "value_type": "FLOAT",
                                    "units": "%"
                                },
                                "triggers": {
                                    "added": [
                                        {
                                            "after": {
                                                "uuid": "736225012c534ec480c2a66a91322ce0",
                                                "expression": "avg(/New template/system.cpu.util,3m)>70",
                                                "name": "CPU utilization too high on 'New host' for 3 minutes",
                                                "priority": "WARNING"
                                            }
                                        }
                                    ]
                                }
                            }
                        ],
                        "removed": [
                            {
                                "before": {
                                    "uuid": "6805d4c39a624a8bab2cc8ab63df1ab3",
                                    "name": "CPU load",
                                    "key": "system.cpu.load",
                                    "value_type": "FLOAT"
                                },
                                "triggers": {
                                    "removed": [
                                        {
                                            "before": {
                                                "uuid": "ab4c2526c2bc42e48a633082255ebcb3",
                                                "expression": "avg(/New template/system.cpu.load,3m)>2",
                                                "name": "CPU load too high on 'New host' for 3 minutes",
                                                "priority": "WARNING"
                                            }
                                        }
                                    ]
                                }
                            }
                        ],
                        "updated": [
                            {
                                "before": {
                                    "uuid": "7f1e6f1e48aa4a128e5b6a958a5d11c3",
                                    "name": "Zabbix agent ping",
                                    "key": "agent.ping"
                                },
                                "after": {
                                    "uuid": "7f1e6f1e48aa4a128e5b6a958a5d11c3",
                                    "name": "Zabbix agent ping",
                                    "key": "agent.ping",
                                    "delay": "3m"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    },
    "id": 1
}
```

[comment]: # ({/ee3ffa2c-d979e902})

[comment]: # ({f4cf61e8-c9a0185c})
### Quelle

CConfiguration::importcompare() in *ui/include/classes/api/services/CConfiguration.php*.

[comment]: # ({/f4cf61e8-c9a0185c})
