2014-07-16 5 views
7

Jest częścią mojego fragmentu koduWstawianie zmiennych do SAS za pomocą JAVA (IOM Bridge). Czy powinienem używać kodów pośrednich CORBA i JDBC, czy jest jakaś inna alternatywa?

WorkspaceConnector connector = null; 
WorkspaceFactory workspaceFactory = null; 
String variableListString = null; 
Properties sasServerProperties = new Properties(); 
sasServerProperties.put("host", host); 
sasServerProperties.put("port", port); 
sasServerProperties.put("userName", userName); 
sasServerProperties.put("password", password); 
Properties[] sasServerPropertiesList = { sasServerProperties }; 
workspaceFactory = new WorkspaceFactory(sasServerPropertiesList, null, logWriter); 
connector = workspaceFactory.getWorkspaceConnector(0L); 
IWorkspace sasWorkspace = connector.getWorkspace(); 
ILanguageService sasLanguage = sasWorkspace.LanguageService(); 
//send variable list string 
//continued 

muszę wysłać „variableListString” do serwera SAS przez IOM mostu. Java SAS API nie zapewnia wyraźnych sposobów na to. Używanie CORBA i JDBC to najlepszy sposób na zrobienie tego? Daj mi wskazówkę, jak to zrobić. Czy jest jakaś alternatywna metoda to zrobić?

Odpowiedz

1

To pytanie zostało zadane przez jakiś czas, ale przydatne, gdy ktoś nadal chce zrobić to samo.
Jednym ze sposobów na to jest zbudowanie ciągu znaków sas i przesłanie go na serwer. Używamy tej metody do ustawiania zmiennych na hoście dla połączonej sesji. Można również skorzystać z tej techniki, aby zawierać kod sas użyciu kodu jak %include „Ścieżka do mojego kodu/moi sas code.sas” ;:

... dalej od kodu w pytaniu ...

langService = iWorkspace.LanguageService(); 
    StringBuilder sb = new StringBuilder(); 
    sb.append("%let mysasvar=" + javalocalvar); 
    ... more variables 
    try { 
     langService.Submit(sb.toString()); 
    } catch (GenericError e) { 
     e.printStackTrace(); 
    } 
+0

W tej metodzie używamy kodu sas w kodzie java. Próbowałem użyć interfejsu API, aby to zrobić, zamiast pisać kod SAS. –

+0

Właśnie przejrzałem najnowszy interfejs SAS IntTech Java API i inne niż praca z opcjami i formatami, nie widzę niczego, co mogłoby działać bezpośrednio ze zmiennymi makr (zakładam, że warianty makr, a nie vd pdv były tym, czego szukaliście). Nie jest natywny dla interfejsu API SAS, ale możesz stworzyć klasę, która obejmie podejście oparte na sasie. Biorąc pod uwagę sposób, w jaki komunikuje się ona pod osłonami, to właśnie to mogłoby skutecznie przejść przez przewód, nawet gdyby SAS dostarczyła tę metodę. W przeciwnym razie przepraszam, że nie mogę pomóc bardziej bezpośrednio, ale być może inni uznają to za przydatny sposób na szybkie rozwiązanie typowego problemu. –

+0

Skontaktowałem się ze wsparciem SAS. Powiedzieli, że nie mogą pomóc, ponieważ ich API nie ma nic takiego. Teraz robię to za pomocą kodu SAS w JAVA. –

Powiązane problemy