WdDoModifyView Static

Hi,
I have a general question. Why is wdDoModifyView Static. I went through the documentation and was not still clear.
Below is the Signature of the method :
public static void wdDoModifyView(IPrivate<viewname> wdThis, IPrivate<viewname>.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
<i> Here it is also used to discourage the a way of programming that routinely stores references to UI elements in instance fields for access by view controller's event handlers and so on..This would violate MVC paradigm.</i>
I understand that Static methods can access the variables of a class without an Instance of a class being created. Since this method is static, wdThis and wdContext are passed to this method. But why to have it Static in first place ?
Can anyone put it in more simple terms !!
Regards,
Murali.

The idea behind this decision was to separate the view from the view controller. Accessing the view and its elements should not be possible from event handlers and other controller methods.
By making this method static, it has at least been made more difficult to workaround this desired programming style.
Armin

Similar Messages

  • Multithreading and static of wdDoModifyView in a view controller

    wdDoModifyView javadoc recommends to use a static variable of view controller (VC) to pass/publish a references of UI elements to event handlers of VC.
    it means then that different instances of VC serving different users share same static variable... i see here a problem, do not you?

    Armin Reichert: see TJA311 WebDynpro Part 1 Unit 10, example optional 1 solution  6-3,6-4 -))
    my new conclusion is that any UI elements should only be access in wdDoModifyView method
    the javadoc discourage from using instance fields not static fields but recommends not to use UIs outside of the method:
    Hook method called to modify a view just before rendering.
    This method conceptually belongs to the view itself, not to the
    controller (cf. MVC pattern).
    It is made static to discourage a way of programming that
    routinely stores references to UI elements in instance fields
    for access by the view controller's event handlers, and so on.
    The Web Dynpro programming model recommends that UI elements can
    only be accessed by code executed within the call to this hook method.

  • Using Static Variable against Context Attribute for Holding IWDView

    Dear Friends,
    I have a method which is in another DC which has a parameter of the type IWDView. In my view, I will have an action which will call the method in another component by passing the value for the view parameter. Here, I can achieve this in 2 types. One is - I declare a static variable and assign the wdDoModifyView's view as parameter value and I can pass this variable as parameter whenever calling that method or the second way - create an attribute and assign the same wdDoModifyView's view parameter as its value. Whenever I call this method, I can pass this attribute as parameter. What is the difference between these two types of holding the value since I am storing the same value i.e., wdDoModifyView's view parameter. But when I trigger the action from different user sessions, the first type of code (using static variable) prints the same value in both the sessions for view.hashCode() and View.toString(), but the same is printing the different values when I pass the attribute which holds the view parameter.
    Clarification on this is highly appreciated
    The problem I face is when I use static variable to get the view instance and export the data using the UI element's id, the data belonging to different user sessions is mixed up where as when I use Context Attribute, the same problem doesn't arise. I want to know the reason why it is so. Is there any other place or way where I can get the current view instance of each session instead of wdDoModifyView?

    Hi Sujai ,
    As you have specified the problem that we face when we use  static attributes, when end users are using the application .
    Static means i  have n number of objects but the static variable value will remain same every where.
    when it is context attribute for every object i.e nth object you have a nth context attribute i mean nth copy of the context attribute.
    so every user has a unique Iview parameter , when context is used and
    when static is used  , assume you have userA , his iview is set this intially  and u have another user B , when he is using  , since the variable is static and when you access this variable you will get the value of userA.
    Regards
    Govardan Raj

  • Dynamic programming How to assign a static UI element to a static tray

    Hi There,
    We are enhancing a standard WDA application and we have a few static UI element created on the view. And now we want to rearrange these element to look like this.
    Current:
    Root
    -> Transparent container1
    -> ZTray
    -> Transparent container2
    target
    Root
    -> ZTray
         -> Transparent container1
        -> Transparent container2
    Can you help me to find out me how can i perform this 'move" assignment using dynamic programming.
    Thanks for your inputs.
    Rgds

    Hi Sudhir,
    You can start trying something like this in WDDOMODIFYVIEW.
      DATA:
         lo_element       type ref to cl_wd_uielement,
         LO_CONTAINER    TYPE REF TO CL_WD_UIELEMENT_CONTAINER.
      IF first_time = abap_true.
        LO_CONTAINER ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
        lo_element = LO_CONTAINER->REMOVE_CHILD( ID = 'ZTRAY' ).
        LO_CONTAINER->ADD_CHILD( INDEX = 1
                                 THE_CHILD = LO_ELEMENT ).
      ENDIF.
    I never did something like that. I guess that depending on the layout type of the view this code will need some changes (e.g matrix layout). I tried a simple test with flow layout and worked fine here.

  • Refresh statically mapped context

    Hi All
    I have created a context node in my controller. Then i mapped the context of controller to the context of view. Now the context of view contains some data .
    In wdDoModifyView() i call a method which say genUi which
    generates a dynamic node picking up the data from the static node of the view (The context which was mapped from the controller).
    When some event is fired from the view, I update controller context data and in wdDoModifyView() of the view , I have resetted the view and node of the view using
    view.resetView() and wdContext.wdGetAPI().reset() and again call the same method genUI.
    But the problem is that after resetting the node whole context node gets resetted . I dont want the data which was mapped from controller to view should vanish.
    I want the updated controller context data should get reflected in view's context (Since the context is mapped)
    I am pasting the wdDoModifyView() method of view to make the picture more clear.
      public static void wdDoModifyView(IPrivateProfessionalInfoView wdThis, IPrivateProfessionalInfoView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
        //@@begin wdDoModifyView
        if(!firstTime){
              view.resetView();
              wdContext.wdGetAPI().reset();
    // method to generate dynamic context node and dynamic UI
         CProfessionalViewGen objProfessionalViewGen = new CProfessionalViewGen(wdThis,wdContext,view);
        //@@end
    Please help in solving my problem..
    Regards
    Sonal Mangla

    Give the reset code with boolean value false
    <b>wdContext.wdGetAPI().reset(false);</b>
    Regards,
    Rathna

  • OnAction needs to run logic in wdDoModifyView

    I have a component.  When first displayed it shows data from the current week.  There is a button that is for the prior week information.  When the user clicks this button the appropriate onAction fires.  I then run the necessary methods in the component controller.  How do I get the new data to show on the page?  The current "wdDoModifyView" has logic used in order to do some special table processing so I need to call it.
    Any suggestions?
    Diane

    You know I thought it would call the modify view everytime - but I wasn't seeing that. I put messages in and saw the following based on my code ---
    Modify view called Build View
    I clicked the button Prior week
    Message stating the button was click happened - No Modify view
    public static void wdDoModifyView(IPrivateDetailView wdThis, IPrivateDetailView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
        //@@begin wdDoModifyView
        BuildView(WeekToProcess.CURRENT_WEEK, wdThis, wdContext, view);
        IWDMessageManager msgMgr = wdThis.wdGetAPI().getComponent().getMessageManager();
        java.util.Date mDate = new java.util.Date();
        msgMgr.reportWarning("Do Modify View " + mDate);
        //@@end
    public void onActionPriorWeek(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionPriorWeek(ServerEvent)
         IWDMessageManager msgMgr = wdThis.wdGetAPI().getComponent().getMessageManager();
         msgMgr.reportWarning("Prior Week");
         GregorianCalendar priorWeekDate = new GregorianCalendar();
         priorWeekDate.setTime(new java.util.Date());
         priorWeekDate.add(GregorianCalendar.DATE,-7);
         wdThis.wdGetEmployeeTimeVerificatioinCustController().getEmployeeTimeData(priorWeekDate.getTime());
        //@@end
    private static void BuildView(short weekToProcess,IPrivateDetailView wdThis, IPrivateDetailView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view)
         IWDMessageManager msgMgr = wdThis.wdGetAPI().getComponent().getMessageManager();
         msgMgr.reportWarning("BuildView");     
    ....does more logic....
    What did I do wrong?  Why after the button click action does my  modify view not execute?
    Regards,
    Diane

  • Reg:In wdDoModifyView the changes take place one after the other in run tim

    hai all,
            Iam using  wdDoModifyView() for displaying the description of the key value selected in the value helpin inputfield.I have 5 such input fields with value help.when i select the key from value help in order (i.e) from 1st input field,2,3,4,5 it works but if i select the 5th one first the desription gets displayed oly after i complete the 1st 4 selections.i need to display the description despite the selection made in any order.plz help me in this issue.
                Thanks in advance
    regards
    Sharanya.R

    hai sumit,
    here is the coding.The text view is set only in order.If user selects from the sales group value help 1st the description gets displayed oly after i complete selecting the 1st four.plz help me in this issue.Thanks in advance.
    public static void wdDoModifyView(IPrivateSalesformview1 wdThis, IPrivateSalesformview1.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
        //@@begin wdDoModifyView
        try
        //ordertype textview
    String ordertype=wdContext.currentContextElement().getOrderType();
    for (int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvakt().size(); i++)
    if(ordertype.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvakt().getLt_TvaktElementAt(i).getAuart()))
                        wdContext.currentContextElement().setTvordertype(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvakt().getLt_TvaktElementAt(i).getBezei());
    //salesorg textview
    String salesorg=wdContext.currentContextElement().getSalesorg();
    for (int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkot().size(); i++)
    if(salesorg.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkot().getLt_TvkotElementAt(i).getVkorg()))
    wdContext.currentContextElement().setTvsalorg(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkot().getLt_TvkotElementAt(i).getVtext());
    //distribution channel textview
    String dischann=wdContext.currentContextElement().getDistribchan();
         for(int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvtwt().size(); i++)
                        if(dischann.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvtwt().getLt_TvtwtElementAt(i).getVtweg()))
                   wdContext.currentContextElement().setTvdischann(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvtwt().getLt_TvtwtElementAt(i).getVtext());
    //division text view
    String div=wdContext.currentContextElement().getDivision();
         for(int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tspat().size(); i++)
                             if(div.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tspat().getLt_TspatElementAt(i).getSpart()))
                             wdContext.currentContextElement().setTvsaldiv(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tspat().getLt_TspatElementAt(i).getVtext());
    //sales office textview
    String saloff=wdContext.currentContextElement().getSalesoff();
    for(int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkbt().size(); i++)
         if(saloff.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkbt().getLt_TvkbtElementAt(i).getVkbur()))
                        wdContext.currentContextElement().setTvsaloff(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvkbt().getLt_TvkbtElementAt(i).getBezei());
    //sales group textview
              String salgrp=wdContext.currentContextElement().getSalesgrp();
              for(int i = 0; i < wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvgrt().size(); i++)
                        if(salgrp.equals(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvgrt().getLt_TvgrtElementAt(i).getVkgrp()))
                                  wdContext.currentContextElement().setTvsalgrp(wdThis.wdGetSalescustomctrllerController().wdGetContext().nodeLt_Tvgrt().getLt_TvgrtElementAt(i).getBezei());
        catch(Exception ex)

  • How to call Method from wdDoModifyView()

    Hi,
       I have a private method and i wanna call this method from wdDoModifyView() hook method.
    but when i call mthod it gives me error the method dim() from the type ..view is not static.
    can any one tell me how can i access this method?
    best regards
    Yasir Noman

    Hi Yasir,
    i'm not sure what you mean with the "dim()" method. I guess this is the non-static method you want to call from wdDoModifyView()? You should already get a compile-time error, not only a runtime error.
    The reason is simple: There is <b>no</b> possibility to call non-static methods from a static context. Static methods "belong to" a class while non-static methods "belong to" instances of a class.
    A simple alternative is to declare dim() as public using the "Methods" tab of the corresponding view controller and use the "wdThis" reference you are getting as a parameter of the wdDoModifyView() method such as you can call wdThis.dim().
    It's <b>not</b> sufficient just to change the method to public inside the //@others section, since wdThis will not know the method then since it's not part of the controller metadata.
    Hope that helps.
    Regards
    Stefan

  • Problem with Threads and a static variable

    I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
    Code functionality:
    A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
    The problem as far I understand is:
    Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
    Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
    Thanks,
    B.D.
    Code:
    private static volatile boolean bChanged = false;
    private static Thread objMainProcess;
       protected static void Init(){
            objMainProcess = new Thread() {
                public void run() {
                    while( objMainProcess == Thread.currentThread() ) {
                       GetState();
            objMainProcess.setDaemon( true );
            objMainProcess.start();
        public static void initStatusTimer(){
            if(objTimer == null)
                 objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
                    public void actionPerformed( java.awt.event.ActionEvent evt){
                              SetState();
        private static void SetState(){
            if( objMainProcess == null ) return;
            synchronized( objMainProcess ) {
                bChanged = true;
                try{
                    objMainProcess.notify();
                }catch( IllegalMonitorStateException e ) {}
        private static boolean GetState() {
            if( objMainProcess == null ) return false;
            synchronized( objMainProcess ) {
                if( bChanged) {
                    SendMessage();
                    bChanged = false;
                    return true;
                try {
                    objMainProcess.wait();
                }catch( InterruptedException e ) {}
                return false;
        }

    Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
    Again as you said, There is a reason I can't call sendMessage() inside setState().
    The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
    Thanks,
    B.D.

  • Can I use same IP to static to internal server from external dedicated ip?

    M question is would it cause my problems if I had the outside interface external ip mapped to vlan2 with the same ip address as I am trying to create static route to my server? Or is this OK? Keep in mind these are imaginary ips.
    I was trying to use this command but it was not letting me:
    static (inside,outside) tcp 99.89.69.333 3389 192.168.6.2 3389 netmask 255.255.255.255
    Here is the front end of my config
    ASA Version 7.2(4)
    hostname ciscoasa
    domain-name default.domain.invalid
    enable password DowJbZ7jrm5Nkm5B encrypted
    passwd 2KFQnbNIdI.2KYOU encrypted
    names
    interface Vlan1
    nameif inside
    security-level 100
    ip address 192.168.6.254 255.255.255.0
    interface Vlan2
    nameif outside
    security-level 0
    ip address 99.89.69.333 255.255.255.248
    interface Ethernet0/0
    switchport access vlan 2
    interface Ethernet0/1

    Since you are using the outside interface ip address in your static PAT, you should use the keyword "interface" as follows:
    static (inside,outside) tcp interface 3389 192.168.6.2 3389 netmask 255.255.255.255

  • Compilation error while calling static method from another class

    Hi,
    I am new to Java Programming. I have written two class files Dummy1 and Dummy2.java in the same package Test.
    In Dummy1.java I have declared a static final variable and a static method as you can see it below.
    package Test;
    import java.io.*;
    public class Dummy1
    public static final int var1= 10;
    public static int varDisp(int var2)
    return(var1+var2);
    This is program is compiling fine.
    I have called the static method varDisp from the class Dummy2 and it is as follows
    package Test;
    import java.io.*;
    public class Dummy2
    public int var3=15;
    public int test=0;
    test+=Dummy1.varDisp(var3);
    and when i compile Dummy2.java, there is a compilation error <identifier > expected.
    Please help me in this program.

    public class Dummy2
    public int var3=15;
    public int test=0;
    test+=Dummy1.varDisp(var3);
    }test+=Dummy1.varDisplay(var3);
    must be in a method, it cannot just be out somewhere in the class!

  • Error while running statically linked OCCI application on 11G client

    Hello,
    Till recently we used RogueWave classes to connect to Oracle database both 10G and 11G server. So we used to do a build on 10.2.0.4 client and then use that same build with 10.2.0.4 as well as 11.1.0.7 client to connect to 10G and 11G server databases respectively.
    Now we replaced RogueWave classes with Oracle Template Library solution which is a open source solution and want it to run the same way as in use Oracle 10.2.0.4 client to connect to Oracle 10G database and Oracle 11.1.0.7 client to connect to Oracle 11.1.0.7 database. But here when we used to do a build and link with occi library of 10.2.0.4 client we were unable to run that build by changing oracle client to 11.1.0.7 as name of occi library in Solaris 10.2.0.4 client is libocci.so.10.1 . This is not available in 11.1.0.7.
    So we used static version of same library libocci10.a and we were successfully able to run our application on both 10.2.0.4 as well as 11.1.0.7 client but occasionally we get below message on console although no error is observed in data in databases.
    ld.so.1: oracle: fatal: libskgxp11.so: open failed: No such file or directory
    Here is the details.
    SunOS md1npdsun37 5.10 Generic_141444-09 sun4v sparc sun4v
    Can someone suggest solution to this ?
    Thanks
    Niraj Rathi

    HI Karthick,
    Thanks for your reply.
    while exporting the application it is running properly on NWDS platform as well in Eclipse platform but not in mi client.
    i am sure that,
    <b>MCD Name = Application Name = War file which is MDK_TUTORIAL_SYNC</b>
    Below is my Meta XML file:
    <b><?xml version="1.0" encoding="utf-8" ?>
    - <MeRepApplication schemaVersion="1.1" id="MDK_TUTORIAL_SYNC" version="250901">
      <Property name="CLIENT.BUILDNUMBER" />
      <Property name="C_APPLRESOLVE" />
      <Property name="DATA_VISIBLE_SHARED" />
      <Property name="EN">LANGUAGE</Property>
      <Property name="E_APPLRESOLVE" />
      <Property name="FACADE_C_CLIENT">X</Property>
      <Property name="FACADE_E_CLIENT">X</Property>
      <Property name="HOMEPAGE.INVISIBLE" />
      <Property name="INITVALUE" />
      <Property name="RUNTIME">JSP</Property>
      <Property name="TYPE">APPLICATION</Property>
    - <SyncBO id="ZNWW_EXM01" version="2" type="download" allowCreate="false" allowModify="false" allowDelete="false" reqDirectSync="false">
    - <TopStructure name="TOP">
    - <Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
      <Input type="create">false</Input>
      <Input type="modify">false</Input>
      </Field>
    - <Field name="LAND_TEXT" type="C" length="50" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      <Input type="modify">false</Input>
      </Field>
      </TopStructure>
      </SyncBO>
      </MeRepApplication></b>
    reffer the above xml file and please find if  i miss any fields.
    regards,
    Venugopal.

  • Static NAT to two servers using same port

    I have a small office network with a single public IP address. Currently we have a static nat for port 443 for the VPN. We just received new software that requires the server the software is on to be listening on port 443 across the internet. Thus, essentially I need to do natting (port forwarding) using port 443 to two different servers.
    I believe that the usual way to accomplish this would be to have the second natting use a different public facing port, natted to 443 on the inside of the network (like using port 80 and 8080 for http). But, if the software company says that it must use port 443, is there any other way to go about this? If, for example, I know the IP address that the remote server will be connecting to our local server on, is there any way to add the source IP address into the rule? Could it work like, any port 443 traffic also from x.x.x.x, forward to local machine 192.168.0.2. Forward all other port 443 traffic not from x.x.x.x to 192.168.0.3.
    Any help would be very much appreciated.
    Thanks,
    - Mike                  

    Hi,
    Using the same public/mapped port on software levels 8.2 and below would be impossible. Only one rule could apply. I think the Cisco FWSM accepts the second command while the ASA to my understanding simply rejects the second "static" statement with ERROR messages.
    On the software levels 8.3 and above you have a chance to build a rule for the same public/mapped port WHEN you know where the connections to the other overlapping public/mapped port is coming from. This usually is not the case for public services but in your situation I gather you know the source address where connections to this server are going to come from?
    I have not used this in production and would not wish to do so. I have only done a simple test in the past for a CSC user. I tested mapping port TCP/5900 for VNC twice while defining the source addresses the connections would be coming from in the "nat" configuration (8.4 software) and it seemed to work. I am not all that certain is this a stable solution. I would imagine it could not be recomended for a production environment setup.
    But nevertheless its a possibility.
    So you would need the newer software on your firewall but I am not sure what devce you are using and what software its using.
    - Jouni

  • In "LOOP ... WHERE ..." the line type of the table must be statically defin

    Hi All,
            I have written the code, for greater than (GJAHR) 2007 and restricted company codes ( table name = ZGLCCODE).
         Here I have written the following the code which is giving an error
    In "LOOP ... WHERE ..." the line type of the table must be statically defin
    ZGLCCODE Contains only restricted company codes.
    Code is as follows
    TABLES : ZGLCCODE. 
    DATA : LT_DATAPACKAGE TYPE TABLE OF DTFIGL_4.
    DATA : LS_PACKAGE TYPE DTFIGL_4.
    TYPES: BEGIN OF LS_TZGLCCODE,
           ZBUKRS type BUKRS,
            END OF LS_TZGLCCODE.
    DATA : LT_ITZGLCCODE TYPE LS_TZGLCCODE OCCURS 0 WITH HEADER LINE.
    DATA : LI_NUM TYPE I,
           LC_ZGJAHR TYPE BSEG-GJAHR VALUE '2007'.
    SELECT ZBUKRS INTO TABLE LT_ITZGLCCODE FROM ZGLCCODE.
    Note:  "C_T_DATA" dynamic structure = "DTFIGL_4" structure
    *-  Remove from the DataSource Company Code -
    LOOP AT C_T_DATA INTO LS_PACKAGE WHERE GJAHR GE '2007'.
    READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = LS_PACKAGE-BUKRS.
    IF SY-SUBRC <> 0.
       APPEND LS_PACKAGE TO LT_DATAPACKAGE.
    ENDIF.
      CLEAR LS_PACKAGE.
    ENDLOOP.
    IF LT_DATAPACKAGE[] IS NOT INITIAL.
    DESCRIBE TABLE LT_DATAPACKAGE LINES LI_NUM.
    IF LI_NUM GT 0.
       REFRESH C_T_DATA.
       APPEND LINES OF LT_DATAPACKAGE TO C_T_DATA.
       REFRESH LT_DATAPACKAGE.
       FREE LT_DATAPACKAGE.
    endif.
    ELSE.
       REFRESH C_T_DATA.
    ENDIF.
    Please give me your valuable suggestions.
    Thanks
    Ganesh Reddy.

    Hi Ganesh,
    whatever you do, you can try like this:
    1 - any code posted should be wrapped in \
    then try something like this:
    field-symbols:
      <tabrec> type any,
      <field>   type any.
    sort ITZGLCCODE by bukrs.
    LOOP AT C_T_DATA ASSIGNING <tabrec>.
      ASSIGN component 'GJAHR' of structure <tabrec> to <field>.
      check <field> <= 2007.
      ASSIGN component 'BUKRS' of structure <tabrec> to <field>.
      READ TABLE LT_ITZGLCCODE WITH KEY ZBUKRS = <field>
        BINARY SEARCH TRANSPORTING NO FIELDS. "speed up the volume.
      IF SY-SUBRC 0.
        MOVE-CORRESPONDING <tabrec> to  LS_PACKAGE.   
        APPEND LS_PACKAGE TO LT_DATAPACKAGE.
      ENDIF.
    ENDLOOP.
    Regards,
    Clemens

  • I have recently upgraded my iMac Intel G5 iSight to OS 10.6.8 and now the internal mic does not work with skype or facebook. I can here static when playing back clips. Do I need to update firmware or reload old sys parts

    I have recently upgraded my iMac Intel G5 iSight (iMac5,1) to OS 10.6.8 and now the internal mic does not work with skype or facebook. I can here static when playing back clips. Do I need to update firmware or reload old system parts. I have zapped PRAM. The blue indicator in system audio panel will appear for a second as I slide the bar for internal mic but then it disappears. Is there a fix?

    The sound seems very faint but can here static on playback.

Maybe you are looking for