【问题标题】:Iframe issue: Salesforce not fetching parent in SOQL nested queryiframe 问题:Salesforce 未在 SOQL 嵌套查询中获取父级
【发布时间】:2016-11-28 12:19:45
【问题描述】:

情况:您好,我有一个运行良好的查询,并且仅在 salesforce vf 页面中符合预期。

问题从 iframe 调用时,它返回的输出没有其父对象。

apex中的代码:

public class showServiceHistory {
CKSW_BASE__Service__c services;
String id = ApexPages.currentPage().getParameters().get('id');
String x;
public myValues()
{
    services = [SELECT id, name, (SELECT Name, Previous_Status__c, New_Status__c, Reason_Code__c, comment__c FROM Service_Status_History__r) FROM CKSW_BASE__Service__c WHERE id=:id];           
}
public String getxx()
{
    x=JSON.Serialize(services);
    return x;   
}
}

VF 中的代码

< apex:page controller="myValues" >

< apex:pageBlock title="{!xx}" >

< /apex:pageBlock >

< /apex:page >

来自 Salesforce 的输出

{"attributes":{"type":"CKSW_BASE__Service__c","url":"/services/data/v38.0/sobjects/CKSW_BASE__Service__c/sss"},"Id":"s","Name":"S","Service_Status_History__r":{"totalSize":6,"done":true,"records":[{"attributes":{"type":"Service_Status_History__c","url":"/services/data/v38.0/sobjects/Service_Status_History__c/ss"},"Service__c":"asss","Id":"uu","Name":"yyy","Previous_Status__c":"xyz","New_Status__c":"y","Reason_Code__c":"xyz","Comment__c":"abc"}]}

iframe 的输出

{"attributes":{"type":"CKSW_BASE__Service__c","url":"/services/data/v38.0/sobjects/CKSW_BASE__Service__c/444"},"Id":"444","Name" :"xyz"}

Vf 页面我得到所需的完整值输出,但从我的 force.com url 中的 iframe 父对象(嵌套查询)不可用 .

但是,当我使用简单的专用查询仅调用父级时,它返回 both(iframe 和 url) 中的值 ) 地点。

为什么我的嵌套 SOQL 无法获取父对象。我在这里错过了什么??

提前致谢。 请帮忙。

Iframe 的输出

【问题讨论】:

    标签: salesforce apex-code visualforce apex salesforce-communities


    【解决方案1】:

    你检查过你的 FLS 吗?

    构建 -> 开发 -> 站点 -> -> 公共访问设置

    这是 Force.com 上大多数时候结果的罪魁祸首。

    【讨论】:

      【解决方案2】:

      是的,我已经检查过了,它授予了公共访问权限。甚至我也能 在以 JSON 格式转换和打印时看到它们。但我看不到 如果以解析对象形式打印,则它们在 iframe 中。

      因此它通过以 Json 字符串格式发送值和通过 在那里解析它。

      在虚拟页面中

      <apex:page Controller="showServiceHistory" sidebar="false" showheader="false">
      <html>
          <head>
          <!--<meta http-equiv="refresh" content="20" ></meta> -->
      
      </head>
      <a id="history_data" style="display:none;">{!history}</a>
      <a id="service_data" style="display:none">{!service}</a>
      <style>
          table {
              width: 100%;
          }
      
          table,
          th,
          td {
              border-collapse: collapse;
              color: #3088D0;
          }
      
          th,
          td {
              padding: 5px;
              text-align: left;
              color: #1F497D;
          }
      
          tr {
              //color: #337AB7;
          }
      
          table#t01 tr:nth-child(even) {
              background-color: #DCE6F1;
              //color: #337AB7;
          }
      
          table#t01 tr:nth-child(odd) {
              background-color: #fff;
          }
      
          table#t01 th {
              background-color: #B8CCE4;
              //color: #000015;
          }
      
          a:link {
              color: #62B3E2;
          }
      
          a:visited {
              color: #62B3E2;
          }
      </style>
      
      
      <table id="t01">
          <thead>
              <tr>
                  <th>
                      Name
                  </th>
      
                  <th>
                      Previous Status
                  </th>
                  <th>
                      New Status
                  </th>
                  <th>
                      Comment
                  </th>
              </tr>
          </thead>
          <tbody id="show_values">
          </tbody>
      
      </table>
      <script>
          function x()
          {
          var history={}; var service={};
          history=JSON.parse(document.getElementById("history_data").innerHTML); 
          service=JSON.parse(document.getElementById("service_data").innerHTML); 
          var show='';
              for(var i=0;i<history.length;i++)
              {
                 show=show+'<tr><td>'+history[i].Name+'</td><td>'+history[i].Previous_Status__c+'</td><td>'+history[i].New_Status__c+'</td><td>'+history[i].Comment__c+'</td><td>'+service.CKSW_BASE__Location__c+'</td></tr>';
              }
                  document.getElementById("show_values").innerHTML=document.getElementById("show_values").innerHTML+show;
          }
          x();
      </script>
      </html>
      

      在顶级代码页中

      public class showServiceHistory {
      List<Service_Status_History__c> histories;
      String x;
      CKSW_BASE__Service__c services;
      String id = ApexPages.currentPage().getParameters().get('id');
       public showServiceHistory()
      {
          services = [SELECT CKSW_BASE__Resource__c, CKSW_BASE__Location__c, (SELECT Name, Previous_Status__c, New_Status__c, comment__c FROM Service_Status_History__r) FROM CKSW_BASE__Service__c WHERE id=:id];         
          histories = services.Service_Status_History__r;
      }
      public String getService()
      {
          return JSON.Serialize(services);   
      }
      public String getHistory()
      {
          return JSON.Serialize(histories);
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多