I'm new to VisualForce and to Java,
I have a custom object I created called "Inquery__c" And I have a few users on record,
I'm trying to allow only the users that exist in the "Inquery__c" to upload a file to Documents,
Here is the code
<apex:page controller="newCheck_and_upload" tabStyle="Opportunity">
<apex:sectionHeader title="Please Enter user information and upload LogFile"/>
<apex:messages />
<apex:form enctype="multipart/form-data">
<apex:pageBlock>
<apex:facet name="footer">
<apex:outputPanel >
<apex:commandButton action="{!save}" value="Check and Uplod" styleClass="btn"/>
</apex:outputPanel>
</apex:facet>
<apex:pageBlockSection title="User Information">
<apex:panelGrid columns="2">
<apex:outputLabel value="First Name" for="inqueryFirstName"/>
<apex:inputField id="inqueryFirstName" value="{!inquery.First_Name__c}"/>
<apex:outputLabel value="Last Name" for="inqueryLastName"/>
<apex:inputField id="inqueryLastName" value="{!inquery.Last_Name__c}"/>
<apex:outputLabel value="Email" for="inqueryEmail"/>
<apex:inputField id="inqueryEmail" value="{!inquery.Email__c}"/>
</apex:panelGrid>
</apex:pageBlockSection>
<apex:pageBlockSection title="Upload File">
<apex:panelGrid columns="2">
<apex:outputLabel for="file"/>
<apex:inputFile value="{!document.body}" filename="{!document.name}" id="file"/>
</apex:panelGrid>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
And the Class
public with sharing class newCheck_and_upload {
Inquery__c inquery;
public Boolean sFlag;
public Inquery__c getInquery() {
if(inquery == null) inquery = new Inquery__c();
return inquery;
}
public Document document {
get {
if (document == null)
document = new Document();
return document;
}
set;
}
public PageReference save() {
if(inquery == null) {
sFlag = false;
}else {
sFlag = true;
}
if(sFlag){
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'User Exists'));
// sFlag = false;
} else {
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'User Does not exist'));
//return null;
}
insert inquery;
document.AuthorId = UserInfo.getUserId();
document.FolderId = UserInfo.getUserId(); // put it in running user's folder
try {
insert document;
} catch (DMLException e) {
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading file'));
return null;
} finally {
document.body = null; // clears the viewstate
document = new Document();
}
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'File uploaded successfully'));
return null;
}
}
When I enter a user that exists or a user that does not exist (both ways) the file is never uploaded. This means that sFlag is never True.
When i try saving an existing file i get the following error:
System.DmlException: Insert failed. First exception on row 0; first error: DUPLICATE_VALUE, duplicate value found: Email__c duplicates value on record with id: a08K0000001XxV5: []
Error is in expression '{!save}' in component in page exist_upload.
.
This means that the "inquery == null" stament is not working,.
And it return null,.
But when it tries to save the account,.
it tells me that the account is a duplicate!!.
.
Does anyone know why?
Can someone please help?
Thanks