Pages

Friday, December 14, 2012

New Cheque Truncation System (CTR) to reduce clearance time

Considered to be a major milestone in the history of Indian banking, Cheque Truncation System (CTS) aims to make cheque clearance more efficient and reduce the clearance time of cheques to one day, thereby trimming down the floating time considerably. India processes as many as 1.2 billions cheques annually and therefore, the implementation of this system would drastically cut down the waiting period involved. The system will be implemented nationwide from January 1, 2013.

CTS cheque sample

How does it work?

An online image-based cheque clearing system, the collecting bank branch would deploy scanned images along with the magnetic ink character (MICR) of the cheque which will be sent out electronically using their Capture System, removing the need for physical/manual transfer of cheques. The captured images and the data is then signed and encrypted and sent to the Clearing House or the central processing location and thereafter forwarded to the drawee or paying bank.

This helps speed up the cheque collection process that eventually helps provide better and faster customer service.

Key Features of Cheque Truncation System
  • User friendly graphic user interface
  • Automated coding and endorsing of cheques
  • Encryption of data file before transmission to the clearing house or the service branch
  • Employs a unique transaction follower process to confirm the status of cheque
  • Improved and efficient settlement and prevention of fraud
  • Equipped with enhanced archival procedure that stores images and data facilitating report generation along with future enquiry
  • Alerts RMs in case of return of cheque due to insufficient funds


New cheque leaf


Impact of CTS on Customers

Handling of EMIs with the Introduction of CTS

In cases where customers have issues post-dated cheques (PDC) for payment of monthly installments towards an ongoing loan, they would need to issue fresh cheques to the bank or service provider as per the new directive on CTS by the RBI. The replacement of these cheques needs to be done latest by December 31, 2012 and is applicable on all banks and NBFCs.

Encashment of Old Cheques

If you have an old cheque with you, you should get it encashed by December 31, 2012. The RBI mandate states that payments for such cheques will be honoured only till then.

Banks need to issue the new types of CTS-compliant cheque books with the prescribed features to all their customers latest by December 31, 2012. Customers may need to surrender their old cheque books or cancel them and show proof of cancellation. No replacement fee will be charged by the bank for issuing new cheque books

Apart from these aspects, the system does not, in any way, affect the way things function for a customer. They would continue using cheques as they do currently; however, cheques that have been altered or modified will not be permissible under the new system. The other precautions that need to be taken while issuing or writing a cheque are:
  • Ensure that all details are clear and readable, using black or blue ink
  • Write the name of the payee, amount and the date and sign the cheque correctly.
  • In case you use seals on the cheque, ensure that they are imprinted in a manner that they do not mask or hide the other important fields of the cheque.
Benefits of CTS for Customers

There are many benefits of the cheque truncation system from the perspective of a customer.
  • Clearance cycle gets shortened - As this system is being implemented, the physical or manual movement of cheques for clearance has ceased. With cheques being transmitted electronically, the settlement process becomes quicker, facilitating reduction in the clearance cycle.
  • The fear of loss of cheques during transfer from the collecting bank to the drawee or payee bank is eliminated.
  • Limitations of the current clearance system with respect to jurisdiction and geography are eradicated. This enables integration and consolidation of several clearing locations across various banks offering different service levels into one standard clearance system applicable throughout the country.
  • CTS helps reduce the scope of fraud significantly. Moreover, the electronic transmission is quick and allows early detection of fraud or any alteration with respect to the payee, amount or the issuer of the cheque. CTS prescribe minimum security features under ‘CTS-2010 standards’ along with superior verification process that further facilitates in the reduction of frauds.
  • The operational efficiency of both the bank as well as the customer is enhanced with the introduction of this system.
Make sure you have valid cheque by 31st December, 2012

Thursday, November 29, 2012

Dynamic query and Varbinary


Recently, I came across a strange issue when working with dynamic SQL query along with varbinary data type. I need to insert user’s uploaded image into database.

Because I have multiple varbinary columns to store images, I thought of using single stored procedure to handle insert or updated and that too with single varbinary input parameter along with the intended column.

We build dynamic SQL query and formatted it with the column name as well as binary array (image) content as input parameter. See below:

Set @Query = 'INSERT INTO [dbo].[DashboardImage]( [MemberID], ' + @Field + ')VALUES('+ convert(varchar(max), @MemberID) +','+ cast(@Value as varchar(max)) +')'

Where the input parameter declared as:

@Value varbinary(max),
@Field varchar(200),

When compiled everything was fine. However, when executed with input parameters the query produces type conversion errors like "Cannot convert value from varchar to varbinary" or “Explicit conversion from data type  to varchar is not allowed” or "String or binary data would be truncated."

After going through online resources I got a solution as predefined function “master.dbo.fn_varbintohexstr(@Value)” within Master database which will convert varbinary data type to a varchar or string.

So, here is the new dynamic query which solved our problem

Set @Query =  'INSERT INTO [dbo].[DashboardImage]( [MemberID], ' + @Field + )VALUES('+ convert(varchar(max), @MemberID) +','+ master.dbo.fn_varbintohexstr(@Value) + ')'

And finally to execute the query

EXEC(@Query)



Happy Coding

Thursday, November 15, 2012

10 Outdated Management Practices to stop today

You might not feel it day-to-day, but business management is in a major transition.  The old days of command-and-control leadership are fading in favor of what might be better termed a trust-and-track method, in which people are not just told what to do, but why they are doing it.  More formally, we're moving from what was called "transactional" leadership to "transformative" leadership. And there's no turning back.

Here's my list of "old school" practices you ought to chuck, and "new school" practices to champion instead:

#1
Out: Micro-management, or the need to control every aspect of your company.
In: Empowerment, the ability to give your people some rope--even rope to make mistakes without blame.

#2
Out: Management by walking around the office; it is no longer enough to be visible.
In: Leadership by watching and listening, engaging in conversation, implementing the ideas presented to you, and distributing the results.

#3
Out: Pretending you know everything. You don't have all the answers, so why try to make people think you do?
In: Knowing your leadership team members and trusting them. Choose great people who have the right skills and fit the culture.  And get out of the way.

#4
Out: No mistakes, or a "no tolerance policy" some still think works.
In: Learning from mistakes, or being the first to admit an error.

#5
Out: The balance sheet drives the business, and informs all other decisions.
In: People drive the business, boosting customer loyalty, and profit.

#6
Out: Job competency is sufficient. Do the job asked, and you'll survive.
In: Recruit "A" players who will go the extra mile. They're out there.

#7
Out: Invest in technology to increase productivity.
In: Invest in people.

#8
Out: Demand change; be very specific about what you want and when.
In: Nurture change; your people can come up with the best ideas and you can give them credit for it.

#9
Out: Fried food in the cafeteria.
In: Wellness in the workplace.

#10
Out: Incentives; pay employees more money and they'll do more.
In: Rewards; being valued matters more than money.

So ask yourself which of these out-of-date practices you're still using.

Original Post

Saturday, November 10, 2012

24 hr Gold Index

Here you can get the current international Gold index in Rupees (र - INR) per Gram

[Most Recent Quotes from www.kitco.com]


The actual market market may vary depending upon your location

Bookmark this page to get updated Gold index in rupees.

Thursday, November 8, 2012

24 hr USD - INR Value

Here you can find the current Indian Rupee (र - INR) index against US Dollar ($ - USD)

[Most Recent Exchange Rate from www.kitco.com]


Bookmark this page to your browser and get updated INR value against USD

Tuesday, August 21, 2012

The Ten Commandments of Source Control

There are a number of great version control systems out there; the most important thing is to pick one and learn to use it effectively. No matter which source control system you decide to use, there are a number of universal principles that will help you to get the most out of source control.

1. Always use source control

There is no reason not to use source control. Even for a solo project. Even for a toy project. Even if you never make mistakes. Just use it. Source control offers so many benefits like rollbacks, code diffs, backups, and commit logs that every project will benefit from it.

2. Don't break the build

Don't commit code if it breaks the build. You don't want to force other people to sift through your code looking for the problem that broke the build before they can continue with their own work.

3. Commit early, commit often

Don't go dark. Committing early and often gives you a backup, an incremental log of progress, easier merges, and lets the team know what you are doing.

4. Remove unused code immediately

Don't commit code with large blocks of old code commented out or unused, deprecated functions. If you need to get this code back at some point, you can always get it from the repository. Keep the current working copy of the source as clean and cruft-free as possible.

5. Keep a good commit log

Leave good comments in the commit log. Searching the commit log should allow you to find which commits implemented a specific feature or fixed a specific bug. Skimming the commit log should provide a good history of the project and give some hints as to it's maturity.

6. White spaces

Don't commit white space, formatting, or code style changes at the same time as other changes. If you must make these types of changes to the code base, commit them separately. This will keep the diffs vastly more readable.

7. Minimal Changeset

When doing bug fixes, make the minimal set of changes needed to fix the bug. If a rewrite of a module is really in order, do the rewrite, but err on the side of making the absolute minimal set of changes needed to fix the bug. This way the change log will clearly reflect the exact source of the bug and the changes needed for the fix.

8. One bug fix per commit

Again, keep the change log clear by doing only one bug fix per commit (unless multiple bugs are very closely related). One bug fix per commit makes rollbacks easier and leaves a clear track of how the bug was fixed that will be valuable later if a regression test fails or if the fix created unintended side effects.

9. Notify the team of new commits

Other team members working on the code base should be immediately and automatically notified of any changes that have the potential to affect them. This could be setup in different ways depending on the project and the workflow used by the team. One of the easiest and most effective ways to set this up is an automated email including the commit message and the diff to all members of the team working on that particular module. Notifications keep all team members appraised of the current state of the code and give them a heads up if they are likely encounter problems merging their own code.

10. Integrate source control with other tools

Source control should be integrated with other tools used on the project like bug tracking, continuous integration, and IDEs. This makes it easy to cross-reference the commit that fixed a bug, created a bug, or broke the build. Integration with an IDE gives you the option to do source control operations like diff, status, and commit within the IDE without having to drop to the command line or a separate tool.
The above basic principles of version control will make you effective with any type of version control system out there. Have more source control tips? Leave them in the comments.
The terms 'version control', 'source control', and 'revision control' are used interchangeably here. Original source of the blog.

Friday, February 10, 2012

How Good/Bad Windows Updates can be...


A recent security update “Microsoft Security Bulletin MS11-100 - Critical” from Microsoft made our asp.net application (some pages) to crash which is hosted on IIS Server running on Windows Server 2008.

Following are the error messages from the log:
1.       Operation is not valid due to the current state of the object.
2.       The URL-encoded form data is not valid.

The two strange error messages made me busy for the next half an hour. After some research I came to know that the server had undergone a critical security update. Though, it is common for the server to auto update windows features.. this time there was a critical security update which involves all versions of .Net framework.

We tried to add new appSetting Key/Value in web config file to fix the issue.

<add key="aspnet:MaxHttpCollectionKeys" value="2001"/>
MS Windows auto update feature is good which keeps your system up to date. However, the latest security update created a technical glitch.

Wednesday, January 4, 2012

Converting a DataSet to XML node excluding Schema

In this blog post I'm going to explain you on how to return an object of type "DataSet" from a web service (SOAP) method.
 
In general when we return any type from a web method, it returns XML formatted string which then need to be parsed to get the resultant output. Whether it is a simple or any complex object type like Collections or generic list


However, when we returning a DataSet the resultant output will include table data along with the Schema.

So, if we need data with schema then it is well & good. 
What can we do to get only data and eliminate the schema from the DataSet?

The following code explains how we can achieve this:

DataSet ds = //... Use your logic to get DataSet from some DB/source
string xmlContent = ds.GetXml(); 
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(xmlContent);
System.Xml.XmlNode newNode = doc.DocumentElement;
return newNode;

GetXml method will return all the xml code in string variable for the corresponding DataSet (including schema).
Creating an XmlDocument object and load the Xml string using LoadXml method
Then we need to return DocumentElement of XmlDocument class to get only data excluding schema.

There is another technique to do the same with less effort, using Linq. Although, I never tried this to confirm..
//// When Using LINQ
//XElement newNode = XDocument.Parse(xmlContent).Root;

Try this and let me know if there are any other ways...