tag:blogger.com,1999:blog-39638029216601736312024-02-21T06:12:49.786+04:00Shankar Balachandran - Personal BlogUnknownnoreply@blogger.comBlogger124125tag:blogger.com,1999:blog-3963802921660173631.post-5030184818712261522021-02-02T11:35:00.000+04:002021-02-02T11:35:54.117+04:00Business lessons from the India - Australia series<div style="text-align: center;"><span style="font-family: inherit;"> <span style="background-color: white; color: #283646; font-size: 1.75rem;">“To uncover your true potential you must first find your own limits and then you have to have the courage to blow past them.” – Picabo Street</span></span></div><div style="text-align: center;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">If you are a cricket follower, the recently concluded India Australia test series should/will be in your top cricketing moments of all time. It's certainly on my list. I don't think even movies have such perfect scripts these days. There was humility, imbalance, anger, hard work, and then eventual success. Just like the well-built machinery that BCCI (Board of Control for Cricket in India) is, businesses can take out a lot from this series. Let's take a look at the top 5 business lessons from the India Australia test series. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>1. Team culture is more important than cult leaders</b></div><div style="text-align: left;">With all the pundits writing off India once Virat Kohli departed after the 1st test, the onus was on Ajinkya Rahane to take the team forward. He has done so in flying colors and deserves all the accolades. Now after listening to all the support staff interviews, it's pretty clear that this series was not won by Rahane or Kohli alone. There was a conscious decision to groom the team culture in such a way for them to eventually reach here. If the key values of your company are imbibed into the team, there is no need for cult leaders to lead the team all the time. Showing the right direction should be enough for the team themselves to reach success. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>2. Unstable leader is worse than no leader</b></div><div style="text-align: left;">Though there is no need for micro-managing leaders, the leader should be able to direct the team on course. For India, Rahane did it perfectly, handling injuries after injuries aplomb, whereas Tim Paine, the Australian captain, let the pressure get the better of him. I had been a fan of Paine much before his eye injury and then eventual return and the ascend to the Australian captaincy. Having seen him navigate the tough Ashes series and the last Indian series as well, it was uncharacteristic to see him under so much pressure. Thinking about it, the reason seems to be that Australia was expected to win this series handsomely. Especially after the 36 all our debacle of the first test. With each passing test and each passing day, the more India fought, the more the pressure of winning got to Paine. The ghosts of Headingley and Ben Stokes must have haunted him hard. And when the captain loses his cool, the team follows suit and it was his drop catches and the missed stumping that eventually decided the fate of the series. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>3. Stick to your own strength and back it 100%</b></div><div style="text-align: left;">With Pant, Gill, and other young batting talents showing the bright future of Indian cricket, it was of course the old guard Pujara who according to me decided the series. After the 1st and 2nd tests, there were talks about how Pujara's low strike rate was pulling the team down. But, boy in the 3rd and 4th test, wasn't each dot ball played by him, worth more than sixers and fours. On the final day of the 4th test, with more than 13 different bruises in the body, still not playing any rash shot, Pujara was the monk who became a warrior. It was the unwavering faith in himself and conviction that this is how he is going to play that separated the boys from the men. Here is where the team culture is again important. Once the end goal is clear, the culture should allow each individual to thrive in his/her own way playing to their strengths. That’s when you will discover your own swashbuckling Pant and ever reliable Pujaras. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>4. Too much work is never good</b></div><div style="text-align: left;">India rotated close to 10 different bowlers in this series. Most of that was due to Injuries to key players. But it indeed turned out to be a blessing in disguise. The Indian bowlers were fresh in each test match and that resulted in India picking up 20 wickets in all but one innings. On the contrary, though the quartet of Starc, Hazelwood, Cummins and Lyon are world beaters, playing all 4 test matches, took a toll on their abilities. It specially affected Starc who was their tail enders destroyer and Lyon who was unfortunately had his worst series of all time. No matter how good you are, you and your time should certainly not over cook and burn. A half baked dish is always easier to adjust than a burnt dish. </div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>5. Resilience and patience</b></div><div style="text-align: left;">On the finally day of the 3rd test, when Hanuma Vihari, pulled up his hamstring, the entire series was in balance. One wicket there and there was injured Ashwin, Jadeja and then two tailenders who are probably faster in returning to Pavillion by the time you keep your noodles in the stove. Right next over, Pujara is out. I myself was convinced that the match is a foregone conclusion. But probably again, the Injury that made both Vihari and Ashwin less nimble made them focus on the basics. And focus they did.They played 256 deliveries in total. That's 42 overs, almost the length of an ODI. They did not achieve that by just mindlessly wanting to play 50 overs. As Ashwin was heard on the mic, they breaked down the time and planned mini goals like playing 10 balls at a time, Ash facing lyon all the time and Vihari facing fast bowlers and by the end of the game, they were so deep that they did not even celebrate the draw. This is where we should learn Resilience and patience as one of the important virtues that is needed in our current environment. In the social media era where people are looking for instant fame and instant success, it’s so romantic to see people with old school values succeed as well. </div><div style="text-align: left;"><br /></div><div style="text-align: left;">That's it for this blog, hopefully I will have a few blogs for the English series as well. Can't wait for it to start. Happy reading...</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-9308659706178213092020-06-06T10:54:00.001+04:002020-06-06T10:54:44.180+04:005 Facts about the Dragon Crew Mission | NASA | SpaceX | Launch America |...<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/Wv-4xG66Vcc" width="480"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-82988188839303483392019-05-14T18:58:00.000+04:002019-05-14T18:58:54.447+04:00Learn to Write and Write to Learn<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="background-position: 0px 0px; border: 0px; box-sizing: border-box; color: rgba(0, 0, 0, 0.75); cursor: text; line-height: 3.2rem; margin-bottom: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">“The first draft is just you telling yourself the story.”</span><br />
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">― Terry Pratchett</span></div>
<div style="background-position: 0px 0px; border: 0px; box-sizing: border-box; color: rgba(0, 0, 0, 0.75); cursor: text; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">One often undervalued aspect in Software development is Writing. Technical Writing is much more complicated than coding at times. When I started Software Development, I always thought documentation is an exercise in futile. The code is either easy to understand for anyone and if not completely non understandable for anyone. In my first job, we were exploring and learning an ERP platform. The company gave me enough freedom to spend time on research and make sure I completely understand the Product. </span></div>
<div style="background-position: 0px 0px; border: 0px; box-sizing: border-box; color: rgba(0, 0, 0, 0.75); cursor: text; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">Probably 6 months in to the job, I had written a personal blog on something that I don't remember now. Reading through that, my boss suggested I should try my hand at Blogging about the platform we were working on and the challenges we were facing on it. I thought this was a simple exercise. Only as I started writing my first blog post did I realize that I did not know much about the functionality I was going to blog about. The thing with mind is sometimes it's way more powerful than what we give credit for. It knows that you are a troubled soul and many times to keep you at peace, it gives you a false impression that you have understood things even though the truth could be otherwise. The same dawned on me that day. </span></div>
<div style="background-position: 0px 0px; border: 0px; box-sizing: border-box; color: rgba(0, 0, 0, 0.75); cursor: text; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">My first blog post is in this <a href="https://shaanob.blogspot.com/" target="_blank">blog</a> and now 121 posts later, I am still amazed how far I went in a short span of time. From May 2010 till May 2011, I remember going crazy and writing almost 2-3 blog posts a week. It's not much by current standards, but with my work, even to manage that time is more surprising to me. </span></div>
<div style="background-position: 0px 0px; border: 0px; box-sizing: border-box; color: rgba(0, 0, 0, 0.75); cursor: text; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">The reason for this blog post now is because, I was looking back at the fact that, it is this very blog that had got me my last 2 jobs and still makes me feel good about myself when someone references my blogs during development. To those devs, who are starting out now and even to those who can't write to save their life, use this opportunity to remind yourself that more you learn to write about your developments, the more you will understand and the more you can share with the community. </span><br />
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">I am planning to write more blogs henceforth on generic topics related to Software Development and if you want any specific topic addressed, please do let me know. </span><br />
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif; font-size: large;">Happy coding...</span></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-51277480585592626592017-04-03T17:14:00.000+04:002017-04-03T17:14:07.144+04:00My 10 years in Application Development<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
It's been around 10 years since I started programming. May be a bit more, if I have to include my first attempts at C programming in school. But it would be a grave insult to call remembering ten lines of code and just replicating it to put a star on the screen. I also did a course on Visual basic, but it was more gimmicks that Application development. But it was truly in the year 2007 when I started my Master in Computer Applications that I found a new flare for developing applications. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I was very late to computers in general and even when I joined my Masters, computers were not really accessible to me. But when I joined my Masters where one is actually expected to hone the skills which they already have, but in case it was were I was learning the skills, initially it was very difficult. I was not sure what computers had for me nor I had a natural flair for programming. But the thing about computers that attracted me was the visual medium it gave. Initially it was just a door to a high paying job, but in a month or two, I knew I was genuinely attracted to the computer. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I was not good at programming (neither now). I am not someone with strong Algorithm and data structure background who can write complex code. But I liked building applications. Probably, that's why I titled the blog as 10 years of Application Development and not 10 years of Programming. I took lot of pride in developing application using visual medium that had lot's of User Interface elements and less of code behind it. I remember my first few projects were Cricket team building application on Visual basic (much like Fantasy cricket in cricinfo). But building screens, navigating them, providing something new on each page was something I was very much fascinated on. I purposely kept the complexities to bare minimum because what fascinated me was the joy people got when using applications that just worked. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I built quite a lot of small applications and developing a simple todo list was my dream then and a dream now though I might have developed around 5 todo applications that I used for sometime and then discarded for one reason or the other. There was not GitHub at that time, so lost most of it. When my friends honed their skills on heavy programming, I was just dreaming and making small applications that made sense like a simple Sales portal done on VB and MS Access. I remember having a project on C++ where we had to implement some encryption algorithms. I still remember a very good friend of mine and a brilliant coder almost writing 10000 lines of coding implementing a very complex algorithm. All I did was create 10 encryption techniques on my own like reversing alphabets, replacing alphabet with numbers etc with my own logic built in. They were not perfect encryption techniques as such, but the goal was to design an application that handled multiple encryption techniques. I used to envy my friend for writing such brilliant code, but I hardly wrote around 700 lines of code, but more functional. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
When I started working in late 2009, I entered into the world of Enterprise Resource Planning, I was fascinated by how little companies cared about the User Experience. They wanted to jam in as much complexity as possible and make it so hard for the users, that they had to be trained on using the system first and then on it's functionality. From that time, with the good vision that the companies I have worked had, I always develop functionalities which are more intuitive in nature and less complex. It didn't bother to me that I was having more fields where less fields would suffice. But I always wanted the users to see more to understand the application themselves than to read through manuals to use a single page. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Fortunately very early in my working career, I got chances to design stuff, which was my core strength and probably my only strength till date. I am good at fixing things quickly though sometimes they are not the best option available but a viable solution where the client is more happy to use the System. Still 10 years down the lane, I have lot's of regrets including not worshipping Data Structures and Algorithms, but as the years passed I have gradually learned to work with them. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The reason for writing this blog is to give people like me belief that you can thrive in this industry. Always we are clouded by people who can code x lines in a minute, who can solve all the code challenges put forth by big companies. But remember, there are lot's of opportunities and scope for creators in this space. There is so many things in this world which needs to digitized and the world needs simple programmers more than ever. The more application developers think like end users, the better the world would be. Do not limit yourselves to the confines of the programming language or the application but rather learn to dream and remember, the world is never enough for Dreamers.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Happy Coding... </div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-11951433984189374232016-02-11T19:50:00.003+04:002016-02-11T20:54:04.619+04:00Apps to install after installing Ubuntu <div dir="ltr" style="text-align: left;" trbidi="on">
Here are the list of apps that I almost use on a day to day basis. This blog will be updated with the apps in the subsequent versions.<br />
<br />
<ol style="text-align: left;">
<li>Docky (MAC like doc)</li>
<li>Nylas N1 (Email client)</li>
<li>Skype</li>
<li>Vim</li>
<ol>
<li>Pathogen package manager</li>
<li>Twitvim</li>
<li>NERDTree</li>
</ol>
<li>Sublime Text</li>
<li>VLC Media Player</li>
<li>SSH</li>
<li>Unity tweak tool</li>
<li>Openbravo ERP stack</li>
<ol>
<li>Java</li>
<li>Ant</li>
<li>Postgresql</li>
<li>Tomcat</li>
<li>Eclipse Indigo</li>
</ol>
<li>Node.js (useful for many plugins)</li>
<li>Google Chrome</li>
<li>Noobs Labs Ubuntu themes and icons</li>
<li>Teamviewer</li>
<li>Fogger App</li>
</ol>
<br />
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-67954876419435740082016-01-04T16:32:00.002+04:002016-01-04T16:32:28.810+04:00Working with Tomcat and Apache2 in Ubuntu<div dir="ltr" style="text-align: left;" trbidi="on">
This is one of the best links that worked for me when I tried to configure tomcat (any version) and apache2 in Ubuntu.<br />
<br />
http://thetechnocratnotebook.blogspot.com/2012/05/installing-tomcat-7-and-apache2-with.html</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-86291512393597835262015-06-30T18:41:00.000+04:002015-12-11T12:14:33.742+04:00My journey with Angular.js - Day1<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAbd0mh9W1MkBvScLG3rLLjZHW8rj8HjSvmYmxGUgXe6CTOPSaDnV5HghjKrbv86P5enqkH2uJaw9xQv4YVeOKApd585LbIJTHRuEI027lO6LWChMlGxRqshRz-rcnuw5DBmsMYFPfD0eY/s1600/download.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAbd0mh9W1MkBvScLG3rLLjZHW8rj8HjSvmYmxGUgXe6CTOPSaDnV5HghjKrbv86P5enqkH2uJaw9xQv4YVeOKApd585LbIJTHRuEI027lO6LWChMlGxRqshRz-rcnuw5DBmsMYFPfD0eY/s1600/download.jpg" /></a></div>
<br />
Hi All,<br />
I am planning to learn Angular.js from today and I using the http://campus.codeschool.com/courses/shaping-up-with-angular-js/ for my first training. Beginning my training, will keep posting here how it goes...<br />
<br />
Beginning with the Introduction. They are taking about creating a gems store and I was immediately thinking whether I entered a Ruby tutorial... Got to focus up...<br />
<br />
Even before starting the tutorial, we are asked to make sure we know Html/CSS and Javascript. Okay, I can handle that... Next up, about testing patterns, Behavioral Driven Development and Test Driven Development. I am sure I fall under BDD and my clients under TDD.<br />
<br />
Good to know Angular.js is ONLY a front end framework and not a backend framework and it is more suitable for dynamic websites.<br />
<br />
Listening about proper responsive sites. Also good to know Angular can load a specific section of the page without loading the whole assets list...<br />
<br />
Directives are used to bind the method to events. ng-controller seems to the keyword for this. Not sure whether I get it correct so far. Need to get angular.js and twitter bootstrap. Downloaded Angular.js from https://angularjs.org/ and twitter bootstrap from http://getbootstrap.com/getting-started/. By the way, I am trying out atom editor from editor. Might try this with that.<br />
<br />
Good to know Angular.js is a module driven architecture. In the examples shown, the script tag is included in the body tag, not sure whether that has any impact on the Application load time.<br />
<br />
ng-app is the directive to run a module when the application loads. Seems to be not so intuitive. Time for the challenges...<br />
<br />
Completed level 1 and learnt the following directives<br />
ng-app - for binding modules<br />
ng-controller - for binding events<br />
ng-repeat - for iterations (cool by the way)<br />
ng-show and ng-hide - expression based data display.<br />
<br />
Now will probably go to next chapter after testing a local demo. Seems to be quite interesting..:)<br />
<br /></div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3963802921660173631.post-72188844246769810362015-05-26T15:25:00.000+04:002015-05-26T15:27:38.710+04:00Navigating folders and files in java<div dir="ltr" style="text-align: left;" trbidi="on">
There are lot's of predefined libraries for File Management like Apache Commons. But it is better to know code that can be used without these libraries. Here is a small program to recursively search through a directory and print the name of all the files present in the directory.<br />
<br />
import java.io.File;<br />
<br />
/**<br />
*<br />
* @author Shankar<br />
*<br />
*/<br />
<br />
public class test {<br />
<br />
/**<br />
* @param args<br />
*/<br />
public static void main(String[] args) {<br />
final File folder = new File("E:\\Openbravo\\ImportModule\\orderImport");<br />
listFiles(folder);<br />
}<br />
<br />
public static void listFiles(File folder) {<br />
for (final File currentFile : folder.listFiles()) {<br />
if (currentFile.isDirectory()) {<br />
listFiles(currentFile);<br />
} else {<br />
System.out.println(currentFile.getName());<br />
}<br />
}<br />
}<br />
}<br />
<br />
Notice that I have used double backward slash '\\' in file path as I am using windows (as strange as that might sound for an Ubuntu fanatic) ..:) . In linux single forward slash is enough ('/').<br />
<div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-78854390481039494622014-12-16T00:46:00.001+04:002014-12-16T00:50:49.891+04:00Analysing Openbravo as a platform<div dir="ltr" style="text-align: left;" trbidi="on">
<span xmlns=""></span><br />
<span xmlns="">The future of the Enterprise solutions industry belongs to micro services and in fact nano services. Gone are the days when Enterprise applications were the ones that contained huge gigantic databases and middle ware and a crappy User Interface. In the current era where mobile first (or app first) strategy is driving businesses, the key to choosing an Enterprise solution is not just to use it as an application but also use it as a platform where you can keep on adding your solutions at least for the next decade. Openbravo being a company founded to develop Enterprise applications based on latest technologies has embraced this approach right from its early days. </span><br />
<span xmlns=""></span><br />
<a name='more'></a><span xmlns=""><br /></span>
<span xmlns="">Here is a small figure on a small subset of modules present in Openbravo. </span><br />
<span xmlns=""><br /> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWhABd77Rkr5T1I-lmRBBi9sawyaPWZKdMDu9ksY3wZsKEXQmDylyaFJ4EnTI5H1cIqGyL-483MjIRYmZ48h_Se2G-vbfRVWJ9PPJzTalBWzfvBWVW1RG5-VTj26QGpT_xUhHGr-h7Jkb0/s1600/ERP-copy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWhABd77Rkr5T1I-lmRBBi9sawyaPWZKdMDu9ksY3wZsKEXQmDylyaFJ4EnTI5H1cIqGyL-483MjIRYmZ48h_Se2G-vbfRVWJ9PPJzTalBWzfvBWVW1RG5-VTj26QGpT_xUhHGr-h7Jkb0/s1600/ERP-copy.jpg" height="199" width="320" /></a></div>
<span xmlns=""><br /> </span><br />
<span xmlns="">Let us see here why Openbravo is even more powerful as a platform</span><br />
<br />
<ul style="text-align: left;">
<li><b>Modularity</b></li>
</ul>
<br />
As you can see from the figure above Openbravo embraced modularity or segregation of individual business processes that are interconnected through extension points. In essence you can keep on adding or removing new business processes (verticals as it is usually referred) without having any tight coupling with the other business processes. For example a manufacturing vertical can be used on the same Openbravo setup and also a CRM vertical completely unrelated to the management vertical can reside in the same solution. The beauty here is since each vertical or module can operate independently there is no real need for security concerns or load concerns. But of course there is some underlying data that has to be shared across the System like financials or customer data. This is the next strength of Openbravo.<br />
<div>
<ul style="text-align: left;">
<li><b>Master data management</b></li>
</ul>
</div>
<div>
A key module of Openbravo solution is the Master Data Management. Some of the business features dealt within this module are:<br />
<ul style="margin-left: 72pt;">
<li><span xmlns="">Company information</span></li>
<li><span xmlns="">Organization hierarchy</span></li>
<li><span xmlns="">Financial Information</span></li>
<li><span xmlns="">Users and Roles</span></li>
<li><span xmlns="">Security</span></li>
</ul>
<span xmlns="">The advantage here is that this information is usually generic to most of the business process and so instead of repeating the same information across services, the same service can be linked to other solutions. Also since the security of the data is handled here, data abstraction for the various processes can be handled quite easily.</span><br />
<span xmlns=""><br /></span>
<br />
<ul style="text-align: left;">
<li><b>Ease of development</b></li>
</ul>
<br />
This has to be done as a whole article altogether but I will provide a small brief of it. Openbravo uses something called the Application Dictionary model, which enables developers to create windows and artifacts without coding. In essence with simple data such as the SQL tables, any user can create windows in no time. This provides us with multiple benefits like<br />
<br />
<ul style="text-align: left;"><ul>
<li>The same user interface standard is maintained across various solutions. </li>
<li>Go live time is hugely reduced and spent more on polishing the business process instead of focussing on trivial elements. </li>
<li>Resources required to complete a module is very lean compared to creating solutions from the scratch.</li>
</ul>
</ul>
<br />
<b></b><br />
<ul style="text-align: left;"><b>
<li><b>Open source</b></li>
</b></ul>
<b>
</b></div>
<div>
This is probably the biggest advantage of using Openbravo as a platform. Openbravo was one of the pioneers in open source ERP and one of the very few to still stay that way. Since Openbravo is entirely built on an open source software stack, we have the freedom to use it judiciously without the fear of future updates and legal constraints. And with Openbravo exchange there are hundreds of modules available which can be used to develop your business process in a very little time. For eg, Integrations are provided with various other solutions like SugarCRM, Magento, Pentaho Business Intelligence.</div>
<div>
<br />
<span xmlns="">These are some of the key benefits of using Openbravo as a platform. There are whole lot more benefits like centralized deployment and reduced maintenance overhead, but I think once you understand the power of the platform these things are trivial. Would like to hear from you all about the cases in which you have utilized Openbravo as a platform and also as always suggestions and comments are welcome. </span><br />
<div style="margin-left: 36pt;">
<span xmlns=""><br /> </span></div>
</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-566790056097494342014-11-20T00:03:00.000+04:002014-11-20T00:19:30.667+04:00Dissecting the application scripting architecture of Openbravo ERP 3.0<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;">
One of the main USP’s of Openbravo ERP 3.0 is its RIA (Rich Internet Architecture) based on the smartclient framework. Openbravo was one of the pioneers in the Opensource ERP industry to move to a fluid client based architecture. In my earlier <a href="http://www.shankarbalachandran.com/2012/04/dissecting-openbravo-30-ui-architecture.html">post</a> , I attempted to dissect the User Interface elements in Openbravo. In this post, I tend to explain briefly the way the client side scripting is segregated which would be quite useful while debugging and also while extending the module and creating new scripts.<br />
<br />
<a name='more'></a></div>
<div style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;">
<br /></div>
<div style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;">
The main client side scripts are present in the module org.openbravo.client.application. Here is the folder structure of the user interface module.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbPO26oEU3eWg5sxaELUF99fZv99oeBNHT2O7VpskfEOqbE-3vd3fgCB0ZoP4x6VxfeNS2AqwJWhnEhzh9WmNJpFeEXC1nFyNbSDWOFYJPGx2mqillu1UpTulHp1xEqIIHFvBQBYwo2-P8/s1600/Client+Application+Module.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbPO26oEU3eWg5sxaELUF99fZv99oeBNHT2O7VpskfEOqbE-3vd3fgCB0ZoP4x6VxfeNS2AqwJWhnEhzh9WmNJpFeEXC1nFyNbSDWOFYJPGx2mqillu1UpTulHp1xEqIIHFvBQBYwo2-P8/s1600/Client+Application+Module.png" height="320" width="194" /></a></div>
<div style="font-family: Tahoma; orphans: 2; text-align: -webkit-auto; widows: 2;">
<br /></div>
The custom scripts that are used in Openbravo ERP are added in the <b>web/org.openbravo.client.application/js</b> folder. There is another folder in the same path, <b>org.openbravo.userinterface.smartclient</b> which contains the core smartclient elements that are being used and modified for Openbravo. Notice that the scripts are segregated related to the user interface elements. For eg., The alert-management folder contains all the scripts needed for rendering and manipulation of the alert window. I will try to touch base on few elements that are being used widely and most likely to be debugged. But before that we should be aware that Openbravo uses the free marker template engine to generate user interface based on the scripts. In essence, the user interface elements that we see are mostly formed from <b>FTL</b> (Freemarker Template Language) templates. These templates are stored in the <b>src/org/openbravo/client/application/templates</b> folder. Here is a screenshot of the templates.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRyY8GhPdDiTctavt_kS-YcbAUl-mbamDtjED6m-UB4uWUBeXS1oKcl6HPGU6E1SK_sAzKT8Whxe82Iw1_8D0JcIQRZhItQrW7Udpz6JBfaEkLX5a0Nqj8G11KYflSthaHZR5RKJazo_7l/s1600/Templates.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRyY8GhPdDiTctavt_kS-YcbAUl-mbamDtjED6m-UB4uWUBeXS1oKcl6HPGU6E1SK_sAzKT8Whxe82Iw1_8D0JcIQRZhItQrW7Udpz6JBfaEkLX5a0Nqj8G11KYflSthaHZR5RKJazo_7l/s1600/Templates.png" height="320" width="311" /></a></div>
<div>
I am not going to explain in detail all the templates, but layout.js.ftl is the main template that acts as the base of the user interface and contains the top menu section and the tabbed workspace. The other templates are quite self-explanatory from their names and if there are any doubts in this, please drop in a comment.</div>
<div>
<br /></div>
<div>
Next coming to the Application scripts, here are the key scripts.</div>
<div>
<b>1. Main View</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzgoC094PvxyloQvwsKf38pGaeDR_U0StL4EcgYu2XAlry1tVGdf-7E8VVKOo3QIy6XGpSLd8soLms0yE4TlkEcWLlQ-Cn7tHjNzD96Ez6dFb6m8Uf4CTJdFV_49fEaEf4lM9OAPwZn8fK/s1600/Main+View+scripts.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzgoC094PvxyloQvwsKf38pGaeDR_U0StL4EcgYu2XAlry1tVGdf-7E8VVKOo3QIy6XGpSLd8soLms0yE4TlkEcWLlQ-Cn7tHjNzD96Ez6dFb6m8Uf4CTJdFV_49fEaEf4lM9OAPwZn8fK/s1600/Main+View+scripts.png" /></a></div>
<div>
The main view contains the scripts necessary for the rendering and manipulation of data in the tabs, The ob-tab.js is the base script file for the tab and ob-standard-window.js is the main container inside the tab. The ob-standard-view contains the form view and grid view of each tab. ob-messagebar.js is also contained in ob-standard-view so that it is displayed properly in both form view as well as grid view. </div>
<div>
<ul style="text-align: left;">
<li>ob-tab.js</li>
<ul>
<li>ob-standard-window.js</li>
<ul>
<li>ob-standard-view.js</li>
<ul>
<li>ob-messagebar.js (the form and grid components are detailed below)</li>
<ul>
<li>ob-view-grid.js</li>
<li>ob-view-form.js</li>
</ul>
</ul>
</ul>
</ul>
</ul>
<b>2. Grid View</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbCkWeIIl3ushQuY4eGLmNyj8T5kg2yw1dRhpQ1F-drvBytXV_q-rYjhS8K-BmxHPo5S17c4U0i2rYuKVKX4kjf7YIbPxHWzJ3eyMLZg41C0ICo_ObV4Dk3ytG-ayy7SymZtF6lGEM8p4D/s1600/Grid+View.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbCkWeIIl3ushQuY4eGLmNyj8T5kg2yw1dRhpQ1F-drvBytXV_q-rYjhS8K-BmxHPo5S17c4U0i2rYuKVKX4kjf7YIbPxHWzJ3eyMLZg41C0ICo_ObV4Dk3ytG-ayy7SymZtF6lGEM8p4D/s1600/Grid+View.png" /></a></div>
<div>
<br /></div>
<div>
All the scripts related to grid layout is present in the grid folder. Here ob-grid.js is the main grid definition extended from smartclient grid. The ob-view-grid.js is the file that is used to render the grid layout for all the normal windows. ob-tree-grid.js is an extension of smartclient tree grid and used in <a href="http://wiki.openbravo.com/wiki/How_to_Create_a_Tree_Selector" target="_blank">tree grid reference</a> in Openbravo. The ob-tree-view-grid.js is the grid layout that is rendered in windows where tree grid is being used. For eg., Organization window.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7a1Pk3SQsTrfESGrPdsukqoF7Qw8XuBStjBSZEenpLDsz6XcBCm49kJ3BXjGlumjlJoyYjrzrzuNB_Ymio2JiMXg10vOeEPOGwuq8BwaSPq1jhEYgSGJROAkZVc_qFYBvPwg40nTE3ej-/s1600/tree+grid.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7a1Pk3SQsTrfESGrPdsukqoF7Qw8XuBStjBSZEenpLDsz6XcBCm49kJ3BXjGlumjlJoyYjrzrzuNB_Ymio2JiMXg10vOeEPOGwuq8BwaSPq1jhEYgSGJROAkZVc_qFYBvPwg40nTE3ej-/s1600/tree+grid.png" height="110" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<b>3. Form View</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzaqfMOYOrkR_9M_-2lRABuuaKbTh7xcJTYWv8IlZISExp6AFY0pp-muU8zTKIsufd2EibWbIhBDHj9GPgTh9pZ0mWu7Zj2RrUQP6nL4p74U8DUiK6-VzrJB_bMciT9xIHfTKhXU-ooy6/s1600/Form+scripts.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyzaqfMOYOrkR_9M_-2lRABuuaKbTh7xcJTYWv8IlZISExp6AFY0pp-muU8zTKIsufd2EibWbIhBDHj9GPgTh9pZ0mWu7Zj2RrUQP6nL4p74U8DUiK6-VzrJB_bMciT9xIHfTKhXU-ooy6/s1600/Form+scripts.png" /></a></div>
<div>
<b><br /></b></div>
<div>
The form view contains all the scripts related to the form view. The interesting thing here is, note that there are separate scripting files for the status bar, attachment section, linked item, notes. Any improvements made to these will not adversely affect the form view and similarly it is easier to add new components to the form view similar to these. The ob-view-form.js is the base script for rendering the form view. Another interesting thing to note here is the formitem folder. The formitem folder is nothing but scripts for each of the reference types being used by Openbravo. This again improves code readability, maintainability and is easily extendable. </div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhec3lcQ-VeVpaWa8zXifO9Q2Lum7RcIAznQDptN08aYQTd5WV6JjMHCeWHiHOpNdvuliJ2byz5Bst-fxI-iwgzyuDtFGSknFzA8RCkzSBjYo_4YLwoeDggjVdLTqxDlbMc-dwz_V7iN13f/s1600/Form+item+scripts.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhec3lcQ-VeVpaWa8zXifO9Q2Lum7RcIAznQDptN08aYQTd5WV6JjMHCeWHiHOpNdvuliJ2byz5Bst-fxI-iwgzyuDtFGSknFzA8RCkzSBjYo_4YLwoeDggjVdLTqxDlbMc-dwz_V7iN13f/s1600/Form+item+scripts.png" height="320" width="148" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<b>4. Toolbar</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBph-QFOTzhakTMYY4ufDM0vs5uGRdhkAw-i2U5x4HeC2ATx_xMx216sXvsdGgjjD9HUkmWOdF-3YhyphenhyphenPL3l1hRlYNmi_QRoBnDzvD8d39u_WgOsZZqTTXc4Ou9bHHQBGP9JNzsX1i0efJY/s1600/Toolbar.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBph-QFOTzhakTMYY4ufDM0vs5uGRdhkAw-i2U5x4HeC2ATx_xMx216sXvsdGgjjD9HUkmWOdF-3YhyphenhyphenPL3l1hRlYNmi_QRoBnDzvD8d39u_WgOsZZqTTXc4Ou9bHHQBGP9JNzsX1i0efJY/s1600/Toolbar.PNG" /></a></div>
<div>
Another more used feature is the toolbar. Here ob-action-button.js contains the generic actions to be performed for all toolbar and button fields and of course with some exceptions. But <b>ob-toolbar.js </b>is the file where all the toolbar elements like New, Delete, Save, Export are defined. ob-clone-order.js is a custom button developed specifically for order window. So this is defined separately again to make sure that core functionality is not affected by newer developments. </div>
<div>
<br /></div>
<div>
You can check the other folders and see how cool and simple it is to understand the application scripting architecture in Openbravo. Feel free to comment on any mistake that I may have made (in this blog post) and also for any doubts or clarifications. </div>
<div>
<br /></div>
<div>
Happy Working !!!</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-38652006080986394662013-08-08T08:49:00.000+04:002014-11-20T00:20:04.272+04:00Improvements in Attachment model in Openbravo<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Georgia, Times New Roman, serif;">Attachments are one of the breezy UI aspects of Openbravo, where you can attach any number of attachments to any record in the application. The beauty of the feature lies in the fact that you can restrict the access to the attachments for a specific users/roles. An use case is provided <a href="http://planet.openbravo.com/?p=52217" target="_blank">here</a>. From 3.0MP26 there are some improvements in the way Attachments are implemented. </span><br />
<span style="font-family: Georgia, Times New Roman, serif;"></span><br />
<a name='more'></a><span style="font-family: Georgia, Times New Roman, serif;"><br /></span><br />
<h2 style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: small;">Change in architecture</span></h2>
<div style="background-color: white; line-height: 12pt; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;">Before 3.0MP26, the attachments were stored in the attachments directory (the attach.path property in Openbravo.properties). They were stored in this folder structure</span></div>
<ul style="background-color: white;">
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">AttachDirectory</span><ul>
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">tableId-recordId</span><ul>
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">Attachment.</span></li>
</ul>
</li>
</ul>
</li>
</ul>
<div style="background-color: white; line-height: 12pt; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;">But in few file systems like ext3 where there is a limit of 32k subfolders, this would exceed the maximum number of folders allowed.</span></div>
<div style="background-color: white; line-height: 12pt; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;">To overcome this, the attachment model has been updated to save the attachment from 3.0MP26. For eg, for table Id "259", recordId "0F3A10E019754BACA5844387FB37B0D5", the file directory returned is "259/0F3/A10/E01/975/4BA/CA5/844/387/FB3/7B0/D5". i.e,</span></div>
<span style="background-color: white; line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">--> AttachDirectory</span></span><br />
<div>
<span style="background-color: white; line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">---> 259</span></span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><span style="background-color: white; line-height: 12pt;">----> 0F3</span><br /><span style="background-color: white; line-height: 12pt;">-----> A10</span></span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><span style="line-height: 16px;">------> </span><span style="background-color: white; line-height: 12pt;">E01</span><br /><span style="background-color: white; line-height: 12pt;">-------> 975</span></span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><span style="line-height: 16px;">--------> </span><span style="background-color: white; line-height: 12pt;">4BA</span><br /><span style="line-height: 16px;">---------> </span><span style="background-color: white; line-height: 12pt;">CA5</span><br /><span style="line-height: 16px;">----------> </span><span style="background-color: white; line-height: 12pt;">844</span><br /><span style="line-height: 16px;">-----------> </span><span style="background-color: white; line-height: 12pt;">387</span><br /><span style="line-height: 16px;">------------> </span><span style="background-color: white; line-height: 12pt;">FB3</span><br /><span style="line-height: 16px;">-------------> </span><span style="background-color: white; line-height: 12pt;">7B0</span><br /><span style="line-height: 16px;">--------------> </span><span style="background-color: white; line-height: 12pt;">D5</span><br /><span style="line-height: 16px;">---------------> </span><span style="background-color: white; line-height: 12pt;">Attachment</span></span></div>
<div>
<span style="line-height: 16px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span><span style="font-family: Georgia, Times New Roman, serif;"><span style="background-color: white; line-height: 12pt;">Note that the attachments can be still be stored using the previous model by enabling the preference 'SaveAttachmentsOldWay' to 'Y'. For more information on using preferences refer</span><span style="background-color: white; line-height: 12pt;"> </span><a class="external text" href="http://wiki.openbravo.com/wiki/Preference#Preferences_Definition" rel="nofollow" style="color: #489c06; line-height: 12pt;">here</a>.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br />
</span><br />
<h2 style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: small;">API's for Attachments Management:</span></h2>
<span style="font-family: Georgia, Times New Roman, serif;"><br />
Before these improvements, attachments were fetched using the standard folder name of tableId-recordId. Now API's have been introduced to fetch the attachments and also to get the directory where attachment have to be stored in the improved model based on the preference 'Save Attachments Old Way'.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br />
</span><br />
<h3 style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: small;">API for fetching existing attachments:</span></h3>
<div style="background-color: white; line-height: 12pt; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;">The attachment can be fetched through an API method in TabAttachments. The method <b>TabAttachments.getAttachmentDirectory</b> can be used to fetch a particular attachment. The arguments to be passed are:</span></div>
<ul style="background-color: white;">
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">UUID of the ad_table</span></li>
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">UUID of the record</span></li>
<li style="line-height: 12pt;"><span style="font-family: Georgia, Times New Roman, serif;">fileName</span></li>
</ul>
<div style="background-color: white; line-height: 12pt; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;">It returns the path of the attachment relative to the attachment directory. The attachment directory can be fetched from Openbravo properties in java code using OBPropertiesProvider. <a class="external text" href="http://planet.openbravo.com/?p=42105" rel="nofollow" style="color: #489c06;">Here</a> is a blog on how it can be used. <span style="line-height: 12pt;">For eg., to fetch an attachment test.txt of recordId 0F3A10E019754BACA5844387FB37B0D5, tableId 259, the method can be used as follows:</span></span></div>
<blockquote class="tr_bq">
<span style="font-family: Georgia, Times New Roman, serif; line-height: 16px;">String attachmentDirectory = TabAttachments.getAttachmentDirectory("259","0F3A10E019754BACA5844387FB37B0D5","test.txt");</span></blockquote>
<div style="background-color: white; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif; line-height: 16px;"><br /></span></div>
<h3 style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: small; line-height: 16px;">API to fetch directory to save new attachments</span></h3>
<div style="background-color: white; margin-top: 1ex; padding-bottom: 0px; padding-top: 0px;">
<span style="font-family: Georgia, Times New Roman, serif;"><span style="line-height: 16px;">When saving new attachments, the method TabAttachments.getAttachmentDirectoryForNewAttachments can be used to fetch the directory in which the attachment has to be stored. The arguments to be passed are, </span><span style="line-height: 16px;">tableId and </span><span style="line-height: 16px;">recordId . </span><span style="line-height: 16px;">The value returned is the directory to save the record.Note that the directory returned is relative from the attachment directory of Openbravo.</span></span></div>
<blockquote class="tr_bq">
<span style="font-family: Georgia, Times New Roman, serif;"><span style="line-height: 16px;">TabAttachments.</span><span style="line-height: 16px;">getAttachmentDirectoryForNewAttachments </span><span style="line-height: 16px;">("259","0F3A10E019754BACA5844387FB37B0D5");</span></span></blockquote>
<span style="font-family: Georgia, Times New Roman, serif;"><br />
</span><br />
<h2 style="text-align: left;">
<span style="font-family: Georgia, Times New Roman, serif; font-size: small;">
Migrating existing attachments to the improved model</span></h2>
<span style="font-family: Georgia, Times New Roman, serif;"><br />
Existing attachments can be migrated based on the latest model using an ant task. The task can be executed using the following command,</span><br />
<blockquote class="tr_bq">
<span style="font-family: Georgia, Times New Roman, serif;">ant migrate.attachments </span></blockquote>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<br />
<div style="background-color: white; color: #222222;">
<span style="font-family: Georgia, Times New Roman, serif;">the customer instance does not have any extension that is using API to retrieve attachments, no change for them is required, no need to migrate attachments. New attachments will be saved and retrieved using new approach, old - retrieved old approach.</span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: Georgia, Times New Roman, serif;">If there is an extension that uses the old API then two options are possible</span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: Georgia, Times New Roman, serif;">1. Switch on the mode to save attachments old way and that is it (short-term solution).</span></div>
<span style="font-family: Georgia, Times New Roman, serif;"><span style="background-color: white; color: #222222;">2. Change the extension to use new API and migrate attachments (recommended for the mid-term, long-term).</span> Contact us through our <a href="http://forums.openbravo.com/viewforum.php?p=openbravoerp" target="_blank">forum</a> or through our social network channels </span><a href="https://twitter.com/Openbravo">https://twitter.com/Openbravo</a>, <a href="https://www.facebook.com/OpenbravoSLU">https://www.facebook.com/OpenbravoSLU</a> <span style="font-family: Georgia, Times New Roman, serif;"> for any doubts. </span></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-86076307373719309012013-06-21T10:08:00.000+04:002014-11-11T13:59:36.522+04:00Managing coworking spaces using "Openbravo Coworking"<div dir="ltr" style="text-align: left;" trbidi="on">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Managing Coworking Spaces? </span></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 19px; vertical-align: baseline; white-space: pre-wrap;">Here is why you need "Openbravo Coworking".</span></b></div>
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><br /><span style="font-family: Arial; font-size: 19px; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">The major boon and may be the only boon in the receding economic crisis is the emergence of strong startup hubs or coworking communities. Now coworking just does not mean sharing spaces. It is a lot more than that. It is an effective community where people are ready to discuss openly about the clients and help each other in resolving issues and building contacts and getting projects for each other. This in turn forms a network of highly skilled people sharing a common work environment which serves as an incubator for awesome products. If you are wondering whether coworking is needed, you can head to the discussions </span><a href="http://ventureburn.com/2013/05/10-reasons-why-coworking-makes-sense-for-startups/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"></span></b></div>
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;">
<br /><span style="font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"></span></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Working in a coworking environment is fun for most companies, while managing coworking spaces can be quite a task. Right from managing member leads to finalizing spaces, allocation of desks, meeting halls, invoicing them properly and maintaining contracts, etc. Selecting appropriate members itself would prove to be a tough task. There are few general tips provided </span><a href="http://mashable.com/2011/03/01/managing-coworking-space/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"></span></b></div>
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;">
<br /><span style="font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"></span></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">But what are the things as a coworking space owner do you need to do?</span></b></div>
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;">
</b>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">1. The front office team can manage member leads with excel sheets.</span></b></div>
<b id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab" style="font-weight: normal;">
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">2 The operations team can maintain desks and halls through any solution like this </span><a href="http://techcrunch.com/2013/04/28/hackspaces/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">one</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Even the members can actively participate.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">3. The finance team can invoice the members with your accounting software which you used to file for taxing purposes.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">4. The legal team then have to maintain the contracts and update them once in awhile and make sure to pass on the information to the other teams so that it is updated properly in their solutions.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; line-height: 1.15; vertical-align: baseline; white-space: pre-wrap;">Wait. Are you already tired? This is just the tip of the iceberg. Right from amenities like wifi, stationery items like boards, markers to the coffee mugs everything needs to be accounted and everything needs to be maintained. This is why you need a centralized solution that all your teams could use so that you can be peaceful and concentrate on improving the quality of your coworking space. <a href="http://www.openbravo.com/">Openbravo</a>, has come up with one such solution, “<a href="http://www.openbravo.com/coworking">Openbravo for Coworking</a>”</span><span style="font-family: Arial; font-size: 15px; line-height: 18px; vertical-align: baseline; white-space: pre-wrap;">. Openbravo, is the leading provider of browser based open source business applications for the cloud used by over 6500 organizations in 60 countries.</span><span id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab"></span><br />
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; margin-bottom: 0pt; margin-top: 0pt;">
<div dir="ltr" style="display: inline !important; line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<div style="display: inline !important;">
<div style="display: inline !important;">
<div style="display: inline !important;">
<span id="docs-internal-guid-32d95de2-6550-8bdf-dae3-c7e58fc3fbab"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="line-height: 1.15;">
</div>
</div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Designed in collaboration with industrial experts like </span><a href="http://rocket-space.com/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">RocketSpace</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="http://www.the-hub.net/" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">The Hub</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, the coworking vertical of Openbravo transforms your entire business into a simple, intuitive browser based application that can be used both by your employees as well as your members to quickly check availability of a meeting room, book a reservation for it, or check the status of their outstanding balances. The advantages of using Openbravo as a platform to manage your coworking space is huge. But let me just present a few here.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">1. Multi Tenant architecture that allows you to securely run the same application for multiple clients without any concern about the security of the data.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">2. State of the art </span><a href="http://wiki.openbravo.com/wiki/Openbravo_3_Architecture" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">technology</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> that allows any user to access the application securely from their browsers without the need for any other installations.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">3. Fully blown SCM solution including finance, sales, procurement, that covers you with generic business needs in addition to maintaining the coworking areas.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">3. Openbravo can support multiple localizations in a single instances, thereby if you are running your coworking spaces in 4 different continents with different taxing rules and invoicing models, Openbravo has you covered.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">4. With a modular architecture and a open source platform there are many modules which are provided by Openbravo and its partners which can be viewed </span><a href="http://openbravo.com/modules-catalog" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. If you are not able to select from the list of available modules, developing a module in Openbravo is really simple and can be completed in a matter of about couple of weeks.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">5. Easily integrated with other solutions like SugarCRM, Magento, Amazon etc.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">6. Member portals, where members can book meeting rooms, etc.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Well one more differentiating factor is that, it is completely cloud based which means you need not spend any cost on deployment and maintenance of the application. So in summary, these are the advantages of using “Openbravo Coworking” as your coworking solution:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">1. Be ahead of your competitors : Thanks to a very productive and customizable interface resulting in a superior member experience.Improve tenancy and resource utilization</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">(e.g. desks, offices, meeting rooms) with multi-space analysis capabilities, and easy assignment capabilities.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">2. Increase revenues : With performance analysis of spaces and resources combined with promotion management and with multi location (e.g. send someone to another coworking space of the same Group with availability).</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">3. Optimize income per member : With service optimization to every member thanks to the member portal that allows members to make space and resource reservations themselves, lowering the threshold to usage.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">4. Timely invoicing and collections: With integrated invoicing and payment, keeping member contracts updated at all times and allowing for automatic, batch-based or one-by-one invoicing cycles, as it suits you best.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">5. Control financial performance: Across individual spaces / locations / resource categories / product categories.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">6. Decrease administrative costs: With member self-management and a unique central integrated system that avoids multiple systems to be maintained in parallel.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Pricing is one area I am sure you will be interested on. Openbravo Coworking is strategically priced, keeping in mind that coworking hubs are present all across the globe. You can view the pricing models </span><a href="http://www.openbravo.com/content/openbravo-coworking-pricing" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Also note that this pricing does not affect the locations your coworking spaces are present. A single license is enough for all your locations.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">I think I will wrap it up here.In case you have any queries, you can directly contact us </span><a href="http://www.openbravo.com/form-customer" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Here is a nice </span><a href="http://www.youtube.com/watch?v=UARqeRZwFEk" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">video</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> describing the solution. You can access a full demo of the coworking solution </span><a href="http://openbravo.com/product-industries-coworking" style="text-decoration: none;"><span style="color: #1155cc; font-family: Arial; font-size: 15px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
<div>
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
</b></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-79917545453429501052013-06-18T11:48:00.001+04:002014-11-11T14:00:47.344+04:00Openbravo POS on mobile devices<div dir="ltr" style="text-align: left;" trbidi="on">
<iframe allowfullscreen="" frameborder="0" height="270" src="//www.youtube.com/embed/VwWM1ebHz90" width="480"></iframe></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-49660297434574191662013-01-28T10:39:00.000+04:002014-11-20T00:20:20.094+04:00Enable/Disable options in Openbravo using Preferences<div dir="ltr" style="text-align: left;" trbidi="on">
In Openbravo ERP, preferences are a cool and effective way to manage restrictions and apply certain additional actions at various levels like Client, Organization, Role and even at the window level. For more information on using preferences, refer <a href="http://wiki.openbravo.com/wiki/Preference">http://wiki.openbravo.com/wiki/Preference</a><br />
<br />
One such preference was enabling/disabling toolbar options like Delete, Attach, Export. From Openbravo 3.0 MP17 you can enable or disable these options for a particular window or a particular user and even for a particular role. Lets see few scenarios where this could come handy.<br />
<br />
<a name='more'></a><br /><br />
<br />
Note that all these options are enabled by default and using preferences you will only be able to disable them. <br />
<br />
Usecase 1 : Restrict Deletion of Records<br />
John is a new intern and maintaining User Information. Though he should be allowed access to 'user' information window, he should not be allowed to delete Users. This can be done by creating a preference as in the screenshot. Once this setting is saved, John will not be able to delete records from the User Window. <br />
<br />
<div class="separator">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8I58EigNqWQjI3ik9WtNQV2hj1iz7CkB22g6HiKQNZ_zcPcdzgoru6ZQVKgi9oFGF21W8Uglg-8KKc_zyzpeZHThtx8kJZ-XdHCt452JT-bGv7Hub68oQ9cj1At4wu4fJBeoPcXI3hmb-/s1600/usercase1.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8I58EigNqWQjI3ik9WtNQV2hj1iz7CkB22g6HiKQNZ_zcPcdzgoru6ZQVKgi9oFGF21W8Uglg-8KKc_zyzpeZHThtx8kJZ-XdHCt452JT-bGv7Hub68oQ9cj1At4wu4fJBeoPcXI3hmb-/s320/usercase1.png" height="137" width="320" /></a></div>
<br />
Usecase 2 : Restrict export data<br />
John (again) has also access to the General ledger window. But since this is a critical data, you do not want him to be able to Export this information. Usually the export is done through the Export as Spreadsheet option provided at each window. To disable this you need to create a preference like the below screenshot.<br />
<br />
<div class="separator">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7EXmvwR8VaRQokVXOFwRU3r4of6nf5Dv9MXoCMWEcgqUd_1pJY_NykfC6i3ZwTKjJFtXKvxFaBy2vuYGsS6zeT2an2Xe3E5BFFlKR85b45PCWas2SrQv9Mrny0O3HFulvvnjx34fgBMSz/s1600/Usecase2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7EXmvwR8VaRQokVXOFwRU3r4of6nf5Dv9MXoCMWEcgqUd_1pJY_NykfC6i3ZwTKjJFtXKvxFaBy2vuYGsS6zeT2an2Xe3E5BFFlKR85b45PCWas2SrQv9Mrny0O3HFulvvnjx34fgBMSz/s320/Usecase2.png" height="136" width="320" /></a></div>
<br />
Usecase 3: Restrict attachments option<br />
David handles the goods receipt section. As soon as he receives a shipment, he uploads the scanned copy of the receipt to the Goods Receipt record. But you want all users with the role 'Sales' to be able to view the Goods Receipt window, but not be able to view the attachments. You can achieve this by creating a preference as follows<br />
<br />
<div class="separator">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwpDTtp6w3VSwlByxN6b3RSQh-1mKn32pZ20otXya-GH8YvZbFlHDLJZModioSfwhKkwn66b9v_55ievcLEhF2l7zb4bIyAjTgwYY8Nq8Avi8EDhyphenhyphend2r6wJsZMNII7fvaPCiXU1HEir9Q/s1600/Usecase3.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwpDTtp6w3VSwlByxN6b3RSQh-1mKn32pZ20otXya-GH8YvZbFlHDLJZModioSfwhKkwn66b9v_55ievcLEhF2l7zb4bIyAjTgwYY8Nq8Avi8EDhyphenhyphend2r6wJsZMNII7fvaPCiXU1HEir9Q/s320/Usecase3.png" height="139" width="320" /></a></div>
<br />
<div class="separator">
</div>
<br />
Hope these cases give a clear picture of the advantages of using these preferences. <br />
<br />
<br />
<br /></div>
Unknownnoreply@blogger.com0Kolkata, West Bengal, India22.572646 88.36389499999995722.1034145 87.718447999999952 23.0418775 89.009341999999961tag:blogger.com,1999:blog-3963802921660173631.post-19709722327033488422013-01-23T17:56:00.001+04:002014-11-11T14:02:44.436+04:00Jobs', Schmidt's, Otellini's shady no-poaching agreements<a href="http://www.osnews.com/story/26726/Jobs_Schmidt_s_Otellini_s_shady_no-poaching_agreements">Jobs', Schmidt's, Otellini's shady no-poaching agreements</a>: <br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-29238482572883899672013-01-22T10:38:00.001+04:002014-11-11T14:02:44.451+04:00Oracle 11g Installation on Windows 7 | MacLochlainns WeblogGood article on installing Oracle 11g R2 in Windows 7.<br />
<br />
<a href="http://blog.mclaughlinsoftware.com/2009/11/27/oracle-11g-on-windows-7/">Oracle 11g Installation on Windows 7 | MacLochlainns Weblog</a>: <br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-54215810881817688512013-01-08T11:33:00.002+04:002014-11-11T15:21:05.562+04:00Tips to speed up Openbravo Development<div dir="ltr" style="text-align: left;" trbidi="on">
Openbravo as framework is as powerful as Openbravo as an ERP. Development and Customization has been very much streamlined due to the MVC architecture and the modular approach. That is one reason there are so many modules/verticals available on top of Openbravo.<br />
<br />
Here are few tips that helped me increase my productivity in Openbravo development. This is more like a compiled list from various articles that I used. Feel free to add more to it in the comments.<br />
<br />
<b><span style="color: #6aa84f;">1. SQL Query Editor</span></b><br />
A feature that is available for a long time, the SQL Query Editor available in System Administrator role can be used for quick selects across any table in Openbravo. This could save your time from switching back from your query tool to the Application. To open the query Editor, go to SQL Query in the System Adminstrator role.<br />
<div class="separator">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKwHSbKpL_o6KJTr2JlHw9S0B3YNZxWpZxGWMIZuntTsjGlV-ZqeA302VZcrAVcXjt2lZwziB078X9LWyRBygU1Anesz7A1pAV_QQ5mGBrBPBqQSkXAbX1L4FGWxaiuod43cuhn7mZu_f/s1600/sqlquery.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKwHSbKpL_o6KJTr2JlHw9S0B3YNZxWpZxGWMIZuntTsjGlV-ZqeA302VZcrAVcXjt2lZwziB078X9LWyRBygU1Anesz7A1pAV_QQ5mGBrBPBqQSkXAbX1L4FGWxaiuod43cuhn7mZu_f/s400/sqlquery.PNG" height="188" width="200" /></a></div>
<br />
<br />
<br />
<b><span style="color: #6aa84f;">2. HQL Query Editor</span></b><br />
A more useful tool that is provided as a module by Openbravo is the HQL Query Tool. This query can be used to perform hql query across all the Entities present in Openbravo. One advanced feature is that you can select your desired Entity from a drop down and find all the attributes of the Entity. To install the same, login as System Administratior, go to Module Management Window and search for 'Openbravo HQL Query Tool'.<br />
<br />
<div class="separator">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix80lv-vdOuJQJvo0LKBziGeMIilsOJUc0XZXuZtNiLcU0Lx5RRk4QBYNuGzhcHKW7mNs7MfYg9kbFDetAh9wYpumzP5-TDjbo2G-Y3IR3N_q9INF3xMUTvXkCHKbYxC5G5rEAwkqlw8kB/s1600/hqlquery.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix80lv-vdOuJQJvo0LKBziGeMIilsOJUc0XZXuZtNiLcU0Lx5RRk4QBYNuGzhcHKW7mNs7MfYg9kbFDetAh9wYpumzP5-TDjbo2G-Y3IR3N_q9INF3xMUTvXkCHKbYxC5G5rEAwkqlw8kB/s400/hqlquery.PNG" height="213" width="200" /></a></div>
<br />
<br />
<b><span style="color: #6aa84f;">3. Auto Logon Manager</span></b><br />
The most time consuming task for me while developing is to type the default username and password more than few hundred times per day (increases exponentially with my potential code blunders). A simple feature that would remove this hassle is to use the Authentication Manager in Openbravo. Just add the following lines under Authentication section in Openbravo.properties file in config folder (or anywhere in the file, better to put it in the right section) to login into the Application as Openbravo user without having to enter the user credentials.<br />
<span style="background-color: white; font-family: monospace; font-size: 13px; line-height: 22px; text-align: justify;">authentication.class=org.openbravo.authentication.basic.AutologonAuthenticationManager</span><br />
<span style="background-color: white; font-family: monospace; font-size: 13px; line-height: 22px; text-align: justify;">authentication.autologon.username=Openbravo</span><br />
Source : <a href="http://planet.openbravo.com/?p=7012">http://planet.openbravo.com/?p=7012</a><br />
<br />
<b><span style="color: #6aa84f;">4. Smartclient Development Module</span></b><br />
The smartclient development module provides you with an uncompressed version of the SmartClient components, thereby assiting in deep debugging of the Client side smartclient code, and also can provides non-obfuscated code so that you can debug even the custom code. More on the this module here.<br />
<a href="http://wiki.openbravo.com/wiki/Client_Side_Development_and_API#The_smartclient.dev_module.2C_smartclient_console_and_sources">http://wiki.openbravo.com/wiki/Client_Side_Development_and_API#The_smartclient.dev_module.2C_smartclient_console_and_sources</a><br />
<br />
<b><span style="color: #6aa84f;">5. Logging into multiple roles at the same time</span></b><br />
More often than not we will be usually juggling between the client admin login and the System Administrator login. To save time from switching over one login to another, there are two ways.<br />
1. Use incognito /private browsing mode. Using the incognito mode, one role opened in a session and another role opened in another session (separate windows).<br />
2. A simpler way is to use Ip/domain name differentiation. For eg., if you are running Openbravo in your local instance then you can have two tabs opened, one with the URL http://locahost:8080/Openbravo and other with 127.0.0.1:8080/Openbravo and have two different roles in each tab.<br />
<br />
<b><span style="color: #6aa84f;">6. Debugger in chrome developer tools</span></b><br />
One technical tip while debugging client side code, if you are not sure what your code actually errors out, you can use the 'debugger;' keyword that will stop the execution of the script at that point. But just be careful to remove the keyword after debugging so that the Application does not do that for unintended circumstances.<br />
<br /></div>
Unknownnoreply@blogger.com0Kolkata, West Bengal, India22.572646 88.36389499999995722.103407999999998 87.718447999999952 23.041884 89.009341999999961tag:blogger.com,1999:blog-3963802921660173631.post-80043265018738928602012-12-14T18:31:00.001+04:002014-11-11T14:02:44.506+04:00Openbravo Code Management<iframe allowfullscreen="" frameborder="0" height="270" src="http://www.youtube.com/embed/qzukrIp_n-k?fs=1" width="480"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-12013992776814606052012-11-08T13:09:00.000+04:002014-11-11T15:20:39.612+04:00Speed up numeric data entry in Openbravo<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Openbravo 3.0 brings in a whole new refreshing change to the way ERP Applications have been designed. </span><br />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Did you know that in Openbravo 3 you can enter a formula in a numeric field?</span><br />
<br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Let's say that you are closing your period and you know that you know that $12,235.48 expense needs to be distributed 60% for department A and 4% for department B.</span><br />
<br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Should you pull out your calculator?</span><br />
<br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Not with Openbravo 3. While entering your journal entry, you can type directly "=12235.48*0.60" and you will get the figure you need!</span><br />
<br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">In Openbravo 3, any numeric fields supports calculations. Start you entry with the "=" character and then enter any calculation formula that supports +, -, *, / as operands. You can also use brackets!</span><br />
<br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">It is much faster than pulling out that old calculator!</span><br />
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Source : </span><a href="https://plus.google.com/u/1/106720987434895771474/posts/HfB7xTWaTuz">https://plus.google.com/u/1/106720987434895771474/posts/HfB7xTWaTuz</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-81859130200532159152012-10-10T13:35:00.001+04:002014-11-11T14:02:44.512+04:00Openbravo Mobile: Agile Business at White Valley | Openbravo blogsChanging face of Agile business?<br />
<br />
<a href="http://planet.openbravo.com/?p=48691">Openbravo Mobile: Agile Business at White Valley | Openbravo blogs</a>: <br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-51043270131753261412012-10-10T13:33:00.001+04:002014-11-11T15:20:19.414+04:00Openbravo Mobile: Technical Overview and Roadmap | Openbravo blogs<div dir="ltr" style="text-align: left;" trbidi="on">
The exciting Openbravo Mobile development update.<br />
<br />
<a href="http://planet.openbravo.com/?p=48713">Openbravo Mobile: Technical Overview and Roadmap | Openbravo blogs</a>: <br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-83130258634158935082012-10-08T12:59:00.002+04:002014-11-11T15:19:51.731+04:00Sub reports in Openbravo<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
Report is one of the key USP for any ERP application. The more enhanced and flexible the reports are, more happy is the customer. In Openbravo, jasper reports provides us the flexibility to handle all this. iReport is one tool that can be used to create jasper reports. I have provided a simple example of how to add sub-report for an Openbravo Report using iReport.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Main Report:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
Assume we have created a main <a data-mce-href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_develop_a_report" href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_to_develop_a_report" target="_blank" title="Creating Reports">report</a> with the following query and layout.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<img alt="" class="aligncenter size-full wp-image-1037" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/mainquery.png" src="http://fugoconsulting.files.wordpress.com/2011/07/mainquery.png" height="506" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="Mainquery" width="612" /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/mainreport.png" href="http://fugoconsulting.files.wordpress.com/2011/07/mainreport.png"><img alt="" class="aligncenter size-full wp-image-1038" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/mainreport.png" src="http://fugoconsulting.files.wordpress.com/2011/07/mainreport.png" height="322" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="MainReport" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Adding Sub Report:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
The Sub Report can be created by adding the sub report icon as follows.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreport.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreport.png"><img alt="" class="aligncenter size-full wp-image-1039" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreport.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreport.png" height="322" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReport" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
The sub-report can be added by drag and dropping the highlighted portion in the above screen shot. It will open the sub report wizard.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
The sub report can be created in any one of the following three ways. Each way has different number of configuration steps.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
1. A new sub report can be created using the wizard by using the "Create a new Report" Option. This will ask for all the options needed to create a new report including the report query. This will go through all the 7 steps.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreport-wizard.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreport-wizard.png"><img alt="" class="aligncenter size-full wp-image-1028" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreport-wizard.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreport-wizard.png" height="393" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="Subreport wizard" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
The Sub Report expression can be any one of the following two options.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
1. Through SUBREPORT_DIR Parameter</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
This will create a parameter SUBREPORT_DIR in Main Report. We have to point this parameter to the folder containing the sub report.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
2. Through absolute path.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreportdir.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreportdir.png"><img alt="" class="aligncenter size-full wp-image-1044" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreportdir.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreportdir.png" height="450" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReportDir" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
2. We can also call a already existing report as a sub report. This can be done by "Use an existing Report" option. We have to provide the path of the existing report. This will directly go to step 6 skipping the steps before that.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreport2.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreport2.png"><img alt="" class="aligncenter size-full wp-image-1033" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreport2.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreport2.png" height="393" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReport2" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
3. The last option will just create a blank sub report.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreport31.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreport31.png"><img alt="" class="aligncenter size-full wp-image-1036" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreport31.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreport31.png" height="393" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReport3" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Adding Parameter:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
In the Report Properties window, there is an option called parameter. This option enables us to add the parameter for that particular report.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreportproperties.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreportproperties.png"><img alt="" class="aligncenter size-full wp-image-1042" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreportproperties.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreportproperties.png" height="222" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReportProperties" width="284" /></a>Any number of parameters can be provided to the report through this option.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreportparameter.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreportparameter.png"><img alt="" class="aligncenter size-full wp-image-1043" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreportparameter.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreportparameter.png" height="268" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReportParameter" width="316" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Sub Report Query:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/subreportquery.png" href="http://fugoconsulting.files.wordpress.com/2011/07/subreportquery.png"><img alt="" class="aligncenter size-full wp-image-1040" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/subreportquery.png" src="http://fugoconsulting.files.wordpress.com/2011/07/subreportquery.png" height="439" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="SubReportQuery" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
Note that you can see the parameter in the available parameters list in the above screen shot. We can also add the parameter through the "New Parameter" button in the above screen shot.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Importing Report in Openbravo:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
For importing the report into openbravo, the jrxml files should be placed inside your <a data-mce-href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_and_Package_a_Module#Creating_a_Module" href="http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_and_Package_a_Module#Creating_a_Module" target="_blank" title="Module">module</a>. For instance, if your module is XYZ with the Java Package com.fugoconsulting.XYZ, then the jrxml file should be inside the folder modules/com.fugoconsulting.XYZ/src/com/fugoconsulting/XYZ/erpReports/. Before importing the report into openbravo, we need to give the relative path for the sub-report and the images that we have added. This will make the report work in all systems irrespective of the path of the report. In order to give relative path, you need to add the following two parameters in main report.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>1. BASE_DESIGN:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
This parameter will be resolved at run time and will be pointing to your module folder(In our case modules/com.fugoconsulting.XYZ/src). The sub report expression must be modified as follows. This can be modified using the property "Sub report Expression".</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/basedesignpath.png" href="http://fugoconsulting.files.wordpress.com/2011/07/basedesignpath.png"><img alt="" class="aligncenter size-full wp-image-1045" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/basedesignpath.png" src="http://fugoconsulting.files.wordpress.com/2011/07/basedesignpath.png" height="476" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="BaseDesignPath" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>2. BASE_WEB:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
This parameter will be resolved to point the web folder at run time. This parameter is used to give the relative path for images. The sub report expression must be modified as follows.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/basewebparameter.png" href="http://fugoconsulting.files.wordpress.com/2011/07/basewebparameter.png"><img alt="" class="aligncenter size-full wp-image-1046" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/basewebparameter.png" src="http://fugoconsulting.files.wordpress.com/2011/07/basewebparameter.png" height="454" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="BaseWebParameter" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<strong>Registering in Reports and Process:</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/reportimport.png" href="http://fugoconsulting.files.wordpress.com/2011/07/reportimport.png"><img alt="" class="aligncenter size-full wp-image-1047" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/reportimport.png" src="http://fugoconsulting.files.wordpress.com/2011/07/reportimport.png" height="201" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="ReportImport" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
Create menu and compile the application. The output will be,</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
<a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/output1.png" href="http://fugoconsulting.files.wordpress.com/2011/07/output1.png"><img alt="" class="aligncenter size-full wp-image-1048" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/output1.png" src="http://fugoconsulting.files.wordpress.com/2011/07/output1.png" height="448" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="output1" width="630" /></a><a data-mce-href="http://fugoconsulting.files.wordpress.com/2011/07/output2.png" href="http://fugoconsulting.files.wordpress.com/2011/07/output2.png"><img alt="" class="aligncenter size-full wp-image-1049" data-mce-src="http://fugoconsulting.files.wordpress.com/2011/07/output2.png" src="http://fugoconsulting.files.wordpress.com/2011/07/output2.png" height="441" style="border: 0px; cursor: default; display: block; margin-left: auto; margin-right: auto;" title="output2" width="630" /></a></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">
For creating charts using iReport refer <a href="http://shaanob.blogspot.com.es/2011/06/creating-charts-in-openbravo-reports.html" target="_blank">here</a>.</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-73591731868949401932012-06-29T15:32:00.001+04:002014-11-11T14:02:44.499+04:00Install Adobe Flash / Reader & Air in Ubuntu 12.04 (Precise Pangolin) | Liberian Geek<a href="http://www.liberiangeek.net/2012/04/install-adobe-flash-reader-air-in-ubuntu-12-04-precise-pangolin/">Install Adobe Flash / Reader & Air in Ubuntu 12.04 (Precise Pangolin) | Liberian Geek</a>: "sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so.0<br />
sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0.2.0"<br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-3134960594805311252012-06-29T13:04:00.001+04:002014-11-11T14:02:44.455+04:00Installing Java6 in Ubuntu 12.04 : Sun Java and Debian 6 Squeeze | Geek.Like.Todd<a href="http://blog.geekliketodd.com/archives/876">Sun Java and Debian 6 Squeeze | Geek.Like.Todd</a>: "Geek.Like.Todd"<br />
<br />
<a href="https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk" style="font-size: 13px;">'via Blog this'</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3963802921660173631.post-53380597093032175812012-06-04T20:29:00.000+04:002014-11-18T13:31:22.903+04:00Dissecting the enigma of Love - 1 : Wavelength<div dir="ltr" style="text-align: left;" trbidi="on">
Long since I wrote a post and probably best for the rest of you guys. I heard that. But I am not going to quit. This post is all about the magic/curse (depending on the shore you are) LOVE and the concepts of wavelengths that's more often associated with love. I will blend 'them' and 'we' in the post because we are actually part of the clan. <br />
<br />
First let me tell a small story. Two people start loving each other. Simple as that. When that magical feel starts, for the next couple of months, you can more often see the following things happen:<br />
1. Both wear same colour dress often. <br />
2. They often talk the same sentence unknowingly. <br />
3. They know what the other person wants even when they are miles apart. <br />
4. He / She calls just when the other person takes the phone to call.<br />
5. They gift things which the other one thought of buying few days back.<br />
6. When he turns to see her, she will also automatically turn to see him. <br />
<br />
All these just not only happens in movies. It happens in real life and that's where the lovers start enjoying the moment. They understand that this moment is worth their whole life and they know that without the other person their life is void. What a magical feeling love is. That's the time we think that our <strong>WAVELENGTH </strong>will match only with him/her. <br />
<br />
CUT. Zoom in after say 6-7 months. The lovers are the same. The environment is the same. But somehow things seem to turn upside down. <br />
1. There seems to be lots of misunderstandings happening. <br />
2. We will not be able to guess what the other person wants and we more often upset them. <br />
3. We do not more often enjoy the company of each other. We feel love is a added pressure. <br />
4. Suddenly we become possessive. We do not feel good when they are talking with the opposite sex.<br />
<br />
Then the guys will start saying <strong>"Girls are the most tough beings to satisfy on the Earth"</strong> and the girls will start saying, <strong>"Guys are the most cheapest creatures on Earth, after a couple of months they get bored"</strong>. Then they begin to say <strong>"Love is a crime and not all get the right partner, so end up in jail..:)".</strong> The last one was my quote guys and I love it. <br />
<br />
Is Love that much alien? Are girls so tough to understand as they are being perceived? Are guys so monkey minded to run from one girl to another in a matter of months? Well... <strong>I THINK ALL OF THESE ARE TRUE LIES</strong>. <br />
<br />
The fundamental difference is 'Attention'. I always believe when you are in a conversation with someone, there are 2 voices to hear. One is voice that is out through the mouth and the other is something that resides in heart. When you can listen deeply and be attentive, you can listen to the inner voice of others and if you can do that, there is no force on earth that can break your Love. <br />
<br />
When guys tell they cannot understand what girls think, how come they manage her to convince her to love him at the first place? Its interest, attentiveness. When he knows he has to grab her attention, he gives his 200% and listens to her inner self and satisfies her. But once love happens, lethargy creeps in and then you lose the urge to keep pushing yourself so hard to satisfy her because you know now she is yours. Wrong. The worst way to hurt a human is to make them feel they are no more important in your life. Do that to your own peril..:). This is one place where the <strong>WAVELENGTH BREAKS.</strong><br />
<br />
And the problem with girls they always feel they deserve the best. They are more often not satisfied by being the second best and when after a point in time, guys do give her and his personal life equal priority, she feels cheated and that's where the <strong>WAVELENGTH BREAKS.</strong><br />
<br />
Will probably end this post here. If guys and girls can understand this sincerely I am sure their love will be as successful as they thought it would be. And just a few disclaimers. <br />
1. The reason someone loves is not just for the external beauty and if some one does that, its mandatory that they like that thing lifelong or life is gonna be real hell. <br />
2. There are cases when few factors like lust, ego etc gains more importance than love. In that case, be the sufferer or the one giving the suffering, its better to leave the other one. I am a firm believer of the fact that people should walk away of they think it's not going to work out. Patching works will never last that longer in tires and life. <br />
3. And always keep in mind, love is a truly brilliant feeling that has be kept alive constantly like breathing, if you plan to show cause it on a seasonal basis, then god help you. <br />
<br />
As usual, would love to hear comments from you guys about it and as usual open to people asking for a ban for my rantings..:).</div>
Unknownnoreply@blogger.com0