2015-04-17 2 views
6

Есть ли какая-либо макрокоманда, которая позволяет вызывать одну программу из другого (псевдокод %run_program())?Как вызвать одну макропрограмму из другой в SAS Enterprise Guide?

Программа "Настройки":

%let myvar="HELLO WORLD!"; 

Программа "Программа":

%run_program(Settings); *Pseudo-code; 
%put &myvar; *Should print *Should print "HELLO WORLD!"; 

Overview

ответ

4

Это не точный ответ на ваш вопрос, но если вы хотите быть уверены, что Settings работает до Program, когда Run Process Flow вы можете связать их вместе.

  1. правой кнопкой мыши Settings,
  2. выбрать Link Settings to...,
  3. и забрать Program из диалогового окна.
  4. Run Process FLow И см. Hello World печатается в журнале.
+1

Это, вероятно, самое «решение для руководства предприятия», если вы можете терпеть тонкости технологических потоков. Вы также можете просто запустить поток процесса _without_, связав их, и пока они находятся в правильном порядке на странице потока (НЕ дерево проекта, этот порядок не имеет значения - правильная сторона - это то, что имеет значение), они будут работать в правильном порядке. – Joe

2

Я думаю, что вы ищете функцию %include.

Вам нужно будет сохранить «Настройки» в качестве автономной программы на вашем сервере, например «/myserver/somefolder/settings.sas».

Тогда вы могли убедиться, что он запускается с помощью:

...some code 
%include ('/myserver/somefolder/settings.sas'); 
... more code 

Программа будет работать точно так, как если бы вы копировать-вставить содержимое «settings.sas» в текущей программе.

+1

Это не решение Enterprise Guide Project, хотя оно будет работать, если вы используете EG, как если бы это была локальная база SAS. – Joe

2

В дополнение к процессу Flow вы также можете создать упорядоченный список. Это позволяет запускать программы в одном потоке процесса в нескольких разных заказах (или запускать подмножество потока процессов).

Создайте это в New -> Ordered List, затем добавьте в него программы, переместите их вверх/вниз в нужном порядке. Затем вы увидите упорядоченный список слева в дереве проекта и можете щелкнуть правой кнопкой мыши, чтобы запустить его (или выбрать F8).

Нет макрокоманды для запуска программы в руководстве предприятия; вы можете использовать автоматизацию через .NET, если хотите сделать что-то подобное. Chris Hemedinger на The SAS Dummy имеет хорошее article on EG automation.

Смежные вопросы