
2006-11-15, 06:33 PM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Feedback on the 11-15-06 session here
Besides the brief survey that followed the session, we'd appreciate any comments and suggestion here.
I'll begin:
First, I want to thank the participants today for their input and good questioning. I think the session provided the right level of detail though there could be improvements in timing and flow. We'll get better at this, but Max's dissertation on the SugarBean, the upgrade-safe callout functions, the documentation arising from this session -- all good stuff.
Our hats are off to Max for leading the charge.
We had some audio problems with a few participants. Not sure exactly how many but I suspect about 4 or so. I'll be investigating this.
We'll also likely schedule a repeated session shortly. This, to refine the delivery and content, but also -- get this -- to provide a recording that contains audio. Yes, the recording contains only visuals and no audio. I consider myself somewhat of a pro at this and still the audio was botched. THIS WILL BE FIXED.
I think there can be refinement in the delivery process overall and Max, Jacob and I have already discussed some improvements in the flow.
But we hope you received good information.
Andy
|

2006-11-15, 09:55 PM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Re: Feedback on the inaugural session here
Here is some survey feedback. The survey appeared after the session itself.
Many said "Strongly Agree" and most said "Agree" to "The Sugar Dev-User Group session was informative and useful". Only one "No opinion".
Much the same for "The speakers were engaging and informative".
Everyone responded "Yes" to "I plan to attend the next Sugar Dev-User Group session".
Here are a few responses to the open question "What would you do to improve the next event?". My responses are in bold inline.
Recommend a basic text to help those of us who are users (not developers) to get up to speed on the programming. This session was interesting, but over my head in terms of ability to use the data. Yes, good point. Maybe a How-to guide in the Wiki is a good starting point. This Wiki section may suffice. Comments?
1. Customizations of existing modules. All aspects of creating new fields, selects, logic behind new fields. 2. Creation of new modules. Yes, true on both counts. We're heading exactly in this direction in subsequent sessions.
More of the same. Another idea is pre-query the community for topics and answer them in a session. I find the Q-As always denigrate to point specific questions. Pre-screening allows you to address in detail things relevant to everyone. Good point. We'll have some of this in the next session where I can pre-build a list of questions. BUT, I encourage you all to submit questions in advance of a session in this forum.
I was hoping for more of a "how to write modules" to start with, but this was useful. Just getting some documentation out on the SugarBean would be very helpful. What I need to know to really get started developing is what methods are public and which are private and should/can be overridden in modules. Max has some stellar doco that will soon be posted on the Wiki covering many of the points you mention here. But it seems clear that upcoming sessions need to cover the 1-2-3 of creating modules.
Again, thank you all for your participation. Look for more events coming very soon.
Andy
|

2006-11-15, 09:59 PM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Re: Feedback on the inaugural session here
Quote:
|
Originally Posted by andydreisch
We had some audio problems with a few participants. Not sure exactly how many but I suspect about 4 or so. I'll be investigating this.
|
Mystery solved. We actually exceeded a limit of 25 telephony connections. In doing so, new arrivals were apparently muted.
For the next session we'll bump up this limit and bump up the overall participation, which we capped at low numbers for the first session.
Andy
|

2006-11-16, 01:01 AM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Re: Feedback on the inaugural session here
Ok, folks. Here are the questions that were posed during the session. I'll respond based on my interpretation today and ask Max and Jacob to steer me in the right direction if I misunderstood anything.
[S]o if you use the same object twice in the same custom logic event it will cause a php error?
I'll ask Jacob to confirm but my understanding is that this would lead to an error.
[W]hen the custom file is include is just a straight include used or does it use include_once?
Max said to use include_once to cut down on include processing overhead.
How the array_key_exists works? Where I can find it?
array_key_exists is a standard PHP function. bool array_key_exists ( mixed key, array search ) array_key_exists() returns TRUE if the given key is set in the array. key can be any value possible for an array index. array_key_exists() also works on objects.
[Y]ou guys are using this call [array_key_exists] to define if I have to toggle on custom fields in where clauses. How should I toggle the custom fields on (add the custom fields to list array)?
This is best handled by an upcoming session devoted to field handling. Jacob mentioned that the Studio should handle this for you.
Where are you going to post this session?
The session content is located here. This include the presentation Max used, the reference to the code sample Max will provide shortly, and a reference to the SugarBean methods/variables doco that Max is finishing up and will post to the Wiki.
Could you please expand on vardefs.php
vardefs (variable definitions) are to SugarBean what a schema is to a database. They are meta definitions that describe the objects (ultimately the tables and columns) that Sugar interacts with. There is a terrific Wiki section devoted to vardefs.
Guys, thanks a lot for starting this series of sessions it is really helpful...
Thanks and much more to come.
You have explanation of vardefs. But there is no expampe of update-safe include
I'll leave this to Jacob/Max for comment.
[W]here will the documentation be available at?
See above. Ultimately there will be a Wiki section for the doco that Max finishes up.
[I]s there documentation on the methods available in the bean class?
There is now!! It will be posted on the Wiki ASAP.
[M]ax -is there a workflow module out there somewhere that is similar in scope to what is in professional that is open source which the community could get to begin working with to extend?
I'll ask Max to comment but I'm unaware of such a facility.
Thanks once again for your comments and questions today. Please be sure to respond here ... all this really helps define the next topics in the Sugar Dev-User Group.
Andy
|

2006-11-16, 07:53 PM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Re: Feedback on the 11-15-06 session here
Hey everyone, Max's business hook sample, which he covered during this session, is now available as a project on SugarForge. You can download the 4K ZIP file directly from the project.
Max has built a business hook that notifies the former owner of an Opportunity that s/he is no longer assigned that record. It's the inverse of the notification one receives when assigned a record.
Implemented as an upgrade-safe business hook, it's a perfect and very useful demonstration of just how easy it is to create meaningful functionality in an upgrade-safe manner. Because the code that executes this procedure is located in the 'custom' directory it won't get squashed by a Sugar upgrade.
I've also created a Wiki article for this.
Andy
|

2006-11-16, 08:14 PM
|
|
Senior Member
|
|
Join Date: Jun 2006
Posts: 45
|
|
Re: Feedback on the 11-15-06 session here
Hello Andy.
Thanks a lot for this initiative. It really helps novices to get up to speed when somebody explains how things are working
Sugar is really powerful and flexible system once you know how it works. It allows things to be customized to very deatails following process flow in organization. And this is really powerful.
Such customizations are usually happen in fine tuning relationship and data flow in existing modules (Users-Accounts-Contacts, Products-Quotes-Opportunities, Accounts-Products-Cases,etc.) or creation of new modules. Second scenario in my opinion will happen more rarely as sugar matures - right now you have enough out-of-the box modules to cover businesses needs. In the future this necessity for new modules will deminish even more.
Have this said I wanted to recommend to structure these sessions in particular order which will go from simple tasks to really complex ones.
* Explain what SugarBean is, its structure, how it interracts with UI and Database - you already told us somewhat at first session;
* Explain how other modules interracting with SugarBean and index.php. Hookups and data exchange channels.
* Run simple scenarious of module customization
-- adding custom field;
-- adding custom field with "select" button which selects from another module and saving ID in custom table and
displaying associated name stored in another object based on ID stored in custom table (same way you select and
present Account on Contact page);
-- adding calculated fields and implementing calculation formulas in modules;
-- Saving calculated information in database tables that belong to specific module and other affected modules.
* Explain in little more detail on how to add subpanels to modules;
* Finally give a guidelines and check lists for building new modules and packaging this modules for public use.
This will give a great boost to community projects and provide more feedback from developers. Right now it is really hard to get the whole picture using just forums. Sometimes posts are too cryptic to understand.
Sincerely,
Yuri Gelman
|

2006-11-16, 10:11 PM
|
 |
Sugar Team Member
|
|
Join Date: Apr 2005
Location: San Jose
Posts: 2,076
|
|
Re: Feedback on the 11-15-06 session here
Hi yuri, don't thank me. I'm just the messenger. It's Max that really came through as others will over time.
Remember that Sugar is here only to facilitate things; it's the Sugar community that needs to drive this effort.
Your points are excellent and I'm sure Max will take them under advisement for subsequent sessions. I'm also in the process is setting up a third session for the first, maybe second, week of December. We can incorporate your ideas into those sessions.
Andy
|

2006-11-17, 06:01 PM
|
 |
A Sugar Hero | Help Forum Moderator
|
|
Join Date: Dec 2005
Location: Hollywood, FL
Posts: 992
|
|
Re: Feedback on the inaugural session here
Quote:
|
Originally Posted by andydreisch
[S]o if you use the same object twice in the same custom logic event it will cause a php error?
I'll ask Jacob to confirm but my understanding is that this would lead to an error.
|
This could lead to an loop that would not end and other serious errors. You should only manipulate the bean data of the bean passed to the event. You can create instances of other beans like I did in the example with the Admin module to get settings and user options but you should never manipulate the same bean type unless you have logic to detect and not process the alternate bean recursion or limit the number of recursions atleast.
Quote:
|
Originally Posted by andydreisch
[W]hen the custom file is include is just a straight include used or does it use include_once?Max said to use include_once to cut down on include processing overhead.
|
Quote:
|
Originally Posted by andydreisch
How the array_key_exists works? Where I can find it? array_key_exists is a standard PHP function. bool array_key_exists ( mixed key, array search ) array_key_exists() returns TRUE if the given key is set in the array. key can be any value possible for an array index. array_key_exists() also works on objects.
[Y]ou guys are using this call [array_key_exists] to define if I have to toggle on custom fields in where clauses. How should I toggle the custom fields on (add the custom fields to list array)?
This is best handled by an upcoming session devoted to field handling. Jacob mentioned that the Studio should handle this for you.
Where are you going to post this session?
The session content is located here. This include the presentation Max used, the reference to the code sample Max will provide shortly, and a reference to the SugarBean methods/variables doco that Max is finishing up and will post to the Wiki.
Could you please expand on vardefs.phpvardefs (variable definitions) are to SugarBean what a schema is to a database. They are meta definitions that describe the objects (ultimately the tables and columns) that Sugar interacts with. There is a terrific Wiki section devoted to vardefs.
Guys, thanks a lot for starting this series of sessions it is really helpful...
Thanks and much more to come.
You have explanation of vardefs. But there is no expampe of update-safe include
I'll leave this to Jacob/Max for comment.
|
We Will be covering this in detail on December 12th 2006 session.
Quote:
|
Originally Posted by andydreisch
[W]here will the documentation be available at?
See above. Ultimately there will be a Wiki section for the doco that Max finishes up.
|
I should have a bean documentation up this weekend. I will also work on a quick ref card that will be downloadable 2 page document.
Quote:
|
Originally Posted by andydreisch
[I]s there documentation on the methods available in the bean class?
There is now!! It will be posted on the Wiki ASAP.
|
Quote:
|
Originally Posted by andydreisch
[M]ax -is there a workflow module out there somewhere that is similar in scope to what is in professional that is open source which the community could get to begin working with to extend?I'll ask Max to comment but I'm unaware of such a facility.
|
No, there is no known workflow engine outside of Professional or Enterprise versions. Custom logic hooks allows you to create a workflow. Although it is not as flexable as having a workflow engine to process hooks for you.
__________________
Cheers,
Max W. Blackmer, Jr.
Knowledge Power IT
Blog
Phone: 954-926-6629
|

2006-11-17, 08:47 PM
|
 |
Senior Member
|
|
Join Date: Oct 2004
Posts: 328
|
|
Re: Feedback on the inaugural session here
Here are some additional responses to some of the earlier questions...
[S]o if you use the same object twice in the same custom logic event it will cause a php error?
It really depends on what you mean by using the same object twice. It is OK for multiple business logic hooks to access the same class on the same round trip. (if one class were providing after retrieve and before save hooks for instance). In the before save hook, for instance, you can make as many modifications as you would like to the object. This is perfectly safe. You should not call save from within this function (that would cause a loop).
[W]hen the custom file is include is just a straight include used or does it use include_once?
SugarBean includes the business logic hooks file once for every event that it is handling. In a save scenario, there is before_retrieve, after_retrieve, and before_save. It does this to allow it to alternate between bean types without worrying about the hooks from one bean affecting any others. For the class that actually provides the business logic hook implementation, that is only loaded once per round trip (which prevents redeclaration errors).
How the array_key_exists works? Where I can find it?
array_key_exists is a standard PHP function. bool array_key_exists ( mixed key, array search ) array_key_exists() returns TRUE if the given key is set in the array. key can be any value possible for an array index. array_key_exists() also works on objects. Full details: http://us3.php.net/array_key_exists
Jacob
|

2006-11-20, 03:27 AM
|
 |
A Sugar Hero | Help Forum Moderator
|
|
Join Date: Dec 2005
Location: Hollywood, FL
Posts: 992
|
|
Re: Feedback on the 11-15-06 session here
I have just completed 95% of the Documentation of the SugarBean. There are a few Properties and methods that I am still looking into to verify. There is now a Refrence to The SugarBean Class on Wiki.
Enjoy!
__________________
Cheers,
Max W. Blackmer, Jr.
Knowledge Power IT
Blog
Phone: 954-926-6629
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT. The time now is 07:59 AM.
|