首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IDempiere服务集成

IDempiere服务集成
EN

Stack Overflow用户
提问于 2015-10-13 12:25:55
回答 2查看 1.9K关注 0票数 1

我需要打电话给Idempiere Business Modules (前)。(创建采购订单过程),而不是通过一个web服务,有什么方法可以做到这一点,而不经过源代码的Idempiere,我不想使用RESTful方法,将直接处理表

EN

回答 2

Stack Overflow用户

发布于 2016-01-02 00:46:41

您可能指的是对iDempiere的Web服务的改进,其中复合(主细节)和CRUD操作现在是可能的。在项目wiki上的完整描述:下面的Improvements我粘贴https://test.idempiere.org/ADInterface/services的结果

可用SOAP服务: CompositeService

代码语言:javascript
复制
compositeOperation

Endpoint address: http://test.idempiere.org/ADInterface/services/compositeInterface

WSDL:{0}compositeInterface目标命名空间:0 ModelADService

代码语言:javascript
复制
setDocAction
createUpdateData
getList
readData
createData
runProcess
queryData
deleteData
updateData

Endpoint address: http://test.idempiere.org/ADInterface/services/ModelADService

WSDL:{0}ModelADService目标命名空间:0

可用RESTful服务:端点地址:http://test.idempiere.org/ADInterface/services/rest WADL:wadl

票数 2
EN

Stack Overflow用户

发布于 2015-11-25 14:12:09

您可以使用从org.adempiere.base插件创建一个提供服务接口,在代码中调用该服务,并为类MOrder扩展X_C_Order和类MOrderLine扩展X_C_OrderLine调用构造函数。

这里有来自IProcessFactory的示例(您可以像ICreateOrderFactory一样创建工厂,或者只创建IInsertFactory (对于通用工厂构造函数,可以设置表id ):

这是一个接口声明

代码语言:javascript
复制
public interface IProcessFactory {
    /**
     * Create new process instance
     * @param className
     * @return new process instance
     */

public ProcessCall newProcessInstance(String className);

代码语言:javascript
复制
    }

这是一种唤起方法

代码语言:javascript
复制
    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:(请注意提供的接口)

代码语言:javascript
复制
<?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目录)

代码语言:javascript
复制
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

代码语言:javascript
复制
Import-Package: org.osgi.framework

您可以这样做,也可以使用复合use服务。

我认为第二安全有效的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33102678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档