안녕하세요, 일부 다운스트림 JSL 스크립트에서 나중에 "포함"하는 기본 JSL 스크립트에 "이름 기본값은 here(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를 Here(1)로 지정하면
Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );
결과를 준다
Y = 1;
Y = 9;
here:Y = 1;
이 주제에 대한 내 모든 말은 암호화된 코드, 이중 콜론, "::" 범위가 지정된 다음 이중 콜론을 지정하지 않고 참조되는 코드가 어딘가에 있다는 추측으로 이어집니다.이름 기본값이 Here(1)로 지정된 경우 이중 콜론이 없는 참조는 JSL이 이전에 본 적이 없는 변수 이름을 생성하고 예외 오류를 발생시킵니다.