Friday, 25 January 2013

Difference Between Event Receivers and Workflows in SharePoint

1. Event handlers Can't be manually initiated - workflows can be initiated either automatically or manually.

2. Event Handlers can be Synchronous or Asynchronous - Workflows are always async (They executes after the operation)

3. In Event Receivers we can cancel the operation (such as add/update/delete) - But in Workflows its not possible.

4. Event handlers execute from a Particular WFE, So when something goes wrong in that WFE, It may end-up. But Workflow Jobs are robust and can resume even after Reboots.

5. Usually Event handlers runs for short period - Workflows can be longer even for years!

6. There is no User Interface/user Interaction in Event Receivers - Workflows can have user interactions such as getting user input in Initiation forms.

7. As the Name indicates, SharePoint Event receivers are triggered by events like New Item Adding-Added, Updating-Updated, Deleting-Deleted, etc. - But Workflows triggered only on Creation/Change/deletion.

8. Event Receivers are created using Visual studio - Workflows can be via SharePoint user interface, SharePoint Designer, Visio or Visual studio.

9. Workflows leave "Workflow History" logs which we can refer for debugging - Event handler doesn't do such.

10. Event receivers are better for large volume - Workflows are better for small amount of data.

SharePoint Solution Packages

Wednesday, 18 July 2012

Bind lookup field data to the dropdownlist

Below code will help you to bind the lookup field data to the dropdown list.
if (spListItem["LookupField"] != null)
{
  SPFieldLookupValue spv = new   
  SPFieldLookupValue(spListItem["LookupField"].ToString());
  string lookupValue = spv.LookupValue;
  dropdownlist1.SelectedIndex = spv.LookupId;
 }
 To bind field values to the dropdownlist:
dropdownlist1.SelectedValue = spListItem["Field1"].ToString();

Monday, 14 May 2012

How to connect to the Oracle database using Business Connectivity Services (BCS) in SharePoint 2010

Introduction:

Business Connectivity Services (BCS) is a new service introduced with SharePoint 2010 to allow SharePoint sites to connect to and manipulate external data. SharePoint 2007 had a similar facility in the form of Business Data Catalog (BDC) which made external data available within its site. However, a major problem with BDC was the difficulty in creating solutions as there was no support in the 2007 designer. Most BDC solutions were simply for accessing external data, manipulating external data sources was extremely difficult.

With SharePoint 2010, BCS ships with out-of-box features such as solutions, services, and tools which may connect to external data an easy task. Whether you want to retrieve Outlook contacts in a list offline or edit the contents of your document file or share your excel sheet online or reuse data from dynamic InfoPath forms or just update your business presentation, BCS enables deep content sharing, editing and integration in SharePoint 2010 with SharePoint Designer and Visual Studio tools. To connect to the SQL database we can use either SharePoint designer (where we can connect directly to the SQL or using WCF or through .Net Assembly) or using Visual Studio (BDC Model). In case of connecting to the Oracle database we don't have direct option in the SharePoint designer, so we can use BCS Meta Man to create an external content type.

Prerequisites:

I. A local installation of either SharePoint Foundation 2010 or SharePoint Server 2010,

ii. Oracle Client (Version: 10g),

iii. Visual Studio 2010 and

iv. BCS Meta Man.

Oracle Database:

Table Name: HR.CUSTOMERS

1.gif

Note:

In the above table CUSTOMER_ID is the Primary Key.

Creating a BCS External Content Type:

Steps Involved:

The following steps should be followed to create a BCS External Content Type using Visual Studio 2010.

v. Open Visual Studio 2010.

vi. Go to File => New => Project.

vii. Select Empty SharePoint Project under installed template category SharePoint 2010 and name it as BCSUsingOracleDatabase.


2.gif

viii. Click OK.

ix. Check "Deploy as a farm solution".

x. Click Finish.

xi. Right click the Solution Explorer and add a New Item.

xii. Select BCSMetaMan under installed template category Lightning Tools and name it as BCSMetaManForOracle.

3.gif

xiii. Click ADD.

xiv. Add System.Data.OracleClient reference to your project.

xv. Connect to the Oracle Database.


  • Go to Tools => Connect to Database.

    4.gif
  • Add Connection wizard will pop up.
  • Choose the Data Source as Oracle Database (Oracle Client).
  • Enter the Server Name, User Name and Password as shown below.

    5.gif
  • Click on Test Connection.

    6.gif
  • Click OK.
  • In the Server Explorer you can view the Oracle Database as shown below.

    7.gif


xvi. Create an External Content Type Using BCS Meta Man.

  • You will find the BCS Meta Man menu item in the menu bar.

    8.gif
  • Click on BCS Meta Man - > BCS Meta Man Data Source Explorer.
  • Click on the "Add Connection" button of the data source explorer.
  • In the Connection Dialog choose the Data Source as Oracle.
  • Enter the Database Name, User Name and Password.
  • Click Connect.

    9.gif
  • Oracle Database will be displayed with all tables.

    10.gif
  • Drag and drop the HR.CUSTOMERS table in the BCS Meta Man design surface.
  • In the Model Type wizard select .Net assembly and click OK.

    11.gif
  • Entity Creation wizard will pop up, click next.

    12.gif
  • By default CUSTOMER_ID will be selected as identifier.

    13.gif
  • Click Next.
  • Select all the methods that are available and click Generate.

    14.gif
  • BCS Meta Man will add new files to the project which contain generated C# code.

    15.gif
  • You'll also see the External Content Type on the design surface as shown below.

    16.gif

xvii. Build the Project.

xviii. Once it is build successfully, Deploy the project.

Configure Business Data Connectivity access rights:

I. Go to Central Administration -> Application Management -> Manage Service Applications.

17.gif

ii. Click on Business Data Connectivity Service.

18.gif

iii. In the top Ribbon click on Manage.

19.gif


iv. In Service Application Information check the External Content Type HR_CUSTOMERS.

20.gif

v. In the top Ribbon click the Site Object Permissions.

vi. Site Object Permissions wizard will pop up add the account (Group or Users) and assign the permissions.

Creating an External List in the SharePoint Site:

I. Open the SharePoint Site.

ii. Go to Site Actions => More Options.

21.gif


iii. On the Create Wizard, from the Installed Templates Select List.

iv. In the List Type select External List and click Create.

22.gif

v. Enter the Name as BCS for OracleDB and choose the External Content Type as shown below.

23.gif

vi. Click OK.

vii. External List is created successfully.

Testing:

Creating a new item:

I. Click on Add new item option in the ribbon.

ii. Enter the values as shown below.

24.gif

iii. Click OK.

iv. New item will be created in the SharePoint External List.


24.1.gif

Update in the Oracle DB:

I. Go to Oracle รข€“ OraClient10g home => Application Management => SQL Plus.

ii. Enter the User Name, Password and Host String as shown below.

25.gif

iii. Select the table to see the changes as shown below.

26.gif

iv. A new item has been added to the HR.CUSTOMERS table.

Summary:

Thus an external content type is created for oracle database using BCS Meta Man and an external list is created based on that external content type to display the Oracle data.