TestStand response to DLL Return Value

I've inherited a TestStand sequence that calls a DLL in several of the steps. The DLL's 'Return Value' is set as follows: 'Type' = U8. 'Result Action' = No Action, and the 'Set Error.Code' box is checked. I want to know what these settings do, what triggers a Step Failure, and what triggers a Step Error.

I am not aware of a specific document that describes the order of operations, but it should be nearly identical to C syntax.
The basics of that expression are as follows:
If the data source is not Step.Result.PassFail (not the default case), Evaluate the Step.DataSource property and store the result in Step.Result.PassFail.  Otherwise do nothing.  The comma means there is new statement, and the last statement is what assigns the result status to the step (this must be a string).   It the PassFail variable is true, it sets the step to "Passed", otherwise it sets it to "Failed".
Allen P.
NI

Similar Messages

  • How to use return value from TestComplete ( using COM) as a variable in the conditional statement (e.g. while loop) in TestStand

    Hi,
    I have setup a COM interface for TestStand(TS) to run certain scripts in TestComplete (TC).  Normally, when TestComplete finishes executing the script, it returns a 0 or 1 to denote pass/fail in the TestStand step (e.g String value test step).  This worked fine.
    However, now I need TestComplete to return a vaule( e.g 32) to TS, and TS need to evalue this value in a while statement. So if TC return value is 32, I'd have some statement in TS ike :                                                                                                 
    While (return value != 30)
    Do something..
    Thanks,
    Solved!
    Go to Solution.

    There are a hundred ways to implement what you are asking.  The hard part is deciding which one would be the best for you.
    What adapter are you using to communicate with TestComplete?  ActiveX?  Is TestComplete running asynchronously (in parallel)?  If so then how is the data getting back to TestStand?
    So here are some options:
    1. You can use the While Step type.  It's in the Flow Control folder in your Step Types pallette.  Look in your examples under UsingFlowControlSteps.seq in the SequenceFlow
    2. You can loop on a step and have the termination for the loop be (return value == 30).  Look in the Step Properties under Looping.  Also in the TestStand help
    3. You could do Post Actions based on a condition and have it jump to another step.  Read about it in the TestStand Reference Manual.
    4. You could use a GoTo step.  I don't really recommend this one.  It makes code hard to maintain.  Also an example in SequenceFlow called gotobeep.seq.
    Hopefully this gets you thinking.  Let me know if you have specific questions about any of these methods.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Unable to capture return values in web services api

    At the time of login to web services if my server is down ,
    it returns following error :
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
            at java.lang.String.substring(String.java:1438)
            at java.lang.String.substring(String.java:1411)
    I want to capture this error so that i can try another server to login. how do i capture this error
    Another place where i want to capture the return Value is when i look for a report on the server
    rh = boBIPlatform.get("path://InfoObjects/Root Folder/"src_folder"/" + reportName +
                               "@SI_SCHEDULEINFO,SI_PROCESSINFO" ,oGetOptions);
    oInfoObjects = rh.getInfoObjects();
    CrystalReport = (CrystalReport)oInfoObjects.getInfoObject(0);
    Here if the report is not there on the server , it returns a null handler exception.
    but if i try catching it by checking my responsehandler is null  like rh == null  it does not catch it.
    Any help will be appreciated
    thanks
    Rakesh Gupta

    Ted : i have two cases
    1)   server = server_st.nextToken();
        providerURL = "http://"server"/dswsbobje/services";
        sessConnURL = new URL(providerURL + "/session");
       Connection boConnection = new Connection(sessConnURL);
       Session boSession = new Session(boConnection);
      EnterpriseCredential boEnterpriseCredential = new    EnterpriseCredential();
                  boEnterpriseCredential.setLogin(userid);
      boEnterpriseCredential.setPassword(pwd);
      boEnterpriseCredential.setAuthType(auth);
    SessionInfo boSI = boSession.login(boEnterpriseCredential);
    I have got a list of servers running web servcies stored in my tokens. when i pass the first server name say " test:8080" and that server is down , i want to catch somewhere in the code above that it did not get the connection so that i can loop back and try with the second server say test1:8080
    This is for failover purposes.
    at present when i was trying to capture return value of boSI it  breaks giving the error
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1438)
    at java.lang.String.substring(String.java:1411)
    2nd case :
    I am geeting reports from the server and scheduling them:
    i run the following code which works fine if reports is there
    rh = boBIPlatform.get("path://InfoObjects/Root Folder/"src_folder"/" + reportName +
    "@SI_SCHEDULEINFO,SI_PROCESSINFO" ,oGetOptions);
    oInfoObjects = rh.getInfoObjects();
    CrystalReport = (CrystalReport)oInfoObjects.getInfoObject(0);
    Here if  the  report  is not there on the server  then i should be able to catch from the response handle rh that it has got a null value.
    but rh does not return a null value 
    the code ultimately throws a null handle at the following line
    CrystalReport = (CrystalReport)oInfoObjects.getInfoObject(0);
    i am not able to catch the null value there also.
    hope you got my issue.

  • Return values from a jpd to a jpf

    I basically want to call a jpd from a page flow and then receive the results back from the jpd in my page flow. I have created a process control from the jpd and have included it in my page flow controller file using the following annotation.
    * @common:control
    private controls.leaveProcessPControl leaveControl ;
    But since my jpd has a client response node for sending back the results (which corresponds to callback interface in the code), my page flow controller file is throwing an error saying that leaveControl implements a callback interface and page flow cannot receive asynchronous callbacks. Can anyone tell me how to resolve this.
    I would also like to know if there are different approaches for returning values back to the jpf from a jpd.
    Thanks,
    RK

    We are talking web interface here, so forget about Callbacks. I suggest that
    you create Web Servicethat implements your proces or a control that calls
    proces. Then Call that WS fro a controller, but in sync. way. Send a request
    and then pull for response. This pull can be implemented as while loop in
    Controler, with wait inside loop.
    That wont work realy well if jour proces is long running, as controller will
    block. In that case you will have to implement some kind of pulling in every
    action method in your controller and react - fill data in internal variable
    of controller for example.
    I hope it helps, butt remember thin is not always the best.
    "rohini k" <[email protected]> wrote in message
    news:4042178.1101851602508.JavaMail.root@jserv5...
    I basically want to call a jpd from a page flow and then receive the
    results back from the jpd in my page flow. I have created a process control
    from the jpd and have included in my page flow controller file using the
    following annotation.
    * @common:control
    private controls.leaveProcessPControl leaveControl ;
    But since my jpd has a client response node for sending back the results
    (which corresponds to callback interface in the code), my page flow
    controller file is throwing an error saying that leaveControl implements a
    callback interface and page flow cannot receive asynchronous callbacks.
    Can anyone tell me how to resolve this.
    I would also like to know if there are different approaches for returning
    values back to the jpf from a jpd.
    Thanks,
    RK

  • How to retreive and display return value from BAPI

    Hello,
    I am using SUP to create a sales order application. In my MBO I have a create operation which calls a BAPI to create a sales order. How can I retrieve the return value (saled doc number) and display it on a screen and display it as an Alert of BB application.
    Regards
    Nidhideep Bhandari

    Hi David Brandow,
    I have tried your solution where I just created a MBO for my 'operation' and I'm using sync parameters to execute the RFC.
    The problem I'm facing is, for example, if I create a record it gets saved in the MBO table and the record successfully gets created in SAP as well after a sync. But when I create another record and sync, the previously saved record in MBO table also gets executed so I'm getting duplicate entries in SAP.
    Have you or anyone faced this problem?
    Any response is appreciated. Please let me know if I'm not clear, I realized its a complicated scenario.
    Thanks,
    Sandeep

  • Getter/setter methods -- how do I use the return values

    I'm just learning Java, and I haven't been to this site since the end of July, I think. I have a question regarding getter and setter methods. I switched to the book Head First Java after a poster here recommended it. I'm only about a hundred pages into the book, so the code I'm submitting here reflects that. It's the beginnings of a program I'd eventually like to complete that will take the entered information of my CD's and alphabetize them according to whatever criteria I (or any user for that matter) choose. I realize that this is just the very beginning, and I don't expect to have the complete program completed any time soon -- it's my long term goal, but I thought I could take what I'm learning in the book and put it to practical use as I go along (or at lest try to).
    Yes I could have this already done it Excel, but where's the fun and challenge in that? :) Here's the code:
    // This program allows the user to enter CD information - Artist name, album title, and year of release -- and then organizes it according the the user's choice according to the user's criteria -- either by artist name, then title, then year of release, or by any other order according to the user's choice.
    //First, the class CDList is created, along with the necessary variables.
    class CDList{
         private String artistName;//only one string for the artist name -- including spaces.
         private String albumTitle;//only one string the title name -- including spaces.
         private int yearOfRelease;
         private String recordLabel;
         public void setArtistName(String artist){
         artistName = artist;
         public void setAlbumTitle(String album){
         albumTitle = album;
         public void setYearOfRelease(int yor){
         yearOfRelease = yor;
         public void setLabel(String label){
         recordLabel = label;
         public String getArtistName(){
         return artistName;
         public String getAlbumTitle(){
         return albumTitle;
         public int getYearOfRelease(){
         return yearOfRelease;
        public String getLabel(){
        return recordLabel;
    void printout () {
           System.out.println ("Artist Name: " + getArtistName());
           System.out.println ("Album Title: " + getAlbumTitle());
           System.out.println ("Year of Release: " + getYearOfRelease());
           System.out.println ("Record Label: " + getLabel());
           System.out.println ();
    import static java.lang.System.out;
    import java.util.Scanner;
    class CDListTestDrive {
         public static void main( String[] args ) {
              Scanner s=new Scanner(System.in);
              CDList[] Record = new CDList[4];
              int x=0;     
              while (x<4) {
              Record[x]=new CDList();
              out.println ("Artist Name: ");
              String artist = s.nextLine();
              Record[x].setArtistName(artist);
              out.println ("Album Title: ");
              String album = s.nextLine();
              Record[x].setAlbumTitle(album);
              out.println ("Year of Release: ");
              int yor= s.nextInt();
                    s.nextLine();
              Record[x].setYearOfRelease(yor);
              out.println ("Record Label: ");
              String label = s.nextLine();
              Record[x].setLabel(label);
              System.out.println();
              x=x+1;//moves to next CDList object;
              x=0;
              while (x<4) {
              Record[x].getArtistName();
              Record[x].getAlbumTitle();
              Record[x].getYearOfRelease();
              Record[x].getLabel();
              Record[x].printout();
              x=x+1;
                   out.println("Enter a Record Number: ");
                   x=s.nextInt();
                   x=x-1;
                   Record[x].getArtistName();
                Record[x].getAlbumTitle();
                Record[x].getYearOfRelease();
                Record[x].getLabel();
                Record[x].printout();
         }//end main
    }//end class          First, I'd like to ask anyone out there to see if I could have written this any more efficiently, with the understanding that I'm only one hundred pages into the book, and I've only gotten as far as getter and setter methods, instance variables, objects and methods. The scanner feature I got from another book, but I abandoned it in favor of HFJ.
    Secondly --
    I'm confused about getter and setter methods -- I'd like someone to explain to me what they are used for exactly and the difference between the two. I have a general idea, that getters get a result from the method and setters set or maybe assign a value to variable. I submitted this code on another site, and one of the responders told me I wasn't using the returned values from the getter methods (he also told me about using a constructor method, but I haven't got that far in the book yet.). The program compiles and runs fine, but I can't seem to figure out how I'm not using the returned values from the getter methods. Please help and if you can explain in 'beginners terms,' with any code examples you think are appropriate. It will be greatly appreciated.
    By the way, I'm not a professional programmer -- I'm learning Java because of the intellectual exercise and the fun of it. So please keep that in mind as well.
    Edited by: Straitsfan on Sep 29, 2009 2:03 PM

    Straitsfan wrote:
    First, I'd like to ask anyone out there to see if I could have written this any more efficiently, with the understanding that I'm only one hundred pages into the book, and I've only gotten as far as getter and setter methods, instance variables, objects and methods. The scanner feature I got from another book, but I abandoned it in favor of HFJ.Yes, there is tons you could have done more efficiently. But this is something every new programmer goes through, and I will not spoil the fun. You see, in 3 to 6 months when you have learned much more Java, assuming you stick with it, you will look back at this and be like "what the hell was I thinking" and then realize just haw far you have come. So enjoy that moment and don't spoil it now by asking for what could have been better/ more efficient. If it works it works, just be happy it works.
    Straitsfan wrote:
    Secondly --
    I'm confused about getter and setter methods -- I'd like someone to explain to me what they are used for exactly and the difference between the two. I have a general idea, that getters get a result from the method and setters set or maybe assign a value to variable. I submitted this code on another site, and one of the responders told me I wasn't using the returned values from the getter methods (he also told me about using a constructor method, but I haven't got that far in the book yet.). The program compiles and runs fine, but I can't seem to figure out how I'm not using the returned values from the getter methods. Please help and if you can explain in 'beginners terms,' with any code examples you think are appropriate. It will be greatly appreciated.
    By the way, I'm not a professional programmer -- I'm learning Java because of the intellectual exercise and the fun of it. So please keep that in mind as well.First, if you posted this somewhere else you should link to that post, it is good you at least said you did, but doubleposting is considered very rude because what inevitably happens in many cases is the responses are weighed against each other. So you are basically setting anyone up who responds to the post for a trap that could make them look bad when you double post.
    You are setting you getters and setters up right as far as I can tell. Which tells me that I think you grasp that a getter lets another class get the variables data, and a setter lets another class set the data. One thing, be sure to use the full variable name so you should have setRecordLabel() and getRecodLabel() as opposed to setLabel() and getLabel(). Think about what happens if you go back and add a label field to the CDList class, bad things the way you have it currently. Sometimes shortcuts are not your friend.
    And yes, you are using the getters all wrong since you are not saving off what they return, frankly I am suprised it compiles. It works because you don't really need to use the getters where you have them since the CDList Record (should be lowercase R by the way) object already knows the data and uses it in the printout() method. Basically what you are doing in lines like:
    Record[x].getArtistName();is asking for the ArtistName in Record[x] and then getting the name and just dropping it on the floor. You need to store it in something if you want to keep it, like:
    String artistName = Record[x].getArtistName();See how that works?
    Hope this helped, keep up the good learning and good luck.
    JSG

  • Assigning LOV return Value to multiple text items

    Hi all
    I have a custom form on which i have 10 text items
    text item 1,text item 2 ....text item10
    I have a table xx_querywith fields
    text_item,query
    i have inserted into the xx_query table
    insert into xx_query(text_item,query)
    values(text_item1,'select sysdate from dual');
    insert into xx_query(text_item,query)
    values(text_item2,'select sysdate-1 from dual');
    I have created a record group dynamically and i am getting the query from the query column of the xx_query table into the record group(say test_rg)
    I have created a LOV test_lov and thr set_lov_property i have populated the test_rg query into the test_LOV
    is it possible for me to set the return item of the LOV dynamically so that i can get the LOV on the item which i want to ?
    thanks
    _

    Hi All
    thanks for your responses
    I have Created a control item and assigned the return value of the LOV to the control item
    and i have assigned the LOV to the text item that i want
    Currently when i navigate to the text item the LOV is visible
    but when i select a value from the LOV the value is not getting populated into the text item
    I have assigned the value of the control item to the text item
    but i am not sure in which trigger to write the code so as when i select the value from the LOV the value should be shown on the form populating in the text item
    Thanks

  • Calling web service via utl_dbws with unbounded return values

    Hello, everyone.
    I'm trying to use utl_dbws to call web service from Oracle DB 10 g.
    WS has unbounded return value:
    <xs:element maxOccurs='unbounded' minOccurs='0' name='return' type='xs:string'/>
    I'm setting return paramter in web service call handler like this:
    sys.UTL_DBWS.set_return_type(l_h_service_call, cs_qname_type_string);
    and when I'm trying to call it from PL/SQL function I'm getting an error:
    ORA-29532: Java call terminated by uncaught Java exception:
    deserialization error: XML reader error: unexpected character content: "s2"
    ORA-06512: at "SYS.UTL_DBWS", line 388
    ORA-06512: at "SYS.UTL_DBWS", line 385
    ORA-06512: at line 38
    I've tried to return values by out parameters and got the same exception.
    It looks like utl_dbws needs to know parameters count before calling.
    Have anyone succeded in getting arrays from Web Service call?
    This is a part of wsdl:
    <xs:complexType name='getProcessList'>
    <xs:sequence>
    <xs:element minOccurs='0' name='nameMask' type='xs:string'/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name='getProcessListResponse'>
    <xs:sequence>
    <xs:element maxOccurs='unbounded' minOccurs='0' name='return' type='xs:string'/>
    </xs:sequence>
    </xs:complexType>
    Throught SoapUI I can produce such kind of request:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processmanager.argustelecom.ru/">
    <soapenv:Header/>
    <soapenv:Body>
    <proc:getProcessList>
    <processNameMask>*</processNameMask>
    </proc:getProcessList>
    </soapenv:Body>
    </soapenv:Envelope>
    and get a response:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <ns2:getProcessListResponse xmlns:ns2="http://processmanager.argustelecom.ru/">
    <return>s1</return>
    <return>s2</return>
    <return>s3</return>
    <return>s4</return>
    </ns2:getProcessListResponse>
    </env:Body>
    </env:Envelope>
    PL/SQL function:
    DECLARE
    cs_qname_type_string CONSTANT sys.UTL_DBWS.qname
    := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'string') ;
    cs_qname_type_int CONSTANT sys.UTL_DBWS.qname := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'int');
    cs_qname_type_any CONSTANT sys.UTL_DBWS.qname
    := sys.UTL_DBWS.to_qname('http://www.w3.org/2001/XMLSchema', 'anyType') ;
    cs_endpoint CONSTANT VARCHAR2(256) := 'http://server:8080/process-manager/ProcessManager';
    l_service sys.UTL_DBWS.service;
    l_service_qname sys.UTL_DBWS.qname;
    l_port_qname sys.UTL_DBWS.qname;
    l_operation_qname sys.UTL_DBWS.qname;
    l_h_service_call sys.UTL_DBWS.call;
    l_params sys.UTL_DBWS.anydata_list;
    l_ret_val SYS.ANYDATA;
    BEGIN
    l_service_qname := sys.UTL_DBWS.to_qname(NULL, 'ProcessManagerService');
    l_service := sys.UTL_DBWS.create_service(l_service_qname);
    l_port_qname := sys.UTL_DBWS.to_qname(NULL, 'ProcessListServiceBinding');
    l_operation_qname := sys.UTL_DBWS.to_qname('http://processmanager.argustelecom.ru/', 'getProcessList');
    l_h_service_call := sys.UTL_DBWS.create_call(l_service, l_port_qname, l_operation_qname);
    sys.UTL_DBWS.set_target_endpoint_address(l_h_service_call, cs_endpoint);
    -- return type
    sys.UTL_DBWS.set_return_type(l_h_service_call, cs_qname_type_any);
    -- param type
    sys.UTL_DBWS.ADD_PARAMETER(l_h_service_call, 'processNameMask', cs_qname_type_string, 'ParameterMode.IN');
    l_params(1) := anydata.convertvarchar2('*');
    l_ret_val := sys.UTL_DBWS.invoke(l_h_service_call, l_params);
    IF l_ret_val IS NULL THEN
    DBMS_OUTPUT.put_line('l_ret_val is null');
    ELSE
    DBMS_OUTPUT.put_line('l_ret_val is not null');
    END IF;
    sys.UTL_DBWS.release_call(l_h_service_call);
    END;
    Edited by: Ilya on 03.12.2008 3:50

    Hi Tony
    I'm not sure if you would have solved your problem by now, but with my recent experience with the utl_dbws package, for doc lits with complex data types, you have to call the service with an XML request, as opposed to passing the param array.
    If you still need details, reply accordingly.
    Ta
    cT

  • WB_RT_GET_JOB_METRICS does not return values

    DB v 10.2.0.2
    OWB repository/client v 10.2.0.3
    A DB function has a call to the Control Center transformation WB_RT_GET_JOB_METRICS to extract and preserve the metadata of number of records inserted/updated/deleted in a DB table.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    1.
    The control center transformation WB_RT_GET_JOB_METRICS does not return any values when used under the Post-Mapping Process(mapped to the DB function describe above) in a Map.
    The input parameter ;Audit Id' to the Map is passed from a calling Process Flow. The following query is used to retrieve the Audit Id of the Map.,
    SELECT execution_audit_id
    INTO l_audit_id
    FROM ALL_RT_AUDIT_EXECUTIONS
    WHERE parent_execution_audit_id = P_AUDIT_ID;
    And the retrieve l_audit_id is passed to the WB_RT_GET_JOB_METRICS transformation to extract the number of records inserted/deleted/updated with the execution of the map.
    Gurus, please advice if the approach is appropriate to retrieve the number of records inserted/deleted/updated by the execution of the map. If not, any alternate method.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    2. The control center transformation WB_RT_GET_JOB_METRICS returns values when used in a standalone pl/sql block with the appropriate audit_id.
    Is this because the metadata for the Map execution is complete, whereas in the earlier attempt, the transformation is called within the map using the Post-Mapping process.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    3. Since the option 1 did not return any value, tried other option of calling/executing a transformation(call the the DB function mentioned earlier) after the Map activity is successful in a ProcessFlow. Here, the transformation does not seem to be executing, any tips of correcting this issue.
    Request the forum for some helpful tips to resolve the problem. TiA (Thanks in Advance) for the response.
    Message was edited by:
    user599655

    In a process flow, passed the pseudo variable to a transformation to run the WB_RT_GET_JOB_METRICS after the map execution. I am not sure if this is the best solution, but it worked for me.
    Still trying to figure how to use the pre-defined transformation when working on expression.
    Thanks.

  • Problem getting pl/sql return value

    Hi,
    I'm using JDeveloper 10.1.2 to generate web service from pl/sql package. But the return value is always zero.
    The function is as follows:-
    FUNCTION GET_LIMIT ( v1 IN NUMBER, v2 IN NUMBER)
    RETURN NUMBER IS
    v_result_nr NUMBER;
    BEGIN
    v_result_nr := v1 * v2;
    END;
    RETURN v_result_nr;
    END GET_LIMIT;
    The result on webservices endpoint page:
    .. - <ns1:getLimitResponse xmlns:ns1="http://com/test/webservices/LimitCheckWS.wsdl" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <return xsi:type="xsd:decimal" xsi:nil="true" />
    </ns1:getLimitResponse>
    If i change the "RETURN v_result_nr" to "RETURN '1000.00'" and regenerate the web service, the return value as string is ok. The response is 1000.00 xsd:string.
    Any idea why? Thx.

    Ok. problem solved. Setup 10g server using loadjava as per document "1.2.4.4 Verifying or Loading the dbwsclient.jar File". Thanks.

  • Trying to Assign Return Value from DB Adapter that calls a Database Functio

    We have a BPEL process in which we have set up a DB Adapter to call a function in the Database and return the value (the actual value being returned is Workers=14 Hours=36 Vehicles=2). When we try to assign that returned value to a string value which will show in our task list , the below seems to assign the follwing -<crewsize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <GCS_LAB_VEH_CNT_FUNC xmlns="">Workers=14 Hours=36 Vehicles=2
    </GCS_LAB_VEH_CNT_FUNC>
    </crewsize>, and then whe it shows in the task, crewsize is blank.. What are we doing wrong??
    Bonnie and Rox
    Assign_gcs_veh_hrs
    [2008/01/31 09:37:10] Updated variable "Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable"less
    -<Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    -<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/EPAGES/GCS_LAB_VEH_CNT_FUNC/">
    <P_PROJ_ID>85504
    </P_PROJ_ID>
    <P_PHASE_ID/>
    <P_PE_ID/>
    </InputParameters>
    </part>
    </Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    [2008/01/31 09:37:10] Updated variable "Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable" More...
    -<Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    -<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/EPAGES/GCS_LAB_VEH_CNT_FUNC/">
    <P_PROJ_ID>85504
    </P_PROJ_ID>
    <P_PHASE_ID>1
    </P_PHASE_ID>
    <P_PE_ID/>
    </InputParameters>
    </part>
    </Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    [2008/01/31 09:37:10] Updated variable "Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable"less
    -<Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    -<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/EPAGES/GCS_LAB_VEH_CNT_FUNC/">
    <P_PROJ_ID>85504
    </P_PROJ_ID>
    <P_PHASE_ID>1
    </P_PHASE_ID>
    <P_PE_ID>1
    </P_PE_ID>
    </InputParameters>
    </part>
    </Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    Invoke_gcs_veh_hrs
    [2008/01/31 09:37:13] Invoked 2-way operation "get_gcs_veh_hrs" on partner "get_gcs_veh_hrs".less
    -<messages>
    -<Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    -<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/EPAGES/GCS_LAB_VEH_CNT_FUNC/">
    <P_PROJ_ID>85504
    </P_PROJ_ID>
    <P_PHASE_ID>1
    </P_PHASE_ID>
    <P_PE_ID>1
    </P_PE_ID>
    </InputParameters>
    </part>
    </Invoke_gcs_veh_hrs_get_gcs_veh_hrs_InputVariable>
    -<Invoke_gcs_veh_hrs_get_gcs_veh_hrs_OutputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="OutputParameters">
    -<db:OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/EPAGES/GCS_LAB_VEH_CNT_FUNC/">
    <GCS_LAB_VEH_CNT_FUNC>Workers=14 Hours=36 Vehicles=2
    </GCS_LAB_VEH_CNT_FUNC>
    </db:OutputParameters>
    </part>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="response-headers">[]
    </part>
    </Invoke_gcs_veh_hrs_get_gcs_veh_hrs_OutputVariable>
    </messages>
    Assign_gcs_veh_hrs_out
    [2008/01/31 09:37:13] Updated variable "outputVariable"less
    -<outputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<BranchCritChg1ProcessResponse xmlns="http://xmlns.oracle.com/BranchCritChg1">
    <moveid/>
    <customer/>
    <packcount/>
    <carrierref/>
    <transferee/>
    <projid>85504
    </projid>
    <weight/>
    -<crewsize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <GCS_LAB_VEH_CNT_FUNC xmlns="">Workers=14 Hours=36 Vehicles=2
    </GCS_LAB_VEH_CNT_FUNC>
    </crewsize>
    <phaseid>1
    </phaseid>
    <miles/>
    <vehicles/>
    <eventid>1
    </eventid>
    <authority/>
    <liftvans/>
    <ritsreg/>
    <goodstype/>
    <containernum/>
    <request1>Start Time: 03/31/2007 02:25 PM
    </request1>
    <current/>
    <request2/>
    <request3/>
    <request4/>
    <request5/>
    <request6/>
    <request7/>
    <comments/>
    <dispatch_group/>
    </BranchCritChg1ProcessResponse>
    </part>
    </outputVariable

    Hello Rajesh,
    I do not know if this is the problem in your case, but I would look at the source XML:
    <db:OutputParameters xmlns:...
    As you can see, the namespace for the db:OutputParameters is db, while you are referring to ns11:OutputParameters in your xpath expression;
    getVariableData('InvokeGetItems_GetItemDetails_OutputVariable_1','OutputParameters','/ns11:OutputParameters/ns11:P_ITEMNAME_O')
    So I would try to change ns11:OutputParameters to db:OutputParameters, and see if you get lucky?
    Cheers,
    Rune

  • Display pass or fail in Report based on return value

    Hi,
    I'm trying to integrate TestStand with TestComplete using the ActiveX/COM server adapter.  I have the COM setup so that TestStand can call a test in TestComplete and have TestComplete return a string value (true|false) to TestStand.
    Now I need to get the TestStand report to display "pass" or "fail" text for this sequence call,  based on the return string from TestComplete.
    Is there someplace in Expressions or Post Actions that I can state and how:
    return value "True" = pass
    return value "false" = fail
    Thanks.
    Solved!
    Go to Solution.

    Hi,
    Option 1.) Use a String Value Test.   The Limits.String would be 'True'.  This would be the easiest because you already returning strings from your ActiveX call.   You could make your ActiveX calls a String Value Test.
    Option 2.) Use a Pass/Fail Step.   You could set the returned string to a local variable and then create another Pass/Fail step that would have the Pass/Fail criteria as Locals.StringReturned == 'True'
    These are two options that hopefully can get you started....
    Thanks,
    PH

  • Web service return value

    I have a web service and I'm cfdumping the return variable, but I don't know how to get the value out.  This is what it is giving me.
    1
    object of com.nextaxiom.www.soapservice.xsd1.APApprovalList
    Class Name
    com.nextaxiom.www.soapservice.xsd1.APApprovalList
    Methods
    Method
    Return Type
    equals(java.lang.Object)
    boolean
    getAlertDate()
    java.lang.String
    getDescription()
    java.lang.String
    getDeserializer(java.lang.String, java.lang.Class, javax.xml.namespace.QName)
    org.apache.axis.encoding.Deserializer
    getInvoiceAmount()
    java.lang.Double
    getPaymentReferenceNumber()
    java.lang.String
    getSerializer(java.lang.String, java.lang.Class, javax.xml.namespace.QName)
    org.apache.axis.encoding.Serializer
    getTypeDesc()
    org.apache.axis.description.TypeDesc
    getUserName()
    java.lang.String
    getVendorName()
    java.lang.String
    hashCode()
    int
    setAlertDate(java.lang.String)
    void
    setDescription(java.lang.String)
    void
    setInvoiceAmount(java.lang.Double)
    void
    setPaymentReferenceNumber(java.lang.String)
    void
    setUserName(java.lang.String)
    void
    setVendorName(java.lang.String)
    void
    So some of this is the fields I want, but I want the value: description, alert date, invoice amt, etc.  Can anyone help me.  What do I need to do next to get the values?
    Here is my CF statement and the WSDL file.
    thanks for the help,
    BJ
    Invoke statement
                <cfinvoke
                                             webservice="http://127.0.0.1:8500/APApproval/GetAPApprovalList.wsdl"
                                             method="GetAPApprovalList" refreshwsdl="true"
                                             returnvariable="response">
                                                      <cfinvokeargument name="UserName" value="DAVBRY"/>
                                  </cfinvoke>
                <cfoutput>#response#</cfoutput>
    WSDL FILE
    <?xml version="1.0"?>
    <!--Automatically generated 10/07/2011 by Hyperservice Business Platform, NextAxiom Technology, Inc.-->
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
        name="BSAPrototype.APApproval.GetAPApprovalList"
        targetNamespace="http://www.nextaxiom.com/soapservice/BSAPrototype.APApproval.GetAPApprovalList/wsdl"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:tns="http://www.nextaxiom.com/soapservice/BSAPrototype.APApproval.GetAPApprovalList/wsdl"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.nextaxiom.com/soapservice/xsd1">
        <types>
            <schema xmlns="http://www.w3.org/2001/XMLSchema"
                elementFormDefault="qualified" targetNamespace="http://www.nextaxiom.com/soapservice/xsd1">
                <element name="GetAPApprovalList">
                    <complexType>
                        <sequence>
                            <element name="UserName" type="string"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="GetAPApprovalListResult">
                    <complexType>
                        <sequence>
                            <element maxOccurs="unbounded"
                                name="APApprovalList" type="xsd1:APApprovalList"/>
                        </sequence>
                    </complexType>
                </element>
                <complexType name="APApprovalList">
                    <sequence>
                        <element minOccurs="0" name="UserName" type="string"/>
                        <element minOccurs="0" name="AlertDate" type="string"/>
                        <element minOccurs="0" name="Description" type="string"/>
                        <element minOccurs="0" name="PaymentReferenceNumber" type="string"/>
                        <element minOccurs="0" name="InvoiceAmount" type="double"/>
                        <element minOccurs="0" name="VendorName" type="string"/>
                    </sequence>
                </complexType>
            </schema>
        </types>
        <message name="GetAPApprovalListRequest">
            <part element="xsd1:GetAPApprovalList" name="GetAPApprovalList"/>
        </message>
        <message name="GetAPApprovalListResponse">
            <part element="xsd1:GetAPApprovalListResult" name="GetAPApprovalListResult"/>
        </message>
        <portType name="BSAPrototype.APApproval.GetAPApprovalListSoapPort">
            <operation name="GetAPApprovalList">
                <input message="tns:GetAPApprovalListRequest"/>
                <output message="tns:GetAPApprovalListResponse"/>
            </operation>
        </portType>
        <binding name="BSAPrototype.APApproval.GetAPApprovalListSoapBinding" type="tns:BSAPrototype.APApproval.GetAPApprovalListSoapPort">
            <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
            <operation name="GetAPApprovalList">
                <soap:operation
                    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:doc?in=GetAPApprovalList?out=GetAPApprovalListResult?path=BSAPrototype.AP Approval.GetAPApprovalList"/>
                <input>
                    <soap:body use="literal"/>
                </input>
                <output>
                    <soap:body use="literal"/>
                </output>
            </operation>
        </binding>
        <service name="BSAPrototype.APApproval.GetAPApprovalList">
            <port
                binding="tns:BSAPrototype.APApproval.GetAPApprovalListSoapBinding" name="BSAPrototype.APApproval.GetAPApprovalListPort">
                <soap:address
                    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://nextaxb:7777/NXAServer/NextAxiomServer"/>
            </port>
        </service>
    </definitions>

    Getting complex objects back from web service calls are always tricky  - especially when they've been desearialized as an object.  We've found its a lot easier to deal with the Raw SOAP messages so at least we're working with an XML document, rather than a series of Getter functions, any of which that may return a NULL value (which does really unpleasant things to a CF variable).
    When you absolutely have to deal with a complex non-CF originating object in CF, we've found that you can actually use the underlying Java classes to identify and automatically execute the getter functions to effective dump out the variables.  We've rolled it up into a custom tag.  The base code for the logic is below:
    <cfset objVar = VARIABLE_CONTAINING_OBJECT_FROM_WEB_SERVICE>
    <cfset arrMethods = objVar.getClass().getMethods()>
    <cfoutput>
     <cfif isDefined("arrMethods") AND isArray(arrMethods) AND ArrayLen(arrMethods) gt 0>
     <table border="1" cellspacing="0" cellpadding="5" style="border-collapse:collapse;border:1px solid black;">
     <tr>
     <td colspan="3" style="background-color:##CCCCCC;">RESULT</td>
     </tr>
     <tr>
     <td>Method</td>
     <td>Class</td>
     <td>Return Value</td>
     </tr>
     <cfset sComplexMethods = "">
    <cfloop from="1" to="#ArrayLen(arrMethods)#" index="iMethod"> 
     <cfset sReturnType = arrMethods[iMethod].getReturnType().toString()>
    <cfif ListFindNoCase("int,java.lang.String,class java.lang.String,double,float,char", sReturnType)> 
     <tr>
     <td>#arrMethods[iMethod].getName()#</td>
     <td>#sReturnType#</td>
     <cfset sReturnValue = EVALUATE("objVar." & arrMethods[iMethod].getName() & "()")>
     <td><cfif isDefined("sReturnValue") AND sReturnValue neq "">#sReturnValue#<cfelse> </cfif></td>
     </tr>
    </cfif>
    #sComplexMethods#
    </cfloop>
     </table>
    </cfif>
    </cfoutput>

  • Client/server RMI app using Command pattern: return values and exceptions

    I'm developing a client/server java app via RMI. Actually I'm using the cajo framework overtop RMI (any cajo devs/users here?). Anyways, there is a lot of functionality the server needs to expose, all of which is split and encapsulated in manager-type classes that the server has access to. I get the feeling though that bad things will happen to me in my sleep if I just expose instances of the managers, and I really don't like the idea of writing 24682763845 methods that the server needs to individually expose, so instead I'm using the Command pattern (writing 24682763845 individual MyCommand classes is only slightly better). I haven't used the command pattern since school, so maybe I'm missing something, but I'm finding it to be messy. Here's the setup: I've got a public abstract Command which holds information about which user is attempting to execute the command, and when, and lots of public MyCommands extending Command, each with a mandatory execute() method which does the actual dirty work of talking to the model-functionality managers. The server has a command invoker executeCommand(Command cmd) which checks the authenticity of the user prior to executing the command.
    What I'm interested in is return values and exceptions. I'm not sure if these things really fit in with a true command pattern in general, but it sure would be nice to have return values and exceptions, even if only for the sake of error detection.
    First, return values. I'd like each Command to return a result, even if it's just boolean true if nothing went wrong, so in my Command class I have a private Object result with a protected setter, public getter. The idea is, in the execute() method, after doing what needs to be done, setResult(someResult) is called. The invoker on the server, after running acommand.execute() eventually returns acommand.getResult(), which of course is casted by the client into whatever it should be. I don't see a way to do this using generics though, because I don't see a way to have the invoker's return value as anything other than Object. Suggestions? All this means is, if the client were sending a GetUserCommand cmd I'd have to cast like User user = (User)server.executeCommand(cmd), or sending an AssignWidgetToGroup cmd I'd have to cast like Boolean result = (Boolean)server.executeCommand(cmd). I guess that's not too bad, but can this be done better?
    Second, exceptions. I can have the Command's execute() method throw Exception, and the server's invoker method can in turn throw that Exception. Problem is, with a try/catch on the client side, using RMI (or is this just a product of cajo?) ensures that any exception thrown by a remote method will come back as a java.lang.reflect.InvocationTargetException. So for example, if in MyCommand.execute() I throw new MySpecialException, the server's command invoker method will in turn throw the same exception, however the try/catch on the client side will catch InvocationTargetException e. If I do e.getCause().printStackTrace(), THERE be my precious MySpecialException. But how do I catch it? Can it be caught? Nested try/catch won't work, because I can't re-throw the cause of the original exception. For now, instead of throwing exceptions the server is simply returning null if things don't go as planned, meaning on the client side I would do something like if ((result = server.executeCommand(cmd)) == null) { /* deal with it */ } else { /* process result, continue normally */ }.
    So using the command pattern, although doing neat things for me like centralizing access to the server via one command-invoking method which avoids exposing a billion others, and making it easy to log who's running what and when, causes me null-checks, casting, and no obvious way of error-catching. I'd be grateful if anyone can share their thoughts/experiences on what I'm trying to do. I'll post some of my code tomorrow to give things more tangible perspective.

    First of all, thanks for taking the time to read, I know it's long.
    Secondly, pardon me, but I don't see how you've understood that I wasn't going to or didn't want to use exceptions, considering half my post is regarding how I can use exceptions in my situation. My love for exception handling transcends time and space, I assure you, that's why I made this thread.
    Also, you've essentially told me "use exceptions", "use exceptions", and "you can't really use exceptions". Having a nested try/catch anytime I want to catch the real exception does indeed sound terribly weak. Just so I'm on the same page though, how can I catch an exception, and throw the cause?
    try {
    catch (Exception e) {
         Throwable t = e.getCause();
         // now what?
    }Actually, nested try/catches everywhere is not happening, which means I'm probably going to ditch cajo unless there's some way to really throw the proper exception. I must say however that cajo has done everything I've needed up until now.
    Anyways, what I'd like to know is...what's really The Right Way (tm) of putting together this kind of client/server app? I've been thinking that perhaps RMI is not the way to go, and I'm wondering if I should be looking into more of a cross-language RPC solution. I definitely do want to neatly decouple the client from server, and the command pattern did seem to do that, but maybe it's not the best solution.
    Thanks again for your response, ejp, and as always any comments and/or suggestions would be greatly appreciated.

  • Adapter Return Value Truncated

    I am trying to understand what is going on with an adapter return value. Why would the return value be truncated to 1 character and then the result be "null" when the actual value the script returns is shown as "SUCCESS"?
    The web console shows the task a failed with a Response and Task Status of null.
    Class/Method: tcAdpEvent/setAdpRetVal entered.
    Class/Method: tcAdpEvent/getRetValString entered.
    Class/Method: tcAdpEvent/getRetValString - Data: class - Value: java.lang.String
    Class/Method: tcAdpEvent/getRetValString - Data: poRetVal.toString() - Value: SUCCESS
    Class/Method: tcAdpEvent/getRetValString - Data: Returning:sRetVal - Value: SUCCESS
    Class/Method: tcAdpEvent/getRetValString left.
    Class/Method: tcAdpEvent/setAdpRetVal - Data: Setting Adapter Return Value to SUCCESS - Value:
    Class/Method: tcAdpEvent/setAdpRetVal left.
    Class/Method: tcAdpEvent/finalizeProcessAdapter entered.
    Class/Method: tcAdpEvent/finalizeProcessAdapter - Data: Truncating to 1 characters - Value:
    Class/Method: tcAdpEvent/finalizeProcessAdapter - Data: Mapped to Response Code - Value:
    Class/Method: tcAdpEvent/updateSchItem entered.
    Class/Method: tcAdpEvent/updateSchItem - Data: event - Value: adpRUNCOMMAND
    Class/Method: tcAdpEvent/updateSchItem - Data: New Status - Value:
    Class/Method: tcAdpEvent/updateSchItem - Data: SchData - Value: null
    Class/Method: tcAdpEvent/updateSchItem - Data: Reason - Value:
    Class/Method: tcAdpEvent/updateSchItem left.
    Class/Method: tcAdpEvent/finalizeProcessAdapter left.
    Adapter: adpRUNCOMMAND has completed for the task: Final Update.
    -----------------------------------------------------

    Hi
    Have you got a solution for this?
    I'm having the same extrange behaviour with my adapter.
    In my case I'm using same adapter to enable/disable a user. One adapter variable determines if the action to perform is enable or disable.
    This adapter is integrated in two process tasks (Enable User and Disable User). What I can't understand is why it returns correct responses when disabling users, but returns just the first char of the response code when enablig users...
    Any hint?
    Thks

Maybe you are looking for

  • Mac mini running slow, will disk utility in machine be effective

    Mac mini came installed with 10.4 when purchase long time ago. Looks like the dvd reader no longer works since any cd or dvd gets ejected. The mini has been running slow and I cannot restart with Mac Install DVD to run the Disk Utility since it gets

  • Help with building nav bar in DW cs3

    Is it possible to turn text into linkable buttons in DW cs3? I have built a nav panel by inserting a table. I then typed in my menu options. Can i now turn these into links that can be used to navigate my site? Any help would be greatly appreciated.

  • How to protect my iphone5s

    how to protect my loveble iphone?

  • TRANSPORT ENTRIES IN TABLE TO TEST

    Hi, i´ve made several entries in table TFKT and i need to transport them to TEST and PRODUCTION. How can i do it? Regards.

  • ISU - EDM

    hi, what is EDM (Energy Data Management) module ?  pl tell me about it. regards.