업데이트 JSL 파일을 다시로드하는 방법갈기 목록이있는 jsl 파일 (list.jsl)이 있습니다. 다음과 같이. 이 파일은 내 GUI.jsl에서 실행되는 python 파일을 실행하여 업데이트됩니다.
라는 작업 항목을 호출하여 테이블을 새로 고치려고합니다. MongoDB_table_list_refresh-기본적으로 업데이트 된 파일을 다시로드하려고합니다.
그러나 오류입니다! 그것을 고치는 방법이나 새로운 방법이 있습니까?
</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.py다시 : 업데이트 JSL 파일을 다시로드하는 방법오류 메시지는 무엇이며 어떤 프로그램에서 오류가 발생 했습니까?
아마도 당신은 runfunction 인자에 readfunction ( "text")를 추가하고 싶을 것이다.
다시 : 업데이트 JSL 파일을 다시로드하는 방법우리는 파이썬을 통합하여 해결책을 찾았습니다. 파이썬에서 업데이트 된 목록을 목록으로 직접 가져 와서 구문 분석하십시오. 이 경우이 목록이 업데이트 된 파일을 새로 고치고 확인할 필요가 없습니다.
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 ); );
),
);