sap重新編譯
① sap2000能不能進行二次開發
給大家介紹了從外部程序調用SAP2000進行自動建模、分析、輸出的例子。本文介紹另外一種應用方法,可以在SAP2000的「Tools」菜單下增加一個菜單項,點擊菜單項後可執行特定的功能,即所謂的「Plug
in」。
每個插件實質上是一個dll。在C#中,用「類庫」項目來生成此dll,公開一個cPlugin類,並在類中公開main方法,該方法的原型必須是:
public void Main(ref Sap2000.cSapModel SapModel, ref Sap2000.cSapPlugin
ISapPlugin);
下面我們通過一個例子來說明如何開發插件。在這個例子中,我們實現一個顯示所選的對象的數目的簡單功能,即讓用戶首先在SAP2000中選擇對象,然後點擊插件所對應的菜單項,插件會報告用戶已選擇的對象的數量。
開發環境:
SAP2000 V12.0.2 正式版(學習版不具備API開發的功能)
Microsoft Visual Studio 2008, C#
開發步驟:
1. 建立項目。啟動VS2008,建立一個Windows C# 類庫項目,如下圖:
2. 建立代碼框架
VS自動生成了代碼文件class1.cs,並創建了如下代碼:
namespace ObjectCount
{
public class Class1
{
}
}
將類名「Class1」改為「cPlugin」,並添加main函數,修改後的全部代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ObjectCount
{
public class cPlugin
{
public void Main(ref Sap2000http://www.xiupin365.net/app/?cSapModel SapModel,
ref Sap2000.cSapPlugin ISapPlugin)
{
int NumberItems = 0;
Array ObjectTypes = null;
Array ObjectNames = null;
SapModel.SelectObj.GetSelected(ref NumberItems, ref ObjectTypes, ref
ObjectNames);
MessageBox.Show(string.Format("共選擇了{0}個對象.", NumberItems));
ISapPlugin.Finish(0);
}
}
}
執行插件時,SAP2000會調用cPlugin類的Main函數,因此我們的類庫必須要有cPlugin類和Main函數,並且Main函數的原型必須是這樣的。
3. 引用SAP2000 API
以上代碼是不能編譯通過的,我們還要引用SAP2000 API。選菜單「項目/添加引用」,如下圖:
在彈出的「添加引用」對話框中,選「瀏覽」標簽,選中SAP2000目錄下的SAP2000.exe文件,如下圖。
按「確定」按鈕。VS2008生成了對SAP2000 API的引用。
4. 引用System.Windows.Forms
由於我們要顯示一個結果對話框,需要引用DotNet的System.Windows.Forms.
操作方法是:選菜單「項目/添加引用」,選中「NET」標簽,再選中System.Windows.Forms,如下圖:
按確定按鈕。
5. 編譯成COM組件
添加對SAP2000
API的引用和System.Windows.Forms的引用後,程序就可以編譯通過了,但必須要編譯成COM組件,才能真正成為SAP2000的插件。選菜單「項目/ObjectCount屬性」,如下圖所示。
在屬性頁面中選擇「生成」標簽,再勾選「為COM互操作注冊」,如下圖:
在VS2008的解決方案管理器中,打開項目的Properties節點下的AssemblyInfo.cs,如下圖所示。
找到[assembly: ComVisible(false)]語句,將false改為true,這樣就成為可見的COM組件了。
6. 生成
選菜單「生成/生成解決方案」,如下圖所示:
VS2008將生成此dll,並自動將此COM組件注冊。
7. 添加到SAP2000的菜單中
運行SAP2000,選菜單「Tools」->「Add/Show Plug Ins...」,如下圖:
在彈出的「External Plug In Data」對話框中,在「Plug In Name」欄輸入「ObjectCount」,在「Menu
Text」欄輸入「統計選擇數量」,然後按「Add」按鈕,如下圖:
添加成功後,列表中會多一行,如下圖所示:
按「OK」按鈕。再選菜單「Tools」,可以看到多了一個菜單項「統計選擇數量」,如下圖:
8. 運行插件
點選剛添加的菜單項「統計選擇數量」,程序顯示「Plug In Warning」對話框,如下圖:
按「Yes」按鈕。程序顯示結果對話框,如下圖:
由於我們沒有選擇任何對象,所以輸出結果為0. 在SAP2000中創建一些構件,然後選中這些構件,再執行此插件,就可以顯示選中的構件的數量。
② SAP系統,每輸入一個Tcode都要不停編譯好久,才能打開畫面。這是為什麼
如果你的SAP系統是新裝的,很可能出現你所說的情況,我們公司的IDES系統剛裝的時候,也是『叮叮叮……』的一痛編譯,後來沒人管,用的時間長了,也就沒事了,
如果你的SAP系統已經用了很久的話,可能就是伺服器不行了吧,機子的問題了,可能
③ sap ides 4.71每次運行都要編譯嗎速度好慢啊
號稱sgen一下會快很多,雖然要花點時間,不過可以計劃它在深夜跑就沒影響了 到思互圈子網站查看回答詳情>>
④ 求助 SAP ECC SGEN 問題
根據我的理解--SAP啟動後,系統會將沒有用過的程序和對象都做compile, sgen就是強制generateABAP。compile的結果是存放到DB中的,除非table space不夠用了,當然這樣也編譯不完。否則,應該不會出現LZ擔心的情況。
⑤ sap 重置與取消
它的這一個具體的重置和取消,建議你直接把它的一個相關的頁面直接在關閉,然後再重新的設置一下,這樣就好了。
⑥ SAP為何一直不改善其全宇宙最難看的UI設計,現在企業級軟體競爭那麼激烈,至今不明白啊~
UI設計,所有的TCODE都要重新編譯呢,這個工作量不是一般的小。。SAP其實對於核心的ERP並沒想過要去做多大改善,而是需求外圍軟體的突圍。核心的ERP,就是公司內部的,CS也挺好,穩定。而企業緊急需要的是把供應商外延,通過 銷售端CRM,供應鏈的SRM等來做。這些外圍系統都是JAVA J2E, WEB DYNPRO等設計的,UI界面還是可以的, 更眾多網站UI類似。。
⑦ 請問如何一次編譯sap所有程序。
TCODE: SGEN 然後先第一個, 這個過程起碼10多個小時.
⑧ 在SAP ABAP程序編譯過程中 【FTP文件上傳,下載,在哪句中需要做異常捕獲】謝謝!
ABAP裡面目前只有面向對象的時候才會捕獲異常 使用 try catch 語句
FTP文件上傳下載要捕獲什麼異常
一般就是調用上傳或者下載的function的時候判斷個sy-subrc
然後拋出message
⑨ 請教SAP安裝以後的最初步驟!!!
估計大家都知道要做以上的這些操作,但好象很少有人提到要做下面幾點: 1、編譯對象:SGEN,把SAP Basis 、Appl等對象編譯一下嘛,也對得起良心呀,雖然End User感 覺不到你的辛苦。 2、根據實際情況分配合適數量給DVEBMGS00,比如 rdisp/wp_no_dia,btc,vb,vb2,enq,spo等,雖 然很多人都提到了RZ10或實例參數配置。 3、很少有人提到要安裝許可證license key,好象大家都是用沒有時間限制的SAP。SAP看了肯定 很傷感:為什麼。。。。。這么多用戶都不用安裝許可證license key? 4、OSS的連接是要的嘛,Goinglive 和Early Watch是要的嘛,單靠我們,好象能力有所欠缺,不 能沒有SAP的幫助。 5。當然很多人是安裝IDES來學習,可以不用每個操作都做,但還是想把與安裝有關的操作列一 下。我每次安裝SAP系統時也經常忘這忘那,但把該做都列一下,就很清楚了,如果還有一些操作 因缺少條件沒有做(如許可證license key還沒申請到手),可以等到條件滿足後補充完善。
⑩ 如何給sap預編譯。我自己裝了個模擬機,想給SAP預編譯一下,具體操作該怎麼做呢
tcode:Sgen
如果是第一次編譯,使用第一個選項就可以了.
