Logo

To Add Connection to LDAP sever:

almost 2 years ago | Abhishek Dharga: Learning and sharing

• Right click on ‘Directory Server’ and say ‘Add connection’.
• A pop-up will appear as shown in the snapshot below.
• Add the following details in the pop-up
Add host: Cognos url
Port : 389
Base DN : o=organization.com


The connection is added.

Now we see the ‘Default’ namespace under the Directory Server.

Under the default namespace we see

  • User
  • Root User Class
  • Application Server
  • Data Source

To make LAE :

Right click on the namespace and say ‘Export to .LAE’



Scheduling Reports

almost 2 years ago | Abhishek Dharga: Learning and sharing

Scheduling Reports
You can schedule reports to run at a time that is convenient for you, such as during off hours when demands on the system are low.
You can schedule reports individually or in a group by using a job. You can schedule reports to run by minute, hourly, daily, weekly, monthly, or yearly.
Only one schedule can be associated with each report or job. If you require multiple schedules for the same report, you can create report views and then create a schedule for each report view. Jobs have their own schedules, and these schedules are independent from report schedules.
After you create a schedule, the report or job runs at the time and date specified. You can then manage the properties of your schedules.
Prompts in Scheduled Reports
If a report that contains prompts is scheduled, you must save the prompt values or specify default values to ensure that values exist when the report runs according to the schedule.
In a job, you can specify prompt values for job steps. When a report runs as part of a job, the prompt values saved in the job definition are used instead of the values saved with the report. If no values are specified in the job definition, ReportNet uses the values saved in the report.
SCHEDULE A REPORT
You schedule a report to run it at a later time or at a recurring date and time.
If you no longer need a schedule, you can delete it. You can also disable it without losing any of the scheduling details. You can then enable the schedule at a later time.
ReportNet keeps history information and report outputs each time a report runs according to a schedule. You can specify how many occurrences to keep or for how long to keep them. For example, you can keep the history and report outputs for the ten latest occurrences or for schedules that ran in the last two months. Use the report history to see the times at which the reports ran and whether the reports ran successfully.
To schedule a report or report view, you must have read, write, execute, and traverse permissions for it. You also require the following access permissions to any data sources used by the report.
• dataSource - Execute and Traverse
• dataSourceConnection - Execute and Traverse
(With only Execute access, you are prompted to log on to the database.)
• dataSourceSignon - Execute

Schedule Multiple Reports at Once

You can set the same schedule for multiple reports by creating a job. A job identifies a collection of reports, report views, and other jobs that are scheduled together and share the same schedule settings. When a scheduled job runs, all the reports in the job run.

Jobs contain job steps, which are references to individual reports, jobs, and report views. You can specify whether to run the steps all at once or in sequence.

When the steps are run all at once, all the steps are submitted at the same time. The job is successful when all the steps run successfully. If a step fails, the other steps in the job are unaffected and still run, and the job has a Failed status.

When the steps are run in sequence, you can specify the order in which the steps run. A step is submitted only after the preceding step runs successfully.

The individual reports, jobs, and report views in steps can also have individual schedules.

To schedule a report or report view, you must have read, write, execute, and traverse permissions for it. You also require the following access permissions to all data sources used by the report.

  • dataSource - Execute and Traverse
  • dataSourceConnection - Execute and Traverse

(With only Execute access, you are prompted to log on to the database.)

  • dataSourceSignon - Execute

Schedule a Report Based on an Event

You can schedule a report based on an event, such as a database refresh. You specify an event to act as a trigger. When that event occurs the report runs.

This functionality is also available through Event studio.


Why do I go to office !

almost 2 years ago | Yashashree Barve: Life is Beautiful !!

Some days back, my 5 year old son had this question about why do I need to go to office. My husband and I tried to explain to him how I earning money helps us to buy him toys, chocolates etc. He did not seem convinced, and said that his father is already earning money! Discussion got into another topic, and this was left as is.

Again yesterday he talked to me about why do I go to office, when the lady at my neighborhood is a home maker. I thought probably he sees lot of women who are not working, and are home makers, and hence this question is still on his mind.

Thought of giving a different answer to him this time. Started explaining him that everyone chooses a field that they like, study in that and later work on it. I said, I liked engineering, so studied that, and then got into this computer field, and I love doing that now. So I go to office, because its my choice. Some do not go, because they like don't like to. I also tried to push in examples of how his teacher likes to teach them and hence goes to school, which is her office. He loves his teacher, so probably was happy that she goes to her office :)

I hope he liked the answer this time, as he hasn't come back to me with this question again. But I am glad that he is thinking about what he sees around him, and talking to me about it. It makes me think as well :)

Its not too late to solve a Y2K bug - I found one in 2010

almost 2 years ago | Alex Rothenberg: Common Sense Software

I thought a historical opportunity had passed me by, but a full decade after the turn of the millennium in 2010 I found my first Y2K bug! If you, like me, were working in eCommerce (who remembers that buzzword?) in the late 1990s and thought you missed your chance I'm here to tell you its still not too late. As long as you work for the right company with the enough legacy technology around you can still find a Y2K bug of your own!

What was going on?

I was writing a new Rails application on top of an old Oracle database. The database had a constraint


graduationdate BETWEEN TO_DATE('01-JAN-1900','DD-MON-YYYY') AND TO_DATE('31-DEC-2100','DD-MON-YYYY')



To me this looked like a basic check to make sure the date was within a 300 year range as a basic sanity-check. I implemented an ActiveRecord validation in my model

validate :validate_graduation_date
def validate_graduation_date
  unless graduationdate.nil?
    earliest_date, latest_date = Date.parse('01-JAN-1900'), Date.parse('31-DEC-2100')
    errors.add(:graduationdate, 'must be between 01-JAN-1900 and 31-DEC-2100') unless graduationdate > earliest_date and graduationdate < latest_date  
  end
end



Of course I had unit tests that all passed

describe 'graduation date' do
  it 'should not allow July 4, 1776' do
    education = Factory.build :education, :graduationdate=>Date.parse('04-JUL-1776')
    education.should_not be_valid
  end
  it 'should allow Aug 1 1970' do
    education = Factory.build :education, :graduationdate=>Date.parse('01-AUG-1970')
    education.should be_valid
  end
  it 'should allow Mar 15 2000' do
    education = Factory.build :education, :graduationdate=>Date.parse('15-MAR-2000')
    education.should be_valid
  end
  it 'should not allow Jan 1, 2525' do
    education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-2525')
    education.should_not be_valid
  end
end



BUT once I went into production with my legacy database I started getting errors. So I took a look at one of the rows giving me an error and discovered the graduation date was 01-JAN-00. AHA a 2-digit year. That doesn't look good and there were over 100,000 rows with this problem.

select count(*) from education where graduationdate = to_date('01-jan-1900')
COUNT(*)               
---------------------- 
116232       



Once I realized that the database contained data for January 1st 1900 and I discovered the Oracle BETWEEN function is inclusive I was able to solve my problem by changing my ActiveRecord validation to have a >= and lt;=.

validate :validate_graduation_date
def validate_graduation_date
  unless graduationdate.nil?
    earliest_date, latest_date = Date.parse('01-JAN-1900'), Date.parse('31-DEC-2100')
    errors.add(:graduationdate, 'must be between 01-JAN-1900 and 31-DEC-2100') unless graduationdate >= earliest_date and graduationdate <= latest_date  
  end
end



I added some specs to test my boundary conditions

it 'should not allow Dec 31 1899' do
  education = Factory.build :education, :graduationdate=>Date.parse('31-DEC-1899')
  education.should_not be_valid
end
it 'should allow Jan 1 1900' do
  education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-1900')
  education.should be_valid
end
it 'should allow Dec 31 2099' do
  education = Factory.build :education, :graduationdate=>Date.parse('31-DEC-2099')
  education.should be_valid
end
it 'should allow Jan 1 2100' do
  education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-2100')
  education.should_not be_valid
end



So what's the moral?

I'm not sure but when you're have to integrate with a legacy system you should account for the absurd - in my case a job application from a candidate who graduated more than 100 years ago!

And if you feel like you missed out on a once-in-a-lifetime opportunity to work on Y2K bugs don't despair. They are still out there!

Its not too late to solve a Y2K bug - I found one in 2010

almost 2 years ago | Alex Rothenberg: Common Sense Software

I thought a historical opportunity had passed me by, but a full decade after the turn of the millennium in 2010 I found my first Y2K bug! If you, like me, were working in eCommerce (who remembers that buzzword?) in the late 1990s and thought you missed your chance I'm here to tell you its still not too late. As long as you work for the right company with the enough legacy technology around you can still find a Y2K bug of your own!

What was going on?

I was writing a new Rails application on top of an old Oracle database. The database had a constraint


graduationdate BETWEEN TO_DATE('01-JAN-1900','DD-MON-YYYY') AND TO_DATE('31-DEC-2100','DD-MON-YYYY')



To me this looked like a basic check to make sure the date was within a 300 year range as a basic sanity-check. I implemented an ActiveRecord validation in my model

validate :validate_graduation_date
def validate_graduation_date
  unless graduationdate.nil?
    earliest_date, latest_date = Date.parse('01-JAN-1900'), Date.parse('31-DEC-2100')
    errors.add(:graduationdate, 'must be between 01-JAN-1900 and 31-DEC-2100') unless graduationdate > earliest_date and graduationdate < latest_date  
  end
end



Of course I had unit tests that all passed

describe 'graduation date' do
  it 'should not allow July 4, 1776' do
    education = Factory.build :education, :graduationdate=>Date.parse('04-JUL-1776')
    education.should_not be_valid
  end
  it 'should allow Aug 1 1970' do
    education = Factory.build :education, :graduationdate=>Date.parse('01-AUG-1970')
    education.should be_valid
  end
  it 'should allow Mar 15 2000' do
    education = Factory.build :education, :graduationdate=>Date.parse('15-MAR-2000')
    education.should be_valid
  end
  it 'should not allow Jan 1, 2525' do
    education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-2525')
    education.should_not be_valid
  end
end



BUT once I went into production with my legacy database I started getting errors. So I took a look at one of the rows giving me an error and discovered the graduation date was 01-JAN-00. AHA a 2-digit year. That doesn't look good and there were over 100,000 rows with this problem.

select count(*) from education where graduationdate = to_date('01-jan-1900')
COUNT(*)               
---------------------- 
116232       



Once I realized that the database contained data for January 1st 1900 and I discovered the Oracle BETWEEN function is inclusive I was able to solve my problem by changing my ActiveRecord validation to have a >= and lt;=.

validate :validate_graduation_date
def validate_graduation_date
  unless graduationdate.nil?
    earliest_date, latest_date = Date.parse('01-JAN-1900'), Date.parse('31-DEC-2100')
    errors.add(:graduationdate, 'must be between 01-JAN-1900 and 31-DEC-2100') unless graduationdate >= earliest_date and graduationdate <= latest_date  
  end
end



I added some specs to test my boundary conditions

it 'should not allow Dec 31 1899' do
  education = Factory.build :education, :graduationdate=>Date.parse('31-DEC-1899')
  education.should_not be_valid
end
it 'should allow Jan 1 1900' do
  education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-1900')
  education.should be_valid
end
it 'should allow Dec 31 2099' do
  education = Factory.build :education, :graduationdate=>Date.parse('31-DEC-2099')
  education.should be_valid
end
it 'should allow Jan 1 2100' do
  education = Factory.build :education, :graduationdate=>Date.parse('01-JAN-2100')
  education.should_not be_valid
end



So what's the moral?

I'm not sure but when you're have to integrate with a legacy system you should account for the absurd - in my case a job application from a candidate who graduated more than 100 years ago!

And if you feel like you missed out on a once-in-a-lifetime opportunity to work on Y2K bugs don't despair. They are still out there!

India readies for the cloud

almost 2 years ago | Nilesh Naik: TechnoBites

I was thrilled to know that India would soon be the first country in the world to put its e-governence infrastructure on the cloud. This would include the most awaited Uniquie ID project led by Nandan Nilekani and the online railway booking system plus few other services. What this means is faster transactions on websites like IRCTC which already has more than a million registered users. Way to go India!

almost 2 years ago | Yashashree Barve: Life is Beautiful !!


Read about this 10 year old boy creating mobile Apps, Looks like its time to jump the wagon, or else my kids would develop mobile apps before I do !

We are not human beings having a spiritual experience but spiritual beings having a human experience

almost 2 years ago | Riju Kansal: Riju's Thoughts Captured...

A beautiful line said in the below article. I'f recommend reading the article at below link multiple times. It is so truly beautiful.


http://timesofindia.indiatimes.com/life/spirituality/mind-over-matter/Mind-Set-No-need-to-dread-death/articleshow/5599281.cms