2017-11-17 27 views
0

GeneXus 확장명을 만들고 있는데 AfterOpenKB 이벤트에서 확장명이 파일을 읽길 원합니다. 그래서 내가 한 것은 GX의 패키지 폴더에 읽어야하는 파일을 복사하는 것입니다. 문제는 Extension을 디버깅 할 때 AfterOpenKB 메서드가 두 번 호출되고 그 중 하나에서 KB의 폴더에있는 파일을 검색한다는 것입니다.열린 KB - Genexus 확장 후 파일 읽기

질문은 메서드가 두 번 트리거되거나 내가 잘못하고있는 것으로 예상됩니까? KB의 폴더에도 파일을 복사해야합니까?

감사합니다.

답변

0

AfterOpenKB 이벤트는 프로세스에서 KB가 열릴 때마다 한 번만 발생해야합니다. 확장 프로그램이 UI 또는 BL 확장 프로그램입니까? 나는 당신이 BL 확장을 개발하고 있다고 생각한다. 그리고 당신이보고있는 것은 독립적 인 프로세스이고 GX BL을 시작하는 지정자에 대한 MSBuild 프로세스가 GX 프로세스와 동일한 KB를 열 때 AfterOpenKB 이벤트를 트리거한다는 것이다. 열려 있습니다.

확장명이 정확히 무엇인지 모른 채 파일을 KB 폴더에 복사해야하는 경우 대답을 드릴 수는 없지만 일반적으로 파일을 GX 설치로 복사하는 것이 좋습니다. KB를 열 때. GX가 Program Files 안에 위치한다는 것은 매우 일반적인 일이며,이 경로에 파일을 쓰려면 높은 권한이 필요하다는 점에 유의하십시오. 현재 GX는 승격 된 프로세스로 실행해야하지만, 앞으로 변경 될 수있는 사항이기 때문에 그에 따라 크게 제안합니다. KB 폴더는 파일을 복사하기에 더 좋은 장소로 보이지만 확장 프로그램이 수행하는 작업과 파일의 용도를 정확히 알지 못하면 다시 말 할 수 없습니다.

희망이 있습니다.

+0

UI 및 BL 확장 모두 UI (메뉴, 창 도구)가 있으며 KB 단위로 개체를 만듭니다. 확장 프로그램은 KB에 폴더, 프로 시저, SDT 등을 만드는 데 필요한 정보가 들어있는 XML 파일을 읽습니다. –

+0

xml 파일의 내용이 동적으로 생성됩니까? 또는 특정 버전의 내선 번호에 대해 항상 동일하게 적용됩니까? 내용이 정적이라면 확장이 설치 될 때 파일을 GX 설치 안에 넣을 것입니다 (KB가 열리는 모든 이벤트 이후가 아님). 예를 들어, GX 설치의 Packages 폴더 안에 자신의 폴더 안에 있습니다. 이렇게하면 확장 프로그램을 설치할 때마다 관리자 권한 만 필요하며 실행될 때마다 권한이 필요하지 않습니다. – Fede

+0

동적으로 생성되지 않으며 가끔 다를 수 있습니다. 난 아직도 OnAfterKB 이벤트가 두 번 트리거 문제가 ... 그 행동을 제어하는 ​​방법은 무엇입니까? 감사합니다. –