# orgsync

orgsync ist ein Werkzeug zur Synchronisierung zweier Organisationen.
Sie können damit Personen, Artikel, Dateien und deren Abhängigkeiten synchronisieren.
Wenn ein Datensatz nicht vorhanden ist, wird er erstellt. Wenn ein Datensatz vorhanden ist, wird er aktualisiert, und der zuletzt aktualisierte Datensatz wird als Quelle verwendet.
Wen Sie Personen oder Artikel synchronisieren, werden auch einige andere Daten synchronisiert.

Erforderlich: JDK 17

## Übersicht über die Abhängigkeiten

Dateien
- Kategorien

Person
- Titel
- Kategorien
- Anhänge

Artikel
- Einheiten
- Währungen
- Kategorien
- Anhänge

## Beispiele

Personen synchronisieren:
java -jar orgsync.jar -p -orga mariamuster -keya b01abF843240uUbdb4Eed4dBbf20Ff87 -orgb hansmuster -keyb aF3cb2Uu9f304dD3f8o5ce81Oo28Pe1E

Artikel synchronisieren:
java -jar orgsync.jar -a -orga mariamuster -keya b01abF843240uUbdb4Eed4dBbf20Ff87 -orgb hansmuster -keyb aF3cb2Uu9f304dD3f8o5ce81Oo28Pe1E

Nur aktive Personen synchronisieren:
java -jar orgsync.jar -p -orga mariamuster -keya b01abF843240uUbdb4Eed4dBbf20Ff87 -orgb hansmuster -keyb aF3cb2Uu9f304dD3f8o5ce81Oo28Pe1E -pf onlyActive=true

Synchronisieren Sie Artikel und nur aktive Personen, die zur Kategorie "Mitarbeiter" gehören:
java -jar orgsync.jar -p -a -orga mariamuster -keya b01abF843240uUbdb4Eed4dBbf20Ff87 -orgb hansmuster -keyb aF3cb2Uu9f304dD3f8o5ce81Oo28Pe1E -pf "category=Employees onlyActive=true"

Artikel, Personen und alle Dateien synchronisieren:
java -jar orgsync.jar -a -orga mariamuster -keya b01abF843240uUbdb4Eed4dBbf20Ff87 -orgb hansmuster -keyb aF3cb2Uu9f304dD3f8o5ce81Oo28Pe1E -fsm all

## Kommandozeilenoptionen

-p
-a
-orga <alpha Organisation>
-keya <Alpha-Schlüssel>
-orgb <beta Organisation>
-keyb <Beta-Schlüssel>
-pf <Personenfilter>
-af <Artikelfilter>
-fsm <Datei-Synchronisierungsmodus>
-lsd <letzte Synchronisation delta>

### -p (Optional)
Verwenden Sie diese Option, wenn Sie Personen synchronisieren möchten. Beachten Sie, dass entweder diese Option oder -a vorhanden sein muss.

### -a (Optional)
Verwenden Sie diese Option, wenn Sie Artikel synchronisieren möchten. Beachten Sie, dass entweder diese Option oder -p vorhanden sein muss.

### -orga (Obligatorisch)
Die Alpha-Organisation, die Sie mit Beta synchronisieren möchten.

### -orgb (Obligatorisch)
Die Beta-Organisation, die Sie mit Alpha synchronisieren möchten.

### -keya (Obligatorisch)
Der API-Schlüssel für den Zugriff auf die Organisation alpha.

### -keyb (Obligatorisch)
Der API-Schlüssel für den Zugriff auf die Organisation beta.

### -pf (Optional)
Personenfilter-Schlüssel/Wert-Trennzeichen = und Filter-Trennzeichen ist ein Leerzeichen z.B. "category=Employee onlyActive=true".

category - Der Name der zu synchronisierenden Stammkategorie. Diese Kategorie muss in beiden Organisationen vorhanden sein.
onlyActive - Kennzeichen, um nur aktive Personen einzuschließen. Mögliche Werte: true, false (boolescher Wert).
onlyNotes - Kennzeichen, um nur Einträge mit Notizen einzuschließen. Mögliche Werte: true, false (boolesch).
onlyWithImages - Markierung, um nur Personen mit Bildern zu berücksichtigen. Mögliche Werte: true, false (boolesch).
onlyWithoutCategory - Markierung, um nur Personen ohne Kategorie einzuschließen. Mögliche Werte: true, false (boolesch).
query - Volltext-Suchanfrage (Text).

### -af (Optional)
Artikel-Filter-Schlüssel/Wert-Trennzeichen = und Filter-Trennzeichen ist ein Leerzeichen, z. B. "category=Services onlyActive=true".

category - Der Name der zu synchronisierenden Stammkategorie. Diese Kategorie muss in beiden Organisationen vorhanden sein.
onlyActive - Kennzeichen, um nur aktive Artikel einzuschließen. Mögliche Werte: true, false (boolescher Wert).
onlyCostCenters - Kennzeichen, um nur Einträge mit Kostenstellen einzuschließen. Mögliche Werte: true, false (boolesch).
onlyNotes - Kennzeichen, um nur Einträge mit Notizen zu berücksichtigen. Mögliche Werte: true, false (boolesch).
onlyRestock - Kennzeichen, um nur Artikel zu berücksichtigen, die wieder aufgefüllt werden müssen. Mögliche Werte: true, false (boolesch).
onlyWithImages - Flagge, um nur Artikel mit Bildern zu berücksichtigen. Mögliche Werte: true, false (boolesch).
onlyWithoutCategory - Markierung, um nur Artikel ohne Kategorie aufzunehmen. Mögliche Werte: true, false (boolesch).
query - Volltext-Suchanfrage (Text).

### -fsm (Optional)
Dateisynchronisationsmodus: mögliche Werte 'none', 'all' oder 'onlyAttached', Standardwert ist 'onlyAttached'.

### -lsd (Optional)
Letztes Synchronisationsdelta - die Zeit in Millisekunden, die seit der letzten Synchronisation und dem letzten bearbeiteten Datensatz vergehen muss, bevor dieser erneut synchronisiert wird, Standardwert ist 10 Sekunden.