sas - 更改存储的宏 SAS

标签 sas sas-macro

在 SAS 中,使用 SASMSTORE 选项我可以指定 SASMACR 目录存在的位置。该目录中将驻留一些宏。 在某些时候,我可能需要更改宏,而此时可能会发生在该宏和目录将被其他用户使用的情况下。但随后它将被锁定并且无法修改。 如何避免这种情况发生?

最佳答案

如果您使用 SAS 宏目录作为在同事之间共享的公共(public)目录,则存在一些选项。

首先,使用 SVN 或类似的源代码控制选项,以便您和您的同事每个人都有宏目录的本地副本。这是我的首选。我会这样做,而且可能使用存储的编译宏 - 我个人只是将其设置为自动调用宏 - 因为这可以轻松解决冲突(因为您有单独的文件每个宏)。使用 SCM,您将无法解决冲突,因此您必须确保每个人都表现得很好,在进行任何更改之前始终下载最新的副本,并讨论任何更改,这样您就不会做出两个相互竞争的更改大约在同一时间。如果 SCM 对于您的特定用例很重要,您可以对创建 SCM 的宏进行版本控制,并在每次刷新源的本地副本时自行构建 SCM。

其次,您可以而且应该将开发与生产分开。即使您有位于共享网络文件夹上的共享库,您也应该有一个开发副本,除非为其开发新宏(或更新当前使用的宏),否则任何人都不会明确锁定该副本。然后在那里进行更改,并在经过测试和验证后按一致的时间表将其推出(最好是在测试环境中,这样您就拥有了经典的三个环境:开发、测试和生产环境)。像这样的事情:

  • 开发中的更改会在周三推送到测试。任何在周三下午 3 点之前准备好需要的东西的人都可以将其放入一个文件夹(即宏源代码)中,然后它会自动编译到测试 SCM 中。
  • 测试将于周四和周五进行验证。周五下午 3 点之前在 Test 中验证的任何内容都会被推送到 Dev 源代码文件夹,注意测试中其他新代码中的任何潜在冲突(如果当前正在测试但未验证的内容可能与其冲突,则不会将任何内容推送到 dev) )。
  • 制作将于周五下午 3 点开始。到那时每个人都必须退出 SCM。

当然,如果您有一些需要在周末运行的东西,我建议不要使用星期五进行生产,因为这可能会导致您不得不在周末修复某些东西。

关于sas - 更改存储的宏 SAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25846430/

相关文章:

python - python 中 SAS 格式的替代品有哪些?

error-handling - SAS : How to Prevent ABORT on Error

sql - 如何在SAS Proc SQL中编写条件where语句?

sas - 如果宏变量为空则跳过代码块

random - 如何在SAS宏中包含do循环?

sas - 使用 SAS 在表中创建所有可能的组合

excel - LIBNAME 语句 sas 中的错误

sas - 如何确定SAS宏存储在哪个文件夹中

sas - 在 SAS 数据集成中,创建用户编写的转换以在某些条件成立时跳过进一步的作业执行而不会给出错误

text - 在导出SAS数据的数据步骤中表达 "PUT all variables"