ofbiz-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Piechota <piech...@gmail.com>
Subject Re: List of all people and the company they work for
Date Sat, 16 Feb 2013 17:26:52 GMT
Thanks Adrian. Yep, totally agree - in my first attempt, after using
the PartyRelationshipAndPartyDetail
view-entity as a starting point, I needed to add an OR clause in the join
to get what I needed (i.e., a table with only a single Person and
PartyGroup column, not a toPerson, fromPerson, toPartyGroup,
fromPartyGroup), but that required hacking. Now I'll try the complex-alias
approach mentioned above.

Thanks for your help,

James


On Fri, Feb 15, 2013 at 11:22 PM, Adrian Crum <
adrian.crum@sandglass-software.com> wrote:

> Exactly. So, copy the view entity and add what you need.
>
> -Adrian
>
>
> On 2/15/2013 7:24 PM, James Piechota wrote:
>
>> Thanks, Adrian!
>>
>> Yeah, I'd looked at PartyRelationshipAndDetail view entity (actually
>> started my journey through the source there), but it seems like it only
>> considers the PartyRelationship.partyIdTo side of the connection, not the
>> partyIdFrom.
>>
>> I'd like to build a list of Persons and their associated PartyGroups. At
>> its most basic the list would contain just:
>>
>> PersonFirstName PersonLastName CompanyName
>> ...
>>
>> For all Persons.
>>
>> I'm not sure PartyRelationshipAndDetail will do that for me since the
>> relationships could be Person -> PartyGroup as well as PartyGroup ->
>> Person
>> and it only looks at the end of the relationship. i.e. It grabbs all
>> Persons and PartyGroups that sit on the terminal end of a relationship,
>> but
>> I believe ignores the start end of the relationship.
>>
>> James
>>
>>
>> On Fri, Feb 15, 2013 at 8:29 AM, Adrian Crum <
>> adrian.crum@sandglass-**software.com <adrian.crum@sandglass-software.com>>
>> wrote:
>>
>>  Relationships go from Party to Party. Person and PartyGroup are Party
>>> subtypes. So, if you want your code to work with all Party subtypes, you
>>> need a view entity that includes both Person and PartyGroup. The
>>> PartyRelationshipAndDetail view entity is a good example.
>>>
>>> -Adrian
>>>
>>>
>>>
>>> On 2/15/2013 3:47 PM, James Piechota wrote:
>>>
>>>  Update:
>>>>
>>>> I may be able to so what I need using complex aliases (basically map a
>>>> fromPerson and toPerson column to a single person column - assuming that
>>>> only one of the two will be non-null for a given row).
>>>>
>>>> I'll give it a go.
>>>>
>>>> James
>>>>
>>>> On Thursday, February 14, 2013, James Piechota wrote:
>>>>
>>>>   Thank you both for the replies!
>>>>
>>>>> I completely agree: I'd love to avoid hacking as much as possible!
>>>>> Maybe
>>>>> my searching skills need some help because these are the issues I hit
>>>>> after
>>>>> combing through the source:
>>>>>
>>>>> 1.
>>>>> I believe the relationships can go either Person -> PartyGroup or
>>>>> PartyGroup -> Person - is that right? To simplify use of the
>>>>> view-entity,
>>>>> I'd like to just have single "person" and "partyGroup" fields (as
>>>>> opposed
>>>>> to the toPerson, fromPerson, toPartyGroup, fromPartyGroup fields used
>>>>> in
>>>>> the scrum PartyRelationshipAndPartyDetai****l entitymodel example)
>>>>>
>>>>>
>>>>> 2.
>>>>> We'll be tracking this employment relationship for customers and other
>>>>> external contacts and so I don't think I can rely on the human resource
>>>>> tables.
>>>>>
>>>>> I guess what it boils down to is:
>>>>>
>>>>> A. Are my search skills crappy, and there does in fact exist an example
>>>>> of
>>>>> how to query the employment relationship without needing both to and
>>>>> from
>>>>> fields for both parties? (if so, I'll keep looking!)
>>>>>
>>>>> B. Have I misunderstood something fundamental, and there's another way
>>>>> to
>>>>> get at what I need.
>>>>>
>>>>> Thanks again for the replies!
>>>>>
>>>>>
>>>>> On Thu, Feb 14, 2013 at 2:20 AM, Adrian Crum <
>>>>> adrian.crum@sandglass-**softwa**re.com <http://software.com><
>>>>> adrian.crum@sandglass-**software.com<adrian.crum@sandglass-software.com>
>>>>> ><javascript:_e({}**, 'cvml',
>>>>> 'adrian.crum@sandglass-**softw**are.com <http://software.com><
>>>>> adrian.crum@sandglass-**software.com<adrian.crum@sandglass-software.com>
>>>>> >');>>
>>>>> wrote:
>>>>>
>>>>>   James,
>>>>>
>>>>>> One thing to always remember: Whatever you are trying to do, there
is
>>>>>> a
>>>>>> good chance someone else has already done it. Looking up a party
>>>>>> relationship is a very common requirement, so there is no need to
hack
>>>>>> up
>>>>>> the source code to do it. Just spend some time looking at the current
>>>>>> implementations - chances are it already exists.
>>>>>>
>>>>>> -Adrian
>>>>>>
>>>>>>
>>>>>> On 2/14/2013 9:39 AM, Malin Nicolas wrote:
>>>>>>
>>>>>>   Hi
>>>>>>
>>>>>>> You can create a view-entity between Person - PartyRelationship
-
>>>>>>> PartyGroup with non optional relation and a entity-condition
on
>>>>>>> partyRelationshipTypeId = EMPLOYMENT
>>>>>>> See applications/humanres/******entitydef/entitymodel.xml for
>>>>>>> example.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Nicolas
>>>>>>>
>>>>>>> Le 14/02/2013 00:09, James Piechota a écrit :
>>>>>>>
>>>>>>>   Hi,
>>>>>>>
>>>>>>>> What's the recommended approach to getting a list of Persons
and the
>>>>>>>> Party
>>>>>>>> Group that they are in an EMPLOYMENT relationship with?
>>>>>>>>
>>>>>>>> Some context:
>>>>>>>>
>>>>>>>> Since a Person can be on either end of a PartyRelationship
the SQL
>>>>>>>> query
>>>>>>>> I've cooked up involves Left Joins with OR conditions.
>>>>>>>>
>>>>>>>> I've been unable to do this with a view-entity since the
view-links
>>>>>>>> seem to
>>>>>>>> require at least one AND in any boolean condition (i.e.,
they
>>>>>>>> require
>>>>>>>> at
>>>>>>>> least one key-map which gets AND'ed with any provided
>>>>>>>> entity-conditions).
>>>>>>>>
>>>>>>>> I've edited my local install to relax the view-link requirements
so
>>>>>>>> that
>>>>>>>> they just require *some* condition whether from a key-map,
>>>>>>>> entity-condition
>>>>>>>> or both. If there isn't a recommended approach to the above,
I can
>>>>>>>> look
>>>>>>>> into opening a JIRA issue and attaching a patch.
>>>>>>>>
>>>>>>>> For reference, this is the sort of SQL query I've been trying
to
>>>>>>>> build:
>>>>>>>>
>>>>>>>> select PERSON.FIRST_NAME, PARTY_GROUP.GROUP_NAME
>>>>>>>> from PERSON
>>>>>>>> left outer join PARTY_RELATIONSHIP
>>>>>>>>        on (PERSON.PARTY_ID = PARTY_RELATIONSHIP.PARTY_ID_******FROM
>>>>>>>> or
>>>>>>>> PERSON.PARTY_ID = PARTY_RELATIONSHIP.PARTY_ID_******TO) and
>>>>>>>> PARTY_RELATIONSHIP.PARTY_******RELATIONSHIP_TYPE_ID = 'EMPLOYMENT'
>>>>>>>> left outer join PARTY_GROUP
>>>>>>>>        on (PARTY_GROUP.PARTY_ID = PARTY_RELATIONSHIP.PARTY_ID_****
>>>>>>>> **FROM
>>>>>>>> or
>>>>>>>> PARTY_GROUP.PARTY_ID = PARTY_RELATIONSHIP.PARTY_ID_******TO)
and
>>>>>>>> PARTY_RELATIONSHIP.PARTY_******RELATIONSHIP_TYPE_ID = 'EMPLOYMENT'
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>

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