플러그인 업데이트 예제
다음 예제는 설치된 플러그인의 버전과 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))
)참고
- 설치할 플러그인에 대해서 파일을 설치할 솔루션 허용 옵션이 클라이언트의 플러그인 설정에서 선택되어야만 합니다. 플러그인 설정 변경하기를 참조하십시오.
- 플러그인이 클라이언트의 플러그인 설정에서 꺼진 경우 설치는 되지만 사용자가 수동으로 활성화하기 전까지 접근 가능하지 않을 것입니다.
- 하나의 플러그인만이 각 컨테이너 필드에 저장될 수 있지만 단일 레이아웃에 다중 플러그인 컨테이너를 생성하여 모든 플러그인 정보를 볼 수 있습니다.