我需要調用Idempiere 業務模塊(例如,創建採購訂單處理),不是通過Web服務表,有沒有辦法做到這一點,而無需通過Idempiere的源代碼去,我不想使用直接處理表的RESTful方法IDempiere服務集成
回答
您可以使用org.adempiere.base插件創建提供服務接口,在您的代碼中調用此服務並調用類MOrder的構造函數extends 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);
}
這是一個evocati在方法
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架構利用這一點,你需要配置清單文件導入此 服務組件:(我總是使用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.base
小號ervice組分:OSGI-INF/ProcessFactory.xml
Import-Package: org.osgi.framework
你可以這樣做,或者你可以使用web服務組合。
我認爲第二種最安全有效的方法
您可能指的是對iDempiere的Web服務的改進,其中現在可以實現複合(master-detail)和CRUD操作。在項目wiki完整的描述:http://wiki.idempiere.org/en/NF1.0_Web_Services_Improvements 下面我貼的https://test.idempiere.org/ADInterface/services
可用SOAP服務的結果: CompositeService
compositeOperation
Endpoint address: http://test.idempiere.org/ADInterface/services/compositeInterface
WSDL:{http://idempiere.org/ADInterface/1_0} compositeInterface 目標命名空間:http://idempiere.org/ADInterface/1_0 ModelADService
setDocAction
createUpdateData
getList
readData
createData
runProcess
queryData
deleteData
updateData
Endpoint address: http://test.idempiere.org/ADInterface/services/ModelADService
WSDL:{http://idempiere.org/ADInterface/1_0} ModelADService 目標命名空間:http://idempiere.org/ADInterface/1_0
可用的RESTful服務: 端點地址:http://test.idempiere.org/ADInterface/services/rest WADL:http://test.idempiere.org/ADInterface/services/rest?_wadl
- 1. 將商業服務器與持續集成服務器集成
- 2. 多iDempiere實例
- 3. Ejabberd聊天服務集成
- 4. Spring - SOAP Web服務集成
- 5. WF4服務和WIF集成
- 6. sencha與Web服務集成
- 7. Codeigniter-oauth2-服務器集成
- 8. PayU集成Web服務URL
- 9. REST服務Google Analytics集成
- 10. Android的web服務集成
- 11. 持續集成web服務
- 12. Java集成SQL服務器
- 13. SQL Server集成服務
- 14. SQL Server集成服務
- 15. SQL Server集成服務任務條件
- 16. SQL集成服務Web服務任務問題
- 17. 將Quickfix/n與SQL Server集成服務集成
- 18. 連續集成服務器上的集成測試
- 19. 如何將MVC休息服務與Spring集成集成?
- 20. 如何將WebWorks ePublisher與持續集成服務器集成?
- 21. PhpStorm - > BitBucket服務器集成
- 22. 將.Net服務與Microsoft Exchange集成
- 23. 集成Web服務器的PHP IDE
- 24. 使用Spring集成開發Web服務
- 25. Github集成和服務(如何啓用)
- 26. DataPower - Azure服務總線集成
- 27. 博客引擎和雲服務集成
- 28. 帶WF4的SQL Server集成服務
- 29. 郵件服務器集成組件
- 30. Spring集成調用Web服務