Files we upload today now showing on Content Document table but upload is successful

  • 1
  • Problem
  • Updated 3 months ago
  • Solved
Hi,
File Upload model "In Content Document" seems to work well as I can see the new files upload when I switch to standard SF oppty page but when I come back to skuid oppty page new files we uploaded today are not showing on Content Document table.
I can see file uploads we did yesterday or the days before but not the ones from today.
Any idea ?
Thank you
Cyril.  
Photo of Cyril.D

Cyril.D

  • 472 Points 250 badge 2x thumb

Posted 3 months ago

  • 1
Photo of Matthew Leahy

Matthew Leahy, Employee

  • 592 Points 500 badge 2x thumb
Hi Cyril,

Off the top of my head, do you have any model conditions that would prevent today showing? Are you able to post your page?

Thanks.
Photo of Cyril.D

Cyril.D

  • 472 Points 250 badge 2x thumb
Thank you Matthew for your quick reply.
By doing more testing today, it seems to show on Content Table from Skuid Oppty page only the first file I have attached to the oppty. When I try to upload a second file to the same oppty it will not show the new upload on table. But when I look at the same oppty using standard SF oppty page I can see the first and the second file upload were both successful.
Below is the xml showing the relationship I have tried to build  between opportunity object, Content document link and Content Document.
Thank you.
Cyril 

xml example:

<skuidpage showheader="true" personalizationmode="server" showsidebar="true" unsavedchangeswarning="yes" tabtooverride="Opportunity">
    <models>
        <model id="Opportunity" limit="20" query="true" createrowifnonefound="false" sobject="Opportunity" doclone="" datasource="salesforce">
            <fields>
                <field id="Opp_Number__c"/>
                <field id="Owner.Name"/>
                <field id="Name"/>
                <field id="Account.Name"/>
                <field id="Id"/>
                <field id="OwnerId"/>
                <field id="AccountId"/>
                <field id="CurrencyIsoCode"/>
                <field id="RecordType.Id"/>
                <field id="RecordID__c"/>
                <field id="RecordTypeId"/>
                <field id="RecordType.Name"/>
                <field id="NOW_Incentive_Override__c"/>
                <field id="ContentDocumentLinks" type="childRelationship" limit="10">
                    <fields>
                        <field id="ContentDocumentId"/>
                        <field id="Id"/>
                        <field id="LinkedEntityId"/>
                    </fields>
                </field>
                <field id="AttachedContentNotes" type="childRelationship" limit="10"/>
                <field id="AttachedContentDocuments" type="childRelationship" limit="10">
                    <fields>
                        <field id="Id"/>
                        <field id="ContentDocumentId"/>
                        <field id="LinkedEntityId"/>
                    </fields>
                </field>
            </fields>
            <conditions>
                <condition type="param" value="id" enclosevalueinquotes="true" field="Id" operator="=" novaluebehavior="" state=""/>
            </conditions>
            <actions/>
        </model>
        <model id="ContentDocumentLink" limit="20" query="false" createrowifnonefound="false" datasource="salesforce" sobject="ContentDocumentLink">
            <fields>
                <field id="ContentDocumentId"/>
                <field id="ContentDocument.Title"/>
                <field id="Id"/>
                <field id="LinkedEntityId"/>
                <field id="LinkedEntity.Name"/>
            </fields>
            <conditions>
                <condition type="modelmerge" value="" field="LinkedEntityId" fieldtargetobjects=" ContentWorkspace,Opportunity,skuid__Auth_Provider_Credential__c,skuid__Auth_Provider__c,skuid__Component_Pack__c,skuid__Data_Service__c,skuid__Encryption_Settings__c,skuid__Feedback_Response__c,skuid__Feedback__c,skuid__Image__c,skuid__Loader_Service_Modstamp__c,skuid__Model_Service_Adapter__c,skuid__Model_Service_Credential__c,skuid__Model_Service__c,skuid__Page_Assignment__c,skuid__Page_Interaction__c,skuid__Page_Version__c,skuid__Page__c,skuid__Personalization_Settings__c,skuid__Preferences__c,skuid__Theme__c,zisf__FmcDefaultValue__c,zisf__ZoomInfo_Custom_Settings__c" operator="=" model="Opportunity" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="deactivate"/>
            </conditions>
            <actions/>
        </model>
        <model id="ContentDocument" limit="20" query="false" createrowifnonefound="false" datasource="salesforce" sobject="ContentDocument" orderby="CreatedDate DESC">
            <fields>
                <field id="Id"/>
                <field id="CreatedDate"/>
                <field id="CreatedBy.Name"/>
                <field id="LatestPublishedVersion.ContentDocument.Title"/>
                <field id="LatestPublishedVersion.FileExtension"/>
            </fields>
            <conditions>
                <condition type="modelmerge" value="" field="Id" operator="=" model="ContentDocumentLink" enclosevalueinquotes="true" mergefield="ContentDocumentId" novaluebehavior="noquery" fieldtargetobjects="ContentDocument"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <pagetitle uniqueid="sk-1bnMCy-318" model="Opportunity">
            <subtitle>{{AccountId}}</subtitle>
            <actions>
                <action type="savecancel" window="self" afterSave="" afterCancel="" uniqueid="sk-3Bdz-213">
                    <models/>
                </action>
            </actions>
            <renderconditions logictype="and"/>
            <maintitle>{{Name}}</maintitle>
        </pagetitle>
        <tabset uniqueid="sk-1bnMCz-319" defertabrendering="true" rememberlastusertab="false">
            <tabs>
                <tab icon="sk-icon-opportunities" name="Oppty Information">
                    <components>
                        <tabset uniqueid="sk-1bnMCz-320" label="" renderas="radio" defertabrendering="true" rememberlastusertab="false">
                            <tabs>
                                <tab name="General">
                                    <components>
                                        <basicfieldeditor layout="" uniqueid="sk-1bnMCz-321" model="Opportunity" showerrorsinline="true" mode="edit" showheader="true" showsavecancel="false">
                                            <columns layoutmode="fixed">
                                                <column width="50%">
                                                    <sections>
                                                        <section title="General Information" collapsible="open" cssclass="">
                                                            <fields>
                                                                <field required="true" id="AccountId" optionsource="" displaytemplate="{{Name}}" searchtemplate="{{Name}}" pagesize="5" uniqueid="sk-3Bdz-239">
                                                                    <label>Account Name</label>
                                                                    <searchfields>
                                                                        <searchfield field="Name" operator="contains" query="true" show="true" return="true"/>
                                                                        <searchfield field="BillingCity" operator="contains" query="true" show="true" return="true"/>
                                                                        <searchfield field="BillingCountry" operator="contains" query="true" show="true" return="true"/>
                                                                        <searchfield field="BillingState" operator="contains" query="true" show="true" return="true"/>
                                                                        <searchfield field="BillingPostalCode" operator="contains" query="true" show="true" return="true"/>
                                                                        <searchfield query="true" return="true" show="true" field="AccountTerritory__c" operator="contains"/>
                                                                    </searchfields>
                                                                    <filters/>
                                                                    <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                    <enableconditions/>
                                                                </field>
                                                                <field id="Opp_Number__c" uniqueid="sk-3Bdz-245"/>
                                                                <field id="Name" uniqueid="sk-3Bdz-251">
                                                                    <label>Opportunity Name</label>
                                                                </field>
                                                            </fields>
                                                        </section>
                                                        <section title="New Section" showheader="false" collapsible="no">
                                                            <fields/>
                                                        </section>
                                                        <section title="Next Step" showheader="false" collapsible="no">
                                                            <fields/>
                                                        </section>
                                                    </sections>
                                                </column>
                                                <column width="50%">
                                                    <sections>
                                                        <section title="Ownership" collapsible="no">
                                                            <fields>
                                                                <field id="OwnerId" optionsource="" displaytemplate="{{Name}}" searchtemplate="{{Name}}" uniqueid="sk-3Bdz-305">
                                                                    <label>Owner Name</label>
                                                                    <searchfields/>
                                                                </field>
                                                            </fields>
                                                        </section>
                                                        <section title="_" showheader="false" collapsible="no">
                                                            <fields/>
                                                        </section>
                                                    </sections>
                                                    <renderconditions logictype="and"/>
                                                </column>
                                            </columns>
                                            <renderconditions logictype="and"/>
                                        </basicfieldeditor>
                                    </components>
                                    <oninitialshowactions/>
                                    <onshowactions/>
                                    <renderconditions logictype="and"/>
                                </tab>
                            </tabs>
                        </tabset>
                    </components>
                    <oninitialshowactions/>
                    <onshowactions/>
                    <renderconditions logictype="and"/>
                </tab>
                <tab name="Attachments" loadlazypanels="true" icon="sk-icon-attachments">
                    <components>
                        <basicfieldeditor showheader="true" showsavecancel="true" showerrorsinline="true" model="ContentDocument" uniqueid="sk-3gpx-2960" mode="read">
                            <columns layoutmode="fixed"/>
                        </basicfieldeditor>
                        <template multiple="true" uniqueid="sk-3h5G-3427" model="ContentDocument" allowhtml="true">
                            <contents>&lt;div class="nx-editor-header-title"&gt;Attach File&lt;/div&gt;</contents>
                            <renderconditions logictype="and"/>
                        </template>
                        <file storeas="contentdocumentwithrecord" displayas="filename" uniqueid="sk-3h5d-3483" datasource="salesforce" model="Opportunity">
                            <uploadsuccessactions>
                                <action type="requeryModels" behavior="standard">
                                    <models>
                                        <model>Opportunity</model>
                                        <model>ContentDocumentLink</model>
                                        <model>ContentDocument</model>
                                    </models>
                                </action>
                            </uploadsuccessactions>
                            <uploadfailureactions/>
                            <renderconditions logictype="and"/>
                        </file>
                        <skootable showconditions="true" showsavecancel="false" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="10" alwaysresetpagination="false" createrecords="false" model="ContentDocument" mode="read" allowcolumnreordering="false" responsive="false" uniqueid="sk-3hAU-3650" emptysearchbehavior="query">
                            <fields>
                                <field id="CreatedDate" hideable="true" uniqueid="fi-3hOK-3761"/>
                                <field id="CreatedBy.Name" hideable="true" uniqueid="fi-3hPP-4066"/>
                                <field id="LatestPublishedVersion.ContentDocument.Title" hideable="true" uniqueid="fi-3hOT-3797"/>
                                <field id="LatestPublishedVersion.FileExtension" hideable="true" uniqueid="fi-3hOb-3823"/>
                            </fields>
                            <rowactions>
                                <action type="edit"/>
                                <action type="delete"/>
                                <action type="redirect" label="Download File" icon="sk-icon-attachments" window="blank" url="/{{Id}}"/>
                            </rowactions>
                            <massactions usefirstitemasdefault="true">
                                <action type="massupdate"/>
                                <action type="massdelete"/>
                            </massactions>
                            <views>
                                <view type="standard"/>
                            </views>
                            <searchfields/>
                            <renderconditions logictype="and"/>
                        </skootable>
                    </components>
                    <oninitialshowactions>
                        <action type="requeryModels" behavior="standard">
                            <models>
                                <model>Attachment</model>
                                <model>ContentDocumentLink</model>
                                <model>ContentDocument</model>
                            </models>
                        </action>
                    </oninitialshowactions>
                    <onshowactions/>
                </tab>
            </tabs>
        </tabset>
    </components>
    <resources>
        <labels/>
        <javascript>
            <jsitem url="" name="markCompleted" location="inline" cachelocation="false">skuid.snippet.registerSnippet('tasks.markCompleted',function(params){
    console.log('test');
    // Mark all selected items as closed,
    // then save our 2 Tasks models
    var model = params.model,
        list = params.list,
        selectedItems = params.item ? [params.item] : list.getSelectedItems();
    if (selectedItems.length === 1 &amp;&amp; skuid.model.isNewId(selectedItems[0].row.Id)) {
        alert('Please finish creating this Task before marking it as completed.');
        return;
    }
    $j.each(selectedItems,function(i,item){
        model.updateRow(item.row,'Status','Completed');
    });
    // Block the list from having updates
   list.element.block({
        css: list.blockUICSS, overlayCSS: list.blockOverlayCSS,
        message:'Marking Tasks as Completed...'
    });
    var saveFinishes = model.save({callback:
        function(){
            var updateFinishes = skuid.model.updateData([model,skuid.model.getModel('TaskHistory')]);
            $j.when(updateFinishes).then(
                function(){ list.element.unblock(); },
                function(){ list.element.unblock(); }
            );
        }
    });
});</jsitem>
            <jsitem name="RealFieldName" location="inlinesnippet" cachelocation="false">var field = arguments[0],
                value = arguments[1],
                $ = skuid.$;
            var fieldNameLabelmap = {};    
            var modelFields = skuid.$M('Opportunity').fields;
            
            $.each(modelFields, function(i,f){
               fieldNameLabelmap[f.id] = f.label;    
            });
            skuid.ui.fieldRenderers.TEXT[field.mode](field, fieldNameLabelmap[value]);</jsitem>
        </javascript>
        <css/>
        <actionsequences uniqueid="sk-3h3Q-3163"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>

Photo of Matthew Leahy

Matthew Leahy, Employee

  • 592 Points 500 badge 2x thumb
Cyril,

Take a look at this sample page. The page showcases file upload functionality on a Contact. I hope it gets you there. Please let us know either way.

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true">    <models>
        <model id="Contact" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Contact">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
            </fields>
            <conditions>
                <condition type="param" value="id" field="Id" operator="=" enclosevalueinquotes="true"/>
            </conditions>
            <actions/>
        </model>
        <model id="ContentDocumentLinkList" limit="20" query="true" createrowifnonefound="false" datasource="salesforce" sobject="ContentDocumentLink">
            <fields>
                <field id="Id"/>
                <field id="ContentDocumentId"/>
                <field id="ContentDocument.Title"/>
                <field id="LinkedEntityId"/>
                <field id="LinkedEntity.Name"/>
                <field id="ContentDocument.Id"/>
                <field id="ContentDocument.LatestPublishedVersionId"/>
                <field id="ContentDocument.LatestPublishedVersion.Id"/>
                <field id="ContentDocument.LatestPublishedVersion.Title"/>
                <field id="ContentDocument.LatestPublishedVersion.IsLatest"/>
            </fields>
            <conditions>
                <condition type="modelmerge" value="" field="LinkedEntityId" fieldtargetobjects="Contact" operator="=" model="Contact" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
                <condition type="fieldvalue" value="true" enclosevalueinquotes="false" field="ContentDocument.LatestPublishedVersion.IsLatest" operator="="/>
            </conditions>
            <actions/>
        </model>
        <model id="ContentDocumentList" limit="20" query="true" createrowifnonefound="false" datasource="salesforce" sobject="ContentDocument">
            <fields>
                <field id="Id"/>
                <field id="Title"/>
                <field id="ContentSize"/>
                <field id="PublishStatus"/>
                <field id="FileType"/>
                <field id="FileExtension"/>
            </fields>
            <conditions>
                <condition type="modelmerge" value="" field="Id" operator="in" model="ContentDocumentLinkList" enclosevalueinquotes="true" mergefield="ContentDocumentId" novaluebehavior="deactivate" fieldtargetobjects="ContentDocument"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <wrapper uniqueid="sk-2Cxq-427">
            <components>
                <pagetitle uniqueid="sk-277X-259" model="Contact">
                    <maintitle>
                        <template>{{Name}}</template>
                    </maintitle>
                    <actions>
                        <action type="savecancel" label="New Button" uniqueid="sk-277X-426"/>
                    </actions>
                    <renderconditions logictype="and"/>
                </pagetitle>
                <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="Contact" uniqueid="sk-277X-265" mode="read">
                    <columns>
                        <column width="50%">
                            <sections>
                                <section title="Contact" collapsible="no">
                                    <fields>
                                        <field uniqueid="sk-277X-413" id="Name"/>
                                    </fields>
                                </section>
                            </sections>
                        </column>
                        <column width="50%">
                            <sections/>
                        </column>
                    </columns>
                </basicfieldeditor>
                <richtext multiple="false" uniqueid="sk-2Cxq-290">
                    <contents>&lt;p style="text-align: center;"&gt;&lt;span style="font-size:18px;"&gt;&lt;strong&gt;Click to Browse or Drag File to Upload&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
</contents>
                </richtext>
                <grid uniqueid="sk-2Cxq-312">
                    <divisions>
                        <division behavior="flex" minwidth="100px" ratio="1" verticalalign="center">
                            <components/>
                        </division>
                        <division behavior="fit" verticalalign="center">
                            <components>
                                <wrapper uniqueid="sk-2Cxq-349">
                                    <components>
                                        <file storeas="contentdocumentwithrecord" displayas="filename" uniqueid="sk-277X-278" datasource="salesforce" model="Contact" label="File Component">
                                            <uploadsuccessactions>
                                                <action type="requeryModels" model="ContentDocumentLinkList" behavior="standard">
                                                    <onerroractions>
                                                        <action type="blockUI" message="There was an error loading content..." timeout="3000"/>
                                                    </onerroractions>
                                                    <models>
                                                        <model>ContentDocumentLinkList</model>
                                                        <model>ContentDocumentList</model>
                                                    </models>
                                                </action>
                                            </uploadsuccessactions>
                                            <uploadfailureactions/>
                                        </file>
                                    </components>
                                    <styles>
                                        <styleitem type="background"/>
                                        <styleitem type="border" padding="bottom,top,">
                                            <styles>
                                                <styleitem property="padding-top" value="8px"/>
                                                <styleitem property="padding-bottom" value="8px"/>
                                                <styleitem property="box-sizing" value="border-box"/>
                                            </styles>
                                        </styleitem>
                                        <styleitem type="size"/>
                                    </styles>
                                </wrapper>
                            </components>
                        </division>
                        <division behavior="flex" verticalalign="center" minwidth="100px" ratio="1">
                            <components/>
                        </division>
                    </divisions>
                    <styles>
                        <styleitem type="background" bgtype="none"/>
                    </styles>
                </grid>
                <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" alwaysresetpagination="false" createrecords="true" model="ContentDocumentLinkList" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-1hoPiG-450">
                    <fields>
                        <field id="ContentDocumentId" hideable="true" uniqueid="fi-1hoTsA-474">
                            <label>Content Document Reference</label>
                        </field>
                        <field id="ContentDocument.Title" hideable="true" uniqueid="fi-27AG-592"/>
                        <field id="LinkedEntityId" hideable="true" uniqueid="fi-1hoTsA-475"/>
                        <field type="COMBO" hideable="true" uniqueid="fi-2ooSE_-1827" allowhtml="true">
                            <label>Download</label>
                            <template>&lt;a target="_blank" href="/sfc/servlet.shepherd/version/download/{{{ContentDocument.LatestPublishedVersionId}}}"&gt;{{{ContentDocument.Title}}}&lt;/a&gt;</template>
                        </field>
                        <field type="IMAGE" hideable="true" uniqueid="fi-118N-1486" columnwidth="240px">
                            <label>Image</label>
                            <url>/sfc/servlet.shepherd/version/renditionDownload?rendition=THUMB240BY180&amp;versionId={{{ContentDocument.LatestPublishedVersionId
}}}</url>
                        </field>
                    </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>
                <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" alwaysresetpagination="false" createrecords="true" model="ContentDocumentList" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-1hq17M-1025">
                    <fields>
                        <field id="Id" hideable="true" uniqueid="fi-1hq5eS-1080"/>
                        <field id="Title" hideable="true" uniqueid="fi-27AG-639"/>
                    </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>
            <styles>
                <styleitem type="background"/>
                <styleitem type="border" padding="all">
                    <styles>
                        <styleitem property="padding" value="32px"/>
                        <styleitem property="box-sizing" value="border-box"/>
                    </styles>
                </styleitem>
                <styleitem type="size"/>
            </styles>
        </wrapper>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-272Q-262"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>


Photo of Cyril.D

Cyril.D

  • 472 Points 250 badge 2x thumb
Matthew ,
This seems to work like a charm now.
I was missing the second condition on Contentdocumentlink model "ContentDocumentLink records where ContentDocument.LatestPublishedVersion.IsLatest".
I was also missing "is in the set of values" instead of "equals" by mistake on the "Content Document" model condition.
Other than that I was pretty closed :)
Thank you again for the fast support.
Cyril   
Photo of Matthew Leahy

Matthew Leahy, Employee

  • 592 Points 500 badge 2x thumb
Great news for my Tuesday.