标签: openedge

ABL Progress OpenEdge:使用分隔符更新 csv 文件中的记录

我正在致力于能够刷新数据库环境的第一步。

首先,我将环境 1 中的表导出到名为 Test1 的 csv 文件。

OUTPUT TO VALUE("X:\Test\Test1.csv").

FOR EACH Test1 NO-LOCK:
    EXPORT DELIMITER ',' Test1.      
END.

OUTPUT CLOSE

Run Code Online (Sandbox Code Playgroud)

然后我将此文件导入到环境 2,其中不知道 test1 中的所有记录是否都存在于环境 2 中。也不知道顺序是否相同(这是以下功能受限的地方)



INPUT FROM "X:\Test\Test1.csv".

FOR EACH Test12:
    IMPORT DELIMITER ',' Test1.
END.

Run Code Online (Sandbox Code Playgroud)

因此,我需要能够查看环境 2 中的现有记录是否存在于从环境 1 导出的文件 Test1 中,并通过调整环境 2 中的这些记录来应用更改/更新。

不幸的是,我无法更具体地提供姓名和日期,因为这是保密的

我尝试使用显示的脚本通过删除仍然运行良好的记录来编辑 notepadd++ 中的导出文件 Test1。然而,当我还通过删除记录删除了留下的空白规则时,所有内容都向上移动了一行,它提到entryID(第一列)已经存在。这意味着它存在于文件的另一行中(这是我删除记录之前的下面的行。)。

development-environment production-environment progress-4gl openedge

0
推荐指数
1
解决办法
136
查看次数

获取运行时调用的 Progress 过程 .p 文件位置

假设我的系统中有一个简单的过程文件:

C:\git\project\helloworld.p

在这个过程文件中,代码需要知道它在运行时在我的系统上的位置。所以在我的电脑中,在这种情况下它将是:

C:\git\project\helloworld.p

在我朋友的电脑上可能是:

D:\codingprojects\project\helloworld.p

有什么办法可以在运行时解析过程文件位置吗?

procedure file progress-4gl openedge

0
推荐指数
1
解决办法
72
查看次数

OpenEdge ABL JSON 到临时表:READ-JSON

我如何将其(如下)读取到临时表中:

{
  "args": {
  },
  "data": "{\"name\":\"morpheus11\",\"job\":\"leader1221\"}",
  "files": {
  },
  "form": {
  },
  "headers": {
    "Accept": "application\/json",
    "Content-Length": "40",
    "Content-Type": "application\/json",
    "Host": "httpbin.org",
    "User-Agent": "OpenEdge-HttpClient\/0.4.0 (UNIX\/64) OpenEdge\/99.2.99.0.9999 Lib-ABLSockets\/0.5.0",
    "X-Amzn-Trace-Id": "Root=1-9999998e-0e281713363302e331999999"
  },
  "json": {
    "job": "leader1221",
    "name": "morpheus11"
  },
  "origin": "888.53.150.88",
  "url": "https:\/\/httpbin.org\/post"
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所写的。现在导出流 dOut1 不产生任何东西。我的猜测是,我没有指定所有的表...我需要定义所有 json 节点,例如:Args、Data、Files、Headers、Origin 和 URL?感谢您的帮助

  def temp-table tt serialize-name 'json'
   field job  as char 
   field name as char.
  def dataset args for tt.

  def var dURL         as char          no-undo init "https://httpbin.org/post".
  def var dRequest     as …
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

0
推荐指数
1
解决办法
133
查看次数

为每个文件拥有唯一文件名的最佳方法是什么?

我已经编写了一个程序,用于将某些文本文件导出到特定目录,我更喜欢使用MTIME来使每个导出文件具有唯一名称,这是最好的方法,但是问题出在我们的服务器上,另一个过程是使用MTIME导出具有不同数据的相同文件名因此将有机会巧合和改写。您能告诉我拥有唯一文件名的最佳方法吗?让我分享一些样本。

DEFINE INPUT PARAMETER ipData1 AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipData2 AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipData3 AS CHARACTER NO-UNDO.

DEFINE VARIABLE cExportData AS CHARACTER NO-UNDO FORMAT 'X(250)'.
DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
DEFINE VARIABLE cExt  AS CHARACTER NO-UNDO.
DEFINE VARIABLE cSFTL AS CHARACTER NO-UNDO FORMAT 'X(150)'.
DEFINE VARIABLE cMessageDateTime AS CHARACTER NO-UNDO.


ASSIGN
  cPath  = "R:\Downloads\progress\" 
  cExt   = ".Txt"
  cMessageDateTime = "123456789".

OUTPUT TO VALUE (cPath + cMessageDateTime + STRING(MTIME) + cExt ).   

put unformatted ipData1 …
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

-1
推荐指数
1
解决办法
77
查看次数

使用Progress 4gl代码对FTP文件进行FTP的最简单方法是什么?

这是在Linux上。请没有Windows代码。进步崔(11.6)。

我有一个在linux上创建csv文件的过程。

一个单独的进程(程序)将提取这些CSV文件并将它们通过ftp传送到给定的站点。

Progress 4GL(Openedge)中的ftp命令是什么?

progress-4gl openedge

-1
推荐指数
1
解决办法
121
查看次数

想要搜索任意数据字段中包含“kan”的所有客户

我想搜索客户表的任何字段中包含“Kan”的所有客户。我应该怎么办?

progress-4gl openedge

-1
推荐指数
1
解决办法
49
查看次数

正在进行数据类型4gl

整数和十进制数据类型只接受10位数后,获取错误消息值太大,不适合整数或十进制.正在进行的整数和十进制数据类型的最大限制4gl?是否可以在进行小数位后4位打印100位数?

progress-4gl openedge

-2
推荐指数
1
解决办法
1198
查看次数