So laden Sie die Aktualisierung der JSL-Datei neuIch habe eine JSL-Datei (list.jsl) mit Mähnelisten. Wie folgt. Diese Datei wird aktualisiert, indem eine Python-Datei ausgeführt wird, die von meiner GUI.jsl aufgerufen wird
Ich versuche, die Tabellen zu aktualisieren, indem ich ein Aktionselement namens aufrufe MongoDB_table_list_refresh - versucht im Grunde, die aktualisierte Datei neu zu laden.
Aber es irrt!Irgendeine Idee, wie man es beheben kann oder eine neue Methode?
</CODE></STRONG></P><PRE><CODE class=" language-jsl">MongoDB_table_list_refresh = Expr(
Include( "./GUI_Files/Lists.jsl" );
);GUI.jsl
Button Box( " Refresh\!NCollections",
Caption( "Loading collections from Mongo DB. \!NPlease wait..." );
Wait( 0 );
RunProgram( executable( "python" ), options( mongo_path || "update_mongo_tables_lists_file.py" ) );
Caption( remove );
MongoDB_table_list_refresh;
selected_db = Database_name << get selected;
If( selected_db == "mongo_dev_amr",
Mongo_Table << Set Items( Mongo_table_list_mongo_dev_amr )
);
If( selected_db == "mongo_amr",
Mongo_Table << Set Items( Mongo_table_list_mongo_amr )
);list.jsl
Mongo_table_list_mongo_dev_amr = { "ddr_dv_dev", "ddr_dv_pi", "ddr_internal", "ddr_comp_fsm", "ddr_ac", "ddr_dc" }; // This variable is auto updated by generate_mongo_tables_lists_file.py
Mongo_table_list_mongo_amr = { "ddr_internal" }; // This variable is auto updated by generate_mongo_tables_lists_file.pyBetreff: So laden Sie die aktualisierte JSL-Datei neuWir haben die Lösung gefunden, indem wir Python darin integriert haben. Holen Sie sich die aktualisierte Liste von Python direkt als Liste und parsen Sie sie dann. In diesem Fall müssen wir die Datei, in der diese Liste aktualisiert wird, nicht aktualisieren und überprüfen.
output = RunProgram( executable( "python" ),
options( mongo_path || "update_mongo_tables_lists_file.py"),
readfunction( "text" )
);
lines = Words (output, "\!N");
For( i = 1 , i <= N Items( lines ), i++,
If( Pat Match( lines[i], "[" ),
db_str = Word (2, Word (1, lines[i], ":"));
collection_str = Word (1, Word (2, lines[i], "["), "]");
collection_str = Substitute (collection_str, ",", "");
collection_str = Substitute (collection_str, "'", "");
collection_list = Words (collection_str);
if( db_str == "mongo_dev_amr",
Mongo_table_list_mongo_dev_amr = collection_list );
if( db_str == "mongo_amr",
Mongo_table_list_mongo_amr = collection_list );
selected_db = Database_name << get selected;
if( db_str == selected_db,
Mongo_Table << Set Items( collection_list ); );
),
);Betreff: So laden Sie die aktualisierte JSL-Datei neuWas ist die Fehlermeldung und welches Programm hat sie erzeugt?
Wahrscheinlich möchten Sie readfunction("text") zu den runprogram-Argumenten hinzufügen.