SAS9应用--SAS /INTRNET移植到SAS/IT需注意的问题

类别:编程语言 点击:0 评论:0 推荐:

1、增加一个scl入口程序用于调用以前的主程序,如runscl.scl
2、清理所有以前系统中产生的html中对 web files (包括image javascript css等等 )的引用文件名处(scl js等)
   检查与实际文件名大小写是否一致。
3、清理所有引用appsrv_XXX函数的引用处,改为根据宏_pv_base的值,若空则仍appsrv,否则为stpsrv_XXX
4、清理依赖ods html 输出格式之处,调整为8,9版均适应的方式。
5、清理url产生方式处(scl,js等),修改绝对方式引用原主程序等的地方。

两种url的区别对比如下:
intrnet:   http://host/pvroot/cgi-bin/broker.exe?_service=service_for_app?_program=crlibp.crmain.main.scl&...
i.t.       http://host:8080/SASStoredProcess/do?_program=stored_entry_prg_for_app&...

intrnet时:系统宏变量_url中自动返回“/pvroot/cgi-bin/broker.exe”
                     _service中为“service_for_app”
                     _program中为“×××.main.scl”
i.t.时:系统宏变量_url中自动返回“/SASStoredProcess/do”
                     _service无
                     _program中为“stored_entry_prg_for_app”
因此无论哪种方式都可以只根据这些系统宏变量来动态形成url。

6、因_webout输出的底层机理不同,i.t.server中不支持 lrecl选项用于_webout 相关的file语句中,
   所以要改成兼容的方式,并且注意i.t.server中若超过1024字节则自动换行输出。

附上runscl.scl的样例程序:

init:                                                                                                                                  
  if symget('sclentry')='' then return;                                                                                                
  if not cexist(symget('sclentry')) then return;                                                                                       
  env=makelist();                                                                                                                      
  i=0;                                                                                                                                 
  do while(i>=0);                                                                                                                      
     i+1;                                                                                                                              
     mn=scan(symget('_APSLIST'),i,',');                                                                                                
     if mn^='' then rc=insertc(env,symget(mn),-1,mn);else i=-1;                                                                        
  end;                                                                                                                                 
  if getnitemc(env, "_service",1,1,"0") = "0" then                                                                                     
      rc = insertc(env, "", -1, "_service");                                                                                           
  call display(symget('sclentry'),env);                                                                                                
  env=dellist(env);                                                                                                                    
  rc = rc;                                                                                                                             
return;                                                                                                                                


  

本文地址:http://com.8s8s.com/it/it25850.htm