본문 바로가기

Slack 채널 정리

groovy - db, http

MDM 시스템 문제 있는데 문제 원인 못찾고 있어서 긴급 지원 중. 몇 만 년전 써봤던 시스템이라 아무 기억도 안나서 별 뾰족한 수 못 찾고 있고 일단 데이타 인터페이스라도 수작업으로 하는거 좀 편하게 하려고 또 몇 천 년만에 groovy 스크립트 작성. groovy 에서 아주 초보적인 db 사용법과 http 콜 하는 기능 들어가있어서 샘플용으로 공유해봅니다 ㅎ

참고로 http 콜하는 기능은 groovy 기본 기능인 URL  대신 httpBuilder 란 라이브러리 사용했는데 코드 최상단에 보면 @Grab 으로 Maven Repository 에서 jar 내려 받아 사용하게 해놓았습니다.

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='1.7' )

import groovyx.net.http.HTTPBuilder
import groovy.sql.Sql

sql = Sql.newInstance("jdbc:oracle:thin:@....", "id", "pw", "oracle.jdbc.pool.OracleDataSource")

def sqlStr = '''
SELECT organization_id, inventory_item_id, msg_type_cd
FROM ...
'''

//http get url : http://www.abc.com/mdm/HjsMessageBrokerServlet?ModuleName=PIM&InterfaceType=MDM007-0001&TransactionStatus=U&TransactionId=103|560720

def html = null
def http = new HTTPBuilder("http://abc.com/mdm/HjsMessageBrokerServlet")

sql.eachRow(sqlStr) { row ->
    println("${row.organization_id}|${row.inventory_item_id}")
    html = http.get(
       path : "/mdm/HjsMessageBrokerServlet",
       query : [ ModuleName : "PIM",
                 InterfaceType : row.msg_type_cd,
                 TransactionStatus : "U",
                 TransactionId : row.organization_id + "|" + row.inventory_item_id ]
    )
    println html
}