JMP Live 공간에 폴더가 있는지 확인하세요안녕하세요,
JMP18에서 JSL을 사용하면 ' 폴더 만들기 ' 기능을 사용하여 개인 공간과 JMP Live의 다른 공간 모두에 새 폴더를 만들 수 있습니다. 개인 공간에서 폴더를 만들 때 JSL의 ' 폴더 찾기 ' 기능을 사용하여 먼저 모든 기존 폴더를 나열하고 새 폴더가 이미 있는지 확인할 수 있습니다. 그런 다음 JSL을 통해 고유한 폴더 이름을 보장할 수 있습니다.
JMP Live의 기본 동작은 폴더 이름에 " (n) "을 추가하여 고유한 폴더 이름을 만드는 것입니다. 여기서 ' n '은 같은 이름을 가진 폴더의 개수입니다. 하지만 저는 이것을 피하고 싶습니다.
내 개인 공간이 아닌 다른 JMP Live 공간에서도 같은 동작을 관찰했습니다. 동일한 폴더 이름은 자동으로 " (n) "으로 추가됩니다. 그러나 ' 폴더 찾기 ' 기능에는 매개변수로 스페이스 키가 없으므로 내 개인 공간이 아닌 공간에 이미 있는 폴더를 확인할 수 없습니다.
스페이스 키를 매개변수로 허용하는 유일한 함수는 ' 폴더 만들기 ' 함수라는 것을 알게 되었습니다. 관련 JSL 도움말 페이지를 여기에서 확인했지만 이 상황은 설명되어 있지 않습니다.
JMP Live 공간에서 기존 폴더를 추출하는 데 권장되는 방법은 무엇인가요? 아니면 제가 여기서 명백한 것을 놓친 건가요?
감사해요!
폴
자동화 및 스크립팅Re: JMP Live 공간에 폴더가 있는지 확인저는 JMP Live에 익숙하지 않지만 쿼리의 페이지 크기를 늘려보았나요(또는 Next() 호출을 활용했나요)? 스크립팅 인덱스에는 JMP 도움말 페이지에서 찾을 수 없는 몇 가지 예가 있을 수 있습니다.

Re: JMP Live 공간에 폴더가 있는지 확인고맙습니다, Jarmo
아니요, 아직 시도하지 않았습니다. 개인 공간에 기존 폴더가 있는지 확인하는 데 잘 작동하는 코드는 다음과 같습니다.
고유한 폴더 이름을 보장하는 코드는 없지만(단순화를 위해) 쉽게 만들 수는 있습니다.
제 게시물에서 언급했듯이 폴더 찾기 기능에는 스페이스 키가 없고 기본적으로 내 개인 JMP Live 공간에서 쿼리를 실행합니다.
FindFolders 의 PageSize 매개변수를 사용하면 긴 폴더 목록(존재하는 경우)을 페이지별로 살펴볼 수 있다고 추측합니다.
// open the connection to JMP Live
liveConnection = New JMP Live( Connection( ) );
// get the user name from JMP Live
user = liveConnection << Get Username;
// get the existing folders already in my Space
getFolders = liveConnection << Find Folders( Publisher( user ) );
folderlist = getFolders << As Scriptable();
// Define the folder name you want to check or create
folderName = "new_folder_name";
// Define the space key of the Space you wish to create the folder in
spaceKey = "~"; // set key to "~" for your personal space or use the space key
// Initialize a variable to store the folder ID
folderID = .;
// Check if the folder exists. If it exists, folderID will contain the ID
// if the folder does not exist, folderID will contain a missing value
For( i = 1, i <= folderlist << Get Number Of Items, i += 1,
If( folderlist[i] << Get Title == folderName,
folderID = folderlist[i] << Get ID;
Show( folderID );
Break();
)
);
// If the folder does not exist, create it. folderID will contain the folder ID.
If( Is Missing( folderID ),
newFolder = liveConnection << Create Folder(
Space( spaceKey ), // Use "~" for personal space or specify the space key
Title( folderName ),
Description( "Automatically created folder." )
);
folderID = newFolder << As Scriptable;
folderID = folderID << Get ID;
);
Re: JMP Live 공간에 폴더가 있는지 확인한 가지 더 말씀드리자면, 폴더 찾기 기능을 실행하고 반환된 목록을 수동으로 검사하면 개인 공간에 각 폴더에 대한 목록 항목이 있는 것을 볼 수 있습니다. 다른 항목은 없습니다(폴더가 있는 다른 공간에는 액세스할 수 있지만).
폴
Re: JMP Live 공간에 폴더가 있는지 확인찾기 폴더에서 이 부분을 삭제해 보셨나요?
Publisher( user )
Re: JMP Live 공간에 폴더가 있는지 확인안녕하세요 Jarmo님,
제안해 주셔서 감사합니다. 우승자가 되었어요!
이 코드( 폴더 찾기 기능에 매개변수로 검색 기능을 추가):
// open the connection to JMP Live
liveConnection = OpenJMPLiveConnection( );
foldername = "foldername";
// get the existing folders already in my Space
getFolders = liveConnection << Find Folders( Search( foldername ) );
folderlist = getFolders << As Scriptable();
Show(folderlist);
개인 공간 외부에 폴더가 있으면 해당 폴더의 이름, 설명, ID 및 URL을 반환합니다.
폴