JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.스크립트를 실행할 때(스크립트 창에서 또는 추가 기능에서 트리거하여) (1) 스크립트 창이 있는 디렉터리 위치에 도달하거나 (2) 스크립트가 포함된 추가 기능의 ID입니다. JMP는 이를 실행하기 위해 스크립트를 열어야 했기 때문에 이를 알고 있습니다. 이것을 할 수 있는 방법이 있습니까?
$ADDIN_HOME(id)를 사용하여 추가 기능 컨텍스트에서 이 작업을 수행할 수 있다는 것을 알고 있습니다. 여기서 문제는 여러 추가 기능으로 패키징하는 공통 포함 사항이 있고 각 추가 기능에 대해 파일을 변경할 필요가 없다는 것입니다. 실수로 추가 기능 #1에서 추가 기능 #2까지 일반 포함의 복사본을 만들고 추가 기능 #2에서 올바른 경로를 사용하도록 포함의 ID를 변경하는 것을 잊은 내 자신을 볼 수 있습니다.
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.POSIX와 Windows 경로 구분 기호 사이를 변환하는 내장 함수도 있습니다.

Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.Jeff에게 감사합니다. 훌륭합니다!
그래도 다른 해결책을 찾았습니다. 현재 데이터 테이블과 동일한 디렉토리에 스크립트를 저장한 다음 데이터 테이블의 경로를 얻습니다.
dt = Current Data Table();
path = dt<< getpath;
결과 "경로"는 백슬래시가 있는 내 디렉터리 경로입니다.
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.나는 Jeff의 솔루션을 좋아합니다. 그러나 이러한 목적을 위한 전용 유틸리티 기능도 있습니다. 다음은 예입니다.
Convert File Path( "$HOME", Windows );
POSIX에서 Windows로 형식을 변경하는 것 이상을 수행할 수 있습니다. 도움말 > 스크립팅 색인 > 기능 > POSIX를 참조하십시오.
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.JMP와 JSL은 슬래시 방향에 신경 쓰지 않습니다. 어느 쪽이든 작동합니다.
JMP 외부에서 경로 문자열을 사용해야 하는 경우 다음을 사용할 수 있습니다. ()로 대체:
foo="c:/my directory/my directory/my directory";
substitute into(foo, "/", "\");
show(foo);
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.솔루션이 작동하지 않습니다. 결과 경로는 슬래시 /로, 백 슬래시 \로 필요합니다. 누군가 해결책을 알고 있습니까?
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.DEF 파일 찾기와 결합된 Get Default Directory는 작동하는 것처럼 들리지만 불편한 해킹처럼 보입니다.투자 회수는 그만한 가치가 있을 것입니다. 저는 모든 파일 경로 정의에 대한 표준 포함 파일을 가지고 있지만 각 추가 기능(즉, 귀하가 설명하는 동일한 문제)에 대해 별도의 개정판이 있으므로 상위 추가 기능의 ID를 동적으로 발견할 수 있는 것은 매우 유용할 것입니다. 특징.해킹이 매력적으로 들리기 시작했습니다. DEF 파일을 읽는 것에 대해 생각하지 않았습니다 ...
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.나는 일반적으로 현재 스크립트의 경로를 얻기 위해 기본 디렉토리 가져오기 기능 또는 빈 문자열이 있는 파일 경로 변환 기능을 사용합니다.
path1 = Get Default Directory();
path2 = Convert File Path( "" );
Show( path1, path2 );
내 "C:\Public" 폴더에 있는 파일에서 이 스크립트를 실행할 때의 로그는 다음과 같습니다.
path1 = "/C:/Public/";
path2 = "/C:/Public/";
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.com.cmpny.dept.addin1을 호출할 수 없고 pmroz가 제안하는 일반적인 추가 기능을 사용하지 않는 경우 추가 기능을 열 수 있으므로 해당 스크립트가 있는 폴더를 아는 것으로 충분합니다. 동일한 폴더에서 .def를 만들고 거기에서 ID를 추출하십시오.
이것은 실제로 나에게 두 번째 잠재적인 응용 프로그램을 제공합니다. 현재 실행 중인 추가 기능의 addin.def에 들어갈 수 있는 경우(하지만 지금은 할 수 없는 것 같습니다) addin.def에서 id 및 addinVersion을 가져온 다음 비교하여 버전 확인을 수행할 수 있습니다. Internet Open을 사용하여 얻을 수 있는 최신 추가 기능 버전 목록입니다. 그런 다음 사용자의 로컬 addinVersion이 최신이고 가장 큰지 확인할 수 있습니다.
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.예, 하지만 General Functions.jsl에서 함수를 호출하는 다른 추가 기능을 식별하는 줄을 General Functions.jsl에 포함하고 싶습니다.
즉, com.cmpny.dept.addin1에서 스크립트는 General Functions.jsl의 함수를 호출할 수 있습니다. com.cmpny.dept.addin1이 호출했음을 나타내는 General Functions.jsl의 변수를 참조하고 싶습니다.
Re: JSL은 현재 실행 중인 스크립트의 경로를 식별합니다.일반적인 포함 파일을 자체 애드인으로 만들지 않는 이유는 무엇입니까?그렇게 하면 다음과 같이 포함할 수 있습니다.
// Load functions common to various apps
include("$ADDIN_HOME(com.cmpny.dept.common)\General Functions.jsl");