DataSource Trouble with Dynamic Model on Site


  • Update:

    Oh, and we're still way back on 10.0.27 (v1).

  • Looks like setting up a dummy model to make sure the page has the right metadata was the trick. Thanks, Jer!

  • Hey Folks. I thought this was resolved by adding dummy models to my page so that Skuid could find the metadata for all the models that I need to create dynamically, but apparently that doesn't work now that Spring 21 is in full effect.

    What would cause a model to default back to "salesforce" as a dataSource instead of the defined datasource on a public site, but not anywhere else?

    Here's the relevant code:

    var modelObj = {};

          modelObj.dataSource = ? "siteSalesforce" : "salesforce";

          modelObj.objectName = 'Signature_Type__c';

 = "SignatureType_"+stname;

          modelObj.doQuery = true;

          modelObj.recordsLimit = 1;

          modelObj.preventUnloadIfUnsavedChanges = false;

          modelObj.fields = [

            {id: "Id"},

            {id: "Name"},

            {id: "Title__c"},

            {id: "Default_Style__c"},

            {id: "Signee__c"},

            {id: "Type_Lookup_Model__c"},

            {id: "Witness__c"},

            {id: "Witness_Signee__c"}


          modelObj.conditions = [


              type: 'fieldvalue',

              field: 'Name',

              operator: '=',

              value: stname,

              encloseValueInQuotes: true



          var model = new skuid.model.Model(modelObj);

    modelObj is getting defined correctly, with dataSource: "siteSalesforce" on a public site.

    But when I call skuid.model.Model(modelObj) the dataSource for the resulting model is "salesforce", not "siteSalesforce," which doesn't work on a public site.


  • Apparently defining the models with XML instead of the model object works! Thanks to @Walter Lowry for the direction. :)

    It's uglier, but it works:

    var modelXML = '<model id="'+stname.split(" ").join("")+'" datasource="'+

          ( ? 'siteSalesforce' : 'salesforce')+

          '" sobject="Signature_Type__c" query="true" limit="1" unloadwarningifunsavedchanges="false">'+


            '<field id="Id"/><field id="Name"/><field id="Title__c"/><field id="Default_Style__c"/>'+

            '<field id="Signee__c"/><field id="Type_Lookup_Model__c"/><field id="Witness__c"/><field id="Witness_Signee__c"/>'+


          '<conditions><condition type="fieldvalue" field="Name" operator="=" value="'+stname+'" enclosevalueinquotes="true"/>'+


    var model = new skuid.model.Model(skuid.utils.makeXMLDoc(modelXML));

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!