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
如果是第一次编译,使用第一个选项就可以了.
