问题描述
下午好,
在我的公司,我们定期更新客户的系统,所有 Progress-4GL 技术。目前我们所有这些都是手动完成的,我想自动化。
需要执行以下操作:
是否有工具可以完成所有这些工作(连同压缩/解压缩 *.w、*.p 和 *.i 文件),还是我需要自己创建这样的工具?
在后一种情况下,上述操作的命令行命令是什么:
提前致谢
解决方法
如果您熟悉 ANT,请查看 ANT 的 PCT 插件:
https://github.com/Riverside-Software/pct
这使得在“新”完整 DF 和当前数据库之间创建 delta.df 文件变得容易,例如:
<PCTDumpIncremental destFile="temp/delta.df" dlcHome="${dlc}"
debugLevel="2" activeIndexes="0" removeEmptyDFFile="true" msgBufferSize="${Mm}" >
<SourceDB dbname="temp/ref-SmartDB" singleUser="true" />
<TargetDB dbname="${smartdb}" dbDir="${smartdbdir}" singleUser="${smartdbsingleuser}"/>
</PCTDumpIncremental>
然后将 delta.df 加载到当前应用程序数据库中:
<PCTLoadSchema srcFile="temp/delta.df" dlcHome="${dlc}" onlineChanges="true" callbackClass="rssw.pct.AbstractLoadCallback" msgBufferSize="${Mm}" commitWhenErrors="false">
<DBConnectionSet refid="smartdbset" />
</PCTLoadSchema>
然后编译应用程序:
<PCTCompile destDir="${installroot}" graphicalMode="true" dlcHome="${dlc}"
md5="true" minSize="false" cpinternal="${cpinternal}" cpColl="${cpcoll}" cpstream="${cpstream}"
compileUnderscore="true" inputchars="32000" baseDir="${installroot}"
token="4000" progPerc="10" assemblies="${assemblies}">
<fileset dir="${installroot}" casesensitive="false">
<include name="Ccs/**/*.cls"/>
<include name="Consultingwerk/**/*.cls"/>
<include name="Consultingwerk/**/*.p"/>
<include name="Consultingwerk/**/*.w"/>
<include name="Setup/**/*.p"/>
<include name="src/**/*.p"/>
</fileset>
<propath>
<pathelement path="${installroot}/." />
<pathelement path="${installroot}/src" />
<pathelement path="${installroot}/Consultingwerk/Studio/ProdictDumpHack/src" />
<pathelement path="${dlc}/gui/netlib/OpenEdge.Net.pl" />
</propath>
<DBConnectionSet refid="smartdbset" />
</PCTCompile>
ANT 和 PCT 从 11.7 开始包含在 OpenEdge 中。由于您使用的是 11.6,因此您必须自带 ANT 和 PCT。