将发票链接添加到通知消息中

时间:2016-09-25 23:05:04

标签: html moqui

我有一个屏幕,其中包含我希望通知用户的发票的表单。该屏幕用作bodyScreenLocation的{​​{1}}。到这里,它的工作原理。我想为每张发票添加一个链接,以便用户可以直接打开文档。如何构建路径?这样它就不起作用了:

enter image description here

此字段以包含在屏幕中的表单形式创建。此屏幕用于名为using的模板中 EmailTemplate

新增18.10.2016

我试图使用你的建议。

<service-call name="org.moqui.impl.EmailServices.send#EmailTemplate" async="true">

这是日志:

<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>

java.lang.NullPointerException:null     在org.moqui.impl.context.WebFacadeImpl.makeWebappHost(WebFacadeImpl.groovy:477)〜[moqui-framework-2.0.0.jar:2.0.0]     在org.moqui.impl.context.WebFacadeImpl.makeWebappRootUrl(WebFacadeImpl.groovy:520)〜[moqui-framework-2.0.0.jar:2.0.0]     在org.moqui.impl.context.WebFacadeImpl.getWebappRootUrl(WebFacadeImpl.groovy:467)〜[moqui-framework-2.0.0.jar:2.0.0]     在org.moqui.impl.context.WebFacadeImpl $ getWebappRootUrl.call(未知来源)〜[?:?]     在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)〜[groovy-2.4.7.jar:2.4.7]     在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)〜[groovy-2.4.7.jar:2.4.7]     at PayablesDue_xml_screen_actions.run(PayablesDue_xml_screen_actions:11)〜[script:?]

1 个答案:

答案 0 :(得分:1)

您正在寻找的是WebFacade.getWebappRootUrl()方法。在模板中使用类似这样的调用来获取基本URL:

ec.web.getWebappRootUrl(true, null)

当没有WebFacade时,例如在异步服务中运行时,你必须降低一个级别,并且WebFacadeImpl中有一个静态方法(这不太方便)当你没有经过标准接口时,这里是方法签名:

String getWebappRootUrl(String webappName, String servletContextPath, boolean requireFullUrl, Boolean useEncryption, ExecutionContextImpl eci)

标准的webappName是&#39; webroot&#39;除非你在Moqui Conf XML文件中做一些奇特的事情,否则这可能是一个静态字符串。如果您的Moqui webapp安装在根目录上,则servletContextPath可以为null或空字符串(通常情况下;如果没有请求我们可以访问ServletContext以查看它的挂载位置,则无法自动确定)。