JMP 추가 기능 스크립트 캐싱?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />나는 JMP Addin을위한 많은 스크립트를 개발하고있다 ....
현재로서는, 우리는 동일한 addin의 2 개의 포장 버전이있다. 하나는 DEV 용이고 하나는 Production 용입니다.
대부분의 사용자는 PRO 버전 만 설치됩니다 ...
그러나 우리 개발자들과 우리의 테스터들은 PRO 버전과 DEV Addins를 모두 가지고있을 것입니다 ...
분명히, addins에 포함 된 스크립트는 같은 이름을 가지고 있습니다 ... 변수는 AddinName 및 / 또는 DSN Name과 같이 다릅니다. 그리고 명백하게 DEV 버전은 스크립트 이름이 다르더라도 PRO 버전보다 새로운 코드를 가질 것입니다.
내가 마침내 오늘 알아 차 렸던 것은 JMP (9와 12 모두)가 스크립트를 캐시하는 것으로 보인다는 것이 었습니까?
가장 최근에 설치 한 ADDIN 파일의 스크립트를 실행하고 있습니다. 그래서 만약 내가 DEV 추가 기능을 설치하면 PRO addin ... DEV 스크립트를 실행하지 않는 것 같습니다. 그것은 항상 PRO Addin 디렉토리에서 스크립트를로드하는 것으로 보이며, MENU에서 스크립트를 호출하지 않습니다. PRO를 처음 설치 한 후 DEV를 설치하면 반대가 발생합니다 ... :에스
1) Addin ID와 이름은 독특하고 독특합니다.
2) 추가 된 디렉토리가 다릅니다 ...... 그래서 다른 디렉토리에있는 스크립트 이름이 같더라도 각 addin은 자신의 디렉토리에있는 스크립트의 다른 인스턴스를가집니다 ...
2a) PRO 메뉴에서 PRO 스크립트를 실행하면 이것이 더욱 분명해집니다. LOG 파일을보고 pro 스크립트가 아닌 DEV 스크립트를 실행했는지 확인하고 포함을 위해 DEV 폴더를 사용하고 있습니다!
2b) jmpcust 메뉴 정의가 $ ADDIN_HOME ( "ADDIN-NAME") 대 $ ADDIN_HOME ( "ADDIN-NAMEDev")을 사용하고 있지만 가장 최근에 설치된 애드 인 버전 (PRO vs DEV)
예 : 방금 PRO MENU 항목에서이 스크립트를 실행했습니다 ... 그럼에도 불구하고 DEV CODE가 실행되고있는 것을 볼 수 있습니다 .. DEV 네임 스페이스가있는 것 같아요 ??
strDefaultDir = 기본 디렉토리 가져 오기 ();
print ( "Including :"|| strDefaultDir || "MFG360-Common.jsl");
포함 (strDefaultDir || "MFG360-Common.jsl", 구문 분석 전용);
로그 출력 ...
/ * :
추가 기능이 성공적으로로드되었습니다 : MFG360
추가 기능이 성공적으로로드되었습니다 : MFG360 _Dev
"다음을 포함 : /C:/Users/klockk.AUTH/AppData/Local/SAS/JMP/Addins/MFG360 개발자 /MFG360-Common.jsl "
나는 DEV CODE라고 부르지 않았다 !! MFG360 메뉴에서 메뉴 항목을 선택했습니다 ... MFG360_Dev 메뉴가 아니라 ...
JMP는 스크립트 이름을 캐싱하고 등록 된 각 addin에 대해 .jmpcust 파일에있는 내용을 올바르게 따르지 않습니까 ??
제목 : Re : JMP Addin 스크립트 캐싱?
나는이 문제를 JMP9와 JMP12에서 모두 보았습니다.
TOP 메뉴 이름은 다르지만 그 아래의 구조는 같습니다 ...
Addin.def 파일은 다른 ID와 이름을 지정합니다.
id = MFG360Dev
이름 = "MFG360_Dev"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
loadsAtStartup = 1
--vs--
id = MFG360
이름 = "MFG360"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
jmpcust 파일은 다른 상위 메뉴 인 Menu ...를 지정하고 $ ADDIN_HOME () 변수를 사용하여 스크립트의 올바른 경로를 가리 킵니다.
나는 MENU 이름이 DEV vs PRO와 똑같은 이름을 가지고 있기 때문에 아마도 JMP가 혼란스러워 할 것이라고 생각했기 때문에 공간 대신 밑줄을 사용하도록 변경했지만 여전히 운이 없다.
http://www.jmp.com/ns/menu "version ="3 ">
HELP
MFG360 DEV
MFG360 개발자
FAB
Fab
많은 역사
로트 기록
IN-HOUSE HISTORY
사내 기록
$ ADDIN_HOME ( MFG360Dev ) \ Lot_History.jsl
OUTSOURCE 장비의 역사
EQU 내역을 아웃소싱
$ ADDIN_HOME ( MFG360Dev ) \ Outsource_Equipment_History.jsl
- vs.-
http://www.jmp.com/ns/menu "version ="3 ">
HELP
MFG360
MFG360
FAB
Fab
많은 역사
로트 기록
IN-HOUSE HISTORY
사내 기록
$ ADDIN_HOME ( MFG360 ) \ Lot_History.jsl
OUTSOURCE 장비의 역사
EQU 내역을 아웃소싱
$ ADDIN_HOME ( MFG360 ) \ Outsource_Equipment_History.jsl
나는 꽤 많이 해본 적이 있는데, View-> ADD-Ins에 들어가서 하나 또는 다른 하나의 시간 만 활성화하면 올바른 경로와 스크립트가 활용되지만, 둘 다 가능하게하면 .. JMP는 $ ADDIN_HOME을 사용하는 것으로 보입니다.
마지막으로 활성화 한 경우 (또는 JMP 시작시 두 파일 모두 활성화 된 경우 addinRegistry.xml 파일을 통해로드됩니다.)
제목 : Re : JMP Addin 스크립트 캐싱?이봐, 클락 크,
이 또한 수사를위한 기술 지원 트랙을 여는 좋은 후보자로 보인다. support@sas.com ).
JMP 버전은 무엇입니까?
JMP는 스크립트를 캐시하지 않지만 추가 기능이 메뉴에 추가하는 메뉴 항목의 캡션 및 ID에 대해 궁금합니다. ID와 캡션이 동일한 두 개의 다른 하위 메뉴에 항목을 추가하면 PROD 추가 기능에 대한 메뉴 항목을 선택한 경우에도 JMP에서 DEV 추가 기능의 스크립트를 실행할 수 있습니다. 우리는 JMP 12에서이 모호성을 해결하기 위해 변경 작업을 수행 했으므로 JMP 12에서이 작업을보고있는 것이 놀랍습니다. 그러나 아마도 약간 다른 경우 일 수 있습니다. 항목을 구성하는 방법을 볼 수 있도록 사용자 지정 메뉴를 화면 캡처 할 수있는 방법을 사용하면 해결 방법을 찾고이 코드가 나타내는 코드의 단점을 해결하는 데 도움이 될 수 있습니다. 또는 화면 캡처가 불가능한 경우 메뉴 항목의 계층 구조와 항목의 ID 및 캡션을 알려주십시오.
감사,
에릭
제목 : Re : JMP Addin 스크립트 캐싱?이 테스트를 더 진행하면 시작시로드 된 마지막 addin에서 스크립트를로드하고 실행하는 것처럼 보입니다.
그것은 addins가로드되는 순서와 직접적으로 상관 관계가있는 것으로 보이며, 이는 등록 된 Addins에 대한 addinRegistry.xml 순서와 직접적으로 관련됩니다.
로그 파일에 표시되는 내용 :
추가 기능이 성공적으로로드되었습니다 : MFG360
추가 기능이 성공적으로로드되었습니다 : MFG360Dev
그러면 addin이 DEV Addin에서 코드를 실행합니다.
addinRegistry 파일에서 순서를 바꾸면 JMP는 addin / menu를 사용하더라도 PRO ADDIN_HOME에서 스크립트를 실행합니다.
또한 View-> Add-Ins로 이동하여 하나 또는 그 이상의 addin을 비활성화하여 올바른 스크립트 세트를 사용할 수 있음을 발견했습니다. 그리고 일들은 괜찮아. 하지만 문제없이 같은 시간에 둘 다 사용할 수는 없습니다.