PropertyEventMethod찾아보기
WebSquare.ModelUtil - 5.0_1.3521B.20190311.114514

WebSquare.ModelUtil Package

Type

engine

Property Summary

Event Summary

Method Summary

abort( submissionId )
현재 진행 중인 Submission을 중지합니다
copyChildrenNodes( srcXPath , destXPath , mode )
srcXPath가 가리키는 하위노드들을 destXPath가 가리키는 하위노드들로 복사합니다.
copyNode( srcXPath , destXPath )
srcXPath에 해당하는 Node를 destXPath 에 해당하는 Node의 Child Node로 append합니다.
executeParallel( submission , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 기존 submission들을 parallel 하게 순서를 보장하여 처리하고자 할때 사용
executeSerial( submission , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 기존 submission들을 serial 하게 순서를 보장하여 처리하고자 할때 사용
executeSubmission( submissionID , requestData , obj )
submissionID에 해당하는 submission을 실행시킵니다
executeWhilst( submission , condFn , maxRepeat , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 특정 submission을 반복적으로 호출하고자 할때 사용
executeWorkflow( workflowId )
workflowId or workflowObj 을 받아서 workflow 실행
findInstanceNode( xpath )
xpath에 해당하는 Instance 내부의 노드를 반환합니다
findInstanceNodes( xpath )
xpath에 해당하는 Instance 내부의 노드들을 배열 형태로 반환합니다
findSerializedNode( xpath )
WebSquare
getInstanceValue( xpath )
주어진 xpath에 해당하는 Instance 내부의 노드의 nodeValue를 반환합니다.
getRefToReqData( submissionObj )
submission 객체의 ref를 request String 으로 변환하여 return
getRunningWorkflow( workflowID )
실행중인 첫번째 Workflow 객체를 반환합니다
getRunningWorkflowID( )
실행중인 Workflow ID를 반환합니다
getSubmission( id )
id에 해당하는 submission 을 반환합니다
getWorkflow( id )
id에 해당하는 Workflow 객체를 반환합니다
isRunningWorkflow( workflowID )
실행중인 Workflow 가 있는지 여부를 반환합니다.
rejectWorkflow( reject , workflowID )
실행중인 Workflow 를 Reject 시킵니다
removeChildNodes( xpath )
xpath에 해당하는 부모의 childNode들을 제거합니다
removeInstanceNode( xpath )
xpath에 해당하는 node를 부모로부터 제거합니다
removeInstanceNodes( xpath )
xpath에 해당하는 여러 개의 node를 부모로 부터 제거합니다
setInstanceNode( doc , xpath , modelID , mode )
Document 혹은 Element를 Instance의 xpath에 해당하는 경로에 위치시킵니다.
setInstanceValue( xpath , value )
주어진 xpath에 해당하는 Instance 내부 노드를 찾아 nodeValue를 설정합니다

Property Detail

Event Detail

Method Detail

abort( submissionId )
현재 진행 중인 Submission을 중지합니다.
Parameter
nametyperequireddescription
submissionIdStringY중지할 Submission의 ID
Sample
WebSquare.ModelUtil.abort( "중지할 Submission의 ID" );
copyChildrenNodes( srcXPath , destXPath , mode )
srcXPath가 가리키는 하위노드들을 destXPath가 가리키는 하위노드들로 복사합니다.
이 때 mode에 따라 완전히 srcXPath의 하위노드로 replace 하는 것과 ( replaceAll )
srcXPath와 destXPath의 하위노드를 merge하는 것과 ( overwrite )
srcXPath의 하위노드와 destXPath의 하위노드 간 합집합을 구하는 것 ( append )
destXPath 하위노드에 존재하는 노드만 값을 세팅하는 것으로 나누어 집니다. ( replaceOnly )
Parameter
nametyperequireddescription
srcXPathStringY복사할 데이터의 xPath
destXPathStringY복사할 장소의 XPath
modeStringY( "replaceAll", "overwrite", "replaceOnly", "append" )
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> <selectedBook> <title lang="eng">Learning XML2</title> <price>39.952</price> <author>Erik T. Ray</author> </selectedBook> WebSquare.ModelUtil.copyChildrenNodes( "bookstore/book[@idx='2']" , "selectedBook", "replaceAll"); Model에 selectedBook 노드는 다음과 같다. <selectedBook> <title lang="eng">Learning XML</title> <price>39.95</price> </selectedBook> WebSquare.ModelUtil.copyChildrenNodes( "bookstore/book[@idx='2']" , "selectedBook", "overwrite"); <selectedBook> <title lang="eng">Learning XML</title> <price>39.95</price> <author>Erik T. Ray</author> </selectedBook> WebSquare.ModelUtil.copyChildrenNodes( "bookstore/book[@idx='2']" , "selectedBook", "append"); <selectedBook> <title lang="eng">Learning XML2</title> <price>39.952</price> <author>Erik T. Ray</author> <title lang="eng">Learning XML</title> <price>39.95</price> </selectedBook> WebSquare.ModelUtil.copyChildrenNodes( "bookstore/book[@idx='2']" , "selectedBook", "replaceOnly");
copyNode( srcXPath , destXPath )
srcXPath에 해당하는 Node를 destXPath 에 해당하는 Node의 Child Node로 append합니다.
기존의 destXPath밑에 있던 node들은 사라집니다.
Parameter
nametyperequireddescription
srcXPathStringYappend시킬 데이터의 xPath
destXPathStringYappend되는 곳의 xPath
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> WebSquare.ModelUtil.copyNode( "bookstore/book[@idx='2']" , "selectedBook"); Model에 selectedBook 노드는 다음과 같다. <selectedBook> <book idx='2'> <title lang='eng'>Learning XML</title> <price>39.95</price> </book> </selectedBook>
executeParallel( submission , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 기존 submission들을 parallel 하게 순서를 보장하여 처리하고자 할때 사용
submission1 call -> submission2 call -> submission1 callback -> submission2 callback
Parameter
nametyperequireddescription
submissionarrayYid array ex) ["submission1", "submission2", "submission3"]
processMsgStringN
resolveCallbackfunctionNfunction
rejectCallbackfunctionNfunction
idStringN
Sample
WebSquare.ModelUtil.executeParallel( ["submission1", "submission2", "submission3"],processMsg, final_callback, reject_callback, id) ; submission1,submission2, submission3 call -> submission1 callback -> submission2 callback -> submission3 callback -> final_callback or reject_callback
executeSerial( submission , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 기존 submission들을 serial 하게 순서를 보장하여 처리하고자 할때 사용
submission1 call -> submission1 callback -> submission2 call -> submission2 callback
Parameter
nametyperequireddescription
submissionarrayYid array ex) ["submission1", "submission2", "submission3"]
processMsgStringN
resolveCallbackfunctionNfunction
rejectCallbackfunctionNfunction
idStringN
Sample
WebSquare.ModelUtil.executeSerial( ["submission1", "submission2", "submission3"], processMsg,final_callback, reject_callback) ; submission1 call/callback -> submission2 call/callback -> submission3 call/callback -> final_callback or reject_callback
executeSubmission( submissionID , requestData , obj )
submissionID에 해당하는 submission을 실행시킵니다.
Parameter
nametyperequireddescription
submissionIDStringYsubmission의 아이디
requestDataObjectN요청 데이터
objObjectN전송중 disable시킬 컴퍼넌트
Sample
WebSquare.ModelUtil.executeSubmission ("submission1") ; id가 submission1인 submission을 실행.
executeWhilst( submission , condFn , maxRepeat , processMsg , resolveCallback , rejectCallback , id )
workflow 를 생성하지않고 특정 submission을 반복적으로 호출하고자 할때 사용
Parameter
nametyperequireddescription
submissionStringYID
condFnfunctionY실행여부를 체크하는 pre function
maxRepeatintY최대실행 회수. conditon으로만 체크가능한 경우에는 무한루프에 대한 제어용으로도 사용가능
processMsgStringN
resolveCallbackfunctionNfunction
rejectCallbackfunctionNfunction
idStringN
Sample
WebSquare.ModelUtil.executeSerial( "submission1", cond_check, 100, processMsg,final_callback, reject_callback, id) ; submission 을 cond_check sucess 이고 100회 미만 까지 반복 call/callback 수행 -> final_callback or reject_callback
executeWorkflow( workflowId )
workflowId or workflowObj 을 받아서 workflow 실행
Parameter
nametyperequireddescription
workflowIdObjectYworkflow 아이디 or workflowObj
Sample
WebSquare.ModelUtil.executeWorkflow ("workflow1") ; workflowCollection/workflow id가 workflow1인 workflow를 실행. 또는 var workflowObj= {"id":"workflow1", "processMsg" : "workflow실행 중입니다.. ", "step" : [{ "type":"submit", "action" : "submission1"}, { "type":"submit","pre": cond, "action" : "submission2"}, { "type":"submitDone", "action" : "submission1", "post":post}, { "type":"submitDone", "action" : "submission2", "post":post} ], "resolveCallback" : final_callback, "rejectCallback": reject_callback }) ; WebSquare.ModelUtil.executeWorkflow (workflowObj) ; workflowObj object로 workflow를 실행.
findInstanceNode( xpath )
xpath에 해당하는 Instance 내부의 노드를 반환합니다. 여러개의 노드가 존재할 때 첫번째 노드를 반환합니다.
Parameter
nametyperequireddescription
xpathStringY반환될 instance Node의 XPath
Return
typedescription
Xml Elementxpath로 찾은 xml element
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> var xmlDoc = WebSquare.ModelUtil.findInstanceNode ("bookstore/book"); xmlDoc은 다음과 같다. <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book>
findInstanceNodes( xpath )
xpath에 해당하는 Instance 내부의 노드들을 배열 형태로 반환합니다.
Parameter
nametyperequireddescription
xpathStringY반환될 instance Node의 XPath
Return
typedescription
Objectxpath로 찾은Document Element(node)로 이루어진 배열
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> var xmlDoc = WebSquare.ModelUtil.findInstanceNodes( "bookstore/book" ); xmlDoc.length는 2이다. xmlDoc[0] 은 다음과 같다. <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> xmlDoc[1] 은 다음과 같다. <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book>
findSerializedNode( xpath )
WebSquare.ModelUtil.findInstanceNode로 찾은 노드를 serialize해서 반환합니다.
Parameter
nametyperequireddescription
xpathStringY반환될 instance Node의 XPath
Return
typedescription
StringSerialize된 Document Element(node)
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> var xmlStr = WebSquare.ModelUtil.findSerializedNode ("bookstore/book"); xmlStr은 다음과 같다. <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book>
getInstanceValue( xpath )
주어진 xpath에 해당하는 Instance 내부의 노드의 nodeValue를 반환합니다.
만약 이 노드가 element 라면 첫번째 자식노드부터 시작하여 그의 형제 노드들을 검색하는 식으로 하여
노드의 nodevalue를 찾습니다.
만약 노드가 attribute 라면 자식노드를 검색할 필요없이 바로 노드의 nodeValue를 반환합니다.
Parameter
nametyperequireddescription
xpathStringY반환될 instance Node의 XPath
Return
typedescription
Stringxpath로 찾은 노드의 value
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> var value1 = WebSquare.ModelUtil.getInstanceValue( "bookstore/book/title[@lang='eng']" ); var value2 = WebSquare.ModelUtil.getInstanceValue( "bookstore/book/title" ); var value3 = WebSquare.ModelUtil.getInstanceValue( "bookstore/book/title/@lang" ); value1, value2는 Harry Potter. value3은 eng.
getRefToReqData( submissionObj )
submission 객체의 ref를 request String 으로 변환하여 return
Parameter
nametyperequireddescription
submissionObjObjectYsubmission 객체
getRunningWorkflow( workflowID )
실행중인 첫번째 Workflow 객체를 반환합니다.
Parameter
nametyperequireddescription
workflowIDStringNworkflow 아이디
Return
typedescription
Object실행 중인 workflow object
Sample
실행이 진행되는 구간(pre, defaultCallback, callback, resolveCallback, rejectCallback등) 에서만 객체를 구할 수 있음 완료된 submission들의 실행결과 객체는 workflowObj.result 로 구할 수있음 var workflowObj = WebSquare.ModelUtil.getRunningWorkflow( );
getRunningWorkflowID( )
실행중인 Workflow ID를 반환합니다.
Return
typedescription
String실행중인 workflow ID
Sample
실행중인 workflow ID 반환 var runID = WebSquare.ModelUtil.getRunningWorkflowID( );
getSubmission( id )
id에 해당하는 submission 을 반환합니다.
Parameter
nametyperequireddescription
idStringYsubmission의 아이디
Return
typedescription
Objectid를 통해서 찾은 submission
Sample
다음과 같이 submission이 존재하는 경우. <xf:submission id="submission1" ref="request" target="response" action="" method="" mediatype="text/xml" encoding="UTF-8" instance="" replace="instance" errorHandler="" customHandler="" mode="asynchronous" processMsg=""> </xf:submission> var sub = WebSquare.ModelUtil.getSubmission( "submission1" ); sub는 submission 객체이며 접근 방법은 다음과 같다. sub.action = "/getBookInfo.jsp"; sub.method = "get"; ...
getWorkflow( id )
id에 해당하는 Workflow 객체를 반환합니다.
Parameter
nametyperequireddescription
idStringYworkflow 아이디
Return
typedescription
Objectid를 통해서 찾은 workflow
Sample
xml에 workflow1 이 정의되어 있는 경우에는 실행 전이라도 객체를 구할 수 있음 동적으로 생성된 경우에는 실행이 진행되는 구간(pre, defaultCallback, callback, resolveCallback, rejectCallback등) 에서만 객체를 구할 수 있음 완료된 submission들의 실행결과 객체는 workflowObj.result 로 구할 수있음 var workflowObj = WebSquare.ModelUtil.getWorkflow( "workflow1" );
isRunningWorkflow( workflowID )
실행중인 Workflow 가 있는지 여부를 반환합니다.
workflowID 가 전달된 경우에는 해당 id 의 workflow 실행여부를 반환합니다.
Parameter
nametyperequireddescription
workflowIDStringNworkflow 아이디
Return
typedescription
boolean실행여부
Sample
실행중인 workflow 가 있는지 여부 반환 var isRun = WebSquare.ModelUtil.isRunningWorkflow( );
rejectWorkflow( reject , workflowID )
실행중인 Workflow 를 Reject 시킵니다. workflowID 가 전달된 경우에는 해당 workflow가 실행중인 경우에만 Reject 시킵니다.
Parameter
nametyperequireddescription
rejectStringN사유 메시지
workflowIDStringN
Return
typedescription
ObjectReject 된 workflow Object
Sample
var workflowObj = WebSquare.ModelUtil.rejectWorkflow( );
removeChildNodes( xpath )
xpath에 해당하는 부모의 childNode들을 제거합니다.
Parameter
nametyperequireddescription
xpathStringYchildNode들을 제거할 부모의 xPath
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> WebSquare.ModelUtil.removeChildNodes("bookstore/book"); bookstore 노드는 다음과 같다. <bookstore> <book idx="1"/> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
removeInstanceNode( xpath )
xpath에 해당하는 node를 부모로부터 제거합니다.
Parameter
nametyperequireddescription
xpathStringY제거할 node의 XPath
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> WebSquare.ModelUtil.removeInstanceNode("bookstore/book"); bookstore 노드는 다음과 같다. <bookstore> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
removeInstanceNodes( xpath )
xpath에 해당하는 여러 개의 node를 부모로 부터 제거합니다.
Parameter
nametyperequireddescription
xpathStringY제거할 node의 xPath
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> WebSquare.ModelUtil.removeInstanceNodes("bookstore/book"); bookstore 노드는 다음과 같다. <bookstore/>
setInstanceNode( doc , xpath , modelID , mode )
Document 혹은 Element를 Instance의 xpath에 해당하는 경로에 위치시킵니다.
mode가 replace인 경우에 기존에 있던 것들을 삭제하고 새로운 노드를 추가하고
append인 경우 기존의 노드들은 놔두고 새로운 노드를 추가합니다.
mode를 명시하지 않을 경우에는 "replace" 모드입니다.
Parameter
nametyperequireddescription
docObjectYDocument 또는 Document Element(node)
xpathStringY노드를 추가할 경로
modelIDStringN노드를 추가할 경로의 Model ID(현재 사용하지 않는 옵션)
modeStringNmode ("replace", "append")
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> <selectedBook> <title lang="eng">Learning XML2</title> <price>39.952</price> <author>Erik T. Ray</author> </selectedBook> var doc = WebSquare.ModelUtil.findInstanceNode( "bookstore/book" ); WebSquare.ModelUtil.setInstanceNode( doc, "selectedBook", null , "replace" ); Model에 selectedBook 노드는 다음과 같다. <selectedBook> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> </selectedBook> var doc = WebSquare.ModelUtil.findInstanceNode( "bookstore/book" ); WebSquare.ModelUtil.setInstanceNode( doc, "selectedBook", null , "append" ); <selectedBook> <title lang="eng">Learning XML2</title> <price>39.952</price> <author>Erik T. Ray</author> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> </selectedBook>
setInstanceValue( xpath , value )
주어진 xpath에 해당하는 Instance 내부 노드를 찾아 nodeValue를 설정합니다.
Parameter
nametyperequireddescription
xpathStringYinstance Node의 XPath
valueStringY설정할 text value
Return
typedescription
Booleannode가 존재하지 않을 경우 false, 반영 성공 할 경우 true
Sample
Model에 바인드된 데이터가 다음과 같다. <bookstore> <book idx="1"> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book idx="2"> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> var value1 = WebSquare.ModelUtil.setInstanceValue( "bookstore/book/title/@lang" , "kor"); var value2 = WebSquare.ModelUtil.setInstanceValue( "bookstore/book/title" , "해리포터"); value1, value2는 true. 반영된 xml Document. <bookstore> <book idx="1"> <title lang="kor">해리포터</title> <price>29.99</price> </book> <book idx="2"> .. 중략 </book> </bookstore>