ofbiz-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jacques Le Roux" <jacques.le.r...@les7arts.com>
Subject Re: Complicated Question
Date Fri, 13 Apr 2012 19:56:13 GMT
From: "Skip" <skip@thedevers.org>
> Let me restate the two problems a little more succinctly.
> Problem 1
> I want to include a controller from a hot-deploy component into an existing
> ofbiz controller in applications directories.  I know I can use "condition /
> widget / fail-widget tags" in screen widgets, but can you use something
> similiar in a controller.xml file.  I could find no examples.
> For example, in
> ...applications/product/webapp/catalog/WEB-INF/controller.xml
>    <include
> location="component://company1/webapp/common/WEB-INF/common-controller.xml"/
> Only, I want the location to be a variable like
> <include location="${externalLocation}"/>

You can't use that OOTB, but you could maybe have a look at FlexibleLocation.resolveLocation()
and create an entry in a 
locationresolvers.properties file (or even teawk the FlexibleLocation class)
The  question is more from where would come your externalLocation var and how you would make
it vary

> If this is possible, where can I declare "externalLocation".
> Alternately, is it possible to "inject" the hot-deploy controller into the
> first.

> Problem 2
> I want to call a service with an indeterminate attribute list.
> I think I have found the solution here.  Just set validate="false" in the
> service declaration and I can pass in whatever attributes I want from the
> form widget.
> -----Original Message-----
> From: Atul Vani [mailto:atul.vani@hotwaxmedia.com]
> Sent: Thursday, April 12, 2012 10:43 PM
> To: user@ofbiz.apache.org
> Subject: Re: Complicated Question
> Didn't get the problem completely, but still, check my comments inline.
> Thanks&  Regards
> Atul Vani
> Enterprise Software Developer
> HotWax Media Pvt. Ltd.
> http://www.hotwaxmedia.com/
> We are the Global Leaders in Apache OFBiz, Google 'ofbiz' and see for
> yourself.
> On 04/13/2012 05:55 AM, Skip wrote:
>> I am implementing Ofbiz for two sister companies, each of which sells
>> different kinds of products.  I have implemented the first company and am
>> starting on the second.  I would like to maintain just a single set of
>> source for both companies.
>> I have two components in hot-deploy that load the seed data and code
>> specific to each company. Only one or the other is included in
>> component-load.xml.
>> However, I do not want these screens from company 1 available in the
> second
>> company.  These company specific screens have to do with product
> attributes
>> for the items sold.
>> In the ordermgr order entry screen, I have have added a secondary screen
>> that allows sales people to look up products by their attributes using
>> product type specific screens.  For example, for a screw, they enter the
>> thread count, length, material, etc.  Another example would be would be a
>> tap which has fields for diameter, length, thread count, etc.
>> Other screens allow inexperienced employees to enter new products by
>> selecting product attributes from product specific dropdowns.  Using this
>> data, they can add or update products.
>> There are two problems here, the add and update actions require product
>> specific URLs which eventually end up in product specific services.
>> I would like to do two things.
>> The first is to include the controller.xml file for one or the other of
>> these two companies into the the controller.xml file for facility and
>> catalog that has these product specific URLs.  For example, in a screen
>> widget, I can do:
>> <condition>
>>    <not><if-empty field-name="findScreenName"/></not>
>> </condition>
>> <widgets>
>>   <include-screen name="${findScreenName}"/>
>> </widgets>
>> is it possible to do something like this:
>> <condition>
>>     somecondition
>> </condition>
>> <include
>> location="component://product/webapp/facility/WEB-INF/controller.xml"/>
>> or
>> <include location="${externalLocation}"/>   and specify externalLocation
> in
>> the web.xml file maybe?
> Check out the use of condition / widget / fail-widget tags.
>> Second,  I could write a single service to do these add/update services if
>> there was a way to pass an arbitrary list of attributes in the context to
>> the service and not have the service engine complain that field is not
>> defined for service .
>> For example, if I have a service defined as:
>>      <service name="createInventoryProduct" engine="java" auth="true"
>> default-entity-name=""
>>              location="com.fs.inventory.InventoryServices"
>> invoke="createInventoryProduct"
>>              use-transaction="false">
>>          <description>
>>          Create a Product, SupplierProduct, and default ProductPrice
>>          </description>
>>          <attribute name="productId" type="String" mode="INOUT"
>> optional="false"/>
>>          <attribute name="internalName" type="String" mode="IN"
>> optional="false"/>
>>          <attribute name="description" type="String" mode="IN"
>> optional="false"/>
>>          <attribute name="productType" type="String" mode="IN"
>> optional="false"/>
>>      </service>
> Use attribute(s) of type List in the service. Use 2 or more fields with
> the same name in the HTML form.
>> and I pass an attribute "color", I get an error from the service
> validation
>> code.  Is there some way to inform the service engine that the service
> could
>> have an arbitrary number of additional attributes (based on the
> productType
>> in this case) and to not throw this error?
>> Thanks in advance for your help.
>> Skip

View raw message