Saturday, November 21, 2009

Batch Program to Rename file with date & counter

One of my interface development requirements specified to take backups of a file with the prevailing sysdate appended.
Hence i sat down to see how this could be achieved with Batch Programming as my environment was Windows Platform.

An initial code was adapted from MSFN Forums & it behaved very well:

@Echo off
rem Original Batch File Code Location:
rem Adapted By: Shalabhsneha Katdare (SHALABHKATDARE AT GMAILDOTCOM)
rem Reading input file
If "%1" EQU "" (
 Echo You must use parameter - name of file to rename.
 Goto :EOF
    ) ELSE (
 Set strFile2Rename=%1
If not exist %strFile2Rename% (
    Echo %strFile2Rename% was not found!
    Goto :EOF
For /f "usebackq delims=. tokens=1,2" %%i IN (`echo %strFile2Rename%`)    Do Set strFileExtension=%%j

rem Main code
rem Reading date format, converting and saving date
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo.^|date') do (
 set A=%%a&set B=%%b&set C=%%c)
set t=2&if "%date%z" LSS "A" set t=1
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo.^|date') do (
 for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
   set dd=%%d&set mm=%%e&set yy=%%f))

ren %strFile2Rename% File_%dd%-%mm%-%yy%.%strFileExtension%
Echo File %strFile2Rename% is renamed to File_%dd%-%mm%-%yy%.%strFileExtension%

cmd:\>rename2date filename.fileext

As you could see this was the perfect thing which i wanted. But soon i faced a major bottleneck!
The backup location was common for all the files. Hence in a given day, if i needed to take backup of the same file again, the batch program failed as the file formed upon renaming will be pre-existing from the backup taken earlier.

This evolved my initial requirement to a batch program doing rename with sysdate & counter added to it so that multiple renames in day could be supported for the same file.
Further modification to the initial above logic resulted into below code:

@Echo off
rem Original Batch File Code Location:
rem Adapted By: Shalabhsneha Katdare (SHALABHKATDARE AT GMAILDOTCOM)
rem v1.1 [Added counter facility alongwith date. So we can rename a file multiple times on a given day!]
rem v1.0 [Plain rename facility without counter, i.e. on a given day the file can be renamed only once!]
rem Reading input file
set count=1
If "%1" EQU "" (
 Echo You must use parameter - name of file to rename.
 Goto :EOF
    ) ELSE (
 Set strFile2Rename=%1
If not exist %strFile2Rename% (
    Echo %strFile2Rename% was not found!
    Goto :EOF
For /f "usebackq delims=. tokens=1,2" %%i IN (`echo %strFile2Rename%`)    Do Set strFileExtension=%%j
For /f "usebackq delims=. tokens=1,2" %%i IN (`echo %strFile2Rename%`)    Do Set strFile=%%i
rem Main code
rem Reading date format, converting and saving date
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo.^|date') do (
 set A=%%a&set B=%%b&set C=%%c)
set t=2&if "%date%z" LSS "A" set t=1
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo.^|date') do (
 for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
   set dd=%%d&set mm=%%e&set yy=%%f))

rem Renaming the file with date & counter
set FileCheck=%strFile%_%dd%-%mm%-%yy%_%count%.%strFileExtension%
If not exist "%FileCheck%" ( 
ren %strFile2Rename% %strFile%_%dd%-%mm%-%yy%_%count%.%strFileExtension% 
Goto :EOF
) ELSE (
set /a count=count+1 

cmd:\>rename2date filename.fileext

If you see the revision in code, i have just made a simple recursive call so that until a file (Filename formed post rename) is existing we would loop to increment the counter so that we finally arrive at unique filename with sysdate & a counter permitting us multiple renames on any given day for same file.

One thing which i struggled with Batch Programming is, its very sensitive to its syntax semantics. If a brace or two are not properly placed, the program would throw a annoying error of "The syntax of the command is incorrect"

It is difficult to trace where exactly is the syntax error coming from, but a quick echo ON helps & guides to correct directions.

So finally i have my batch program to rename a file with date & a counter :-D

how to rename multiple files, batch file rename, windows batch file rename, rename files, rename files windows, mass rename files, file rename program, file rename tool, quick file rename, batch file, batch file renamer, batch file renaming, batch file programming dos, windows batch file, file renamer, rename file, batch file commands, batch file command, bat files, bat file, batch files, multiple rename, batch script, batch scripting, batch program, windows scripting, windows scripts, DOS, etc

Friday, November 20, 2009

Embed Code Syntax Highlighting in Blog

Hi Friends,

If you are a developer & want to share your code over the blog with proper highlighting & syntax, then Blogger/Wordpress doesn't have the immediate solution out here!

A quick workaround for Blogger can be to embed your source between:
tags in order to prevent them from getting parsed.

But for the formatting & highlighting used to quote above
example, an excellent open source tool called SyntaxHighlighter is available.

This is ready to use out of box 100% Javascript based SyntaxHighlighter with extensive features & multiple other options.

SyntaxHighlighter can be either downloaded & used on your own webserver or if you have a blog on Blogger, this can be directly used as well.

To downloaded SyntaxHighlighter for your own personal Webserver/Hosted Site:
Configuration Steps:
Brush Aliases:

In order to install & use it on Blogger, follow the below simple steps:
1) Go to your Template Layout->Download your template as a backup first
2)Now click Edit HTML for Layout & then paste the below code in your Template before your </head> tag ends. Note this is pointing to the Latest released version v2.1.364; older versions can be found at:

<link href='' rel='stylesheet' type='text/css'/> 
<link href='' rel='stylesheet' type='text/css'/> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script src='' type='text/javascript'></script> 
<script language='javascript'> 
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.config.clipboardSwf = '';

3)Save the template & open you blog in IE & Firefox to test if any javascript errors are reported as this might conflict with various other embedded scripts in your template.

This completes the direct embedding of SyntaxHighlighter in your Blog. Now lets proceed how to use it in your posts:

For SyntaxHighlighter 2.0 & above:
Any code you want to be placed & displayed using SyntaxHighlighter must be enclosed in:

<script type="syntaxhighlighter" class="brush: html"><![CDATA[
#######YOUR CODE############

Note that we have option of using different brushes for highlighting different type of codes..e.g. HTML/ASP/C++ etc
In order to choose the appropriate brush, following are the various brush aliases supporting the corresponding code highlighting:
bash, shell
c-sharp, csharp
cpp, c
delphi, pas, pascal
diff, patch
js, jscript, javascript
jfx, javafx
perl, pl
plain, text
ps, powershell
py, python
rails, ror, ruby
vb, vbnet
xml, xhtml, xslt, html, xhtml

Above aliases can be used at: class="brush: alias" while embedding your code in the Blog.

Another easy way supported by SyntaxHighlighter is to enclose the code within:

The only catch involved out here is, you have to use encoded HTML while embedding within <pre>tags.
Your code can be converted to HTML Encoded using following easy to use Tool:

Just copy paste your code & generate the encoded HTML Code. Paste the encoded HTML within <pre>tags for correct rendering. Failure to do so might render wrong code, especially < & > brackets.

Some examples of codes in my Blog:

Keep Blogging!

Keywords: Blogger, Embed Code, Code, Syntax, Syntax Highlight, Syntaxhighlighter, Javascript, Blog Tricks, Blogs, Java, SQL, ASP, HTML, HTM, C#, XML, XSL, JS, CSS, PHP, PL, CGI, embed code blog,embed blogger blog, embed youtube blogger, swf embed code, you tube embed code, embed src code, embed wordpress blog, embed video blogger, myspace embed code,embed into, html code,rss feeds,blogger templates, blogger,syntax highlighting,script error,script,etc

Wednesday, November 18, 2009

Guide to Enable WPA2-PSK Support on Dlink DWL-G630 Wireless Card

Hi Friends,

If you are using DWL-G630 Wireless Card from Dlink, then you might have noted that it does not support WPA2-PSK Encryption.

I am talking of particular DWL-G630 Rev. D Card which are sold out here in India.
The driver that came along with the contents are v4.10 released in 2005 which are pretty old.

A quick search around google to find out the latest drivers from Dlink seems pretty painful task as there is no proper information available on Dlink Official Website.

Hence, i decided to crack this i did not want to lower my Wireless Router's security encryption anything below WPA2-PSK just because of lame non-availability of driver!

First, in order to get latest drivers from Dlink; finally landed me to the Dlink's Global US FTP Site, where dozens of driver zips are available.
You have to manually download & have a look if it will work for your card or not. Dont go for the filename to determine the driver model as it might support many cross cards.
You need to check the driver INF file post download to exactly determine which cards are supported.

DLink's Global FTP Driver Site:

Now, after downloading couple of files, the only latest driver post v4.10 was v4.1.2.725 released on 06/27/2007.

If you install these drivers from Dlink, don't expect it to support WPA2-PSK Encryption!!
Thus, the search for WPA2-PSK Support continued!!

Lets have a quick introduction over WPA2-PSK & its support on Microsoft Platform:
A very good article for Microsoft support can be read at:

Note that you need XP Service Pack2 or the specific update in order to make sure that your OS Support's WPA2-PSK Encryption.
If you are already on Windows XP Service are on track ;-)

Two good articles to go over WPA2-PSK Encryption details:

So now to move ahead with our WPA2-PSK Support quest...i went around few articles which mentioned that the chipset used in DWL-G630 is manufactured by Atheros!

A quick search around points that Dlink DWL-G630 has AR5005 chipset. Now the catch out here is Atheros drivers support WPA2-PSK Encryption.

So finally after digging on the google, i got the below Atheros AR5005X chipset driver compatible for DWL-G630!
WPA2-PSK Supporting DWL-G630 Driver for Windows XP:

Once i downloaded this & did an update driver, my Wireless card connected instantly to my Wireless Router Access Point!

If you are looking to configure this Card on Linux, then below is a good page on Ubuntu Forums for the same:

Finally a day along wait and precious R&D came to some useful conclusion.
I am not sure why DLink is not releasing an updated driver which would support the WPA2-PSK Encryption, but as long as we have a workaround we should not be complaining ;-)

I hope this documentation seals up the issue for anyone else as i did not find a conclusive dedicated document on the internet for this issue.

Go Wireless >>>>>>>>>

Keywords: Wireless, Wireless NIC, Wireless Card, DWL-G630 Rev D, Dlink, WPA2, WPA, WPA2-PSK, Atheros 5005X, Atheros 5xxx, Driver, Wireless Driver, etc

Tuesday, October 20, 2009

Siebel System Requirements and Supported Platforms (v8.1,v8.0,v7.8,v7.7,v7.5,v7.0,v6.3,v6.2,v6.1,v6.0)

Hi Friends,

This is one very important ready reckoner page regarding the System Requirements & Supported Platforms for all the Siebel Versions released & supported so far.

This is the best source to keep in touch for any updated System requirements & platforms.
Hope this helps everyone.

Siebel Systems, Siebel CRM, Siebel System Requirements, Supported Platforms, Hardware, Software, Siebel SBA, Siebel SIA, Horizontal, Vertical, eAutomotive, OBIEE, Siebel Analytics, Siebel eBusiness and Industry Applications,MidMarket Edition, Universal Application Network (UAN), Siebel Retail Finance, Oracle Self-Service E-Billing, Oracle® Real-Time Decisions

Wednesday, October 14, 2009

Oracle UPK Installation Failed - ORA-12640: Authentication adapter initialization failed

Hi Friends,

I was setting up Oracle User Productivity Kit (UPK) in Server only mode for setting up a dedicated documentation facility. This was my first hand setup experience with the UPK & so as i expected i landed up with few issues during installation.

While deploying the UPK server on a  local server, at the end of the installation, i received error:
ORA-12640: Authentication adapter initialization failed

I thought, there might be some issue due to the database. Went around searched & re-tried the installation, but it again failed due to the same error.

After further research, i found that this error is more related to the Oracle Client settings in sqlnet.ora

Below is the change i did in my sqlnet.ora file after which Oracle UPK Server Mode installation completed successfully: 
Changing this one to:

Keywords: Oracle UPK, Oracle User Productivity Kit, Oracle UPK Installation, ORA-12640, etc

Sunday, September 13, 2009

The DLL 'SSCEACTVIEW.DLL' could not be loaded.(SBL-DAT-00170)

Hi Friends,
You might have received this long time buggy error: "The DLL 'SSCEACTVIEW.DLL' could not be loaded.(SBL-DAT-00170)" while trying to generate a EIM Report using Siebel Tools.

This issue occurs particularly when you are connected to 'SERVER' Datasource & try to generate an EIM Report.

There has been no Product Fixes from Oracle, but a simple workaround: Use LOCAL Database for generating EIM Report.
If you connect to your Local DBF using Siebel Tools then you will not face this error while generating EIM Report but other inital error like:
Once you clear the initial error, try again to generate the EIM Report & this time it will generate the report without any errors or prompts.
siebel crm,siebel, siebel systems, siebel tools, siebel dev, eim, eim report, SBL-DAT-00170

Wednesday, July 15, 2009

Missing PID in Adminstration-Server Management-Sessions Screen

Hi Friends,

One minor bug i encountered during implementation of Siebel 8.0 is the missing PIDs for open Sessions in Administration-Server Management Screen!

If you observe carefully; the PID column would be blank for all Sessions, whereas ideally it should have the Process ID Value populated for all running Sessions.
Further investigating, it was verified that PID was not only absent from UI, but also when we try to export the same from command line srvrmgr utility, the result is same.

Presently, the only workaround to find the PID of a running Session would be to find the associated Task to that Session. This can be achieved by noting down the Session ID value showed in UI for a particular Session & then finding the same in Administration - Server Management -> Tasks Screen as Task ID. i.e.
(Sessions Screen)Session ID= Task ID (Tasks Screen)
I know, its a very mechanical workaround, but when those annoying user-related or particular session related issues get reported in Production, we badly need this PIDs to see whats happening over the server ;-)

And yes...finally this has been admitted as a bug for Siebel 8.0 Platform.

Happy CRM Hunting! :-)
Keywords:Siebel, Siebel Systems, Siebel Session, Session PID, PIDs, PID, Process ID, Administration-Server Management, etc

Tuesday, July 14, 2009

Add Social Bookmarking Widgets: ShareThis-AddThis [How To]

Hi Friends,

One of the most important part of blogging is to reach out good audience. In earlier dotcom eras, multiple link sharing & different link exchanges were used to promote websites.

But nowadays due to the huge popularity of social networking sites, people are much more eager to carry each & everything with them as they keep moving from one place to another and
so a online bookmarking solution is the perfect tool for them.

Having considered all of this, we should quickly sit down & start using this utility for our own blog!

Two very good widget solutions exist online: Share This or Add This

Both of this websites provide professional bookmarking solutions for Blog Publishers including definitive Analytics in order to track all of your content popularity.

Lets review both of this individually:

Share This:
- Free
- Easy to use
- Instant Widget installation across different blogging sites
- Definitive Analytics for Advanced Reporting Purpose
- Registration is compulsory.

Sample Screenshot:

Add This:
- Free
- Easy to use
- Instant Widget installation across different blogging sites
- Direct code insertion also possible.
- Defintive Analytics for Advanced Reporting Purpose
- Registration is only required, if you want to subscribe for Analytics, else its plug n play ;-)

Sample Screenshot:

I am using Add This for my Blog. Its pretty much simpler & easy to use. I would definitely recommend Add This.

Keywords:social bookmarking widget, social bookmarking sharing button widget, addthis social bookmarking sharing button widget, social bookmarking widgets, widget, widgets, AddThis,ShareThis, blog widget, blog widgets, social bookmarking, social bookmarks, online bookmark, etc

Sunday, July 05, 2009

Historical Audit Trail Information Missing after Siebel 8.0 Upgrade

Hi Friends,

If you have just upgraded to Siebel 8.0, then be prepared to have a big shocker in waiting! All the historical audit trail information will be missing from UI due to the New Encoded Audit Trail storing mechanism introduced in Siebel 8.0

A major change in Siebel 8.0 is the query formed while retrieving the Audit Trail records:
(T1.RECORD_ID = ?))

All Historical Audit Trail records would be having BC_BASE_TBL column as null causing this issue.
If you are thinking to populate this column using EIM, then it wont work as S_AUDIT_ITEM does not have the required userkeys.

So how to go about populating BC_BASE_TBL directly? We need to query S_BUSCOMP & get the Base Table name for each record.

I have wrote a PL/SQL Block for directly updating S_AUDIT_ITEM which will populate the BC_BASE_TBL for all the historical records inorder to resolve this issue...

I hope this helps to all who have recently upgraded to Siebel 8.0!
Welcome to Siebel 8.0 :)

audit trail,audit trails,audit report,audit management,siebel crm,siebel, siebel systems,S_AUDIT_ITEM,BC_BASE_TBL,EIM,Historical Audit,etc

Wednesday, May 13, 2009

ESD [EMS 2012] Error: FindClass org/apache/catalina/startup/Bootstrap failed

Hello Friends,

If you happen to use the new breed of Siebel Email Marketing Server (ESD/BHD/CTD) [EMS2012], then you might be greeted with below error while starting the Service for the first time in jakarta_service_date.log file under \logs:

[2009-05-11 06:22:38] [info] Procrun ( started
[2009-05-11 06:22:38] [info] Running Service...
[2009-05-11 06:22:38] [info] Starting service...
[2009-05-11 06:22:38] [443 javajni.c] [error] FindClass org/apache/catalina/startup/Bootstrap failed
[2009-05-11 06:22:38] [997 prunsrv.c] [error] Failed loading main org/apache/catalina/startup/Bootstrap class d:\Program Files\esd\bin\bootstrap.jar
[2009-05-11 06:22:38] [1260 prunsrv.c] [error] ServiceStart returned 3
[2009-05-11 06:22:38] [info] Run service finished.
[2009-05-11 06:22:38] [info] Procrun finished.

This is mainly because, Apache Tomcat 6 is now distributed with the latest EMS components which needs updated JDK Version to be installed prior its installation.

You can install J2SDK 1.5 update 18 & then re-install to eliminate this error.

If you are planning to install J2SDK 1.6, then you might want to read the below page first:

Keywords: ESD, Email Sending Daemon, crm,siebel, siebel systems,Siebel Bounce Handler Daemon, Siebel Click Through Daemon, BHD, CTD,EMS, Email Marketing Server,etc

Wednesday, April 29, 2009

Siebel SRVRMGR Utility - Spool [HOWTO]

Hi Friends,

If you want to take some export of Parameters or Components from SRVRMGR Utility through command prompt, then keep reading...

Below simple steps teach how to take a spool while working with SRVRMGR in Command Line Mode:

Command Line Parameters to Take Spool of Component Parameters:

srvrmgr:>spool C:\Parameter_Spool.txt
srvrmgr:>list parameters for component SSEObjMgr_enu
srvrmgr:> list advanced parameters for component SSEObjMgr_enu
srvrmgr:> list hidden parameters for component SSEObjMgr_enu
srvrmgr:> spool off

Once you exit the srvrmgr, you have Parameter_Spool.txt file ready with required information.
SRVRMGR spool is highly important tool, if you dont use 'Administration - Server Management' in UI for Siebel Server Administration :-)

siebel crm,siebel, siebel systems,srvrmgr,srvrmgr command line, command line,server admin, siebel admin,siebel srvrmgr utility

Tuesday, April 28, 2009

SQL Error Creating table Dummy Table to Verify Previleges / Extending the Database by Adding New Columns to the Base Table

Hi Friends,

During development when you are connected to your Local Database, you might need to test out any schema changes to a Table or Column.
In order to achieve this, you will be needing to apply the logical changes from Tools to your Local Database.

While doing so, you need to give Privileged Database User & Password to make changes to your Local DB Schema.
If you use your Tools login username & password; you would be greeted with this two errors:

First Error:
SQL Error Creating table Dummy Table to Verify Privileges

Second Error:
42000 (-121): [Siebel Database][ODBC Driver][Adaptive Server Anywhere]Permission denied: you do not have permission to use the "CREATE TABLE" statement

To avoid above errors, you need to change the Privileged User & Password being supplied before applying the change:

Siebel Application User Id User Password
Prior to Version 7.7 DBA SQL
Version 7.7 SIEBEL Local
Version 8.0 SIEBEL Local

Here, Local means to use your own Local User Password.
i.e. Say if you use dummyuser/dummypassword to login to your Local Tools, then you need to use SIEBEL/dummypassword as your Privileged User Id & Privileged User Password for making schema changes to your Local DB.

Same information is also available in the Siebel Bookshelf at:

siebel crm,siebel, siebel systems,siebel tools,siebel crm tools,Local Database, DBF

No server connect string for Siebel Component SRBroker in Siebel Enterprise SBA_ES, Siebel Server DEV8~ 1-3HU6QN~Campaign Contact

Hi Friends,

If you use dedicated client in your environment & try to invoke assignment manager through scripting, then you might face errors like:

"No server connect string for Siebel Component SRBroker in Siebel Enterprise SBA_ES, Siebel Server DEV8~ 1-3HU6QN~Campaign Contact"

For this to work correctly, you need to modify your Dedicated client CFG & include following in the InfraObjMgr Section:


RequestServerName = dev8



RequestServerName = sba_as

Above changes mean that you have to use the 'Logical Siebel Server' Name for RequestServerName instead of Physical Server Name & this Server should have 'Assignment Manager Component' running on it.

After you make these changes in the CFG & restart the client, you will not face this issue again.

siebel crm,siebel, siebel systems,siebel dedicated client,dedicated web client,CFG,Assignment Manager, siebel admin,siebel config,siebel assignment manager

Saturday, April 25, 2009

Buttons in Siebel UI are having Transparent Look & Feel

Hi Friends,

Well a very annonyning problem i came across & it took me around 4 months & 4 Service Requests before Siebel accepted it as bug.

If you have Siebel 8 Implementation in your environment over cross platforms, then you will face this issue of Transparent Buttons across the Application.
For e.g. Application Servers are on Windows Platform
Webservers [Siebel Web Server Extention Implementation] are on UNIX or Linux Platform.

main.css has button related file extension reference in uppercase; i.e. "GIF"
Check the screenshot:

Now, when we are having our Webservers on UNIX or Linux Platform, this upper case extensions become a big bottleneck as file systems are case sensitive.
All the image file provided by Siebel are having file extension in lower case: ie "gif" or "jpg".
Now due to this uppercase extension, the Siebel UI was failing to render the button images at all causing the transparent look & feel.

There are two ways to correct this:
1) Edit the Vanilla main.css under [SWSE_ROOT\public\enu\files] for all such upper case references to lower case: i.e. "GIF" to "gif"
2)Create a copy of button images with uppercase extensions using below commands:
-bash-3.00$ cp bkgrnd_minibtn.gif bkgrnd_minibtn.GIF
-bash-3.00$ cp bkgrnd_minibtn_hover.gif bkgrnd_minibtn_hover.GIF

This issue has been validated from Siebel 8.0 to A Fix Request has been raised, so lets see when this annoying issue of transparent buttons is officially fixed ;-)

Till then happy CRM hunting. :-)

siebel crm, swse, siebel swse, siebel, siebel systems, webservers, web servers, linux, unix, Sun One, Oracle HTTP Server, OHS 2.0, Apache 2.0, IIS, Siebel Web Server Extensions