【问题标题】:How to install updates on Progress-4GL programs如何在 Progress-4GL 程序上安装更新
【发布时间】:2021-06-05 15:40:46
【问题描述】:

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

需要采取以下措施:

  • 获取当前数据库的转储 (*.df)
  • 将修改上传到数据库(*.df 文件)
  • 编译 *.w 和 *.p 文件。

是否有一个工具可以完成所有这些工作(以及压缩/解压缩 *.w、*.p 和 *.i 文件),还是我需要自己创建这样的工具?

在后一种情况下,上述操作的命令行命令是什么:

  • 获取当前数据库的转储 (*.df)
  • 将修改上传到数据库(*.df 文件)
  • 编译 *.w 和 *.p 文件。

【问题讨论】:

    标签: installation command-line openedge progress-4gl


    【解决方案1】:

    如果您熟悉 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。

    【讨论】:

    • 我还不熟悉 ANT(目前),但那些 PCT 看起来是一种很好的工作方式(并且是升级到至少 11.7 版的充分理由)。
    • 升级到受支持的版本总是好的!但 PCT 在 11.6 上运行良好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多