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 <[email protected]> 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 >
