REQUIRED_FIELD_MISSING,缺少必填字段:[Parent]:[Parent]
问题描述:
我正在尝试保存附件。附件已保存,但每当我打开VF页面时,都会出现以下错误:REQUIRED_FIELD_MISSING,缺少必填字段:[Parent]:[Parent]
插入失败。第0行的第一个例外;第一个错误:REQUIRED_FIELD_MISSING,缺少必填字段:[Parent]:[Parent]
我有2个VFPage这样做。一个是VFPage呈现为PDF,另一个仅仅是保存附件和加载VFPage呈现为PDF的参考。有没有人在这里有关于如何解决这个错误的想法?
这是VFPage参考
这里是顶点类:。
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;
}
}
答
你有没有调试此行ApexPages.currentPage()getParameters()得到( '身份证');看到它正在返回一个实际的ID?检查attach.parentid是否为空。