Year: 2014

SAP BusinessObjects Universe: Using ANSI92 SQL syntax

SAP BusinessObjects Universe: Using ANSI92 SQL syntax

When writing SQL queries, I prefer the JOIN clause syntax over (+) in where clause for creating table joins. It is more readable and maintainable as join logic is separated from the where clause. BusinessObjects Universe can be configured to generate JOIN clause (ANSI92) syntax by setting a parameter in ‘Universe Parameters’ dialog available from…

Read More Read More

BusinessObjects Universe: Defining Complex Outer Join

BusinessObjects Universe: Defining Complex Outer Join

A complex join contains more than one condition in the join expression. Consider the following expression where one line of sales order joins with a line on invoice, INVOICE_LINE.ORDER_NUM=ORDER_LINE.ORDER_NUM and INVOICE_LINE.ORDER_LINE_NUM=ORDER_LINE.ORDERLINENUM If we define a complex join in BusinessObjects Universe Design Tool, than the option to make it outer becomes disabled. There are three possible…

Read More Read More

Designing BusinessObjects Universe: Join problems in schema and resolution techniques

Designing BusinessObjects Universe: Join problems in schema and resolution techniques

An essential aspect of creating a BusinessObjects universe is to define joins among tables in ‘Universe Design Tool’. Even if the joins are correctly defined from relational point of view, the universe might not generate the correct results in certain cases. There are few pitfalls to avoid which are specific to the business of designing universe.  These pitfalls,…

Read More Read More

Chasm Trap: Designing SAP BusinessObjects Universe

Chasm Trap: Designing SAP BusinessObjects Universe

While designing SAP BusinessObjects universe with Universe Design Tool, Chasm Trap is one of the major join problems that one can come across. We are in Chasm Trap when a table joins with two others in one-to-many relationship. Chasm Trap produces more data than expected. Example Consider the following ER diagram where DEPARTMENT is having 1-to-many…

Read More Read More

Git Push error: refusing to update checked out branch (Source Control)

Git Push error: refusing to update checked out branch (Source Control)

Recently, I cloned a repository on my machine and made some changes to it. As I was pushing my changes back to the original repo, push failed with the error message: “refusing to update checked out branch: refs/heads/master. By default, updating the current branch in a non-bare repository is denied…” There are two things to…

Read More Read More

Study Notes for Microsoft Exam: Developing ASP.NET MVC Web Applications (70-486)

Study Notes for Microsoft Exam: Developing ASP.NET MVC Web Applications (70-486)

Took Microsoft Exam 70-486 which part of MCSD certification. I spend about 2 weeks studying the material and took some notes which are posted here. Notes are not complete in the sense that they don’t cover the full syllabus – half of my notes are scattered in different places which will be incorporated here later…

Read More Read More

Async / Await and SynchronicationContext (C# .Net)

Async / Await and SynchronicationContext (C# .Net)

Following innocuous looking async / await code will cause deadlock. To understand why, lets go into what await does in the above case. 1 Execution starts when the button is clicked and button1_Click event is fired on the UI thread. 2 The method, named LongRunningProcess, is invoked. 3 The lamda expression passed to Task.Run() executes in…

Read More Read More

Creating and Consuming Async methods (C# .Net)

Creating and Consuming Async methods (C# .Net)

The code we want to run asynchronously could either be CPU-bound or IO-bound. CPU-bound code keeps the CPU busy, requiring intensive processing, calculations etc. On the other hand, IO-bound code frees up the CPU while waiting for an IO operation to complete, for instance, get some data from a web service. Both kinds of asynchronous…

Read More Read More

Keeping UI Responsive (C# .Net)

Keeping UI Responsive (C# .Net)

The User Interface (UI) becomes unresponsive when a time taking operation is executed during an event. Consider the following button click event where I have simulated a time taking operation by calling Sleep method. In a real scenario, it could be some processing which produces the result to be shown back on the user interface.…

Read More Read More