Composition on Grails
Project Description
The Composition on Grails project uses the Groovy scripting language and the Grails "Rails-like" web application framework, plus some SAP- specific extensions for Web Dynpro, Enterprise Web Services, and BAPIs, to allow quick and easy development of composite applications on SAP NetWeaver 7.1 CE.
We've made Composition on Grails available available as a download under an evaluation license. We'd like to hear from you. The project is still in an early stage so your feedback has the potential to be very influential. Bugs? Features missing? Something cool you did? Please let us know by adding a comment to this page or visit the Bugs & Feature requests page.
Guiding Principles
The guiding principles behind the Composition on Grails project are:
- Less software
Keep it short and simple. Minimizing the code for a composite application likewise minimizes the development and maintenance effort.
- Convention over configuration
Skip the XML files. Use naming conventions for automatic data binding. The framework knows how to do what you want most of the time. You only have to make changes if you want something that isn't predictable.
- Reduce abstraction impedance
By using scripting as a consistent programming model for the entire composite, you avoid overhead from transforming data and functions between different programming abstractions.
Now available
Web based Composition on Grails (CoGSole) . Please note Composition on Grails is available under test and evaluation terms only. It is not a supported SAP product.
Get the Code
We invite you to download the code and build an application or two. Let us know what you think.
Related Links
3 Comments
Sean Doyle
We'll be presenting some interesting new features at the TechEd Las Vegas SDN day - learn how to build an SAP application in 2 minutes or less!
Daniel Graversen
Thanks for a cool project. I really like the option of creating a WDP screen.
I tried using grails 1.1.1 and i had two problems.
I had to uncomment //promptForName() in CogGenerateAll.grovey
The second problem was with saving data, where I got a
java.lang.NoClassDefFoundError: org/hibernate/collection/PersistentSet
at com.sap.groovy.grails.helpers.DynamicContentHelper.loadContextToMap(DynamicContentHelper.java:267)
at com.sap.groovy.grails.helpers.GenericUtils.loadParamsMap(GenericUtils.java:86)
at com.sap.groovy.grails.wd.WDGroovyGrailsView.onActionhandleAction(WDGroovyGrailsView.java:659)
at com.sap.groovy.grails.wd.wdp.InternalWDGroovyGrailsView.wdInvokeEventHandler(InternalWDGroovyGrailsView.java:277)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:131)
at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:72)
Sean Doyle
The last version of grails this was tested with was 1.0.3 which can be downloaded from:
http://www.grails.org/download/archive/Grails
The class org.hibernate.collection.PersistentSet is in:
grails-1.0.3/lib/hibernate3.jar