Outsystems에서 비동기식 처리 방법

입문


직장을 옮겨 입사한 IT 구성원들이 행사 달력에 참가하다
Qiita에서 첫 투고 기사!
직장을 옮긴 후 Outsystems에서 응용 프로그램을 개발하다
개발을 추진하면서 조사를 해도 답을 찾기 어려운 것을 나눌 수 있었으면 좋겠어요.
이번에는 Outsystems에서 비동기적인 처리를 실현하는 방법을 소개할 것입니다.

자기소개


첫 투고니까 자기소개부터 해.
이전에는 30명 정도의 SIer에서 각종 프로젝트에 상주하는 SE로 7년 정도 일했다.
그때는 자바와 C#로 개발을 하고 정의와 디자인 등이 필요한 상류 공사도 하고 있다.
그곳에서 외자 인재 회사로 이직하여 회사 내 SE가 되었다.
현재는 주로 Outsystems에서 회사 내 업무 효율화를 위한 응용 프로그램 등을 개발하고 있다.

카탈로그

  • 비동기식 처리
  • 클라이언트 처리에서의 실현 방법
  • 서버 처리에서의 실현 방법
  • 비동기식 처리


    원래 비동기 처리는?이런 사람을 위해 설명하다.
    그렇게 생각하지만 설명 기사가 있으니 참고하시기 바랍니다.
    https://qiita.com/kiyodori/items/da434d169755cbb20447
    예를 들어 웹 페이지에서 버튼을 눌렀을 때 화면이 오래 회전하는 경우
    가용성이 낮기 때문에 그다지 좋지 않다
    처리 결과를 기다릴 필요가 없는 처리는 비동기적입니다!
    Java라면 new가 Thread의 클래스를 계승하고 Runnable를 실현하는 클래스를 계승할 수 있습니다
    start 방법을 호출하면 실현되는 느낌이 듭니다.
    Outsystems라면 어떻게 실현하는지 찾기 어려워서 공유하고 싶어요.
    그럼 본론으로 갑시다!

    어떻게 클라이언트 처리에서 실현합니까


    클라이언트 처리에서 Javascript의 setTimeout을 사용할 수 있습니다.
    예를 들면 이런 느낌.

    위의 그림은 무엇을 하고 있을까요?
    스마트폰과 태블릿PC의 배터리 상태를 보고 나머지는 적으면 경보 메일을 보냅니다.
    Notify Battery Status라는 클라이언트 동작을 만들었습니다.
    나는 set Timeout으로 그것을 호출한다.setTimeout($actions.NotifyBatteryStatus($parameters.Level, $parameters.IsPlugged), 0);setTimeout 첫 번째 매개변수를 비동기적으로 처리하는 작업(매개변수 포함)
    두 번째 파라미터는 몇 밀리초 후에 실행된다.이번에는 바로 실행하고 싶어서 0으로 설정했습니다.
    메일 발송은 서버 동작만 불러야 하기 때문에 인터넷을 통해 처리하는 데 시간이 걸린다
    왜냐하면 그 처리 결과를 볼 필요가 없어요.
    메일 발송 여부를 포함하여 모두 비동기적으로 실행된다.
    따라서 클라이언트 처리에서 비동기화하려면 setTimeout을 사용할 수 있습니다!
    자바스크립트 경험이 있는 사람이라면 이게 금방 나올 것 같아요.

    서버 처리 구현 방법


    그러면 클라이언트 처리는 Javascript를 사용하면 도착할 수 있습니다
    서버 처리의 실현 방법은 Outsystems 특유의 것으로 조사에 오랜 시간이 걸렸다.
    그럼 결론부터 말하자면 두 가지 방법이 있다!
  • Timer
  • Process
  • Timer를 이용한 비동기식 처리(매개변수 지정불가)


    Timer는 부팅 또는 수동으로 실행할 수 있는 일괄 처리죠?이런 느낌이죠?
    서버 작업에서 Timer를 호출할 수 있습니다.

    이런 느낌.
    Timer 아래에 있는 Wake~를 서버 동작으로 드래그하면 Timer 처리를 호출할 수 있습니다.
    그러면 실행 중인 서버와 비동기적으로 실행됩니다.
    Wake 를 호출하면 즉시 실행되지 않고 몇 초 후에 실행됩니다.
    그러나 Timer에서 비동기 처리의 난점은 매개 변수를 전달할 수 없다는 것이다.
    다음은 그거 해결해줘.

    프로세스의 비동기식 처리 사용(매개변수 지정 가능)


    Process 써봤어요?아니요.
    나는 이런 방법을 쓸 수 있을 것 같다.

    서버 작업에서 프로세스의 Launch를 호출할 수도 있고 매개 변수를 지정할 수도 있습니다.
    Entity는 불가능하지만 Text와 Integer 등 Basic Type과 Entity Identifier는 매개 변수로 사용할 수 있습니다.
    그래서 제가 인자에 Entity Identifier를 맡겼어요.
    프로세스에서 실체로부터 데이터를 가져와 처리할 수 있습니다.

    마지막


    따라서 Outsystems에서 비동기 처리를 실현하는 방법을 소개했다.
    최근 Saas는 다양한 API를 공개했지만 REST와 SOAP로 호출하는 데 시간이 많이 걸렸다
    비동기적으로 부르는 처리가 자주 있을 것 같아요.
    참고가 된다면 정말 기쁠 것 같아요!

    좋은 웹페이지 즐겨찾기