Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在IBMi(AS400)DB2中导入/导出CSV_Php_Ibm Midrange_Zend Server_Db2 400_Jdedwards - Fatal编程技术网

Php 在IBMi(AS400)DB2中导入/导出CSV

Php 在IBMi(AS400)DB2中导入/导出CSV,php,ibm-midrange,zend-server,db2-400,jdedwards,Php,Ibm Midrange,Zend Server,Db2 400,Jdedwards,我正在准备一个即将到来的集成项目,在这个项目中,我需要将一些数据导入/导出到我们的ERP中,或者从ERP中导入/导出到文件系统中。我们在IBM iSeries/AS400 V6R1机器上运行JD Edwards World 9.2 我们正在与之集成的软件要求我们使用CSV文件进行集成,这些文件按计划导出/导入,并可通过SFTP访问 我已经安装了zend server(apache),并且很高兴使用apache、PHP和SQL,但对CL和RPG编程几乎一无所知(但愿意学习)。我们也没有WebQue

我正在准备一个即将到来的集成项目,在这个项目中,我需要将一些数据导入/导出到我们的ERP中,或者从ERP中导入/导出到文件系统中。我们在IBM iSeries/AS400 V6R1机器上运行JD Edwards World 9.2

我们正在与之集成的软件要求我们使用CSV文件进行集成,这些文件按计划导出/导入,并可通过SFTP访问

我已经安装了zend server(apache),并且很高兴使用apache、PHP和SQL,但对CL和RPG编程几乎一无所知(但愿意学习)。我们也没有WebQuery。导出的文件需要联接和过滤表之间的数据,因此需要SQL或类似的语句,所以我希望不是直接的CPYTOIMPF

作为一个非常粗略的提纲,我想我可以编写一个快速的php文件,运行sql查询将结果解析为IFS中的csv,反之亦然,由cron'd wget(或ibm等效工具)加载

在我开始之前,我想看看是否有人能推荐一种更好的方法


你会推荐什么策略和/或链接?cron和wget的等价物是什么?

System I Navigator具有“运行SQL脚本”工具。此工具有一个保存结果的选项,其中一个选项是将结果保存到csv文件。

cron等效于作业调度器。它有两种来自IBM的版本,每个系统都包含一个基本版本“使用作业调度条目(WRKJOBSCDE)”和一个高级作业调度程序“使用作业调度程序(WRKJOBJS)”来处理作业

您的系统上还可能有一个或多个第三方调度程序

操作系统中没有内置wget等价物。有各种第三方实用程序,甚至还有一些免费和/或开源实用程序。您还可以在PASE中安装和使用AIX版本的wget。

现在就进口/出口而言。当然,IBM提供了CPYTOIMPF和CPYFRMIMPF命令。但是为了提高错误处理的性能和灵活性,许多人更喜欢使用RPG来实现自己的错误处理。PHP将是您的另一种选择

还有几点

虽然CPYTOIMPF确实不支持查询。它确实支持从SQL视图进行处理。因此,只要您能够构建一个提供您提到的“连接和过滤”的视图,那么CPYTOIMPF就可以工作


最后,IBM确实包含一个“RunSQL语句”(RUNSQLSTM)命令,该命令将执行源文件成员中包含的SQL语句;包括
插入到某个文件中(选择…
),这样您就可以加载一个物理表,然后在该表上使用CPYTOIMPF。另外,在该源成员中,您可以通过在CL命令前面加上
CL:

嗨,斯科特,谢谢您的回复!有什么办法可以安排吗?或者更好地将整个功能包含在iseries机器中?因此有一个外部合作伙伴将定期将数据放在服务器上,计划是让IBM i定期轮询该服务器?然后IBM i将把数据(EDI PO 850?)转换并导入JDE,大概运行一些过程并将数据集(PO 856?)返回给合作伙伴?不,计划是在IBM i上的SFTP上打开一个IFS文件夹。IBMi将定期将一个数据集输出到此文件夹并导入另一个数据集。合作伙伴将定期上传导入和下载导出数据集。在这两种情况下,您对
的定义是什么?特别是,它是一个既定的预定时间表还是“根据需要”?我第一次想到它的方式是在预定的时间表上,但我对此有所保留如果您有任何建议,“按需”将是一种更有效的方法和更好的设计。请确保FTP已锁定。很多时候你都可以用cd。。bam你有根访问权限。