Enhancement in method LOGICAL_SYSTEM_GET_NEW class /SAPSRM/CL_PDO_BO_SC

Hello all, I am working in SRM 7.0 with a classic scenario and I need to create an especial situation when we can create stock material in SRM with this scenario.
SAP proposed that we can do an enhancement in method LOGICAL_SYSTEM_GET_NEW for class /SAPSRM/CL_PDO_BO_SC.
We need that when (if cs_item-subtype = /SAPSRM/IF_PDO_OBJ_TYPES_C=>GC_SUBTYPE_I_DP) that corresponds in this case with a direct purchasing or stock material purchasing, then backend logical system must be determined using BBP_DETERMINE_LOGICAL_SYSTEM function.
But I don´t know what is the variable that I need to change in the function, what variable used the function to determine backend logical system?
Thanks in advance
Rosa Rodríguez

Hello Jozef,
we have the same problem.
Can you provide your solution for the problem?
Thank you in advance.
Regards,
Florian

Similar Messages

  • Class /SAPSRM/CL_WF_PROCESS_LEVEL method IS_LAST_LEVEL not working

    We are running SRM 7.0 SP 8 with Process Controlled Workflow.
    I am trying to use object with reference to class /SAPSRM/CL_WF_PROCESS_LEVEL, method IS_LAST_LEVEL to determine if the current workflow process level is the last in an N-step approval. But the method does not return what I am expected, instead, it is always returning abap_true. I am puzzled for a while for this. Following is my code excerpt with this call:
            data:ls_process_level    type /sapsrm/s_wf_process_level,
                 lo_curr_proc_level  type ref to /sapsrm/cl_wf_process_level.
              call method /sapsrm/cl_wf_apv_facade=>get_current_process_level
                exporting
                  iv_document_guid = iv_doc_guid
                importing
                  es_process_level = ls_process_level.
              try.
                  lo_curr_proc_level = /sapsrm/cl_wf_process_level=>getpersistent_by_oid( ls_process_level-level_guid ).
                  if lo_curr_proc_level->is_last_level( ) eq 'X'.
                    lv_final_step = 'X'.
                  endif.
                catch cx_root.
                  raise exception type /sapsrm/cx_wf_not_found.
              endtry.
    Note: After the call to  /sapsrm/cl_wf_process_level=>getpersistent_by_oid, lo_curr_proc_level is returned with the actual valid object. The issue is only with the next call to IS_LAST_LEVEL.
    If you can shed some light as to what might be wrong with this code, OR, how else you would determine whether the current process level is the last step in an N-step approval, I'd really appreciate it.
    Thanks.

    Hi,
      Try the below code
      DATA lo_first_level           TYPE REF TO /sapsrm/cl_wf_process_level.
      DATA lo_temp_level            TYPE REF TO /sapsrm/cl_wf_process_level.
      DATA lo_obsolete_level        TYPE REF TO /sapsrm/cl_wf_process_level.
      DATA lv_process_status        TYPE /sapsrm/wf_process_status.
      DATA lo_process_config        TYPE REF TO /sapsrm/cl_wf_configuration.
      DATA lv_process_scheme        TYPE /sapsrm/wf_process_scheme.
      DATA lv_document_guid         TYPE /sapsrm/wf_document_guid.
      DATA lv_document_type         TYPE /sapsrm/wf_document_type.
      DATA lo_object_service        TYPE REF TO /sapsrm/cl_wf_object_service.
      DATA lo_runtime_config         TYPE REF TO /sapsrm/if_wf_runtime_hdl.
      DATA ls_config_value           TYPE /sapsrm/s_wf_runtime_result.
      DATA lv_config_value           TYPE /sapsrm/wf_conf_attr_val.
      DATA lv_restart_process_scheme TYPE /sapsrm/wf_process_scheme.
      DATA lv_first_level_id         TYPE os_guid.
      DATA lv_final_acceptance_registered TYPE /sapsrm/wf_conf_attr_val.
      CONSTANTS:
        lc_prc_level_class_name TYPE seoclskey VALUE '/SAPSRM/CL_WF_PROCESS_LEVEL',
        lc_scheme_attribute     TYPE /sapsrm/wf_conf_attr VALUE 'PRC_RSTSCE', " Process restart scheme
        lc_level_attribute      TYPE /sapsrm/wf_conf_attr VALUE 'PRC_RSTLVL'. " Process restart first level
      rv_updated = abap_false.
      lv_document_type = io_process->getdocument_type( ).
      lv_document_guid = io_process->getdocument_guid( ).
      CREATE OBJECT lo_object_service.
      CREATE OBJECT lo_process_config
        EXPORTING
          iv_document_type = lv_document_type
          iv_document_guid = lv_document_guid
          io_process       = io_process.
      lv_process_scheme = lo_process_config->get_process_scheme( ).
      IF lv_process_scheme EQ io_process->getprocess_scheme( ) AND iv_force_update EQ abap_false.
        RETURN.
      ENDIF.
      lv_process_status = /sapsrm/cl_wf_process_manager=>get_process_status( lv_document_guid ).
      "--- Get the OID of the first process level
      TRY.
          lo_runtime_config = /sapsrm/cl_wf_process_manager=>get_runtime_config(
            io_process = io_process
          IF lo_runtime_config IS NOT BOUND.
            RAISE EXCEPTION TYPE /sapsrm/cx_wf_abort.
          ENDIF.
          CLEAR ls_config_value.
          lo_runtime_config->get_attribute(
            EXPORTING
              iv_attribute = lc_level_attribute
            IMPORTING
              es_attribute_result = ls_config_value
          lv_first_level_id = ls_config_value-attribute_value.
        CATCH /sapsrm/cx_wf_error. "EC NO_HANDLER
          CLEAR ls_config_value.
      ENDTRY.
      "-- Get the Flag of FINAL_ACCEPTANCE_REGISTERED
      TRY .
          CLEAR ls_config_value.
          lo_runtime_config->get_attribute(
            EXPORTING
              iv_attribute = /sapsrm/if_wf_process_c=>gc_wf_runtime_attrib_010 "'ACP_FINAL'
            IMPORTING
              es_attribute_result = ls_config_value
          lv_final_acceptance_registered = ls_config_value-attribute_value.
        CATCH /sapsrm/cx_wf_error. "EC NO_HANDLER
          CLEAR ls_config_value..
      ENDTRY.
      "--- Determine current object state of the process instance
      IF ( lo_object_service->is_new_instance( io_process ) EQ abap_true OR
           lo_object_service->is_changed_instance( io_process ) EQ abap_true ) AND
         lv_process_status EQ /sapsrm/if_wf_process_c=>gc_process_status_initial.
        "--- Delete obsolete process levels in case process instance is still in initial state
        lo_temp_level = io_process->getfirst_level( ).
        DO.
          IF lo_temp_level IS NOT BOUND.
            EXIT.
          ENDIF.
         tif this field lo_temp_level->is_last_level( ) is 'X'
    Saravanan

  • How can i run a special name method of class?

    i dynamic created a obj
    and i don't know the method of class,
    so i use a String parameter as the method's name
    but how can i run the method?
    please give me a copy of code, thanks!

    import java.lang.reflect.Method;
    public class unknown{
         public static void main(String[] args){
              unknown thisObj = new unknown();
              Class thisClass = thisObj.getClass();
              // calling the method()
              try{
                   Class[] allParamatersType = {};
                   Method mth = thisClass.getDeclaredMethod("method", allParamatersType);
                   String returnCallingAdd = (String)mth.invoke(thisObj, null);
                   System.out.println("calling add() : " + returnCallingAdd);
              catch(Exception ex){
                   ex.printStackTrace();
              // calling the method(int , string)
              try{
                   String firstValue = "Testing";
                   Class[] allParamatersType = { firstValue.getClass() };
                   Object[] values = { firstValue };
                   Method mth = thisClass.getDeclaredMethod("method", allParamatersType);
                   String returnCallingAdd = (String)mth.invoke(thisObj,values );
                   System.out.println("calling add() : " + returnCallingAdd);
              catch(Exception ex){
                   ex.printStackTrace();
         public String method(){
              return "method() called";     
         public String method(String two){
              return "method(String) called";     

  • JVM crash when adding method to class

    Hello,
    I am getting some kind of problem with the virtual machine. The JVM crashes when making a class (with new). It happened when I was adding some functionality to the class, I worked my way backwards and discovered it crashes when I add any new methods, if I comment them out again everything works, adding a method by any name causes to crash.
    I went in debug to find out where it was happening, and it happens on this line:
    public PerspectiveActionToolBarHeader createPerspectiveActionToolBarHeader() {
         PerspectiveActionToolBarHeader ret = null;
         ret = new PerspectiveActionToolBarHeader(this); // << here
         return ret;
    }The PerspectiveActionToolBarHeader is the class where adding methods causes it to fail. For example, it has the method
    public Container getContainer() {
         return this;
    }and works, but if I add:
    public void anything(){} it causes a crash on the new PerspectiveActionToolBarHeader(this);
    When stepped into with the debugger it goes to the (source not found) ClassNotFoundException and eventually before the crash the (stack?) looks like this:
    Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available     
    MaldiSoftwareOptionsUIEnsemble(PerspectiveUIEnsemble).createPerspectiveActionToolBarHeader() line: 72
    and the debugger describes the class just before the crash:
    Launcher$AppClassLoader (id=44)     
    arg0     "saiman.uiobjnew.PerspectiveToolBarButton" (id=51) << has just changed
    and the log file (not sure how much to copy here!):
    # A fatal error has been detected by the Java Runtime Environment:
    # EXCEPTION_ILLEGAL_INSTRUCTION (0xc000001d) at pc=0x005c0001, pid=15504, tid=20112
    # JRE version: 6.0_24-b07
    # Java VM: Java HotSpot(TM) Client VM (19.1-b02 mixed mode windows-x86 )
    # Problematic frame:
    # C 0x005c0001
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    --------------- T H R E A D ---------------
    Current thread (0x011ca000): JavaThread "main" [_thread_in_vm, id=20112, stack(0x01140000,0x01190000)]
    siginfo: ExceptionCode=0xc000001d
    Registers:
    EAX=0x13e13248, EBX=0x6da0daa8, ECX=0x13e13250, EDX=0x13e131f8
    ESP=0x0118f93c, EBP=0x0118f9a0, ESI=0x011ca9b0, EDI=0x011ca9ac
    EIP=0x005c0001, EFLAGS=0x00010206
    Register to memory mapping:
    EAX=0x13e13248
    {method}
    - klass: {other class}
    EBX=0x6da0daa8
    0x6da0daa8 is pointing to unknown location
    ECX=0x13e13250
    {method}
    - klass: {other class}
    EDX=0x13e131f8
    {constMethod}
    - klass: {other class}
    - method: 0x13e13248 {method} 'flipVisible' '(I)V' in 'saiman/uiobjnew/PerspectiveActionToolBarHeader'
    - exceptions: 0x13bf11e8
    ESP=0x0118f93c
    0x0118f93c is pointing into the stack for thread: 0x011ca000
    "main" prio=6 tid=0x011ca000 nid=0x4e90 runnable [0x0118f000]
    java.lang.Thread.State: RUNNABLE
    EBP=0x0118f9a0
    0x0118f9a0 is pointing into the stack for thread: 0x011ca000
    "main" prio=6 tid=0x011ca000 nid=0x4e90 runnable [0x0118f000]
    java.lang.Thread.State: RUNNABLE
    ESI=0x011ca9b0
    0x011ca9b0 is pointing to unknown location
    EDI=0x011ca9ac
    0x011ca9ac is pointing to unknown location
    Top of Stack: (sp=0x0118f93c)
    0x0118f93c: 6d94272d 011ca370 13e17d40 011ca000
    0x0118f94c: 011ca000 01a30950 011ca748 011ca9b4
    0x0118f95c: 011cab3c 0118fb28 011c6748 011ca348
    0x0118f96c: 011ca370 011ca73c 6da0daa8 011ca350
    0x0118f97c: 011ca370 0118f9cc 011ca9a8 0118f9c8
    0x0118f98c: 011ca788 011ca370 011ca9b0 011ca000
    0x0118f99c: 13e17d40 0118f9cc 6d943009 00000910
    0x0118f9ac: 011ca9ac 00000001 011ca000 011ca000
    Instructions: (pc=0x005c0001)
    0x005bfff1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
    0x005c0001: ff ff 7f 00 00 00 00 00 00 00 00 ff ff ff ff 00
    Stack: [0x01140000,0x01190000], sp=0x0118f93c, free space=318k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C 0x005c0001
    V [jvm.dll+0x153009]
    V [jvm.dll+0xdecdb]
    V [jvm.dll+0xe1887]
    V [jvm.dll+0xe1c46]
    V [jvm.dll+0xec09a]
    j saiman.uiobjnew.PerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+2
    j saiman.mv.ModelViewPerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.addButtons()V+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+21
    j saiman.mv.ModelViewPerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.uiobjnew.SoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.wmaldi.MaldiSoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.newuiimpl.MassSpectrumMainFrameImpl.main([Ljava/lang/String;)V+173
    v ~StubRoutines::call_stub
    V [jvm.dll+0xf0ab9]
    V [jvm.dll+0x1837d1]
    V [jvm.dll+0xf0b3d]
    V [jvm.dll+0xfa0d6]
    V [jvm.dll+0x101cde]
    C [javaw.exe+0x2155]
    C [javaw.exe+0x8614]
    C [kernel32.dll+0x51194]
    C [ntdll.dll+0x5b3f5]
    C [ntdll.dll+0x5b3c8]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j saiman.uiobjnew.PerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+2
    j saiman.mv.ModelViewPerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.addButtons()V+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+21
    j saiman.mv.ModelViewPerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.uiobjnew.SoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.wmaldi.MaldiSoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.newuiimpl.MassSpectrumMainFrameImpl.main([Ljava/lang/String;)V+173
    v ~StubRoutines::call_stub
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x01b05400 JavaThread "AWT-Windows" daemon [_thread_in_native, id=19680, stack(0x18560000,0x185b0000)]
    0x01b04800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=19516, stack(0x18140000,0x18190000)]
    0x01b04000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=20064, stack(0x18040000,0x18090000)]
    0x01b03c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=20276, stack(0x17ff0000,0x18040000)]
    0x01aeb000 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=16832, stack(0x17fa0000,0x17ff0000)]
    0x01aea000 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=16360, stack(0x17ef0000,0x17f40000)]
    0x01ae8000 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=20084, stack(0x17ea0000,0x17ef0000)]
    0x01ade400 JavaThread "Attach Listener" daemon [_thread_blocked, id=19772, stack(0x17d90000,0x17de0000)]
    0x01add400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=20192, stack(0x17d40000,0x17d90000)]
    0x01ab2800 JavaThread "Finalizer" daemon [_thread_blocked, id=17344, stack(0x17cf0000,0x17d40000)]
    0x01aabc00 JavaThread "Reference Handler" daemon [_thread_blocked, id=19964, stack(0x17ca0000,0x17cf0000)]
    =>0x011ca000 JavaThread "main" [_thread_in_vm, id=20112, stack(0x01140000,0x01190000)]
    Other Threads:
    0x01aa7c00 VMThread [stack: 0x011d0000,0x01220000] [id=19144]
    0x01b17400 WatcherThread [stack: 0x180f0000,0x18140000] [id=12792]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 4928K, used 768K [0x03bf0000, 0x04140000, 0x09140000)
    eden space 4416K, 5% used [0x03bf0000, 0x03c30380, 0x04040000)
    from space 512K, 100% used [0x040c0000, 0x04140000, 0x04140000)
    to space 512K, 0% used [0x04040000, 0x04040000, 0x040c0000)
    tenured generation total 10944K, used 1858K [0x09140000, 0x09bf0000, 0x13bf0000)
    the space 10944K, 16% used [0x09140000, 0x09310948, 0x09310a00, 0x09bf0000)
    compacting perm gen total 12288K, used 9598K [0x13bf0000, 0x147f0000, 0x17bf0000)
    the space 12288K, 78% used [0x13bf0000, 0x1454fb70, 0x1454fc00, 0x147f0000)
    No shared spaces configured.
    Edited by: hanvyj on 07-Jun-2011 02:39
    Edited by: hanvyj on 07-Jun-2011 02:43

    I think I may have stumbled across the answer, It seems that the abstract class PerspectiveToolBar implements
    the interface with the method public Container getContainer() but does not declare it, this should be fine because the method is abstract but it crashes. When I add the method public abstract Container getContainer(); to the abstract sub-class there is no error. I'm going to try make a small compilable example to see if I can reproduce it.
    edit its actually only one of the two interface methods, and not getContainer(), but another one. If anyone is interested here is the interface:
    public interface IMassSpectrometerPassableControlContainer
         Container getContainer();
         void reloadWidgetsOnVisible(boolean visible);
    }and it works only if there is "public abstract void reloadWidgetsOnVisible(boolean visible);" in the abstract class PerspectiveToolBar implementing IMassSpectrometerPassableControlContainer.
    I tried to reproduce it, but I can't get another class to repeat the behaviour, so I don't think I can post a bug report on it. Here is my attempt anyway:
    import javax.swing.JToolBar;
    * Class     Test.java
    * Date:     7 Jun 2011
    * @author     tofuser
    public class Test extends Subclass
         public static void main(String args[])
              System.out.println("in main method");
              Test t = new Test();
              t.interfaceMethod();
         @Override
         public void interfaceMethod()
              System.out.println("interface method");
    abstract class Subclass extends JToolBar implements Interface
         private static final long serialVersionUID = 1L;
         //this line is where it breaks in my code, including it works
         //public abstract void interfaceMethod();
    interface Interface
         public abstract void interfaceMethod();
    }Edited by: hanvyj on 07-Jun-2011 03:56

  • Creation of Material using BDC Session method & global class

    Hi
    Creation of Material using BDC Session method & global class by using oops.
    can anyone plz help me out

    Hi,
    it looks like it's not possible to call this BAPI wihtout material number. Here is a quote from BAPI documentation.
    When creating material master data, you must transfer the material
    number, the material type, and the industry sector to the method. You
    must also enter a material description and its language.
    Cheers

  • Internal table in method of class (BADI)

    Hello people !!
    I need to use an internal table into method of class. I don´t know very well how to use it. I know that it hasn´t a header; but I don´t know how to defined and use it.
    I need to use in a method of badi.-
    I will be grateful by the help that your could offer to me.-
    Thank you so much,
    Esther.-

    Thank you for your answer.
    But, I had defined as de fist item, but I had defined with a structure of dictinary.
    Now, in my code, I need to deposit information to the above mentioned table. Then, when I try to accede to the fields of the estructure, when I compile it gives me the following mistake:
    "ACC_DATA" is a table without a header line and therefore has no          
    component called "CUENTA".     
    I attach departs from the code:
    types: es_accdata type standard table of Z_ES_ACCDATA.
    data: acc_data  type es_accdata.
          loop at it_mseg into r_mseg.
          si es Entrada de Mercancía
            if r_mseg-bwart = '101'.
              at first.
                acc_data-cuenta = r_mseg-sakto.
                if not r_mseg-kostl is initial.
                  acc_data-centro_coste = r_mseg-kostl.
                else.
                  acc_data-orden_inversion = r_mseg-aufnr.
                endif.
              endat.
              monto = monto + r_mseg-dmbtr.
            endif.
          endloop.
    Thank you againg, for a new answer !!!!
    bye, Esther.-

  • Class-data versus data and methods versus class-methods in OO ABAP

    Hi
    I was going thorugh following OO ABAP code.
    CLASS vessel DEFINITION.
      PUBLIC SECTION.
        METHODS: constructor,
                 drive IMPORTING speed_up TYPE i,
                 get_id RETURNING value(id) TYPE i.
        CLASS-METHODS: start,
                       objects,
                       inheritance,
                       interfaces,
                       events.
      PROTECTED SECTION.
        DATA: speed TYPE i,
              max_speed TYPE i VALUE 100.
      PRIVATE SECTION.
        CLASS-DATA object_count TYPE i.
        DATA id TYPE i.
    ENDCLASS.
    Whats is difference between methods and class-methods ?
    What is the difference between data and class-data ?

    Hi Rajesh,
    There are two types of componenets in a class
    1)Static components
    2) Instance components
    Instance components exist for every instance of the class, while static exist only once for any number of instances of the class.
    Components of the class are methods, attributes, events etc.
    static attributes are represented by CLASS-DATA and instance attributes are represented by DATA.
    static methods hence are done by CLASS-METHODS and can access only static attributes.
    Instance methods are done by METHODS and can access any attribute.
    For eg: supposing that in a class, there is a static attribute. Suppose after one instance is created, we are setting this static attribute value as 10. Now we are creating another instance of the same class. Now when you try to display the value of this attribute, it will be 10.ie. it needs to be initialized once and can be shared between instances.
    Just go through this document..You will get nice info from this.
    http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    If you want to go deeper, like object persistence and all, just refer this document.
    http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    Regards,
    SP.

  • Abstract method and class

    I'm a beginner in Java and just learn about abstract method and class.
    However, i am wondering what is the point of using abstract method/class?
    Because when I delete the abstract method and change the class name to public class XXXX( changed from "abstract class XXXX), my program still runs well, nothing goes different.
    Is it because I haven't encountered any situation that abstract method is necessary or ?
    Thanks!

    Yes - you probably haven't encountered a situation where you need an abstract.
    Abstract classes are not designed to do anything on their own. They are designed to provide a template for other classes to extend by inheritance. What you have build sounds like a concrete class - one which you are creating instances of. Abstract classes are not designed to be ever instantiated in their pure form - they act like a partial building block, which you will complete in a class which extends the abstract.
    An example might be a button class, which provides some core functionality (like rollover, rollout etc) but has an empty action method which has to be overwritten by a relevant subclass like 'StartButton'. In general, abstract classes may not be the right answer, and many people would argue that it is better to use an interface, which can be implemented instead of extended, meaning that you can ADD instead of REPLACING.
    Not sure if that helps.. there are whole chapters in books on this kind of thing, so it's hard to explain in a couple of paragraphs. Do some google searches to find out more about how they work.

  • Method addTextUrlColumn (Class oracle.jbo.html.databeans)

    The method addTextUrlColumn (Class oracle.jbo.html.RowSetBrowser) adds an additional column to the View's RowSet. This column will be appended after all of the colummns that represent attributes belonging to the RowSet. How can I insert a additoinal column before all of the columns of the RowSet instead?
    Thanks
    Yoo

    The RowsetBrowser doesn't support this by default, you have source code to this control. You can extend it's features by adding this capability. Look at the source code in bc4jhtmlsrc.zip

  • Configure ITEM FIELDS (Class /SAPSRM/IF_MDF_ITM_DYN_CONTROL) in SRM 7.0

    Hi,
    I am using the class /SAPSRM/IF_MDF_ITM_DYN_CONTROL with the common signature
    IV_OBJECT_TYPE
    IV_FIELD_NAME
    IS_HEADER
    IS_ITEM
    IS_ADD_DATA
    CS_METADATA
    to control my fields within SRM on ITEM LEVEL.
    Question:
    I have one Shopping cart with two positions.
    Is it posiible to configure the Item fields now on a positional basis?
    eg.
    Position 1 Field Description available
    Position 2 Field Description not available
    I debugged the class and changed cs_metadata for fields on position 1 and 2 but this might show no effect.
    Any ideas?
    Thanks and regards
    Andreas

    Problem solved, wrong coding

  • Enhance payment method

    Hi,
       We have only 1 charecter to define payment methods, we have used all of them. Now our client wants to have another bank account with same currency as previous ones, so its not possible to use the existing payment methods.
    Is it possible to enhance payment method such tht it can accept 2 or morre charecters? or is there any way to solve this issue?
    it's very urgent pls reply me....

    I agree with XmchX – all combinations can’t be in active use. Perhaps you should consider “recycling” a numbers of these payment methods!
    To my knowledge is it not possible to make extensions here (using standard SAP)
    Regards
    René Vestergaard Nielsen

  • Quick tutorial of using methods of class

    Hi,
    I have never use methods of class before. Is there anyone can give me a quick tutorial how to do it?
    To be more specific – I need convert field 'DAUER' into the required format using one of the following methods of class 'CL_HR_T510_PSRCL':
    •     CONVERT_DURATION_TO_MMMM: Duration Conversion to Format 'MMMM'
    •     CONVERT_DURATION_TO_MMMM: Duration Conversion to Format 'YYMM'
    Please be more detailed in describing it.
    Your help will greatly appreciate.
    Thanks,
    Veb

    Hello Veb,
    You will find at this sdn page at section ABAP Objects , documentations and links about ABAP OO :
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/35eaef9c-0b01-0010-dd8b-e3b0f9ed7ccb#section7 [original link is broken]
    For your example :
    1) You can use like this :
    CALL METHOD CL_HR_T510_PSRCL=>CONVERT_DURATION_TO_MMMM
      EXPORTING
        DURATION = old_duration
      RECEIVING
        MMMM     = new_duration.
    1) Like this :
    l_dauer = convert_duration_to_mmmm(
                                 duration = l_dauer).
    Best regards

  • How to pass Method Inner Class reference to other method?

    Hi All,
    I am trying to pass the reference of "method inner class".
    Can any one explain me how to pass the reference and where other method will sit in the class, I mean either in Outer Class or in Inner Class ?
    Thanks in advance for ur reply :)
    package methosInnerClass;
    public class MethodLocalInnerClass {
         private String outerName;
         private static String statOuterName;
         public MethodLocalInnerClass(String name, String statName) {
              outerName = name;
              statOuterName = statName;
         public void methodWithLocallClass() {
              class MethodInnerClass {
                   String innerName;
                   MethodInnerClass(String name) {
                        innerName = name;
                   public void displayOuterInner() {
                        System.out.println("Outer Name: " + outerName + "\nOuter StatName: " + MethodLocalInnerClass.statOuterName + "\nInner Name: " + innerName);
              MethodInnerClass methodInner = new MethodInnerClass("Harish");
              methodInner.displayOuterInner();
                    *Pass above reference to other method*
         public static void staticMethodWithLocallClass() {
              class MethodInnerClass {
                   String innerName;
                   MethodInnerClass(String name) {
                        innerName = name;
                   public void displayOuterInner() {
                        // We can not access the non-static instance variable since this method is a static method
                        //System.out.println("Outer Name: " + outerName + "\nOuter StatName: " + MethodLocalInnerClass.statOuterName + "\nInner Name: " + innerName);
                        System.out.println("Outer StatName: " + MethodLocalInnerClass.statOuterName + "\nInner Name: " + innerName);
              new MethodInnerClass("Shakshi").displayOuterInner();
         public static void main(String[] args) {
              new MethodLocalInnerClass("Abhishek","Neeshu").methodWithLocallClass();
              System.out.println("Calling innerClass within static method !!!");
              staticMethodWithLocallClass();
    }

    package donald.test.inner_class;
    public class OutterClass {
         private String outerName;
         private final OutterClass outterClass;
         public OutterClass() {
              outterClass = this;
         public void methodWithInnerClass(final String strValueToPassToInnerClass) {
              class InnerClass {
                   private InnerClass innerClass;
                   private String innerName;
                   InnerClass(String name) {
                        innerName = name;
                   public void displayOuterInner() {
                        System.out.println("Non-Static:\tOuter Name: " + outerName + "\tInner Name: " + innerName);
                        System.out.println("");
                        System.out.println("final String strValueToPassToInnerClass = " + strValueToPassToInnerClass);
                    * @return the innerClass
                   public InnerClass getInnerClass() {
                        return innerClass;
                    * @param innerClass the innerClass to set
                   public void setInnerClass(InnerClass innerClass) {
                        this.innerClass = innerClass;
                    * @return the innerName
                   public String getInnerName() {
                        return innerName;
                    * @param innerName the innerName to set
                   public void setInnerName(String innerName) {
                        this.innerName = innerName;
              InnerClass methodInner = new InnerClass("Inner.Donald");
              methodInner.displayOuterInner();
              System.out.println("My OutterClass " + outterClass.getOuterName());
        // Unknown "MethodInnerClass "
         public void passReferenceOfInnerClassToOtherMethod(     ) {
          * @param args
         public static void main(String[] args) {
              OutterClass outterClass = new OutterClass();
              outterClass.setOuterName("Outter.Donald");
              outterClass.methodWithInnerClass("This Donald is so very cool...!!!  Yeah...!!!");
          * @return the outerName
         public String getOuterName() {
              return outerName;
          * @param outerName the outerName to set
         public void setOuterName(String outerName) {
              this.outerName = outerName;
          * @return the outterClass
         public OutterClass getOutterClass() {
              return outterClass;
    }

  • Why we are making a variable as final in method inner class ?

    Why we are making the variable as final (method inner class) while we are accessing the method variable in inner class ?
    regards,
    namanc

    As far as I can tell, the only reason is to protect the programmer: when the inner class instance is constructed, it is given the then-current value of the variable. If the variable (or method parameter) later changes, the value held by the inner class would not. By making the variable final, the programmer doesn't have to worry about them staying in sync.
    Here's some code to ponder:
    public class InnerExample
        void printMe( final int x )
            Runnable runMe = new Runnable()
                public void run()
                    System.out.println(x);
            (new Thread(runMe)).start();
    }When compiled with the Sun JDK 1.4.2, you get this bytecode:
    void printMe(int);
      Code:
       0:   new     #2; //class InnerExample$1
       3:   dup
       4:   aload_0
       5:   iload_1
       6:   invokespecial   #3; //Method InnerExample$1."<init>":(LInnerExample;I)V
       9:   astore_2
       10:  new     #4; //class Thread
       13:  dup
       14:  aload_2
       15:  invokespecial   #5; //Method java/lang/Thread."<init>":(Ljava/lang/Runnable;)V
       18:  invokevirtual   #6; //Method java/lang/Thread.start:()V
       21:  returnAt line (byte) 5, it loads the passed value onto the stack; at line 6, it invokes the inner class constructor (which is created by the compiler). Nothing in this sequence of code would prevent use of a non-final variable.

  • Pass referance of veriable to method in class

    Hi friends,
    I am trying to use ABAP object. In that i am trying to use reference variable which is pass to method in class. Whatever the operation perform on that variable should be reflected to original variable at main method.
    So how can I do that.
    Message was edited by:
            Amit Sontakke

    Hi Amit,
    U can try it out. Using Pass by Value it is possible for U to access the variable inside the method.
    ex:-
    DATA : num type i.
    CLASS c1 definition.
      PUBLIC SECTION.
      METHODS : meth1 IMPORTING INPUT1 TYPE I
                                  VALUE(INPUT2) TYPE I.
    ENDCLASS.                    "c1 DEFINITION
    CLASS c1 implementation.
      METHOD : meth1.
        " INPUT1 = 2. " input parameters passed by reference cannot be changed within the method
        INPUT2 = 4.
        WRITE : /5 'Input Parameters PASSED BY VALUE alone can be changed inside METHOD : ' ,INPUT1.
      ENDMETHOD.
    ENDCLASS.                    "c1 IMPLEMENTATION
    START-OF-SELECTION.
    DATA :oref TYPE ref TO c1.
    CREATE OBJECT : oref.
      num = 5.
    CALL METHOD : oref->meth1 EXPORTING  INPUT1 = 3
                                         INPUT2 = num.
    <u>Reward Points if Useful.</u>
    Regards,
    Kavitha.

Maybe you are looking for

  • After creating a customizing database table 'create entries disable'

    After creating the database table i want to add fields through goto-table contents-create entries but "create entries" is in disable mode how can i resolve this?

  • Database frozen in time

    Oracle 10.2.4 Solaris 10.5 SPARC 64bits I have a database that I want frozen in time and looking for the best way to accomplish it. It is a very smal database use by software testers in one of our centers. Here is what I am thinking thus far: I will

  • Clean install of 10.9.2 on a separate drive: Home folder questions

    Hi everyone I've run 10.7.5 for a long time on an SSD in my Mac Pro with my home folder on an internal HDD. Today I installed another SSD (actually a striped array of two SSDs on a Sonnet Tempo Pro) and put 10.9.2 on it. Is it safe under 10.9.2 to us

  • Error building EAR on Linux

    Hi , I have an integration application developed on windows.I want to create an EAR from the same source on Linux.I have copied the source maintaining the folder hierarchy and updated the build.xml to suite Linux machine properties(app path,server cl

  • Print a sapscript

    i want to printing a check(preprinted) into LANDSACP forrmat  and my layout is in portrate format , which a already change my layout accords to   LANDSACP format but the characters  which r printing on check is according to protrate format so any one