FWIW: As near as I can tell, there's no way to do this. I'll see if I can
cobble something together using two view-entities (one for each of the to
and from relationships).


On Sat, Feb 16, 2013 at 9:26 AM, James Piechota <[email protected]> wrote:

> 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 <
> [email protected]> 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<[email protected]>>
>>> 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<[email protected]>
>>>>>> ><javascript:_e({}**, 'cvml',
>>>>>> 'adrian.crum@sandglass-**softw**are.com <http://software.com><
>>>>>> adrian.crum@sandglass-**software.com<[email protected]>
>>>>>> >');>>
>>>>>> 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'
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>
>

Reply via email to