【问题标题】:Process flow gets stuck on table creations流程卡在表创建上
【发布时间】:2018-05-12 06:38:36
【问题描述】:

我正在尝试了解企业指南流程。据我了解,流程应该可以让相关步骤按照需要运行的顺序轻松运行,以使相关操作能够运行并在流程稍后的某个位置保持最新。

鉴于这种理解,在清除临时数据的情况下,我在试图使流程正常工作时遇到了困难。关闭企业指南时,我被警告该项目引用了必须是我创建的表的临时数据。应该没问题,数据在 SAS 服务器上,我编写了代码将该数据导入 SAS。

我希望稍后我再次尝试运行依赖于该数据的分析时可以重新生成数据,但我收到一个错误,表明输入数据不存在。如果我随后运行代码以在每个必要的位置导入数据和/或连接表,则流程似乎按预期工作。

请参阅下面我正在使用的流程:

我确定我一定错过了什么。想象一下,我想重新运行最右边的线性回归。 有没有办法让流程在第一次创建每个单独的表时无需手动导入数据?

【问题讨论】:

  • 所以您(稍后)正在运行线性回归 (2) 并想知道为什么导入数据的代码步骤没有自动运行?
  • 如果您希望以后可以使用临时表,您需要将它们保存到项目库中。我会创建一个项目库,然后他们将临时数据集移到那里。因此,它们被分配给 myLIB,而不是 WORK。这意味着您可能会存储比您想要的更多的数据,但如果您没有保存数据,那么是的,您需要重新运行整个过程以重新创建数据。
  • @Joe 是的,这就是我想知道的。
  • 'update' 通过重新运行那一步来更新,而不是通过重新运行整个 PF 直到该点(不幸的是)。
  • @JoeyHarwood 它运行图中“向前”移动的过程,但不检查前面的步骤是否已运行。一个选项会很有用 - 老实说,我认为它有它。如果它还没有的话,值得把这个建议放在 EG 投票名单上。

标签: sas enterprise-guide


【解决方案1】:

您的问题的一般答案可能是您不能真正直接做您想做的事,但您可以间接做。

一个过程流(每个项目可以有多个,不要忘记)是一组程序/任务/等。你打算作为一个团体运行。通常,您将一次运行整个流程,而不仅仅是单个部分。如果你想暂停,看看事情,然后继续,那么你有几个选择。

一个是有一个流程流到那个点,然后是从那个点开始的第二个流程流。您甚至可以将“导入数据”步骤完全从流程中移除,创建“导入数据”流程,始终先运行该流程,然后根据需要单独运行其他流程。事实上,如果您使用 AUTOEXEC 流程,则可以在您打开项目时运行导入数据步骤,并准备好导入数据并等待您。

二是在流程流上使用UI和control+单击或拖动框选择来选择要运行的一组程序;选择前五个,比如说,然后运行它们,然后选择“从程序运行分支...”选项从那时开始运行。您还可以创建单独的“分支”并一次只运行一个分支,使每个分支都依赖于输入流。

第三种选择是为不同的分析任务设置不同的起点,并将导入数据位该起点之后。它可以是共同的起点,并使用宏变量和条件执行走向不同的方向。例如,您可以在第一个程序中设置一个宏变量,说明您正在运行哪个分析程序,然后最后一个导入步骤的条件(按顺序排列,而不是像您拥有的那样并行)将您发送到宏变量所说的任何分析任务。您还可以使用宏变量来指示导入是否已经在当前会话中运行过一次,然后告诉您不要通过条件步骤重新运行它。

不幸的是,虽然没有直接的方法来运行某些东西并说“运行它及其所有依赖项”。

【讨论】:

  • +1 单击并拖动,然后运行选择正是我所需要的。另外,正如你所说,我只需按下顶部的运行按钮即可一次运行所有内容,只运行一些额外的东西。我太专注于尝试运行我需要的一件事,所以我猜顶部的运行按钮在我的盲点!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多