我想在新的ofbiz
組件中使用現有服務(createInvoice
) 。apache ofbiz:在自己的組件中包含現有服務
在我componentScreens.xml我說: 其中顯示精細一款
<decorator-section name="body">
<section>
<widgets>
<screenlet title="${uiLabelMap.AccountingCreateNewSalesInvoice}">
<include-form name="NewSalesInvoice" location="component://accounting/widget/InvoiceForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.AccountingCreateNewPurchaseInvoice}">
<include-form name="NewPurchaseInvoice" location="component://accounting/widget/InvoiceForms.xml"/>
</screenlet>
</widgets>
</section>
</decorator-section>
。但NewPurchaseInovice-form
調用服務createInvoice
,這是在/accounting/servicedef/services_invoice.xml
定義所以,當我的形式調用服務ofbiz
狀態的錯誤:
org.ofbiz.webapp.control.RequestHandlerException: Unknown request [createInvoice]; this request does not exist or cannot be called directly.
一種解決方案是重新定義(副本),在我的組件服務 的services.xml:
<service name="createInvoice" engine="simple" default-entity-name="Invoice"
location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoice">
<description>Create Invoice Record</description>
<permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
<auto-attributes mode="INOUT" include="pk" optional="true"/>
<auto-attributes mode="IN" include="nonpk" optional="true"/>
<override name="invoiceTypeId" mode="IN" optional="false"/>
<override name="partyIdFrom" mode = "IN" optional="false"/>
<override name="partyId" mode = "IN" optional="false"/>
<override name="description" allow-html="safe"/>
<override name="invoiceMessage" allow-html="safe"/>
</service>
但也許有一個簡單的解決方案(也許有一種方法 送在服務請求圖中定位服務的位置?)。
謝謝。我添加了相關的請求,它工作! – Mike75