Rapport et Message Pass / Fail de Teststand avec LabVIEW 8.0.

Bonjour,
J'ai deux problèmes avec l'OI Teststand avec LabVIEW. J'ai modifié l'exemple présent de l'OI Teststand pour le piloté comme sous VI avec LabVIEW 8.0. Les problèmes étant que je n'arrive pas à afficher le rapport en dynamique pendant que les séquences sont lancées et dans le même les messages popup Pass ou Fail en fin de séquence ne s'affiche pas.
Merci,
Résolu !
Accéder à la solution.

Voici quelques commentaires et questions car tout n'est pas clair:
-dans le VI TS OI: LoginOnStart est à False, par contre je ne vois pas d'appel à la front end callback loginlogout (du coup tu n'es pas logé sauf si j'ai raté quelque chose)
-Il y a des indicateurs (containeurs activeX entre autre) qui semble être invisibles (propriétés?)
-Le code gagnerait à être plus ordonné (il y a déjà les commentaires sa c'est bien)
-il y a un start de l'application manager, mais ou est le start de la séquence? normalement c'est un appuye sur un entry point qui le gère (testUUT par exemple)
-Il y a une méthode open sequence file, mais la reference du sequence file n'est pas utilisée...(c'est après qu'il faut faire une méthode pour lancer la séquence)
-la méthode Run sur le sequence file view manager sert à quoi?
-pas mal de fonctions mériteraient un sous VI
-Les fichiers séquences ne sont pas fournis donc je ne peux pas donner d'indications, par contre dans le VI les chemins pour appeler les séquences sont en dur, donc il y aura des problèmes pour exporter le projet sur une autre station.
J'espère que sa pourra t'aider, et je reste disponible pour d'autres infos.
Rodéric L
Certified LabVIEW Architect

Similar Messages

  • Changer la sequence model de Teststand avec Labview

    Bonjour,
    Je lance une séquence avec LabVIEW mais il faudra que j'utilise une autre SequenceModel. Je voudrai changer la SequenceModel utilisé par Teststand avec LabVIEW. J'ai commencé par faire ça :
    Mais rien ne se passe.
    Merci.
    Résolu !
    Accéder à la solution.

    Merci mais j'ai trouvé la solution :
    Je charge la séquence de test puis je charge la SequentialModel choisi.
    Voilà merci pour ton aide.

  • Combine "Pass/Fail" and "Multiple numeric limet" tests

    Hi,
    how is it possible to combine a pass/fail and a multiple numeric limit test?
    I know that you can create your own step types and so I already combined these two steps. But now i can only observe the numeric limits. Regardless of the pass/fail source ("Edit Pass/Fail Source") TestStand only looks at the numeric limits. If they are ok the test is passed. If not, it is failed. It does not matter if "Step.Result.PassFail" is True or False.
    What is the problem, or do i make any mistakes?
    Thanks for your help
    Daniel

    Hi,
    You will need to include the Step.Result.PassFail in the Status Expression. Probably at the moment you only have the NumericLimitTest Status expression in your combined step type. You will need to changed the Status Expression to match your requirement which will give you an overall Pass Fail for your step type.
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Lire variable locals de teststand dans labview par activeX

    Bonjour,
    Dans le cadre d'un projet interne, je crée une application sous labview qui servira d'interface utilisateur et autres choses.
    Le problème est que j'ai besoin de lire les variables locals de teststand avec labview sans que le programmeur teststand se soucie de faire appel à une fonction spécifique.
    Pour faire simple l'idée est d'utiliser l'activeX sur labview pour lancer les fichiers séquences etc. ça ne me posse pas se soucie à ce niveau-là.
    Mon problème est que j'aimerais lire les variables locals de teststand dans labview, j'avais l'habitude de lire les variables StationGlobals par cette méthode mais pas moyens de faire la même chose pour les locals.
    En gros, il faudrait que j'ai accès à sequenceContext par activeX mais sans faire un appel d'un VI dans teststand comme dans l'exemple proposé dans teststand.
    Cordialement.

    Bonjour Steve,
    En effet, ceci n'était pas aussi simple qu'il n'y paraissait...
    Voici un exemple:
    L'astuce étant de récupérer le Sequence Context depuis l'Executionview manager, on notera qu'il faut passer par l'exécution puis le thread car la propriété qui devrait renvoyer le SequenceContext directement ne fonctionne pas et renvoie une erreur... 
    Rodéric L
    Certified LabVIEW Architect
    Pièces jointes :
    récuperer locales depuis IHM.png ‏14 KB

  • Help! I have recently updated LR5 and before doing so I was able to email files to clients! (Very Convenient) Now my problem is I have not been able to get pass this error message reading "failed to send" which gives no further detail about what to do to

    Help! I have recently updated LR5 and before doing so I was able to email files to clients! (Very Convenient) Now my problem is I have not been able to get pass this error message reading "failed to send" which gives no further detail about what to do to rectify the situation. Someone please guide me through this! Thanks in advance!

    Did this ever get resolved, as I am having the same issue.  Trying to learn LR5 AFTER a decade using Aperture.   I was able to set up a validated account but when I try to send an e-mail or photo I get the simple " Failed to Send " message.   Using latest version of Mac OS X.

  • When i do initial set up w creative cloud set uo wont run send error message"installer failed to initialize" why and how can i get pass this

    When I do initial set up with creative cloud set up it wont run a send error message "installer failed to initialize" comes up. Why and how can I get passed this?

    Error "Installer Failed to Initialize" | Install desktop application | Windows

  • Sending a return value without pass/fail message

    Hi,
    I'm using the COM adapter to talk TestComplete application.
    I have a string value test step to evaluate a return value and determine if it's pass or fail (e.g. return 0 = pass, return 1 = fail).  This works perfectly.
    However, I have added another return value (e.g. return 2), the code executed fine, but it keeps displaying that step as "Failed", which is annoying.  Is there a way to suppress this failed message?
    Basically, here's what I need to do, return 0= display pass, return 1 = display fail, return 2 = display no message or just display done.
    Thanks so much!
    Solved!
    Go to Solution.

    The String Value Test step type only evaluates to Passed or Failed.  It does not do a tristate.  In fact any of the step types in the Tests (Pass/Fail Test, Numeric Limit Test, Multiple Numeric Limit Test, String Value Test) will always be pass or fail.  They never evaluate to just done.
    The Status Expression is what makes a step Pass or Fail.  Unfortunately with the default steps you cannot change the Status Expression.  You have to create a custom step type to do that.
    What are you setting your Step.Result.String to?  Or did you change the Data Source?
    Here are 3 options:
    1- Create a custom step based on the String Value Limit test and change the Status Expression such that you get your desired behavior
    2- Use and Action step and change the Status Expression such that you get your desired behavior.
    3- Continue using the step you are using but in the Post-Expression place some logic which turns off the Step.StepFailCausesSequenceFail if you are in return 2 state
    http://zone.ni.com/devzone/cda/tut/p/id/4302
    Hope this helps
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Dynamically specify TestStand pass/fail string

    I am performing tests utilizing multiple instruments. Each instrumemt may independently be in 'live' or 'simulated' mode. If any one instrument is in 'sim' mode, the test is considered in 'sim' mode. When in 'sim' mode the tests pass.
    My goal is to be able to look at the test report and determine if a specific test ran in 'sim' mode or live mode. My solution is to append the suffix '-sim' to the test status produced by TestStand. Thus the 'passed', 'failed' strings would become 'passed-sim', 'failed-sim' in 'sim' mode. These strings would have to be given to TestStand at the same time as the measurement value but before the test exited.
    Any thoughts or ideas on how I might accomplish the dynamic setting of the pass/fail string? I don't want this to be a permanent change, I want TestStand to revert back to the original pass/fail strings for the next sequential step.
    Hurst C.

    Hi Believer,
    What you seem to be trying to do is modify the results or a property of the results from the previous step. But unfortunately modify this property will only be affective if you were to re-run that step again eg step back one step. What you need to be modifying is the property that is in the Locals.ResultList. i.e Locals.ResultList[0].ReportText for the first step to be recorded in the sequence, Locals.ResultList[nth].ReportText for the nth step in the sequence to be recorded.
    By modifying 'RunState.Sequence.Main["Clock test (4.0V)"].Result.ReportText="FLAG"' you are actually modifying the runtime version of the step before its executed. Therefore, providing you do not over write the contents of ReportText within you step, this initial value will be seen in the result.
    You can check this by stepping into you step and checking the value of ReportText within the step.
    Hope this clarifies things
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • TestStand Lookup String for UUT Result Passed/Failed

    When I am in CleanUp group,what is the lookup string for UUT Result=Passed or Failed. That is all steps in main group passed = UUT Result=Passed. I am using Labview.

    Using RunState.SequenceFailed called from Cleanup step in TestStand sequence seems to work reliably for me but using RunState. ErrorReported does not. It seems as though the sequence context becomes invalid or something (although I get no error when accessing this property). It does not always come back true when a runtime error has occurred. Any ideas?
    Thanks, Roger Owens [email protected]

  • I am trying to use the T. S. operator interface I need to add pass fail and error

    Hello:
    I  am using Labview 6.1 and Test Stand 2.0
    I have made some modification to a copy of the T.S. Labview operator interface. How do I get the pass/fail or error from test stand to be pass to LabView so I can tell the operator that the unit pass or fail the test. I do not want to use the Test UUTs. I want this to be very low operator response.
    Message Edited by Toro on 02-28-2006 01:52 PM

    Not sure if this is available in the earlier versions of TestStand, but I think so.
    You could post a UI Message, from your execution entry point in the process model, to your User Interface indicating the pass/fail/error status when a test run is complete.  You will need to handle the UI Message in your Operator Interface.  See TestStand II Customisation course notes for handling UI Messages.
    The data passed in the UI Message can be anything you like, the UI Message handler in the User Interface will have to process the message and update the display as required.
    Hope this helps
    Steve
    Message Edited by SercoSteve on 03-01-2006 10:02 AM
    There are 10 types of people in the world that understand binary, those that do and those that don't.

  • Why does captivate 5 scorm 2004 change the pass/fail status when using complete/incomplete

    SUMMARY:  I am trying to use SCORM 2004 reporting but I am finding out ADOBE does not diffentiate between COMPLETE/INCOMPLETED and PASSED/FAILED variables in the SCORM 2004.
    RESULT: I can not accurately get the passing/failing status from the course.
    QUESTION: Is their anything I can do or does ADOBE have a patch they have release which will accurately report the passed/failed STATUS as well as the completed/incompleted status.
    OTHER RESEARCH: I even attempted to post these "proofs" on scorm.com and they have something called "SATISFACTION TRACKED" to accomodate content creation systems (CAPTIVATE 5) which does not follow the standards of SCORM 2004.
    BACKGROUND:  the report status "Incomplete/Complete" and "Pass/Fail" under the publishing options for SCORM 2004 essentially mean the same thing when the CAPTIVATE COURSE sends setvar commands to the SCORM API...  In other words the SCORM API receives the same exact commands when publishing in both modes.  "THIS IS WRONG"
    why is the wrong?  IF REPORTING; incomplete/complete ;  the CAPTIVATE 5 COURSE SHOULD NOT "change" the STATUS OF PASS/FAIL when attempting to report COMPLETE/INCOMLETE with 100% slide views.
    DEMO #3> SHOWS THE PROBLEM
    About DEMO #1 and DEMO #2> these are other reporting options I attempted with other problems arrising..so these images are just for supporting my original problem which is shown in DEMO #3...
    DEMO 1 (REPORT STATUS has no affect on reporting):SETTINGS:
    PASS: (PROBLEM)
    Anything above Passing Score is not recorded to LMS (once passing is reached...no more bookmarks are recorded)
    FAIL: (CORRECT)
    Failure gets sent to the database on the last screen with "completed"
    DEMO 2 (Report status  [Complete/Incomplete  Pass/Fail]   has no impact on commands sent to scorm api):
    SETTINGS:
    PASS: (CORRECT)
    Very Last page gets sent to the Database
    FAIL: (PROBLEM)
    NOTHING GETS SENT TO DATABASE (stuck in final score screen forever)...because it says "INCOMPLETE"
    DEMO 3:
    Report status [Complete/Incomplete Pass/Fail] has no impact on commands sent to scorm api
    SETTINGS:
    PASS: (CORRECT)
    Very Last page gets sent to the Database with a 90% passing with "completed"
    FAIL: (PROBLEM)
    LAST SLIDE SENDS "completed" but GETS SENT AS A PASSING SCORE??? even when it is a failure
    (IN OTHER WORDS ADOBE CHANGES THE PASS/FAIL STATUS based on slide views...
    this is WRONG ....REALLY WRONG becuase I am trying to report
    "COMPLETE/INCOMPLETE" for 100% slide views
    PASS/FAIL OPTIONS:
    OPTION I CAN PURSUE?
    SO WHAT CAN I DO?  YES, I CAN TELL THE LMS...to COMPARE THE SCORE RECEIVED DURING A "COMPLETE" status...and then change the grade in the LMS based on the SCORE IN THE LMS...BUT THAT WOULD MEAN THE LMS COULD REPORT ONE GRADE and the COURSE COULD REPORT A DIFFERENT GRADE....and that would not be good.
    ALL OF OUR COURSES SHOW THE STUDENT THE FINAL SCORE WITHIN EACH COURSE..
    QUESTION TO ADOBE?
    SO ADOBE when are you going to differentiate these two reporting options so that the PASS/FAIL OPTIONS ARE ACCURATELY REPORTED WHEN USING COMPLETE/INCOMPLETE?
    MORE INFORMATION
    HERE IS THE SCORM.COM "Satisfaction" adjustment (very last line) to accomodate inconsistent reporting in CAPTIVATE 5.
    Thanks,
    DOUG LUBEY OF LOUISIANA
    www.douglubey.com
    OTHER WEBSITES:
    http://forums.adobe.com/message/3332035
    http://forums.adobe.com/message/3122315
    http://forums.adobe.com/thread/712502?start=50&tstart=0
    http://forums.adobe.com/thread/800570
    http://forums.adobe.com/thread/720121
    SEARCH ENGINE REFERENCE:
    CAPTIVATE SCORM SUCCESS_STATUS
    captivate 5 scorm 2004 pass/fail is dependent on complete/incomplete
    scorm 2004 captivate cs5 success_status incorrect
    scorm 2004 captivate cs5 reports success_status incorrectly
    scorm 2004 captivate incorrectly reports pass/fail
    scorm 2004 captivate 5 incorrectly reports pass/fail
    scorm 2004 "captivate 5" incorrectly reports pass/fail
    captivate 5 sends a pass even when a failure is issued by the course using scorm 2004.
    captivate does not work properly when working with completed status.
    CAPTIVATE SCORM SUCCESS_STATUS COMPLETE STATUS SHOULD BE INDEPENDENT
    CAPTIvATE 5 cmi.completion_status
    and cmi.success_status does not work independently with scorm 2004.  they both share the same definition.  These two field were designed to help differentiate the difference between a passing or failing score and when the course is actually completed.   WITH CAPTIVATE 5 they do not differentiate the two.  COMPLETE means PASS and INCOMPLETE means fail..
    I was trying to use "completion_status" as a way to determine when all slides were shown.  So that I can send the final score (PASS/FAIL) the LMS after all slides were viewed and this was the absoluted score the student recieved.
    2011 CAPTIVATE CHANGES cmi.success_status TO PASSING WHEN COURSE REPORTS FAILURE
    2010 CAPTIVATE CHANGES SUCCESS TO PASSED WHEN COURSE REPORTS FAILURE
    CAPTIVATE 5 CHANGES cmi.success_status TO PASSING
    CAPTIVATE 5 CHANGES cmi.success_status TO PASSING WHEN COURSE REPORTS FAILURE
    CPTX CAPTIVATE CHANGES cmi.success_status TO PASSING
    CP5 WHY DOES CAPTIVATE SCORM SUCCESS_STATUS
    CPTX WHY DOES CAPTIVATE CHANGE PASSING STATUS
    CPTX CAPTIVATE SCORM CHANGES FAILING SCORE TO PASSING SCORE
    CAPTIVATE SCORM SUCCESS_STATUS COMPLETE STATUS MEANS THE SAME THING
    CAPTIVATE SCORM SUCCESS_STATUS COMPLETE STATUS SHOULD BE INDEPENDENT

    Hi,
    Here's something I found in a similar situation... hope this helps!
    After publishing your CP5 project as a SCORM 2004 zip file, unzip the file so you can get into the separate files.  Open the imsmanifest.xml file with a text editor; I like using Notepad++.  Search for the line starting with <imsss:minNormalizedMeasure>.  The complete line will probably look like <imss:minNormalizedMeasure></imss:minNormalizedMeasure>, this is the line that is supposed to contain your passing score (at least for our LMS).  So, if your passing score is supposed to be 80%, edit this line to be:  <imsss:minNormalizedMeasure>0.80</imsss:minNormalizedMeasure> and save the file.  Then select all the files and re-zip them, I use 7-zip for that.
    I found one other weird thing that doesn't happen 100% of the time, so test it.  In the example above, try to get a score of exactly 80% (or whatever passing grade you are using) and see if you get the correct status reported.  I found I sometimes have to re-edit that line in the manifest file to be 0.79 so it correctly includes an exact 80% score.  No idea why and you have to watch the number of questions in your quiz to make sure that works for you mathematically.
    If this works or not, I'd recommend posting your results so others can get some ideas.  Good Luck!!

  • HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7

    All -
    I'm new to consuming web services in JDeveloper. I'm using Oracle JDEV 10.1.3.3/OC4J.  I'm using this version since it is compatible with Oracle EBS 12.1.3.  My intent is to pull data from our third party recruitment app (Success Factors) and load that data into Oracle HRIS.  I'm already doing this through a .NET application.  I'm converting it to be a Java Concurrent Program in EBS.  The code listed below is a stub call to verify I'm on the right track. I created a JDeveloper Web Services proxy project.  I'm testing it locally on my windows desktop.  When I'm able to consume the service successfully, then I'll think about moving it to the EBS server.
    I'm getting the following error when I invoke the following service:
    HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    End point is: https://api4.successfactors.com/sfapi/v1/soap?wsdl
    Any help/assistance would be much appreciated. 
    Below is my code and output of my test:
    package emsc.oracle.apps.emscper.sfapi.proxy;
    import HTTPClient.HTTPConnection;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSession;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSessionResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Login;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResult;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Logout;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LogoutResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFCredential;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFParameter;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Error;
    import java.io.File;
    import javax.xml.rpc.ServiceFactory;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Date;
    import javax.xml.ws.BindingProvider;
    import javax.xml.soap.SOAPException;
    import java.util.Map;
    import oracle.security.ssl.OracleSSLCredential;
    public class SFAPITest {
        // Declare members:      
        private String companyId;
        private String userName;
        private String password;
        private String developerKey;
        private Date   effDt;
        private String greaterThanEffDt;
        private String lessThanEffDt;
        // Declare constants:      
        final static private String breakLine = "+---------------------------------------------------------------------------+";
        final static private String format    = "yyyy-mm-dd";      
        private enum ReqId {
            PrimaryReq(25),
            PrimaryReqCEO(26),
            EmCarePrimary(27),
            RTI(28),
            EmCareClinical(29);
            private int reqId; 
            private ReqId() {
            private ReqId(int value) {
                reqId = value;
            public int getReqId() {
                return reqId;
        // Getters and Setters:  
        protected String getCompanyId() {
           return this.companyId;
        protected void setCompanyId(String value) {
           this.companyId = value;                 
        protected String getUserName() {
           return this.userName;
        protected void setUserName(String value) {
           this.userName = value;                 
        protected String getPassword() {
           return this.password;
        protected void setPassword(String value) {
           this.password = value;                 
        protected String getDeveloperKey() {
           return this.developerKey;
        protected void setDeveloperKey(String value) {
           this.developerKey = value;                 
        protected Date getEffDt() {
            return this.effDt;
        protected void setEffDt(Date value) {
            this.effDt = value;                 
        protected String getGreaterThanEffDt() {
           return this.greaterThanEffDt;
        protected void setGreaterThanEffDt(String value) {
           this.greaterThanEffDt = value;                 
        protected String getLessThanEffDt() {
           return this.lessThanEffDt;
        protected void setLessThanEffDt(String value) {
           this.lessThanEffDt = value;                 
        public void runProgram()
            SFAPIService mySFAPIService;
            String CompletionText = "";
            String effDtStr2 = null;
        /* Code your program logic here.
        * Use getJDBCConnection method to get the connection object for any
        * JDBC operations.
        * Use CpContext provided commit,rollback methods to commit/rollback
        * data base transactions.
        * Don't forget to release the connection before returning from this
        * method.
        /* Call setCompletion method to set the request completion status and
        * completion text.
        * Status values are ReqCompletion.NORMAL,ReqCompletion.WARNING,
        * ReqCompletion.ERROR.
        * Use Completion text message of length 240 characters. If it is more
        * than 240 then full string will appear in log file and truncated 240
        * characters will be used as request completion text.
        try
            ServiceFactory factory = ServiceFactory.newInstance();
            mySFAPIService = (emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService)factory.loadService(emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService.class);      
            SFAPI api = mySFAPIService.getSFAPI();
           /// SFAPI api = new SFAPI();
            //Map<String, Object> requestContext = ((BindingProvider) api).getRequestContext();
            //requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
            System.out.println("ServiceName => " + mySFAPIService.getServiceName().toString());
            System.out.println("End Point   => " + mySFAPIService.getServiceName().toString());
            System.out.println(breakLine);
            // Authentication: Login to SFAPI:
            SFCredential credential = new SFCredential();
            // Fake credentials being passed in for this post:   
            credential.setCompanyId("XXX");
            credential.setUsername("XXX");
            credential.setPassword("XXX");
            credential.setDeveloperKey("XXX");
            HTTPConnection httpsConnection = null;       
            OracleSSLCredential _credential = new OracleSSLCredential();      
            _credential.setWallet("\\\\\\C:\\Program Files\\Java\\jdk1.6.0_33\\jre\\lib\\security", "ParkEstes3");
            /*System.setProperty("javax.net.ssl.trustStore","C:\\\\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\keystore");
            System.setProperty("javax.net.ssl.trustStorePassword","changeit");  
            System.out.println(System.getProperty("javax.net.ssl.trustStore"));*/
            // SFParameter: Define a generic SFParameter List.  This is a necessary parameter
            // to invoking calls in SFAPI:      
             /*System.setProperty("javax.net.ssl.keyStore",
             "file:\\\C:\\jdk1.4.1\\jre\\lib\\security\\client.keystore");
             System.setProperty("javax.net.ssl.keyStorePassword","welcome");         */
            /*  System.setProperty("oracle.net.wallet_location",
                          "(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=\\\C:\Users\dparrish\Oracle\WALLETS)))");  // (2)                     */
            File kstore = new File("C:\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\jssecacerts");
            boolean exists = kstore.exists();
            if (!exists) {
                System.out.println("Keystore does not exist");
            else {
                System.out.println("Keystore does exist");
            System.setProperty("javax.net.ssl.trustStore", kstore.getAbsolutePath());
            System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
            //System.setProperty("proxySet", "false");
            //System.setProperty("http.proxyHost", "127.0.0.1");
            //System.setProperty("http.proxyPort", "8080");
            System.out.println(kstore.getAbsolutePath());
            List<SFParameter> lst = new ArrayList<SFParameter>();
            SFParameter param = new SFParameter();
            param.setName("");
            param.setValue("");
            lst.add(param);      
            SFParameter[] sfParam = lst.toArray(new SFParameter[lst.size()]);
            Login login = new Login();
            try {
                login.setCredential(credential);
                System.out.println("1");
                login.setParam(sfParam);
                System.out.println("2");
                LoginResponse loginResponse = new  LoginResponse();
                LoginResult loginResult = new LoginResult();
                try {
                     loginResponse = api.login(login);               
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("3");
                try {               
                     loginResult = loginResponse.getResult();
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("4");
                IsValidSession vs = new IsValidSession();                  
                IsValidSessionResponse isValidSessionResponse = api.isValidSession(vs);
                System.out.println("5");
                if (isValidSessionResponse.isResult()) {
                     System.out.println("Session is valid");
                     System.out.println("Result => " + loginResult.getSessionId());
                     System.out.println(breakLine);              
                    Logout logout = new Logout();
                    LogoutResponse logoutResponse = api.logout(logout);
                    if (logoutResponse.isResult()) {
                         System.out.println("Logout of SFAPI Successful");
                    else {
                        System.out.println("Logout of SFAPI Unsuccessful");
                else {
                     System.out.println("Session is invalid");
                    List<Error> errors = new ArrayList<Error>();
                    for (int i = 0; i < loginResult.getError().length;  i++) {
                        errors.add(loginResult.getError()[i]);
                    for (int i = 0; i < errors.size(); i++) {
                         System.out.println("Error Indice   => " + i);
                         System.out.println("Error Code:    => " + errors.get(i).getErrorCode());
                         System.out.println("Error Message: => " + errors.get(i).getErrorMessage());
                         System.out.println(breakLine);                                                          
                    } // end for loop of SFObject errors
                } // end InvalidSession
            catch (Exception e)
                 System.out.println("Session Credential Exception");
                 System.out.println("Exception => " + e.getMessage());
                 System.out.println(breakLine);                   
        catch (Exception e)
            System.out.println("Parameter List Exception");
            System.out.println("Exception => " + e.getMessage());
            System.out.println(breakLine);
        }   // end runProgram
        // Constructor:
        public SFAPITest()  {
        } // end constructor
        public static void main (String args[]) {
            try
                SFAPITest test = new SFAPITest();        
                test.runProgram();
            catch (Exception e) {
                System.out.println("main exception => " + e.getMessage());
    } // SFAPITest
    Here is the output with trace:
    WARNING: Unable to connect to URL: https://api4.successfactors.com:443/sfapi/v1/soap due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    Session Credential Exception
    Exception => ; nested exception is:
        HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    +---------------------------------------------------------------------------+
    Process exited with exit code 0.

    The other end is throwing back a programming error.
    That might be because you are sending incorrect data and the other end fails to validate it.
    You might be able to guess based on your C# code.  But, since you are using soap one generic solution is available to you.
    - Get an http proxy interceptor like wireshark.
    - Run it while your C# app runs, collect the http requests from that.
    - Run it while running your java code, collect the http requests from that.
    Compare the two.

  • TCP Callback function passing data to teststand

    Hi,
    I'm trying to pass data via a TCP Callback function to teststand using the TCP steptype that I downloaded from Ni.
    When I open a connection, container data is passed to the dll on which it creates a connection, the dll in part creates a TCP Callback function.
    The handle obtained from the connection is then passed back through the container data, and the dll returns back to the sequence editor which will execute the next steps.
    The problem is that when the TCP Callback function gets an TCP_READY event it can not pass data to TestStand because it can not access the container data.
    How can this TCP Callback function pass/alter data to/in Testand?
    Thank you...

    Yes ThiCop,
    That's exactly what I want to establish!
    Here is the example code:
    //Function needed by the TCP functions
    int CVICALLBACK MsgHandler (unsigned handle, int event, int error, void *callbackData)
        char receiveBuf[256] = {0};
        char displayBuf[7] = {0};
        char * tempLookup;
        int  dataSize = sizeof (receiveBuf) - 1;
       switch (event)
          case TCP_CONNECT:
             break;
          case TCP_DISCONNECT:
             break;
          case TCP_DATAREADY:
             if ((dataSize = ClientTCPRead (handle, receiveBuf, dataSize, 1000)) > 0)
                   //  Send data from receiveBuf to a variable in teststand ????
                   //  TS_PropertyGetValString (HandleObject, NULL, "Step.Result.Data", 0, &tempLookup);
                   //  TS_PropertySetValString (HandleObject, NULL, tempLookup, 0, receiveBuf);
             else
                   receiveBuf[dataSize] = '\0';
            break;  
     return 0;
    void __declspec(dllexport) TX_TEST TCPConnectF(tTestData * testData, tTestError * testError)
        int                 error = 0;
        int                 TCPerror;
        double           Port;
        double           Timeout;
        char              *HandleLookup;
        char              *ServerAdd;
        char              *CallbackData;
        ErrMsg           errMsg = {'\0'};
        ERRORINFO   errorInfo;
        tsErrChk (TS_PropertyGetValString (testData->seqContextCVI, &errorInfo, "Step.Result.Handle", 0, &HandleLookup));
        tsErrChk (TS_PropertyGetValNumber (testData->seqContextCVI, &errorInfo, "Step.Result.Port", 0, &Port));
        tsErrChk (TS_PropertyGetValString (testData->seqContextCVI, &errorInfo, "Step.Result.IP", 0, &ServerAdd));
        tsErrChk (TS_PropertyGetValNumber (testData->seqContextCVI, &errorInfo, "Step.Result.Timeout", 0, &Timeout));
        tsErrChk (TS_PropertyGetValString (testData->seqContextCVI, &errorInfo, "Step.Result.Data", 0, &CallbackData));
        TCPerror = ConnectToTCPServer (((unsigned int *) &ConnectionHandle), ((unsigned int) Port), ServerAdd, MsgHandler, 0, Timeout);
        if (TCPerror != 0)
         //Get TCP Error Message
           sprintf(errMsg,"%s",GetTCPErrorString ( TCPerror ));
           error = TCPerror;
           goto Error;
        tsErrChk (TS_PropertySetValNumber (testData->seqContextCVI, &errorInfo, HandleLookup, 0, ((double) ConnectionHandle)));
    Error: 
        // FREE RESOURCES
        CA_FreeMemory(HandleLookup);
        CA_FreeMemory(ServerAdd);
        // If an error occurred, set the error flag to cause a run-time error in TestStand.
        if (error < 0)
            testError->errorFlag = TRUE;
            testError->errorCode = error;
            testData->replaceStringFuncPtr(&testError->errorMessage, errMsg);
        return;   

  • How can assign a PASS/FAIL test to each element of a cluster?

    I would like to pass a cluster from Labview 8.6  to TestStand 4.1.1 and apply a pass/fail test to each boolean element of the cluster.  For elements of the cluster that are string values, I would like to apply a string value test.  For elements of the cluster that are numeric values, I would like to apply numeric value or limit tests.  How can I do this? 

    Hi epsilon-delta,
    The best way to do this would be to create a custom data type from that cluster and store the output of your vi to a local variable. You can then add Pass/Fail Test, Numeric Limit Test and String Value Test steps (using the None adapter) after the Action step to test each element of the cluster.
    Eric B.
    National Instruments

  • In LV, using TS API, how do I specify the VI module for a Pass/Fail step?

    I am writing a LabView VI which will let a user write a TestStand sequence. Each step in the seq is the same type, a Pass/Fail test. I need to specify for each step the LabView VI module location, and an input buffer. I am having difficulty finding out how to specify the module for the step using the TestStand API in LabView. How to do this????

    Hi Drew,
    I think Dennis might have come at this from the wrong angle.
    Have a look at the example that ships with TestStand under
    \Examples\SequenceBuilderTool\LabVIEW
    This might give some clues, but I'd suggest posting this question over to the TestStand discussion Forum as suggested by Dennis.
    There'll be a few more people there who can help a bit more in-depth
    My personal suggestion is to create a custom step type that calls the .vi's and then you can create the steps in a new sequence file using your tool easily. This could be cumbersome for you if you already have a lot of steps setup.
    Better then to create a resource to get the steps out of to clone them by creating a sequence file which is full of your steps. When you have a handl
    e to a cloned step, you can change properties about it in memory, before putting it into the sequence (i.e. change it's name and stuff)
    Otherwise you need to get the type and create a new step of this type.
    If all you're stugling with is the module to call, then for the step you have a handle to, change the
    you can either change the "Step.TS.SData.ViPath" as a string (TestStand set property value String with a reference to the sequence_context) or if you wanted to bring up the specify module dialog, if you have a handle to the step itself, call the method SpecifyModule.
    Hope that helps
    Sacha.
    // it takes almost no time to rate an answer

Maybe you are looking for

  • Ann: Super 2.10: a J2EE tool

    Announcement: Super 2.10 - an EJB/J2EE monitoring/admin tool with SuperEnvironment SuperLogging SuperPeekPoke SuperReport SuperScheduler SuperStress and SuperPatrol, as a schedule job. You can anonymously down load evaluation copy from: http://www.AC

  • Inserting Flash in DW 8.0.2

    I am trying to insert a flash file into my webpage using the update in DW8 that is supposed to automatically convert the tags to work in IE so the user doesn't have to activate the Flash content first. When I go to insert the flash onto my html page

  • My iphoto libary has become unreadable, what should I do?

    When I try to open my IPhoto appears this: Your photo library is either in use by another application or has become unreadable. I already restarted my computer, but still doesn´t open. What whould I do? Or how could I get back my pics?

  • Role creation: how to detect if is ERM or PFCG

    Hello, We are using the ERM module of SAP GRC AC 5.3 SP5. We ar going to create roles through the ERM to the R/3. But is there a way to detect what roles are created by the ERM, and witch ones where created in the PFCG?. I have seen that the ERM uses

  • Applying Oil Paint Filter to Large Scale Images

    I need to apply the effects available from the Oil Paint filter to very large, 80mb images. The filter works exactly as I need it to on small images, but not at large scale. A comment I have heard in a Lynda.com video on the Oil Paint filter mentione