cancel
Showing results for 
Search instead for 
Did you mean: 

SAC Script has got no IF (... OR ...) ?

Martin_4
Participant
0 Kudos
226

Hi,

PROBLEM:
-A SAC Script with a logic like IF ( condition OR  condition OR ..condition){}  is needed.
-SAC Script or SAP SAC Script Documentation does not provide
info about the possible syntax for  IF (){} at all ?

SOLUTION:
Is there for  SAP Script another logice than if (...=== ...){} at all possible ?
Anybody has got an ideas if at all and how  to run an IF ( ... OR ...) within SAC  Script ? 

 

PROBLEM IN DETAIL:
-have got a BW Query with 10 Variables  Z_QUERY_VAR_01 ... Z_QUERY_VAR_10.
-want  to run operations only on the variables: Z_QUERY_VAR_01 ..._03.
- a SAC Script with an or OR to build the descired logic  ist set up

var filterName = MANAGREP.getDataSource().getVariables();
for ( var j=0; j < filterName.length; j++){
// OR does not seem to work :
if(    ( filterName[j].id === "Z_QUERY_VAR_01")
   or ( filterName[j].id === "Z_QUERY_VAR_02")
   or ( filterName[j].id === "Z_QUERY_VAR_03")
  ){   console.log("++FOUND IT - DO SOMEOPERATIONS ON IT+++");
   }
else { console.log("+++DID NOT FOUND IT - DO NO OPERATIONS ON IT");
}
 
ERROR CREATED
The scriplet raises a browser console error:

Fehler beim Validieren in "MANAGREP.onResultChanged":
Sie haben ein unerwartetes Zeichen eingegeben. Überprüfen Sie Ihr Skript. (8, 46)
Fehlendes Semikolon (8, 87)
Fehlendes Semikolon (8, 131)
Sie haben ein unerwartetes Zeichen eingegeben. Überprüfen Sie Ihr Skript. (8, 133)
Sie haben ein unerwartetes Zeichen eingegeben. Überprüfen Sie Ihr Skript. (12, 4)
Sie haben ein unerwartetes Zeichen eingegeben. Überprüfen Sie Ihr Skript. (16, 0)
"or" ist eine unbekannte Variable. (8, 45)
"or" ist keine Funktion. (8, 45)
"or" ist eine unbekannte Variable. (8, 89)
"or" ist keine Funktion. (8, 89)

LOGICAL BACKGROUND:
For the 3 variables a further processing with 

var filterValuesFISCYEAR02 = MANAGREP.getDataSource().getVariableValues("ZMO_VAR_FISCYEAR02")[0];
switch(filterValuesFISCYEAR02.type){
case VariableValueType.Single:
var singlefilterValue = cast(Type.SingleVariableValue, filterValuesFISCYEAR02 );

...

is required and this does not accept the multiple call of the same code.

Any idea who to work arround of this ?

ThanXs:
Best Martin 

 

Martin_4
Participant
0 Kudos
Solved, || will do it, but where is the doku for all the other cases ? if( ( filterName[j].id === "Z_QUERY_VAR_01") || ( filterName[j].id === "Z_QUERY_VAR_02") || ( filterName[j].id === "Z_QUERY_VAR_03") )
View Entire Topic
jrodrig4
Explorer
0 Kudos

Hi Martin,

not sure if I understand your question when you say "others"? So, if you want to use if then else with "OR" condition:

if (condition1 || condition2 || condition3) then {

//this code will be executed if any of the previous conditions are true

}

else {

//this code will be applied for the "others" conditions

 

Am I answering your question?

 

Regards,

Javier