Sas 在本地执行rsubmit语句

Sas 在本地执行rsubmit语句,sas,Sas,我有许多.sas脚本,它们将在本地运行,并使用rsubmit-endrsubmit块将作业提交到远程服务器。尝试在远程服务器上运行脚本时,《SAS Enterprise Guide》遇到以下语句并抱怨: ERROR: Invalid or unspecified remote session ID. Set OPTIONS REMOTE=session_id. NOTE: Subsequent lines will be ignored until ENDRSUBMIT. 有没有办法告诉SAS

我有许多
.sas
脚本,它们将在本地运行,并使用
rsubmit
-
endrsubmit
块将作业提交到远程服务器。尝试在远程服务器上运行脚本时,《SAS Enterprise Guide》遇到以下语句并抱怨:

ERROR: Invalid or unspecified remote session ID. Set OPTIONS REMOTE=session_id.
NOTE: Subsequent lines will be ignored until ENDRSUBMIT.

有没有办法告诉SAS只需在本地执行代码块?

您需要添加宏逻辑来确定是否需要提交RSUBMIT行

您可以使用自动宏变量: SYSHOSTNAME或SYSENV来确定您在哪个系统上,然后使用它来控制逻辑

%if &syshostname = somevalue %then %do;
          rsubmit .....;
%end;

如果您使用的是SAS 9.4 M5+,现在可以在oepn代码中使用%If/%THEN。您必须进行一些测试和研究,以确定您在每个系统中获得的价值以及确切的“someValue”应该是什么。

您需要添加宏逻辑以确定是否需要提交RSUBMIT行

您可以使用自动宏变量: SYSHOSTNAME或SYSENV来确定您在哪个系统上,然后使用它来控制逻辑

%if &syshostname = somevalue %then %do;
          rsubmit .....;
%end;

如果您使用的是SAS 9.4 M5+,现在可以在oepn代码中使用%If/%THEN。您必须进行一些测试和研究,以确定您在每个系统中获得的价值以及确切的“someValue”应该是什么。

RSUBMIT还可以使用与本地服务器的连接。这通常在实现多处理时完成。你可以在网上很常见地看到它的例子,例如在

如果您想这样做,可以设置特定于站点的连接脚本,在本地PC上连接脚本显示要连接到Unix服务器,在Unix服务器上连接脚本。。。仍然说要连接到那个Unix服务器。然后确保这些连接的名称相同,以便在本地计算机和服务器上使用正确的连接


注意-这可能是也可能不是适合您的解决方案,这取决于您从服务器上运行此解决方案的原因。如果只是将其转换为始终从服务器上运行,只需去掉rsubmit即可。如果您希望有时从一个地方运行,有时从另一个地方运行,那么您是否按照Reeza所说的去做(使用
%If
等来控制是否执行RSUBMIT),或者这个答案取决于代码的其余部分。如果只修改为%If out会更简单,那么就这样做;如果允许rsubmit发生会更简单,那么可以这样做(例如,如果您有大量代码使用rsubmit工作目录进行操作等)。

rsubmit还可以使用到本地服务器的连接。这通常在实现多处理时完成。你可以在网上很常见地看到它的例子,例如在

如果您想这样做,可以设置特定于站点的连接脚本,在本地PC上连接脚本显示要连接到Unix服务器,在Unix服务器上连接脚本。。。仍然说要连接到那个Unix服务器。然后确保这些连接的名称相同,以便在本地计算机和服务器上使用正确的连接

注意-这可能是也可能不是适合您的解决方案,这取决于您从服务器上运行此解决方案的原因。如果只是将其转换为始终从服务器上运行,只需去掉rsubmit即可。如果您希望有时从一个地方运行,有时从另一个地方运行,那么您是否按照Reeza所说的去做(使用
%If
等来控制是否执行RSUBMIT),或者这个答案取决于代码的其余部分。如果只修改为%If out会更简单,那么就这样做;如果允许rsubmit发生会更简单,那么就这样做(例如,如果您有大量代码使用rsubmit工作目录来执行操作,等等)