如何在 Progress-4GL 程序上安装更新

How to install updates on Progress-4GL programs

下午好,
在我的公司,我们定期对客户的系统进行更新,所有这些都是 Progress-4GL 技术。目前我们正在手动完成所有这些工作,我想将其自动化。

需要执行以下操作:

是否有一个工具可以完成所有这些工作(连同 zipping/unzipping *.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。