Replacing the Notes & Attachments related list ...

  • 1
  • Question
  • Updated 5 years ago
  • Answered
Natively, salesforce includes Notes directly related to the Account, as well as those related to child objects (at least Contacts as well).

Is this possible, using a condition to include Notes with the same Account ID as well as those associated with Contacts of that account?

Thanks,

Jacob
Photo of Jacob Flatter

Jacob Flatter

  • 1,512 Points 1k badge 2x thumb

Posted 5 years ago

  • 1
Photo of Zach McElrath

Zach McElrath, Employee

  • 49,056 Points 20k badge 2x thumb
Yes, this is possible by having 2 Conditions on your Notes object, and combining them with Condition Logic of "1 OR 2". The first Condition is Field from another Model, where ParentId = (Account)(Id), the 2nd Condition is Field from another Model where ParentId is one of the Ids of related Contacts for that Account --- so you will have to have a 2nd Contacts Model that retrieves Contacts for that Account.

Here's what your Conditions on the Notes model should look like:



And here's a screenshot of what an example page would look like. Notice that its showing Notes that are associated to both Genepoint Contacts, as well as for Genepoint itself:




Here is the XML for this sample page:


<skuidpage showsidebar="true" showheader="true" tabtooverride="Account">   <models>
      <model id="Account" limit="1" query="true" createrowifnonefound="false" sobject="Account">
         <fields>
            <field id="Name"/>
            <field id="CreatedDate"/>
         </fields>
         <conditions>
            <condition type="param" enclosevalueinquotes="true" operator="=" field="Id" value="id"/>
         </conditions>
      </model>
      <model id="Contacts" limit="100" query="true" createrowifnonefound="false" sobject="Contact">
         <fields>
            <field id="FirstName"/>
            <field id="LastName"/>
         </fields>
         <conditions>
            <condition type="modelmerge" value="" field="AccountId" operator="=" model="Account" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
         </conditions>
      </model>
      <model id="Notes" limit="100" query="true" createrowifnonefound="false" sobject="Note">
         <fields>
            <field id="Title"/>
            <field id="Body"/>
            <field id="ParentId"/>
            <field id="Parent.Name"/>
            <field id="OwnerId"/>
            <field id="Owner.Name"/>
         </fields>
         <conditions logic="1 OR 2">
            <condition type="modelmerge" value="" field="ParentId" operator="=" model="Account" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
            <condition type="modelmerge" value="" field="ParentId" operator="in" model="Contacts" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="deactivate"/>
         </conditions>
      </model>
   </models>
   <components>
      <pagetitle model="Account">
         <maintitle>
            <template>{{Name}}</template>
         </maintitle>
         <subtitle>
            <template>{{Model.label}}</template>
         </subtitle>
         <actions>
            <action type="delete"/>
            <action type="clone"/>
            <action type="share"/>
            <action type="savecancel" window="self"/>
         </actions>
      </pagetitle>
      <basicfieldeditor showsavecancel="false" showheader="true" model="Account" mode="read">
         <columns>
            <column width="50%">
               <sections>
                  <section title="Basics">
                     <fields>
                        <field id="Name"/>
                     </fields>
                  </section>
               </sections>
            </column>
            <column width="50%">
               <sections>
                  <section title="System Info">
                     <fields>
                        <field id="CreatedDate"/>
                     </fields>
                  </section>
               </sections>
            </column>
         </columns>
      </basicfieldeditor>
      <tabset rememberlastusertab="true" defertabrendering="true">
         <tabs>
            <tab name="Contacts">
               <components>
                  <skootable showconditions="true" showsavecancel="true" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" createrecords="true" model="Contacts" buttonposition="" mode="read">
                     <fields>
                        <field id="FirstName"/>
                        <field id="LastName"/>
                     </fields>
                     <rowactions>
                        <action type="edit"/>
                        <action type="delete"/>
                     </rowactions>
                     <massactions usefirstitemasdefault="true">
                        <action type="massupdate"/>
                        <action type="massdelete"/>
                     </massactions>
                     <views>
                        <view type="standard"/>
                     </views>
                  </skootable>
               </components>
            </tab>
            <tab name="Notes" loadlazypanels="true">
               <components>
                  <skootable showconditions="true" showsavecancel="true" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" createrecords="true" model="Notes" buttonposition="" mode="read">
                     <fields>
                        <field id="Title"/>
                        <field id="Body"/>
                        <field id="ParentId"/>
                        <field id="OwnerId"/>
                     </fields>
                     <rowactions>
                        <action type="edit"/>
                        <action type="delete"/>
                     </rowactions>
                     <massactions usefirstitemasdefault="true">
                        <action type="massupdate"/>
                        <action type="massdelete"/>
                     </massactions>
                     <views>
                        <view type="standard"/>
                     </views>
                  </skootable>
               </components>
            </tab>
         </tabs>
      </tabset>
   </components>
   <resources>
      <labels/>
      <css/>
      <javascript/>
   </resources>
</skuidpage>