Monday, April 6, 2020

FreeCodeCamp

Learn Web Designing From #FreeCodeCamp

Hi My Dear Friends,

Today I would like to share an Information about How to Improve Programming Skills (For Beginners and Professionals)
If you are looking your career in Web Development, then this is for you.
Learn Web Designing like HTML, CSS, Java Script from Scratch with some Real Challenges.

#FreeCodeCamp is similar to Trailhead in Salesforce.
Some Key Information about #FreeCodeCamp is The Beginners can learn the Programming from basics.

Just Follow Below Steps To Begin:
Step 1: SignUp & Start Learning at FreeCodeCamp.
Click on the URL https://www.freecodecamp.org/ to signup.
You can directly register with Google Account, Github, Facebook or Email.
Step 2: After Registration, Start Leaning...
Complete Modules Step By Step.

Interesting Fact is you can also Earn Certifications by completing the Challenges and Task's.

1. Responsive Web Design Certification.
πŸ‘‰Basic HTML and HTML 5
πŸ‘‰Basic CSS
πŸ‘‰Applied Visual Design
πŸ‘‰Applied Accessibility
πŸ‘‰Responsive Web Designing Principles
πŸ‘‰CSS Flexbox
πŸ‘‰CSS Grid
πŸ‘‰Responsive Web Designing Projects
2. Java Script Algorithms and Data Structures Certifications.
πŸ‘‰Basic JavaScript
πŸ‘‰ES6
πŸ‘‰Regular Expressions
πŸ‘‰Debugging
πŸ‘‰Basic Data Structures
πŸ‘‰Basic Algorithm Scripting
πŸ‘‰Object Oriented Programming
πŸ‘‰Functional Programming
πŸ‘‰Intermediate Algorithm Scripting
πŸ‘‰JavaScript Algorithm and Data Structures Projects
3. Front End Libraries Certification.
πŸ‘‰Bootstrap
πŸ‘‰jQuery
πŸ‘‰Sass
πŸ‘‰React
πŸ‘‰Redux
πŸ‘‰React and Redux
πŸ‘‰Front End Libraries Projects
4. Data Visualization Certification.
πŸ‘‰Data Visualization with D3
πŸ‘‰JSON APIs and AJAX
πŸ‘‰Data Visualization Projects
5. API's and Micro Services Certification.
πŸ‘‰Manage Packages with Npm
πŸ‘‰Basic Node and Express
πŸ‘‰MangoDB and Mongoose
πŸ‘‰APIs and Micro Services Projects
6. Information Security and Quality Assurance Certification.
πŸ‘‰Information Security with HelmetJS
πŸ‘‰Quality Assurance and Testing with Chai
πŸ‘‰Advance Node and Express
πŸ‘‰ Information Security and Quality Assurance Projects.

Wednesday, March 4, 2020

Platform Developer I Certification Maintenance (Winter '20)

Unit : Platform Developer I Certification Maintenance (Winter' 20)

UNIT : Learn What's New For App Builders in Winter 20:-
1. When including a Visualforce page component in a Lightning Page using Lightning App Builder, which action hides the default label for the Visualforce page?
A. Toggle the Label flag to Off.
B. Deselect the Show Label option.
C. Clear the Description field for the component.
D. Visualforce labels are hidden by default when using Lightning App Builder.
2. A developer needs to make changes to a custom field and associated Apex classes and triggers. How can the developer quickly determine which Apex classes and triggers use the field?
A. Run a report on the custom field.
B. Use the new ApexSettings metadata field.
C. Access the System Overview information from Setup.
D. On the custom field's detail page, click Where is this used?

3. A developer is preparing to install a managed package that will create several new custom objects. What should the developer do to understand how many objects can be created prior to reaching the allowed limit for the org?
A. Run a report to show the number of active custom objects in the org.
B. Select Custom Objects from the dropdown menu in Schema Builder to see the number of custom objects.
C. Look at the number of custom objects and custom settings in the System Overview information.
D. Determine the difference between 2500, the maximum number of custom objects, and the number of custom objects that currently exist in the org.
4. Which ApexSettings metadata field enables serial execution of Apex tests?
A. enableGaplessTest
B. enableSerialApexTesting
C. enableParallelApexTesting
D. enableDisableParallelApexTesting
5. With the Winter '20 release, which type of callout is now excluded from the concurrent long-running request limit?
A. SOQL
B. Apex triggers
C. API Calls to an Apex class
D. Apex code that sends an HTTP request.


UNIT : Get Hands-on Creating Custom Tabs for Lightning Web Components.

NOTE: To Complete this Maintenance Exam, You have to Make Sure You have already completed below Trailhead Modules
Create a Lightning web component and add it as a custom tab in the App Launcher and navigation menu.

If you installed the unmanaged package, myComponent is already configured and ready to add as a custom tab.
Create a new Lightning web component:
Name: myComponent
Add a lightning-card to myComponent:
Title: Hello
Add a lightning-button to the Hello lightning-card (Note: make sure the button lives in the “actions” slot):
Label: New
Add a footer paragraph to the Hello lightning-card:
Text: Footnote
Add myComponent as a new custom tab:

Name: Words


Platform App Builder Certification Maintenance (Winter '20)

Unit : Platform App Builder Certification Maintenance (Winter '20)

UNIT : Learn What's New For App Builders in Winter 20:-

1. How can an App Builder organize components into collapsible sections on a home page?
A. Personalize the Navigation Bar
B. Use the Accordion component
C. Set the component visibility on the home page
D. Add a component to the App Launcher
2. What formula provides a workaround for daylight savings time values?
A. DATETIMEVALUE()
B. TIMENOW()
C. TIMEDATEVALUE()
D. DATEVALUE()
3. How many approval processes can be active for each object?
A. 300
B. 500
C. 1,000
D. 2,000
4. Sales reps want to see all the text in the Description column in the insert email template window. What solution can an App Builder recommend?
A. Clip Text
B. Wrap Text
C. Edit List View
D. Edit the Template
5. How many custom objects can an App Builder create?
A. 1,000
B. 2,000
C. 3,000
D. 5,000
6. Where would an App Builder check to see a flow's scheduled start time?
A. Apex Jobs
B. Debug Logs
C. Flow Logs
D. Flow Builder Canvas
7. Custom notification types are created in what builder?
A. Notification Builder
B. Process Builder
C. Flow Builder
D. Approval Builder
8. An App Builder wants to Activate a Flow from the Flow Builder. Where is the Activate button located?
A. Canvas
B. Toolbox
C. Button Bar
D. Debug

UNIT : Get Hands-On with Record Page Component Visibility Rules Based on Device

Record Page Component Visibility Rules Based on DeviceCloud Kicks has a requirement to make the recommendation component visible on a Sales Rep's desktop. Build out a custom Lightning account page.
Before you begin, we strongly recommend creating a new Trailhead Playground. To do this, scroll to the bottom of this page, click the down arrow next to Launch, and select Create a Trailhead Playground. It typically takes 3–4 minutes for Salesforce to create your Trailhead Playground.
Note: Yes, we really mean a brand-new Trailhead playground! If you use an existing org or playground, you can run into problems completing the challenge.

Step 1: Create a new Lightning page: - Setup - In Quick find box search for Lightning App Builder- Click on Lightning App Builder.
Step 2: Click on New to create New Lightning Page. Create Page as Follows...
Page type: Record Page
Label: Account Page
Object: Account
Template: Clone Salesforce Default Page > Account Grouped View Default
Step 3: Add the Recommendations component to the page you created
Add a visibility filter on the Recommendations component:
Filter Type: Device
Field: Form Factor
Operator: Equal
Value: Desktop

Step 4: Save and activate the page for all users
Step 5: Assign the page as the org default

Administrator Certification Maintenance (Winter '20)

Unit : Administrator Certification Maintenance (Winter '20)

UNIT : Learn What's New For App Builders in Summer 19:-
1. What can an Administrator use to determine different levels of team member access to an Account?
A. Visualforce pages
B. Export account teams
C. Account team hierarchy
D. Report on account teams
2. An Administrator needs to automatically add account team members to an account. What tool can the Administrator use to meet this requirement?
A. Global Actions
B. Einstein Next Best Action
C. Process Builder
D. Lightning Web Components
3. What access does the Team Member Access button show when selected?
A. Maximum access
B. Global access
C. Controlled by parent access
D. Default access
4. Where would an Administrator go to customize the opportunity contact roles?
A. Setup > Object Manager > Contact
B. Setup > Object Manager > Opportunity Contact Role
C. Setup > Object Manager > Opportunity
D. Setup > User > Roles
5. Where can an Administrator find a sender signature field?
A. Page layouts
B. Formula field
C. Variable tags
D. Merge field picker
6. How many approval processes can be active in one org?
A. 300
B. 500
C. 1,000
D. 2,000
7. Which reference type is available when an Administrator uses the "Where is this used?" button on a field?
A. Formula Field
B. Email Template(Lightning)
C. Report Filter
D. URL Link

UNIT : Add Compliance Categorization to Your Contact Fields:-

Cloud Kicks needs to update their Contact field data to be in compliance with GDPR, PII, and HIPAA. Add compliance categorization to the contact fields.
Before you begin, we strongly recommend creating a new Trailhead Playground. To do this, scroll to the bottom of this page, click the down arrow next to Launch, and select Create a Trailhead Playground. It typically takes 3–4 minutes for Salesforce to create your Trailhead Playground.
Note: Yes, we really mean a brand-new Trailhead playground! If you use an existing org or playground, you can run into problems completing the challenge.
Add compliance categorization to the Email field:
Compliance Categorization: GDPR
Add compliance categorization to the Phone field:
Compliance Categorization: PII
Add compliance categorization to the Birthdate field:

Compliance Categorization: HIPAA

Step 1: Click on Setup – In Quick find box enter contacts – Click on Fields under contacts.
Step 2: Click on Edit, next to Email Field, Choose GDPR and Save.

Step 3: Click on Edit, next to Phone Field, Choose PII and save.

Step 4: Click on Edit, next to Birthdate Field, Choose HIPPA and save.

Thursday, October 17, 2019

Administrator Certification Maintenance (Summer '19)

Unit : Administrator Certification Maintenance (Summer '19)

UNIT : Learn What's New in Summer '19:-

1. An administrator needs to customize hyperlinks to match corporate branding. Which setting can the administrator set to assign custom colors to hyperlinks?
A. Use global header color.
B. Use brand-based color.
C. Use brand color.
D. Use theme-based color.

2. How can different Activities Views be used once the default Activities View is enabled by the administrator?
A. Users can toggle between Classic and Lightning.
B. The administrator can provide delegated access to specific users.
C. The administrator can apply specific permissions in a permission set.
D. Users can switch between preferences.
3. Which filter option can administrators recommend to help a manager filter on tasks for their team?
A. My team's tasks
B. My team's role
C. My tasks
D. My team's region
4. By how many levels can dashboard components be sorted?
A. 1
B. 2
C. 4
D. 5
E. 10
5. Which dashboard component should an administrator use to show subtotals?
A. Bar charts
B. Lightning table
C. Metric components
D. Stacked bar charts

UNIT : Get Hands-on with Inserting Images into Your Email Templates

TASK:-
Include images in your email templates
Make your email messages stand out by adding images to your email templates.
Step 1: Switch to Lightning.
Step 2: In Quick find box Search for Lightning Email Templates.
Enable Folders and Enhanced Sharing for Lightning Email Templates

Step 3: In order to access email template folders, you’ll need to add Email Templates as a tab in lightning.
Switch to Sales Application –Click on Personalize your navigation bar icon – Click on Add More Items - Click on All & Search for Email Templates – Select Email Template
Add Email Template Tab in Sales Application.
Click on Save
Step 4: Next after adding Email Template Tab, Click on Email Template Tab.

Next after adding Email Template Tab, Click on Email Template Tab.

Step 5: Click on New Folder, Enter Label as Sales & Save It
Step 6: After Creating the Folder Create New Template
Create an Email Template
Email Template Name: General
Folder: Sales
Subject: General
Insert an image

Platform App Builder Certification Maintenance (Summer '19)

Unit : Platform App Builder Certification Maintenance (Summer '19)

UNIT : Learn What's New For App Builders in Summer 19:-

1. Which attribute can an app builder use to make a dependent picklist screen component in flow screens required?
A. {!$GlobalConstant.DefaultValue}
B. {!$GlobalConstant.False}
C. {!$GlobalConstant.True}
D. {!$GlobalConstant.Required}

2. How can an app builder determine what flow type best meets a specific business process?
A. Flow Blocks
B. Flow Templates
C. Flow Interviews
D. Flow Reference

3. An app builder needs to notify an account owner of a new support case logged by a high-risk account. Which feature should the app builder use to send a custom notification to the account owner?
A. User workflow
B. Einstein Next Best Action
C. Chatter notifications
D. Notification Builder

4. Agents need to be able to see email attachments easily when reviewing cases. Which related list can the app builder add to the case page layout?
A. Files related list
B. Attachments related list
C. Email related list
D. Source related list

5. Where should an app builder go to create a Lightning letterhead after enabling enhanced letterheads for Lightning email templates?
A. Setup > Email
B. Setup > Lightning Email Templates
C. Setup > Letterheads
D. App Launcher > Email Templates
E. App Launcher > Enhanced Letterhead

UNIT : Get Hands-on with Sales Milestones Confetti
Celebrate Sales Milestones with Path Help your teams celebrate their successes with virtual confetti when sales reps reach a designated path stage.

Step 1: Setup a Path 
Click on Setup - In Quickfind box search for Path Settings, Click on Path Settings, Enable the Path Settings(If You are doing for the First Time), Else Click on New Path. Enter the details as below.
Path Name: Milestones
Object: Opportunity
Record Type: Master
Picklist: Stage
Click Next in Step 2; we don't need to configure guidance for success

Step 2: Enable confetti
Selected for Celebration: Closed Won
Celebration Frequency: Always
Ensure the path is Active and then click Finish

Step 3: Create Opportunity
Create an opportunity:
Opportunity Name: Big Deal
Closed Date: Enter today’s date (we won’t check for this)
Stage: Prospecting
Step 4: Change the Stage To Closed Won.
Use path to set the current stage of the Big Deal opportunity to Closed Won

Platform Developer I Certification Maintenance (Summer '19)

Unit : Platform Developer I Certification Maintenance (Summer '19)

UNIT : Learn What’s New for Platform Developers in Spring ’19:-

1. What allows Flows to manipulate complex data types that are often returned from calls to web services?
A. Screen components
B. Primitive Apex objects
C. Apex-defined data types
D. External service registrations

2. What is the benefit of using the Continuation class in Apex to make a long-running request to an external web service?
A. Multiple Continuation action calls can be made in parallel.
B. A single Continuation object can contain up to 10 callouts.
C. DML operations can be performed within the Continuation.
D. More long-running callouts can be made using Continuations.

3. Which Lightning web component configuration file tag set specifies the form factors that the component supports?
A. <targets>
B. <isExposed>
C. <supportedFormFactors>
D. <design:supportedFormFactors>


4. Which tag adds the Lightning Web Components for Visualforce JavaScript library to a Visualforce page?
A. <apex:include/>
B. <apex:lightning/>
C. <apex:includeLightning/>
D. <apex:createComponent/>.

UNIT : Get Hands-on using Platform Events from Batch Apex Classes
Step 1:- Install the below unmanaged package for completing this challenge.
Link:- https://login.salesforce.com/packaging/installPackage.apexp?p0=04t4P000002EMv0
πŸ‘‰Select Install for All Users, then click Install.
πŸ‘‰Once the installation is complete, click Done.
Step 2:- Modify an existing batch Apex job to raise BatchApexErrorEvents
πŸ‘‰Take an existing batch Apex job class and update it to implement the Database.RaisesPlatformEvents interface.
Then, add a trigger on BatchApexErrorEvent that logs exceptions in the batch job to a custom object.

πŸ‘‰Update the BatchLeadConvert class to implement the Database.RaisesPlatformEvents marker interface.
 public with sharing class BatchLeadConvert implements Database.Batchable<SObject>, Database.RaisesPlatformEvents{  
   private final String CONVERTED_STATUS = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1].MasterLabel;  
   public Database.QueryLocator start(Database.BatchableContext ctx){  
     return Database.getQueryLocator([SELECT Id FROM Lead WHERE ConvertedContactId = null]);  
   }  
   public void execute(Database.BatchableContext ctx, List<Lead> records){  
     List<Database.LeadConvert> leadConverts = new List<Database.LeadConvert>();  
     for(Lead record:records){  
       Database.LeadConvert lc = new Database.LeadConvert();  
       lc.setConvertedStatus(CONVERTED_STATUS);  
       lc.setLeadId(record.Id);  
       leadConverts.add(lc);  
     }  
     Database.convertLead(leadConverts, true);  
   }  
   public void finish(Database.BatchableContext ctx){  
   }  
 }  
Step 3:-
πŸ‘‰Create an Apex trigger called BatchApexErrorTrigger on the BatchApexErrorEvent SObject type. For each event record, capture the following fields and save them to the corresponding fields in a new BatchLeadConvertErrors__c record.
AsyncApexJobId: AsyncApexJobId__c
JobScope: Records__c
StackTrace: StackTrace__c
To make the trigger bulk safe, use a single DML statement to insert a list of new records at the end.
 trigger BatchApexErrorTrigger on BatchApexErrorEvent (after insert) {  
   BatchLeadConvertErrors__c[] insertErrorList = new BatchLeadConvertErrors__c[]{};  
   for(BatchApexErrorEvent error : trigger.new)  
   {  
     BatchLeadConvertErrors__c errorLogs = new BatchLeadConvertErrors__c();  
     errorLogs.AsyncApexJobId__c = error.AsyncApexJobId;  
     errorLogs.Records__c = error.JobScope;  
     errorLogs.StackTrace__c = error.StackTrace;  
     insertErrorList.add(errorLogs);  
   }  
   insert insertErrorList;  
 }  
NOTE: BEFORE COMPLETING CHALLENGE, MAKE SURE YOU TO RUN THE BatchLeadConvertTest TEST CLASS

Saturday, June 15, 2019

Automate Record Creation

Unit : Automate Record Creation

πŸ‘‰Install the unmanaged package for the schema and stubs for Apex classes and triggers. 
πŸ‘‰Rename cases and products to match the HowWeRoll schema, and assign all profiles to the custom HowWeRoll page layouts for those objects. 
πŸ‘‰Use the included package content to automatically create a Routine Maintenance request every time a maintenance request of type Repair or Routine Maintenance is updated to Closed.
πŸ‘‰Follow the specifications and naming conventions outlined in the business requirements.
#Apex Trigger
 trigger MaintenanceRequest on Case (after update) {  
   MaintenanceRequestHelper.updateWorkOrders();  
 }
#Apex Class
 public class MaintenanceRequestHelper {  
     public static void updateWorkOrders(){  
     Map<Id, Case> mantnceReqToEvaluate = new Map<Id, Case>();  
     for(Case mantnceReq : (List<Case>)Trigger.new){  
       if((mantnceReq.Type.contains('Repair') || mantnceReq.Type.contains('Routine Maintenance')) && mantnceReq.Status == 'Closed'){  
         mantnceReqToEvaluate.put(mantnceReq.Id,mantnceReq);  
       }  
     }  
         Map<Id, decimal> mapOfProdIdWithMaintenanceCycle = getMapOfProdIdWithMaintenanceCycle();  
         List<Case> lstOfMaintenanceRoutines = getListOfMaintenanceRoutineList(mantnceReqToEvaluate, mapOfProdIdWithMaintenanceCycle);  
     System.debug('lstOfMaintenanceRoutines :::::::: '+lstOfMaintenanceRoutines);  
     if(lstOfMaintenanceRoutines != null && lstOfMaintenanceRoutines.size() > 0)  
       INSERT lstOfMaintenanceRoutines;  
   }  
     private static Map<Id, decimal> getMapOfProdIdWithMaintenanceCycle(){  
     Map<Id,decimal> mapOfProdIdWithMaintenanceCycle = new Map<Id, decimal>();  
     for(Product2 prod : [SELECT Id, Maintenance_Cycle__c from Product2]){  
       mapOfProdIdWithMaintenanceCycle.put(prod.Id, prod.Maintenance_Cycle__c);  
     }  
         return mapOfProdIdWithMaintenanceCycle;  
   }  
   private static List<Case> getListOfMaintenanceRoutineList(Map<Id, Case> mantnceReqToEvaluate, Map<Id, decimal> mapOfProdIdWithMaintenanceCycle){  
     List<Case> lstOfMaintenanceRoutines = new List<Case>();  
       for(Case maintenance : mantnceReqToEvaluate.values()){  
       Case maintenanceNewIns = new Case();  
       maintenanceNewIns.Vehicle__c = maintenance.Vehicle__c;  
       maintenanceNewIns.Equipment__c = maintenance.Equipment__c;  
       maintenanceNewIns.Type = 'Routine Maintenance';  
       maintenanceNewIns.Subject = 'Your Routine Maintenance Schedule';  
       maintenanceNewIns.Date_Reported__c = Date.today();  
       maintenanceNewIns.Date_Due__c = getDueDate(maintenance, mapOfProdIdWithMaintenanceCycle);  
       maintenanceNewIns.Status = 'New';  
       maintenanceNewIns.Origin = 'Phone';  
       lstOfMaintenanceRoutines.add(maintenanceNewIns);  
     }  
     return lstOfMaintenanceRoutines;    
   }  
   private static Date getDueDate(Case maintenance, Map<Id, decimal> mapOfProdIdWithMaintenanceCycle){  
     Date dt = null;  
     if (mapOfProdIdWithMaintenanceCycle.get(maintenance.Equipment__c) != null) {  
       dt = Date.today().addDays(Integer.valueOf(mapOfProdIdWithMaintenanceCycle.get(maintenance.Equipment__c)));  
     }  
     return dt;  
   }  
 }  

Monday, April 29, 2019

Platform Developer I Certification Maintenance (Spring '19)

Unit : Platform Developer I Certification Maintenance (Spring '19)

UNIT : Learn What’s New for Platform Developers in Spring ’19:-

1. Which Apex interface can be implemented to allow My Domain users to log in with something other than their username and password?
A. Auth.AuthToken
B. Auth.VerificationMethod
C. Auth.LoginDiscoveryHandler
D. Auth.MyDomainLoginDiscoveryHandler

2. With Spring '19, which method returns a list of OrgLimit instances used to investigate limits and their names, current value, and maximum value?
A. getAll() from the System.OrgLimit Class
B. getAll() from the System.OrgLimits Class
C. getInstances() from the System.OrgLimit Class
D. getInstances() from the System.OrgLimits Class

3. With Spring '19, which properties of an unhandled Apex exception are available in Event Monitoring log files?
A. Static variable state and stack trace
B. Exception type, name, and static variable state
C. Stack trace, user's location, and exception type
D. Exception message, exception type name, and stack trace

4. Which field of the SandboxInfo object is a reference to the ID of the SandboxInfo that served as the source org for a cloned sandbox?
A. SourceId
B. TemplateId
C. SandboxName
D. SandboxInfoId

5. You created a custom metadata type to handle your company's warranty policy. The custom metadata type's label is WarrantyRule. For it, you created a custom field labeled Warranty and a metadata record labeled Gold. What is the correct syntax to reference the value stored in the Gold metadata record?
A. $WarrantyRule.Gold.Warranty__c
B. $WarrantyRule__mdt.Gold.Warranty
C. $CustomMetadata.WarrantyRule.Gold.Warranty
D. $CustomMetadata.WarrantyRule__mdt.Gold.Warranty__c

Get Ready for the Hands-on Challenge:-


In the hands-on challenge below, you’ll have an opportunity to work with these new security settings and use the new WITH SECURITY_ENFORCED clause in SOQL queries run from Apex to simplify your code. But before we get started, a bit of setup is required. 


Our business goal is to ensure that only system administrators have access to sensitive customer information, and that other users cannot invoke our APIs that handle sensitive data. To ensure that our code is generally safe, we need to make runtime checks of field- and object-level security. As developers, we need to specifically ensure our code respects admin-defined security constraints.

Launch the org you’ll use for the hands-on challenge, then do the following.

Create a new custom field on the Contact object to establish a field that contains sensitive information about the secret keys of our customers.
Field Label: Secret Key
Type: Text
Field Name: Secret_Key
 @RestResource(urlMapping='/secureApexRest')  
 global with sharing class SecureApexRest {  
   @HttpGet  
   global static Contact doGet(){  
     Id recordId = RestContext.request.params.get('id');  
     Contact result;  
     List<Contact> results = [SELECT id, Name, Secret_Key__c FROM Contact WHERE Id = :recordId WITH SECURITY_ENFORCED];  
     if (!results.isEmpty()) {  
        result = results[0];  
      }  
      else{  
       throw new QueryException('You don\'t have access to all contact fields required to use this API');  
     }  
     return result;  
   }  
    public class QueryException extends Exception{}  
 }