플러그인 업데이트 예제
다음 예제는 설치된 플러그인의 버전과 FileMaker Pro 파일에서 컨테이너 필드에 있는 버전을 비교하고, 필요하면 플러그인을 업데이트합니다.
- 맞춤형 App 파일에서 플러그인 정보를 저장하기 위해
Plugin Update
라는 테이블을 생성합니다. - 다음 필드들을 정의합니다.
- 플러그인 업데이트 정보라는 레이아웃을 생성하고 단계 2에서 정의된 필드로 추가합니다.
- 다음 스크립트를 생성하고 플러그인 설치로 이름을 지정합니다.복사
오류 캡처 설정 [켬]
플러그인 파일 설치 [플러그인 업데이트::플러그인 파일]
#
#오류 처리하기
If [Get(마지막 오류) ≠ 0]
If [Get(마지막 오류) = 3]
사용자 설정 대화상자 보기 [플러그인 업데이트::플러그인 파일 & " 설치할 수 없습니다. 파일을 설치할 솔루션 허용이 FileMaker Pro 플러그인 설정에 선택되어 있는지 확인합니다."]
Else If [Get(마지막 오류) = 1550]
사용자 설정 대화상자 보기 [플러그인 업데이트::플러그인 파일 & " 설치되었지만 초기화할 수 없습니다."]
Else If [Get(마지막 오류) = 1551]
사용자 설정 대화상자 보기 [플러그인 업데이트::플러그인 파일 & " 설치할 수 없습니다."]
Else
사용자 설정 대화상자 보기 ["일반적인 오류 " & Get(마지막 오류) & " 설치할 때 발생했습니다. " & 플러그인 업데이트::플러그인 파일]
End If
End If - 다음 스크립트를 생성하고 "플러그인 버전 확인"으로 이름을 지정합니다.복사
레이아웃으로 이동 ["플러그인 업데이트 정보"]
레코드/요청/페이지로 이동 [처음]
Loop [ 지우기: 항상 ]
If [플러그인 업데이트::설치된 플러그인 버전 < 플러그인 업데이트::필요한 플러그인 버전]
#플러그인은 설치되거나 업데이트되어야 합니다.
스크립트 수행 [지정됨: 목록에서 ; "플러그인 설치" ;
매개 변수: ]
End If
레코드/요청/페이지로 이동 [다음; 마지막 항목 후 종료: 켬]
End Loop - 다음 스크립트를 생성하고 활성화 여부 확인으로 이름을 지정합니다.복사
오류 캡처 설정 [켬]
찾기 수행 [복원]
#설치된 플러그인 상태 필드에서 "활성화됨" 찾기
If[Get(찾은 개수) < Get(총 레코드 개수)]
사용자 설정 대화상자 보기 ["필수 플러그인 일부가 활성화되지 않았습니다. 파일을 설치할 솔루션 허용이 FileMaker Pro 플러그인 설정에 선택되어 있는지 확인합니다."]
End If - 데이터베이스가 열릴 때 순서대로 위의 스크립트를 참조하는 플러그인 업데이트 스크립트라는 시작 스크립트를 생성합니다.복사
스크립트 수행 [지정됨: 목록에서 ; "플러그인 버전 확인" ;
매개 변수: ]
스크립트 수행 [지정됨: 목록에서 ; "활성화 여부 확인" ;
매개 변수: ]
레이아웃으로 이동 [원본 레이아웃 ; 애니메이션: 없음 ]
필드 이름 |
필드 유형 |
플러그인 이름 |
텍스트 |
필요한 필드 버전 |
숫자 |
설치된 플러그인 버전 |
계산 (저장되지 않음) 예제 코드는 아래 클라이언트 플러그인 버전 계산을 참조하십시오. |
설치된 플러그인 상태 |
계산 (저장되지 않음) 예제 코드는 아래 클라이언트 플러그인 활성 상태 계산을 참조하십시오. |
플러그인 파일 |
컨테이너 |
클라이언트 플러그인 버전 계산
복사
Let(
[
PluginNamePosition = Position(Get(설치된 FM 플러그인); Plugin Name ; 1 ; 1);
PluginVersionStart = PluginNamePosition + Length(Plugin Name) + 1;
PluginVersionEnd = Position(Get(설치된 FM 플러그인); ";" ; PluginNamePosition ; 2);
PluginVersionLength = PluginVersionEnd - PluginVersionStart
];
If(PatternCount(Get(설치된 FM 플러그인) ; Plugin Name) = 0 ; "" ; Middle(Get(설치된 FM 플러그인) ; PluginVersionStart ; PluginVersionLength))
)
클라이언트 플러그인 활성 상태 계산
복사
Let(
[
PluginNamePosition = Position(Get(설치된 FM 플러그인); Plugin Name ; 1 ; 1);
PluginStateStart = Position(Get(설치된 FM 플러그인); ";" ; PluginNamePosition ; 2) + 1;
PluginStateEnd = If(Position(Get(설치된 FM 플러그인); "¶" ; PluginNamePosition ; 1) > 0; Position(Get(설치된 FM 플러그인); "¶" ; PluginNamePosition ; 1); Length(Get(설치된 FM 플러그인)) + 1);
PluginStateLength = PluginStateEnd - PluginStateStart
];
If(PatternCount(Get(설치된 FM 플러그인) ; Plugin Name) = 0 ;
"" ; Middle(Get(설치된 FM 플러그인) ; PluginStateStart ; PluginStateLength))
)
참고
- 설치할 플러그인에 대해서 파일을 설치할 솔루션 허용 옵션이 클라이언트의 플러그인 설정에서 선택되어야만 합니다. 플러그인 설정 변경하기를 참조하십시오.
- 플러그인이 클라이언트의 플러그인 설정에서 꺼진 경우 설치는 되지만 사용자가 수동으로 활성화하기 전까지 접근 가능하지 않을 것입니다.
- 하나의 플러그인만이 각 컨테이너 필드에 저장될 수 있지만 단일 레이아웃에 다중 플러그인 컨테이너를 생성하여 모든 플러그인 정보를 볼 수 있습니다.