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 <
[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-**software.com<[email protected]><javascript:_e({},
'cvml',
'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'