using apply and merge on a gridtext column

Hi,
I have a grid where one of the columns is supposed to be calculated based on a certain attribute value. The gridTextColumn is below. It just uses a date field called "fssIssuanceDate_datetime" and is supposed to add 4 days to the date if the market type ="F". Otherwise, add 10 days if the market type ="P". This calculation is supposed to happen in a rule that is applied to the data.
For some reason, it is always adding 10 days meaning it seems to ignore the market type="F" where there are definitely records that are equal to that. Everything looks correct to me. The constants being used are correct such as the 4 and 10 days so I don't know if it's something to do with using the apply in a gridTextColumn.

a!gridTextColumn(
label: "FSS Issued On",
field: "fssIssuanceDate_datetime",
data: if(local!datasubset.totalCount=0, {},
...

OriginalPostID-236198

  Discussion posts and replies are publicly visible

Parents
  • @Gary, when I re-create the rules you've listed, the results are correct for me: http://screencast.com/t/KgbwMAyWM . See below for my (similar) code. Note that specifying the applied rule's attributes is an important best practice (in case the sub-rule's parameters change in the future), though it didn't affect the output in this case.

    Can you please ensure that cons!NOD_MARKET_TYPE_F is not a multiple type? If it is, the IF condition isn't evaluating as-expected. If you're unable to change the constant from multiple to single, you can cast the condition to type 26 (single-value boolean).

    cast(26, ri!marketType_txt = cons!NOD_MARKET_TYPE_F),

    -------parent rule----------
    with(
    local!data: {
    {date: now(), type: "F"},
    {date: now(), type: "test"},
    {date: now(), type: "F"}
    },
    todate(
    apply(
    rule!JML_testRule(
    pssIssue_dt: _,
    marketType_txt: _
    ),
    merge(
    index(
    local!data,
    "date",
    {}
    ),
    index(
    local!data,
    "type",
    {}
    )
    )
    )
    )
    )

    -----rule!JML_testRule definition------
    if(
    rule!APN_isBlank(
    ri!pssIssue_dt
    ),
    "",
    if(
    ri!marketType_txt = "F",
    caladddays(
    ri!pssIssue_dt,
    4
    ),
    caladddays(
    ri!pssIssue_dt,
    10
    )
    )
    )
Reply
  • @Gary, when I re-create the rules you've listed, the results are correct for me: http://screencast.com/t/KgbwMAyWM . See below for my (similar) code. Note that specifying the applied rule's attributes is an important best practice (in case the sub-rule's parameters change in the future), though it didn't affect the output in this case.

    Can you please ensure that cons!NOD_MARKET_TYPE_F is not a multiple type? If it is, the IF condition isn't evaluating as-expected. If you're unable to change the constant from multiple to single, you can cast the condition to type 26 (single-value boolean).

    cast(26, ri!marketType_txt = cons!NOD_MARKET_TYPE_F),

    -------parent rule----------
    with(
    local!data: {
    {date: now(), type: "F"},
    {date: now(), type: "test"},
    {date: now(), type: "F"}
    },
    todate(
    apply(
    rule!JML_testRule(
    pssIssue_dt: _,
    marketType_txt: _
    ),
    merge(
    index(
    local!data,
    "date",
    {}
    ),
    index(
    local!data,
    "type",
    {}
    )
    )
    )
    )
    )

    -----rule!JML_testRule definition------
    if(
    rule!APN_isBlank(
    ri!pssIssue_dt
    ),
    "",
    if(
    ri!marketType_txt = "F",
    caladddays(
    ri!pssIssue_dt,
    4
    ),
    caladddays(
    ri!pssIssue_dt,
    10
    )
    )
    )
Children
No Data