我想在Clarity 13.1中创建一个流程,该流程向属于IT部门中不同OBS单位的所有经理发送一封电子邮件,其中包含未完成时间表+相关时间段的资源列表。 (我没有在这里复制所有代码,对不起,如果它仍然太长)
首先,我编写了一个查询来选择我需要的所有管理器,结果存储在var =“result3”中。
然后我写了这个:
<core:forEach items="${result3.rowsByIndex}" trim="true" var="mng">
<core:set value="${mng[0]}" var="userid"/>
<core:set value="${mng[1]}" var="ManagerLastName"/>
<core:set value="${mng[2]}" var="ManagerFirstName"/>
<core:set value="${mng[3]}" var="ManagerEmail"/>
<core:set value="${mng[4]}" var="idManager"/>
<gel:log> manager ${mng[1]} </gel:log>
接下来,我选择了所有未编译时间表的资源,结果存储在result2中。 这是最后一部分:
<core:forEach items="${result2.rowsByIndex}" trim="true" var="tms">
<core:set value="${tms[0]}" var="id_risorse"/>
<core:set value="${tms[1]}" var="Full_Name"/>
<core:set value="${tms[2]}" var="Email"/>
<core:set value="${tms[3]}" var="Time_Period"/>
<core:set value="${tms[4]}" var="Prid"/>
<core:set value="${tms[5]}" var="MANAGER_ID"/>
<gel:log> Risorsa: ${tms[1]} periodo: "${tms[3]}"</gel:log>
<gel:email from="clarity@mediobanca.it"
subject="MISSING TIMESHEET: ${tms[3]}"
to="${mng[3]}">
( Here is the CONTENT OF EMAIL
Resource: ${tms[1]}, id= "${tms[0]}"
</gel:email>
</core:forEach>
</core:forEach>
</core:forEach>
</gel:script>
在这里,问题在于,通过这种方式,每个经理都会收到大量与每个资源或每个时间段相关的电子邮件,而每个经理必须只收到一封包含资源清单的电子邮件......
我试过把最后两个放在后面
如果有人知道是否有可能参考gel里面的资源列表,我真的很感激:电子邮件以及如何?或者如果我可以在凝胶中写一个循环:电子邮件。
任何答案或想法都受到高度赞赏。
非常感谢,
莫娜
答案 0 :(得分:0)
执行此操作的更简单方法可能是在第一个查询中由管理员进行分组,并创建一个连接资源字段(逗号分隔或LFCR分隔或HTML分隔),而不提交时间表。这将为您提供一个查询,以循环使用每个经理的经理和资源。
就打印出电子邮件中的列表而言,您可以在电子邮件标签内使用forEach来迭代不合规资源列表,但我还没有测试过这种方法。
答案 1 :(得分:0)
您可以在result2查询中使用聚合函数wm_concat或解析函数LISTAGG。
聚苯乙烯。假设是oracle数据库。
答案 2 :(得分:0)
我对此类脚本的偏好是使用单个查询来获取所需的所有数据。通常,如果您正在进行时间表升级,则只需要将电子邮件发送给资源的直线经理或OBS的一部分中的个人。因此,查询返回的列可以是:行管理器(名字,姓氏和电子邮件地址,资源ID,资源全名,OBS路径(以及您需要的任何其他内容)。
您的SQL应该由直线经理进行分组和排序。
拥有前一个直线经理和当前直线经理的属性。对于返回的每一行,current = previous在名为$ resource_list的属性中构建其他行。
当前&lt;&gt;之前,然后将$ resource_list嵌入到您的电子邮件文本中,然后发送它。请注意,您也需要为最终组进行发送。
最佳做法是将您的电子邮件格式化为html,然后使用格式控制丢失的时间表资源的显示方式。
我只会建议升级。我建议向资源发送一份他们尚未事先完成的时间表列表,以便他们有机会解决问题。
答案 3 :(得分:0)
据我所知,所有经理都会收到相同的资源列表,您可以:
<core:forEach items="${result_resources.rows}" trim="true" var="myrow">
<core:set var="var_string_results">${var_string_results} ${myrow.id_risorse} ${myrow.Full_Name},</core:set>
</core:forEach>
将GEL forEach与包含gel:email标签
的Manager数组一起使用EJM。
<core:forEach begin="0" items="${vDestinatarios.rows}" var="slRow">
<core:set value="${slRow.email}" var="managers"/>
<gel:email from="clarity@mediobanca.it" fromName="clarity@mediobanca.it" subject="MISSING TIMESHEET" to="${managers}">
<![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML> <HEAD/>
<BODY>
${var_string_results}
<![CDATA[ </BODY> </HTML> ]]>
</gel:email>
</core:forEach>
我希望它有所帮助,如果上述格式不正确(这是我的第一个答案),我很抱歉