import{_ as o,a as c,b as l,c as u,d as i,e as k,f as g,g as d}from"./property-ea3fa420.js";import{_ as r}from"./login-5c8dfc52.js";import{_ as m,r as v,o as _,c as b,a,d as s,e as p,f as n,b as e}from"./app-6440dfe3.js";const S={},D=s("h1",{id:"클라이언트-설치",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#클라이언트-설치","aria-hidden":"true"},"#"),n(" 클라이언트 설치")],-1),E=s("h2",{id:"_1-power-mdd-dx-설치",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#_1-power-mdd-dx-설치","aria-hidden":"true"},"#"),n(" 1. POWER MDD-DX 설치")],-1),T=s("p",null,[n("POWER MDD-DX Client Setup 파일을 다운로드하고 실행합니다. "),s("br"),n(" (재설치 시에는 Windows의 프로그램 추가/삭제에서 삭제하신 후 설치하고 기존에 POWER MDD-DX가 실행되고 있으면 반드시 프로그램 종료 후 설치해야 합니다.)")],-1),h={class:"custom-container tip"},R={class:"custom-container-title"},C=e("",1),A=e('

1) Setup 실행

2) Setup 실행 시 처음 화면

3) POWER MDD을 설치할 경로 (권장 사항 : default 설정 사용)

4) Setup 실행할지 확인 요청

5) Setup 실행 : PC 사양에 따라 다를 수 있으나 보통은 20~40초 이내 실행 완료됩니다.

6) Setup 완료

2. 설치 후 환경 설정 : DXDBinit.xml

Default 설치 시 OS별로 약간의 차이가 있으나 "C:/ProgramFiles/wizware/POWERMDD/”, “C:/Program Files(x86)/wizware/POWERMDD/”아래 존재합니다. 아래 정보들을 확인하고 본인의 개발 환경에 맞게 변경 및 설정할 수 있습니다.
(대부분의 개발 경우 관리자가 설정해 주는 DXDBinit.xml 파일을 상기 디렉토리에 저장하면 됩니다.)

1) <LoginInfo>
사용자가 Login 시에 최초 Setting 되어야 하는 환경입니다.

<LoginInfo>
	<URL>http://www.processbuilder.co.kr</URL>
	<URL1></URL1>
	<RequestCharset>utf-8</RequestCharset>
	<ResponseCharset>utf-8</ResponseCharset>
	<Security>YES</Security>
</LoginInfo> 

(1) <URL>, <URL1>
Login하면 최초 PowerMDD-DX의 body에 최초 Loading 되는 URL이다. Default 값으로는 www.processbuilder.co.kr로 제품 home page가 loading 됩니다.
해당 URL을 이용하여 Project Community가 있다면 해당 Community URL로 변경하여 사용하면 편리합니다.

(2) <RequestCharset>, <ResponseCharset>
POWER MDD-DX와 서버Side의 BMS와 통신 시에 사용되는 Charset으로 Request/ Response 시 사용하는 Charset입니다.
Default는 utf-8이며 별도의 다른 Charset 이용 시에는 POWER MDD-BMS의 Config도 동일하게 수정해줘야합니다.

(3) <Security>
Command를 암호화할 것인지 처리하는 태그이다. Default는 YES이며 YES일 경우 암호화 처리가 됩니다.

2) <LOCAL>
다수의 사용자가 개발 시 주로 사용하는 기능입니다.
서버 Side의 WAS를 사용하여 개발 시에 사용자가 Build 하게 되면 Class 파일을 WAS Container에 배치하게 되고 WAS의 Context reloadable=true 시에 Container가 reload하게 됩니다.

<LOCAL>
	<DEFAULT>
		<CLASSON>NO</CLASSON>
        <CLASSPATH>C:/temp/classes</CLASSPATH>
        <XMLON>YES</XMLON>
        <XMLPATH>C:/temp/classes/sqlmap/sql</XMLPATH> 
        <SQLCTX>C:/temp/context-sqlMap.xml</SQLCTX>
        <SOURCEON>NO</SOURCEON> 
        <SOURCEPATH>D:/temp2/MYBA</SOURCEPATH> 
        <CONTEXTON>NO</CONTEXTON>
        <CONTEXT_ROOT>C:/Tomcat9/backup</CONTEXT_ROOT>  
        <ContextName>MybaApps</ContextName>
        <SERVER>localhost</SERVER> 
        <Port>8180</Port>
        <IMAGEPATH>C:/Tomcat9/webapps/MybaApps</IMAGEPATH> 
        <OPTIONA>NO</OPTIONA>
	</DEFAULT> 
</LOCAL>   
`,15),P={class:"custom-container tip"},L={class:"custom-container-title"},O=s("p",null,"다수의 사용자가 동시에 계속 build 실행 시에 WAS에 상당한 부담을 줄 수가 있고 또 한 Build하는 동안 다른 개발자에게 영향을 줄 수 있게 됩니다. 이러한 현상을 회피하기 위해서 사용자 PC에 Tomcat WAS 환경을 구성하고 Test를 개발자 환경에서 실행할 수 있도록 해주는 기능입니다. 해당 기능은 일정 기간에 많은 Application을 개발할 때 사용하면 좋습니다. 개발이 완료되고 변화 관리 시에는 해당 기능을 Off 하는 것이 좋습니다.",-1),U=s("p",null,[s("b",{class:"font18"}," (1) , "),n(),s("br"),n(" 는 별도로 해당 프로젝트명을 설정할 경우 태그 안에 해당 프로젝트명을 넣어 설정하고 그 이외에는 로 설정됩니다.")],-1),x=s("p",null,[s("b",{class:"font18"}," (2) , "),n(),s("br"),n(" default 값은 NO이다. 해당 기능을 활성화하려면 의 값을 “YES”로 주면 됩니다. "),s("br")],-1),N={class:"custom-container tip"},I={class:"custom-container-title"},M=s("p",null,[n("해당 기능의 값을 “YES”로 두면 아래 CLASSPATH에 정의되어있는 Path아래 build한 Class파일 이 BMS로부터 전송받아 배치해줍니다. 보통은 PC에 설치되어 있는 WAS의 “…/Web-INF/classes” 두면 됩니다. "),s("br"),n(" class 파일을 download할 root 디렉토리를 설정해주면 됩니다.")],-1),f=s("p",null,[s("b",{class:"font18"}," (3) , , "),n(),s("br"),n(" default 값은 NO이다. 해당 기능을 활성화하려면 의 값을 “YES”로 주면 됩니다.")],-1),q={class:"custom-container tip"},w={class:"custom-container-title"},Y=s("p",null,"해당 기능의 값을 “YES”로 두면 아래 XMLPATH, SQLCTX에 정의되어있는 Path아래 build한 Xml 파일을 이 BMS로부터 전송받아 배치해줍니다. xml 소스 파일을 download할 root folder를 설정하면 됩니다.",-1),G=s("p",null,[s("b",{class:"font18"}," (4) , "),n(),s("br"),n(" default 값은 NO이다. 해당 기능을 활성화하려면 의 값을 “YES”로 주면 됩니다.")],-1),B={class:"custom-container tip"},y={class:"custom-container-title"},X=s("p",null,"해당 기능의 값을 “YES”로 두면 아래 SOURCEPATH에 정의되어있는 Path아래 build한 Java 소스 파일이 BMS로부터 전송받아 배치해줍니다. java 소스 파일을 download할 root folder를 설정하면 된다.",-1),H=s("p",null,[s("b",{class:"font18"}," (5) , "),n(),s("br"),n(" default 값은 NO이다. 해당 기능을 활성화하려면 의 값을 “YES”로 주면 됩니다.")],-1),W={class:"custom-container tip"},V={class:"custom-container-title"},F=s("p",null,[n("View Designer에서 Build/Test에서 Test URL을 해당 정보를 이용해서 Local WAS URL로 호출하여 테스트합니다. "),s("br"),n(" URL형식은 “http://localhost:port/ConTextName/테스트할layout파일” 형식으로 테스트가 가능합니다. "),s("br")],-1),J=s("p",null,[s("b",{class:"font18"}," (6) , , "),n(),s("br"),n(" default 값은 NO이다. 해당 기능을 활성화하려면 의 값을 “YES”로 주면 됩니다.")],-1),Q=s("p",null,[s("b",{class:"font18"}," (7) "),n(),s("br")],-1),K={class:"custom-container tip"},j={class:"custom-container-title"},Z=s("p",null,[n("Service Model의 Tool-Box Menu에서 서비스 Model을 이미지 파일로 저장하는 기능이 존재합니다. "),s("br"),n(" 해당 기능 사용시 Service Model을 bmp 형식으로 해당 위치에 파일로 저장합니다. "),s("br")],-1),z=e(`

3) <GLOBAL>
<GLOBAL> 아래의 <USER_ID>가 변수 명이 되고 <LOGIN_JOJIK_CD>가 Model Test 시 사용하는 임시 값으로 설정됩니다.

<GLOBAL>
	<DEFAULT>
		<USER_ID>950268<!--사용자ID --></USER_ID>  
		<USER_NM>홍길동<!--사용자이름 --></USER_NM>
		<CAST_TC>40<!--직위코드 --></CAST_TC>
		<CAST_NM>CAST40<!--직위명 --></CAST_NM>
		<POS_TC>46<!--직급코드 --></POS_TC>
		<POS_NM>POS46<!--직급명 --></POS_NM>
		<UP_DEPT_CD>3O00<!--상위부서코드(처실코드)--></UP_DEPT_CD>
		<UP_DEPT_NM>배관진단1부:상위<!--상위부서명(처실명)--></UP_DEPT_NM>
		<DEPT_CD>3O05<!--부서코드--></DEPT_CD>
		<DEPT_NM>배관진단1부<!--부서이름--></DEPT_NM>
		<BULC_TC>01<!--사업장코드--></BULC_TC>
		<BULC_NM>BULC01<!--사업장명--></BULC_NM>
		<EMPN>950268<!--사번--></EMPN>
		<AUTH_H>HRLV01<!--인사레벨--></AUTH_H>
		<AUTH_A>FNLV011<!--재무레벨--></AUTH_A>
		<AUTH_G>SALV01<!--안전레벨--></AUTH_G>
	</DEFAULT> 
</GLOBAL> 
`,2),$={class:"custom-container tip"},ss={class:"custom-container-title"},ns=s("p",null,[n("Service Model에서 디자인 시에 필요로 하는 Data 중 업무 운영 시 사용되는 HttpSession 또는 쿠키에서 사용되는 공통 Global 변수를 사용하기 위해서 변수 이름과 개발 시 사용될 임시 값을 지정하는 곳입니다. "),s("br")],-1),as=e(`

4) <INS>, <UPD>
Service Model의 INS BOC 또는 UPD BOC 사용할 때만 유효합니다.

<INS>
	<DEFAULT>
		<REG_DT TYPE="STRING" SQLVAL="TRUE">SYSDATE</REG_DT>
		<REG_USERID TYPE="OBJECT" >G.USER_ID</REG_USERID>
	</DEFAULT>
	<PMDD>
		<REG_DT TYPE="STRING" SQLVAL="TRUE">SYSDATE</REG_DT>
		<REG_USERID TYPE="OBJECT" >G.USER_ID</REG_USERID>
	</PMDD>
</INS>

<UPD>
	<DEFAULT>
		<UPD_DT TYPE="STRING" SQLVAL="TRUE">SYSDATE</UPD_DT>
		<UPD_USERID TYPE="OBJECT" >G.USER_ID</UPD_USERID>
	</DEFAULT>
	<PMDD>
		<UPD_DT TYPE="STRING" SQLVAL="TRUE">SYSDATE</UPD_DT>
		<UPD_USERID TYPE="OBJECT" >G.USER_ID</UPD_USERID>
	</PMDD>
</UPD>
`,2),ts={class:"custom-container tip"},ps={class:"custom-container-title"},es=s("p",null,[n("데이터베이스에 데이터를 Insert 또는 Update 시 모든 table에 공통적으로 사용되는 컬럼이 존재할 때 정의하여 사용하면 편리함을 더해줍다. "),s("br"),n(" 공통 컬럼으로 많이 사용되는 데이터를 Insert 또는 Update 시 등록 일시, 등록자 또는 수정 일시, 수정자 컬럼을 INS BOC 또는 UPD BOC를 Drag-Drop 하면 자동으로 추가가 됩니다. "),s("br")],-1),os=e(`
  • 태그명이 해당 공통 컬럼명이 됩니다. 그리고 해당 컬럼의 값의 속성을 지정하면 됩니다.
    만일 SYSDATE와 같은 SQL 구분을 사용할 때는 SQLVAL속성을 True로 주면 됩니다. 아래 예시를 참조하면 됩니다.
    Ex) 데이터베이스 구분사용 시 : <REG_DT TYPE=”STRING” SQLVAL=”TRUE”>SYSDATE</REG_DT>

  • 업무의 Global 객체의 값을 사용할 때에는 Type을 OBJECT로 두고 아래의 예시와 같이 정의하면 됩니다.
    Ex) Global 객체로부터 값 할당 시 : <REG_USERID TYPE=”OBJECT”>SYSDATE</REG_USERID>

5) <UxDesign>
특별한 사항이 아니면 기본 Default로 구성하면 됩니다.

<UxDesign>
	<uxTemp>./temp</uxTemp>
	<uxRoot>./Download</uxRoot>
	<StyleOff>NO</StyleOff>
</UxDesign>
`,3),cs={class:"custom-container tip"},ls={class:"custom-container-title"},us=s("p",null,[n("View Designer에서 임시 작업 영역으로 사용할 Folder를 지정합니다. "),s("br")],-1),is=e(`

6) <UxDesign>

<UxComponent>
	<ZTree>http://www.treejs.cn/v3/api.php</ZTree>
	<ChartJs>http://www.chartjs.org/docs/latest</ChartJs>
	<FullCalendar>https://fullcalendar.io</FullCalendar>
</UxComponent>
`,2),ks={class:"custom-container tip"},gs={class:"custom-container-title"},ds=s("p",null,[n("View Designer에서 사용되는 Component의 URL을 등록합니다. "),s("br"),n(" Component 중에 Tree는 Ztree를 사용하고 있으며 Chart는 ChartJs을 사용하고 있습니다.")],-1),rs=e(`

7) <LANGUAGE>
POWER MDD의 언어를 설정합니다.

<LANGUAGE selected="KOREAN"  admin="true">
	<LIST codeview="false">KOREAN</LIST>
	<LIST codeview="false">ENGLISH</LIST>
	<LIST codeview="false">JAPANESE</LIST>
	<LIST codeview="false">CHINESE</LIST>
</LANGUAGE>

8) <SYSTEM>
작업할 프로젝트의 System ID를 등록하여 사용합니다.
추가 시 “<SYSID>ADD_ID</SYSID>“의 형식으로 추가해 주면 로그인시 프로젝트 선택 콤보에서 선택할 수 있도록 활성이 됩니다.

<SYSTEM>
	<SYSID>DEMO</SYSID>
	<SYSID>DTBED</SYSID>
	<SYSID>EDUSML</SYSID>
	<SYSID>NITS</SYSID>
</SYSTEM>
`,4),ms={class:"custom-container tip"},vs={class:"custom-container-title"},_s=s("p",null,"POWER MDD 재설치 시 사용한 시스템 ID도 초기화되기 때문에 다시 입력해야 합니다.",-1),bs=s("h2",{id:"_3-접속-id-요청-및-연결정보",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#_3-접속-id-요청-및-연결정보","aria-hidden":"true"},"#"),n(" 3. 접속 ID 요청 및 연결정보")],-1),Ss=s("p",null,[s("span",{class:"font20"}," 1) 사용자 PC에 DX가 정상적으로 Setup 완료 되었다면, 해당 사용자는 PowerMDD 서버 관리자에게 ID 요청 및 접속 Key를 발급받아야 합니다. "),n(),s("br")],-1),Ds={class:"custom-container tip"},Es={class:"custom-container-title"},Ts=s("p",null,"관리자에게 요청하기 위해서는 해당 PC의 현재 사용 중인 Network Card의 Mac-Address를 확인 후 관리자에게 Mac-Address 등록 요청도 같이 해야 합니다. POWER MDD-BMS서버에 등록되지 않은 Mac-Address는 접속이 허용되지 않습니다.",-1),hs=e('

2) 클라우드 서버에 접속하기 위한 요청 프로세스

① 해당 작업자의 PC에서 현재 사용 중인 Network-Card의 Mac-Address 등록을 개발 서버 관리자에게 보냅니다.

② 접속하기 위한 ID/Password를 개발서버 관리자로부터 받습니다.

③ 접속 보안 Key를 관리자로부터 받은 후 아래 절차에 따라서 적용한다. 접속 보안 Key는 파일로 구성되어 있습니다.

3) POWER MDD 실행화면이 나오지 않을 경우

① POWER MDD 프로그램에서 마우스 오른쪽 버튼을 클릭해서 속성을 클릭합니다.

② 속성 창 호환성 탭에 들어가서 관리자 권한으로 이 프로그램 실행 체크 후 확인 버튼을 클릭합니다.

4) POWER MDD 로그인

',8),Rs={class:"custom-container tip"},Cs={class:"custom-container-title"},As=s("p",null,[n("프로젝트가 1개 이상일 때 접속 프로젝트를 관리자로부터 확인 후 접속해야 합니다. 해당 ID는 프로젝트에 종속되어있는 ID입니다. "),s("br"),n(" N개 이상의 프로젝트에서 작업을 해야 하는 경우 관리자로부터 프로젝트별로 ID 발급을 요청해야 합니다. "),s("br"),n(" (프로젝트 ID에 해당 프로젝트 명이 없을 경우 DXDBinit.xml 파일 안에 에 프로젝트 명을 추가합니다.) "),s("br")],-1);function Ps(Ls,Os){const t=v("Badge");return _(),b("div",null,[D,E,T,a(" Remark "),s("div",h,[s("p",R,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),C]),a(" "),A,a(" Remark "),s("div",P,[s("p",L,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),O]),a(" "),U,x,a(" Remark "),s("div",N,[s("p",I,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),M]),a(" "),f,a(" Remark "),s("div",q,[s("p",w,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),Y]),a(" "),G,a(" Remark "),s("div",B,[s("p",y,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),X]),a(" "),H,a(" Remark "),s("div",W,[s("p",V,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),F]),a(" "),J,Q,a(" Remark "),s("div",K,[s("p",j,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),Z]),a(" "),z,a(" Remark "),s("div",$,[s("p",ss,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),ns]),a(" "),as,a(" Remark "),s("div",ts,[s("p",ps,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),es]),a(" "),os,a(" Remark "),s("div",cs,[s("p",ls,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),us]),a(" "),is,a(" Remark "),s("div",ks,[s("p",gs,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),ds]),a(" "),rs,a(" Remark "),s("div",ms,[s("p",vs,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),_s]),a(" "),bs,Ss,a(" Remark "),s("div",Ds,[s("p",Es,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),Ts]),a(" "),hs,a(" Remark "),s("div",Rs,[s("p",Cs,[p(t,{type:"tip",text:"Remark",vertical:"middle"})]),As]),a(" ")])}const Is=m(S,[["render",Ps],["__file","Client.html.vue"]]);export{Is as default};