CPP DLL's use pass-by-reference integration with teststand

I have the detail in the attached Outlook format file.
Attachments:
CPP DLL Integration with Teststand.docx ‏120 KB

If you don't know what a method is, you're going to have a number of problems down the road... A method is a function. It's a member of a class. It sounds like you may need to go through some .NET tutorials to understand the terminology.
Arrays in .NET are objects and are always passed by reference. That said, you would need to provide the details on the method's signature (i.e., the function prototype). Is the array a System.Array object or a regular old "int[]"? Is the method actually returning an array, or is it operating on the array in place. What is the return datatype of the method?
Message Edited by smercurio_fc on 08-15-2008 02:26 PM

Similar Messages

  • Adb integration with teststand

    Hello All.
    I am trying to integrate the android Debug Tool (adb) and Monkeyrunner with Teststand. I am quite new to Teststand, and I am unable to figure out how to use external programs and tools in teststand. Would be cool if someone can give me pointers on setting up adb with Teststand.
    Thanks.
    Harish
    Solved!
    Go to Solution.

    Dear Stephan,
    adb along with monkeyrunner is an API for writing script programs to control an android device. Its possible to write some python scripts that can be run via the Monkeyrunner tool which is a commandline tool to test certain packages. I am trying to integrate this with teststand so that i can migrate the already written python scripts directly to teststand and generate results based on the results.
    Thanks.
    Harish

  • How to use registrati​on-free COM with TestStand

    We create several different test programs run by TestStand. The sequence typically calls a function in a .NET dll that in turn calls functions in COM objects. We would like to use registration free COM to isolate the programs from each other but I'm having difficulty making it work. I know that in principle the manifest file and COM objects could be put in the same directory as SeqEdit.exe but this is unacceptable. I was thinking that using the activation context might be a way to do it. For example in C#: ActivationContext.CreatePartialActivationContext(ApplicationIdentit​y, string[]). ApplicationIdentity is the application identity of SeqEdit and the string [] parameter contains paths and names of manifest files that describe the needed COM objects. The idea would be to load an activation context with the .NET dll called by the sequence so SeqEdit could find the COM dlls in the same directory as the sequence. I haven't gotten it to work yet. Any ideas?

    Russell1,
    I'm going to try to give as thorough description as I can, since many other users may not understand what you're asking about.
    Normally, a COM server (ActiveX servers are COM servers) is registered with Windows via the registry.  Unfortunately, you can only have one version of the server registered at a time.  This is one of the reasons why TestStand (which is a COM server) needs a version switcher to change between engine versions.
    There is a technology called "Registration-free COM" that allows an application to use a COM server without having it registered in the windows registry.  It involves creating manifest files for the COM server and for the application that is calling the com server.  These manifest files are used by the operating system when the application tries to call the COM server to find the server.  Usually the OS would go to the registry, but it will check the manifest files first.
    The best reference on registration-free COM is an article on MSDN: Registration-Free Activation of COM Components: A Walkthrough.
    A year or so ago, there was a TestStand customer who was interested in forcing some of their applications to use a certain version of a COM server; I was able to get this working for them. 
    I tested the .NET and MFC TestStand user interfaces, and found that I could get registration-free COM working with both.  I found that two .manifest files needed to be created.
    The first is a .manifest file for the COM server.  This was a straightforward process following exactly the instructions in the above walkthrough (Step 7).
    The second is a .manifest file for the UI.  Since the TestStand UIs have their manifest files embedded in the application, I had to modify the .manifest file before building the UI, or use the .NET SDK tool mt.exe.
    After creating both manifest files, I found that adding them was enough to make .NET calls to the COM server work correctly if the application and server were in the same directory. 
    Unfortunately, I did not do any testing with having the COM server in a different directory.
    Now, on to your question:
    I just did some poking around on MSDN, and I have found the following information.
    Note that after you have configured a .manifest file for your COM server, it is then referred to as an "assembly".  I am making an assumption here (but I think it's a reasonable assumption) that after this, the COM server can be used just like any other assembly.  Specifically, it will be searched for in the same way an assembly is searched for.
    MSDN documents How the Runtime Locates Assemblies.  Note near the bottom of that page, if the assembly has not been bound to before, and it is not in the Global Assembly Cache (GAC), it will probe for the assembly.  From this I think the following are possible solutions.  Please note that I haven't tested any of them.
    MSDN documents the Probing behavior.  Note that it will only probe in sub-folders of the current application root directory ([application base]).  Note that there is also some information at the bottom of the page about COM interop scenarios.  I think what it is saying is that if you already are in an assembly, and call a COM server, it will look in the same folder as that assembly for the COM server.  This might be a possible solution for you.
    There is also an AssemblyResolve event that is fired if the CLR is unable to locate the assembly.  I don't know if this event is fired in the case that the COM server cannot be found, but if it is, you could then define your own way to search for the server.  I found this information in a blog post by Microsoft developer: https://blogs.msdn.com/junfeng/archive/2006/03/27/​561775.aspx
    One last possibility is to use an Application Configuration file; which is similar to a manifest file.  According to that page, there is an element called 'probing' that you can use with Windows 7 or Windows Server 2008 R2 when defining assembly binding to specify relative paths to probe for the assembly.
    I honestly don't know if any of these possibilities will work.  Please let me know if you get it working or if you need some more help, and I'll do my best to assist you.
    Message Edited by Josh W. on 02-04-2010 03:23 PM
    Josh W.
    Certified TestStand Architect
    Formerly blue

  • Can I use BDOCs for XI Integration scenario's when CRM system exists

    Hi All
       Can I use the Bdocs for integration with CRM system ?
       In XI is there any diff...bet Bdocs and Idocs ?
       When can i use BDOCs? When IDOCs?
    Can any one help me this pl....
    Adv...thanks
    regards
    kiran LVS

    Hi Kiran
         In addition to the above information add the following threads
         where you can find every thing about the integration between
         webapplication -
    > XI -
    > SAP CRM or SAP R/3
         (Webdynpro)
         /people/saravanakumar.kuppusamy2/blog/2005/02/07/interfacing-to-xi-from-webdynpro
         https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1334 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
         /people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
         /people/riyaz.sayyad/blog/2006/05/08/consuming-xi-web-services-using-web-dynpro-150-part-ii
         /people/riyaz.sayyad/blog/2006/05/10/consuming-xi-web-services-using-web-dynpro-150-ui-design-part-iii
    I hope this will surely help you  and
    Check in SDN " <b>XI to CRM</b> " there are many threads exists.
    regards
    prasad

  • Inconsistency using SUN Rowset Reference Implementation

    I am Using the RowSet reference implemention with Oracle Database.
    I am having a class which takes a input in form of XML adhering to the webrowset format.
    The xml contains some records to be inserted , some records to be updated and some records to be deleted.
    This xml is then fed to a WebRowSet using the webRowSet.readXml method which takes a Reader as a parameter. I am using a StringReader here.
    Here is the code snippet:-
    public void executeUpdate(String webRowSetXML)throws SQLComponentException{
    System.out.println(" webRowSetXML "+webRowSetXML);
    StringReader sr = new StringReader(webRowSetXML);
    WebRowSet webRowSet = null;
    try {
    webRowSet = new WebRowSetImpl();
    webRowSet.readXml(sr);
    webRowSet.acceptChanges(connection);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    I found here that the insertion and updating works without any problem , but the deletion doesn't work.
    Then to study this problem , i wrote a program with two WebRowSets, one will be the producer of the data and the other will be the consumer.
    the first WebRowSet will read the data from the data source , delete a record using the following piece of code:-
    wrs1.absolute(6);
    wrs1.deleteRow();
    And then i generate a String XML using the writeXML method.
    Then i feed this xml to the readXML method of the second WebRowSet and i call the acceptChanges method of the second WebRowSet. But the record doesn't get deleted.Also after printing the xml from the second WebRowSet , the <deleteRow> tag is absent from the xml.
    The same condition works properly for the insert and update operation and the respective <insertRow> and <updateRow> methods appear in both the xml's generated from both the WebRowSet's.
    Is this a bug in the webRowSet implemention or is it a problem of Oracle? Or is it that something else needs to be done for the delete operation to work.
    I tried the same thing with Pervasive SQL instead of oracle. Here only the insert operation works.
    Any body please help me in solving this problem...

    http://java.sun.com/j2se/1.4.1/docs/api/javax/sql/RowSet.html
    From the sun desc above.
    The RowSet interface is unique in that it is intended to be implemented using the rest of the JDBC API. In other words, a RowSet implementation
    is a layer of software that executes "on top" of a JDBC driver.
    Implementations of the RowSet interface can be provided by anyone,
    including JDBC driver vendors who want to provide a RowSet
    implementation as part of their JDBC products.
    rykk

  • ActiveX Automation Reference getting corrupted when sharing with Teststand

    I am using ActiveX Automation to interact with a 3rd Party Software. I use LabVIEW Functional Global to store the activeX reference. I have some low-level APIs with the Automation Refnum In and Out and few high level APIs which use the reference from Functional Global. I am also using these APIs in Teststand. When I store the Automation Reference in the Teststand Local Variable and pass it to the low-level APIs, It was working fine. But when I pass the Reference from the Teststand Local Variable to the Functional Global and use it afterwards, the reference is getting corrupted and I am getting error.
    I have created a prototype of the situation using ActiveX call to Skype from LabVIEW. The attached file has 3 Teststand sequences explaining the situation. 
    Debug1.seq : Passes the reference from TS Local to LV Functional Global  : Generates error
    Debug2.seq : Uses the reference from TS Local alone : No error
    Debug3.seq : Uses the reference from LV Functional Global alone : No error
    Can anyone suggest why is the reference loses its validity or any solutions?

    Hello, Nandini,
    I am using the WinXP and I am calling the DLL provided by Pirouette for their chemometrics software. I just solved the error -2147467262, but the new error comes out is :
    Error code: -2147467259 Exception occured in IxAsObjs.CoSIMCAPredict.1, Language Server QueryInterface failed: No such interface supported.
    Here is a few word for the problem from priouette:
    " just a few more words that might help you understand the nature of the problem. your LabView client talks to AlgSuite.dll using IDispatch interfaces AlgSuite.dll communicates with the language server on an IUnknown interface.
    Your client knows nothing about the internal workings of AlgSuite.AlgSuite communicating with objects that do not have IDispatch interfaces should be irrelevant to your client."
    Since the VB demo works fine in my machine, so they though it is percular to labview. Any comments? I appreciate it.
    LvvL

  • How is the integration with ECC in SRM 7.0??

    Hi,
    Working with SRM 5.0 or 5.5  the use of XI for integration with ECC is not mandatory because when we send any document from ECC to SRM like requisitions (to convert them in shopping cards) or when we send any document from SRM to ECC like shopping cards, PO´s, contracts,  we only use the RFC´s and the abap programs.
    Is the same behavior with SRM 7.0?????
    Could the integration from SRM 7 with ECC 6 work with RFC´S without XI or for this vertions is XI mandatory?????
    Thanks

    SRM70 is closely integrated with XI for transferring docs between ECC and SRM.  SAP introduces eSOA tech nology with SRM70 and hence all documents like PR from ECC to SRM, Central Contract from SRM to ECC, PO creation (Classic), etc uses this techn ology.
    Thanks,
    Jagadish

  • What is the use of passing object reference to itself ?

    What is the use of passing object reference to itself ?
    regards,
    namanc

    There is an use for returning an object reference from itself, for instance:
    class C {
    public:
         C append(C c) {
             // do something interesting here, and then:
             return this;
    }You can "chain" calls, like this:
    C c = new C();
    C d = new C();
    C e = new C();
    c.append (d).append (e);Maybe the OP has "inverted" the common usage, or thought about a static method of a class C that requires a parameter of type C (effectively being a sort of "non-static method").
    class C {
        static void doAnotherThing (C c) {
            c.doSomething(); //-- effectively C.doAnotherThing(c) is an "alternative syntax" for c.doSomething()

  • Subroutine Pass by Value, Pass by Reference using xstring

    Hi,
      I am trying to check the difference between pass by value, pass by reference, pass by return value to a subroutine. When I tried integers as parameters the following functionality worked. When I am using xstring as parameters I am not getting desired results.
      Some one please explain me how the xstring's are passed to a subroutine.
    Here I am giving the code and output of the code.
    data : s_passbyref    type xstring,
           s_passbyval    type xstring,
           s_passbyretval type xstring.
    * Pass by Value, Pass by Reference, Pass by return value - STRINGS
    s_passbyref     = 'ABCD'.
    s_passbyval     = 'ABCD'.
    s_passbyretval  = 'ABCD'.
    write : / 'ByRef :', s_passbyref, 20 'By Val :', s_passbyval, 40 'By Return Value : ', s_passbyretval.
    perform call_str_sub using s_passbyref s_passbyval changing s_passbyretval.
    write : / 'ByRef :', s_passbyref, 20 'By Val :', s_passbyval, 40 'By Return Value : ', s_passbyretval.
    form call_str_sub using ps_passbyref value(ps_passbyval) changing value(ps_passbyretval).
      ps_passbyretval = 'XYZ'.
      ps_passbyref    = 'XYZ'.
      ps_passbyval    = 'XYZ'.
    endform.
    OUTPUT
    ByRef  :  ABCD    By Val : ABCD    By Return Value : ABCD
    ByRef  :               By Val : ABCD    By Return Value :
    Thanks in advance
    Naveen

    try this
    write : / 'ByRef :', s_passbyref, 20 'By Val :', s_passbyval, 40 'By Return Value : ', ps_passbyretval.

  • Integration with MS VC++ DLL

    Dear Forte - colleagues
    I've got the following questions to clarify. They are mainly
    regarding integration with External Systems.
    1. To invoke my C function from Forte, I've created a project that
    wraps C function, configured this as a library and made distribution
    without autocompiling. (We are not able to use AutoCompile option). So
    I have to build a DLL manually. I created a MS VC++ project
    containing the following files:
    1. fcinter.cc - is generated by Forte
    2. fcinter.cpp - my C functions
    3. Forte libraries fortent\install\lib\*.lib
    Although FCInter.DLL has been compiled and linked successfully, but I
    get the following diagnostic:
    System Error: The specified procedure could not be found.,
    loading the symbol 'fcint_GetScope' from the library
    'c:\fortent\userapp\fcinter\cl0\fcinter.dll
    However this function is seen by Dumpbin /EXPORTS.
    I suspect that something is wrong in MS VC project settings. My
    questions are: Which settings of MS VC++ project should I use to make
    this function visible for Forte? Or what should be the command line
    to run CL command line compiler?
    2. And lastly, may be it seems funny but we cannot find the 'Release
    Notes' doc in Forte manuals nor in the installation CDs. Can somebody
    send it to us as email attachment? Mainly I need information about
    interaction with C++ compiler on WinNT platform. We are happy
    possessors of Forte 3.0.D.0.
    Thank you in advance for your help.
    Gleb Tulukin
    IBC

    I had to download the 64 bit  librfc32.dll from SAP software download center as outlined in note 413708.
    Please note that the librfc32.dll  installed as part of SAP GUI is  32 bit. Hence, I was getting the BadImageFormat exception.

  • How to pass file reference to c

    Hi,
    I want to pass file reference pointer to a dll written in visual c++. How can i do that?

    What do you want to do with that reference in your C code? if you want to access it using OS File IO functions you have to be very careful! You should not mix LabVIEW nodes and OS platforms calls together. It's either one or the other.
    If you can guarantee that what you want to do is configure the Call Library Node (CLN) parameter to Adapt To Type. Then right click on the CLN and select "Create C Source Header" or something to that meaning. Save the resulting file to disk. Open it and copy the function prototype into your C/C++ file. There should be a parameter typed LVRefnum *. Now you can use the LabVIEW manager C function MgErr FRefNumToFD(LVRefNum refNum, File *fdp);
    You need to link your DLL with labview.lib in the cintools directory in order to be able to call the FRefNumToFD() function. The value in the fdp reference is the platform specific file handle, so for Windows this is a HANDLE.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How do you pass vi references from one event to another

    I have a vi which gets vi references (thereby loading the vi's into memory) for all the vi's in a given directory when a user clicks a button on the front panel. To do this I use an event structure. My question is whether it is possible to have another event (user button on the front panel) which unloads the vi's from memory. I have tried passing the vi references that are initially generated to the close reference function but whenever I do I get a 'vi reference invalid' error. Does this have to do with trying to pass the vi references between one event and another? If I use a local variable simply pass a reference to another indicator and then probe it, the originally-generated refnum and the local vari
    able refnum match up. However once I try to wire that same indicator to the close reference function I get the 'vi reference invalid' error. Is there a different/better way to unload the vi's from memory based on a user button click? Any suggestions would be welcome.
    Jason
    Attachments:
    Load_Directory_of_vi's.vi ‏57 KB

    Several problems with your code:
    1... Bad idea to use lights as buttons. Yes it can be done, but it's not "natural".
    2... If you've gotta do that, set their mechanical action to "LATCH WHEN RELEASED"
    3... Because of #2, you are getting TWO copies of every array when you click the LOAD VIs light (er... button).
    4... No need for the conversion from path to string and back - use BUILD PATH to append each file name to he folder path.
    5... Set the BROWSE OPTIONS on your PATH control to EXISTING DIRECTORY to allow browsing of directories, not files.
    6... Your code doesn't care whether the file is a .VI file, or a .ZIP file, or a .TXT file, or what. Use the PATTERN input on the LIST function to discriminate.
    7... Your code is only storing the latest refer
    ence, not the array of references.
    8... An ERROR DIALOG on the OPEN REFERENCE function will tell you that you're getting an error. Why? You are asking to prepare a non-reentrant VI for reentrant execution (why use options = 8?)
    9... Because of #8, the latest VI reference is invalid.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • Creation of Delivery Using IDOC without reference to order

    Pls suggest is there is any way to create delivery using idoc without reference to order. This is very urgent.

    Hi
    Design the inbound idoc in such a way that it carries all the essential data needed to create a delivery document namely the material number, no of units to be deilvery, delivering plant, storage location, shipping point, warehouse number(if applicable) etc.
    Pass all these details to the function module  RV_DELIVERY_CREATE while creating delivery in VL01N and pass the document type as LO which is delivery document without reference to order.
    But it is advised to have atleast a pseudo order with which we have to create the delivery document.
    Pls reward points.

  • Drag and Drop - Transferable, how to pass a reference? (URGENT)

    I've a tree that supports drag and drop correctly but every time I exchange a node position the old parent instance remaining on the tree is different from the one I was referencing with the dragged child before the drag occurred. I absolutely need to maintain all references and cannot work with copies.
    Is there any way to use the Transferable interface to pass the original object instead of a copy?
    Thanks to Tedhill who raised the problem, trying to get a quick answer.
    ;o)

    hi guys let me close this thread:
    Thanks to asjf and sergey35 who helped me.
    Actually the isDataFlavorSupported method you suggest passes a reference and not a copy.
    Too bad I fell into another problem with the reloading of the
    moving-node Object after the DnD.
    But finally the working code is:
    public class XJTreeDnD extends XJTree implements DragGestureListener, DragSourceListener, DropTargetListener{
      private DefaultMutableTreeNode dragNode = null;
      private TreePath dragParentPath = null;
      private TreePath dragNodePath = null;
      private DragSource dragSource;
      private DropTarget dropTarget;
      private TransferableTreePath transferable;
      private boolean DnDEnabled = true;
      //private boolean CnPEnabled = false;
      public XJTreeDnD(XNode node) {
        super(node);
        // Set up the tree to be a drop target.
        dropTarget = new DropTarget(this, DnDConstants.ACTION_MOVE, this, true);
        // Set up the tree to be a drag source.
        dragSource = DragSource.getDefaultDragSource();
        dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_MOVE, this);
      private DefaultMutableTreeNode getTreeNode(Point location) {
        TreePath treePath = getPathForLocation(location.x, location.y);
        if (treePath != null) {
          return((DefaultMutableTreeNode) treePath.getLastPathComponent());
        } else {
          return(null);
    //dragGesture implementation
        public void dragGestureRecognized(DragGestureEvent e) {
          if(DnDEnabled){
            TreePath path = this.getSelectionPath();
            if (path == null || path.getPathCount() <= 1) {
              System.out.println("Error: Path null, or trying to move the Root.");
              return;
            dragNode = (DefaultMutableTreeNode) path.getLastPathComponent();
            dragNodePath = path;
            dragParentPath = path.getParentPath();
            transferable = new TransferableTreePath(path);
            // Start the drag.
            e.startDrag(DragSource.DefaultMoveDrop, transferable, this);
    //dragSource implementation
        public void dragDropEnd(DragSourceDropEvent e) {
          try {
            if (e.getDropSuccess()) {
              ((BaseXJTreeModel)this.getModel()).removeNodeFromParent(dragNode);
              DefaultMutableTreeNode dragParent = (DefaultMutableTreeNode) dragParentPath.getLastPathComponent();
              XNode xnodeParent = (XNode)dragParent.getUserObject();
              ((BaseXJTreeModel)this.getModel()).valueForPathChanged(dragParentPath, xnodeParent);
          } catch (Exception ex) {
            ex.printStackTrace();
        public void dragEnter(DragSourceDragEvent e) {
          // Do Nothing.
        public void dragExit(DragSourceEvent e) {
          // Do Nothing.
        public void dragOver(DragSourceDragEvent e) {
          // Do Nothing.
        public void dropActionChanged(DragSourceDragEvent e) {
          // Do Nothing.
    //dropTarget implementation
        public void drop(DropTargetDropEvent e) {
          try {
            Point dropLocation = e.getLocation();
            DropTargetContext dtc = e.getDropTargetContext();
            XJTreeDnD tree = (XJTreeDnD) dtc.getComponent();
            TreePath parentPath = tree.getClosestPathForLocation(dropLocation.x, dropLocation.y);
            DefaultMutableTreeNode parent = (DefaultMutableTreeNode)parentPath.getLastPathComponent();
            Transferable data = e.getTransferable();
            DataFlavor[] flavors = data.getTransferDataFlavors();
            for (int i=0;i<flavors.length;i++) {
              if (data.isDataFlavorSupported(flavors)) {
    e.acceptDrop(DnDConstants.ACTION_MOVE);
    TreePath movedPath = (TreePath) data.getTransferData(flavors[i]);
    DefaultMutableTreeNode treeNodeMoved = (DefaultMutableTreeNode) movedPath.getLastPathComponent();
    DefaultMutableTreeNode treeNodeLeft = (DefaultMutableTreeNode) this.dragNodePath.getLastPathComponent();
    XNode xnodeParent = (XNode)parent.getUserObject();
    XNode xnodeChild = (XNode)treeNodeLeft.getUserObject();
    /** @todo check the parent whether to allow the drop or not */
    if(xnodeParent.getPath().startsWith(xnodeChild.getPath())){
    System.out.println("cannot drop a parent node on one of its children");
    return;
    if(xnodeParent.getPath().getPath().equals((xnodeChild.getPath().getParentPath()))){
    System.out.println("node is already child of selected parent");
    return;
    // Add the new node to the current node.
    xnodeParent.addChild(xnodeChild);
    ((BaseXJTreeModel)this.getModel()).valueForPathChanged(parentPath, xnodeParent);
    ((BaseXJTreeModel)this.getModel()).insertNodeInto(treeNodeMoved, parent, parent.getChildCount());
    ((BaseXJTreeModel)this.getModel()).valueForPathChanged(movedPath, xnodeChild);
    e.dropComplete(true);
    } else {
    System.out.println("drop rejected");
    e.rejectDrop();
    } catch (IOException ioe) {
    ioe.printStackTrace();
    } catch (UnsupportedFlavorException ufe) {
    ufe.printStackTrace();
    public void dragEnter(DropTargetDragEvent e) {
    if (isDragOk(e) == false) {
    e.rejectDrag();
    return;
    e.acceptDrag(DnDConstants.ACTION_MOVE);
    public void dragExit(DropTargetEvent e) {
    // Do Nothing.
    public void dragOver(DropTargetDragEvent e) {
    Point dragLocation = e.getLocation();
    TreePath treePath = getPathForLocation(dragLocation.x, dragLocation.y);
    if (isDragOk(e) == false || treePath == null) {
    e.rejectDrag();
    return;
    // Make the node active.
    setSelectionPath(treePath);
    e.acceptDrag(DnDConstants.ACTION_MOVE);
    public void dropActionChanged(DropTargetDragEvent e) {
    if (isDragOk(e) == false) {
    e.rejectDrag();
    return;
    e.acceptDrag(DnDConstants.ACTION_MOVE);
    private boolean isDragOk(DropTargetDragEvent e) {
    /** @todo gestire i casi in cui il drop non sia concesso */
    return (true);
    public void setDragAndDropEnabled(boolean enabled){
    this.DnDEnabled = enabled;
    public boolean isDragAndDropEnabled(){
    return this.DnDEnabled;
    Thanks again.
    flat

  • Error : Access not possible using "null" objects reference

    Hello.
    i am working with a zbapi.
    i called a external email program in this bapi,everything is working fine over here.
    In webdynpro java they mapped my bapi and starting working from there.
    every functionality is working fine but regarding this email stuff it is showing an error as access not possible using null objects reference.
    where could be the possible error.
    is it in webdynpro or in abap side.

    Raghu,
    You are right. When it comes from the WD Java, may be you are not passing any value at all. You can trace it by these ways.
    1. Check it using SE37, make sure everyhting is fine.
    2. Print all the values that you are passing to the RFC in the execute RFC method().
    3. using ST05 transaction in R/3, enable RFC and SQL trace, check what is passing in between web dynpro and R/3.
    Moreover paste your error message here.
    Thanks,
    Raj.

Maybe you are looking for