2016-09-07 169 views
2

可能是這個問題已經被問到了多少次,但我無法弄清楚他們通過實際解決方案。我在KIEWorkbench有一個決策表,它接受一個事實的輸入並將其設置爲另一個事實。我試圖通過調用端點來調用規則:http://localhost:8085/kie-server-6.4.0.Final-ee7/services/rest/server/containers/instances/pocResultKie Workbench執行規則

在標題中,我已將Content-Type設置爲application/xml。

<batch-execution lookup="ksession"> 
    <insert out-identifier="Subject"> 
     <demo.pocFindResult.Subject> 
     <bCode> ABC</bCode> 
     <bGCode>XY</bGCode> 
     <pCode>L0001</pcode> 
     <subjectType>CA</subjectType> 
     </demo.pocFindResult.Subject> 
    </insert> 
    <fire-all-rules /> 
    <get-objects out-identifier="Result"> 
     <demo.pocFindResult.result/> 
    </get-objects> 

我的決定表如下:

package demo.pocFindResult; 

    //from row number: 1 
    rule "Row 1 findrules" 
     ruleflow-group "fire-rules" 
     dialect "java" 
     lock-on-active true 
     no-loop true 
     when 
      sub : Subject(bCode == "ABC" , bGCode == "XY" , subjectType == "CA" , pCode == "L0001") 
     then 
      Result rs = new Result(); 
      rs.setResultStartDate("*TODAY"); 
      rs.setResultEndDate("*YEAREND"); 
      rs.setResultContentStartDate("*TODAY"); 
      rs.setResultContentEndDate("*YEAREND"); 
      insert(rs); 
    end 

我怎樣才能得到的結果對象作爲迴應?這是我的迴應:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <response type="SUCCESS" msg="Container pocResult successfully called."> 
     <execution-results> 
      <results> 
       <item key="Subject"> 
        <value xsi:type="jaxbListWrapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
         <type>LIST</type> 
        </value> 
       </item> 
      </results> 
      <facts> 
       <item key="Subject"/> 
      </facts> 
     </execution-results> 
    </response> 

我想結果對象的日期設置。

回答

0

你得到的迴應是什麼?

我會首先嚐試在返回對象之後放置fire-all-rules標記。否則,我會嘗試:

<batch-execution lookup="ksession"> 
<insert out-identifier="Subject"> 
    <demo.pocFindResult.Subject> 
    <bCode> ABC</bCode> 
    <bGCode>XY</bGCode> 
    <pCode>L0001</pcode> 
    <subjectType>CA</subjectType> 
    </demo.pocFindResult.Subject> 
</insert> 
<insert out-identifier="Result" return-object="true" entry-point="DEFAULT"> 
    <demo.pocFindResult.result/> 
</insert> 
<fire-all-rules/> 
</batch-execution> 
+0

謝謝。我已經將回復更新爲我的問題的一部分。我嘗試了你的建議,但這並沒有讓我獲得理想的結果。 –

+0

如果您希望在發送其他對象(demo.pocFindResult.Subject)的bCode和rest屬性時,xml中的日期將它們發送到具有空值的請求中。但我認爲,既然你在響應中有對象,你可以得到日期的值。 –

-1

我正在使用JBPM 7.0.0-SNAPSHOT並得到了和你一樣的結果。當我在6.2.0.Final中使用相同的規則時,我得到了結果。
編輯:

的關鍵問題是頭: 授權:基本YWRtaW46YWRtaW4 = 的ContentType:應用/ XML, 然後,我添加另一頭:

「X-KIE-的ContentType:XSTREAM 「

<batch-execution lookup="defaultKieSession"> 
<insert return-object="true"> 
    <com.bp.PageContext> 
     <ID>AID</ID> 
    </com.bp.PageContext> 
</insert> 
<insert out-identifier="Group" return-object="true"> 
    <com.bp.GroupData> 
    </com.bp.GroupData> 
</insert> 
<insert out-identifier="ERR" return-object="true"> 
    <com.bp.ErrorMessage/> 
</insert> 
<fire-all-rules/> 
<get-objects/> 
</batch-execution> 

我已經得到了結果返回:

<org.kie.server.api.model.ServiceResponse> 
<type>SUCCESS</type> 
<msg>Container bpcontainr successfully called.</msg> 
<result class="execution-results"> 
    <result identifier="Group"> 
     <com.bp,GroupData> 
      <Code>TEST,QA</Code> 
     </com.bp.GroupData> 
    </result> 
    <result identifier="ERR"> 
     <com.bp.ErrorMessage/> 
    </result> 
    <fact-handle identifier="Group" external-form="0:8:567620710:567620710:8:DEFAULT:NON_TRAIT:com.bp.GroupData"/> 
    <fact-handle identifier="ERR" external-form="0:9:1581854082:1581854082:9:DEFAULT:NON_TRAIT:com.bp.ErrorMessage"/> 
</result> 
</org.kie.server.api.model.ServiceResponse> 
+0

這不提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/14289646) –

+0

我想現在我已經給出了正確的答案。 –

+0

真的嗎?我不知道。它仍然看起來像一個問題,你最好編輯它,使其更好的答案。 – Ajean