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 Fri, 15 Feb 2013 19:24:44 GMT
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> 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-**software.com<adrian.crum@sandglass-software.com><javascript:_e({},
'cvml',
>>> '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