Outsystems에서 비동기식 처리 방법
3292 단어 JavaScriptoutsystemsJava
입문
직장을 옮겨 입사한 IT 구성원들이 행사 달력에 참가하다
Qiita에서 첫 투고 기사!
직장을 옮긴 후 Outsystems에서 응용 프로그램을 개발하다
개발을 추진하면서 조사를 해도 답을 찾기 어려운 것을 나눌 수 있었으면 좋겠어요.
이번에는 Outsystems에서 비동기적인 처리를 실현하는 방법을 소개할 것입니다.
자기소개
첫 투고니까 자기소개부터 해.
이전에는 30명 정도의 SIer에서 각종 프로젝트에 상주하는 SE로 7년 정도 일했다.
그때는 자바와 C#로 개발을 하고 정의와 디자인 등이 필요한 상류 공사도 하고 있다.
그곳에서 외자 인재 회사로 이직하여 회사 내 SE가 되었다.
현재는 주로 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 특유의 것으로 조사에 오랜 시간이 걸렸다.
그럼 결론부터 말하자면 두 가지 방법이 있다!
클라이언트 처리에서 Javascript의 setTimeout을 사용할 수 있습니다.
예를 들면 이런 느낌.
위의 그림은 무엇을 하고 있을까요?
스마트폰과 태블릿PC의 배터리 상태를 보고 나머지는 적으면 경보 메일을 보냅니다.
Notify Battery Status라는 클라이언트 동작을 만들었습니다.
나는 set Timeout으로 그것을 호출한다.
setTimeout($actions.NotifyBatteryStatus($parameters.Level, $parameters.IsPlugged), 0);
setTimeout 첫 번째 매개변수를 비동기적으로 처리하는 작업(매개변수 포함)두 번째 파라미터는 몇 밀리초 후에 실행된다.이번에는 바로 실행하고 싶어서 0으로 설정했습니다.
메일 발송은 서버 동작만 불러야 하기 때문에 인터넷을 통해 처리하는 데 시간이 걸린다
왜냐하면 그 처리 결과를 볼 필요가 없어요.
메일 발송 여부를 포함하여 모두 비동기적으로 실행된다.
따라서 클라이언트 처리에서 비동기화하려면 setTimeout을 사용할 수 있습니다!
자바스크립트 경험이 있는 사람이라면 이게 금방 나올 것 같아요.
서버 처리 구현 방법
그러면 클라이언트 처리는 Javascript를 사용하면 도착할 수 있습니다
서버 처리의 실현 방법은 Outsystems 특유의 것으로 조사에 오랜 시간이 걸렸다.
그럼 결론부터 말하자면 두 가지 방법이 있다!
Timer를 이용한 비동기식 처리(매개변수 지정불가)
Timer는 부팅 또는 수동으로 실행할 수 있는 일괄 처리죠?이런 느낌이죠?
서버 작업에서 Timer를 호출할 수 있습니다.
이런 느낌.
Timer 아래에 있는 Wake~를 서버 동작으로 드래그하면 Timer 처리를 호출할 수 있습니다.
그러면 실행 중인 서버와 비동기적으로 실행됩니다.
Wake 를 호출하면 즉시 실행되지 않고 몇 초 후에 실행됩니다.
그러나 Timer에서 비동기 처리의 난점은 매개 변수를 전달할 수 없다는 것이다.
다음은 그거 해결해줘.
프로세스의 비동기식 처리 사용(매개변수 지정 가능)
Process 써봤어요?아니요.
나는 이런 방법을 쓸 수 있을 것 같다.
서버 작업에서 프로세스의 Launch를 호출할 수도 있고 매개 변수를 지정할 수도 있습니다.
Entity는 불가능하지만 Text와 Integer 등 Basic Type과 Entity Identifier는 매개 변수로 사용할 수 있습니다.
그래서 제가 인자에 Entity Identifier를 맡겼어요.
프로세스에서 실체로부터 데이터를 가져와 처리할 수 있습니다.
마지막
따라서 Outsystems에서 비동기 처리를 실현하는 방법을 소개했다.
최근 Saas는 다양한 API를 공개했지만 REST와 SOAP로 호출하는 데 시간이 많이 걸렸다
비동기적으로 부르는 처리가 자주 있을 것 같아요.
참고가 된다면 정말 기쁠 것 같아요!
Reference
이 문제에 관하여(Outsystems에서 비동기식 처리 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tom-k7/items/d8ef19dccb42891a0698
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Outsystems에서 비동기식 처리 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tom-k7/items/d8ef19dccb42891a0698텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)