cancel
Showing results for 
Search instead for 
Did you mean: 

Custom GenIL/BOL development

Former Member
0 Kudos

Hi,

I have some custom tables in which I need to maintain through a set of views. Is it advisable to develop custom GenIL/BOL classes to maintaon the tables? Currently, I'm looking at the Simple Object maintenance in the SPRO menu and the implementation examples provided in the BSP_GENIL_CUSTOM? package. If anybody has had experience similar to this, please provide some pointers.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Yes. having a GENIL Impl. class with a API layer and BOL objects is always the safest way if you will be maintaining the table(s) contents.

That way, the you can control the data buffering at the GENIL level and need not worry about performance.

Another way is creating views with value nodes and calling the maintain API directly in the getter and setter methods. This is a crude way of doing things.

You can always go ahead with a SO implementation if you do not have to model relationships to maintain your tables.

Hope this helps!

Thanks,

Sudipta

arunprakash_karuppanan
Active Contributor
0 Kudos

Hi Sudipta,

I currently have three custom tables and there are foriegn key relations between them. Theere is a Basic Settings maintenance and Define Simple Objects under the IMG in SPRO. I have a rough idea about the classes I need to inherit. Exactly how do I include these tables? Do you know any existing GenIL/BOL object that is simple enough to serve as a guide and the methods that I need to implement?

arunprakash_karuppanan
Active Contributor
0 Kudos

Hi all,

I have three custom tables that need to be maintained (read, write, modify). They have parent-child relations between them such as

header->item_category->item_data etc., I have to develop a custom GenIL/BOL component for that. First I go to SPRO->CRM->Cross application components->genil/object layer->basic settings.

I have to specify a implementation class that needs to be inherited from CL_CRM_GENIL_ABSTR_COMPONENT and I have to redefine the methods that I'm likely to use. I need to specify a Object table(which I suppose will translate into nodes) and a model table(relationship between the objects in object table).

Here are my doubts:

In the object table, what does object_kind mean?

In model table, does relation_kind mean aggregation, composition, assosciation? Which character stands for what type?

I understand the concept of cardinality. But, how do I specify it under Card_A and Card_B. I'm not sure which character stands for what type.

In the GenIL implementation class, under the create, modify, save object methods, do I directly include code for maintaining my custom tables? In the Genil_sample implementation is the API class separate for better readability?

Arun Prakash

Edited by: Arun Prakash Karuppanan on May 21, 2008 8:10 AM

arunprakash_karuppanan
Active Contributor
0 Kudos

Update:

Took time to look at the genil sample package and that answered most of the questions above. I have a vague idea of how things work, but still at a loss when it comes to the nitty gritties. I feel like I would be better off using the tableview as these tables will not be exposed to other applications.

Arun Prakash

arunprakash_karuppanan
Active Contributor
0 Kudos

Update:

Success at last. You never know if you can do a thing or not unless you set yourself to the task. I understand why there were only inadequate responses to questions on BOL creation. It will take a weblog to answer this. If you take time to analyse the CRM_GENIL_SAMPLE package, every question will be answered. I will mention the major steps I followed.

1. Identify the business objects required.

2. Model the relationship between the business objects.

3. Identify attributes for creation, search, search result...

4. Inherit from CL_CRM_GENIL_ABSTR_COMPONENT and implement the interface methods. I needed to implement almost all the methods. (not completed yet...). For this, you can follow the sample class for guidance. Here, they have used a hashed table instead of a database table.

5. Entry in IMG.

6. Verify implementation using genil_bol_browser and genil_model_browser.

I'm closing this thread.

Arun Prakash K.

suchita_phulkar
Active Contributor
0 Kudos

Hi Arun,

This was indeed a helpful thread. You were so right saying that BOL development related questions are mostly unanswered, may be because of the complex coding involved . Really appreciate if you can post a wiki on this. It will be a life saver of many novice BOL programmers and learners like me.

We had done a custom BOL development in 2006. I was on frontend side hence could not do much on BOL-GENIL part. Now recently i have got a chance to work on a requiremnt where i will need to extend BuilHeader . I have created Z BOL Object as a dependant object for Builheader root through a Z relation . I have created Z-fields structure for this ZBOL object but i have not kep any provision for Key fields. Kindly guide me as do i need to strore the Key of Builheader and create guid for ZBOL entities ? then Do i need to maintain some Key (guid) fiels in my Z structure ?

Now i have used the GENIL class CL_CRM_GENIL_ABSTR as supeclass on my Z implemntation class of this BOL object. I am not sure which methods to be implemented and what to write in them ? Can you please guide me on this ? or advice if any better superclass to inherit ?

Ultimately i need the data on my Z BOL be maintained in database and linked with BuilHeader, so that its retrivable through my Z relation using builheader entity and get_related_entities method. I am sure if i can get the things worked and tested in GENIL_BOL_BROWSER, i can easily implemt them on component view codes.

Please guide me on this.

Thanks & Regards,

Suchita

Former Member
0 Kudos

Hi Suchita

Here is the wiki link for the custom BOL development.

It was indeed created by Arun Prakash only. I think it was created very recently (April 15).

Full credit to Arun.

http://wiki.sdn.sap.com/wiki/display/CRM/ExtendBOLModelBTwithcustomtabletyperelationship

Thanks

Raj

arunprakash_karuppanan
Active Contributor
0 Kudos

Hi,

For those extending the model BT, please also read the first comment in the Wiki. You can use the event handler in customization to avoid certain enhancements of standard classes.

For extending BUIL, you have to do the customizing in CRM->Cross Application Components->Generic Interaction Layer/Object Layer->Extend object Model for Business partner. You can specify custom objects, relationships, object properties and handlers in this activity. Once you have done this, implement the handler classes inheriting from "CL_BUIL_ABSTR_ACCESS" or "CL_BUIL_ABSTR". The super class depends on what kind of objects you are creating(access/dependent). Then, you have to redefine certain methods. Look at all the methods that are in the class. Some may be empty and some may have code irrelevant to your scenario. Carefully determine which all methods need to be redefined. Unlike the model BT, I'm sure that enhancement of the standard classes will not be necessary. The class provides methods for handling all scenarios.

Regards,

Arun Prakash

suchita_phulkar
Active Contributor
0 Kudos

Hi Arun,

Thanks a Lot !

Former Member
0 Kudos

HI Arun,

I have a requirement in CRM 7.0.

Here i need to maintain custom data into the Z-tables. This data is related to partners, foreign key relation ship with Partner ID.

I need to create my own component for it, and display this information on the UI.

I have gone through your wiki and it is very good and providing good info to begin with, but i want to clarify few doubt:

1. Root Object OR Access Objects

2. These Z-tables need to be maintained via customizing, does it going to make any difference.

Regards

Dave

Answers (0)