Good catch, Bob. That's embarrassing. I'm actually not using NOT in my conditions, but for some reason, AIM does when it evaluates them.
Regardless, I'm still having a problem with AIM evaluating the conditions properly. I have a sequence of 6 If/Then statements. AIM steadfastly refuses to evaluate one of them (2nd from last). I've tried changing the order and rewording the if statement (including using Mark's suggestion of not using the shortcut shown below) to no avail.
If AssessmentStateSurvey.Factor.AverageRelevance>0 AND AssessmentStateSurvey.Type IN 'Opportunity', 'Threat' Then
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: 0,y: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',size: '+AS_STRING(AssessmentStateSurvey.sc_Priority)+',category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
Else If AssessmentStateSurvey.Factor.AverageRelevance>0 Then
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',y: 0,size: '+AS_STRING(AssessmentStateSurvey.Factor.AverageRelevance)+',category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
Else If AssessmentStateSurvey.Factor.AverageRelevance=0 AND AssessmentStateSurvey.Type IN 'Opportunity', 'Threat' Then
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: 0,y: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',size: 0.05,category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
Else If AssessmentStateSurvey.Factor.AverageRelevance=0 Then
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',y: 0,size: 0.05,category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
Else If AssessmentStateSurvey.Type IN 'Opportunity', 'Threat' Then
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: 0,y: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',size: 3,category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
Else
LoggedInPerson.DataForSWOT=LoggedInPerson.DataForSWOT+'{x: '+AS_STRING(AssessmentStateSurvey.ScoreValue)+',y: 0,size: 3,category: `'+AS_STRING(AssessmentStateSurvey.sc_Factor)+'`,color: `blue`},'
The weird thing is, if I change the instance that is being bypassed from "Threat" to "Weakness", it gets evaluated. If I change it back to "Threat" and switch the if/then so that I check for "IN Strength, Weakness" and have Opportunity/Threat as the catch-all "Else", there is no difference in the result. I checked the FIND statement (shown below) and there is no reason for that instance not to be included.
FIND AssessmentStateSurvey WHERE (AssessmentStateSurvey.AssessmentState=AssessmentState AND AssessmentStateSurvey.Person=LoggedInPerson AND AssessmentStateSurvey.ScoreValue IS DEFINED AND AssessmentStateSurvey.Type IS DEFINED AND AssessmentStateSurvey.Type<>'Not Sure')