Difference between revisions of "User:Ivanceras"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m (ADempiere Notes)
m (xlib_lock failure in Linux)
Line 91: Line 91:
 
**use the sed workaround(as suggested in sun's forum.)
 
**use the sed workaround(as suggested in sun's forum.)
 
**#Locate the libmawt.so file (ie, /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so)
 
**#Locate the libmawt.so file (ie, /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so)
**#Be root, then issue the command: sed -i 's/XINERMA/FAKEEXTN/g' /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so  
+
**#Be root, then issue the command:  
 +
  sed -i 's/XINERMA/FAKEEXTN/g' /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so  
 
*I've tested it both on WereWolf(Fedora Core 8) and Hardy Heron(Ubuntu 8.04), and it works.
 
*I've tested it both on WereWolf(Fedora Core 8) and Hardy Heron(Ubuntu 8.04), and it works.
 
*Note: more or less, in jdk1.6.0 or above, this bug is already eliminated
 
*Note: more or less, in jdk1.6.0 or above, this bug is already eliminated

Revision as of 21:45, 29 August 2008

About me

  • Code name: Ivan Ceras
  • Real name: Jovansonlee Cesar
  • Born: July 18, 1985
  • Birth: Bohol, Philippines "Yeah, the tarsiers (^o_o^)and the chocolate hills"
  • Met ADempiere: February 2008 "just in time"
  • Profession: Computer Engineer, inclined to software development
    • "Also touched hardwares such as programming PIC Chips to instruct the robotics things".
Faves
  • Distro: Fedora Core, since FC4
  • CPU:AMD's
  • IDE: Eclipse
  • WebTools: Joomla, Wiki
  • Search Engine: Google
  • Browser: Firefox
Loved about ADempiere
  1. Extreme flexibility - "Configure me your way, and I will behave just as you wanted"
  2. Intuitive, Uniformed and Attractive Design - Dumb users dont have to be instructed over and over again.
  3. Easy to hack-around - Everything is organized disciplinely.


Programming journey:

Almost all of my college projects were made out of C, since C is main subject of programming. I was an extremist programmer of C, but later on, I find it very tiresome to program (even minor) functionalities.

When I had a chance to undergone an OJT to a software establishment. PHP was their main dish, tied-up with MySQL. I quickly learned PHP since I look at it as if it is C(humbly, very easy indeed). Later, together with my teammates, we were able to build our dynamic school website using our spare time during school days and completed the site in a span of 1 month.

When I was hired as an in-house developer of a Manufacturing firm, I was trained with PowerBuilder. I found PowerBuilder to be extremely fast, robust and suitable for (RAD)rapid application development indeed, much more since they tied it up with Oracle 10g. I enjoyed using toad (excellent), but I found PowerBuilder inflexible. You can't just have what you wanted. You have to adjust to the program, and if you won't, you have to go several wasteful time creating your own set controls. Also it lacks inconsistency. Along with the training we are modifying the existing system, SFC(Shop Floor Control). OMG, I find it very badly designed, much more it has a corporate core library with no supplied source code.


How did I encountered ADempiere?
  • Short Answer: "It is just a matter of keyword" - ERP
  • Long Answer:

Back February 2008, I was googling for an application which will be suitable for business application,which has a requirement of a web interface. It is just a matter of keyword really. I used SugarCRM as the basis(I've encountered of SugarCRM on my OJT days, since it was used in the establishment).I tried googling for SFC, CRM... then came related keywords such as SCM, MRP, and "ERP". I tried ERP, Opensource ERP,etc until.... guess what... Compiere appeared to be prominent, with other rivals...Opentaps,OpenBravo,TinyERP,Value-ERP,TinyERP,ERP5, etc. (ADempiere didn't show up.. i dont know) I read on Compiere, was impressed and interested especially on its "Active Application Dictionary" feature.At first I was hesitant since it is programmed with java. (Java was not apart of our curriculum. It was only a report discussion of other group in a group activity). I tried "Opensource ERP in PHP", opentaps then showed, but I gotten almost nothing to read. Maybe it was dead. I've got no choice, but to read and read about compiere. Every additional word I've read make me more curios about it and urge me to look at the source if it is really well-designed(somehow).

I don't know how to download the source yet, since I know nothing about svn. CVS was our dish and "vi" was our knife. I tried again googling "Compiere compressed/zip source code"...etc, luckily ADempiere showed up, with a sourceforge download link. Without any doubt I downloaded both the compiled binary and the source code.I also downloaded the AVA, in case the 2 might not be easy.


I read about ADempiere(site looks messy...adempeire.org) anyway I manage to reach the wiki. Thank God, I feel like home!. I read on it and read. Until then, that I've successfully installed and configured ADempiere and the database, everything follows. Learning after learning, asking after asking, experimenting after experimenting, hacking after hacking(ows..I mean the code!). It was such a very satisfying feeling of enjoyment. So too shall you(newbies)!

  • Conclusion:
    • All in all and for all these,
    • I may be a newbie to Java (but not anymore to programming languages)
    • I may be a newbie to PostgreSQL (but not anymore to databases)
    • I may be a newbie to ADempiere (but not anymore to integrated systems)
    • I may be a newbie to Sourceforge (but not anymore to opensource)
    • I may be a newbie to SVN (but not to anymore version control)
    • I may be a newbie to Eclipse (but not anymore to editors)
    • I may be a newbie to Linux (but not anymore to Operation Systems)
  • You may be a newbie to a thing, but you may not to it in general.

Go newbies! Be scared not as I dont!, Bottom line is, ADempiere hall famers: red1, trifon, carlos, victor, mario, low, teo, colin, karsten(,..etc) were once all newbies(except that they were conceived with keyboard on their hands). Though they got a lot of experience gathered for years, who will take their place when they retire, if not us(newbies). Long live ADempiere!

ADempiere Notes

These are the compilation of my personal notes on ADempiere, influence much of

  1. The tuturials I've read(on this wiki, compiere docs, even openbravo's guides)
  2. The answers to my help yells on the sf forums.
  3. The crazy experimentation that I've done towards the software.

There are equivalent tuturials scattered everywhere, but these notes should be useful for impatient starters who wants a short reading and faster learning with regards to ADempiere. Good luck impatient readers!


xlib_lock failure in Linux
  • Behaviour:
    • the java virtual machine dont work
    • this is caused by library conflicts between java and xinerma, I think.
  • Solution/Workaround:
    • use the sed workaround(as suggested in sun's forum.)
      1. Locate the libmawt.so file (ie, /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so)
      2. Be root, then issue the command:
 sed -i 's/XINERMA/FAKEEXTN/g' /opt/jdk1.5.0_15/jre/lib/amd/xawt/libmawt.so 
  • I've tested it both on WereWolf(Fedora Core 8) and Hardy Heron(Ubuntu 8.04), and it works.
  • Note: more or less, in jdk1.6.0 or above, this bug is already eliminated

The AD in ADempiere

  • AD ( Application Dictionary ) "The application is configured by a module of the application itself".
  • In order to appreciate ADempiere, you should be able to understand how the AD works, and at least have

a hands on "know how" on how to do it.

  • I refer a window in ADempiere as "AD Window" so as not to confuse from an ordinay windows in every application

=====Master/Detail Tabs===== (I really had a hard time on how to set that up , thanks to Karsten for the guidance) *Master/Detail tab relationship is the basic of ADempiere know how, that every newbie should be able to have. Terminologies/Notes: #Master/Detail - a list of master records, each has its own set of records(detail) that pertains to it. #Master Records is also known as Header. ##Header is much more applicable when we are talking of tables ##Master is more appropriate when we are talking about records #Tabs are tables that are used in an AD Window construct. *When a certain tab is a detail of the Master tab, assuming that the tab level of the Master tab is 0, then the Detail tab must have a tab level set to 1. *Note: In my presumption, this is the step which often neglected by newbies and alike. Requirement: #In order to create a Master-Detail tab, you should have the 2 table that relates as Master and detail. #The Detail table must have the key column of the Master table -- (General Knowldege, of course) and must be have a reference of "Table Direct" and marked as "Parent Link Column" Example/Scenario: In a certain Product Manufactured. Every Model has its own set of R numbers.

#Master Table: "Model" - can have it as tt_Model (test table Model) #Detail Table: "R number" - can have it as tt_Rno (test table R Number) #tt_Rno must have a column tt_Model_ID as "Table Direct" and marked as "Parent Link Column" #To Refect this to your AD Window (ie, Model) #Have the two table as tabs of the window. #Set the tab level of R number to 1. No need to set tab level of Model to 0, since it is 0 by default. *Refer to [NewWindow] for a detail tuturial on this.

Collapsable Detail Tab displayed in the Master Tab

*The Detail tab could be displayed in the Master tab of you AD Window. *This [Collapse Grid & Horizontal Tab|feature] has been implemented in Release 331t on January 2008 (I was not involved to Adempiere at this time), with prominent faces of the legendary Victor Carlos Perez(saludo!) Steps to do this: #You must have successfully set the Master/Detail tab in my previous note

	#Select a Field(column) in your Master Tab which will be used as "Marker"(entity replacement) to be replaced by the Detail tab

when organizing the AD Window. I usually use "Searh Key", since most likely the user needs not to fill them. #In "Search Key" record, Set the "Included Tab" to Detail Tab *You should now see that the detail tab of your AD Window is being displayed in the Master Tab.


  • No space should be used in a DB column when defining in AD.
  • getting Adempiere home directory is in org.compiere.util.Ini.findAdempiereHome
Synchronize Column
  • Synchronize Column - creates the physical table into the database.Take note that

a table you create using AD in "Table & Columns" is not created yet in the database, even if you are using "Copy Column from Table" button. If you are using "Create columns from DB", of course you should already have a physical table in the database, and this is a reverse process of "Synchronize Column".

  • Synchronize Column - reacts differently on two situation.

Condition 1:

  1. If you had just constructed your table using AD this goes that you don't have the physical table yet.
  • You may look at it using Database Admin Software(ie. Toad, PgAdmin) if you are skeptic( as I do).

Reaction: Synchronize column will create the table, and the columns associated with it. Look at your Toad to prove. Condition 2:

  1. If the physical table has been created (perhaps via Condition1)

Reaction: Each column is updated if something has been (ie. its datatype). If the column is new, it is added to the physical table.

//TODO.. more notes soon!...I have to translate my own rough draft first :-)


Disclaimer: The notes, that I am writing here may not be accurate since I'm still a newbie. The reader should not take it seriously as a reference, rather as a hint only. If you discover that the know how I presented here is wrong or inappropriate, feel free to modify it. Other notes here are just rewriting to short notes I've gathered (don't remember where have I gotten those). One reason why I'm writing this notes is for others(new newbies alike) to accelerate their learning towards ADempiere by giving hint in such a way they will suffer lesser pain than those who have dived prior to them.