私は、ユーザーに通知したい請求書を含むフォームの画面を持っています。画面はEmailTemplate
の場合はbodyScreenLocation
となります。ここまでは動作します。私は各インボイスのリンクを追加して、ユーザーがメッセージを使用して文書を開くことができるようにしたかったのです。どのようにパスを構築する?それは動作しません。この方法:請求書へのリンクを通知メッセージに追加する
このフィールドは、画面に含まれる形で作成されます。この画面では、私はあなたのアドバイスを使用しようとしました <service-call name="org.moqui.impl.EmailServices.send#EmailTemplate" async="true">
を追加しました2016年10月18日
を使用して呼び出されたテンプレートで使用されています。
<actions>
<entity-find entity-name="mantle.account.invoice.Invoice" list="invoiceList"/>
<script>
import org.moqui.impl.context.WebFacadeImpl
def httpUrl = WebFacadeImpl.getWebappRootUrl('webroot',null,false,false,ec)
</script>
</actions>
これはログです:
21:47:18.996 WARN oquiWorker-2 o.moqui.i.c.TransactionFacadeImpl Transaction set rollback only. The rollback was originally caused by: Error rendering screen [component://HS-data/screen/Notification/PayablesDue.xml]
のjava.lang.NullPointerException:ヌルorg.moqui.impl.context.WebFacadeImpl.makeWebappHostで (WebFacadeImpl.groovy:477)〜[moqui-フレームワーク2.0.0.jar:2.0.0] at org.moqui.impl.context.WebFacadeImpl.makeWebappRootUrl(WebFacadeImpl.groovy:520)〜[moqui-framework-2.0.0.jar:2.0.0] at org.moqui.impl.context.WebFacadeImpl.getWebappRootUrl(WebFacadeImpl.groovy:467)〜[moqui-framework-2.0.0.jar:2.0.0] at org.moqui.impl.context.WebFacade Impl $ getWebappRootUrl.call(不明なソース)〜[?:?] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)〜[groovy-2.4.7.jar:2.4.7 ] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)〜[groovy-2.4.7.jar:2.4.7] PayablesDue_xml_screen_actions.run(PayablesDue_xml_screen_actions:11)〜[スクリプト:?]
元のメッセージにコメントを追加しました。 – mrovnanik
そこにNPEがあり、その原因があるので、いくつかのコードを変更しました(コミット#3cb17b5)ので、nullのwebFacadeと要求をうまく処理できます。要求のない正しいURLに対して仮想ホスティングは使用できないため、Moqui Conf XMLのwebapp要素のhttp-host、https-hostなどを設定する必要があります。 –