1 <service verb="get" noun="TelecomNumber"> 2 <in-parameters><parameter name="contactMechId" required="true"/></in-parameters> 3 <out-parameters> 4 <auto-parameters entity-name="mantle.party.contact.TelecomNumber"/> 5 </out-parameters> 6 <actions> 7 <entity-find-one entity-name="mantle.party.contact.ContactMech" value-field="contactMech"> 8 <field-map field-name="contactMechId" from="contactMechId"/> 9 <field-map field-name="contactMechTypeEnumId" value="CmtTelecomNumber"/> 10 </entity-find-one> 11 <if condition="contactMech"> 12 <entity-find-one entity-name="mantle.party.contact.TelecomNumber" value-field="telecomNumber"> 13 <field-map field-name="contactMechId" from="contactMechId"/> 14 </entity-find-one> 15 </if> 16 <script> if (telecomNumber) ec.context.putAll(telecomNumber) else contactMechId = null </script> 17 </actions> 18 </service>
在查询的过程了为了使返回的数据格式外层不包含Map的一层,我们可以使用ec.context.putAll(telecomNumber)但是这样的话如果输入的参数没有匹配的数据就会出错,当我们做了判断之后报错会消失,但是返回结果并不是我们想要的结果,它会将你自己输入的参数比如本例中的contactMechId返回为了解决此情况我们可以手动将其设置为null,那么这个问题就解决了。