Is there a way where I can update a line item if the value is blank else do nothing ?


Answers

  • Hi,

    If you mean controlling the ability to edit a cell value, you can try DCA.

    As you know, you can also apply read/write permissions by user role, but those would apply to entire module.


    Cheers!

  • kevinsanghoi
    edited February 2023

    No I didn't mean that.

    What I mean is I have a line item where I need to add a formula such that if it satisfies the IF condition then it is updated with the corresponding data ELSE it does nothing.

    Also, is it possible to refer the same line item in the formula

    Eg : Line Item Name - End Date.

    Formula - IF ISBLANK(End Date) AND Condition B THEN Value ELSE do nothing.

  • Referring same line item within its formula would be treated as a circular reference, because of which, you would need to define the formula in a different line item. Otherwise, it would have been a straight forward IF THEN ELSE statement.

  • Defining the formula in a different line item won't serve the purpose because of the 2nd condition that I have in the IF clause. Also, I am not sure how do I "do nothing" in the ELSE condition.

  • The 'do nothing' depends on the format of resulting line item, either BLANK or Zero or FALSE

    If I can see the real case here, probably we can figure out a workaround.

  • If you can see the above screenshot. End Date is a line item and has some values in it. I want to update the values in the non-blank row that would be updated from a line-item in a different module.

    Eg : For 620043 the value needs to be updated with a line-item in a different module but for 620050 I want it to be the same.

  • Sure, in such case, a new line item would be needed here to say: IF ISNOTBLANK(END DATE) then END DATE Else if Condition B (Such as the one that satisfies for Item=620043) then MODULE2.Lineitem else BLANK

  • kevinsanghoi
    edited February 2023

    Thanks Ajay.

    This would work but the data that I will be initially loading is such that a few values are updated every month based on Condition B and that would be Module2.LineItem and the remaining values would be either BLANK (if B is not satisfied) or ENDDATE (If END DATE is not blank).

    For Example in the above case suppose 620043 is now updated with a value 2/28/2023 then in the following month I want to update 620068 with Module2.LineItem (which is updated every month). [The value would be 3/31/2023]. The problem I would face is the END DATE for 620043 would also be updated

  • I might be missing something here, but if 620043 had 2/28/23, then the logic of new lineitem should return 3/31/23 only for 620068 because 620043 already has the end date updated to 2/28/23.

    In other case, you might need to introduce an import action which saves the above mentioned (new) lineitem's results into another new lineitem, before everytime Module2 gets updated. This action should only update values for those items (620068 in your example) where the target lineitem is blank but has got some value (3/31/23) at the source.

  • As you mentioned 620043 has 2/28/23 but that is still driven by a formula.

    If I update Module2.LineItem won't that update the value in 620043 as well ? As you mentioned a new line item would definitely help by introducing an import action but I was trying to update the values using formula.

    One thing I would like to mention is Module2.LineItem is not driven by any dimension so all the values in END DATE line item as a particular moment of time would be the same.

    As you can see Module2.LineItem is basically a single line item module which has the last day of the current month. This is changed every month.


  • Appreciate sharing the details.

    Sorry that I can't think of an approach to achieve this with just a formula. Because only few list items shall get new end date every month, and the remaining ones which have previous end dates shall remain unaffected.

  • @kevinsanghoi Can you elaborate on the broader business or process requirement here? What problem are you actually trying to solve? What are the steps that happen before this, and where will the result be used?