Jump to content

Misleading (I think) warning message against a node


samwoo

Recommended Posts

Good morning,

Nothing major, but I have been setting up my BPMs for the SLA functionality and I have just noticed something misleading in my "Generic Incidents Requests BPM" and "Generic Service Requests BPM" where I store information in the Service's Custom Fields for any Services that uses these Generic BPMs to pull the data out of these fields.

I have two nodes... one near the start and one further down the stage that captures the Request Details (Get Request Information -> Request Details).  Both nodes uses the same Result Reference, but are called at different times... this is to overwrite the old with the new (if required).

With this node, I then update the Custom Field 26 against a request... effectively being used as a Counter.  It starts off at 0, then if someone continuously completes a Human Task without carrying the action required to move the request on, the counter will go up.  This is really for providing a visual indicator that they are repeating the same action multiple times.

This all works... perfectly.  I'm impressed... but the Update Request Details node is providing a misleading warning (I think):

image.png.b91f51c59246a24389bf4a05fd041166.png

In case you are curious, here is the part of the BPM that utilizes this (we don't allow users to set the Request Category):

image.thumb.png.20571a64f1623e49d150e36ba3568ec9.png

Is anyone in agreement that this warning should not really be appearing at all, despite the process working as intended?

(What would be nice is if the nodes that carry out any update actions, can also store the previous value and new values in their results, which means I can do away with having multiple Get Request Details nodes)

Thanks,

Samuel

Link to comment
Share on other sites

Thanks @Steve Giller

Is this because of the loop it's not able to identify it (even though it works)? The result reference is defined in the "Get Request Details" node further up the BPM, then repeated in this loop as you can see by the highlighted node and it's Properties.

image.png.482b1adb6613e5b6c7275840a79f7f54.pngimage.png.737bfdf0127a9773664154d86bc57dfd.png

Here is the output variable from the Get Request Details node:

image.png.9c04ea051dfd40aa1490b79cac160795.png

 

Or is it because I've got the +1 at the end of it? (to increment the value by 1) that it's not seeing it as a Context Variable? (Pardon my ignorance if this is completely obvious)

Is there a better way to do what I'm doing?

Thanks,

Samuel

Link to comment
Share on other sites

That's great Steve - thanks! Now the more I think about what you said, the more it makes sense.

I don't suppose there are any utilities in the works to enable addition/subtraction and other formulas to occur within Hornbill Automation?

Cheers,

Samuel

Link to comment
Share on other sites

1 hour ago, Steve Giller said:

On the other hand, that does somewhat go against the principle of a codeless environment.

I completely agree if we had to use formulas and calculations within the variables - so I thought it might be good to have been a node which we can input 2or more integer values then apply the calculation we want between the numbers, like we can do with other utilities in Hornbill Automation - still being codeless but offering advanced functionality.

If there isn't anything currently on the pipeline, please could this be added to the list to be discussed internally?

I envisage something looking like this:
image.png.0582eb45ed4ce1d549f3de3653fe1611.png

The number of integer and calculations could go as high as 10, and even if say Integer 4 is empty, Integer 5 might not be, so it should make an effort to calculate everything.  This would be good if someone is creating procurement request and everything needs to be totalled up at the end. In my case, I'd be using this as a counter for a loop, so I just need to use Integer 1 and 2 plus the Calculation in the middle.

Thanks,

Samuel

Link to comment
Share on other sites

  • 8 months later...

Hi @Martyn Houghton,

I had set it up, but it was never used for some reason. 

The first thing you would need to do is set a custom "number" field to 0 (ie. custom_26) - you can do this within the ICF in a hidden field, or via the Business Process.

Then whenever you need to increment the counter increase or decrease, you will need to do the following in the Business Process:

  1. Put down a "Get Request Details" node somewhere near the beginning of the Business Process at each stage where the counter is utilized (but after custom number field is set to 0) and make sure to provide a result reference (ie. getReqInformation) in the node
     
  2. At the point you need to increment or decrement the counter in a loop or through the Business Process, first place an "Update Request Details" node
     
    1. You need to get the result variable of the Custom Field (ie. custom_26) from the first "Get Request Details" getReqInformation node 
       
    2. Update the same Custom field (ie. custom_26) in the "Update Request Details" node using the following:
      &[global["flowcoderefs"]["getReqInformation"]["customField26"] + 1]

      Note the plus/minus and the number needs to be before the last bracket.
       
  3. Straight after this increment/decrement, add another "Get Request Details" node that shares the same result reference (getReqInformation) as the first one, so it overwrites with the latest information, then move on to the part that restarts the loop again based on the condition (such as expiry datetime).

Please note that any Get Request Information node that shares the same result reference, will overwrite the results with any other changes made to the request details as well, not just the Custom Field, so if you might require the original information, then it may be better to have 2 x Get Request Information nodes at the top with different result references, maybe one called originalReqInformation and the other called getCurrentReqInformation and reuse the latter one in your counter increments/decrements so you can keep the original request details intact.

I hope this helps (fingers crossed). Sorry - I don't have any screenshots - I can't find where I included this... I may have overwritten it.... but it did work in my initial testing.

  • Thanks 1
Link to comment
Share on other sites

3 minutes ago, Martyn Houghton said:

@samwoo

Thanks, that works when you insert the operation within the last square bracket. You just get a warning on valididation of the workflow as it take the value as a literal variable reference.

Cheers

Martyn

image.png.1db668f6298d6e3deeb80af15bd00af8.png

That's what I had too, hence the reason I requested for a calculation node that will prevent this warning message - but I hadn't received any response to my request, but hopefully there is now visibility with this thread being updated.

  • Like 1
Link to comment
Share on other sites

  • 11 months later...

Hi folks,

+1 for a Utility to do this, if it isn't already in the works now. 

I've got a similar need - a repeated BPM loop that needs to trigger if a request is taken off-hold more than X times - and also figured that a loop counter would be the best way to do so. 

The resulting loop looks like this: 

image.png.2eb84c312ce7169206bd4cea22ddcedf.png

I've tried to use the method that @samwoo suggested, i.e. using &[global["flowcoderefs"]["getReqInformation"]["customField30"]+1]

However, the behaviour I get is completely different - it simply appends a 1 to the string, so that a loop progresses as 0, 101, 011, etc. 

Do either of you still have these loops implemented and working and if so, any idea what I'm doing wrong?

Thanks!

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...