Skip to main content

Notifications

Announcements

No record found.

Finance | Project Operations, Human Resources, ...
Suggested answer

Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

Posted on by 1,548

I know that DirPartyTable can have parties that can be a customer or company based on field DEL_Type, Also it has primary address location, primary email etcc

1. why DEL_TYPE can't bee seen in table browser even though visible is set to YES?

2. there are types like person,organization and legal entity. what is the difference between organization and legal entity? Also what is team and operatingUnit?

Now DirPerson inherits from DirPartyTable and from what i understood it has specific details about a person like it's birthdate, material status, etc...

3. Since this table is related to person shouldn't there be a relation with DEL_TYPE... i mean the relation is based here on recId so it doesn't make since for an organization to have material status. So can you please explain? When i insert a record in DirPerson how do u specify to what record in dirPartyTable do my new record refer to.

 Now the contact person, I really don't understand what this table does from a business point view even when i look at the fields

4. so can u please explain?

5. DirPartyTable has relation with logistics location based on the PrimaryAddressLocation, so it just says extra info about the primary location of the customer/organization. But i didn't get what does this field IsPostal Mean? i think postal address means physical address right? so what could it be other than postal address?

6. are there other important tables i should be aware of and understand, related to dirPartyTable and not related to addresses?

  • Suggested answer
    nmaenpaa Profile Picture
    nmaenpaa 101,156 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1. For sure there is a way. Use DirPartyTable.baseType() method to find out the type

    2. It's entirely up to you how you model your teams and operating units. You can create operating units and teams in Organization administration - Organizations menu. 

    3. Go ahead and try! I'm not sure why you would ever want to do that. But if you want to know how it works, just try it. It's very quick and you will get instant results. And most likely you will learn more than letting someone else try it for you.

    4. Contact person is the person in another company, who you are using for contacting the company. There can be many.

    5. Believe it or not, if it says "IsPostal = true" it's a postal address. Actually quite easy to believe it, isn't it?

    If you still have some questions, I really suggest sharing your business requirements. What are you trying to achieve?

  • Martin Dráb Profile Picture
    Martin Dráb 230,198 Most Valuable Professional on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1) In X++, you can use object-oriented operators. For example, if you have a DirPerson object in a variable of DirPartyTable type, you can check if (dirPartyTable is DirPerson). If you have a DirPartyTable record only, you can look at InstanceRelationType field.

    3) I'm not sure, but I think you would get the type of party configured as the default. Which might be something else than what you want.

  • Suggested answer
    Rahul Mohta Profile Picture
    Rahul Mohta 21,014 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    customer, vendors, contacts, employees, address and operating units and legal entities, all make a party ID of their own type

    4. Contact person is typically on customer and vendor contacts

  • junior AX Profile Picture
    junior AX 1,548 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1. So if i open the dirPartyTable or i have a record of dirPartyTable, there is no way i can know this record is of what type?

    2. I would say having 3 teams for the same purpose would be considered an operating unit ( i mean these three teams would be considered ONE operating unit)?

    3. But there is nothing that prevents me from creating in DirPartyTable first, but doing so will make confusions? as i won't know this record is for what?

    4. I would say Contact person is the one guy i contact in another company to make a deal with for example ? is that right?

    5. I just wanted to make sure that if it's postal then there is no way it will have Electronic address records.

    Thanks a lot for your help you made things clearer somehow :)   but still point 1 and 3 are confusing for me

  • Suggested answer
    nmaenpaa Profile Picture
    nmaenpaa 101,156 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1. Instead of type, there's the table hierarchy: DirPerson for type person, DirOrganization for organization. You find all persons by querying DirPerson table, instead of querying DirPartyTable and looking for specific type

    2. Yes, if your customer is an organization, it's considered to be an organization. And persons are considered persons. Team and Operating unit are related to organization model inside D365, your customers can't be of type Team or Operating unit.

    3. Yes, if you want to create an organization, you create record in DirOrganization table.

    4. Contact persons are used for contact person data. For example your customer might have some contact person who handles sales orders. So when you create SO for that customer, you can select from the list who is the contact person on their end. You could sell something to a company that has 10 000 employees. So having some specific person marked on the order can be quite helpful, in case you need to reach the customer and ask some details. And it's also helpful to the customer because they can see the name of the contact person on the invoice, and they know which one of their colleagues can be contacted if they have questions why the order was made or something like that.

    5. If it's postal address, you will have LogisticsPostalAddress. It's that simple!

  • junior AX Profile Picture
    junior AX 1,548 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1. but there is an enum called DirParyType and there is view called DirPartType view, so since there is no field called Type how come are we relating records in dirPartyTable, how do i know that this record is of type personor organization etcc..?

    2. So if i have a company, it's considered legal entity, if i have another company that is considerd as a customer for me then it's an organization, but if my customer is a person then the type is Person. Right? What about Team and operating unit?

    3. So when i insert in DirPerson, a record is automatically inserted in dirPartyTable

    So we usually insert in DirPerson and DirOrganization and not start inserting with dirPartyTable?

    4. i think u missed my question, i was talking about ContactPerson Table. Here's what i wrote:

    " Now the contact person, I really don't understand what this table does from a business point view even when i look at the fields"

    5. So if IsPostal is ticked, does that mean it doesn't have a related record in logisticsElectronicsAddress and only have record in LogisticsPostalAddress?

  • Suggested answer
    nmaenpaa Profile Picture
    nmaenpaa 101,156 on at
    RE: Understanding DirPartyTable, DirPerson and ContactPerson in terms of business

    1. DEL_TYPE is obsolete so don't use it. It's only shown if configuration key SysDeletedObjects60 is enabled. It should only be enabled if you upgrade your database from AX2012 to D365, and only used until you've refactored your customizations to not use this field anymore. Whenever something in the system has DEL_ prefix, you know it's obsolete and only exists to support upgrades from earlier versions.

    2. Legal entity is D365 company (the organization who is using D365). Parties that are of type Organization are organizations that your company interacts with (customers, vendors…)

    3. If you insert DirPerson a DirPartyTable is always inserted. If you look into the database they are not actually different tables - everything is in DirPartyTable. This table hierarchy ("Extends") is just a conceptual model within D365 application. SQL Server doesn't support table inheritance. So the RecId of your new DirPerson is actually same than the parent DirPartyTable.

    4. Explained above.

    5. IsPostal means that it's postal address. All addresses, for example electronic address (email, phone) are also linked to LogisticsLocation.

    6. I mentioned earlier electronic addresses. They are stored in LogisticsElectronicAddress table.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,269 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,198 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans