【问题标题】:REQUIRED_FIELD_MISSING, Required fields are missing: [Parent]: [Parent]REQUIRED_FIELD_MISSING,缺少必填字段:[父]:[父]
【发布时间】:2017-10-13 10:07:16
【问题描述】:

我正在尝试保存附件。附件已保存,但每当我打开 VFpage 时,都会出现以下错误:

插入失败。第 0 行的第一个异常;第一个错误:REQUIRED_FIELD_MISSING,缺少必填字段:[Parent]:[Parent]

我有 2 个 VFPages 这样做。一个是呈现为 PDF 的 VFPage,另一个是保存附件和加载呈现为 PDF 的 VFPage 的参考。这里有人知道如何解决这个错误吗?

这是 VFPage 供参考

这是 Apex 类:

public class attachPDFDocument{

public String parentId{get;set;}
public String curPage = ApexPages.currentPage().getParameters().get('id');

public String vrsn = 'AttachmentV';
public Integer vrsion;

public String attName {get;set;}
public String attNames {get;set;}
public String attNameSubString;
public String attNameSubStrings;
public Integer attCount;
public Integer attachCount;   

public attachPDFDocument(ApexPages.StandardController controller) {    

}

public PageReference pdfLoad(){   
      List<Attachment> pdfAttach = new List <Attachment>();
      PageReference pdf = Page.PDFAttachment;   

      List<Attachment> att = [SELECT Id, Name FROM Attachment where ParentId = :curPage Order by Name DESC]; //getting all attachments  

      //String attachName = att.Name;


      if(att.size() <= 0){             
          vrsion = 1;
      }else if(att.size() <= 9){

          Attachment attachmentPDF = att[0];
          attName = attachmentPDF.Name;  // yung latest Version
          attNameSubString = attName.subString(35,36);
          vrsion = Integer.valueOf(attNameSubString) + 1;     
      }else if(att.size() > 9){                                   

          List<Attachment> attachPDFDoc = [SELECT Id, Name FROM Attachment where ParentId = :curPage AND Name LIKE '___________' ORDER BY Name DESC LIMIT 1]; //getting all attachments with length is 41                  
          Attachment docpdf= attachPDFDoc[0];
          String pdfdoc = docpdf.Name;                
          attNameSubString = pdfdoc.subString(35,37);            
          vrsion = Integer.valueOf(attNameSubString) + 1; 
       }else if(att.size() > 99){                                   

          List<Attachment> attachPDFDoc = [SELECT Id, Name FROM Attachment where ParentId = :curPage AND Name LIKE '___________' ORDER BY Name DESC LIMIT 1]; //getting all attachments with length is 41                  
          Attachment docpdf= attachPDFDoc[0];
          String pdfdoc = docpdf.Name;                
          attNameSubString = pdfdoc.subString(35,38);            
          vrsion = Integer.valueOf(attNameSubString) + 1; 
       }

      Attachment attach = new Attachment();
      Blob body;

      try {
          body= pdf.getContent();            
      } catch (VisualforceException e) {
          body= Blob.valueOf(e.getMessage());
      } 

      attach.Body = body ;           
      attach.IsPrivate = false;        
      attach.ContentType = '/application/pdf';
      attach.ParentId = ApexPages.currentPage().getParameters().get('id');
      attach.Name = vrsn + vrsion + '.pdf';

      insert attach;
      return pdf;           
    }

}

【问题讨论】:

    标签: pdf salesforce attachment visualforce apex


    【解决方案1】:

    你有没有调试过这一行 ApexPages.currentPage().getParameters().get('id');看到它返回一个实际的ID?检查 attach.parentid 不为空。

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 2021-10-03
      • 2018-07-19
      相关资源
      最近更新 更多