cancel
Showing results for 
Search instead for 
Did you mean: 

What is "Adaptive" in Adaptive RFC Model?

MG3
Contributor
0 Kudos

Hi all

Have worked on Adaptive RFC Model a couple of times and I fail to understand whats "adaptive" about it.

The help.sap.com site says <i>"...use the business functions encapsulated in Business APIs (BAPIs) <b>even after a structure modification</b>, without having to provide the new data using a second back end or a new structure with subsequent regeneration of the proxies."</i>

<i>"This new RFC model shows adaptive behavior. This means that the RFC proxies do not use the original design time structure definition at runtime. Instead, this Web Dynpro model automatically adapts the data of the structure passed in the Java proxy generation to the current data – that is, a structure definition in the back-end system that may have been modified."</i>

Say, for example, Design time: I have already mapped a model node to a model object:

Data
  |-Name    (String)
  |-Age     (integer)
  |-Company (String)
  |-CountryNo (integer)

So after making this, lets assume that the structure in R/3 has changed from the above to:

Data
  |-Name    (String)
  |-Age     (integer)
  |-Company (String)
  |-Country (String)

At runtime, according to the description, it should not throw any error, but just ignore the modification, and not do anything as there would be no corresponding mapping for the model attribute Country from the model object. Am I right?

Please clarify as this is confusing me a lot

Would it be great if someone can give me an example as to whats "adaptive" about this.

Thanks

oj

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

oj,

First, any texts, data constraints, value helps and other modifications on R/3 side applied automatically and requires no special coding techniques at all.

Second, adding parameters (in/out/table) also could be handled automatically, however it requires certain programming techniques, namely generic UI programming. You have to check CMI API (basis of Adaptive RFC model) to understand how it works.

I've described the latest here /people/valery.silaev/blog/2005/09/09/common-model-interface, also it is not the easiest text to grasp ;).

I've ended up in my sample with dynamic context creation by CMI structure, next you have to apply generic UI creation (see WebDynpro tutorials on this site).

Valery Silaev

EPAM Systems

http://www.NetWeaverTeam.com

Former Member
0 Kudos

Hi i was interested in this blog, but i'm not authorised to see it. Any solution?

Former Member
0 Kudos

Hi,

Adding new structures to the RFC is not adaptive nor compatible regarding Adaptive RFC. Find below a definition of the terms adaptive (i.e. WD application can access the change) and compatible (i.e. WD application will not break with this change) changes to an RFC function module which is used in ARFC.

There are two categories regarding the possibility to use different/changed RFC functions with one ARFC model

Adaptiveness: Dynamic adaption of your WD application to structural changes of the RFC, i.e. react on such changes in the WD app

Compatibility: Compatible changes of the RFC meaning changes not breaking existing WD apps with ARFC models using the RFC

The following changes are currently allowed regarding these categories:

1) Adaptive: Change or add scalar fields (i.e. not having structure or table type) in DDic structures. Exception to this: Include-Structures (which don't exist as structure as the fields of the include are incorporated in the aggregating structure).

2) Adaptive: Change existing DDic data elements, e.g. by change label text, length, enumeration of allowed values. It is not allowed to change the built-in-type (e.g. from numc to numeric).

3) Adaptive: Change data type of structure fields as long as the built-in-type remains the same.

4) Compatible: Add optional fields (not structures) in the import or export parameter list of the RFC

This list is not guaranteed to be complete. Behaviour is not guaranteed if working with different R/3-backend-versions.

Regards,

Satyajit.