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' >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >> >
