Negate Boolean for Step.result.passfail

Ok, I'm looking for why TestStand is doing what I did not expect.
The first passes "Fail" to "!Step.result.PassFail" and  uses a data source of "Step.result.PassFail" this step always Regardless of the value of "Fail"
The second passes "Fail" to "Step.result.PassFail" and uses a data source of "!Step.result.PassFail" and operates as I intended. (Fails if Fail is True).
A brief search yeilded the "Don't do that... negate in code" answers to the old "how to Negate Boolean for Step.result.passfail?" question. But this does not explain the unexpected behavior and I'd really like to understand whats really happening here.
Attached is a simple example that demos the behavior  using dialog express vis
Jeff
Attachments:
Funny.seq ‏24 KB

"!Bool" equals "!bool", as long as you make no case sensitive string compare
Ok, the trick is understanding expressions.
Play a little game with me please. Here are the steps to follow:
1. Open your sequence file Funny.seq. Select step one.
2. In code module tab, select the parameter Error Out value. Current content is "Step.Result.Error". Open the expression editor.
3. In the expression, type "ABC" (including quotation marks). Press "Evaluate". You will see that the expression must either
3. a) point to a container or
3. b) be a container itself.
4. Close the dialogs (cancel expression edit dialog) and open on for the parameter Fail (current value "Step.Result.PassFail"). Open the expression editor.
5. Again, type "ABC" in the expression. Evaluate it again.  You will see that the expression must either
5. a) point to a boolean or
5. b) be a boolean itself.
What do we learn from this steps?
"Step.Result.PassFail" is the lookup string for a boolean variable. So the evaluation results in a pointer to a boolean.
"!Step.Result.PassFail" is the negation of a boolean variable. Evaluation will therefore fetch the value of the lookup string (type: boolean) and then negate it. So the result will be a boolean value, but it does not point to the variable "Step.Result.PassFail" anymore! Since the result is boolean, the expression passes evaluation.
That is the reason why "!Step.Result.PassFail" as parameter will NEVER pass the boolean return value of the VI to the TestStand dataset (aka execution).
Let's proceed:
6. Move to step two. Switch to tab "Data Source". Open the expression editor for the data source expression.
7. Again, type "ABC" in the expression. Evaluate it again.  You will see that the expression must either
7. a) point to a boolean or
7. b) be a boolean itself.
So, catch up: We have the same issue here as step 5! We are not referring to any variable anymore once the expression gets evaluated!
So why does it work as desired nevertheless?
I gave the explanation in my previous post:
Norbert_B wrote:
The reason why your negation in the data source works is the status expression:
Step.DataSource !="Step.Result.PassFail"? Step.Result.PassFail = Evaluate(Step.DataSource):False, Step.Result.PassFail ?"Passed":"Failed"
As you can see, your expression does NOT equal "Step.Result.PassFail". Hence your negated value of this variable is evaluated as stated in the case-select part (Step.Result.PassFail = Evaluate(Step.DataSource)). This evaluation results in your negated value. Next, the Result is set to either "Passed" (evaluated to True) or "Failed (evaluated to False).
You make a STRING compare in the first part of the status expression. YOUR data source DOES NOT MATCH the expected string.
So in the TRUE case, you evaluate your new data source and write the result back to Step.Result.PassFail. So essentially, this step (in your case) simply negates the content of Step.Result.PassFail! Next expression will query the boolean value of Step.Result.PassFail and write either "Passed" or "Failed" into the Step.Result.Status....
hope this is now more clear,
Norbert
EDIT: The only weird thing is, that in the first step during execution TS does not create a warning (or error) because you assign a return value of the module to a "True" (boolean value).
One thing you can also do to increase understanding about the "issue": Simply write "True" or "False" (without quotation marks!) into the expression field "Value" for the boolean return value of the VI.....
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.

Similar Messages

  • Can I invert (Not) the value saved to Step.Result.PassFail ?

    I would like my Pass/Fail test to PASS if my VI returns false.
    to do so, I need to invert the value before saving it to Step.Result.PassFail
    I've tried the following when saving the output of the VI to Step.Result.PassFail, but this does not work
    !Step.Result.PassFail
    Not (Step.Result.PassFail)
    Any advice ?
    Solved!
    Go to Solution.
    Attachments:
    TS.JPG ‏21 KB

    Can you not just invert before you leave the code module or you could invert in the post expression.
    Regards
    Ray Farmer

  • Best practices for logging results from Looped steps

    Hi all
    I would like to start a discussion  to document best practices for logging results (to reports and databases) from Looped Steps 
    As an application example - let's say you are developing a test for one of NI's analog input or output cards and need to measure a voltage across multiple inputs or outputs.
    One way to do that would be to create a sequence that switches the appropriate signals and performs a "Voltage Measurement" test in a loop.    
    What are your techniques for keeping track of the individual measurements so that they can be traced to the individual signal paths that are being measured?
    I have used a variety of techniques such as
    i )creating a custom step type that generates unique identifiers for each iteration of the loop.    This required some customization to the results processing . Also the sequence developer had to include code to ensure that a unique identifier was generated for each iteration
    ii) Adding an input parameter to the test function/vi, passing loop iteration to it and adding this to Additional results parameters to log.   

    I have attached a simple example (LV 2012 and TS 2012) that includes steps inside a loop structure as well as a looped test.
    If you enable both database and report generation, you will see the following:
    1)  The numeric limit test in the for loop always generates the same name in the report and database which makes it difficult to determine the result of a particular iteration
    2) The Max voltage test report includes the paramater as an additional result but the database does not include any differentiating information
    3) The Looped Limit test generates both uniques reports and database entries - you can easily see what the result for each iteration is.   
    As mentioned, I am seeking to start a discussion for how others handle results for steps inside loops.    The only way I have been able to accomplish a result similar to that of the Looped step (unique results and database entry for each iteration of the loop) is to modify the process model results processing.  
    Attachments:
    test.vi ‏27 KB
    Sequence File 2.seq ‏9 KB

  • TestStand 3.5 is not reporting step results for under three steps

    Is there a minimum number of steps that need to return results from a called sequence in order for them to be reported?
    Here a description of my problem:
        My main test code calls a sequence file that contains a varying number of test steps in the Main section of the sequence file.  There are also some Setup and Cleanup steps that do not return results to the main test code.  When my number of test steps is at least three, everything works fine and all test step's results appear in the report.  When my number of test steps is less than three, no results are shown in the report.  In addition, if I record results of a miscellaneous step in the Cleanup section and have two test steps in the Main section (so a total of three steps returning results to the main test code) then the results appear in the report.
        I verified that this was not particular to my piece of code by creating two new sequence files: one with three steps (Test 1, Test 2, Test 3), and one that calls the first.  When at least three steps are present, the results of each step are recorded, but when I erase Test 3, nothing is reported.
    Any help would be appreciated!

    Hi,
    Please find attached an updated report sequence file.
    The problem was because you had skipped the Sequence Name steps. This adds two extra lines to the report. Therefore in the precondition of 'Remove Empty Sequence Results' step, the expression was still deducting these two lines, which longer exist in the report. Hence the reason why you were lossing the step results in the Sequence.
    I have removed the -2 from the expression.
    Hope this explains everything for you.
    Regards
    Ray
    Regards
    Ray Farmer
    Attachments:
    reportgen_txt.seq ‏159 KB

  • Output on LabVIEW the TestStand step results

    Hi,
    I'm building on LabVIEW 8.5 a simple TestStand User Interface.
    My sequences return some values but I don't know how to output them on LabVIEW.
    I was thinking of a table to store the results.
    Any hints on how I'm able to do so?
    I apreciate all the help.
    Thanks in advance.
    Regards,
    Daniel Coelho
    Daniel Coelho
    VISToolkit - http://www.vistoolkit.com - Your Real Virtual Instrument Solution
    Controlar - Electronica Industrial e Sistemas, Lda

    Use the TesStand ExecutionView Manager available in the TestStand tool pallet of LabVIEW and the Execution View. Then when you call our test code (dll, LabVIEW, CVI or what ever) and the return values are returned to the step.Result container based on the type of step. The ExecutionView Manager will automatically display the return value in the Execution View indicator on front panel, if it is a string, a number or a Boolean or etc.
    Look at "C:\Program Files\National Instruments\TestStand 4.1\UserInterfaces\Simple\LabVIEW" as a starting point.
    Notice that there is not any code that reads the return value from the test steps and displays it. The TestStand Engine automatically does it for you. Using the ExecutionView Manager and the Execution View, your LabVIEW user interface will not know when a test step is run or what the return values are without setting up events to trap UI messages from the TestStand Engine.
    If all you need is to see the return value and results this is the way to go.
    Omar 

  • Error in resolution of rule ... for step - Agent determination for failed

    Dear Experts,
    in SRM 7.0 CS, i have come accross the following workflow error:
    I have extended my existing organizational plan for a new site (new CoCo, Plant, Purch Org and Purch Gr). But when i use my test users with this site, i receive a workflow error, that has the following wording in SWI2_DIAG:
    Error handling for work item 000000055347
    No links corresponding to the specified data could be determined
    Error in resolution of rule 'AC40000138' for step '0000000293'
    Agent determination for step '0000000293' failed
    Error during result processing of work item 000000055357
    Error when processing node '0000000293' (ParForEach index 000000)
    Error when creating a component of type 'Step'
    Error when creating a work item
    Error when processing node '0000000293' (ParForEach index 000000)
    Work item 000000055356: Object FLOWITEM method EXECUTE cannot be executed
    Error handling for work item 000000055355
    Can you maybe help me understand, what this error means and how to resolve it?
    Thank you very much!
    P.S. my test users work fine if i drag them to another location in my organizational plan. And also if i take other test user from locations where everything works fine and drag them to this "problem" location, than the same workflow error occures.

    Remove the user from the PPOMA node and add him again.. Sometimes this will solve the issue..
    Thanks!!
    Bharath

  • How can i write to the Step.Result.ReportText of a Sequence callback?

    i need to write to the Step.Result.ReportText and step.Result.Status of a sequence callback using a statement but it jus won't work...how can i do this?....

    I am not sure what you are asking but will give it a shot.
    Only a step has Step.Result.ReportText and Step.Result.Status properties. Therefore you cannot set these properties for a sequence callback. For certain callbacks that are called by a sequence call step, you can set Step.Result.ReportText and Step.Result.Status of the Sequence Call step that called the callback. To do this you can set Runstate.Caller.Step.Result.ReportText and Runstate.Caller.Step.Result.Status within the callback.
    If this does not help you then you must provide information as to which callback you are using and for what step you want to set the Step.Result.ReportText and Step.Result.Status properties

  • Agent determination for step 0000000081 failed error in workflow

    Hello All,
         I am doing employment verification from ESS portal. In the workflow step I have selected RULE to determine the agent. To configure rule, I double click on rule, on next screen selected "Agent determination - responsibilties" to determine the agent. I configured responsibilties with the valid value ranges and everything but the workflow is going into error! I did research and not sure what I am doing wrong. I checked the workflow container in workflow log and all the values that are supposed to pass to rule container are showing up fine.I keep getting the error:
    Agent determination for step 0000000081 failed
    Result og agent resolution does not agree with agents of task.
    Any feedback you could provide would be greatly appreciated.
    Thanks.
    Mithun

    1. In Transaction PFTC, select Task Type = Standard Task and Task = 01000076
    2. display the task details.
    3. Now go to Additional data ->Agents Assignment->Maintain
    4. Select the task here and click Attributes in the application tool bar.
    5. Select the General Task radio button and hit transfer.
    -- You have made your task general.
    To Synchronise the runtime buffer ,simply excute T-Code SWU_OBUF and hit the Start Synchronization button.

  • Issue with Negative Value for Total valuated stock 0VALSTCKQTY.

    Hi Experts,
    we loaded the Cube with datasources 2LIS_03_BX, 2LIS_03_BF and 2LIS_03_UM.
    We mapped the quanity field from 2LIS_03_BF in transformation either into Key figures "Quantity issued from valuated stock" (0ISSVALSTCK) or "Quantity received into valuated stock" (0RECVALSTCK ) of the cube.
    For obtaining the Total Valuated stock, we used the Key figure 0VALSTCKQTY. This key figure is having the Inflow and Out flow values as 0RECVALSTCK and 0ISSVALSTCK. When i tried to check the content of 0VALSTCKQTY, the key figure  0VALSTCKQTY is not present in the infoCube content. I understood that the value for this key figure would be calculated at the time of query execution with the formula
    { Last obtained Valuated stock + (Received Valuated Stock u2013 Issued Valuated Stock ) }.
    The issue is the first records in the query is obtained with negative value for the total valuated stock 0VALSTCKQTY even though the values of Received Valuated Stock  and  Issued Valuated Stock are with Zero.  Could any one please help me on how the first record in the query is with a negative value eventhough the inflow and out flow fields of it are with Zero.
    Many Thanks in advance.
    Jeswanth

    Hi Srini,
    I observed an interresting reason for the stock being with negative in the first record.
    Issue : While executing the BEx report, we have the first record with a negative value.
    Let me explain with an example
    Material  : XYZ
    Plant      : A
    Date of Stock Initialization for data source 2LIS_03_BX -
    >  12th April 2009.
    So on 12 Th April 2009 consider that we have a stock in store with a value of 2640.
    Then we have loaded wih Data source 2LIS_03_BF for all Historic Movement types.
    At the time of query execution we will have the first record with a negative of available stock present on the day of initialization .
    So, as we have initilized the data source 2LIS_03_BX on 12 th April 2009, we have at that time a stock of 2640 in availability.
    Exactly with the same value of 2640, we are having a negative value i.e. -2640.
    and also one more point to be noted is ...as we have initialized the data source 2LIS_03_BX on 12 th APril 2009...it has created a
    opening balance of 2640 on the day of initiailization i.e on 12 th April 2009 in infocube....(which is an extra record...)...so if the previous record of 12,04,2009 is having some value in it..then it will get added to 2640 EA..which will give incorrect stock
    So in the query the records will appear in the below following manner
    Calendar Day     Total stock                                                                Received stock                                          Issued Stock         
    28.12.2005 --->  - 2640 EA
    29.12.2005 --->    2000 EA                                                                       640 EA                                                        0
    10.04.2009 --->      0                                                                                0                                                               2000 EA      
    11.04.2009 -
    >    0                                                                                0                                                                0          
                                 (For making
                                  the earlier record of  initilization to 0  a negative value -2640 EA is created in the first record )
    12.04.2009 (Initializtion day) --->  2640 EA                                                 0                                                                0
    13.04.2009 
    the day before initialization the total stock will be 0 due to the negative effect introduced by the first record and from the day of initialization the records will be the accurate values...  On 12 th april 2009 we can see that a stock of 2640 is brought into the total stock. In fact if there is no negative value i.e. -2640 in the first record then ...the value on 11.04.2009 will be 2640 Ea and this will get summed up with the Opening balance of 2640 EA created by 2LIS_03_BX on the day of intitialization. So on 12 .04. 2009 the total stock will be shown as 5280 EA...so in order to prevent the double value only we observed that the first record is created with the negative of available stock present on the initialization ...to make the record before the day of initialization i.e. 11.04.2009...to be 0...so that from 12 th April 2009 ..will start to see the actual total stock in the query result...
    This is happening only if we use  both the data sources 2LIS_03_BX and 2LIS_03_BF  for loading into BW.....
    If we load alone by 2LIS_03_BF ...then as 2LIS_03_BX is ruled out in the loading...then no negative of available stock will be created ...because there will be bno opening balance created on the day of initialization.....and the opeing balance available will be flowing into consecutive records due to the movement types and 12 th April 2009 will be shown with avaialable total stock of 2640 EA.
    Kindly let us know your opinions on this...
    Thanks.
    regards,
    Jeswanth

  • Step results not appearing in report

    Hello. New to TestStand. I've creted a String Value Test that compares the UUT Serial number using RunState.Root.Locals.UUT.SerialNumber. However, when the report is generated I see no step results. This is only happening with this sequence and not with any of the tutorials. Can anybody point me in the right direction for this. Thanks.
    Solved!
    Go to Solution.

    Here is the sequence file and the LabView vi I'm using.
    Attachments:
    Serial Content.seq ‏7 KB
    String Value Test.vi ‏14 KB

  • How is Parameters.Result used in callback? How is it different from Parameters.Step.Result?

    Hello,
    I have searched TestStand reference manuals, help, and the forums, and I haven't yet found exactly how Parameters.Result should be used in callbacks (if at all).
    I'm trying to figure out how to take a step that normally is not recorded in the result list, and force it to be recorded on the infrequent occasions that it fails. I'm thinking I should be using the Result, but I'm not sure how.  If I set Parameters.Step.RecordResult = True then the step does get set to record results, but that seems to be permanent in the sequence file and AFTER the failure goes unreported.
    Thanks in advance for your expert help!
    - Gizmogal
    Solved!
    Go to Solution.

    In stepping through the SequenceFilePostResultListEntry I finally discerned the difference between Parameters.Step.Result and Parameters.Result, which is only visible at run time:
    Parameters.Result has a TS container which refers to the current step, giving information such as StepGroup, StepName, StepType, among others. Its results-related properties are equivalent to the Parameters.Step.Result properties as far as I can tell.
    Parameters.Step.Result has a much more extensive TS container of type TEInf which appears to be test executive information.
    It seems kind of backwards from what I would expect, but there it is.
    I'm partway through shifting my paradigm - recording all results and then discarding those not of interest. I ended up adding a status string "RecordAlways" to force some steps to be recorded every time, and I toss any that are not equal to that or "Passed", "Failed", "Error", or "Terminated". It's working pretty well so far.
    Thanks again for your help!
    - Gizmogal

  • Customized Message for No result On all Reports

    Hi all,
    I need to change the custom message that we get for No Result.Instead "the specified criteria dint result in any data"..i have put in my different message for all the reports.Any Idea how I get it done.???Any setting ???
    Regards

    Got it guys
    can be done by the below steps:
    The default messages displayed when a report returns no data are in:
    BI_HOME\web\msgdb\<language>\messages\viewme ssages.xml
    You can override these messages in by creating a custommessages.xml file in BI_HOME\web\mesdb\customMessages
    For example, the following changes the default 'No Results' message:
    <?xml version="1.0" encoding="utf-8"?>
    <WebMessageTables>
    <WebMessageTable system="Custom Messages">
    <!-- Change No Results message -->
    <WebMessage name="kmsgEVCNoRowsTitle"><HTML> ;No Data Found!</HTML></WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    You will need to restart your Presentation services to make the changes effective.

  • Error in resolution of rule ... for step - Agent determination failed

    Dear All,
    In SRM 7.0 CS, i am having a problem in the area of work flow. In general, the workflow is working fine, but at times the work item does not get delivered to the approver.
    As per the analysis from SWI2_DIAG, the error is the following for the concerned shopping carts:
    Error handling for work item 000000056146
    No links corresponding to the specified data could be determined
    Error in resolution of rule 'AC40000138' for step '0000000293'
    Agent determination for step '0000000293' failed
    Error during result processing of work item 000000056156
    Error when processing node '0000000293' (ParForEach index 000000)
    Error when creating a component of type 'Step'
    Error when creating a work item
    Error when processing node '0000000293' (ParForEach index 000000)
    Work item 000000056155: Object FLOWITEM method EXECUTE cannot be executed
    Error handling for work item 000000056154
    Error when processing node '0000000293' (ParForEach index 000000)
    Does anyone have an idea on the root cause of this error?
    Thank you very much.

    Hi Masa,
    thank you very much for the reply.
    Yes, rolewise the approver is having the manager role in SRM and also on the portal. But what do you mean by "manager position in PPOSA_BBP"?
    The user is hanging in his node together with the other users. Is there any specific "manager position", where the approvers have to be put in PPOMA? I mean, the other approvers, for whom the workflow is working normal, are hangig in their nodes just like the approver who is not getting the work item.
    Moreover, if i drag the users (the requestor and the approver) into an other node (for another plant of another company code for example), than the work flow is working fine.
    Can there be any other reason for such an error?
    Thank you very much.

  • Logging step results question

    I'm using the sequential process model which includes database logging. I've modified the database schema and I am using my own insert statement. I'm trying to use the step results logging feature. I have 2 questions\issues I need help on:
    First Issue:
    I've created an insert statement and specified it to apply to a step result. When I look at my database results table, it appears that I get an extra entry in addition to my step results. I've disabled logging on all steps in my mainsequence except for 1 step so I know I should only see 1 database entry, however I see 2 entries. Even if I disable logging on all steps, I still get a single database entry when in fact I should see nothing. This is strange.
    Second Issue:
    In the above sql statement I retrieve my step results for each field this way:
    Logging.MainSequenceResults.TS.SequenceCall.ResultList[0].CurrentFilepath
    Logging.MainSequenceResults.TS.SequenceCall.ResultList[0].VoltageFilepath
    Logging.MainSequenceResults.TS.SequenceCall.ResultList[0].VoltageMode
    Logging.MainSequenceResults.TS.SequenceCall.ResultList[0].VoltageValue
    Logging.MainSequenceResults.TS.SequenceCall.ResultList[0].ResistorValue
    However, this is not flexible because if I change the location of the step, then the index will change. Also, if I need to loop on this step it will have the same problem. Is there a way to get this data in a more generic way?
    Michael Aivaliotis
    VI Shots LLC

    Well, I solved my other issue as well.
    I ended up using:
    Logging.StepResult.VariableName
    This seems to do it!
    Michael Aivaliotis
    VI Shots LLC

  • The Step Result element in the DITA tasks

    While creating a task in DITA, the Steps element contains Step > Step Result element. If I insert the Step Result element, the text "Step Result:" is also displayed in my published output. I would like to use the Step Result tag, but I do not want to see the Step Result text being displayed in my output. I have gone through the style guides, edds, dtds, but don't know where the text is coming from. Please help.

    Hi ScottPrentice,
    Thanks very much for the response. I followed your instructions, but no luck so far. Here's what I did:
    1. Opened my task document > View > Reference pages. I could not locate Step Result referenced frame there.
    2. Locate the template for this structured application - The template is Task.template. The template file is blank, so I opened the corresponding edd file: Task.edd
    3. The First Format Rules and Text format Rules for the Step Result element are as follows:
    First Paragraph Rules:
    If Context is Step, use Step.result.begin
    else use substep.result.begin
    Text Format Rules:
    If Context is Step, use paragraph format Step.result.begin
    4. The Step.paragraph.begin paragraph style is being used here. You asked me to change the referenced file to none, but I did not find such syntax where I can make it none.
    The easiest way to determine the right tag to edit is by checking the paragraph definition in the task topic you're editing.
    The paragraph definition is step.result.begin. Could you please help me edit and remove the step result text from it?

Maybe you are looking for

  • Having problem with correct color using Photoshop Elements 9 and Hp photosmart c6150.

    Have been trying to print pictures from PSE9 to HP Photosmart C6150 and the colors are overly red and not the same as the original photo.  I tried to get the ICC profile online without any success.  How do I setup my color management on PSE9 and my C

  • Application Server Data Source settings help needed (10.1.2.0.2)

    Hi, Can someone tell me what maximum values can I set in the following properties under Connection Attributes when I define a DataSource on Application Server. I have almost 25+ web application deployed on my 10.1.2.0.2 server that all uses one data

  • Converting pdf to word generates image

    I'm using Acrobat XI trial on Windows 7, Office 2010 I converted an old pdf (that looks as if it was scanned from the original book) by using Tools-->Export File to--> Microft Word document (I noticed the Edit-->Preferences-->convert from pdf to word

  • Itunes damaged library file

    My itunes has been working reasonably well but I have had many issues with it crashing over the last year or so.  I just got a Sonos device and after having problems with indexing my songs the support guy looked through my itunes folder with me and w

  • Starting a program and remembering its pid.

    I'd like making a package for the abyss web server X1. And since it is a server, I'd like making a /etc/rc.d/'s script. Taking as base one of the existing scripts it will be easy. But I have a problem I'd like starting the server in the background, s