REQUEST A DEMO

Blog

Calling Oracle Stored procedures using Powershell

May 15, 2012 I’ve been doing some Powershell work lately, and needed to call an Oracle stored procedure with input and output arguments. I didn’t see a good example that mimicked what I was doing, so once I figured it out, I figured it was a good idea to share it. Stored Procedure First, I created a simple stored procedure with both an input and output parameter.   Powershell script Then I created a Powershell script to call the stored proc. Overall, the logic of the script is pretty straightforward. Create an Oracle connection and an Oracle Command Set the Command type to be Stored Procedure Add an input parameter, and set its type and value Add an output parameter, and set its type Open the connection Execute the stored procedure Close the connection Read the value of the output parameter Output I…

FubuMVC Hijacking Behaviors

April 24, 2012 Have you every wanted a convention to wrap an endpoint and conditionally transfer the original chain to a different one? No server redirect here just plain old hijack your currently scheduled response with another one. This is the FubuMVC equivalent of the classic ASP Server.Transfer. Here are a couple of examples on how to do this. Scenario: Web Service API Exception Handling We have a web services application where when things go wrong we want a pretty error page for the developer type who is consuming the service. You don’t want an ugly yellow and red YSOD you have too much style for that. Answer: Wrap the Behavior Chain In FubuMVC you can easily wrap one behavior with another. This simple convention pulled from Dovetail Bootstrap wraps all of our API actions with the exception handling behavior. The generic argument…

Deep understanding comes before designing

April 10, 2012 When 37signals recently released their new Basecamp product, it was without a major feature: time tracking. They recently posted about this, asking the community to help them understand time tracking, before they went into design mode for this feature: since we don’t track time at 37signals, we don’t have a deep understanding of the time tracking problem. Plain and simple, this is why time tracking isn’t in the initial release of the all new Basecamp. We simply don’t understand it well enough. Help us understand how and why you track time Before we can commit to saying yes or no to adding time tracking in a future version of the all new Basecamp, we need to understand the problem better. It’s time to observe, study, learn, and understand how and why our customers track time. If you’d like to help,…

Using Hyperlinks in the Clarify Classic Client

I’ve been doing a little Clarify Classic Client development lately, and I’ve found I’ve been using hyperlinks more and more as elements on forms as opposed to buttons. A common usage of hyperlinks is to open URLs, such as a site’s website. But we can also use them to invoke other actions. Here’s a form that has a few different hyperlinks in action: There are 4 hyperlinks in play on this form 2 Open Subcases (opens the Subcase List form, showing the list of subcases for this case) ? (Opens a message box with help text, detailing the Case Title information) Copy Case ID to Clipboard (um, copies the case id number to to the clipboard) Expand (Opens the case history in a larger/expanded form) So as you can see, a hyperlink can be used for more than simply opening…

Using the web APIs in Dovetail Bootstrap

March 21, 2012 Kevin recently blogged about Dovetail Bootstrap, a free, sample application which helps Dovetail SDK developers get up and going and creating web applications quickly.   The code for Dovetail Bootstrap is open and available on GitHub. Feel free to watch, fork and improve the code.   One of the capabilities demonstrated in Dovetail Bootstrap is a web API – specifically the Create Case API. I wanted to do a quick walkthrough of calling this API.   Wikipedia has this to say about Web API: A web API (Application Programming Interface) is typically a defined set of HTTP request messages along with a definition of the structure of response messages, typically expressed in JSON or XML. While "web API" is sometimes considered a synonym for web service, the Web 2.0 applications typically have moved away from SOAP-based web services towards more direct REST-style communications.   The example we’re showing here fits into this definition nicely. Simple, direct, REST-style interfaces. Usage  …

Clarify Technical Consultants

March 19, 2012 For any of you Clarify peeps out there looking for a gig, I was contacted by some folks looking for Clarify developers for a 6 month position in New Jersey. Sounds like you need to be onsite in NJ. Could turn into a longer gig if things work out.   You must know the Classic Clarify Toolset: Classic Client, ClearBasic, UI Editor, etc.   Knowledge in any of the following is a bonus: Sql Unix shell scripting, Perl UDB/DB2 MQ Series XML, XHTML, HTML Tuxedo C / C++ Java, J2EE   If you’re interested, contact me, and I’ll connect you with the right people.   Also, if this position isn’t right for you, but you’re interested in some Clarify consulting work now or in the future, reach out to me anyway. I tend to get a bunch of requests for Clarify developers, and…

More on Extracting ClearBasic Code

March 12, 2012 There may be a need to extract all the ClearBasic code for entire project at once. If the project consists of only a few modules, one would use CBEX tool in interactive mode, select the modules from the list, specify the destinations, and export. But if a project involves very many modules, this method becomes burdensome - CBEX does not have a 'select all' capability. One way to make one's life easier is to use a tool developed by Dovetail Software, as explained in this article by Gary Sherman. Another method is to generate a CBEX directive file and then use CBEX in batch mode to export all the code. The process of generating the directive file is exactly what is burdensome in CBEX GUI, therefore a different method is needed. This can be achieved by using SQL statements to produce one directive…

Business Rule: Only notify certain queue members

March 8, 2012 This week I was posed an interesting scenario from a customer. They have certain users who need access to every queue. But, they don’t want those users to be notified when a case is dispatched to that queue.   For example, lets say that the Maintenance queue has 4 members: Fred, Annie, Gary, and Steve.   Fred and Annie are regular users.   But Gary and Steve are part of the Network Operations Center (NOC). The NOC has access to every queue, as they need to be able to peek inside each queue to see what’s there, read the case titles, etc.   But, since the NOC belongs to every queue, they get a lot of business rule notifications – one for every case that gets dispatched to a queue. But they don’t need to get all of those notifications.   So…

Dovetail SDK C# Helper Extensions

February 29, 2012 Dovetail SDK is quite useful for doing data access with your Clarify databases. When using our ClarifyGenerics there is some ceremony to the syntax there for backwards compatibility that always bothered me.  I’ve written a few helper extensions for Dovetail SDK that I use a lot these days so I thought I should share them with you.   ClarifyGeneric Extensions     I use these to help me filter generics in a fluent way. Create and Traverse to generics without needed a separate line to set which fields should be selected.   ClarifyDataRow Extensions     Row fields are plain objects but you always want to put them into a strongly typed variable. I use these to get at fields without having to do a lot of conversions and checking for DBNull.   An example of these extensions in play…

The Undo UI Pattern – even in Clarify using ClearBasic

February 23, 2012 A common UI pattern you see today is the Undo pattern.   The Undo pattern, as described by Patternry:   People tend to make mistakes when interacting with applications. Making one mistake can throw away hours of work. Therefore users should be have an option to easily undo their actions and get their work back.   What problem does the pattern solve? Whenever there is an opportunity to lose work, the program should allow undo actions. The more costly it is to lose data, the more important it is to provide undo. Never use a warning when you mean undo.   This pattern is inspired by Aza Raskin’s article “Never Use a Warning When you Mean Undo”. Undo in Clarify   We see this pattern a lot in contemporary applications, but there’s no reason you can’t also implement this pattern in legacy…