1. During the SSIS package development,
We can consider
Including variables and having the count of rows of important tables and details.
At the end, we can provide an email task,
to include the following details: (Choose what is better for your reqs)
Subject: [DBServer]: Package: [Package Name]: Success | FAILURE
Body:
Package: [Package Name] = Success | FAILURE @ Date & Time (Note: Either use here Date & Time or Started /Ended Date&Time)
Started: Date&Time (Optional - only use for long packages - including seconds)
Ended: Date&Time (Optional - only use for long packages - including seconds)
Variables:
BatchID: nnnn
Package Exec Key: nnnn
DatabaseName.SchemaName.TableName: Row Count:
DatabaseName.SchemaName.TableName: Row Count:
FYI Variable Values:
[Other Variables - including dynamic values, this will help in long term]
Tuesday, April 3, 2012
SSIS Tips
Monday, October 31, 2011
Thursday, June 30, 2011
Convert string into Camel Case - SSRS
Convert string into Camel Case - SSRS
You can simply use
=StrConv("MY unpropER CASE LiNe", vbProperCase)
Reference for strconv ...
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.strconv(v=VS.80).aspx
Tuesday, February 1, 2011
Design Pattern
In Software Engineering, a design pattern is a repeatable solution to a common problem occuring in software design. It is more of as description or template for how to solve the problem that can be used in different situations.
Design Pattern
- Set of guidelines
- Provided solutions for common software design problems
- Consists of one or several software design elements such as modules, interfaces, classes, objects, methods, functions, processes, threads, etc.,
- Relationships among the elements, and a behavioral description
Advantages:
- Improve the structure of software
- Simplify maintenance
- Shared language for communicating
- Separation of concerns
- Minimize logic needed in views
- Enhance testability
- Reduce development time
- Easy to customize applications
Disadvantages:
- Design pattern can be overkill in Simple UI
The Gang of Four (GoF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups: Creational, Structural, and Behavioral.
GOF: ??: The authors of the DesignPatternsBook came to be known as the "Gang of Four." The name of the book ("Design Patterns: Elements of Reusable Object-Oriented Software") is too long for e-mail, so "book by the gang of four" became a shorthand name for it. After all, it isn't the ONLY book on patterns. That got shortened to "GOF book", which is pretty cryptic the first time you hear it.
- Erich Gamma
- Richard Helm
- Ralph Johnson
- John Vlissides
DESIGN PATTERN CLASSIFICATIONS
- Creational patterns
- Structural patterns
- Behavioral patterns
| Creational Patterns | |
| Abstract Factory | Creates an instance of several families of classes |
| Builder | Separates object construction from its representation |
| Factory Method | Creates an instance of several derived classes |
| Prototype | A fully initialized instance to be copied or cloned |
| Singleton | A class of which only a single instance can exist |
| Structural Patterns | |
| Adapter | Match interfaces of different classes |
| Bridge | Separates an object’s interface from its implementation |
| Composite | A tree structure of simple and composite objects |
| Decorator | Add responsibilities to objects dynamically |
| Facade | A single class that represents an entire subsystem |
| Flyweight | A fine-grained instance used for efficient sharing |
| Proxy | An object representing another object |
| Behavioral Patterns | |
| Chain of Resp. | A way of passing a request between a chain of objects |
| Command | Encapsulate a command request as an object |
| Interpreter | A way to include language elements in a program |
| Iterator | Sequentially access the elements of a collection |
| Mediator | Defines simplified communication between classes |
| Memento | Capture and restore an object's internal state |
| Observer | A way of notifying change to a number of classes |
| State | Alter an object's behavior when its state changes |
| Strategy | Encapsulates an algorithm inside a class |
| Template Method | Defer the exact steps of an algorithm to a subclass |
| Visitor | Defines a new operation to a class without change |
More patterns
In software engineering, concurrency patterns are those types of design patterns that deal with multi-threaded programming paradigm. Examples of this class of patterns include:
Enterprise Application Integration (EAI) is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications. EAI is the discipline of integrating applications and data within the enterprise into automated business processes.
The Pattern Reference Model will describe as
- Business problem.
Ex: What is the business trying to do? In this we define the scope of the problem by decomposing the business topic into logical business areas from which the requirements for business services can be defined. This allows us to identify the business services needed to solve the business problem.
- Conceptual solution.
Ex: What is the shape of the IT solution? From these services, the first sets of IT services can be deduced and defined in a conceptual solution, and their business service levels can be described in the requirements.
- Logical solution.
Ex: What IT services do we need to realize the solution? In this we refine the IT services into more granular logical components, and mechanisms that are required to create the logical solution. In doing this we evaluate alternative ways of expressing the solution and choose the one we will take forward to implement.
- Physical solution.
Ex: With what infrastructural services will the solution be created? Now the logical solution is fully converted into a hardware and software topological diagram, with products and connections defined. This does not take much account of non-functional business requirements at this time, because it is a generic pattern. However it may identify variations (different options) that would be driven by a loose description of non-functional requirements (such as "very scaleable, very resilient" versus "small, inexpensive").
- Implementation solution.
Ex: How should the Microsoft technology be implemented in the solution? Finally we show more detail about how the Microsoft technology should be implemented in the particular physical configuration.
Tuesday, November 16, 2010
BI Interview ...
BI Interview – Donald Farmer BI Perspective
Today I want to share an amazing interview done by my friend Ella Maschiach’s with the “father” of Microsoft Business Intelligence… Mr. Donald Farmer. He’s responsible for the new amazing Microsoft products like Power Pivot and Sharepoint 2010. You can’t miss this interview. Ella… why do you not follow a career also as a journalist?
ehehhehehehehe
Tuesday, August 17, 2010
SSRS code - colour
http://blogs.msdn.com/bwelcker/archive/2006/09/26/End-of-Amnesia-_2800_Avoiding-Divide-By-Zero-Errors_2900_.aspx
http://blogs.msdn.com/davidlean/archive/2009/02/17/sql-reporting-how-to-conditional-color-1-4-the-basics-report-expressions-custom-code.aspx
Public Function ColorRYG_CTAS123(ByVal Value As Decimal, ByVal MaxPositive As Decimal
, ByVal MaxNegative As Decimal, ByVal Neutral As Decimal) As String
'Example: =code.ColorBack(expression, Max(expression), Min(expression), 0)
'=code.colorback( Fields!Sales.Value,max( Fields!Sales.Value),min( Fields!Sales.Value),0)
'Find Largest Range
'=code.colorback( Fields!Sales.Value,max( Fields!Sales.Value),min( Fields!Sales.Value),0)
'Find Largest Range
Dim decRange As Decimal
Dim decPosRange As Decimal = Math.Abs(MaxPositive - Neutral)
Dim decNegRange As Decimal = Math.Abs(MaxNegative - Neutral)
decRange = IIf(decPosRange > decNegRange, decPosRange, decNegRange)
'Force color into Max-Min Range. Important if you want to Clip the color display to a subset of the data range.
Value = Switch((Value > MaxPositive), MaxPositive, Value <>
'Find Delta required to change color by 1/255th of a shade
Dim decColorInc As Decimal = 255 / decRange
'Find appropriate color shade
Dim iColor As Integer = CInt(Math.Round((Value - Neutral) * decColorInc))
'Return Appropriate +ve or -ve color
Dim strColor As String
If iColor >= 0 Then
'Green
iColor = 255 - iColor 'Thus 0 = White & 255 = Green
strColor = "#" & iColor.ToString("X2") & "FF00"
Else
'Red
iColor = iColor + 255 'NB iColour is -ve; -1 - -255
strColor = "#FF" & Math.Abs(iColor).ToString("X2") & "00"
End If
Return strColor
End Function
Public Function ColorRYG_CTAS45(ByVal Value As Decimal, ByVal MaxPositive As Decimal, ByVal MaxNegative As Decimal, ByVal Neutral As Decimal) As String
'Example: =code.ColorBack(expression, Max(expression), Min(expression), 0)
'=code.colorback( Fields!Sales.Value,max( Fields!Sales.Value),min( Fields!Sales.Value),0)
'Find Largest Range
Dim decRange As Decimal
Dim decPosRange As Decimal = Math.Abs(MaxPositive - Neutral)
Dim decNegRange As Decimal = Math.Abs(MaxNegative - Neutral)
decRange = IIf(decPosRange > decNegRange, decPosRange, decNegRange)
'Force color into Max-Min Range. Important if you want to Clip the color display to a subset of the data range.
Value = Switch((Value > MaxPositive), MaxPositive, Value <>
'Find Delta required to change color by 1/255th of a shade
Dim decColorInc As Decimal = 255 / decRange
'Find appropriate color shade
Dim iColor As Integer = CInt(Math.Round((Value - Neutral) * decColorInc))
'Return Appropriate +ve or -ve color
Dim strColor As String
If iColor >= 0 Then
'Green
iColor = 255 - iColor 'Thus 0 = White & 255 = Green
strColor = "#" & iColor.ToString("X2") & "FF00"
Else
'Red
iColor = iColor + 255 'NB iColour is -ve; -1 - -255
strColor = "#FF" & Math.Abs(iColor).ToString("X2") & "00"
End If
Return strColor
End Function
Public Function ColorRYG_Admissions(ByVal Value As Decimal, ByVal MaxPositive As Decimal, ByVal MaxNegative As Decimal, ByVal Neutral As Decimal) As String
'Example: =code.ColorBack(expression, Max(expression), Min(expression), 0)
'=code.colorback( Fields!Sales.Value,max( Fields!Sales.Value),min( Fields!Sales.Value),0)
'Find Largest Range
Dim decRange As Decimal
Dim decPosRange As Decimal = Math.Abs(MaxPositive - Neutral)
Dim decNegRange As Decimal = Math.Abs(MaxNegative - Neutral)
decRange = IIf(decPosRange > decNegRange, decPosRange, decNegRange)
'Force color into Max-Min Range. Important if you want to Clip the color display to a subset of the data range.
Value = Switch((Value > MaxPositive), MaxPositive, Value <>
'Find Delta required to change color by 1/255th of a shade
Dim decColorInc As Decimal = 255 / decRange
'Find appropriate color shade
Dim iColor As Integer = CInt(Math.Round((Value - Neutral) * decColorInc))
'Return Appropriate +ve or -ve color
Dim strColor As String
If iColor >= 0 Then
'Green
iColor = 255 - iColor 'Thus 0 = White & 255 = Green
strColor = "#" & iColor.ToString("X2") & "FF00"
Else
'Red
iColor = iColor + 255 'NB iColour is -ve; -1 - -255
strColor = "#FF" & Math.Abs(iColor).ToString("X2") & "00"
End If
Return strColor
End Function
Friday, June 4, 2010
Recruitment Sources
- 6 Figure Jobs
- AGT
- Albertajobs.com
- Arqana Technologies
- BC TEL
- CLEARNET
- Calgaryjobshop
- CallCareers.com
- CanadaIT.com
- Canjobs.com
- CareerEdge
- Columbus Group
- Daedalian
- Dice
- ED TEL
- EdmontonJobShop
- HigherBracket
- Hire Ground
- HotJobs.com
- Job Bank - Gov't of Canada
- Jobboom
- Jobshark
- Monster
- Monster.com
- NWD Systems (Calgary) Inc.
- Nicejobs
- OfficeJobs.com
- OttawaJobShop.ca
- QUEBEC TEL
- QUEBEC TEL Mobilite
- ReginaJobShop
- SaskatoonJobShop
- Sprott-Shaw
- T-Net
- TELUS
- TELUS Mobility
- Tactics for Success
- WeHire.ca
- Williams Communications Canada Inc.
- WinnipegJobShop
- WorkingCalgaryJobs.com
- Workopolis Campus
- Yummy Mummy Careers
- bctechnology.com
- callcentrejob.ca
- jobsfordads.com
- realpac.ca
- salesjobsCanada.com
- working.com
- workopolis.com
Asp.net / Ajax
To Create Ajax - Loading image creators
- http://www.ajaxload.info/ - The site contains very good image creators
Enterprise Library Walkthroughs
Thursday, June 3, 2010
Tools - Series one more
Free software
- AjaxControlToolKit 3.5 SP1 http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=16488 to install see http://www.asp.net/learn/Ajax-Control-Toolkit/tutorial-47-cs.aspx (dropped as menu achieved by other means)
- Expresso http://www.ultrapico.com/Expresso.htm
- Chrome http://www.google.co.uk/chrome
- Code Burner from http://tools.sitepoint.com/codeburner/firefox/
- ComponentOne Community Spell Checker http://www.componentone.com/SuperProducts/IntelliSpell/
- Depends http://dependencywalker.com/
- DevExpress DxCore http://www.devexpress.com/Products/Visual_Studio_Add-in/DXCore/ (needs free logon)
- Fiddler2 http://www.fiddler2.com/fiddler2/version.asp
- Firebug from http://getfirebug.com/
- Firefox from http://www.getfirefox.net/
- FoxIt reader (replacement for Adobe Acrobat reader) from http://www.foxitsoftware.com/pdf/reader/reader-interstitial.html
- Framework Design Studio http://code.msdn.microsoft.com/fds/Release/ProjectReleases.aspx?ReleaseId=2183
- FXCOP 1.36 http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en
- GadWin PrintScreen 4.3 http://www.gadwin.com/download/
- GhostDoc http://submain.com/products/ghostdoc.aspx
- HTMLHelpWorkshop 1.0 http://msdn.microsoft.com/en-us/library/ms669985.aspx
- Linq Visualiser http://www.scottgu.com/blogposts/linqquery/SqlServerQueryVisualizer.zip
- LinqPad http://www.linqpad.net/
- Microsoft Application Verifier http://www.microsoft.com/downloads/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&displaylang=en
- Microsoft Source Analysis for C# http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425
- Notepad++ http://notepad-plus.sourceforge.net/uk/download.php
- NUnit (version 2.5.5) http://www.nunit.org/index.php?p=download
- PartCover http://sourceforge.net/projects/partcover/
- Programmers File Editor http://www.lancs.ac.uk/staff/steveb/cpaap/pfe
- Reflector from http://www.red-gate.com/products/reflector/
- Reflector add-ons from http://www.codeplex.com/reflectoraddins
- Sandcastle http://sandcastle.codeplex.com/releases/view/13873
- Sandcastle Help Builder http://shfb.codeplex.com/releases/view/2971
- Sandcastle Styles http://sandcastlestyles.codeplex.com/
- Secunia patch tool from http://secunia.com/vulnerability_scanning/personal
- SoapUI http://sourceforge.net/projects/soapui/files/ or http://www.soapui.org/
- Source Monitor http://www.campwoodsw.com/sourcemonitor.html
- SSMS Tools http://www.ssmstoolspack.com/Download
- UltiDev Cassini http://ultidev.com/download/CassiniDownload.aspx
- Visual Studio 2005 SDK http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=51a5c65b-c020-4e08-8ac0-3eb9c06996f4&displayLang=en
- Web Service Interoperability Tests from http://www.ws-i.org/deliverables/workinggroup.aspx?wg=testingtools
- Xenu Link Checker from http://home.snafu.de/tilman/xenulink.html
- XML Notepad 2007 http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en
- XPath Tester http://www.vikasumit.com/vsXPathTester.aspx
- 7-Zip from http://www.7-zip.org/download.html
Paid for software
Visual Studio 2008 Pro (however code should be usable by VS2008 express versions)
SQL2005/2008 Developer Edition (however TSQL should be usable by express versions)
ReSharper.Com http://www.jetbrains.com/resharper/download/ was used to optimise the code.
Vipre from http://www.sunbelt-software.com - an excellent anti-virus and anti-spyware program.
Thursday, May 6, 2010
SSRS Dates Fun
SSRS 2005
If you want to set the parameter / textbox with Date to format ... You can try this.
=Format(Today(), "yyyyMMdd")
If you want to subtract (or add), you can try the below syntax
=Format(DateAdd("d", -1, Today()), "yyyyMMdd")
=Format(DateAdd(DateInterval.Day, -1, Today()), "yyyyMMdd")
MSFT did not provide full details ... but this one will helpful
Subscribe to:
Posts (Atom)