ROPM Script

##################################################################################################################
########################################### 작성자 : SPSS Korea 안정수 ###########################################
############################################# 최종수정일 : 20100618 ##############################################
##################################################################################################################
set ^stream.date_format = “YYYYMMDD”
set ^stream.time_format = “HHMMSS”
set ^stream.execute_method = “Script”

##### ROPM_Server_Start 스트림 작성 ——————————————————————————

open stream “D:/SPSS/SPSS_Execute/EXE_Streams/ROPM_Server_Start.str”

var statisticsimport
set statisticsimport = create statisticsimportnode at 100 100
rename ^statisticsimport as ROPM_user_input_server
set ROPM_user_input_server:statisticsimportnode {
full_filename = “D:/SPSS/SPSS_Execute/Inputs/ROPM_user_input_server.sav”
import_names = true
import_data = true
}

var table
set table = create tablenode at 200 100
rename ^table as 사용자입력부분
connect ROPM_user_input_server:statisticsimportnode to 사용자입력부분:tablenode
execute 사용자입력부분:tablenode

var table_server start_day end_day
set table_server = ‘사용자입력부분’:tablenode.output
set start_day = value table_server at 1 1
set end_day = value table_server at 1 2

var dbimport
set dbimport = create databasenode at 100 200
rename ^dbimport as RD_CRS기업당사자검증기초
set RD_CRS기업당사자검증기초:databasenode {
mode = Query
datasource = “PEDW”
username = “p159290″
password = “sp_201006″
query = “”"SELECT 기준년월, 고객번호, 고객구분, 부도여부, 결산일, 작성기준일, 완료일, 금감원신용평가모형구분 AS 표준평가모형구분, CRS산업부문구분, 재무스코어, 비재무스코어, 모형평점, 최종등급, 재무등급, 비재무등급, 최종비재무등급, 모형등급, 스트레스등급, 시뮬레이션등급, 부실징후체크후등급, 부실징후등급, 표준재무스코어, 표준비재무스코어
FROM RD_CRS기업당사자검증기초
“”"
}

var select
set select = create selectnode at 200 200
rename ^select as RD_CRS기업당사자검증기초
connect RD_CRS기업당사자검증기초:databasenode to RD_CRS기업당사자검증기초:selectnode
set RD_CRS기업당사자검증기초:selectnode {
mode = Discard
condition = “표준평가모형구분 = ’19′ or 최종등급 = ’00′”
}

var select
set select = create selectnode at 300 200
rename ^select as 시작_종료년월
connect RD_CRS기업당사자검증기초:selectnode to 시작_종료년월:selectnode
set 시작_종료년월:selectnode {
mode = Include
condition = “기준년월 >= ‘” >< "' and 기준년월 =’20060703′
AND a.기관코드 = b.기관코드 AND a.고객번호 = b.고객번호 AND a.고객구분 = b.고객구분 AND a.결산일 = b.결산일 AND a.작성기준일 = b.작성기준일 AND a.회계과목코드*=code.회계과목코드
“”"
}

var select
set select = create selectnode at 200 300
rename ^select as 재무등급산출
connect 재무등급산출:databasenode to 재무등급산출:selectnode
set 재무등급산출:selectnode {
mode = Discard
condition = “substring(1,1, 회계과목코드) = ’0′”
}

var select
set select = create selectnode at 300 300
rename ^select as 회계과목코드
connect 재무등급산출:selectnode to 회계과목코드:selectnode
set 회계과목코드:selectnode {
mode = Discard
condition = “회계과목코드 = ’0′”
}

var merge
set merge = create mergenode at 1500 300
rename ^merge as 재무등급산출
connect RD_CRS기업당사자검증기초:filternode to 재무등급산출:mergenode
connect 회계과목코드:selectnode to 재무등급산출:mergenode
set 재무등급산출:mergenode {
method = Keys
key_fields = [결산일 고객구분 고객번호 작성기준일]
join = PartialOuter
outer_join_tag.1 = true
}

var type
set type = create typenode at 1600 300
rename ^type as 재무
connect 재무등급산출:mergenode to 재무:typenode

var statisticsexport
set statisticsexport = create statisticsexportnode at 1700 300
rename ^statisticsexport as 재무
connect 재무:typenode to 재무:statisticsexportnode
set 재무:statisticsexportnode {
full_filename = “D:/SPSS/SPSS_Execute/Outputs/재무_캐시.sav”
export_names = NamesAndLabels
}

var dbimport
set dbimport = create databasenode at 100 400
rename ^dbimport as 비재무모형항목별등급
set 비재무모형항목별등급:databasenode {
mode = Query
datasource = “PEDW”
username = “p159290″
password = “sp_201006″
query = “”"SELECT a.고객번호,a.고객구분, a.결산일, a.작성기준일, b.신용조사대상구분, b.신용평가모형구분, a.비재무항목코드, b.대분류명, b.중분류명, b.평가항목명, a.비재무항목등급, a.가중위험수준값
FROM N_CRS비재무모형항목별등급 a, N_CRS비재무모형평가지표 b
WHERE a.작성기준일>=’20060703′
AND a.비재무항목코드*=b.비재무항목코드
“”"
}

var filter
set filter = create filternode at 200 400
rename ^filter as 비재무모형항목별등급
connect 비재무모형항목별등급:databasenode to 비재무모형항목별등급:filternode
set 비재무모형항목별등급:filternode {
default_include = true
include.”b.대분류명+’||’” = false
include.”b.중분류명+’||’” = false
include.”b.평가항목명+’||’” = false
}

var merge
set merge = create mergenode at 1500 400
rename ^merge as 비재무모형항목별등급
connect RD_CRS기업당사자검증기초:filternode to 비재무모형항목별등급:mergenode
connect 비재무모형항목별등급:filternode to 비재무모형항목별등급:mergenode
set 비재무모형항목별등급:mergenode {
method = Keys
key_fields = [결산일 고객구분 고객번호 작성기준일]
join = PartialOuter
outer_join_tag.1 = true
}

var type
set type = create typenode at 1600 400
rename ^type as 비재무
connect 비재무모형항목별등급:mergenode to 비재무:typenode

var statisticsexport
set statisticsexport = create statisticsexportnode at 1700 400
rename ^statisticsexport as 비재무
connect 비재무:typenode to 비재무:statisticsexportnode
set 비재무:statisticsexportnode {
full_filename = “D:/SPSS/SPSS_Execute/Outputs/비재무_캐시.sav”
export_names = NamesAndLabels
}

clear outputs

execute “재무”:statisticsexportnode
execute “비재무”:statisticsexportnode

close stream

##### ROPM_Server 스트림 작성 ————————————————————————————

open stream “D:/SPSS/SPSS_Execute/EXE_Streams/ROPM_Server.str”

### PART1 ——————————————————————————————————–

var statisticsimport
set statisticsimport = create statisticsimportnode at 1000 100
rename ^statisticsimport as 재무캐시
set 재무캐시:statisticsimport {
full_filename = “D:/SPSS/SPSS_Execute/Outputs/재무_캐시.sav”
import_names = true
import_data = true
}

var select
set select = create selectnode at 900 100
rename ^select as 영스코어
connect 재무캐시:statisticsimportnode to 영스코어:selectnode
set 영스코어:selectnode {
mode = Discard
condition = “모형평점 = 0″
}

var derive
set derive = create derivenode at 800 100
rename ^derive as _1_스코어
connect 영스코어:selectnode to _1_스코어:derivenode
set _1_스코어:derivenode {
mode = Multiple
fields = [재무변수변환비율 재무스코어 비재무스코어 모형평점]
name_extension = “_1″
add_as = Suffix
result_type = Formula
formula_expr = “-@FIELD”
}

var filter
set filter = create filternode at 700 100
rename ^filter as 영스코어
connect _1_스코어:derivenode to 영스코어:filternode
set 영스코어:filternode {
default_include = true
include.재무변수변환비율 = false
include.재무스코어 = false
include.비재무스코어 = false
include.모형평점 = false
}

var derive
set derive = create derivenode at 600 100
rename ^derive as 검증기준_1
connect 영스코어:filternode to 검증기준_1:derivenode
set 검증기준_1:derivenode {
new_name = “검증기준”
result_type = Formula
formula_expr = “1″
}

var filter
set filter = create filternode at 1100 100
rename ^filter as 재무캐시
connect 재무캐시:statisticsimportnode to 재무캐시:filternode
set 재무캐시:filternode {
default_include = false
include.FACTOR구분 = true
include.표준평가모형구분 = true
include.CRS산업부문구분 = true
}

var distinct
set distinct = create distinctnode at 1200 100
rename ^distinct as 재무캐시
connect 재무캐시:filternode to 재무캐시:distinctnode
set 재무캐시:distinctnode {
mode = Include
fields = ['표준평가모형구분' 'CRS산업부문구분' 'FACTOR구분']
}

var sort
set sort = create sortnode at 1300 100
rename ^sort as 재무캐시
connect 재무캐시:distinctnode to 재무캐시:sortnode
set 재무캐시:sortnode {
keys = [{'표준평가모형구분' Ascending}{'CRS산업부문구분' Ascending}{'FACTOR구분' Ascending}]
}

var reorder
set reorder = create reordernode at 1300 100
rename ^reorder as 재무캐시
connect 재무캐시:sortnode to 재무캐시:reordernode
set 재무캐시:reordernode {
mode = Custom
start_fields = [표준평가모형구분 CRS산업부문구분 FACTOR구분]
}

var derive
set derive = create derivenode at 1400 100
rename ^derive as 검증옵션_101
connect 재무캐시:reordernode to 검증옵션_101:derivenode
set 검증옵션_101:derivenode {
new_name = “검증옵션”
result_type = Formula
formula_expr = “’101′”
}

var derive
set derive = create derivenode at 1500 100
rename ^derive as 검증옵션_101_산출레벨_1
connect 검증옵션_101:derivenode to 검증옵션_101_산출레벨_1:derivenode
set 검증옵션_101_산출레벨_1:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “1″
}

var derive
set derive = create derivenode at 1600 100
rename ^derive as 검증옵션_101_산출레벨_2
connect 검증옵션_101:derivenode to 검증옵션_101_산출레벨_2:derivenode
set 검증옵션_101_산출레벨_2:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “2″
}

var derive
set derive = create derivenode at 1700 100
rename ^derive as 검증옵션_101_산출레벨_3
connect 검증옵션_101:derivenode to 검증옵션_101_산출레벨_3:derivenode
set 검증옵션_101_산출레벨_3:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “3″
}

var derive
set derive = create derivenode at 1800 100
rename ^derive as 검증옵션_101_산출레벨_4
connect 검증옵션_101:derivenode to 검증옵션_101_산출레벨_4:derivenode
set 검증옵션_101_산출레벨_4:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “4″
}

var append
set append = create appendnode at 1900 100
rename ^append as 검증옵션_101
connect 검증옵션_101_산출레벨_1:derivenode to 검증옵션_101:appendnode
connect 검증옵션_101_산출레벨_2:derivenode to 검증옵션_101:appendnode
connect 검증옵션_101_산출레벨_3:derivenode to 검증옵션_101:appendnode
connect 검증옵션_101_산출레벨_4:derivenode to 검증옵션_101:appendnode
set 검증옵션_101:appendnode.match_by = Name

var derive
set derive = create derivenode at 1400 200
rename ^derive as 검증옵션_109
connect 재무캐시:reordernode to 검증옵션_109:derivenode
set 검증옵션_109:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “’109′”
}

var derive
set derive = create derivenode at 1500 200
rename ^derive as 검증옵션_109_산출레벨_1
connect 검증옵션_109:derivenode to 검증옵션_109_산출레벨_1:derivenode
set 검증옵션_109_산출레벨_1:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “1″
}

var derive
set derive = create derivenode at 1600 200
rename ^derive as 검증옵션_109_산출레벨_2
connect 검증옵션_109:derivenode to 검증옵션_109_산출레벨_2:derivenode
set 검증옵션_109_산출레벨_1:derivenode {
new_name = “산출레벨”
result_type = Formula
formula_expr = “2″
}

var append
set append = create appendnode at 1900 200
rename ^append as 검증옵션_109
connect 검증옵션_109_산출레벨_1:derivenode to 검증옵션_109:appendnode
connect 검증옵션_109_산출레벨_2:derivenode to 검증옵션_109:appendnode
set 검증옵션_109:appendnode.match_by = Name

### PART2 ——————————————————————————————————–

var statisticsimport
set statisticsimport = create statisticsimportnode at 900 300
rename ^statisticsimport as 비재무캐시
set 비재무캐시:statisticsimportnode {
full_filename = “D:/SPSS/SPSS_Execute/Outputs/비재무_캐시.sav”
import_names = true
import_data = true
}

var derive
set derive = create derivenode at 1000 300
rename ^derive as FACTOR구분
connect 비재무캐시:statisticsimportnode to FACTOR구분:derivenode
set FACTOR구분:derivenode {
new_name = “FACTOR구분”
result_type = Formula
formula_expr = “대분류명 >< "'"
set "산출레벨_대상":distinctnode.fields = ['표준평가모형구분' 'CRS산업부문구분' 'FACTOR구분' '고객번호']
endif

# 표준평가모형구분이 '01', '02', '03'인 경우 모형평점 = -모형평점으로 —————————————-
if (level_model = '01' or level_model = '02' or level_model = '03') then
connect "모형평점" to "01.Type"
else
connect "01-1.산출레벨" to "01.Type"
endif

# 검증기준이 2일때 괴리도지수를 구하기 위한 설정 ————————————————————-
if basis = '2' then

execute "평균PD"
var table_pd
set table_pd = '평균PD':tablenode.output
var big
set big = value table_pd at 3 2
clear outputs

set "평균PD_1":derivenode.formula_expr = ^big

if level_i = 1 or level_i = 2
if option_i = 201 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '최종등급'
set '평균PD_병합':mergenode.key_fields = ['최종등급']
elseif option_i = 202 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '모형등급'
set '평균PD_병합':mergenode.key_fields = ['모형등급']
elseif option_i = 203 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '재무등급'
set '평균PD_병합':mergenode.key_fields = ['재무등급']
elseif option_i = 204 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '최종비재무등급'
set '평균PD_병합':mergenode.key_fields = ['최종비재무등급']
elseif option_i = 205 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '비재무등급'
set '평균PD_병합':mergenode.key_fields = ['비재무등급']
elseif option_i = 206 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '스트레스등급'
set '평균PD_병합':mergenode.key_fields = ['스트레스등급']
elseif option_i = 207 then
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '시뮬레이션등급'
set '평균PD_병합':mergenode.key_fields = ['시뮬레이션등급']
else
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '부실징후체크후등급'
set '평균PD_병합':mergenode.key_fields = ['부실징후체크후등급']
endif
else
set '검증2_괴리도':filternode.new_name.'신용등급ID' = '비재무항목등급'
set '평균PD_병합':mergenode.key_fields = ['비재무항목등급']
endif
endif
# 괴리도 산출 end ——————————————————————————————

# ———————————————————————————————————-
# ———————————————————————————————————-
# 기본설정 END ———————————————————————————————
# ———————————————————————————————————-
# ———————————————————————————————————-

# 조건1. 101, 109 : 재무 + 스코어 기준 —————————————————————–
if option_i = 101 or option_i = 109 then
connect "검증기준_1":derivenode to "01-1.산출레벨":selectnode

# 스코어 = 0 제거 ———————————————————————–
if option_i = 101
if (level_i = 1 or level_i = 2) then
set "영스코어":selectnode.condition = "재무스코어 = 0"
else
set "영스코어":selectnode.condition = "재무변수변환비율 = 0"
endif
else
set "영스코어":selectnode.condition = "모형평점 = 0"
endif

execute "중지여부"
var table_stop
set table_stop = '중지여부':tablenode.output
var stop_n
set stop_n = ^table_stop.row_count
clear outputs

if stop_n 구간ID —————————————————————————
disconnect “스코어ID”:derivenode to “필터정리”:filternode

# spss 파일불러오기때문에… —————————————————————–
disconnect “83.DS_B_V_i”:derivenode to “84.통합”:aggregatenode
disconnect “83.DS_B_V_i”:derivenode to “85.병합”:mergenode

# SPSS 파일 불러오기 ————————————————————————-
set ‘RK’:spssimportnode.full_filename = “”

# 첫번째 중지여부 if
endif
#—————————————————————————————————
#—————————————————————————————————
#—————————————————————————————————

# 조건2. 102 : 비재무 + 스코어 기준 —————————————————————-
elseif option_i = 102 then
connect “검증기준_102″:derivenode to “01-1.산출레벨”:selectnode

execute “중지여부”
var table_stop
set table_stop = ‘중지여부’:tablenode.output
var stop_n
set stop_n = ^table_stop.row_count
clear outputs

if stop_n < "'"

# Cache 2차 설정 —————————————————————————–
set "91.index_db":derivenode.cache_enabled = True

#———————————————————————————————
# 최종 결과 산출 —————————————————————————–
# ——————————————————————————————–
execute "산출기초"
execute "산출결과"

# ——————————————————————————————–
# ————- 원래 설정 상태로 되돌리기!!!!! ———————————————–
# ——————————————————————————————–

# Cache 풀기
set "83.DS_B_V_i":derivenode.cache_enabled = False
set "91.index_db":derivenode.cache_enabled = False

# 표준평가모형구분이 '01', '02', '03'인 경우 모형평점 = -모형평점으로 원래상태로————–
if (level_model = '01' or level_model = '02' or level_model = '03') then
disconnect "모형평점" to "01.Type"
else
disconnect "01-1.산출레벨" to "01.Type"
endif

disconnect "검증기준_102":derivenode to "01-1.산출레벨":selectnode

# 동점자 포함 원래 상태로 ——————————————————————–
if include_i = 'Y' then
disconnect "19.동점자구분" between "16.index_percentile" and "20.버켓팅"
else
disconnect "16.index_percentile" to "20.버켓팅"
endif

disconnect "스코어ID":derivenode to "필터정리":filternode

# spss 파일불러오기때문에… —————————————————————–
disconnect "83.DS_B_V_i":derivenode to "84.통합":aggregatenode
disconnect "83.DS_B_V_i":derivenode to "85.병합":mergenode

# SPSS 파일 불러오기 ————————————————————————-
set 'RK':spssimportnode.full_filename = ""

# 두번째 중지여부 if
endif

#—————————————————————————————————
#—————————————————————————————————
#—————————————————————————————————

# 조건3. 201 ~208: 등급 기준 ————————————————————————-
else
if level_i = 1 or level_i = 2
if option_i = 201 then
set "널값제거":selectnode.condition = "@NULL(최종등급) or @BLANK(최종등급)"
elseif option_i = 202 then
set "널값제거":selectnode.condition = "@NULL(모형등급) or @BLANK(모형등급)"
elseif option_i = 203 then
set "널값제거":selectnode.condition = "@NULL(재무등급) or @BLANK(재무등급)"
elseif option_i = 204 then
set "널값제거":selectnode.condition = "@NULL(최종비재무등급) or @BLANK(최종비재무등급)"
elseif option_i = 205 then
set "널값제거":selectnode.condition = "@NULL(비재무등급) or @BLANK(비재무등급)"
elseif option_i = 206 then
set "널값제거":selectnode.condition = "@NULL(스트레스등급) or @BLANK(스트레스등급)"
elseif option_i = 207 then
set "널값제거":selectnode.condition = "@NULL(시뮬레이션등급) or @BLANK(시뮬레이션등급)"
else
set "널값제거":selectnode.condition = "@NULL(부실징후체크후등급) or @BLANK(부실징후체크후등급)"
endif
else
set "널값제거":selectnode.condition = "@NULL(비재무항목등급) or @BLANK(비재무항목등급)"
endif

connect "널값제거":selectnode to "01-1.산출레벨":selectnode

execute "중지여부"
var table_stop
set table_stop = '중지여부':tablenode.output
var stop_n
set stop_n = ^table_stop.row_count
clear outputs

if stop_n 구간ID —————————————————————————–
if (level_i = 1 or level_i = 2) then
disconnect “등급ID재정비”:derivenode to “필터정리”:filternode
else
disconnect “등급ID재정비_디폴트”:derivenode to “필터정리”:filternode
endif

# spss 파일불러오기때문에… ——————————————————————–
disconnect “83.DS_B_V_i”:derivenode to “84.통합”:aggregatenode
disconnect “83.DS_B_V_i”:derivenode to “85.병합”:mergenode

# SPSS 파일 불러오기 —————————————————————————–
set ‘RK’:spssimportnode.full_filename = “”

endif

#—————————————————————————————————
#—————————————————————————————————
#—————————————————————————————————
endif

endfor

clear outputs
close stream

Lip Dup – EMLYON

Posted in JungsooTube. 태그: , . 1 Comment »

The Bird And The Bee – Again & Again

OS X을 이용해 만든 기발한 아마츄어 뮤직비디오

팔로우

Get every new post delivered to your Inbox.