NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 멀티 다클라 매크로를 제작할 때 유용한 기능. (글로벌 변수와 부모 변수)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로는 다른 업무 자동화 RPA 매크로와 동일하게 액션간 데이타를 교유하기 위해 변수를 이용합니다. 아래와 같이 [ 이미지 서치 ]와 [ 마우스 클릭 ]이 있다고 생각 해보세요. 윈도우 화면에서 클릭하고 싶은 버튼 또는 아이콘을 이미지 서치로 찾은 후 마우스로 클릭해야 합니다. 이 때 이미지 서치 액션이 찾은 위치를 마우스 클릭 액션에 전달해야 하는데요. 이 때 2개의 액션이 어떤 데이타를 공유할 때 변수를 사용합니다.

    TUU6JM4.png

     

     

    비활성으로 멀티 다클라 매크로를 제작한다고 생각 해봅시다. 각각의 안드로이드 핸드폰 또는 클라이언트의 기본 설정은 Main 스크립트에 정의해두고, 동작은 Sub 스크립트에 작성합니다. 아래는 3개의 안드로이드 매크로를 돌린다고 생각하시면 됩니다. 마지막으로 Common(공통) 스크립트가 ADB 로 연결된 모든 스마트폰의 공통된 동작을 수행합니다.

    6nKEbsY.png

     

     

    Sub 스크립트 1, 2, 3이 공통적으로 처리해야 하는 내용들은 Common 스크립트에 정의해두었습니다. 모두가 항상 동일하게 실행만된다면 이렇게 구성해도 문제가 없을겁니다. 하지만, Common 스크립트가 자신을 실행중인 부모 스크립트(Sub 스크립트 1, 2, 3)의 어떤 값에 따라 다르게 동작해야 한다면 부모 변수 기능을 사용하여 상위 스크립트의 설정 값들을 알아내야 합니다. 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    [ 출력 ] 액션을 추가한 후 텍스트 속성에 {#test}를 입력 하세요. [ 중괄호에 변수명을 사용 ]하면 변수 가져오기를 직접 가져올 수 있습니다. 참고로, 변수명 앞에 @를 붙이면 글로벌 변수를 가져오고, #을 붙이면 부모 변수를 가져옵니다.

    BGBc5GT.png

     

     

    이 스크립트를 sub.ngs로 저장하세요. 새로운 스크립트를 하나 더 열고 부모 스크립트(Script 1.ngs)를 추가합니다. [ 변수 추가 ]에 아이디를 test로 설정하고, 문자열에 parent를 입력하세요. 위에서 서브 스크립트가 이 변수 이름을 가져올겁니다.

    TbY1Huc.png

     

     

    [ 서브 스크립트 ] 액션을 추가하고, 앞서 만든 sub.ngs 스크립트를 불러옵니다. 모든 매크로가 동시에 멀티로 실행되어야 하기 때문에 비동기 속성을 True로 설정하세요.

    tshTUtA.png

     

     

    서브 스크립트가 완료될 때까지 매인 스크립트가 완료되면 안됩니다. 그래서, 마지막에 [ 지연 ] 액션을 추가 했습니다. 지연은 보통 Delay라고 부르기도 합니다.

    S66oj3N.png

     

     

    스크립트를 실행하면 서브 스크립트에서 부모 스크립트의 변수 값을 가져옵니다. 하단 아웃풋(Output: 출력창)parent 텍스트가 표시됩니다.

    NrmkU9U.png

     

     

    참고로, 변수 가져오기에서 부모 변수True로 체크해도 동일하게 동작합니다.

    5asaGaE.png

     

     

    왜 이렇게 스크립트를 작성해야 하는지 잘 이해가 안갈수도 있습니다. 하지만, 업무 자동화 RPA 매크로를 몇번 개발하다보면 중복되는 구간들이 많다는걸 알게됩니다. 이런 중복된 동작들이 많아질수록 나중에 유지보수하기가 어려워집니다. 그래서, 스크립트에서 공통적인 부분들을 한 스크립트에 모아놓고, 서브 스크립트 액션을 이용해서 동작을 불러옵니다. 그러면, 스크립트 하나만 수정해도 모든 상위의 부모 스크립트가 모두 같은 동작을 하게 됩니다. 프로그래밍에서는 이런 기능을 함수와 메소드로 구현합니다. 멀티로 실행하려면 스레드 처리도 해야 하는데요. 엔지엠 매크로에서는 이런 어려운 개념들을 코딩하지 않고도 쉽게 처리할 수 있습니다^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.