[OutSystem] GetEnterryEspaceName/Id() 작업 확인

3329 단어 outsystems
OutSystems에서는 Action 호출 소스를 가져오는 방법으로 내장 함수인 GetEnterry EspaceName과 GetEnterry EspaceId가 있습니다.
함수 이름과 같이 사용자 요청의 시작점인 모듈의 이름과 ID를 반환합니다.
안타깝게도 기점 모듈과 함수 호출 사이에 다른 모듈이 끼어 있는 상황에서 중간 모듈을 알 수 없다.

환경을 확인하다


Personal Environment(Version 11.13.0 (Build 31107))
Service Studio (Version 11.12.0)

총결산


함수가 포함된 GetEnterryEspaceName/GetEnterryEspaceId는 사용자가 직접 요청한 모듈의 이름/Id를 반환합니다.다른 모듈을 통과하는 Server Action도 마찬가지입니다.
그러나 Service Action 또는 REST API가 중간에 끼어 있으면 해당 모듈의 이름/Id가 반환됩니다.

확인된 API 정보


Built-in Function에 포함된 다음 API를 시도해 보십시오.
문서 - Built-in Function > Environment

GetEntryEspaceName


웹 요청을 처리하는 모듈의 이름을 반환합니다.
이런 방법.요청한 시작 모듈의 Name 속성 값이 반환됩니다.

GetEntryEspaceId


웹 요청을 처리하는 모듈의 식별자를 반환합니다.
규격.요청의 시작 부분인 모듈의 Id가 반환됩니다.이 Id는 모듈 > Espace Entiry의 Id 속성 값입니다.

API 실행 호출(테스트용 동작)


다음 방정식에서 위의 API를 사용하여 결과를 반환하는 작업을 수행합니다.
2개의 API를 순서대로 부르고 줄을 바꾸어 성형한다.
"GetEntryEspaceId(): " + GetEntryEspaceId() + NewLine() +
"GetEntryEspaceName(): " + GetEntryEspaceName()

기본: 사용자가 요청한 화면 모듈로 돌아가기


리액티브 웹 앱 화면에서 팟캐스트를 하고 Producter 모듈로 함수를 호출하면 화면 소속 모듈의 이름과 Id를 떼어낼 수 있다.
동작을 확인하기 위해 다음과 같이 구성된 모듈을 제작했다.
각 사각형 디스플레이 모듈.결과적으로 컨슈머 모듈의 값이 반환됩니다.

① 다른 모듈에서 Server Action 호출 테스트용 Action을 사용할 경우


(Screen Action&Production 1 모듈의 Server Action&Producter 2 모듈에 대한 테스트 동작)
결과 1Screen Action이 속한 모듈 이름/Id가 반환되었습니다.
GetEntryEspaceId(): 224
GetEntryEspaceName(): Consumer

② 동일한 모듈의 Server Action·기타 모듈의 Server Action을 통해 테스트용 Action을 호출할 경우


(Screen Action > Consummer 모듈의 다른 Server Action > Production 1 모듈의 Server Action > Production 2 모듈의 테스트용 Action)
결과는 다음과 같다.Screen Action이 속한 모듈 이름/Id가 반환되었습니다.
GetEntryEspaceId(): 224
GetEntryEspaceName(): Consumer

③ 다른 모듈의 CentAction 호출을 통해 Action을 테스트할 경우


(Screen Action&Production 1 모듈의 CentAction&Producter 2 모듈에 대한 테스트 동작)
결과 1Screen Action이 속한 모듈 이름/Id가 반환되었습니다.여기 좀 의외네요.웹 요청이라 Server Action에서 호출한 부분이 반환될 줄 알았는데 첫 번째 Consumer 모듈의 부분이 다시 반환되었습니다.
GetEntryEspaceId(): 224
GetEntryEspaceName(): Consumer

Service Action 경유 시


①와 같은 모드로 Producter1의 Server Action 대신 Service Action을 사용해 보십시오.
이 경우 Service Action은 내부적으로 REST API이므로 Service Action 호출 부분이 호출의 시작점으로 간주될 수 있습니다.
다음은 결과입니다.예상대로 Service Action은 시작점으로 간주되고 Service Action이 속한 모듈은 반환됩니다.주의해야 할 것은 호출자의 Reactive 웹 앱이 아니라는 것이다.
GetEntryEspaceId(): 587
GetEntryEspaceName(): Producer1

Expose REST API 경유 시


Producter1의 Server Action 대신 ①와 동일한 모드로 Expose REST API를 경유해 보십시오.서비스 Action과 동일한 결과를 가정합니다.
다음은 결과입니다.예상대로 Expose REST API는 시작점으로 간주되고 REST API가 속한 모듈은 반환됩니다.주의해야 할 것은 호출자의 Reactive 웹 앱이 아니라는 것이다.
GetEntryEspaceId(): 587
GetEntryEspaceName(): Producer1

좋은 웹페이지 즐겨찾기