3 people following this project (follow)

Project Description

Credit Card Number Validator 05 (CCNV05) is a Custom SSIS Data Flow Transformation Component that determines whether the given input is a valid credit card number or not. CCNV05 takes String/Numeric input and performs a Synchronous, Non-Blocking transformation using Luhn Mod 10 algorithm and validates whether the input is a valid credit card number or not. The output is true if the input is a valid credit card number and false otherwise. CCNV05 is compatible with SQL Server 2005. If you are looking for SQL Server 2008 version of this component, check out this CodePlex project CCNV08

For a detailed reference about CCNV05 check-out this blog post on Custom SSIS Data Flow Component – Credit Card Number Validator

Features of CCNV05

  • Built for SQL 2005, source code written in C#
  • Provides a similar UI as out-of-box SSIS component
  • Accepts String/Numeric input that can be sourced from any out-of-box SSIS Data Source.
  • No limit to the number of input columns that can be fed into the component.
  • Non-Blocking, synchronous and high-speed validation using widely-used Luhn Mod10 algorithm
  • Automatically creates an output collection for each corresponding input column.
  • Provides an Error Collection to channel exception data
  • Output columns (result) are in Boolean, which can be immediately used with conditional split component.

Deployment Instructions

Follow this blog post - Steps to Build and Deploy Custom SSIS Component to build the source code and deploy the CCNV05 component to BIDS. If you are downloading just the assembly, steps 1&2 can be skipped and start from Step 3.

Debugging Instructions

Custom SSIS Components consists of Design-time methods and Run-time methods. Debugging a Design-time method is different from a Run-time method. This blog post – Debugging Custom SSIS Components explains the techniques to debug both Design-time methods and Run-time methods.

Author's Blog

http://bennyaustin.wordpress.com

Recent Blog Posts

Some of my recent BI posts
 Benny Austin News Feed 
Wednesday, February 22, 2012  |  From Benny Austin

The default SSIS log provider for SQL Server captures package trace in sysssislog table. It does capture some useful but limited trace information about the package execution. This trace is of little use without user defined variable values like record count, status flags, control metadata, selection from and to dates etc. By combining your execution log with sysssislog, you could take advantage of SSIS logging capabilities and customize it for your specific logging requirements. Continue reading »

Wednesday, January 25, 2012  |  From Benny Austin

This post discusses the challenges for the ETL to handle Late Arriving Dimensions/Early Arriving Facts. and proposes solutions to tackle these challenges and optimize the ETL for Late Arriving Dimensions. Continue reading »

Monday, November 07, 2011  |  From Benny Austin

So you have several cubes to build and perhaps wondering what is the best way to build and deploy your cubes. Should you build all the cubes within the same Analysis Service database or create one database per cube? While there are benefits of having all cubes in one database there are scenarios where having one cube per database might be just as helpful. The following guidelines might help you to choose the best approach to build and deploy your SSAS cubes. Continue reading »

Saturday, October 29, 2011  |  From Benny Austin

SSAS provides Process Incremental as one of the processing options for cubes, measure groups and partitions. It is important to understand how Process Incremental works because it differs significantly from the seemingly equivalent Process Update for dimensions. Continue reading »

Monday, July 25, 2011  |  From Benny Austin

This post is about troubleshooting and finding a workaround for this exception - [Analysis Services Execute DDL Task] Error: Internal error: An unexpected error occurred (file 'mdinfo.cpp', line nnnn, function 'MDInfo::Init').
Continue reading »

Monday, July 25, 2011  |  From Benny Austin

This post is about troubleshooting and finding a workaround for this exception - [Analysis Services Execute DDL Task] Error: Internal error: An unexpected error occurred (file 'mdinfo.cpp', line nnnn, function 'MDInfo::Init').
Continue reading »

Monday, July 25, 2011  |  From Benny Austin

This post is about troubleshooting and finding a workaround for this exception - [Analysis Services Execute DDL Task] Error: Internal error: An unexpected error occurred (file 'mdinfo.cpp', line nnnn, function 'MDInfo::Init').
Continue reading »

Wednesday, July 20, 2011  |  From Benny Austin

'A fact relationship cannot be defined. The dimension and measure group must be based on the same table in the same data source view.' If you get this message when defining the relationship type as Fact between the measure group and Degenerate/Fact dimension, what could possibly go wrong especially when the second part of the message clearly tells what needs to happen? Continue reading »

Tuesday, July 05, 2011  |  From Benny Austin

Some coding tips when using Analysis Management Objects (AMO) methods Continue reading »

Tuesday, May 24, 2011  |  From Benny Austin

Analysis Management Objects (AMO) opens up the object model of SSAS cube for programming. With a bit of .NET programing, AMO can be effectively used to automate administration tasks. Securing the cube is one such task that can be easily automated using AMO. The rest of this post explains how to automate cube security using AMO.

Wednesday, March 23, 2011  |  From Benny Austin

A Role Playing Dimensions reuses its definition to represent same concept in different contexts. Common example of Role Playing Dimension is date dimension. For instance, date dimension can be used to represent order date, delivery date and shipment date. Currency, staff, organisation hierarchy are other dimensions that are usually role played. While Role Playing Dimensions promote dimension reuse and share dimension data security, the effect on cube browsing must also be considered.

Tuesday, March 01, 2011  |  From Benny Austin

SSAS Dynamic Management Views (DMV's) are very useful to query metadata of a cube. For developers, this is quite handy to provide simple documentation of the cubes they build.

Saturday, February 05, 2011  |  From Benny Austin

Dataflow Discoverer (DFLD) is a command-line discovery utility that detects and writes the metadata of SSIS dataflow columns to a SQL Server lookup table. DFLD detects Dataflows nested within containers up to any level of nesting.DFLD works on one package at a time. It's a typical ops requirement to keep the DFLMetadata of all SSIS packages up to date. In this post a technique is described to automate refresh of dataflow column metadata.

Friday, February 04, 2011  |  From Benny Austin

SSIS automatically creates two columns on the Error Output from dataflow components - ErrorColumn and ErrorCode. ErrorColumn contains the column ID of the erroneous column. Column ID is a number that is unique to a dataflow within the package. Similarly ErrorCode contains the error number that caused the row to be rejected. At the moment, SSIS by default does not provide ErrorColumn name and ErrorCode description. This post describes a technique to get the name of ErrorColumn.

Friday, February 04, 2011  |  From Benny Austin

Dataflow Discoverer (DFLD) is a command-line discovery utility that detects and writes the metadata of SSIS dataflow columns to a SQL Server lookup table. DFLD detects Dataflows nested within containers up to any level of nesting.

Tuesday, November 16, 2010  |  From Benny Austin

This post highlights the differences between Analysis Services and PowerPivot in 30 seconds.

Wednesday, September 22, 2010  |  From Benny Austin

If you recently upgraded to SQL Server 2008 or considering an upgrade, you would be glad to know that the Deployment Wizard of Analysis Services works in the way it should.Roles retain their existing permission to cubes and mining structures after deployment. Existing permissions are not lost. Dimension Data and Cell Data permissions are preserved in the role definition after deployment. And Role membership stays put.

Sunday, September 19, 2010  |  From Benny Austin

Analysis Service supports role based model to secure cube data. Data can be secured at object level, cell level (Cell Data Access) and at member level (Dimension Data Access). A user can be a member of more than one role and it is important to understand the behaviour of Analysis Services role permissions in such a scenario. Analysis Services role permissions are additive in nature. This means if you are a member of a role that has been granted access to an Analysis Service object; you have access to that object even if you belong to another role which denies access to the same object. In other word the least restrictive roles permissions override the most restrictive role permissions. This could throw some nasty surprises that you never expected.

Sunday, August 08, 2010  |  From Benny Austin

The greatest strength of PowerPivot is the ability to create relationship with different sources of data and piggyback on this relationship for various kinds of analysis. PowerPivot relationship requires one-to-many relationship between the parent and child tables. But what happens if the relationship between parent and child tables is many-to-many instead? For e.g. you might want to establish a relationship between a fact table that has a Business Key to the dimension table and that dimension table maintains history. In this post I explain how to establish a relationship between two tables that do not exhibit one-to-many relationship on their Business Key using a technique that is similar to an ETL Type 2 SCD lookup using Data Analysis Expressions (DAX).

Wednesday, July 14, 2010  |  From Benny Austin

Pivoting is typically used in DW solutions to load multi-valued dimensions. In my earlier post, I demonstrated how SSIS Pivot component works and the advantages of using SSIS Pivot component over its equivalent T-SQL Pivot statement. In this post, I explain a technique to Pivot data when Pivot Column is not explicitly available.

 Benny Austin News Feed 


Last edited Apr 25 2010 at 1:36 PM by BennyAustin, version 8