您可以使用org.adempiere.base插件创建提供服务接口,在代码中调用此服务并调用MOrder扩展X_C_Order类的构造函数,并为类MOrderLine扩展X_C_OrderLine。
这里有来自IProcessFactory的示例(您可以像ICreateOrderFactory一样创建工厂,或者只创建IInsertFactory(对于通用工厂构造函数,您可以设置表ID):
这是一个接口声明
public interface IProcessFactory {
/**
* Create new process instance
* @param className
* @return new process instance
*/public ProcessCall newProcessInstance(String className);
}这是一种唤起方法
public class ProcessFactory implements IProcessFactory {
@Override
public ProcessCall newProcessInstance(String className) {
if (className.equals("com.com.nexus.webservice.client.process.IntegratorWS"))
return new IntegratorWS();
else
return null;
}
}现在你需要像这样创建这个工厂的.xml :(在提供的界面中注意)
要在OSGI体系结构中使用它,您需要配置MANIFEST文件以导入它
Service-Component :(我总是使用osgi-inf目录为我的工厂xml)
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: com.nexus.webservice.client
Bundle-SymbolicName: com.nexus.webservice.client;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: Macrosoftware
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.adempiere.baseService-Component: OSGI-INF/ProcessFactory.xml
Import-Package: org.osgi.framework您可以执行此操作,也可以使用复合Web服务。
我认为这是第二种最安全有效的方法