我需要打电话给Idempiere Business Modules (前)。(创建采购订单过程),而不是通过一个web服务,有什么方法可以做到这一点,而不经过源代码的Idempiere,我不想使用RESTful方法,将直接处理表
发布于 2016-01-02 00:46:41
您可能指的是对iDempiere的Web服务的改进,其中复合(主细节)和CRUD操作现在是可能的。在项目wiki上的完整描述:下面的Improvements我粘贴https://test.idempiere.org/ADInterface/services的结果
可用SOAP服务: CompositeService
compositeOperation
Endpoint address: http://test.idempiere.org/ADInterface/services/compositeInterfaceWSDL:{0}compositeInterface目标命名空间:0 ModelADService
setDocAction
createUpdateData
getList
readData
createData
runProcess
queryData
deleteData
updateData
Endpoint address: http://test.idempiere.org/ADInterface/services/ModelADServiceWSDL:{0}ModelADService目标命名空间:0
可用RESTful服务:端点地址:http://test.idempiere.org/ADInterface/services/rest WADL:wadl
发布于 2015-11-25 14:12:09
您可以使用从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:(请注意提供的接口)
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="com.nexus.integrator.ProcessFactory">
<implementation class="com.nexus.webservice.client.process.ProcessFactory"/>
<property name="service.ranking" type="Integer" value="5"/>
<service>
<provide interface="org.adempiere.base.IProcessFactory"/>
</service>
</scr:component>若要在OSGI体系结构中使用此功能,需要配置清单文件以导入此Service:(对于工厂xml,我总是使用osgi目录)
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.base服务-组件: OSGI-INF/ProcessFactory.xml
Import-Package: org.osgi.framework您可以这样做,也可以使用复合use服务。
我认为第二安全有效的方法
https://stackoverflow.com/questions/33102678
复制相似问题