shariq
IndividualForum Replies Created
-
Hi,
Salesforce Connect is a framework that enables you to view, search, and modify data that’s stored outside your Salesforce org. For example, perhaps you have data that’s stored on premises in an enterprise resource planning (ERP) system. Instead of copying the data into your org, you can use external objects to access the data in real time via web service callouts.
Salesforce Connect lets your Salesforce org access data from a wide variety of external systems. You can integrate tables from SAP® NetWeaver Gateway, Microsoft Dynamics® NAV, and many other data sources in real time without writing a single line of code. Previously, the only way to integrate external data with Salesforce was to use extract, transform, and load (ETL) tools. That process is time consuming and requires you to copy data into your org that you might never use or quickly becomes stale. In contrast, Salesforce Connect maps data tables in external systems to external objects in your org.
External objects are similar to custom objects, except that they map to data located outside your Salesforce org. External object data is always up to date. Salesforce Connect provides a live connection to external data rather than a copy that consumes storage and must be regularly synced. Accessing an external object fetches the data from the external system in real time.
Use Salesforce Connect if most of these conditions apply :
- You have a large amount of data that you don’t want to copy into your Salesforce org.
- You need small amounts of data at any one time.
- You need real-time access to the latest data.
- You store your data in the cloud or in a back-office system, but want to display or process that data in your Salesforce org.
Hope this helps!
-
shariq
MemberSeptember 10, 2018 at 2:24 pm in reply to: When “Hard Delete” button will be enabled in apex data loader?Hi,
Check your Profile permissions “Bulk API Hard Delete” check box should be enable for permanently deleting the records using Apex Data Loader. Using Hard Delete operation, we can delete existing records from our Salesforce organization permanently. Deleted records will not be available in Recycle Bin.
Hope this helps!
-
shariq
MemberSeptember 10, 2018 at 12:49 pm in reply to: Explain the difference between a custom button and a custom link.Hi,
Implementation Tips :
Custom buttons display at the top and bottom of the detail page to the right of all standard buttons.
Custom buttons aren’t distinguished from standard buttons in any graphical way. However, you can recognize them by their location on the right of all standard buttons.
If the button bar gets too wide on the detail page layout, the browser displays a horizontal scroll bar. If the button bar gets too wide on the list view, search result, tagging result, or related list layouts, the buttons wrap.
Custom buttons are available for activities under the individual setup links for tasks and events. To add a custom button to an activity list view or search layout, first create a custom list button in tasks or events. Next, add it to your activity list view or search result layouts. You can override a button that applies to both tasks and events.
Person Account records use the custom buttons and links you have made for accounts.
If your organization uses the Console tab, list buttons are available in Mass Action. List buttons don’t display in the mini page layouts. Pages that display due to custom buttons and links display in the console without the header or sidebar.
If you get an error message when overriding a button that appears in a list, try calling the s-control using the URLFORfunction.
When creating custom buttons, be aware of any validation rules your organization has for records on that object. For example, a custom list button that changes case status may conflict with a case validation rule. In this scenario, Salesforce displays the error message for the validation rule when users click the custom button.
To replace a standard button with a custom button, first define the custom button, then customize the page layout to hide the standard button and display the custom one in its place
Visualforce pages used as custom links on the home page can’t specify a controller.
Visualforce pages used as custom buttons or links on detail pages must specify a standard controller of the same object.
Visualforce pages used as custom list buttons must use a standard list controller of the same object.
A Web tab or custom link could display a blank page if the embedded site:Has been set to deny the loading of its content in a frame.
Has been set to allow the loading of its content in a frame only if the same site is delivering the content.
Contains a mix of secure and unsecure content, and the user’s browser has been configured to block mixed active content.To resolve this issue, try these workarounds.
Set your custom link to either open in a new window or display in the existing window without the sidebar or header.
Move the URL from a Web tab into a custom link instead, and set the URL to either open in a new window or display in the existing window without the sidebar or header.
If the site you’re embedding has an HTTP prefix and mixed active content, try changing the prefix to HTTPS. If the embedded site has a valid security certificate and it hasn’t blocked itself from being displayed in frames, using HTTPS as the prefix allows the site to display.Best Practices
Use formula functions in custom buttons with caution. Because functions run on the server before your HTML or JavaScript is passed to the browser, they can only evaluate information that exists at that time. Avoid using functions like IF to evaluate conditions that only exist when the code reaches the browser, such as the value of a JavaScript variable that is returned from your code.
To prevent a user from performing a particular action, such as creating or editing, change the user's permissions rather than hiding the standard button. Hiding a standard button removes it from a page layout, but the link is still available and users can navigate to the new or edit page manually.
Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example, the $Request global variable allows you to access query parameters inside a snippet, s-control, or custom button.
Don’t select Display Checkboxes (for Multi-Record Selection) for list buttons that link to a URL that doesn’t support post operations. Checkboxes display next to records in a list if you have selected Display Checkboxes (for Multi-Record Selection) for at least one list button in that list. However, selected records in this list are unaffected when clicking a custom list button that doesn’t have this option selected.Limitations
A custom link’s label can’t exceed 1,024 characters.
A link URL can be up to 2,048 bytes. When data is substituted for the tokens in the URL, the link can exceed 3,000 bytes. Some browsers enforce limits on the maximum URL length.
Custom buttons that call JavaScript aren’t supported in Lightning Experience.
Custom buttons with a content source of OnClick JavaScript aren’t supported in the Salesforce app.
Using URL custom buttons to pass parameters to standard pages in Salesforce Classic—such as pre-populating fields when creating a record—doesn’t work in the Salesforce mobile app or Lightning Experience.
On record detail pages for external objects that are associated with high-data-volume external data sources, custom buttons and links that call JavaScript aren’t supported.
Custom buttons aren’t available for Web-to-Lead, Web-to-Case, the Case Teams related list, or the user object.Hope this helps!
-
shariq
MemberSeptember 10, 2018 at 12:42 pm in reply to: Custom Setting in Salesforce and Their ImportanceHi,
Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. Custom Settings are persisted in the database. However they're also cached.When using the cache methods Custom_setting__c.getAll(), .getInstance(), and .getValues(), Salesforce uses the cached values.If you use a SOQL query (SELECT id, name, etc FROM Custom_setting__c) to get data for a custom setting, Salesforce queries the database and uses one of your allotted queries.
NOTE: I've found that you can only consistently modify a custom setting if you use a SOQL query to load it. Loading via a cache method does not load the custom setting's id which is required to update the custom setting.
Accessing a Hierarchy Custom Setting
The following example uses the getOrgDefaults method to return the data set values for the organization level:CustomSettingName__c mc = CustomSettingName__c.getOrgDefaults();
The following example uses the getInstance method to return the data set values for the specified profile. The getInstancemethod can also be used with a user ID.CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID);
Accessing a List Custom Setting
The following example returns a map of custom settings data. The getAll method returns values for all custom fields associated with the list setting.Map<String_dataset_name, CustomSettingName__c> mcs = CustomSettingName__c.getAll();
The following example uses the getValues method to return all the field values associated with the specified data set. This method can be used with both list and hierarchy custom settings, using different parameters.CustomSettingName__c mc = CustomSettingName__c.getValues(data_set_name);
Hope this helps!
-
Hi Chanchal,
As per the REST (REpresentational “State” Transfer) architecture, the server does not store any state about the client session on the server side. This restriction is called Statelessness. Each request from the client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is therefore kept entirely on the client. client is responsible for storing and handling all application state related information on client side.
It also means that the client is responsible for sending any state information to the server whenever it is needed. There should not be any session affinity or sticky sessions on server.
Statelessness means that every HTTP request happens in complete isolation. When the client makes an HTTP request, it includes all information necessary for the server to fulfill that request. The server never relies on information from previous requests. If that information was important, the client would have sent it again in this request.
To enable clients to access these stateless APIs, its necessary that servers also should include every piece of information that the client may need to create the state on its side.For becoming stateless, do not store even authentication/authorization details of client. Provide credentials with the request. Each request MUST stand alone and should not be affected by the previous conversation happened from the same client in past.
Application State vs Resource State
Please do not confuse between application state and resource state. Both are completely different things.Application state is server-side data which servers store to identify incoming client requests, their previous interaction details, and current context information.
Resource state is the current state of a resource on a server at any point of time – and it has nothing to do with the interaction between client and server. It is what you get as a response from the server as API response. You refer to it as resource representation.
REST statelessness means being free on application state.
Advantages of Statelessness
There are some very noticeable advantages for having REST APIs stateless.Statelessness helps in scaling the APIs to millions of concurrent users by deploying it to multiple servers. Any server can handle any request because there is no session related dependency.
Being stateless makes REST APIs less complex – by removing all server-side state synchronization logic.
A stateless API is also easy to cache as well. A specific software can decide whether or not to cache the result of an HTTP request just by looking at that one request. There’s no nagging uncertainty that state from a previous request might affect the cacheability of this one. It improves the performance of applications.
The server never loses track of “where” each client is in the application because the client sends all necessary information with each request.Hope this helps.
-
Hi Chanchal,
HTTP Status Codes
This page is created from HTTP status code information found at ietf.org and Wikipedia. Click on the category heading or the status code link to read more.1xx Informational
100 Continue
101 Switching Protocols
102 Processing (WebDAV)
2xx Success
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)
208 Already Reported (WebDAV)
226 IM Used
3xx Redirection
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
306 (Unused)
307 Temporary Redirect
308 Permanent Redirect (experimental)
4xx Client Error
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
418 I'm a teapot (RFC 2324)
420 Enhance Your Calm (Twitter)
422 Unprocessable Entity (WebDAV)
423 Locked (WebDAV)
424 Failed Dependency (WebDAV)
425 Reserved for WebDAV
426 Upgrade Required
428 Precondition Required
429 Too Many Requests
431 Request Header Fields Too Large
444 No Response (Nginx)
449 Retry With (Microsoft)
450 Blocked by Windows Parental Controls (Microsoft)
451 Unavailable For Legal Reasons
499 Client Closed Request (Nginx)
5xx Server Error
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (Experimental)
507 Insufficient Storage (WebDAV)
508 Loop Detected (WebDAV)
509 Bandwidth Limit Exceeded (Apache)
510 Not Extended
511 Network Authentication Required
598 Network read timeout error
599 Network connect timeout error
Hope this helps.
-
Hi Chanchal,
The request data which is present in the body part of every HTTP message is referred as ‘Payload’. In Restful web service, the payload can only be passed to the recipient through POST method.
There is no limit of sending data as payload through POST method but the only concern is that more data with consuming more time and bandwidth. This may consume much of user’s time also.
Below is an example of XML payload
<?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="
http://schemas.xmlsoap.org/soap/envelope/
" xmlns:xsd="
http://www.w3.org/2001/XMLSchema
" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
> <env:Header /> <env:Body> <create xmlns="
http://www.tractbilling.com/billing/1_30/service"
> <createRequest> <billingAccount xmlns="
http://www.tractbilling.com/billing/1_30/domain
" /> <salesOrder note="An Order placed through Salesforce Opportunity Name : Test Opportunity 5 Sept 2018" xmlns="
http://www.tractbilling.com/billing/1_30/domain"
> <orderItems> <orderItem sequence="1" quantity="1"> <orderItems> <orderItem quantity="1.0"> <orderItems /> <recurringProductPrice eid="21678"> <priceCategory /> </recurringProductPrice> <product eid="18324" /> </orderItem> <orderItem quantity="1.0"> <orderItems /> <recurringProductPrice eid="21684"> <priceCategory /> </recurringProductPrice> <product eid="18326" /> </orderItem> </orderItems> <recurringProductPrice eid="21676"> <priceCategory /> </recurringProductPrice> <product name="474sub" eid="18322" /> <serviceResources> <serviceResource identifier=""> <category eid="474" /> </serviceResource> <serviceResource identifier="TEST_SER_RES_SEP_1_6"> <category eid="474" /> </serviceResource> </serviceResources> <customFieldValues> <customFieldValue value="34t"> <customField eid="598" /> </customFieldValue> <customFieldValue value="TRUE"> <customField eid="1014" /> </customFieldValue> </customFieldValues> </orderItem> </orderItems> <billingAccount accountNum="528" eid="1481624" /> </salesOrder> </createRequest> </create> </env:Body> </env:Envelope>Hope this helps.
-
Hi Anurag,
Caching is the process in which server response is stored so that a cached copy can be used when required and there is no need of generating the same response again. This process not only reduces the server load but in turn increase the scalability and performance of the server. Only the client is able to cache the response and that too for a limited period of time.
Mentioned below are the header of the resources and their brief description so that they can be identified for the caching process:
Time and Date of resource creation
Time and date of resource modification that usually stores the last detail.
Cache control header
Time and date at which the cached resource will expire.
The age which determines the time from when the resource has been fetched.\
Hope this helps.
-
Hi Prachi,
Sharing access granted by Force.com through record ownership, the role hierarchy, territory hierarchy, teams, and sharing rules:
Record Ownership: Each record is owned by a user. The record owner is automatically granted Full Access, allowing them to view, edit, transfer, share, and delete the record. Role Hierarchy: The role hierarchy enables users above another user in the hierarchy to have the same level of access to records owned by or shared with users below them. Territory Hierarchy: Salesforce Territory Management provides a way to grant access to accounts based on characteristics of those accounts. The territory hierarchy enables users to view data shared to their territories or territories below them in the hierarchy.
Teams: Account Teams, Sales Teams and Case Teams provide access to a group of users who work on a particular account, opportunity or case.
Sharing Rules: Sharing rules are defined by administrators. They automatically grant users within a given group/role access to records owned by a specific group of users. Criteria based sharing rules automatically grant a users within a given group/role access to records based on field values within those records. User Managed Sharing, also known as Manual Sharing User managed sharing allows the record owner, or any user with Full Access to a record, to share the record with another user/group of users. This is generally done by an end-user, for a single record. User managed sharing is removed when the record owner changes or when the access granted in the sharing does not grant additional access beyond the object's organization-wide sharing default access level.
Apex Managed Sharing
Apex managed sharing is a type of "Programatic Sharing" which allows you to define a custom sharing reason to associate with your programatic share. Standard Salesforce objects support "Programatic Sharing" while custom objects support Apex managed sharing. More specifically, object shares can be written to both standard and custom objects, however custom sharing reasons can only be defined for shares written to custom objects.
Apex managed sharing provides developers with the ability to support an application’s particular sharing requirements programmatically via Apex code.
The sample use case for Apex managed sharing that we will explore in this article is an "after insert" trigger that grants 'edit' access on a private record to a user specified in a lookup field on that record.
Another example use case would be a trigger that shares a record with a group of users once the record meets certain criteria - you could automatically grant 'read' access on a record to a team once the record reaches a certain stage or currency amount. You're not limited to writing triggers though-you can also use Apex managed sharing in custom Visualforce controllers for example. Now let's dive in and learn how records are shared on the platform.
Hope this helps.
-
Hi Anurag,
Just like the ‘Object’ instance, we have learned in object orient programming Language, in the same way, ‘Resource’ is defined as an object of a type which can be an image, HTML file, text data, and any type of dynamic data. There are varieties of representation formats available in order to represent a resource. Some most common are enlisted below:
- JSON
- YAML
- XML
- HTML
Hope this helps.
-
shariq
MemberSeptember 5, 2018 at 8:08 pm in reply to: What is the difference between primitive type and wrapper class in Salesforce?Hi Chanchal,
Primitive data types - Primitive types are the most basic data types available within the salesforce. For example - Integer,Boolean etc.
Wrapper Class - A wrapper or container class is a class, a data structure, or an abstract data type which contains different objects or collection of objects as its members. A wrapper class is a custom object defined by programmer wherein he defines the wrapper class properties.
Hope this helps.
-
shariq
MemberSeptember 5, 2018 at 1:54 pm in reply to: What are the components of "REST" request in Salesforce?Hi Shradha,
Components are :-
a. Resource URI,
b. HTTP method
c. request headers
d. request body
Request headers specify metadata for the request. The request body specifies data for the request, when necessary. If there’s no data to specify, the body is omitted from the request.
Hope this helps.
-
HI Anurag,
Yes, You can call the method from another class directly.
Hope this helps.
-
shariq
MemberSeptember 5, 2018 at 1:42 pm in reply to: Ways Sales Cloud PRM helps you optimize the partner life cycle.Hi Anjali,
Create a modern, compelling user experience for partners: It’s easy to customize your partners’ experience with a simple Guided Setup Wizard. You can configure who gets which leads, how deals are registered, how marketing funds are divvied up, and determine tiers for different partners. You can even customize it to fit your brand’s look and feel with a simple drag-and-drop application. 360-degree view of partners: Sales Cloud PRM comes with real-time dashboards so you see what every partner is doing—where they’re excelling and where they need help. This makes it easier for channel managers to co-sell. Get the right information to the right partner: Sales Cloud PRM uses Salesforce’s world-class sharing model, so you can easily control what deal information partners see. Plus, Einstein Content Recommendations use machine learning to surface relevant files. Make every partner their own marketer: Channel Marketing Automation lets partners build, track, and analyze email campaigns to deliver 1:1 customer journeys.
Hope this helps.
-
shariq
MemberSeptember 5, 2018 at 1:36 pm in reply to: ensure quality data by declarative method in salesforceHi Madhulika,
Quality assurance is an important part of the business. You need to ensure the quality of your services but for that you need certain alerts. Workflow alerts include lookup filters and validation rules that provide instant feedback on the quality of the data. They help in analyzing quality moment by moment, helping to maintain exceptional services. Page layouts and exceptional handling are important parts of the service.
A. Workflow alerts
B. Lookup filters
C. Validation rules
Hope this helps.
-
shariq
MemberSeptember 5, 2018 at 1:21 pm in reply to: Explain the difference between CRM and PRM in Salesforce.Hi Anjali,
Differences between CRM and PRM PRM is similar to customer relationship management (CRM) in that companies use CRM systems to monitor the marketing, sales and service process of customer relationships. When working directly with a customer, a sales rep can target the consumer and work one-to-one with that potential customer. While CRM does help with the relationship between a business and a customer, it's much more focused on the C and M of CRM -- once it converts a lead into a customer, it's about managing that next purchase. When working with partners, companies need to put more emphasis on the relationship aspect, as it's the goal of both the partner and the managing company to profit from the relationship. To effectively do that requires a different type of management and thinking, including more negotiation in the selling process.
Hope this helps.
-
Hi Anjali,
Partner relationship management (PRM) is a combination of the software, processes and strategies companies use to streamline business processes with partners who sell their products. PRM systems are often web- or cloud-based and typically include a partner portal, customer database, and other tools that allow companies and partners to manage leads, revenues, opportunities and sales metrics. Partner relationship management systems also track inventory, pricing, discounting and operations. Benefits of PRM Many companies rely on partner companies to sell products on their behalf as part of a channel strategy, in addition to or instead of using a direct distribution channel. Those indirect channels may include value-added resellers (VARs), retailers, consultants, managed service providers (MSPs), systems integrators (SIs), original equipment manufacturers (OEMs) or independent software vendors (ISVs). Having a partner relationship management system in place helps channel managers streamline all of their partner sales processes and minimize duplication within the business. Differences between CRM and PRM PRM is similar to customer relationship management (CRM) in that companies use CRM systems to monitor the marketing, sales and service process of customer relationships. When working directly with a customer, a sales rep can target the consumer and work one-to-one with that potential customer. While CRM does help with the relationship between a business and a customer, it's much more focused on the C and M of CRM -- once it converts a lead into a customer, it's about managing that next purchase. When working with partners, companies need to put more emphasis on the relationship aspect, as it's the goal of both the partner and the managing company to profit from the relationship. To effectively do that requires a different type of management and thinking, including more negotiation in the selling process. PRM best practices A successful PRM implementation creates collaboration between the dealers, vendors and channels and allows for a profitable relationship that continues on healthily. It's important to invest in software that works within your existing stack and to provide the necessary support and training as you would with any CRM implementation.
-
shariq
MemberSeptember 5, 2018 at 12:41 pm in reply to: What sort of error is \"System.CalloutException\"Hi Anurag,
This error occur when you are inserting any record before any call out. You have to call out first then call any DML operation.
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 8:57 pm in reply to: Package review failed in Salesforce AppExchangeHi Bhavesh,
Salesforce's App Exchange is very secure, so APIs which users use must be of a trusted web application. Therefore it is asking for certificate so that they know the application can be trusted.
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 8:14 pm in reply to: Can anyone help me with the implementation of Salesforce IDP?Hi Pradeep,
Steps to perform SSO in salesforce:-
- All Orgs must be enabled with a custom hostname using ‘My Domain’One Org must be selected to act as the Identity Provider
- A master list of all users
- A “Federated ID” for each user, unique for each person across users of all Orgs.
- Enable the Identity Provider in your Identity Provider Org
- Download the Self-Signed Certificate from the IDP Org
- Configure SAML in your first Service Provider Org
- Tell your Identity Provider about this Service Provider Org
- Click “Service Providers are now created via Connected Apps. Click here.” under the list of “Service Providers”
- Enter a name for your first Connected App.
- Select Enable SAML under Web App Settings.
- Enter the ‘My Domain’ of the Service Provider Org as the “Entity ID”
- Enter the ACS URL – this is the “Salesforce.com Login URL”
- Select “Federation ID”
- Hit “Save”
- Assign this SSO configuration to any Profiles of your choosing
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 7:58 pm in reply to: What is the Method to call a Salesforce Trigger from the main class?Hi Anurag,
Trigger is block of code that executes before and after a DML is performed that is -record is Inserted/Updated/Deleted from the force.com database. So if you are performing any DML in your apex code it will call the trigger.
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 7:38 pm in reply to: How to track the usage of each function in Salesforce?Hi Radhakrishna,
Yes you can do it through custom setting, create fields for functions to which you want to track, initially save 0 in them and at time of using the function increment your respective field by 1. If you want you can show the fields on custom Visualforce Page(VF tab).
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 2:59 pm in reply to: What are the different data types that a standard field record name can have?Hi Anurag,
Navigate to the custom object and change field type from Auto Number to Text. After the change, the old/existing records would still keep their Auto Number values so you needn’t worry about losing historical data.
The only thing that I would be worried about is any apps/workflow rules /processes working off the Auto Number field increments.
Hope this helps.
-
shariq
MemberSeptember 4, 2018 at 2:57 pm in reply to: Why is it important to enable domain before using lightning?Hi Anurag,
There are a number of reasons that My Domain is required. The one that will make the most sense to you is with respect to Lightning Components. Every Lightning Component has a "namespace". If you use any managed package components or 3rd party apps, they always have their own "namespace" which is a reference to a custom domain. This allows Salesforce to differentiate between your code and the code from the managed package or components that are running in your org.
Your Lightning Components can't share the same memory space as Lightning Components from a vendor. By having My Domain enabled, they can more readily keep them separate. Previously with Visualforce, this wasn't an issue since pretty much everything ran on the Server side in Apex through a Server Side controller, not on the client side like Lightning does.
Hope this helps.
-
shariq
MemberSeptember 3, 2018 at 2:48 pm in reply to: What are the wizard controllers in VisualForce?Hi Anurag,
A wizard is a sequence of a tab with the next and back button underneath. When you fill all the required information you click the next button to go to next page and you click the back button to go back to the previous page. Wizard controllers can deal with numerous pages and state over each page that isn’t conceivable to manage by other easier controllers in VisualForce. The VisualForce controller mainly distinguishes the entire set of the guidelines that basically indicate what all can happen when the client cooperates with various parts accessible on VisualForce pages. These segments might be links, buttons, or some other activity thing. There are three well-known sorts of Visual Force Controllers in Salesforce. Wizard controllers maintain state between pages.
Hope this helps.