ofbiz-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Foo Shyn Chung <ipoh...@gmail.com>
Subject Re: view-entity within view-entity selection issue
Date Mon, 09 Apr 2012 09:49:39 GMT
I'd managed to solve the problem. It seems that the entitymodel.xml loads
according to the sequence of the component to be loaded as well.

For example, in my case, the view-entity  ViewOfficerPaymentInfo  is being
declared in the Payment entitymodel.xml while the  ViewOfficerSalesReport
was declared in the Customer module.

Since i didn't explicitly stated the sequence to load the component in the
hot-deploy folder, the Customer component was loaded first before Payment,
and hence the view-entity definition in the Payment module wasn't available
in the Customer module.

After i added the component-load.xml and explicitly stating the sequence,
everything started to work like a charm.

Hope this can help whoever that's facing the same problem.

Thanx
FooShyn

On Sun, Apr 8, 2012 at 12:01 PM, Foo Shyn Chung <ipohfly@gmail.com> wrote:

> The problem is my SQL need to have left join on two tables, which are
> essentially a header and detail tables and they need to have a inner join
> to make it meaningful.
>
> I found that there are a few existing view-entity in Example and in
> product that are doing what i'm looking to do, but strange thing is my
> view-entity wouldn't pick up the internal view-entity aliases...
>
> Thanx
> FooShyn
>
>
> On Sat, Apr 7, 2012 at 6:56 PM, Jacques Le Roux <
> jacques.le.roux@les7arts.com> wrote:
>
>> I did not into any details at all, but I'd suggest you to rather create
>> another view-entity which would combine what you need from the 2 others.
>> (ie using directly real entities you used in both others)
>>
>> Jacques
>>
>> From: "Foo Shyn Chung" <ipohfly@gmail.com>
>>
>>  Further on the issue, i tried moving the selection from using the
>>> entity-condition in xml to a groovy script and using delegator.findList.
>>> However the problem seems like persisting.
>>>
>>> Is this a bug in OFBiz? or simple the way i declare my view-entity is
>>> wrong?
>>>
>>> Thanx
>>> FooShyn
>>>
>>> On Thu, Apr 5, 2012 at 5:30 PM, Foo Shyn Chung <ipohfly@gmail.com>
>>> wrote:
>>>
>>>  Hi all,
>>>>
>>>> I'm having issue trying to select a view entity field from within
>>>> another
>>>> view entity.
>>>>
>>>> I have to view entity currently, first one looks like this:
>>>>
>>>> <view-entity entity-name="**ViewOfficerPaymentInfo"
>>>> package-name="com.trideas.ams.**payment" title="OfficerPayment joins
>>>> OfficerPaymentCommission">
>>>>      <member-entity entity-alias="OP" entity-name="OfficerPayment"/>
>>>>      <member-entity entity-alias="PC"
>>>> entity-name="**OfficerPaymentCommission"/>
>>>>      <alias entity-alias="OP" name="paymentId" />
>>>>      <alias entity-alias="OP" name="officerId"/>
>>>>
>>>>      <view-link entity-alias="OP" rel-entity-alias="PC">
>>>>        <key-map field-name="paymentId"/>
>>>>      </view-link>
>>>>    </view-entity>
>>>>
>>>>
>>>> The second one:
>>>>
>>>> <view-entity entity-name="**ViewOfficerSalesReport"
>>>> package-name="com.trideas.ams.**customer" title="Customer tables
>>>> joined with
>>>> outer joins the Payment table for Officer Sales report">
>>>>      <member-entity entity-alias="PI" entity-name="**
>>>> CustomerPersonalInfo"/>
>>>>      <member-entity entity-alias="FD"
>>>> entity-name="**CustomerFinancingDetails"/>
>>>>      <member-entity entity-alias="VP"
>>>> entity-name="**ViewOfficerPaymentInfo"/>
>>>>      <alias entity-alias="PI" name="customerId" field="customerId" />
>>>>      <alias entity-alias="PI" name="customerName" field="name" />
>>>>      <alias entity-alias="FD" name="officerId"
>>>> field="marketingOfficerId"
>>>> />
>>>>      <alias entity-alias="VP" name="opBankId" field="opBankId"/>
>>>>      <alias entity-alias="VP" name="opAccNo" field="opAccNo"/>
>>>>      <alias entity-alias="VP" name="opPaymentDate" field="opPaymentDate"
>>>> />
>>>>      <alias entity-alias="VP" name="opChequeNo" field="opChequeNo" />
>>>>      <alias entity-alias="FD" name="loanApproved" field="loanApproved"
>>>> />
>>>>      <alias entity-alias="FD" name="approvedDate" field="approvedDate"
>>>> />
>>>>      <alias entity-alias="PI" name="createdDate" field="createdDate" />
>>>>      <view-link entity-alias="PI" rel-entity-alias="FD">
>>>>        <key-map field-name="customerId"/>
>>>>      </view-link>
>>>>      <view-link entity-alias="FD" rel-entity-alias="VP"
>>>> rel-optional="true">
>>>>        <key-map field-name="customerId" rel-field-name="customerId"/>
>>>>        <key-map field-name="**marketingOfficerId"
>>>> rel-field-name="officerId"/>
>>>>      </view-link>
>>>>    </view-entity>
>>>>
>>>> When i try to use a entity-condition to select the entity, i found that
>>>> i
>>>> can't select the opBankId and whatever else field from the VP view.
>>>> There's
>>>> a warning message in the log that says:
>>>>
>>>> "The field name (or key) [opBankId] is not valid for entity
>>>> [ViewOfficerSalesReport], printing IllegalArgumentException instead of
>>>> throwing it because Map interface specification does not allow throwing
>>>> that exception."
>>>>
>>>> I did a logging and found that the SQL itself is correct bar that the
>>>> fields from the view is not selected:-
>>>>
>>>> SELECT PI.CUSTOMER_ID, PI.NAME, FD.MARKETING_OFFICER_ID,
>>>> FD.LOAN_APPROVED, FD.APPROVED_DATE, PI.CREATED_DATE
>>>> FROM ((public.CUSTOMER_PERSONAL_**INFO PI
>>>> INNER JOIN public.CUSTOMER_FINANCING_**DETAILS FD ON PI.CUSTOMER_ID =
>>>> FD.CUSTOMER_ID)
>>>> LEFT OUTER JOIN (
>>>> SELECT OP.PAYMENT_ID AS OP_PAYMENT_ID, OP.OFFICER_ID AS OP_OFFICER_ID,
>>>> OP.PAYMENT_DATE AS OP_PAYMENT_DATE, OP.BANK_ID AS OP_BANK_ID, OP.ACC_NO
>>>> AS
>>>> OP_ACC_NO, OP.CHEQUE_NO AS OP_CHEQUE_NO,
>>>> PC.CUSTOMER_ID AS PC_CUSTOMER_ID FROM public.OFFICER_PAYMENT OP INNER
>>>> JOIN
>>>> public.OFFICER_PAYMENT_**COMMISSION PC ON OP.PAYMENT_ID =
>>>> PC.PAYMENT_ID) VP
>>>> ON FD.CUSTOMER_ID = VP.PC_CUSTOMER_ID AND FD.MARKETING_OFFICER_ID =
>>>> VP.OP_OFFICER_ID)
>>>> WHERE ((PI.NAME LIKE '%'))
>>>> ORDER BY FD.APPROVED_DATE DESC
>>>>
>>>> The reason i'm putting the VP field with the prefix 'op' is because i'm
>>>> trying to let it select the fields, but it doesn't work.
>>>>
>>>> Anyone have any idea how this should work? Is there something i should
>>>> add
>>>> to the alias so that it will select those fields?
>>>>
>>>> Thanx
>>>> FooShyn
>>>>
>>>>
>>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message