How can I pass values from variable used in report to step 0? As of now I can get variable value in other steps than zero.
I've checked table i_t_var_range and it is just empty.
So is it possible to get variable value in step 0?
Related
greenCandleCount=0
if close > open
greenCandleCount := greenCandleCount+1
plot(greenCandleCount)
In the above example, greenCandleCount is a value in the first line. But, close and open are both Series of floats. So in line 3, greenCandleCount seems to get converted into series. Because the line 2 comparison operation seems to produce a Series of booleans. Somehow a single variable lying inside an if block where the expression is a Series, also gets expanded into a Series. So why does this happen?
greenCandleCount doesn't get converted to series. The way you've declared it, it was always a series variable. At the start of the next bar, greenCandleCount would be reset to 0
With the code you've provided, greenCandleCount would always be either 1 or 0 and you'd be able to reference the previous bar's greenCandleCount state the same as any other series variable ie greenCandleCount[1]
If you wish to have a variable that is only initialized once and maintains it's value across bars it must be declared with the var keyword ie
var greenCandleCount = 0
Then your code will count the number of green candles on the entire chart.
https://www.tradingview.com/pine-script-reference/v4/#op_var
I have a url: https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?fromDate=2019-06-01&toDate=2019-06-30 which I will use after to call Xero's API.. I need to change fromDate and toDate dynamically. I thought to use https://api.xero.com/api.xro/2.0/Reports/ProfitAndLoss?fromDate=${start}&toDate=${end}. Then, add 'Data grid' with dates to be replaced in the string. But then, I tried to 'Set variables'/'Get variables' but I keep on getting the error 'Only 1 input row was expected to set the variables and at least 2 were received.' What am I doing wrong?
Current transformation:
Transformation:
Sub-job:
Final transformation:
In the set variable you can only set one row. but if you want to pass multiple rows then I suggest you to use job. In job first transformation use Data Grid and then copy rows to result. then create one more sub job. For setting variable use transformation. Make sure execute at every input row is checked. this should be your subjob Structure
I want to check if a data item is empty or not. I am storing some values from clipboard into a data item and want to check if data item is empty or contains some text.
What I've done is determine the length:
(Len([Cost Centre])>0) AND
(Len([Quantity])>0) AND
(Len([Product Code])>0) AND
(Len([Unit Price])>0)
This is what I have in my decision stage to check if I have different items at the same time. QueueData here is a collection I retrieve from the queue. Here is a screenshot of what I have in the decision properties. It has worked for me so far:
For example, in a decision stage, you do [Item]<>"". the <> is the symbol that means not equal to in blueprism "language", so basically here you are comparing the item to an empty string.
I managed to actually solve this, it may be a little bit of a hack, but since I couldn't find a proper expression for "null", and like some of the answers here state, just the <>0 does not cut the mustard, as you end up in "cannot perform <> operation when the right-hand value is empty".
What I did was create four data items for each field you need to check against: Product code, unit price, quantity and cost centre, I set up the initial values as "0" for each of them.
Then, after "get next item" action, do a multi-calc and set these values with the values from queue items. Now, if there would be an empty item, it will not change the value, but leave it as zero, so there's something you can check against. Then during the end of that loop, you need to remember to again do a multi calc where you set these values as zeros.
As in regards to the checking the exceptions, I used "Choice" so I was able to use more detailed exception reasons (ie. what field was actually empty), and since the process ends up in two different directions (exception / Place order), you need to do another multi calc set values as zeros on the other route also.
I used IsNumber([Data.Quantity])=False. Since the format of the field is Number, comparing it to an empty text ("") does not give the right results in Blue Prism. The IsNumber() function checks if the value is a number. If the field is empty, it gives false.
The second row in the screen capture below (row 4 in my sheet) will sum up the values on each column and divide this sum by something. Those values can always change, and I'm trying to find a way to make a selection from the first non-zero value to the last non-zero value so I could use that range, to create a chart.
I am using elsewere =LOOKUP(2;1/(4:4<>0);4:4), which will return the last non-zero value of the row number 4, but I cannot use MATCH I guess because I might find other values equal to the last non-zero value, "earlier" in the range, and will not return the reference of that specific last non-zero cell.
I have tried =MATCH(0;4:4;1) to try to find the first non-zero cell, but this will return the location of the last zero cell for some reason.
Any ideas? VBA is also an option.
What I have been able to find:
First non-zero cell address: {=ADDRESS(4;MATCH(TRUE;4:4<>0;0))}
Last non-zero cell address: {=ADDRESS(4;MAX((4:4>0)*COLUMN(4:4)))}
I have added the { } to point out the fact that the formulas should be confirmed with CTRL + SHIFT + ENTER because they are Array formulas.
Hope it will help others!
I'm trying to find the Min/Max value of a textbox that has 1 variable and display it to the user, so the variable changes everytime the button is clicked. How would I find the maximum value of something that is constantly changing? The trick is that I can NOT use if statements or case statements. I'm totally at a loss here.
Ok, the things that limit you.
One variable
no if/case statements
The lesson seems to revolve around using Math.Max().
Math.Max(), as we can see on MSDN returns
the larger of two 32-bit signed integers.
The one variable we are going to use needs to exist outside of the button's click event. So, just make it a class variable.
This variable will essentially store the largest value. Math.Max() returns the largest of two values... see what I am getting at here? You can pass the current largest variable as a parameter to Math.Max() without any issues.
Example:
Dim max As Integer
max = Math.Max(1, 100)
'max would be 100
max = Math.Max(max, 10)
'max would be 100
max = Math.Max(max, 1000)
'max would be 1000