Table of Contents

AntBot Studio > Activity > DataBase제어 > 프로시져 > 프로시져수행-MsSql

정의 (Description)

  • MsSql Server에서 사용자가 지정한 Procedure를 실행할 수 있는 Activity입니다.
* 정상 실행을 위해 접속 가능한 MsSql Server 환경이 사전에 존재해야 합니다.
- 접속 가능한 DB 정보( 서버IP 또는 도메인 / Port / 사용자ID / 패스워드 / DataBase명 / 스키마명 )에 대한 정보 사전 확인 필수
- 실행 가능한 Procedure 여부 및 입력 파라미터 사전 확인 필수
* 해당 Activity는 .NET Framework 4.7.2는 기반으로, SQL Server 2017 이하 버전과 호환되며, 상위버전의 경우 일부기능이 제한될수 있습니다.


속성 (Properties) (*은 필수값입니다.)

항목 설명 데이터타입 기본값 설정가능옵션
Common
Activity 이름 해당 Activity의 이름을 설정합니다.
- 기본값은 Activity명이며, 사용자가 직접 변경 가능합니다.
String 프로시져수행-MsSql
Input Common
실행할 Procedure * 실행할 MsSql Server의 Procedure의 명 (MsSql Server에서 지정한 이름과 동일해야 합니다.) String Null
쿼리 Timeout 쿼리수행시 Timeout 설정합니다. (단위 : 초), Default는 30 초 Int32 Null
Option
DB 연결 정보 DB에 연결할 접속정보를 설정합니다.
(입력 예시 : "Server=127.0.0.1,1433;User Id=AntBot;Password=Ant1234!;")

- 'DB 연결 정보' 속성값을 입력할 경우, Connect창에 입력된 정보는 무시됩니다.(Connect창 입력 불필요)
String Null


액티비티 사용 예시 (Example Usage)

  • MsSql Server의 사용자정보 변경 Procedure(SP_USER_PROC) 를 수행해서 신규 사용자정보(테이블명:users)를 추가 등록하고 등록결과를 특정 엑셀에 작성하는 예시
    예시는 테스트용 DataBase 및 테이블 정보를 활용하므로,
    실제 접속 가능한 DataBase 정보의 입력 및 실행 가능한 프로시져(Procedure) 사용 필수

  1. 조회 대상 DataBase 접속 서버 및 사용자정보 , 실행할 프로시져(Procedure) 사전 확인

    서버IP 또는 도메인 / Port / 사용자ID / 패스워드 / DataBase명 / 스키마명 / 실행 가능한 프로시져(Procedure) 및 입력 파라미터 등 Activity 실행시 필수적으로 알아야 하는 값 사전 조사 필수

  2. 변수 선언 : 총 5개 변수 선언

    2-1. DataTable 변수 선언 : 아래 2-1-1 ~ 2-1-4 를 반복해서 DT / DT_NEW 2개 변수 선언


    2-1-1. 이름 : DT 적용
    2-1-2. DataTable 변수 형식 찾기

    2-1-3. System.Data.DataTable 검색

    2-1-4. DT 변수 (변수유형 : DataTable) 선언 완료

    2-2. String 변수 선언 : 아래 2-2-1 ~ 2-2-2 를 반복해서 ID / USER_NAME / PHONE_NUMBER 3개 변수 선언

    2-2-1. 이름 : ID 적용
    2-2-2. 변수유형 : String 선택




  3. '쿼리수행-MsSql Server' 액티비티 설정 : 프로시져 수행전 사용자정보(테이블 : users) 조회해서 DT DataTable 변수에 저장

    3-1. '쿼리수행-MsSql Server' 액티비티에 수행할 쿼리문 확인 및 입력

    • 쿼리문 확인 : 쿼리문 조회 결과 확인
    • '쿼리수행-MsSql Server' Input Common 항목 입력
      • Input Common > 실행할 쿼리문 : ... 버튼 클릭 > 식 편집기 내 Query(String)에 쿼리문 입력 > 확인 버튼 클릭

        * 쿼리문의 끝은 ;(세미콜론) 이 없어도 실행됩니다.
        * 접속정보에는 DB 서버의 IP / Port 만 입력하므로 실제 테이블을 조회시에는 데이타베이스명.스키마명.테이블명 형식으로 쿼리문을 작성해야 합니다.
          Ex) "select * from test.dbo.users;"
      • Input Common > 쿼리 Timeout : 시간 제한 필요시 입력 합니다. 단위는 초단위이며 미입력시 Default는 30 초가 적용됩니다.

    3-2. '쿼리수행-MsSql Server' 액티비티 Option 항목 입력

    • Option > DB 연결 정보 : ... 버튼 클릭 > 식 편집기 내 ManualConnectString(String)에 접속정보 입력 > 확인 버튼 클릭

      DataBase 연결은 속성의 DB연결정보 항목에 입력하거나 Connect창에 설정할 수 있습니다.
      단, 둘 다 입력된 경우에는 속성의 DB연결정보 항목이 우선 적용됩니다.

      • Ex) 아래의 형식으로 입력
        "Server=127.0.0.1,1433;User Id=antbot;Password=ant1234!;"
        
      • Server : 접속할 MsSql Server 의 서버 IP 와 Port 입력. (IP,Port 형태로 입력)
        • Ex) 127.0.0.1,1433
      • User Id : DataBase에 접속할 사용자 ID 입력
        • Ex) antbot
      • Password : DataBase에 접속할 사용자 ID의 패스워드 입력
        • Ex) antbot1234!

    3-3. '쿼리수행-MsSql Server' 액티비티 Output 입력

    • Output > DataTable명
      • DT 변수명 입력

  4. 다중 Assign : 신규 사용자 정보 항목 값 지정


    4-1. 하단 추가 버튼 3회 Click
    4-2. 각 Assign 별 값 지정

    • 변수 : ID , 값 : "kid01"
    • 변수 : USER_NAME , 값 : "한우연"
    • 변수 : PHONE_NUMBER , 값 : "010-9988-7766"

  5. '프로시져수행-MsSql' 액티비티 설정 : Procedure를 수행해서 신규 사용자정보를 등록

    5-1. DataBase 연결

    DataBase 연결은 속성의 DB연결정보 항목에 입력하거나 Connect창에 설정할 수 있습니다.
    단, 둘다 입력된 경우에는 속성의 DB연결정보 항목이 우선 적용됩니다.
    • DB Server 정보
      • IP : 접속할 MsSql Server 의 서버 IP
        • Ex) 127.0.0.1
      • Port : 접속할 MsSql Server 의 서버 Port 입력
        • Ex) 1433
    • User 정보
      • ID : DataBase에 접속할 사용자 ID 입력
        • Ex) antbot
      • Password : DataBase에 접속할 사용자 ID의 패스워드 입력
        • Ex) antbot1234!
    • 접속확인 버튼 클릭
      • 접속 성공 : 정상적으로 접속확인이 되면 "DB 접속성공" 팝업이 보여집니다.
      • 접속 실패 : 접속 실패시 "DB 접속실패" 팝업이 보여지며 이경우 접속 정보 및 DataBase 서버 상태를 다시 확인해야 합니다.
    • 저장 버튼 클릭 : 설정한 정보가 저장됩니다.

    5-2. '프로시져수행-MsSql' 액티비티에 수행할 Procedure 명과 기능 및 파라미터 확인 및 입력

    * 실행할 Procedure 명과 파라미터 및 기능을 먼저 확인합니다.
    * 상황이 된다면 Procedure 실행 가능한 DB Tool을 이용해서 Procedure가 정상 실행되는지 확인을 먼저 해봅니다.

    • 아래는 테스트용으로 작성된 사용자정보변경 Procedure의 예시입니다.
        CREATE PROCEDURE dbo.SP_USER_PROC --// Procedure명 확인
        (
           @P_ID NVARCHAR(10),            --// 입력 파라미터-1
           @P_USER_NAME NVARCHAR(30),     --// 입력 파라미터-2
           @P_PHONE_NUMBER NVARCHAR(15)   --// 입력 파라미터-3
        )
        AS
            DECLARE @CNT INT;
            DECLARE @P_STATUS NVARCHAR(10) = N'사용중';
    
        BEGIN
            SELECT @CNT = COUNT(ID)
            FROM USERS WHERE ID = @P_ID;
    
            IF @CNT > 0
                UPDATE USERS
                SET     USERNAME = @P_USER_NAME
                       ,PHONENUMBER = @P_PHONE_NUMBER
                       ,STATUS = N'변경중'
                WHERE   ID = @P_ID;
            ELSE
                INSERT INTO USERS (ID, USERNAME, PHONENUMBER, STATUS)
                VALUES (@P_ID, @P_USER_NAME, @P_PHONE_NUMBER, @P_STATUS);
    
        END;
    

    • Procedure 명 입력 : 아래 2가지 방법 중 택1 해서 입력 가능하며, 두 군데에서 모두 확인 가능함.

      • 액티비티 내 입력 창에 직접 입력 ( Parameters 버튼 좌측의 입력창)
      * 접속정보에는 DB 서버의 IP / Port 만 입력하므로 실제 테이블을 조회시에는 데이타베이스명.스키마명.프로시져명 형식으로 작성해야 합니다.
        Ex) "test.dbo.SP_USER_PROC"
      • Input Common > 실행할 Procedure : ... 버튼 클릭 > 식 편집기 내 ProcedureName(String)에 프로시져명 입력 > 확인 버튼 클릭
        • Ex) "test.dbo.SP_USER_PROC"
    • Parameters 입력 : Procedure 파라미터 수만큼 파라미터 설정함.

      • Parameters 버튼 클릭 : SQL Server Procedure Parameters 팝업 오픈됨.
      • 파라미터 갯수만큼 아래의 입력 반복
        • 인수 만들기 클릭
        • 이름 : Procedure 의 파라미터 명 입력
          • Ex) P_ID / P_USER_NAME / P_PHONE_NUMBER
        • 방향 : 입력 선택
        • 형식 : Procedure 의 파라미터의 속성 입력
          • Ex) VARCHAR / CHAR 은 String 입력 , 숫자는 Int32 등으로 입력
        • : Procedure 의 파라미터로 전달할 Antbot 내 변수를 입력
          • Ex) ID / USER_NAME / PHONE_NUMBER
      • 확인 버튼 클릭


    5-3. '프로시져수행-MsSql' 액티비티 Option 항목 입력

    • Option > DB 연결 정보 : ... 버튼 클릭 > 식 편집기 내 ManualConnectString(String)에 접속정보 입력 > 확인 버튼 클릭

      DataBase 연결은 속성의 DB연결정보 항목에 입력하거나 Connect창에 설정할 수 있습니다.
      단, 둘 다 입력된 경우에는 속성의 DB연결정보 항목이 우선 적용됩니다.

      • Ex) 아래의 형식으로 입력
        "Server=127.0.0.1,1433;User Id=antbot;Password=ant1234!;"
        
      • Server : 접속할 MsSql Server 의 서버 IP 와 Port 입력. (IP,Port 형태로 입력)
        • Ex) 127.0.0.1,1433
      • User Id : DataBase에 접속할 사용자 ID 입력
        • Ex) antbot
      • Password : DataBase에 접속할 사용자 ID의 패스워드 입력
        • Ex) antbot1234!

  6. '쿼리수행-MsSql Server' 액티비티 설정 : 프로시져 수행 후 사용자정보(테이블 : users) 조회해서 DT_NEW DataTable 변수에 저장

    6-1. '쿼리수행-MsSql Server' 액티비티에 수행할 쿼리문 입력 : 프로시져 수행전 확인 쿼리문과 동일

    • '쿼리수행-MsSql Server' Input Common 항목 입력
      • Input Common > 실행할 쿼리문 : ... 버튼 클릭 > 식 편집기 내 Query(String)에 쿼리문 입력 > 확인 버튼 클릭

        * 쿼리문의 끝은 ;(세미콜론) 이 없어도 실행됩니다.
        * 접속정보에는 DB 서버의 IP / Port 만 입력하므로 실제 테이블을 조회시에는 데이타베이스명.스키마명.테이블명 형식으로 쿼리문을 작성해야 합니다.
          Ex) "select * from test.dbo.users;"
      • Input Common > 쿼리 Timeout : 시간 제한 필요시 입력 합니다. 단위는 초단위이며 미입력시 Default는 30 초가 적용됩니다.

    6-2. '쿼리수행-MsSql Server' 액티비티 Option 항목 입력

    • Option > DB 연결 정보 : ... 버튼 클릭 > 식 편집기 내 ManualConnectString(String)에 접속정보 입력 > 확인 버튼 클릭

      DataBase 연결은 속성의 DB연결정보 항목에 입력하거나 Connect창에 설정할 수 있습니다.
      단, 둘 다 입력된 경우에는 속성의 DB연결정보 항목이 우선 적용됩니다.

      • Ex) 아래의 형식으로 입력
        "Server=127.0.0.1,1433;User Id=antbot;Password=ant1234!;"
        
      • Server : 접속할 MsSql Server 의 서버 IP 와 Port 입력. (IP,Port 형태로 입력)
        • Ex) 127.0.0.1,1433
      • User Id : DataBase에 접속할 사용자 ID 입력
        • Ex) antbot
      • Password : DataBase에 접속할 사용자 ID의 패스워드 입력
        • Ex) antbot1234!

    6-3. '쿼리수행-MsSql Server' 액티비티 Output 입력

    • Output > DataTable명
      • DT_NEW 변수명 입력

  7. '엑셀 열기' 액티비티 설정 및 속성값 입력

    • Input Common > 엑셀파일경로
      • Ex) "C:\Users\user\Desktop\test.xlsx"
        • 예시로 테스트용 엑셀 경로를 활용하므로, 실제 실행시킬 엑셀 절대경로 입력 필요
    • Option > Activity 종료후 저장여부
      • 체크 설정
        • Activity 종료 후 자동 저장을 위해 체크 (기본값:체크)
    • Option > 미존재시생성
      • 체크 설정
        • 해당 경로에 엑셀 파일 미존재시 신규로 생성함
    • Option > 엑셀 App 보이게
      • 체크 설정
        • 엑셀 화면이 표시되며, 작업 절차를 육안으로 확인 가능
      Tip



  8. '엑셀 쓰기-영역' 액티비티 설정 및 속성값 입력 : 프로시져 수행 전 사용자정보 조회결과 쓰기

    * '엑셀 쓰기-영역' 액티비티는 '엑셀 열기' 액티비티 내부 시퀀스에서만 사용 가능함
    * '엑셀 열기' 내부 시퀀스에서 개발이 진행되는지 체크 필요

    8-1. 프로시져 수행 전 사용자정보 조회결과 쓰기

    • Input Common > 셀에 저장될 값(DataTable)
      • DT 변수명 입력
    • Input Common > 셀주소
      • "A1" 입력
    • Input Common > 시트명
      • "Sheet1" 입력
    • Option > Activity 종료후 저장여부
      • 체크 설정
        • Activity 종료 후 자동 저장을 위해 체크 (기본값:체크)
    • Option > 헤더포함여부
      • 체크 설정
        • 첫행이 DataTable의 컬럼명으로 기입됨

    8-2. 프로시져 수행 후 사용자정보 조회결과 쓰기

    • Input Common > 셀에 저장될 값(DataTable)
      • DT_NEW 변수명 입력
    • Input Common > 셀주소
      • "F1" 입력
    • Input Common > 시트명
      • "Sheet1" 입력
    • Option > Activity 종료후 저장여부
      • 체크 설정
        • Activity 종료 후 자동 저장을 위해 체크 (기본값:체크)
    • Option > 헤더포함여부
      • 체크 설정
        • 첫행이 DataTable의 컬럼명으로 기입됨
    Tip
  9. 실행 결과 확인

    • 액티비티 실행 후 결과 엑셀파일 확인 화면



## 추가 관련 데이터 | 항목명 | 값 | | --- | --- | | 원본 매뉴얼 URL | /AntBot%20Studio/Activity/5.%20DataBase제어/프로시져/프로시져수행-MsSql/ktds.AntBot.Activities.DatabaseLib.MsSqlProcedure.MsSqlProcedureCodeActivity.html | | 패키지명 | ktds.AntBot.Activities.DatabaseLib.MsSqlProcedure.MsSqlProcedureCodeActivity | | 매뉴얼 ID | ktds.AntBot.Activities.DatabaseLib.MsSqlProcedure.MsSqlProcedureCodeActivity |