Hauptmenü

Organisationen automatisch importieren

Begonnen von Marvin G. - FZJ, 01.06.2022 15:03:13

⏪ vorheriges - nächstes ⏩

Marvin G. - FZJ

Hallo,


über das Webinterface habe ich die Möglichkeit, eine csv-Liste mit Organisationen zu importieren. Hierbei werden noch nicht vorhandene Organisationen neu angelegt und bereits vorhandene angepasst. 
Habe ich die Möglichkeit, per API die Organisationen zu importieren? Ich kann zwar per API einzelne Organisationen anlegen oder einzelne Updaten, einfacher wäre es aber, wenn ich wie beim Import einfach meine Liste mitgeben könnte und dann selbst angelegt/upgedatet wird, je nachdem ob die Organisation schon da ist oder nicht. Aktuell müsste ich immer prüfen, gibt es eine Organisation XY schon, wenn ja muss ich mit der ID ein PATCH machen und wenn nein ein POST. Das ist ziemlich aufwendig, wenn ich dies regelmäßig mit einer Liste der aktuellen Organisationen machen möchte.


Vielen Dank 
Marvin

mplan

Hallo,
Es gibt dafür das Script kix18.CSVSync.pl.
Damit kann man auch Organisationen importieren.

Viele Grüße,
Michael



Marvin G. - FZJ

Hey Michael, 


ah perfekt. Damit klappt es wunderbar, danke. Das hatte ich gar nicht auf dem Schirm. 


Viele Grüße 
Marvin

Marvin G. - FZJ

Hey Michael,


ich habe doch noch ein kleines Problem. Ich würde hierüber auch gerne Organisationen auf invalid setzen.


Ich habe mir das Script mal angeschaut:


my $ValidId = 1;
if( $Config{'Org.ColIndex.ValidID'} =~/^SET\:(.+)/) {
  $ValidId = $1;
}
else {
  $ValidId = $CurrLine->[$Config{'Org.ColIndex.ValidID'}];
}


# get fixed organization attributes..
my %Organization = (
    City            => $CurrLine->[$Config{'Org.ColIndex.City'}],
    Number   => $CurrLine->[$Config{'Org.ColIndex.Number'}],
    Name     => $CurrLine->[$Config{'Org.ColIndex.Name'}],
    Comment  => $CurrLine->[$Config{'Org.ColIndex.Comment'}],
    Street   => $CurrLine->[$Config{'Org.ColIndex.Street'}],
    City     => $CurrLine->[$Config{'Org.ColIndex.City'}],
    Zip      => $CurrLine->[$Config{'Org.ColIndex.Zip'}],
    Country  => $CurrLine->[$Config{'Org.ColIndex.Country'}],
    Url      => $CurrLine->[$Config{'Org.ColIndex.Url'}],
    ValidID  => $ValidId,
);



So wie ich das verstehe, sollte er doch die Organisation Invalid setzen, wenn ich entweder SET:0 oder 0 in die Spalte schreibe, oder nicht? Das will er bei mir nicht so wirklich übernehmen, weder mit dem einen, noch mit dem anderen.


Viele Grüße 
Marvin


mplan

Hi Marvin,
bin jetzt kein großer Perl Experte ...
Nach dem Script müsste aus der Config die Zeile 
   Org.ColIndex.ValidID           = "SET:1"
ausgewertet werden und wenn der Wert mit "SET" beginnt, der Variablen ValidId zugewiesen werden.
Wird kein "SET" gefunden, wird der Wert aus der Konfig-Datei übernommen.
Es sollte also mit "SET:0" funktionieren, die Organisation "Ungültig  zu setzen".

Man könnte mal ein "print STDOUT ..." Statement dort hineinsetzen, um zu sehen, was für ein Wert geprüft wird und welchen Wert dann $ValidId nach der if-else hat.

Viele Grüße,
Michael



Torsten Thau

Hallo,

die ValidIDs lauten wie folgt


kix=# SELECT id, name FROM valid;
id |        name
----+---------------------
  1 | valid
  2 | invalid
  3 | invalid-temporarily
(3 rows)
kix=#


...wenn Du also "SET:2" machst, sollte es ein ungültiger Eintrag werden.

CU, Torsten

mplan

Danke, Thorsten

An die Nummerierung der Valid Zustände/Prüfung über die Tabelle hatte ich gar nicht weiter gedacht. Super!

Viele Grüße,
Michael

Marvin G. - FZJ

Morgen, 


so einfach gehts, vielen Dank Torsten für den Hinweis mit der 2. 


Viele Grüße 
Marvin