How to determine one class is a dynamic one or not?

hello,i got a simple question,like the title says.
how to determine one class is a dynamic one or not?
finally,i got an indirect solution.
package {
public dynamic class MyClass extends MySuperClass
public function MyClass()
super();
this.isDynamic=true;
this is a simple dynamic class,i defined a varible
directly,it is ok with dynamic class though i didn't declare it.
then in another class(parent class of this dynamic
class),where i try to determine the instance of this dynamic class
is a dynamic one or not.
i will use one function "checkIsDynamic" to check that
varible is exsit or not.then it will help me to determine what i
want know.
protected function checkIsDynamic():Boolean
try{this["isDynamic"]}
catch(er)
return false;
return true;
if another child class of MySuperClass didn't defined this
property,i can affirm it is not a dynamic class,or vice versa
this function also can be expanded to another one:
protected function checkProperty(prop:String):Boolean
try{this[prop]}
catch(er)
return false;
return true;
it is an useful solution,defined in parent class,and to check
the property is exist or not in child class.

try adding a property to a class instance.

Similar Messages

  • How to determine the source to where my saved photo (not taken by my iPhone camera) on whether what application or website did i got that photo? need to go to the source again, please help

    how to determine the source to where my saved photo (not taken by my iPhone camera) on whether what application or website did i got that photo? need to go to the source again, please help

    There is no way to trace the source of a saved photo.
    You might have some luck if you search through the Safari web site history available via the Bookmark icon.

  • How to determine if class was compiled with debugging information?

    How may I determine if class was compiled with debugging information? Aside from actually executing the class in a debugger.

    As known, when compiling "javac -g ..." the class
    files contain debugging information.
    my Naive question is WHAT is this information?
    could you please add any links to articles about this
    debugging information?http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#22856
    http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#5956

  • Again,HOW to conver a .class file into .java one?

    sorry , but Can't u send me a specific link for downloading this "Java decomplier"??
    coz I found my self in something called (jad decompiler) with lots of versions and this is confusing
    and Is that mean, that there's a decompiler which can convert the .class file into .java one?
    and thanks alot man.....u help me always!
    (I'm still begginner in java)

    Just to emphasise what yawmark said...
    Decompiled java code is NEVER going to be as clear as well-written original java source code. The decompiler can see what the compiled code does but not why or what it means, so the source code that the decompiler produces is going to be ugly and hard to read. Decompilers are really only useful for experienced programmers who know what to infer, how to read between the lines...
    If you need help writing something, then you're better off looking at tutorials. In tutorials the code will be well-commented.

  • How to determine the Class of a static methods class?

    hi,
    is there a way to get the code below to output
    foo() called on One.class
    foo() called on Two.classthanks,
    asjf
    public class Two extends One {
       public static void main(String [] arg) {
          One.foo(); // should say "foo() called on One.class"
          Two.foo(); // should say "foo() called on Two.class"
    class One {
       public static final void foo() {
          System.out.println("foo() called on "/*+something.getClass()*/);
    }

    - One.class won't resolve to Two.class when the static
    method is called via the class TwoThat's because static methods are not polymorphic. They cannot be overridden. For example try this:
    public class Two extends One {
       public static void main(String [] arg) {
          One.foo(); // should say "foo() called on One.class"
          Two.foo(); // should say "foo() called on Two.class"
          One one = new Two();
          one.foo();
          ((Two) one).foo();
       public static void foo() {
          System.out.println("foo() called on Two");
    class One {
       public static void foo() {
          System.out.println("foo() called on One");
    }

  • How to determine if a editable row is edited or not

    Hi,
    I have a tabular form, where all the fields are editable. Once user edit some field(s) and click 'update' button the page gets submitted. I don't want a user to submit the page unless he/she edit a field. In case the user click the 'Update' button without editing any field, I wan't a alert to come up saying "No field is edited!"
    Can anyone tell me how to compare old and new value for an editable field in a tabular form?
    Regards,
    Antara

    wow! quick response!
    Thats what I'm sort-of doing in VBscript.
    I don't have any problems with Volumeinfo its always there. (in event 4 or 14).
    When the machine is a HyperV host there is a added section "component info" and thats where the datatransfered is located for the VMs. so I add both toghether (also works great)
    When I run my updated script on machines without any VM it tries to read the node "ComponentInfo" and comes back with a error. (cause its not there)   
    I keep getting this error (see below) I know the component info is not present but I'm not sure how to have the script check if the object is empty, null, not present, etc... so i can tell the script to skip this section.
    Object required: 'bkcaphv(...)'
    Script error in line 1783, position 30
    ...I am working on converting my whole script to Powershell. unfortunatly, its a very long script (3000+lines) so its going to take a while. for the moment i'm stuck working in VB.
    Anthony Cartier-Info

  • How can i set class path in ubuntu JAVA_HOME ?

    how can i set class path in ubuntu <JAVA_HOME>?

    Note that on *nix
    environment variable names are case sensitive.
    Also, you are again being vague; is it [this it|http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/javac.html] or [that it|http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/java.html]

  • How to change CSS Class Dynamically for columns in a page

    Hi ,
    I have a page and i have columns like customer, bill to location, date from, date to..etc.
    Once i save the records the columns shoulbd change to Bold(CSS Class = OraDataText). In simple way how to chane CSS class for an item dynamically to a specific value.
    Can some one help me if came across this kind of a requirement.
    Please send me sample code if any one has this....
    Thanks,
    Mahesh

    I'm getting the following error while i implement the code in CO of Apply button.
    oracle.apps.fnd.framework.OAException: java.lang.ClassCastException
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888)
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145)
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1408)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2637)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.lang.ClassCastException
         at xxafp.oracle.apps.qp.pricelistrebate.webui.XxafpEepRebateCreateCO.processFormRequest(XxafpEepRebateCreateCO.java:98)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:799)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1118)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2633)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    java.lang.ClassCastException
         at xxafp.oracle.apps.qp.pricelistrebate.webui.XxafpEepRebateCreateCO.processFormRequest(XxafpEepRebateCreateCO.java:98)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:799)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1118)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2633)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    Thanks,
    Mahesh

  • How to load a class dynamically and then a call a method?

    Hi
    I want to call a method from a class,which class is loaded dynamically.
    Consider a classA and ClassB..
    ClassB contains a method showvalue() which returns a String value.
    I want to load a ClassB dynamically in ClassA,and call the method showvalue() and print the returned value of that method (showvalue).
    How to do this?
    Thanks

    Since you found your way to Reflections and Reference Objects, I can only assume you know that reflection is the answer. Since the reflection tutorial on this site, and indeed, the many others on the web, can explain this a whole lot better and more consisely than can be done in a forum, I'll point you in that direction instead. As a starting point, and to show I'm not just fobbing you off, you're interested in the classes java.lang.Class, java.lang.reflect.Method, and the method Class.getMethod(String, Class[])

  • How to send a variable from one class to another?

    hello,
    i have "One.as", which is the document class for one.swf.
    i also have "two.swf", with "Two.swf" entered as its document
    class...
    One loads two into it. two is basically a 10 frame movieClip
    with a variable at the beginning called "var endFrame:Boolean =
    false", then on the last frame it says endFrame = true.
    my question: how in the world do I communicate this back to
    One.as??? i've tried ENTER_FRAME listeners, declaring the variable
    here and there... and many other embarrassingly usuccessful
    strategies.
    i would just like to load in "three.swf" after two.swf
    finishes... but One needs to know that it has indeed finished.
    your help would be greatly appreciated. thanks

    yarkehsiow,
    > David,
    > thank you for responding.
    Sure thing! :)
    > so does what you are saying mean that endFrame is a
    property of
    > two (the movieClip), or Two (the Class)?
    If you've written a property named endFrame for your Two
    class, then
    yes, Two.endFrame is a property of that class.
    Looking back at your original post, I see that you wrote
    this:
    > One loads two into it. two is basically a 10 frame
    movieClip
    > with a variable at the beginning called "var
    endFrame:Boolean = false",
    > then on the last frame it says endFrame = true.
    So it sounds like your Two class extends MovieClip. (I'm not
    sure
    that's true, but that's what it sounds like.) That means your
    Two class
    supports all the features of the MovieClip class, including a
    play() method,
    a currentFrame property, and so on. In addition, you've added
    new
    functionality that amounts to -- by the sound of it -- a
    property named
    endFrame. If you made your property public (i.e., public var
    endFrame),
    then it should be accessible by way of an object reference to
    your Two
    instance.
    myTwoInstance.endFrame;
    > so can i invoke that method in One.as? do I call it
    Two.endFrame (if
    > (Two.endFrame == true) {?
    Methods are things an object can *do,* such as
    gotoAndPlay(). What
    you're describing is a property (a characteristic ... in this
    case, a
    Boolean characteristic). You wouldn't use the expression
    Two.endFrame
    unless that property was static. Static classes are those
    that cannot have
    an instance made of them. Think of the Math class. It
    contains numerous
    static properties in the form of constants, such as Math.PI,
    Math.E,
    Math.SQRT2, and so on. You can't create an instance of the
    Math class -- it
    wouldn't make sense to -- so Math is a static class.
    On the other hand, you definitely create instances of the
    MovieClip
    class. Every movie clip symbol is an instance of MovieClip
    class, which
    means that each instance carries its own unique values for
    MovieClip class
    members. The MovieClip class defines x and y properties, but
    each movie
    clip symbol (that is, each instance of the MovieClip class)
    configures its
    own values of those properties, depending on where each
    instance is located
    on the Stage.
    Assuming your Two class is not static, then somewhere along
    the line,
    your One class will have to make an instance of it. Somethine
    like ...
    // inside your One class ...
    var myTwo:Two = new Two();
    ... at which point that myTwo variable because a reference to
    that
    particular instance of Two. You can invoke Two methods on
    that instance.
    You can invoke Two properties and events on that instance.
    You can invoke
    whatever functionality is defined by the Two class on that
    myTwo instance.
    If Two extends MovieClip, that means you can also invoke any
    MovieClip class
    member on that myTwo instance.
    At some point in your One class, you can refer to that myTwo
    instance
    later and check if the value of myTwo.endFrame is true or
    false.
    David Stiller
    Adobe Community Expert
    Dev blog,
    http://www.quip.net/blog/
    "Luck is the residue of good design."

  • How to shift valuation class from one material type to another material type ?

    I have came across following weird scenario:
    We already created huge no.of materials of material type say ZABC with two valuation classes say 1100 and 1200(GL accounts for these VCs for different posting keys in OBYC settings are same). Account category reference for this material type is 0010.
    After that we created new material type say ZPQR  with new Account category reference 0025, and valuation class 1200 is linked with this ACR 0025. Because of this, valuation class 1200 disappeared from material type ZABC. In order to avoid inconsistency, we need to have valuation class 1200 linked with older material type i.e.ZABC.How we can do this ? What impacts must have happened in this period (from MM/FI) in the system, where valuation class get shifted from one material type(ZABC) to another material type(ZPQR)....please help us in this scenario.

    Thanks Sana,
    We are also looking for the solution provided by you i.e. reassign ACR 0010 to Valuation class 1200.
    Your are also correct in terms of  statement "config doesnt allow me to assign same valuation class to 2 different AREF (Account reference number/Account category reference).
    I wanted to know, what are the possible impacts in the system during this re-assignment of ACR to old material type ZABC.
    Regards,
    Sudarshan.

  • How to Determine the "Total" Page Count on HP 2575 All-in-one printer?

    Looking at how to determine the "Total" Page Count on HP 2575 All-in-one printer?   I've seen directions for other HP printers but can't seem to find any for the HP 2575 All-in-one printer.  I am trying to find approximately how many pages my printer has printed since I've owned it.    Any help is much appreciated. 

    The manual says you should be able to use the Embedded Web Server to view statistics. 
    Say thanks by clicking the Kudos Thumbs Up to the right in the post.
    If my post resolved your problem, please mark it as an Accepted Solution ...
    I worked for HP but now I'm retired!

  • How to transter contents of itab from one class to another...

    Hello experts,
    I am currently having problems on how to transfer the contents of an itab or even
    the value of a variable from one class to another. For example, I have 10 records
    in it_spfli in class 1 and when I loop at it_spfli in the method of class 2 it has no records!
    This is an example:
    class lcl_one definition.
    public section.
    data: gt_spfli type table of spfli.
    methods get_data.
    endclass.
    class lcl_one implementation.
    method get_data.
      select * from spfli
      into table gt_spfli.
    endmethod.
    endclass.
    class lcl_two definition inheriting from lcl_one.
    public section.
      methods loop_at_itab.
    endclass.
    class lcl_two implementation.
    method loop_at_itab.
      field-symbols: <fs_spfli> like line of gt_spfli.
      loop at gt_spfli assigning <fs_spfli>.
       write: / <fs_spfli>-carrid.
      endloop.
    endmethod.
    endclass.
    start-of-selection.
    data: one type ref to lcl_one,
          two type ref to lcl_two.
    create object: one, two.
    call method one->get_data.
    call method two->loop_at_itab.
    In the example above, the contents of gt_spfli in class lcl_two is empty
    even though it has records in class lcl_one. Help would be appreciated.
    Thanks a lot guys and take care!

    Hi Uwe,
    It is still the same. Here is my code:
    REPORT zfi_ors_sms
           NO STANDARD PAGE HEADING
           LINE-SIZE 255
           LINE-COUNT 65
           MESSAGE-ID zz.
    Include program/s                            *
    INCLUDE zun_standard_routine.           " Standard Routines
    INCLUDE zun_header.                     " Interface Header Record
    INCLUDE zun_footer.                     " Interface Footer Record
    INCLUDE zun_interface_control.          " Interface Control
    INCLUDE zun_external_routine.           " External Routines
    INCLUDE zun_globe_header.               " Report header
    INCLUDE zun_bdc_routine.                " BDC Routine
    Data dictionary table/s                      *
    TABLES: bkpf,
            rf05a,
            sxpgcolist.
    Selection screen                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_file TYPE sxpgcolist-parameters.
    SELECTION-SCREEN END OF BLOCK b1.
    */ CLASS DEFINITIONS
          CLASS lcl_main DEFINITION
    CLASS lcl_main DEFINITION ABSTRACT.
      PUBLIC SECTION.
    Structure/s                                  *
        TYPES: BEGIN OF t_itab,
                rec_content(100) TYPE c,
               END OF t_itab.
        TYPES: BEGIN OF t_upfile,
                record_id(2)    TYPE c,            " Record ID
                rec_date(10)    TYPE c,            " Record Date MM/DD/YYYY
                prod_line(10)   TYPE c,            " Product Line
                acc_code(40)    TYPE c,            " Acc Code
                description(50) TYPE c,            " Description
                hits(13)        TYPE c,            " Hits
                amount(15)      TYPE c,            " Amount
               END OF t_upfile.
    Internal table/s                             *
        DATA: gt_bdcdata    TYPE STANDARD TABLE OF bdcdata,
              gt_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll,
              gt_itab       TYPE STANDARD TABLE OF t_itab,
              gt_header     LIKE TABLE OF interface_header,
              gt_footer     LIKE TABLE OF interface_footer,
              gt_upfile     TYPE STANDARD TABLE OF t_upfile.
    Global variable/s                            *
        DATA: gv_target             TYPE rfcdisplay-rfchost,
              gv_err_flag(1)        TYPE n VALUE 0,
              gv_input_dir(100)     TYPE c
                                     VALUE '/gt/interface/FI/ORS/inbound/',
              gv_inputfile_dir(255) TYPE c,
              gv_eof_flag           TYPE c VALUE 'N',
              gv_string             TYPE string,
              gv_delimiter          TYPE x VALUE '09',
              gv_input_records(3)   TYPE n,
              gv_input_file_ctr(6)  TYPE n,
              gv_proc_tot_amt(14)   TYPE p DECIMALS 2,
              gv_prg_message        TYPE string,
              gv_gjahr              TYPE bkpf-gjahr,
              gv_monat              TYPE bsis-monat.
    Work area/s                                  *
        DATA: wa_itab               LIKE LINE OF gt_itab,
              wa_upfile             LIKE LINE OF gt_upfile,
              wa_footer             LIKE LINE OF gt_footer,
              wa_header             LIKE LINE OF gt_header.
    ENDCLASS.
          CLASS lcl_read_app_server_file DEFINITION
    CLASS lcl_read_app_server_file DEFINITION INHERITING FROM lcl_main.
      PUBLIC SECTION.
        METHODS: read_app_server_file,
                 read_input_file,
                 split_header,
                 process_upload_file,
                 split_string,
                 conv_num CHANGING value(amount) TYPE t_upfile-amount,
                 split_footer,
                 update_batch_control,
                 process_data.
    ENDCLASS.
          CLASS lcl_process_data DEFINITION
    CLASS lcl_process_data DEFINITION INHERITING FROM
                                                 lcl_read_app_server_file.
      PUBLIC SECTION.
        METHODS process_data REDEFINITION.
    ENDCLASS.
    */ CLASS IMPLEMENTATIONS
          CLASS lcl_read_app_server_file IMPLEMENTATION
    CLASS lcl_read_app_server_file IMPLEMENTATION.
    */ METHOD read_app_server_file  -  MAIN METHOD
      METHOD read_app_server_file.
        gv_target = sy-host.
        PERFORM file_copy USING 'ZPPDCP' p_file 'HP-UX'
                gv_target CHANGING gv_err_flag.
        CONCATENATE gv_input_dir p_file INTO gv_inputfile_dir.
      open application server file
        PERFORM open_file USING gv_inputfile_dir 'INPUT'
                                   CHANGING gv_err_flag.
        WHILE gv_eof_flag = 'N'.
          READ DATASET gv_inputfile_dir INTO wa_itab.
          APPEND wa_itab TO gt_itab.
          IF sy-subrc <> 0.
            gv_eof_flag = 'Y'.
            EXIT.
          ENDIF.
          CALL METHOD me->read_input_file.
        ENDWHILE.
      close application file server
        PERFORM close_file USING gv_inputfile_dir.
        IF wa_footer-total_no_rec <> gv_input_file_ctr.
          MOVE 'Header Control on Number of Records is Invalid' TO
               gv_prg_message.
          PERFORM call_ws_message USING 'E' gv_prg_message 'Error'.
          gv_err_flag = 1.
        ELSEIF wa_footer-total_no_rec EQ 0 AND gv_input_file_ctr EQ 0.
          MOVE 'Input File is Empty. Batch Control will be Updated' TO
               gv_prg_message.
          PERFORM call_ws_message USING 'I' gv_prg_message 'Information'.
          CALL METHOD me->update_batch_control.
          gv_err_flag = 1.
        ENDIF.
        IF gv_err_flag <> 1.
          IF wa_footer-total_amount <> gv_proc_tot_amt.
            MOVE 'Header Control on Amount is Invalid' TO gv_prg_message.
            PERFORM call_ws_message USING 'E' gv_prg_message 'Error'.
            gv_err_flag = 1.
          ENDIF.
        ENDIF.
      ENDMETHOD.
    */ METHOD read_input_file
      METHOD read_input_file.
        CASE wa_itab-rec_content+0(2).
          WHEN '00'.
            CALL METHOD me->split_header.
          WHEN '01'.
            CALL METHOD me->process_upload_file.
            ADD 1 TO gv_input_file_ctr.
            ADD wa_upfile-amount TO gv_proc_tot_amt.
          WHEN '99'.
            CALL METHOD me->split_footer.
          WHEN OTHERS.
            gv_err_flag = 1.
        ENDCASE.
      ENDMETHOD.
    */ METHOD split_header
      METHOD split_header.
        CLEAR: wa_header,
               gv_string.
        MOVE wa_itab TO gv_string.
        SPLIT gv_string AT gv_delimiter INTO
              wa_header-record_id
              wa_header-from_system
              wa_header-to_system
              wa_header-event
              wa_header-batch_no
              wa_header-date
              wa_header-time.
        APPEND wa_header TO gt_header.
      ENDMETHOD.
    */ METHOD process_upload_file
      METHOD process_upload_file.
        CLEAR gv_string.
        ADD 1 TO gv_input_records.
        MOVE wa_itab-rec_content TO gv_string.
        CALL METHOD me->split_string.
        CALL METHOD me->conv_num CHANGING amount = wa_upfile-amount.
        APPEND wa_upfile TO gt_upfile.
      ENDMETHOD.
    */ METHOD split_string
      METHOD split_string.
        CLEAR wa_upfile.
        SPLIT gv_string AT gv_delimiter INTO
              wa_upfile-record_id
              wa_upfile-rec_date
              wa_upfile-prod_line
              wa_upfile-acc_code
              wa_upfile-description
              wa_upfile-hits
              wa_upfile-amount.
      ENDMETHOD.
    */ METHOD conv_num
      METHOD conv_num.
        DO.
          REPLACE gv_delimiter WITH ' ' INTO amount.
          IF sy-subrc <> 0.
            EXIT.
          ENDIF.
        ENDDO.
      ENDMETHOD.
    */ METHOD split_footer
      METHOD split_footer.
        CLEAR: wa_footer,
               gv_string.
        MOVE wa_itab TO gv_string.
        SPLIT gv_string AT gv_delimiter INTO
              wa_footer-record_id
              wa_footer-total_no_rec
              wa_footer-total_amount.
        CALL METHOD me->conv_num CHANGING amount = wa_footer-total_amount.
        APPEND wa_footer TO gt_footer.
      ENDMETHOD.
    */ METHOD update_batch_control
      METHOD update_batch_control.
        DATA: lv_sys_date      TYPE sy-datum,
              lv_sys_time      TYPE sy-uzeit,
              lv_temp_date(10) TYPE c.
        CONCATENATE wa_header-date4(4) wa_header-date2(2)
                    wa_header-date+0(2)
               INTO lv_temp_date.
        MOVE lv_temp_date TO wa_header-date.
        APPEND wa_header-date TO gt_header.
      Update ZTF0001 Table
        PERFORM check_interface_header USING wa_header 'U' 'GLOB'
                                       CHANGING gv_err_flag.
      Archive files
        PERFORM archive_files USING 'ZPPDARC' gv_inputfile_dir 'HP-UX'
                gv_target CHANGING gv_err_flag.
      ENDMETHOD.
      METHOD process_data.
        SORT gt_upfile ASCENDING.
        CLEAR wa_upfile.
        READ TABLE gt_upfile INDEX 1 INTO wa_upfile.
        IF sy-subrc = 0.
          MOVE: wa_upfile-rec_date+6(4) TO gv_gjahr,
                wa_upfile-rec_date+0(2) TO gv_monat.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
          CLASS lcl_process_data IMPLEMENTATION
    CLASS lcl_process_data IMPLEMENTATION.
      METHOD process_data.
        CALL METHOD super->process_data.
        IF NOT gt_upfile[] IS INITIAL.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    Start of selection                           *
    START-OF-SELECTION.
      DATA: read TYPE REF TO lcl_read_app_server_file,
            process TYPE REF TO lcl_process_data.
      CREATE OBJECT: read, process.
      CALL METHOD read->read_app_server_file.
      CALL METHOD process->process_data.

  • How to determine column length semantics through ANSI Dynamic SQL ?

    I am looking for a way to determine the length semantics used for a column through ANSI Dynamic SQL.
    I have a database with NLS_CHARACTERSET=AL32UTF8.
    In this database I have the following table:
    T1(C1 varchar2(10 char), C2 varchar2(40 byte))
    When I describe this table in SQL*Plus, I get:
    C1 VARCHAR2(10 CHAR)
    C2 VARCHAR2(40)
    In my Pro*C program (mode=ansi), I get the select statement on input, use PREPARE method to prepare it and then use the GET DESCRIPTOR method to obtain colum information for output:
    GET DESCRIPTOR 'output_descriptor' VALUE :col_num
    :name = NAME, :type = TYPE,
    :length = LENGTH, :octet_length = OCTET_LENGTH
    For both C1 and C2 I get the following:
    :type=12
    :length=40
    :octet_length=40
    So, even if I know that my database is AL32UTF8, there doesn't seem to be a way for me to determine whether char or byte length semantics were used in C1 and C2 column definitions.
    Does anybody know how I can obtain this information through ANSI Dynamic SQL?
    Note: the use of system views such as ALL_TAB_COLUMNS is not an option, since we wish to obtain this information even for columns in a complex select statements which may involve multiple tables.
    Note: I believe OCI provides the information that we need through OCI_ATTR_DATA_SIZE (which is in bytes) and OCI_ATTR_CHAR_SIZE (which is in chars). However, switching to OCI is something we would like to avoid at this point.

    Yes, I was wondering which forum would be the best for my question. I see similar questions in various forums, Call Interface, SQL and PL/SQL and Database - General. Unfortunately there is no Pro*C or Dynamic SQL forum which would be my first choice for posting this question.
    Anyway I now posted the same question (same subject) in the Call Interface forum, so hopefully I'll get some answers there.
    Thank you for the suggestion.

  • How to convert the class in the one package to same class in the other pack

    How to convert the class in the one package to same class in the other package
    example:
    BeanDTO.java
    package cho3.hello.bean;
    public class BeanDTO {
    private String name;
    private int age;
    * @return
    public int getAge() {
         return age;
    * @return
    public String getName() {
         return name;
    * @param i
    public void setAge(int i) {
         age = i;
    * @param string
    public void setName(String string) {
         name = string;
    BeanDTO.java in other package
    package ch03.hello;
    public class BeanDTO {
    private String name;
    private int age;
    * @return
    public int getAge() {
         return age;
    * @return
    public String getName() {
         return name;
    * @param i
    public void setAge(int i) {
         age = i;
    * @param string
    public void setName(String string) {
         name = string;
    My converter lass lokks like
    public class BeanUtilTest {
         public static void main(String[] args) {
              try
                   ch03.hello.BeanDTO bean=new ch03.hello.BeanDTO();
              bean.setAge(10);
              bean.setName("mahesh");
              cho3.hello.bean.BeanDTO beanDto=new cho3.hello.bean.BeanDTO();
              ClassConverter classconv=new ClassConverter();
              //classconv.
              System.out.println("hi "+beanDto.getClass().toString());
              System.out.println("hi helli "+bean.toString()+" "+bean.getAge()+" "+bean.getName()+" "+bean.getClass());
              Object b=classconv.convert(beanDto.getClass(),(Object)bean);
              System.out.println(b.toString());
              beanDto= (cho3.hello.bean.BeanDTO)b;
              System.out.println(" "+beanDto.getAge()+" "+beanDto.getName() );
              }catch(Exception e)
                   e.printStackTrace();
    But its giving class cast exception. Please help on this..

    Do you mean "two different layers" as in separate JVMs or "two different layers" as in functional areas running within the same JVM.
    In either case, if the first class is actually semantically and functionally the same as the second (and they are always intended to be the same) then import and and use the first class in place of the second. That's beyond any question of how to get the data of the first into the second if and when you need to.
    Once you make the breakthrough and use one class instead of two I'd guess that almost solves your problem. But if you want to describe your architecture a little that would help others pin down want you're trying to do.

Maybe you are looking for

  • IPod Nano 3rd Gen "Space"

    Well it is said that for the specs of the 3rd gen nano (8GB) that you can have Up to 2,000 songs, up to 7,000 photos, up to 8 hours of video, or some of each. What if I use around 2,000 Songs but no photos, how much more hours of video can i have?

  • ADF Faces - how do stop table navigation?

    im have <af:table with rangeChangeListener="#{ResPage.RangeChL}" on JSF page in RangeChL im check on last rows in ResultSet: if(sr.rs.isLast()) System.out.println("%%%%%%%%AbortProcessingException"); // throw new AbortProcessingException("EEEENNNNDDD

  • SQ01 restricting the number of database accesses

    Hi, I created a report using SAP Query (SQ01). When I run the query a dialog box appears asking the maximum number of database accesses. The value entered here directly affects the result of the report. The user has to change the value manually in or

  • Vendors pulling software, shady practice.

    Recently "Apparent Software" decided to re-release their previous "Blast Utility" as a new application called "Trickster." In doing so they completely pulled "Blast Utility" from the App store without notifying customers. I would like to know how a v

  • Missing Idoc?how to solve ?

    hello all we got a error while loading master data like Missing Idoc?How to solve this? do v get this error while loading into transaction data also? regards balji