Observer Design Pattern: Looking for redesign ABAP OO code example
Hello folks,
I am looking for an example for ABAP OO code that has been redesigned by applying the Observer Design Pattern. I would be very interested in both the code before as well as the code after the pattern is being applied.
Thanks in advance and kind regards, Alex
Observer can be implemented using the EVENTS.
I had recently implemented the observer at one of my client's place. I had screen with so many ALVs. One ALV was kind of editable and other were just showing the information of the current row as well as some total information. So, initially I started with the Main ALV and SUB(1 and 2) for other ALVs. Now, when I need to refresh my ALVs based on the main ALV data, I had to explicitly update the data of the each Sub ALV. The code was kind of static and requirement was not yet fixed.
Later on we need to add one more ALV on the same screen. It was easy to change the existing method where I was doing the explicit refresh of each ALV. But I thought of using the Events.
I created an event REFRESH_DETAILS for main ALV. so, when data gets changed (which I was catching by DATA_CHANGED event of ALV), I raise the event.
RAISE EVENT REFRESH_DETAILS
exporting new_data = it_Data.
In Sub ALVs, I created the event handler method to handle the event REFRESH_DETAILS of the main ALV.
methods: handle_refresh_details
for event REFRESH_DETAILS of ZCL_MAIN_ALV.
I also had to register the Handler.
SET HANDLER me->handle_refresh_details FOR ALL INSTANCES.
I'll soon write a post on my [ABAP Help blog|http://help-abap.zevolving.com/] with all the details.
Regards,
Naimesh Patel
Similar Messages
-
When I use SmartSync Notifier/ Observer design pattern
Hi all,
I have development a simple SmartSync Application with S01 syncBO type.
I not use SmartSync Notifier/ Observer design pattern for read the local syncbo and local delta.
When I have to use and I have to implement the SmartSync Notifier/ Observer design pattern ?Hi Rocco,
<b>SmartSync uses Notifier/Observer design pattern for applications to access inbox/outbox. Application has a read-access to the passed SyncBoOutDelta instance during the notification</b>
The usage of this API depending upon your custom requirement. If u want to monitor the number of new records(for example sales or like thAT) u have created in the client device , then that delta records will be there in the Smart Sync Outbox. If u want to monitor this new records then u have to use the API related with (Outbox - SyncBoOutDelta)..
Then comes the Inbox.The new records came from the Server will be there in the inbox of the MI client. This new records may be the response of number of new records u ahve created in the client device . If u want to monitor the number of new records that has downloaded to the MI client , then u have to make use of the SmartSyncInboxDelta..
Using this APIs , u can also find out the errors happened during the particular synchronization. For this APIs are also available...
refer these helps also..
SyncBoChange
This interface is the base interface to describe SyncBo delta change. Application should not use the interface directly, instead, use its sub interfaces - SyncBoInDelta, SyncBoOutDelta.
http://media.sdn.sap.com/public/html/submitted_docs/MI/MDK_2.5/content/javadoc/com/sap/ip/me/api/smartsync/SyncBoChange.html
SyncBoInDelta
http://media.sdn.sap.com/public/html/submitted_docs/MI/MDK_2.5/content/javadoc/com/sap/ip/me/api/smartsync/SyncBoInDelta.html
SyncBoInDelta is used to apply SyncBo delta data from backend to client. The SyncBoInDelta could may be a delta data from either the backend or other devices, or a response to the previously uploaded SyncBoOutDelta from the client, which can be distinguisehd by the SyncReply information included within the SyncBoInDelta
SyncBoOutDelta
SmartSync uses Notifier/Observer design pattern for applications to access inbox/outbox. Application has a read-access to the passed SyncBoOutDelta instance during the notification
http://media.sdn.sap.com/public/html/submitted_docs/MI/MDK_2.5/content/javadoc/com/sap/ip/me/api/smartsync/SyncBoOutDelta.html
Regards
Kishor Gopinathan -
Confusion about observer design pattern
Hi all,
I have a case related to observer design pattern and I feel a bit confusion.
Suppose there is a gui class which consists of 2 buttons connect and disconnect to the network and a socket class handling these two operations. Then socket class will inform the gui class if the operation is success or not. By applying the observer design pattern. gui class is observer and socket class is obserable. however I feel confusion as observer will send a command e.g. connect to observable.dophine wrote:
my confusion is that the observer is the event source not the listernerIt is an observer but it also takes another role: the controller of the observable.
kind regards,
Jos -
New(?) pattern looking for a good home
Hi everyone, this is my second post to sun forums about this, I initially asked people for help with the decorator and strategy pattern on the general Java Programming forum not being aware that there was a specific section for design pattern related questions. Since then I refined my solution somewhat and was wondering if anyone here would take a look. Sorry about the length of my post, I know it's best to keep it brief but in this case it just seemed that a fully functional example was more important than keeping it short.
So what I'd like to ask is whether any of you have seen this pattern before and if so, then what is it called. I'm also looking for some fresh eyes on this, this example I wrote seems to work but there are a lot of subtleties to the problem so any help figuring out if I went wrong anywhere is greatly appreciated. Please do tell me if you think this is an insane approach to the problem -- in short, might this pattern have a chance at finding a good home or should it be put down?
The intent of the pattern I am giving below is to modify behavior of an object at runtime through composition. In effect, it is like strategy pattern, except that the effect is achieved by wrapping, and wrapping can be done multiple times so the effect is cumulative. Wrapper class is a subclass of the class whose instance is being wrapped, and the change of behavior is accomplished by overriding methods in the wrapper class. After wrapping, the object "mutates" and starts to behave as if it was an instance of the wrapper class.
Here's the example:
public class Test {
public static void main(String[] args) {
double[] data = { 1, 1, 1, 1 };
ModifiableChannel ch1 = new ModifiableChannel();
ch1.fill(data);
// ch2 shifts ch1 down by 1
ModifiableChannel ch2 = new DownShiftedChannel(ch1, 1);
// ch3A shifts ch2 down by 1
ModifiableChannel ch3A = new DownShiftedChannel(ch2, 1);
// ch3B shifts ch2 up by 1, tests independence from ch3A
ModifiableChannel ch3B = new UpShiftedChannel(ch2, 1);
// ch4 shifts ch3A up by 1, data now looks same as ch2
ModifiableChannel ch4 = new UpShiftedChannel(ch3A, 1);
// print channels:
System.out.println("ch1:");
printChannel(ch1);
System.out.println("ch2:");
printChannel(ch2);
System.out.println("ch3A:");
printChannel(ch3A);
System.out.println("ch3B:");
printChannel(ch3B);
System.out.println("ch4:");
printChannel(ch4);
public static void printChannel(Channel channel) {
for(int i = 0; i < channel.size(); i++) {
System.out.println(channel.get(i) + "");
// Note how channel's getAverage() method "sees"
// the changes that each wrapper imposes on top
// of the original object.
System.out.println("avg=" + channel.getAverage());
* A Channel is a simple container for data that can
* find its average. Think audio channel or any other
* kind of sampled data.
public interface Channel {
public void fill(double[] data);
public double get(int i);
public double getAverage();
public int size();
public class DefaultChannel implements Channel {
private double[] data;
public void fill(double[] data) {
this.data = new double[data.length];
for(int i = 0; i < data.length; i++)
this.data[i] = data;
public double get(int i) {
if(i < 0 || i >= data.length)
throw new IndexOutOfBoundsException("Incorrect index.");
return data[i];
public double getAverage() {
if(data.length == 0) return 0;
double average = this.get(0);
for(int i = 1; i < data.length; i++) {
average = average * i / (i + 1) + this.get(i) / (i + 1);
return average;
public int size() {
return data.length;
public class ModifiableChannel extends DefaultChannel {
protected ChannelModifier modifier;
public void fill(double[] data) {
if (modifier != null) {
modifier.fill(data);
} else {
super.fill(data);
public void _fill(double[] data) {
super.fill(data);
public double get(int i) {
if(modifier != null)
return modifier.get(i);
else
return super.get(i);
public double _get(int i) {
return super.get(i);
public double getAverage() {
if (modifier != null) {
return modifier.getAverage();
} else {
return super.getAverage();
public double _getAverage() {
return super.getAverage();
public class ChannelModifier extends ModifiableChannel {
protected ModifiableChannel delegate;
protected ModifiableChannel root;
protected ChannelModifier tmpModifier;
protected boolean doSwap = true;
private void pre() {
if(doSwap) { // we only want to swap out modifiers once when the
// top call in the chain is made, after that we want to
// proceed without it and finally restore doSwap to original
// state once ChannelModifier is reached.
tmpModifier = root.modifier;
root.modifier = this;
if(delegate instanceof ChannelModifier)
((ChannelModifier)delegate).doSwap = false;
private void post() {
if (doSwap) {
root.modifier = tmpModifier;
} else {
if(delegate instanceof ChannelModifier)
((ChannelModifier)delegate).doSwap = true;
public ChannelModifier(ModifiableChannel delegate) {
if(delegate instanceof ChannelModifier)
this.root = ((ChannelModifier)delegate).root;
else
this.root = delegate;
this.delegate = delegate;
public void fill(double[] data) {
pre();
if(delegate instanceof ChannelModifier)
delegate.fill(data);
else
delegate._fill(data);
post();
public double get(int i) {
pre();
double result;
if(delegate instanceof ChannelModifier)
result = delegate.get(i);
else
result = delegate._get(i);
post();
return result;
public double getAverage() {
pre();
double result;
if(delegate instanceof ChannelModifier)
result = delegate.getAverage();
else
result = delegate._getAverage();
post();
return result;
public int size() {
//for simplicity no support for modifying size()
return delegate.size();
public class DownShiftedChannel extends ChannelModifier {
private double shift;
public DownShiftedChannel(ModifiableChannel channel, final double shift) {
super(channel);
this.shift = shift;
@Override
public double get(int i) {
return super.get(i) - shift;
public class UpShiftedChannel extends ChannelModifier {
private double shift;
public UpShiftedChannel(ModifiableChannel channel, final double shift) {
super(channel);
this.shift = shift;
@Override
public double get(int i) {
return super.get(i) + shift;
Output:ch1:
1.0
1.0
1.0
1.0
avg=1.0
ch2:
0.0
0.0
0.0
0.0
avg=0.0
ch3A:
-1.0
-1.0
-1.0
-1.0
avg=-1.0
ch3B:
1.0
1.0
1.0
1.0
avg=1.0
ch4:
0.0
0.0
0.0
0.0
avg=0.0jduprez wrote:
Hello,
unless you sell your design better, I deem it is an inferior derivation of the Adapter pattern.
In the Adapter pattern, the adaptee doesn't have to be designed to support adaptation, and the instance doesn't even know at runtime whether it is adapted.
Your design makes the "modifiable" class aware of the modification, and it needs to be explicitly designed to be modifiable (in particular this constrains the implementation hierarchy). Overall DesignPattern are meant to provide flexibility, your version offers less flexibility than Adapter, as it poses more constraint on the modifiable class.
Another sign of this inflexibility is your instanceof checks.
On an unrelated note, I intensely dislike your naming choice of fill() vs _fill()+, I prefer more explicit names (I cannot provide you one as I didn't understand the purpose of this dual method, which a good name would have avoided, by the way).
That being said, I haven't followed your original problem, so I am not aware of the constraints that led you to this design.
Best regards,
J.
Edited by: jduprez on Mar 22, 2010 10:56 PMThank you for your input, I will try to explain my design better. First of all, as I understand it the Adapter pattern is meant to translate one interface into another. This is not at all what I am trying to do here, I am trying to keep the same interface but modify behavior of objects through composition. I started thinking about how to do this when I was trying to apply the Decorator pattern to filter some data. The way I would do that in my example here is to write an AbstractChannelDecorator that delegates all methods to the Channel it wraps:
public abstract class AbstractChannelDecorator implements Channel {
protected Channel delegate;
...// code ommitted
public double getAverage() {
return delegate.getAverage();
...// code ommitted
}and then to filter the data I would extend it with concrete classes and override the appropriate methods like so:
public class DownShiftedChannel extends AbstractChannelDecorator {
...// code ommitted
public double get(int i) {
return super.get(i) - shift;
...// code ommitted
}(I am just shifting the data here to simplify the examples but a more realistic example would be something like a moving average filter to smooth the data).
Unfortunately this doesn't get me what I want, because getAverage() method doesn't use the filtered data unless I override it in the concrete decorator, but that means I will have to re-implement the whole algorithm. So that's pretty much my motivation for this, how do I use what on the surface looks like a Decorator pattern, but in reality works more like inheritance?
Now as to the other points of critique you mentioned:
I understand your dislike for such method names, I'm sorry about that, I had to come up with some way for the ChannelModifier to call ModifiableChannel's super's method equivalents. I needed some way to have the innermost wrapped object to initiate a call to the topmost ChannelModifier, but only do it once -- that was one way to do it. I suppose I could have done it with a flag and another if/else statement in each of the methods, or if you prefer, the naming convention could have been fill() and super_fill(), get() and super_get(), I didn't really think that it was that important. Anyway, those methods are not meant to be used by any other class except ChannelModifier so I probably should have made them protected.
The instanceof checks are necessary because at some point ChannelModifier instance runs into a delegate that isn't a ChannelModifier and I have to somehow detect that, because otherwise instead of calling get() I'd call get() which in ModifiableChannel would take me back up to the topmost wrapper and start the whole call chain again, so we'd be in infinite recursion. But calling get() allows me to prevent that and go straight to the original method of the innermost wrapped object.
I completely agree with you that the example I presented has limited flexibility in supporting multiple implementations. If I had two different Channel implementations I would need two ModifiableChannel classes, two ChannelModifiers, and two sets of concrete implementations -- obviously that's not good. Not to worry though, I found a way around that. Here's what I came up with, it's a modification of my original example with DefaultChannel replaced by ChannelImplementation1,2:
public class ChannelImplementation1 implements Channel { ... }
public class ChannelImplementation2 implements Channel { ... }
// this interface allows implementations to be interchangeable in ChannelModifier
public interface ModifiableChannel {
public double super_get(int i);
public double super_getAverage();
public void setModifier(ChannelModifier modifier);
public ChannelModifier getModifier();
public class ModifiableChannelImplementation1
extends ChannelImplementation1
implements ModifiableChannel {
... // see DefaultChannel in my original example
public class ModifiableChannelImplementation2
extends ChannelImplementation1
implements ModifiableChannel { ...}
// ChannelModifier is a Channel, but more importantly, it takes a Channel,
// not any specific implementation of it, so in effect the user has complete
// flexibility as to what implementation to use.
public class ChannelModifier implements Channel {
protected Channel delegate;
protected Channel root;
protected ChannelModifier tmpModifier;
protected boolean doSwap = true;
public ChannelModifier(Channel delegate) {
if(delegate instanceof ChannelModifier)
this.root = ((ChannelModifier)delegate).root;
else
this.root = delegate;
this.delegate = delegate;
private void pre() {
if(doSwap) {
if(root instanceof ModifiableChannel) {
ModifiableChannel root = (ModifiableChannel)this.root;
tmpModifier = root.getModifier();
root.setModifier(this);
if(delegate instanceof ChannelModifier)
((ChannelModifier)delegate).doSwap = false;
private void post() {
if (doSwap) {
if(root instanceof ModifiableChannel) {
ModifiableChannel root = (ModifiableChannel)this.root;
root.setModifier(tmpModifier);
} else {
if(delegate instanceof ChannelModifier)
((ChannelModifier)delegate).doSwap = true;
public void fill(double[] data) {
delegate.fill(data);
public double get(int i) {
pre();
double result;
if(delegate instanceof ModifiableChannel)
// I've changed the naming convention from _get() to super_get(), I think that may help show the intent of the call
result = ((ModifiableChannel)delegate).super_get(i);
else
result = delegate.get(i);
post();
return result;
public double getAverage() {
pre();
double result;
if(delegate instanceof ModifiableChannel)
result = ((ModifiableChannel)delegate).super_getAverage();
else
result = delegate.getAverage();
post();
return result;
public int size() {
return delegate.size();
public class UpShiftedChannel extends ChannelModifier { ...}
public class DownShiftedChannel extends ChannelModifier { ... } -
Looking for an ABAP Objects e-learning course
Does anyone know of any abap objects e-learning courses that are available? I checked with sap university, and they only offer the BC 401 customer course. I'm looking for a course for beginners. I found an advanced course that has been recoreded in Germany, but it is an advanced course for developers with experience in abap objects. Thanks! Allison McCloskey
Some documentation related with OOPs Abao :
ALV Gird Control (BC-SRV-ALE)
SAP Container
SAP Control Framework
or Thread New To OOPs ABAP
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/abap%20objects/abap%20code%20sample%20to%20learn%20basic%20concept%20of%20object-oriented%20programming.doc
General Tutorial for OOPS
check all the below links
http://www.sapgenie.com/abap/OO/index.htm
http://www.geocities.com/victorav15/sapr3/abap_ood.html
http://www.brabandt.de/html/abap_oo.html
Check this cool weblog:
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sapgenie.com/
http://help.sap.com
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
these links
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
For funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
Check these links.
http://www.henrikfrank.dk/abapuk.html
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/abap%20objects/abap%20code%20sample%20to%20learn%20basic%20concept%20of%20object-oriented%20programming.doc
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/alv%20grid/abap%20code%20sample%20to%20display%20data%20in%20alv%20grid%20using%20object%20oriented%20programming.doc
Go through the below links,
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
OO ABAP links:
1) http://www.erpgenie.com/sap/abap/OO/index.htm
2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
go through these links
http://www.erpgenie.com/abap/index.htm
http://sic.fh-lu.de/sic/bic.nsf/(vJobangebote)/EC8AD2AE0349CE92C12572200026FDB8/$File/Intern%20or%20Working%20Student%20as%20ABAB%20OO%20Developer.pdf?Open
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
ABAP_OBJECTS_ENJOY_0 Template for Solutions of ABAP Object Enjoy Course
ABAP_OBJECTS_ENJOY_1 Model Solution 1: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_2 Model Solution 2: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_3 Model Solution 3: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_4 Model Solution 4: ABAP Objects Enjoy Course
ABAP_OBJECTS_ENJOY_5 Model Solution 5: ABAP Objects Enjoy Course
DEMO_ABAP_OBJECTS Complete Demonstration for ABAP Objects
DEMO_ABAP_OBJECTS_CONTROLS GUI Controls on Screen
DEMO_ABAP_OBJECTS_EVENTS Demonstration of Events in ABAP Objects
DEMO_ABAP_OBJECTS_GENERAL ABAP Objects Demonstration
DEMO_ABAP_OBJECTS_INTERFACES Demonstration of Interfaces in ABAP Objects
DEMO_ABAP_OBJECTS_METHODS Demonstration of Methods in ABAP Objects
DEMO_ABAP_OBJECTS_SPLIT_SCREEN Splitter Control on Screen
check the below links lot of info and examples r there
http://www.sapgenie.com/abap/OO/index.htm
http://www.geocities.com/victorav15/sapr3/abap_ood.html
http://www.brabandt.de/html/abap_oo.html
Check this cool weblog:
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sapgenie.com/
http://help.sap.com
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
these links
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
For funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
1) http://www.erpgenie.com/sap/abap/OO/index.htm
2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
ALVOOPS
http://www.abap4.it/download/ALV.pdf
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
http://www.erpgenie.com/abap/controls/alvgrid.htm
OOPS with ABAP
https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&pageid=37566
/people/rich.heilman2/blog/2005/07/27/dynamic-internal-tables-and-structures--abap
http://www.sapgenie.com/abap/OO/
For understanding COntrol Frameworks in OO ABAP, check this.
http://www.sapgenie.com/abap/controls/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sapgenie.com/
http://help.sap.com
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com.
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.geocities.com/victorav15/sapr3/abap_ood.html
http://www.brabandt.de/html/abap_oo.html
ALVOOPS
http://www.erpgenie.com/abap/controls/alvgrid.htm
OOPS with ABAP
https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&pageid=37566
/people/rich.heilman2/blog/2005/07/27/dynamic-internal-tables-and-structures--abap
http://www.sapgenie.com/abap/OO/
For understanding COntrol Frameworks in OO ABAP, check this.
http://www.sapgenie.com/abap/controls/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sapgenie.com/
http://help.sap.com
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com.
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.geocities.com/victorav15/sapr3/abap_ood.html
http://www.brabandt.de/html/abap_oo.html
Regarding ALV Grid Control using OOPs concepts
Regarding ALV Grid Control using OOPs concepts
OOPS OO ABAP
http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
DIRLL DOWN AND INTERACTIVE REPORT
http://www.sap-img.com/abap/difference-between-drilldown-report-and-interactive-report.htm
PAGE BREAK FOR ALV LIST
check out this link
http://www.abap4.it/download/ALV.pdf
good book on ABAP objects(OOPS)
http://www.esnips.com/doc/bc475662-82d6-4412-9083-28a7e7f1ce09/Abap-Objects---An-Introduction-To-Programming-Sap-Applications
How to check Cluster Table Data
https://forums.sdn.sap.com/click.jspa?searchID=5215473&messageID=3520315
http://www.sap-img.com/abap/the-different-types-of-sap-tables.htm
http://help.sap.com/saphelp_47x200/helpdata/en/81/415d363640933fe10000009b38f839/frameset.htm
Check this cool weblog:
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
/people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://www.allsaplinks.com/
http://www.sap-img.com/
http://www.sapgenie.com/
http://help.sap.com
http://www.sapgenie.com/abap/OO/
http://www.sapgenie.com/abap/OO/index.htm
http://www.sapgenie.com/abap/controls/index.htm
http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
http://www.sapgenie.com/abap/OO/index.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
http://www.sapgenie.com/abap/OO/
these links
http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
For funtion module to class
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
for classes
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
for methods
http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
for inheritance
http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
for interfaces
http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
For Materials:
1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
1) http://www.erpgenie.com/sap/abap/OO/index.htm
2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
Rewards if useful...............
Minal -
Looking for mock ABAP project.
Hi All,
I am trying to learn ABAP on my own and completed most practices in last 2 months. Now I am looking for some sample mock projects which are complex in nature and would allow me to get my hands dirty. Any feedback is appreciated.
Cheers..
UmyaHi,
WELCOME TO SDN..
Check out this thread..
ABAP BASIC
Regards,
Santosh -
Hi All,
I have two internal tables say it_itab1 and it_itab2.
it_itab1 have distinct sale order numbers and it_itab2 contains the material numbers with the sale order numbers.
Now in the output i need those lines from it_itab2 which material numbers common amongst all the sale order numbers in it_itab1.
Any trick????????
\[removed by moderator\]
Note: I am looking for minimising the loops.
Regards,
Prakash Pandey
Edited by: Jan Stallkamp on Nov 28, 2008 2:13 PMTYPE-POOLS SLIS.
TYPES: BEGIN OF T_VBAK,
VBELN TYPE VBAK-VBELN, "Sales Document,
END OF T_VBAK.
TYPES: BEGIN OF T_VBAP,
VBELN TYPE VBAK-VBELN, "Sales Document,
MATNR TYPE VBAP-MATNR, "Material Number
END OF T_VBAP.
TYPES: BEGIN OF T_FINAL,
VBELN TYPE VBAK-VBELN, "Sales Document,
MATNR TYPE VBAP-MATNR, "Material Number
END OF T_FINAL.
DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK WITH HEADER LINE,
IT_VBAP TYPE STANDARD TABLE OF T_VBAP WITH HEADER LINE,
IT_FINAL TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
SELECT-OPTIONS: S_VBELN FOR IT_VBAK-VBELN.
SELECT VBELN FROM VBAK INTO TABLE IT_VBAK WHERE VBELN IN S_VBELN.
IF SY-SUBRC = 0.
SORT IT_VBAK[] BY VBELN.
ENDIF.
IF NOT IT_VBAK[] IS INITIAL.
SELECT VBELN MATNR FROM VBAP INTO TABLE IT_VBAP FOR ALL ENTRIES IN IT_VBAK WHERE VBELN = IT_VBAK-VBELN.
IF SY-SUBRC = 0.
SORT IT_VBAP[] BY VBELN.
ENDIF.
ENDIF.
LOOP AT IT_VBAP .
READ TABLE IT_VBAK WITH KEY VBELN = IT_VBAP-VBELN.
IF SY-SUBRC = 0.
IT_FINAL-VBELN = IT_VBAK-VBELN.
IT_FINAL-MATNR = IT_VBAP-MATNR.
APPEND IT_FINAL.
ENDIF.
ENDLOOP.
SORT IT_FINAL[] BY MATNR.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
Looking for Dynamic IDM Scoping Model Examples
I'm looking for some good white papers, books or blogs on designing organizational scoping models for IDM. Primaryly I'm looking for examples in the area of:
* Dynamic User Scoping
* Converting Matrix organizations into IDM Scoping Model
* Converting Fluid organization Structures into an IDM Scoping Model.
What I would like to see is the problem statement, the logic used to create the final IDM design, and the supporting workflow and rules used to support the final design.
Because I have asked for the moon, I might as well ask for the rest of the planet system -- I would love have a working model to load and play with.
ThanksI'm looking for some good white papers, books or blogs on designing organizational scoping models for IDM. Primaryly I'm looking for examples in the area of:
* Dynamic User Scoping
* Converting Matrix organizations into IDM Scoping Model
* Converting Fluid organization Structures into an IDM Scoping Model.
What I would like to see is the problem statement, the logic used to create the final IDM design, and the supporting workflow and rules used to support the final design.
Because I have asked for the moon, I might as well ask for the rest of the planet system -- I would love have a working model to load and play with.
Thanks -
Looking for email address stripping code
Hiya,
I'm looking for a piece of CF code that strips email
addresses from a string. It needs to be smart, so that various
patterns can be detected and stripped.
Ex: [email protected], email at domain dot com, email@ domain
.com, email at domain.com, etc....
Does anybody know if somethng like this already exists?
Thanks.Ahhh. so you filter the postings to remove their attempt to
circumvent the sharing of email addresses? Got it.
All I can say is, good luck to ya. If people want to share
that kind of information, they will! Just out of curiosity, why
would you even attempt to prevent people from sharing their very
own contact information? Note that I am not arguing, rather curious
about what valid reason anyone would have for attempting to prevent
people from doing what they want with their own information.
What I might suggest is.... Since you probably have their
email address on file from when they registered (at least one of
their email addresses anyway) you should be able to do an
intelligent search for strings that are similar to the email
address that you have on file. So, as opposed to starting with
*nothing* and looking for things that *might* be an intentionally
obfuscated email address, you are least starting with
*something*. -
Dear all,
I have to develop an application in Struts by using DAO design pattern ..........
Please give an example on Struts using DAO...................
Thank you
PleaseI'm glad you asked. It means Read The Flaming Manual. That'd be the struts manual by the way.
-
Web design company looking for iPad app to display my portfolio at a trade show
I run a small web development business and have my first trade show coming up. I'll have a booth setup and was hoping to have my iPad out on the table for people to pick up and scroll through my portoflio (ie web designs, logo concepts, etc.). I've seen this app:
Portfolio for iPad
http://itunes.apple.com/us/app/portfolio-for-ipad/id384210950?mt=8
which looks great but I was wondering if anyone else had other options. I like the idea that the above app allows you to lock the device so that users can only scroll through the portfolio and need a PIN to do anything else.
I don't have much experience with the iPad as I just got it and I don't do any app development. Any advice would be greatly appreciated. Thanks in advance for any and all help!Locking the iPad so that a user can't exit an app isn't possible for any developer to implement, since the developer kit doesn't provide that sort of access to the low-level routines in iOS. The only way to lock into a single app is to use a case/frame that covers the Home button (and turn off the gesture support in the settings in iOS 5). A number of companies make kiosk mounts for this purpose.
Regards. -
Looking for an ABAP-code for the customer-Exit Variable
Hello,
I have defined a Variable (Interval) which should be processed through Customer-Exit on characteristic Supplier-Date (date format). This Customer-Exit Variable is called ZDATE.
We have another time characteristic Fiscal year / period (0FISCPER) which has single mandatory input variable for ex. 003.2011. This input variable is called ZFISCPER.
Now I have to write an ABAP-Code where the customer exit variable ZDATE is derived (fiscal last year to last period) from input variable ZFISCPER in INCLUDE ZXRSRU01.
Means when the input variable (ZFISCPER) is 003.2011 then the customer exit variable ZDATE should be calculated in INCLUDE ZXRSRU01 as 01.01.2010 u2013 28.02.2011 (fiscal last year to last period).
Since I am quite new in ABAP, I will be grateful if you could write me sample ABAP for this.
Many thanks.Hi,
should be something like:
DATA: l_s_range TYPE rsr_s_rangesid,
input LIKE sy-datum.
When 'ZDATE'
CONCATENATE '0101' 0FISCPER+3(4)-1 into l_s_range-low. "You get 01012010
CONCATENATE '01' Fiscper+1(6) into input. "You get 01032011
l_s_range-high = input-1. "You get 28022011
APPEND l_s_range TO e_t_range.
Greetings
Roman -
Design Patterns needed for SAP XI
Hi
hi,
Here are the general step for designing for file to r/3 integration using IDOC,RFC
After doing this ull get good idea abt the sap xi designing
To Configure the FILE TO SAP R/3 OR SAP R/3 TO FILE, proceed as follows:
Step1:Repository
1 From the Integration Builder page, select Integration Repository. This will launch the Java Web Start Application. Log with the User id and password from the Integration Server.
2. Choose Tools->Transfer from System Landscape Directory->Import Software Component Versions
From the list of Software Component Versions, Choose your own software component version .Click Import.
3 On the left hand side frame ,software components will appear .Select your own software component. Open your own software component. Double click on this software component. A screen will appear .Switch to display mode. After doing this first add a namespace under Namespaces.
The namespace should always begin with urn:
4. Then choose the Radio Button ->Import of RFC AND IDOC interfaces from SAP systems permitted
After this specify the connection parameters to the R/3 system:
System : Name of sap R/3 system
Client : Sap R/3 client number
These two fields are mandatory. You must Specify these fields.
Then Save it. The new namespace will be visible under software component version node in the left frame.
Under the namespace node, you will find the section Imported Objects. Right click on it and choose Import of sap objects. A wizard will display. In the wizard provide the following details.
Application server:IP address of sap r/3 system.
System number: Number of sap r/3.
User name: user name of sap r/3 .
Password: Password of sap r/3 system.
Then click continue .You will find IDOC and RFC node. Click on this node and select the Idoc or Rfc which is to be imported from R/3. Click Finish to start the Import. Close the wizard. After doing this the Rfc and Idoc will be available into XI as Message types. So no need to create any Rfc or Idoc Structure. We need to create a structure for file only.
5. Under your namespace in the left frame, expand the node Interface objects. You will find a node DATA TYPES
6 Create new data types.
Right click on Data types and select New. Give a suitable name to Data Type(DT_datatype). In the data type Editor ,Create a structure having Elements of type String , integer, Boolean , Float etc as per the requirement.
Save the object.
6.2 The Import function for XSD files enables you to upload message definitions from external sources. The object type External Definition is a container to make external definitions available in the Integration Repository.. While Importing the XSD files from External Definition
no need to create Data types. They are imported directly as Message types.
To do so, In the left hand frame Under Interface objects Create a new object of type External Definition and give name to it.
Select the following.
Category: XSD.
Messages: From All Available Global Elements.
File: Here we need to specify the file name(file.xsd)
Once the XSD is imported, click on Message tab , You should be able to see 2 messages(Request and Response)
7. Create a new Message Type.
7.1 In the left hand frame under Interface objects, right click on the Message types and select new.
7.2 Give a suitable name to the Message type.(MT_ messagetype).
7.3 For the section Data type used you can go to input help (F4) or Search help provided and choose your data type (DT_datatype) from there.
Save it.
8. Create a Message interface from the left frame and name(MI_ messageinterface) it.The interface Should be Inbound or Outbound and mode should be Asynchronous .It should reference your Message type(Use F4 or Search help).
Save it.
9. Create a graphical mapping between the target document and the sender .
9.1 In the left hand frame ,expand Mapping objects. Right click on Message mapping and name it.You are now in a graphical editor.The Source message is on left, the Target message is on right.
9.2 As Source message select your own Idoc , Rfc or Message type.You can choose Search for Integration Object.As a reminder you can find your Idoc or Rfc under Software Component- > Namespace->Imported Objects.
9.3 As Target Message you can choose your Message type or Idoc, Rfc .Choose Search for Integration Object.
9.4 Now that we have defined the Source and Target message, we can start defining the Mapping rules.
9.5 Map the fields of Source document to the equivalent fields in Target document .This can be achieved easily by locating the field in Target document and then Drag and Drop the Source fields to the respective Target Fields.
Save It.
You can also Test your Mapping by selecting the Test Tab.
9.6 Fill in the values in the Idoc fields and click Start Transformation. On the right hand side you will see Target Document populated with the appropriate Values.
10. Create an Interface Mapping.
In the left hand Frame expand Mapping objects. Right Click on Interface Mapping and Name it. You are in a Interface Mapping Editor .Assign the following References.
Source interface : Your Outbound Interface (Idoc from the Software component Version).You can Choose Search for Integration Object.
Target interface: Your Inbound Interface( The Target document interface).
Then Select Read Interface and Assign your Mapping Program .
Mapping Program: Your Message mapping.
Then Save it.
11. Finally , in the left hand frame ,go to your change list and Activate it.
Rewards points if helpful
Vikas -
Observer/Observable design pattern
Is there a way to implement the Observer/Observable pattern in a pure java FX 1.2 desktop Application?
And if yes how ? :)You can use the real stuff, as shown in some threads (eg. in [Cannot bind a string array|http://forums.sun.com/thread.jspa?threadID=5425718] I show an example).
This is necessary only to bind Java variables to JavaFX code.
Now, as said above, in pure JavaFX code, you use binding. And the 'on replace' facility is useful too, as changes trigger actions. -
Design pattern suggestion for multiple PersistenceManagers?
Hi!
I'm getting the following error (see end of message), and I would love to
hear a good design solution.
I get this error when adding a RequestLog object into the db, which
contains a field for User. Now, I pass in the User object and since I am
use a ThreadLocal pool for PersistenceManagers, sometimes the User object
is being monitored by another PersistenceManager.
Firstly, why is that causing a problem? I am not updating or changing the
User object from this RequestLog object?
I attempted to make the User object non-transactional, and I have
javax.jdo.option.NontransactionalRead: true
javax.jdo.option.NontransactionalWrite: true
in my kodo.properties, but that made no improvement.
What is the standard solution to this type of problem?
Thanks!
Nic.
Stack trace:
com.solarmetric.kodo.runtime.UserException: The instance
"com.everwhere.idiomatica.app.security.User" of id
"com.everwhere.idiomatica.app.security.User-0" is not managed by this
PersistenceManager.
FailedObject:User: admin
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.makePersistentFilter(PersistenceManagerImpl.java:1402)
at
com.solarmetric.kodo.runtime.PersistFCOFieldManager.storeFirstClassObject(PersistFCOFieldManager.java:109)
at
com.solarmetric.kodo.runtime.PersistFCOFieldManager.storeObjectField(PersistFCOFieldManager.java:78)
at
com.solarmetric.kodo.runtime.StateManagerImpl.providedObjectField(StateManagerImpl.java:1354)
at
com.everwhere.idiomatica.app.etc.request.TranslationRequest.jdoProvideField(TranslationRequest.java)
at
com.solarmetric.kodo.runtime.StateManagerImpl.provideFields(StateManagerImpl.java:2360)
at
com.solarmetric.kodo.runtime.StateManagerImpl.preFlush(StateManagerImpl.java:2037)
at com.solarmetric.kodo.runtime.PNewState.beforeCommit(PNewState.java:39)
at
com.solarmetric.kodo.runtime.StateManagerImpl.beforeCommit(StateManagerImpl.java:597)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.preCommitCallbacks(PersistenceManagerImpl.java:650)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:454)
at
com.everwhere.idiomatica.db.KodoDatabase.insertDirectlyIntoDB(KodoDatabase.java:45)You cannot share objects directly across multiple pms.
For example:
Person p = (Person) pm1.getObjectById ...
Person p2 = (Person) pm2.getObjectById ...
p.setParent (p2); // bad!
instead you should do:
p2.setParent ((Person) pm2.getObjectById (JDOHelper.getObjectId (p),
false));
This should be a low cost operation (and even more so with L2 caching)
It is usually best to allocate a PM per context so that these
semi-messy situations are avoided.
On Wed, 18 Jun 2003 10:53:09 +0000, Nic Cottrell wrote:
Hi!
I'm getting the following error (see end of message), and I would love to
hear a good design solution.
I get this error when adding a RequestLog object into the db, which
contains a field for User. Now, I pass in the User object and since I am
use a ThreadLocal pool for PersistenceManagers, sometimes the User object
is being monitored by another PersistenceManager.
Firstly, why is that causing a problem? I am not updating or changing the
User object from this RequestLog object?
I attempted to make the User object non-transactional, and I have
javax.jdo.option.NontransactionalRead: true
javax.jdo.option.NontransactionalWrite: true
in my kodo.properties, but that made no improvement.
What is the standard solution to this type of problem?
Thanks!
Nic.
Stack trace:
com.solarmetric.kodo.runtime.UserException: The instance
"com.everwhere.idiomatica.app.security.User" of id
"com.everwhere.idiomatica.app.security.User-0" is not managed by this
PersistenceManager.
FailedObject:User: admin
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.makePersistentFilter(PersistenceManagerImpl.java:1402)
at
com.solarmetric.kodo.runtime.PersistFCOFieldManager.storeFirstClassObject(PersistFCOFieldManager.java:109)
at
com.solarmetric.kodo.runtime.PersistFCOFieldManager.storeObjectField(PersistFCOFieldManager.java:78)
at
com.solarmetric.kodo.runtime.StateManagerImpl.providedObjectField(StateManagerImpl.java:1354)
at
com.everwhere.idiomatica.app.etc.request.TranslationRequest.jdoProvideField(TranslationRequest.java)
at
com.solarmetric.kodo.runtime.StateManagerImpl.provideFields(StateManagerImpl.java:2360)
at
com.solarmetric.kodo.runtime.StateManagerImpl.preFlush(StateManagerImpl.java:2037)
at com.solarmetric.kodo.runtime.PNewState.beforeCommit(PNewState.java:39)
at
com.solarmetric.kodo.runtime.StateManagerImpl.beforeCommit(StateManagerImpl.java:597)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.preCommitCallbacks(PersistenceManagerImpl.java:650)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:454)
at
com.everwhere.idiomatica.db.KodoDatabase.insertDirectlyIntoDB(KodoDatabase.java:45)--
Steve Kim
[email protected]
SolarMetric Inc.
http://www.solarmetric.com
Maybe you are looking for
-
Is it possible to get your money back from Itunes if you were hacked and they purchased items?
My itunes account that I primarily use on my phone was hacked. A movie and a ringtone that I did not purchase showed up on a reciept that was emailed to me. I have changed the password to both my email and my itunes account. But I want to know if the
-
Needs a suggestions from an expert on Auto Lock Box!!!
Hi , I am trying to import the Receipts from the File provided by the bank and encountering the following problems : 1) I could run the 1st part of the Lockbox..which brings data into the table AR_PAYMENTS_INTERFACE_ALL. 2) At second stage of running
-
Where do I find all explanations of Weather Forecast (app) Symbols??
Where do I find all explanations of Weather Forecast (app) Symbols?? thanks!!
-
Documentpreferences.masterTextFrame is not working (may be a bug)
Hi All, var content_Doc = app.documents.add(true, undefined, {documentPreferences:{pagesPerDocument: 5, masterTextFrame:true}}); alert(content_Doc.documentPreferences.masterTextFrame); I need to create a document with master text frame option enabled
-
Per this suggestion to uninstall xscreensaver and install light-locker, I decided to give this a whirl using the latest xfce4 packages. I find light-locker core dumping when I try to use it. Anyone else? % light-locker process 1737: arguments to db