我一直在尝试在SAP BO CMC中安排报告。该报告最初是用Python编写的,并内置到.exe文件中。此.exe应用程序运行以将报表保存到本地文件夹中的.xlsx文件中。 我想利用SAP BO CMC中的便捷调度功能在电子邮件中发送报告。我在CMC中尝试并创建了一个“本地程序”并将其链接到.exe文件,但您可以很容易地想象我遇到的问题 - 应用程序将文件放在文件夹中照常但CMC不能抓取生成的Excel文件。 有没有办法重新编写Python程序,以便输出不是某个文件夹中的文件,但是CMC可以作为电子邮件附件获取的对象? 我一直在CMC中安排Crystal报表,这种情况很自然地发生。 Crystal输出可以作为电子邮件的附件发送。想知道.exe会发生类似情况,怎么样? 请分享您的想法。非常感谢你!
P.S。不要认为可以在Crystal中重新编写报表,因为需要根据来自不同数据源的输入来操作数据。这就是Python提供帮助的地方。我希望我不需要编写程序来覆盖电子邮件的内容并在Windows的计划任务中安排它。最后一个选项......维护起来太不方便了。我们无法轻松访问服务器。
答案 0 :(得分:1)
这是一种黑客行为,但它可以做到。让程序(exe)将Excel文件的字节写出为标准输出。然后为电子邮件目标配置程序对象,并将文件名设置为特定名称(例如" whatever.xlsx")。
通过电子邮件发送程序对象时,附件将包含程序的标准输出/错误。通常这只是文本,但它也适用于二进制输出。
由于这是一个hack,如果程序生成标准输出的任何其他文本(如错误消息),它将包含在.xlsx文件中,这将使文件无效。我建议管理程序错误,以便记录到文件而不是标准输出/错误。
我用 Java 程序对象对此进行了测试;但是exe应该也能正常工作。