分类: Java
2011-05-04 12:11:00
1. 创建一个项目目录,比如E:\standalone。在目录中创建configuration和plugins两个子目录
2. 将$TCROOT\portal\plugins目录中的所有内容拷到E:\standalone\plugins
3. 启动Eclipse,切换工作区到E:\standalone,如图 1‑1 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400350039003600390036000000
4. 点击菜单Windows→Preferences,在左边的树上选择Plug-in Development→Target Platform,如图 1‑2 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400350039003700300038000000 。点击Location旁边的Browse按钮,选择项目目录E:\standalone,列表中会出现刚才拷进去的插件。
1 1 切换工作区
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 2 设置Target Platform
1. 在Eclipse中点击菜单File→New→Project,选择Plugin-in Project,点击Next
2. 输入插件包名com.ufc.tcua.standalone作为项目名,在Target Platform中,选中an OSGi Framework并选择Equinox,如图 1‑4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360030003600320033000000 。点击Next
3. 选中Generate an activator,如图 1‑5 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360031003200320039000000 。点击Next
4. 取消选中Create a plugin-in use one of the templates,如图 1‑6 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360031003200330039000000 。点击Finish
5.
在Project Tab中,点击Dependencies页。在Required
Plug-ins区域中,点击Add按钮,添加以下插件,如图
1‑7
08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360031003200340037000000
:
com.teamcenter.rac.aifrcp
com.teamcenter.rac.kernel
com.teamcenter.rac.util
6. 现在可以开始编写代码了。在项目中添加一个PrintHomeFolder类,添加login、logout、print三个函数,分别实现登录、注销、打印home目录内容功能。RC端客户化开发的函数在这里都是可以使用的,要实现更复杂的功能可以自行编写。
7.
在Activator的start函数中,添加以下代码:
System.out.println("start
standalone...");
PrintHomeFolder.login();
PrintHomeFolder.print();
在stop函数中,添加以下代码:
System.out.println("stop
standalone...");
8. 例子中的登录函数是直接写死了用户名密码,如果需要用户交互登录,重写login函数即可。
图 STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 3 创建插件项目-1
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 4 创建插件项目-2
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 5 创建插件项目-3
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 6 创建插件项目-4
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 7 添加Required Plug-ins
1. 在Eclipse中点击菜单File→Export,选中Deployable plug-ins and fragments,点击Next,如图 1‑8 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360032003000370032000000
2. 选中要导出的插件,在Destination中选择导出目录E:\standalonetest,点击Finish,如图 1‑9 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320038003400360032003100350037000000 。插件会导出到E:\standalonetest\plugins
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 8 导出插件-1
STYLEREF 1 \s 1‑ SEQ 图 \* ARABIC \s 1 9 导出插件-2
1. 创建目录E:\standalonetest作为插件的独立运行目录,在目录下创建configuration和plugins两个子目录
2. 将$TCROOT\portal\plugins目录中的所有内容拷到E:\ standalonetest\plugins
3.
从plugins目录中拷贝以下jar包到E:\standalonetest
org.eclipse.equinox.common_3.2.0.v20060603.jar
org.eclipse.osgi_3.2.0.v20060601.jar
org.eclipse.update.configurator_3.2.0.v20060605.jar
4.
在configuration目录中,创建config.ini文件,内容如下:
osgi.bundles=plugins/com.ufc.tcua.standalone@start,plugins/org.eclipse.equinox.common@2:start,plugins/org.eclipse.update.configurator@3:start
注意以上内容不要换行,第一个插件是我们编写的插件。
5.
在E:\standalonetest创建run.bat,内容如下,在Windows平台上要写成%TC_ROOT%或替换为Teamcenter安装目录:
set
FMS_HOME=$TC_ROOT\fcc
set Path=$TC_ROOT \fcc\lib;%Path%
set JAVA_HOME=$TC_ROOT \portal\jre
set Path=%JAVA_HOME%\bin;%Path%
java -jar org.eclipse.osgi_3.2.0.v20060601.jar
6. 执行run.bat,就可以独立运行RC端插件了。如果运行出错,可以在configuration目录中查看错误日志。
目录中独立启动插件上一节我们新建一个目录来独立运行RC端插件,如果直接使用portal目录也是可以的。步骤如下:
1. 在portal目录中创建ufcconfig目录
2. 从portal\plugins目录中拷贝上一节提到的3个jar包到portal目录
3. 在ufcconfig目录中创建config.ini文件,内容与上一节相同
4.
在portal中创建ufc.bat,内容如下:
set
FMS_HOME=$TC_ROOT\fcc
set Path=$TC_ROOT \fcc\lib;%Path%
set JAVA_HOME=$TC_ROOT \portal\jre
set Path=%JAVA_HOME%\bin;%Path%
java -Dosgi.configuration.area=file:/$TC_ROOT/portal/uifconfig –jar org.eclipse.osgi_3.2.0.v20060601.jar
前4句与上一节都是一样的,最后一句设置了configuration目录,不使用默认目录,而是使用我们刚才创建的ufcconfig目录
5. 执行ufc.bat就可以独立启动插件
独立启动插件,最大的好处当然是不用启动Rich Client就可以完成与Teamcenter的交互。界面和功能比较单一的程序适合采用这种方式,如接口程序、批量导入程序等。
从Teamcenter8.3的资料来看,以后的版本可能会放弃支持独立运行程序。我理解是从产品整体架构上考虑,想更加突出SOA,但不能不说是一个遗憾,我认为这种二次开发方式在某些情况下还是很有用的。
以上内容大部分来自RichClientCustomizationProgrammerGuide.pdf中Chapter 3的Writing Stand-alone Programs一节,大家有不清楚的地方可查阅英文文档。