首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UC4 Appworx V8 -在附件中发送假脱机文件

UC4 Appworx V8 -在附件中发送假脱机文件
EN

Stack Overflow用户
提问于 2015-02-11 21:54:25
回答 2查看 878关注 0票数 0

我得到了一个,它调用一个SQL/PLUS来检查数据并将其放入.CSV文件中。

这个KShell在Unix上运行良好,它创建文件并返回0。

从UC4 AppWorx启动作业,我希望他在完成任务时在Job发送的通知中附加UNIX中的假脱机文件。

我想这样做:

1.I启动工作

2.它检查数据,如果建立了数据,则在UNIX中的/tmp目录中创建一个具有.CSV扩展名的文件。

3.工作结束后,他用Unix给我发了一封带有.CSV的电子邮件。

有办法吗?我怎么做这个?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-11 22:10:40

您需要在Appworx中创建一个链( docs应该能够带您通过它)。这个连锁店将有一个或更多的工作岗位。

首先,您不需要一个k脚本来调用SQL/PLUS。您可以直接调用SQL/PLUS。将脚本编写为.sql文件(它可以包括sqlplus指令、sql和PL/SQL )。将作业设置为“程序类型”AWSQLP。将其指向您提供给Appworx的.sql脚本。

sqlplus脚本可以使用逻辑来确定是否应该创建一个文件。如果应该的话,它可以直接写出文件(尽管从它获得适当的.csv文件可能会很痛苦)。

然后,将通知附加到作业,通知对象应设置为执行电子邮件附件。您必须使用“模式”类型,并将完整的文件放入csv。如果希望每次调用都有一个新的文件名,则可以使用替换变量。

根据您的版本,这些选项中的一些可以移动一些(我们去年刚刚升级,UC4不再拥有它)。单击“帮助”菜单并对文档条目执行.这不是世界上最好的,但远远不是最坏的。

票数 0
EN

Stack Overflow用户

发布于 2015-02-12 14:41:57

首先,谢谢你的回答。

我通常创建一个作业,比如SEM_CHECK_THINGS,在UC4上定义了一个提示符,它在数据库中运行一个查询,以检查表test_table (示例)是否有数据,为此,我使用了来自test_table的选择解码(count(*),0,'N','Y')。

此作业还在unix中执行一个简单的KShell:

KShell内容:

代码语言:javascript
复制
echo "Job Name: $1"
echo "Job Control Flag: $2"

jobName=$1
jobFlag=$2

echo "Job ${jobName} started ..." >> $logFile
date >> $logFile

if [[ ${jobFlag} == "Y" ]]; then
    echo "Job ${jobName} executed successfully with data found." >> $logFile
    echo "Job ${jobName} executed successfully with data found."
    exit 1
else
    echo "Job ${jobName} finished with no data found." >> $logFile
    echo "Job ${jobName} finished with no data found."
    exit 0
fi  

我通常通过使用Exit 1强制“中止”,如果发现数据请求另一个作业,该作业将执行一个.SQL,该作业将从test_table中断数据。

代码语言:javascript
复制
whenever sqlerror exit sql.sqlcode
whenever sqlerror exit 1
prompt this is a test
set echo off
set trimspool on
set trimout off
set linesize 1500
set feedback on
set newpage none
SET HEADING OFF
set und off
set pagesize 10000
alter session set nls_date_format = 'dd-MON-yyyy HH24:MI:SS';
spool &1
SELECT 'PREV_RESULTSET;LAST_RESULTSET;NR_COUNT' FROM DUAL
UNION ALL
SELECT PREV_RESULTSET||';'||LAST_RESULTSET||';'||COUNT(1) NR_COUNT
            FROM SEM_REPORT_PEDIDOS
     GROUP BY PREV_RESULTSET, LAST_RESULTSET;
spool off
exit 1

通过使用SPo&1和在该作业通知中的“其他输出”选项中的“硬编码”文件testspool.csv,我成功地从该表接收了一封包含我需要/想要的内容的电子邮件。

但是我真的希望它能在一个任务中完成这个任务,做一个验证,如果数据被找到,然后将.CSV文件附加到由该作业发送的电子邮件通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28465275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档