플러그인 업데이트 예제

다음 예제는 설치된 플러그인의 버전과 FileMaker Pro 파일에서 컨테이너 필드에 있는 버전을 비교하고, 필요하면 플러그인을 업데이트합니다.

  1. 맞춤형 App 파일에서 플러그인 정보를 저장하기 위해 Plugin Update라는 테이블을 생성합니다.
  2. 다음 필드들을 정의합니다.
  3. 필드 이름

    필드 유형

    플러그인 이름

    텍스트

    필요한 필드 버전

    숫자

    설치된 플러그인 버전

    계산 (저장되지 않음) 예제 코드는 아래 클라이언트 플러그인 버전 계산을 참조하십시오.

    설치된 플러그인 상태

    계산 (저장되지 않음) 예제 코드는 아래 클라이언트 플러그인 활성 상태 계산을 참조하십시오.

    플러그인 파일

    컨테이너

  4. 플러그인 업데이트 정보라는 레이아웃을 생성하고 단계 2에서 정의된 필드로 추가합니다.
  5. 다음 스크립트를 생성하고 플러그인 설치로 이름을 지정합니다.
    복사
    오류 캡처 설정 [켬]
    플러그인 파일 설치 [플러그인 업데이트::플러그인 파일]
    #
    #오류 처리하기
    If [Get(마지막 오류) ≠ 0]
        If [Get(마지막 오류) = 3]
            사용자 설정 대화상자 보기 [플러그인 업데이트::플러그인 파일 & " 설치할 수 없습니다. 파일을 설치할 솔루션 허용이 FileMaker Pro 플러그인 환경설정에 선택되어 있는지 확인합니다."]
        Else If [Get(마지막 오류) = 1550]
            사용자 설정 대화상자 보기 [플러그인 업데이트::플러그인 파일 & " 설치되었지만 초기화할 수 없습니다."]
        Else If [Get(마지막 오류) = 1551]
            사용자 설정 대화상자 보기 플러그인 업데이트::플러그인 파일 & " 설치할 수 없습니다."]
        Else
            사용자 설정 대화상자 보기 ["일반적인 오류 " & Get(마지막 오류) & " 설치할 때 발생했습니다. " & 플러그인 업데이트::플러그인 파일]
        End If
    End If
  6. 다음 스크립트를 생성하고 플러그인 버전 확인으로 이름을 지정합니다.
    복사
    레이아웃으로 이동 ["플러그인 업데이트 정보"]
    레코드/요청/페이지로 이동 [처음]
    Loop
        If [플러그인 업데이트::설치된 플러그인 버전 < 플러그인 업데이트::필요한 플러그인 버전]
            #플러그인은 설치되거나 업데이트되어야 합니다.
            스크립트 수행 [지정됨: 목록에서 ; "플러그인 설치" ;
            매개 변수: ]
        End If
        레코드/요청/페이지로 이동 [다음; 마지막 항목 후 종료: 켬]
    End Loop
  7. 다음 스크립트를 생성하고 활성화 여부 확인으로 이름을 지정합니다.
    복사
    오류 캡처 설정 [켬]
    찾기 수행 [복원]
    #설치된 플러그인 상태 필드에서 "활성화됨" 찾기
    If[Get(찾은 개수) < Get(총 레코드 개수)]
        사용자 설정 대화상자 보기 ["필수 플러그인 일부가 활성화되지 않았습니다. 파일을 설치할 솔루션 허용이 FileMaker Pro 플러그인 환경설정에 선택되어 있는지 확인합니다."]
    End If
  8. 데이터베이스가 열릴 때 순서대로 위의 스크립트를 참조하는플러그인 업데이트 스크립트라는 시작 스크립트를 생성합니다.
    복사
    스크립트 수행 [지정됨: 목록에서 ; "플러그인 버전 확인" ;
    매개 변수: ]
    스크립트 수행 [지정됨: 목록에서 ; "활성화 여부 확인" ;
    매개 변수: ]
    레이아웃으로 이동 [원본 레이아웃 ; 애니메이션: 없음 ]

클라이언트 플러그인 버전 계산

복사
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))
)

참고 

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