Showing posts with label 2010. Show all posts
Showing posts with label 2010. Show all posts

Tuesday, December 25, 2018

Culture First Visit issue in SharePoint 2010/2016


SharePoint Pages loaded with incorrect culture on first visit to site. Reproduce issue:
  1. Create a site collection with a language other than the default
  2. Navigate to any site page, Appear with correct culture.
  3. Run IIS Reset.
  4. After and refresh page, It will appear with default culture.
  5. After second refresh, it will appear with correct culture.   
Note: This issue appear with SharePoint 2010/2016.

Solution:
We can use Warm up Script as workaround for this problem:

Tuesday, October 22, 2013

SharePoint Add Calendar Overlay Programmatically

This is sample of code to add calendar overlay pro grammatically:

using (SPSite site = new SPSite("http://sp2013-tarek294:8000/"))
{
     using (SPWeb web = site.OpenWeb())
    {
          web.AllowUnsafeUpdates = true;
          SPList list = web.Lists["Calendar"];
          SPView m_view = list.Views["Calendar"];
          m_view.CalendarSettings = SerializeAccessors();
          m_view.Update();
          web.AllowUnsafeUpdates = false;

    }
}

private static string SerializeAccessors()
{
 return "<AggregationCalendars>
  <AggregationCalendar Id="{56594c0c-5649-458e-a4e3-939589ddc75d}" Type="SharePoint" Name="Holiday" Description="Holiday" Color="5" AlwaysShow="True" CalendarUrl="/Lists/Calendar/Holiday.aspx">
    <Settings WebUrl="http://sp2013-tarek294:8000" ListId="{6913f374-1a4e-4772-8c5f-9f5d56610f71}" ViewId="{0091da5e-e5a4-4e1f-ab96-19f96eeb59fa}" ListFormUrl="/Lists/Calendar/DispForm.aspx" />
  </AggregationCalendar>
  <AggregationCalendar Id="{d65114d1-cb97-41db-a7eb-7cc3614c957e}" Type="SharePoint" Name="Meeting" Description="Meeting" Color="8" AlwaysShow="True" CalendarUrl="/Lists/Calendar/Meeting.aspx">
    <Settings WebUrl="http://sp2013-tarek294:8000" ListId="{6913f374-1a4e-4772-8c5f-9f5d56610f71}" ViewId="{68513c26-b132-4d9e-b9ca-acc74a4cf1dc}" ListFormUrl="/Lists/Calendar/DispForm.aspx" />
  </AggregationCalendar>
  -->
  <AggregationCalendar Id="{cd33c105-6dd4-4cb9-b6ee-ca26dfcdb70e}" Type="SharePoint" Name="TestView" Description="TestView" Color="3" AlwaysShow="True" CalendarUrl="/Lists/Calendar/TestView.aspx">
    <Settings WebUrl="http://sp2013-tarek294:8000" ListId="{6913f374-1a4e-4772-8c5f-9f5d56610f71}" ViewId="{2D81DDC1-A360-4585-BF4A-7C0E512C7AA8}" ListFormUrl="/Lists/Calendar/DispForm.aspx" />
  </AggregationCalendar>
</AggregationCalendars>"
}

Friday, August 16, 2013

SharePoint Migration Utilities

When I Migrated or revamped SharePoint I need to do some tasks help migrate old items, alerts, etc with new structure. I wroted some utilities to do these tasks using SharePoint API. I know there is many tools can do these tasks but here will find free utilities to do simple tasks.
Copy Files
Copy list Document libraries  and mapped old properties to new properties.

Copy Alerts
Copy Alerts from source web to destination Web

Copy Images
Copy Images from source image library to destination image library

Copy List Items
Copy List Items from source list to destination list

Copy Pages with resources
Copy Publish Pages between source and destination, Update layouts, clean HTML

Copy SharePoint Security
Copy Security between source and destination list.

Jungle.SharePoint.Util
Utilities help in migration tasks






Monday, December 24, 2012

Searching External Systems using SharePoint 2010 Business Connectivity Services (BCS) within throttling limits

SharePoint 2010 Business Connectivity Services (BCS) within throttling limits. To solve this need to split records into chunks.
The LastIdSeen filter enables chunking for IDEnumerator methods. 
For  more information check url:
http://msdn.microsoft.com/en-us/library/ms492695%28v=office.12%29.aspx

Example
http://blogs.msdn.com/b/taj/archive/2010/08/24/searching-external-systems-using-sharepoint-2010-business-connectivity-services-bcs-within-throttling-limits.aspx

Business Connectivity Services (BCS) throttling limits

BCS can only fetch 2000 records at one fetch due to throttling issues. we can resolve this issues in two ways
  1. Switch off the BCS throttling using powershell. This not the best way as it will cause performance issues in future.

    $bdcProxy = Get-SPServiceApplicationProxy | where {$_.GetType().FullName -eq (‘Microsoft.SharePoint.BusinessData.SharedService.’ + ‘BdcServiceApplicationProxy’)}
    $dbRule = Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy $bdcProxy
    Set-SPBusinessDataCatalogThrottleConfig -Identity $dbRule -Enforced:$false
  2.  Modifying the BCS model to include the Key to Filter Methods.


 

SharePoint BDC Oracle Connection to database using username and password

If you want SharePoint BDC connect to Oracle database using explicit username and password:

  1.  Set up an application definition in Secure Store Service with the Oracle credentials.
  2.  Use AuthenticationMode of RdbCredentials.
  3. When you use RdbCredentials as the authentication mode, you cannot use the RdbConnection User ID and RdbConnection Password properties, as these values are supplied by the Secure Store Service.(Lob connection will be as below)
        <LobSystemInstances>
          <LobSystemInstance Name="OracleInstance">
            <Properties>
            <Property Name="AuthenticationMode" Type="System.String">RdbCredentials</Property>
            <Property Name="DatabaseAccessProvider" Type="System.String">Oracle</Property>
            <Property Name="RdbConnection Data Source" Type="System.String">YOUR_ORACLE_NET_SERVICE_NAME_HERE</Property>
            <Property Name="SsoApplicationId" Type="System.String">SECURESTORE_ORACLE_APP_ID_HERE</Property>
            <!-- Client Ship -->
            <Property Name="SsoProviderImplementation"
              Type="System.String">
              Microsoft.Office.BusinessData.Infrastructure.SecureStore.LocalSecureStoreProvider,
              Microsoft.Office.BusinessData, Version=14.0.0.0, Culture=neutral,
              PublicKeyToken=71e9bce111e9429c</Property>
           </Properties>
          </LobSystemInstance>
        </LobSystemInstances> 
  4. If you specify them, they are simply ignored. You must use Secure Store to supply the Oracle credentials.(Lob connection will be as below)
       <LobSystemInstance Name="PassThrough">
              <Properties>
                <Property Name="ShowInSearchUI" Type="System.String"></Property>
                <Property Name="DatabaseAccessProvider" Type="System.String">Odbc</Property>
                <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>
                <Property Name="RdbConnection Driver" Type="System.String">{Oracle in OraClient11g_home1}</Property>
                <Property Name="RdbConnection dbq" Type="System.String">XE_ORION</Property>
                <Property Name="RdbConnection uid" Type="System.String">hr</Property>
                <Property Name="RdbConnection pwd" Type="System.String">12345</Property>
                <Property Name="RdbConnection Trusted_Connection" Type="System.String">yes</Property>
              </Properties>
            </LobSystemInstance> 

Saturday, December 22, 2012

SharePoint Fast Search2010 Incremental Crawl BCS


  1. You can add these properties to your list methodInstance in bdc file and deploy again. 

      <
    MethodInstance Type="Finder" ReturnParameterName="DocumentReadList" Default="true" Name="DocumentReadList" DefaultDisplayName="ProductDocument Read List">
             <Properties>
           <Property Name="LastModifiedTimeStampField" Type="System.String">YourModifiedDateField</Property>
      </Properties>
      </MethodInstances>
    For IdEnumerator set __BdcLastModifiedTimestamp Property

     

      <Properties>
        <Property Name="__BdcLastModifiedTimestamp" Type="System.String">LastModifiedOn</Property>
      </Properties>
     

      1. You can add these properties to your list method of entity using PowerShell:
        $entity = Get-SPBusinessDataCatalogMetadataObject  –BdcObjectType “Entity” –Name “EntityName” –Namespace “ModelNameSpace” -ServiceContext adminurl
        $methodinstance = $entity.MethodInstances | where {$_.Name –eq “ReadListName”}
        $methodinstance.Properties.Add("LastModifiedTimeStampField", YourModifiedDateField)
        $methodinstance.Update()
      You can check sample of:
      HOW TO: Create a Searchable SharePoint 2010 BDC .NET Assembly Connector Which Reads From A Flat File

      Metadata Mappings Common Mistake



        When you want manage Metadata Mapping, Somebody use link exists in Queries and Results.
      This link is not correct for SharePoint Fast Search2010, You should Manage Metadata mapping from Fast Search Administration.

      Fast AutoDiscover Properties



      Sometimes will find crawler discover my object crawler properties automatically.  You need to make sure Category Properties defined to allow auto discover. Check Auto Discover property from Fast Search Administration.(You can go to this from any of Fast Service Management)
      Also you can set it from PowerShell:
      Set-FASTSearchMetadataCategory  –Name “Category” –DiscoverNewProperties $flag
      Flag is true/false
      Set-FASTSearchMetadataCategory  –Name “Business Data” –DiscoverNewProperties $true

      Also you can add your crawled properties manual using PowerShell:
      $guid = [guid]::NewGuid()
      New-FASTSearchMetadataCategory -Name MoreWeb -Propset $guid
      New-FASTSearchMetadataCrawledProperty -Name ExtendedTitle -Propset $guid -Varianttype 31

      Enable BCS Content Type to be crawled



      When tried to crawl my business data catalogs and select Business data from content source, You didn’t find my business data.
      Check External Content Type information. You will find its property Crawlable is No you need to update it to Yes like Figure Below:


      This occurs because I didn’t define properties RootFinder or UseClientCachingForSearch to my list Method.
      To Solve this problem you have two options:

      1. You can add these properties to your list methodInstance in bdc file and deploy again.
      2. You can add these properties to your list method of entity using PowerShell:
        $entity = Get-SPBusinessDataCatalogMetadataObject  –BdcObjectType “Entity” –Name “EntityName” –Namespace “ModelNameSpace” -ServiceContext adminurl
        $methodinstance = $entity.MethodInstances | where {$_.Name –eq “ReadListName”}
        $methodinstance.Properties.Add(“RootFinder”, “”)
        $methodinstance.Properties.Add(“UseClientCachingForSearch”, “”)
        $methodinstance.Update()