Yesterday one of my colleague asked me how to test the BOL-GENIL stack without using the CRM WebUI.This was pretty obvious question for a ABAP CRM developer and generally speaking for any developer who works as a backend developer for a UI tool. Since I have been a tool developer for Business By Design (ByD), GENIL_BOL_BROWSER & GENIL_MODEL_BROWSER were the obvious choices. These are the simple developer tools shipped with SAP CRM for the business logic developers, business logic consumers and UI developers too. But what I have seen is among the consultant community these tools are not as widely used as they should have been otherwise some of these questions would have been self answered
I have modelled a new relationship in the Genil. How can I check this is now available for use ?
I have to develop a new GENIL, how can I test it ?
I have to develop a new relationship.After modelling and implementing the business logic, where do I test it ?
I am trying to set a property to a partucular attribute in the Genil, but the attribute value is not reflected ?
I am trying to create a new GENIL root object through my program but I am unable to do so? Am I missing any mandatory parameters which are necessary for creation ?
I need to use on of the relationships in a Genil Component? How do I know such a relationship all ready exists or I need to create it ?
I need to program a query, how do I know what is the query input structure, selection params or query result structure ?
I expect to see an error message when I perform a particular action from my WebUI? Is the GENIL raising that particular error or not ?
I have a scenario which does not perform as expected from the WebUI ? How do I know if the problem occurs at UI level or backend level ?
I want to include new parameters in my query. Once I added them and implemented the business logic for them how would the performance be affected ?
I have some actions which I will use in my WebUI such a create follow up for an Opportunity which would create a quote. How to check if this would work fine ?
I want to check how dependent objects are created for a root object. Is there a way possible to check this ?
These questions are not my figment of imagination but have been collected from SDN CRM forums and from my general discussion with colleagues.There are high chances that you have encounterd or have been stuck in one of the problems. For some you would have looked around, asked the question in SDN CRM forum or returned to your peers or seniors. And for some of them you would have to do the remote debugging which on any day is difficult, cumbersome and time consuming. Now the crucial question that would have come to your mind was: how to do save effort & get a feel of these problems early on so that you don’t have to look around or perform remote debugging ?
Components of the GeNIL are implemented as ABAP Classes. If you want to check the businees objects, their attributes , relations, dependent objects, queries and other method , use the GENIL_MODEL_BROWSER.So basically this is a design time tool.
When you want to test out CRUD(Create, Read , Update and Delete) operations , then you would essential test the runtime objects. This is usually done with GENIL_BOL_BROWSER.
Now with this knoweldge above questions could be easily answered by using the GENIL_BOL_BROWSER and GENIL_MODEL_BROWSER. Before you set out to perform your task, you can use these tools to do some due diligence. Most( if not all) CRM WebUI scenarios could be reproduced using the GENIL_BOL_BROWSER.So you can do a small Proof of Concept before you actually set out to do what you are expected. This would remove small roadblocks for you. For e.g. if a particular field is set to read only in the GENIL and you try to change the parameter properties through WebUI configuration, it would never work. A set property would continue to fail unless you realise that the properties can also be set in the GENIL. Had you done the above mentioned due diligence using GENIL_BOL_BROWSER, this would have saved you from the crucial time and effort at a later stage.
If you have encountered any of the above mentioned problem(s), then its time you get back to these boring looking tools which would make your life easier and save your crucial remote debugging effort.