Rendering rules are failing to match data

edited September 2019 in Problems
In v11.2.11 I have rendering rules on Page Titles on a popup. The rules do not match the data in the models being used. The action steps leading up to the popup change and save the data in the model, and the appearance is that the rules process before the save completes.

Comments

  • edited September 2019
    Skuid: Some help please?

    I now have the action steps changing and saving the data TWICE in hopes that the second change/save will wait for the first save to complete. Then, if the rendering rules fire before the second save completes, at least the tested values will be correct. But no. In fact, the values tested by the rules appear to be NULLS, at least if I use a UI-only field as one of the fields changed along the way.

    IS my thinking totally wrong here? Am I expecting sequential processing when there is no "sequence"? Please explain!

  • edited September 2019
    Hey Mike, Sorry you're going through this.

    Do you have any XML that reproduces the problem using standard objects and fields? I'd love to see what you're running into
  • edited September 2019
    The code (with User) shared here might shed some light:
    https://community.skuid.com/skuid/topics/what-would-cause-a-model-to-display-in-a-table-but-not-a-fi...

    As to the rendering rules, here are snippets using my custom objects. Please review the logic and expectations versus the actual results. The section shown uses a field editor to display the values and rules more clearly.

                <actionsequence id="244dffcd-8ae1-4c4c-a53e-3276b6de5670" label="scheduleContactsPopup" type="reusable" event-scope="component" event-name="Network: Disconnected" uniqueid="sk-2o5N-3428">
                    <description>This popup allows the user to schedule Contacts for an EventSlot (Visitation_Slot) selected from the Calendar.
    (The Action Sequence is used primarily to provide quicker access to the popup in the Composer.)
    The steps also test the event's lock status. If unlocked, a lock is placed for the offender and any other 
    locks held by the offender are cleared.</description>
                    <actions>
                        <action type="setCondition" model="OffenderEventSchedules" condition="CCM_Visitation_Slot__c" value="{{$Model.EventSlot.data.0.Id}}"/>
                        <action type="setCondition" model="ContactsNotScheduled" condition="CCM_Visitation_Slot" value="{{$Model.EventSlot.data.0.Id}}"/>
                        <action type="setCondition" model="EventSlot" condition="SelectedEventId" value="{{$Model.EventSlot.data.0.Id}}"/>
                        <action type="requeryModels" model="ContactsNotScheduled" behavior="standard">
                            <models>
                                <model>EventSlot</model>
                                <model>OffenderSchedules</model>
                                <model>OffenderEventSchedules</model>
                                <model>ContactsNotScheduled</model>
                            </models>
                        </action>
                        <action type="branch" whenfinished="continue" model="EventSlot" label="Last lock has expired">
                            <formula>{{Lock_Has_Expired__c}} == true</formula>
                            <iftrueactions>
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="Lock_Time__c" enclosevalueinquotes="false" value="NOW"/>
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="Locked_By_Offender__c" fieldtargetobjects="LOIS_Offender__c" enclosevalueinquotes="true" value="{{$Param.offenderid}}"/>
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="UI_Test" enclosevalueinquotes="false" value="One"/>
                                <action type="save">
                                    <models>
                                        <model>EventSlot</model>
                                    </models>
                                    <onerroractions>
                                        <action type="blockUI" message="Error setting hold. See console. One moment, please..." timeout="3500"/>
                                        <action type="custom" snippet="setLockErrorMessage"/>
                                    </onerroractions>
                                </action>
    <!--
    THIS IS WHERE I DUPLICATE THE CHANGE AND SAVE STEPS
    -->
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="Lock_Time__c" enclosevalueinquotes="false" value="NOW"/>
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="Locked_By_Offender__c" fieldtargetobjects="LOIS_Offender__c" enclosevalueinquotes="true" value="{{$Param.offenderid}}"/>
                                <action type="updateRow" fieldmodel="EventSlot" affectedrows="all" field="UI_Test" enclosevalueinquotes="false" value="Two"/>
                                <action type="save">
                                    <models>
                                        <model>EventSlot</model>
                                    </models>
                                    <onerroractions>
                                        <action type="blockUI" message="Error setting hold. See console. Two moments, please..." timeout="3500"/>
                                    </onerroractions>
                                </action>
    <!--
    Back to the original sequence
    -->
                                <action type="requeryModel" model="LockedSlots" behavior="standard"/>
                            </iftrueactions>
                        </action>
    <!--
    This is one point of curiosity. Does the next 'action' wait for the preceding 'branch' to complete, 
    or does it begin processing as a result of the whenfinished="continue" property on the branch?
    -->
                        <action type="showPopup">
                            <popup title="Schedule Visitors for This Time Slot" width="90%">
                                <components>
                                    <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="EventSlot" uniqueid="sk-3rPh-1828" mode="readonly">
                                        <columns>
                                            <column width="33.3%" uniqueid="sk-3rPh-1824">
                                                <sections>
                                                    <section title="Section A" uniqueid="sk-3rPh-1825" collapsible="no">
                                                        <fields>
                                                            <field uniqueid="sk-3rPt-1855" id="Locked_By_Offender__c"/>
                                                            <field uniqueid="sk-3rPt-1856" id="Locked_By_Offender__r.Id"/>
                                                            <field uniqueid="sk-3rPz-1881" type="COMBO" editmodebehavior="autopopup">
                                                                <label>Rendering Rule-Is This</label>
                                                                <template>Is This Offender</template>
                                                                <renderconditions logictype="and" onhidedatabehavior="keep">
                                                                    <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="EventSlot" sourcetype="fieldvalue" field="UI_IsOffender" fieldtargetobjects="CCM_Visitation_Slot__c" value="true"/>
                                                                </renderconditions>
                                                                <enableconditions logictype="and"/>
                                                            </field>
                                                            <field uniqueid="sk-3rPz-1881" type="COMBO" editmodebehavior="autopopup">
                                                                <label>Rendering Rule-Null</label>
                                                                <template>Is Null</template>
                                                                <renderconditions logictype="and" onhidedatabehavior="keep">
                                                                    <rendercondition type="blank" operator="=" fieldmodel="EventSlot" sourcetype="fieldvalue" field="UI_IsOffender" fieldtargetobjects="CCM_Visitation_Slot__c" value="null" enclosevalueinquotes="false"/>
                                                                </renderconditions>
                                                                <enableconditions logictype="and"/>
                                                            </field>
                                                        </fields>
                                                    </section>
                                                </sections>
                                            </column>
                                            <column width="33.3%" uniqueid="sk-3rPh-1826">
                                                <sections>
                                                    <section title="Section B" uniqueid="sk-3rPh-1827" collapsible="no">
                                                        <fields>
                                                            <field uniqueid="sk-3rPt-1857" id="UI_OffenderId"/>
                                                            <field uniqueid="sk-3rPt-1858" id="UI_IsOffender"/>
                                                            <field uniqueid="sk-3rP--1892" type="COMBO" editmodebehavior="autopopup">
                                                                <label>Rendering Rule-Not This</label>
                                                                <template>Not This Offender</template>
                                                                <renderconditions logictype="and" onhidedatabehavior="keep">
                                                                    <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="EventSlot" sourcetype="fieldvalue" field="UI_IsOffender" fieldtargetobjects="CCM_Visitation_Slot__c" value="false"/>
                                                                </renderconditions>
                                                                <enableconditions logictype="and"/>
                                                            </field>
                                                            <field uniqueid="sk-3rP--1892" type="COMBO" editmodebehavior="autopopup">
                                                                <label>Rendering Rule-Not Null</label>
                                                                <template>Not Null</template>
                                                                <renderconditions logictype="and" onhidedatabehavior="keep">
                                                                    <rendercondition type="blank" operator="!=" fieldmodel="EventSlot" sourcetype="fieldvalue" field="UI_IsOffender" fieldtargetobjects="CCM_Visitation_Slot__c" value="null" enclosevalueinquotes="false"/>
                                                                </renderconditions>
                                                                <enableconditions logictype="and"/>
                                                            </field>
                                                        </fields>
                                                    </section>
                                                </sections>
                                            </column>
                                            <column width="33.3%" uniqueid="sk-3uxm-697">
                                                <sections>
                                                    <section title="New Section" collapsible="no" uniqueid="sk-3uxm-698">
                                                        <fields>
                                                            <field uniqueid="sk-3uxs-711" id="UI_Test"/>
                                                            <field uniqueid="sk-3uxw-721" type="COMBO" editmodebehavior="autopopup">
                                                                <label>RR-One</label>
                                                                <template>One</template>
                                                                <renderconditions logictype="and" onhidedatabehavior="keep">
                                                                    <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="EventSlot" sourcetype="fieldvalue" field="UI_Test" fieldtargetobjects="CCM_Visitation_Slot__c" value="1"/>
                                                                </renderconditions>
                &
  • edited November 2018
    Thanks, Stephen!
Sign In or Register to comment.