CRM 2011 Script om veld te disabelen

Onderstaand script kun je gebruiken in CRM 2011 om een veld te disabelen (of om het readonly te maken). Het veld wordt dan grijs en kan niet meer gewijzigd worden.

1
2
3
4
5
6
//function to disable field on a form
function DisableField(fieldname) {
    if (fieldname != null) {
        Xrm.Page.ui.controls.get(fieldname).setDisabled(true);
    }
}
Posted in crm | Tagged , | Leave a comment

CRM 2011 Script om de focus op een veld te zetten

In CRM 2011 heb ik van een formulier bijna alle velden alleen lezen gemaakt. Het nadeel van deze stap is dat CRM automatisch de focus zet op het enige nog wijzigbare veld dat ergens onderaan de pagina zit. Een gebruiker moet hierdoor telkens naar boven scrollen als hij een formulier opent. Hieronder een javascript functie om de focus weer goed te zetten. Deze functie is daarnaast vast ook nog nuttig voor allerhande andere zaken.

1
2
3
4
5
6
7
//function to set the focus on een certain field
function SetFocusOnField(fieldName) {
    if (fieldName != null) {
        var control = Xrm.Page.ui.controls.get(fieldName);
        control.setFocus();
    }
}

Mijn bron: CRM 2011 – How to set focus using Javascript

Posted in crm | Tagged , , | Leave a comment

SSIS, SQL Server Agent en rechten

Na uren ontwikkelen en testen in SSIS kan het soms een pijnlijk proces zijn om een pakketje te deployen naar de server en te laten draaien zonder foutmeldingen. Bijzonder vaak wordt dit veroorzaakt door de security context van de SQL Server Agent. In een SSIS project verplaats je vaak data van de ene locatie naar de andere. Als het account dat gebruikt wordt voor SQL Server Agent echter niet de juiste rechten heeft, dan mislukt de run van dat pakketje.

De eerste en meest eenvoudige stap is om of het account van SQL Server Agent aan te passen naar een account met voldoende rechten of om het account van SQL Server Agent rechten te geven op de plekken die je gebruikt in het project.

Er is echter nog een manier om de security context goed in te regelen zonder dat je gebonden bent aan het account van SQL Server Agent. Je kunt gebruik maken van een SQL Server Agent Proxy.
(Object Explorer, SQL Server Agent, rechtermuisklik op Proxies en New Proxy).

Voordat je hier gebruik van kunt maken moet je echter eerste een Credential aanmaken in SQL server.
(Object Explorer, Security, rechtermuisklik op Credentials en New Credential).

Als je beide hebt aangemaakt en bij de proxy ook SSIS als subsystem hebt aangevinkt, dan kan je deze proxy kiezen bij het aanmaken van een Job Step. Naast de standaard mogelijkheid om te kiezen voor Run As SQL Server Agent Service Account krijg je ook je zelf gemaakte proxy te zien.

Zie ook deze blog post voor verdere uitleg: SSIS and SQL Server Agent

Posted in integration services | Tagged , | Leave a comment

t-sql: Table lock en Transaction

Voor een update script van een datawarehouse wilde ik van twee dingen zeker zijn:

  1. Als het script mislukt, dan mogen er geen wijzigingen in de database zijn
  2. Als de update bezig is, mag er geen data worden uitgelezen in rapporten om er zeker van te zijn dat het rapport juiste data laat zien

Je kunt hiervoor het Transaction statement gebruiken in t-sql. Om er zeker van te zijn dat tijdens het uitvoeren van deze code er geen gegevens uit de tabel gelezen kunnen worden heb ik een kleine test gemaakt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-- creëer tabel
CREATE TABLE TransActionTest (nummer INT)
GO
;

-- voeg de waarde 1 toe aan tabel
INSERT INTO TransActionTest (nummer) VALUES(1)
GO
;

-- begin transactie
BEGIN TRAN
    BEGIN TRY
        INSERT INTO TransActionTest (nummer) VALUES (2)
        WAITFOR DELAY '00:01'   -- wacht 1 minuut (00:00:01 is 1 seconde)
        COMMIT TRANSACTION      -- commit de transactie en voeg de waarde toe aan de tabel
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION    -- rollback de transactie als er een error optreedt
    END CATCH

-- deze query in een apart venster aanroepen
-- binnen 1 minuut van bovenstaande query
SELECT
    nummer
FROM TransActionTest

Wat gebeurd er in deze test:

  • Er wordt een tabel gemaakt
  • In de tabel wordt het getal 1 toegevoegd
  • In een Transaction statement wordt waarde 2 toegevoegd aan de tabel, maar voordat dit wordt afgerond wordt er met een Waitfor statement 1 minuut gewacht
  • Als je tijdens die minuut wat probeert te doen met de tabel wordt er gewacht tot de transactie is afgerond
Posted in sql | Tagged , | Leave a comment

Bug met SSRS 2008 R2 en SharePoint

Vandaag liep ik tegen een bug aan met Reporting Services 2008 R2 in SharePoint 2010. Als ik een hyperlink op de volgende manier wilde maken met een Goto URL Action:

1
="http://sharepoint/page.aspx?Id="  & Fields!ID.Value

dan maakte SharePoint er de volgende URL van:

1
http://sharepoint/page.aspx?Id=1&Id=1

Een deel van de url werd dubbel in de url gezet waardoor de link niet werkt.

Blijkbaar is er al een connect item van aangemaakt en bestaat er een technet forum thread over.

Gelukkig is er ook een workaround door middel van het gebruik van javascript:

1
="javascript:window.navigate('http://sharepoint/page.aspx?Id=" & Fields!ID.Value & "');"
Posted in reporting services | Tagged , , | 2 Comments

SharePoint en Windows 7 UNC pad is erg traag

SharePoint benaderen via het UNC pad (\\sharepoint\site\bibliotheek\) kan op een Windows 7 machine erg traag zijn.

In deze thread op het technet forum staat de oplossing:

Ga in internet explorer naar Internet Opties –> Verbindingen –> Lan-instellingen

Vink in dit scherm Instellingen automatisch detecteren uit.

image

Ik kan je zeggen, het verschil is erg groot.

Posted in sharepoint | Tagged , | Leave a comment

SharePoint 2010 en metadata

SharePoint en metadata. Vaak een strijd tussen het optimaal gebruik maken van SharePoint en het hoog houden van de gebruikersacceptatie. Voor SharePoint kenners is het soms moeilijk uit te leggen wat metadata is en gebruikers vinden het maar lastig om al die extra gegevens toe te voegen.

Gebruikers zijn vaak echter allang gewend om met metadata te werken. Sinds dat ze een computer gebruiken werken ze echter al mee. Er is echter nooit het label metadata, taxonomie of classificatie aan gehangen.

Metadata; je doet het allang

Veel gebruikers vinden het vervelend om bijvoorbeeld deze gegevens toe te voegen aan aan Word document:

image

Maar de gemiddelde computer gebruiker vind het geen probleem om een document in een volgende mappenstructuur op te slaan:

image

En om daarna ook nog de bestandsnaam van een document aan te passen met extra gegevens zoals een datum en een versie nummer.

Het enige dat een SharePoint gebruiker in moet zien is dat hij in plaats van 10x klikken om in de juiste map te komen om het document op te slaan, hij of zij vier velden moet vullen.

Metadata; wat kan je er mee?

Ok, het besef is gekomen dat het toevoegen van metadata net zoveel of weinig moeite kost als het opslaan in een mappenstructuur. Maar wat kan je er dan mee?

De kracht van metadata zit hem in het snel vinden van informatie. Misschien beter te vertellen aan de hand van een voorbeeld:

Stel je voor, je krijg voor je verjaardag een cadeau, ingepakt in cadeaupapier met een grote strik er omheen. Je weet nog niets, maar je voelt al wel dat het een boek is. Je verwijdert het cadeaupapier en ziet dat het een boek is. Je leest de titel, de schrijver en op de achterkant een korte samenvatting van het boek. Je ziet dat het een kookboek is en en dat het recepten bevat voor bbq gerechten.

Met al deze gegevens weet je al heel veel over het boek en waar je het voor kan gebruiken zonder dat je nog maar een letter van de inhoud gelezen hebt. Deze metadata is dus erg nuttig om snel te kunnen bepalen wanneer het boek nuttig is.

Stel je nu voor dat je in een bibliotheek met documenten komt en aan de hand van metadata in één keer kan zien welke documenten nuttig voor je zijn. Zou dat niet geweldig zijn?

Met die toegevoegde metadata in SharePoint kan je informatie op heel veel manieren beschikbaar maken. Zo is de metadata beschikbaar voor zoeken, gebruik in weergaves en workflows en geeft het de mogelijkheid om data te filteren. Daarnaast kun je met sommige features van de standaard en enterprise versie filteren op metadata en regels maken voor het verplaatsen van content.

Meer weten?

Het idee voor deze blog post heb ik (met toestemming) overgenomen van Michal Pisarek. Een SharePoint professional die enige tijd geleden een blog heeft geschreven over dit onderwerp. Hij gaat dieper in op de mogelijkheden die SharePoint je geeft met metadata.

Link: The battle for Metadata in SharePoint 2010

Posted in sharepoint, sharepoint 2010 | Tagged , | Leave a comment

De nieuwe BI tool van Microsoft: project Crescent

Vandaag is de laatste dag van Microsoft Teched in Atlanta. Tijdens Teched wordt veel nieuws gepresenteerd over Microsoft producten. Waaronder de nieuwe SQL server versie met codenaam Denali.

Voor de eindgebruiker komt er een nieuwe tool aan in combinatie met PowerPivot en het SharePoint platform. Voorlopig hebben ze dit project Crescent genoemd. Project Crescent is tool om interactieve rapporten te bouwen. Bij de ontwikkeling hebben ze zich gericht op de eindgebruiker. De complexiteit is beperkt gehouden en het moet eenvoudig te gebruiken zijn. Daarnaast is het gebouwd op Silverlight waarmee het visueel aantrekkelijk wordt en ook interactief.

De teched video opname van die sessie staat online: Abundantly “Crescent”: Demos Galore.

Persoonlijk kan ik niet wachten tot dit uitkomt.

De andere sessies van teched:

De hele lijst met Teched video’s

Posted in business intelligence | Tagged , | Leave a comment

Een tweede of named instance van SQL Server installeren

Het is vrij eenvoudig om een tweede of named instance van SQL Server te installeren naast bijvoorbeeld een bestaande SQL Server installatie. Licentie, rechten of configuratie kwesties kunnen de aan de basis liggen voor het verzoek om een tweede SQL Server instance. Een tweede instance is van toepassing op een aantal SQL Server onderdelen, waaronder de database engine, maar ook reporting services en analysis services. Alhoewel ik niet zeker weet of het niet kan, is het wel handig om dezelfde SQL Server versies aan te houden.

Controleren op bestaande installaties

Voor je een tweede instance van SQL Server installeert is het handig om even na te kijken hoe de bestaande installatie is opgebouwd. Dit kun je bijvoorbeeld eenvoudig controleren door naar de draaiende services te kijken:

image

Bij een paar onderdelen zie je (MSSQLSERVER) staan. Dat betekent dat dit een standaard / default instance van SQL Server is. Een andere instance die je in de praktijk vaak tegen kan komen is die van (SQLEXPRESS), bij een standaard installatie van SQL Server Express.

Nieuwe instance toevoegen

Het toevoegen van een nieuwe instance is eigenlijk vrij eenvoudig. Je begint gewoon met een standaard installatie van SQL Server. In dit voorbeeld gebruik ik hiervoor SQL Server 2008 R2, maar voor andere versies werkt het op een soort gelijke manier.

image

Na een aantal stappen kom je uit bij het volgende scherm:

image

SQL Server laat hier al een bestaande installatie zien en geeft je twee opties. Een nieuwe installatie of features toevoegen aan een bestaande instance van SQL Server. In deze stap kies je voor de nieuwe installatie.

image

In bovenstaand scherm zie je de onderdelen die bij een instance horen en de onderdelen die gedeeld zijn. Hier kun je dus ook selecteren welke onderdelen je wilt gebruiken.

In het volgende scherm kun je een naam aangeven voor de nieuwe instance:image

Je kan hier alles gebruiken, maar ik zou SQLEXPRESS en MSSQLSERVER vermijden.

De volgende stappen zijn niet anders als bij een normale SQL Server installatie.

Controle van nieuwe instance

Nadat je installatie is afgerond kun jij bij services kijken of de nieuwe instance inderdaad is geïnstalleerd:

image

Verbinden met de nieuwe instance

Dat is eigenlijk ook vrij eenvoudig.

Normaal verbind je door het intypen van de servernaam:

image

Bij een instance moet je echter de naam van de instance toevoegen:

image

Dus: BD\BI in dit geval.

Posted in sql | Tagged , , , , , , , | Leave a comment

Gelukkig nieuwjaar!

Ik wil jou, de lezer, het beste wensen voor 2011.

DSC_9529

Posted in Uncategorized | Leave a comment