안녕하세요, 일부 다운스트림 JSL 스크립트에서 나중에 "포함"하는 기본 JSL 스크립트에 "여기(1)에 대한 이름 기본값"이 있습니다.이러한 다운스트림 JSL 중 일부는 보기 전용으로 암호화됩니다.
기본 JSL 스크립트를 실행하면 오류가 발생합니다.
"이름 미확인: '' 액세스 또는 평가에서 {13} , "" /*###*/"
이것은 버그입니까? (JMP 14.3.0)
암호화된 스크립트에서 종료해야 하는 이유는 무엇입니까?이 명령을 사용한다는 이유로 다른 JSL 스크립트의 암호화를 해제하고 싶지는 않습니다.그렇지 않으면 이 문제를 해결할 방법이 있습니까?나는 100개의 전역을 가지고 있으므로 각각에 대한 특정 이름 공간을 피하고 싶었습니다.
감사해요!디제이
추측일 뿐이지만 범위 지정 오류일 수 있습니다.사용할 때
Names Default To Here( 1 );
JMP는 문자 그대로 Here라는 이름 공간을 만들고 범위가 지정되지 않은 모든 변수를
Variable Name = 1;
에게
Here:Variable Name = 1;
범위 지정 문제는 기존 범위 지정 구문에서 발생할 수 있습니다.
이전에 Names Default to Here(1)가 지정되지 않은 JSL에서 다음 대입문은 동일했습니다.
Y=1;
::Y=9;
Show(Y, ::Y);
.이 JSL의 결과는 다음과 같습니다.
Y = 9;
Y = 9;
그러나 Names Default to Here(1)가 지정된 경우
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
결과를 준다
Y = 1;
Y = 9;
here:Y = 1;
이 주제에 대한 모든 장황함은 암호화된 코드, 이중 콜론, "::" 범위 지정이 지정된 다음 이중 콜론이 지정되지 않은 상태에서 참조되는 어딘가에 있다고 추측하게 합니다.Names Default to Here(1)이 지정된 경우 이중 콜론이 없는 참조는 JSL이 이전에 본 적이 없는 변수 이름을 생성하고 예외 오류를 발생시킵니다.