Wizard not working after Banzai upgrade for related record creation

  • 2
  • Problem
  • Updated 3 years ago
So we're experimenting with Banzai and upgraded in a sandbox as we really want to take advantage of two new features for a project we are launching and moved over some of our pages to the sandbox to test them before upgrading our working environment. Of the two we've tried, neither worked initially but one was fairly easy to fix (seems the parameter handling is less tolerant in Banzai). The second one is a wizard and we've been working on it for almost two days now and can't figure out what is wrong/different in the new release (it works in the old release).

The wizard finds a contact and creates a custom object record (artwork) on the first page. On the second page, it creates a record of another custom object (application) that has lookup fields to the contact and first custom object (artwork). For some reason, the ID of the record created in the first step is not passing to the lookup field on the second page. During preview we see that there is an error (with some tweaking it will tell us that there is an invalid reference id for that object and sometimes no specific error output). If we put the lookup field onto the page, we even see that it is filled out. Very confused...

Below is the condition on the application object for the artwork record.

Also observing that even if we tell the action that is saving the application model changes on step 2 to proceed if there is an error, it isn't creating the new record. HOWEVER, if we add the artwork lookup field to the wizard on step 2, when we get there in the preview it is filled out - but still doesn't work. If I edit the prepopulated (correct name) value in the lookup by typing the name again and waiting for it to pop up in the squid lookup) THEN it works!


Not sure if something changed about how the conditions are handled but would love some advice, pointers or support on getting this working. Anyone got pointers?
Photo of Christopher Johnson

Christopher Johnson

  • 694 Points 500 badge 2x thumb
  • concerned

Posted 3 years ago

  • 2
Photo of Joe Ort

Joe Ort

  • 2,256 Points 2k badge 2x thumb
I'm seeing a similar same thing with cloning multiple opportunities.  Previously, I could create 2 opportunities with 2 sets of line items without a problem.  Now, all of the line items get attached to the first opportunity that was cloned.

<skuidpage unsavedchangeswarning="" showsidebar="true" showheader="true" personalizationmode="server">
   <models>
      <model id="ClonedOpp1" limit="1" query="true" createrowifnonefound="false" sobject="Opportunity" doclone="yes" type="" adapter="">
         <fields>
            <field id="OwnerId"/>
            <field id="Owner.Name"/>
            <field id="StageName"/>
            <field id="New_Renew__c"/>
            <field id="AccountId"/>
            <field id="Account.Name"/>
            <field id="X2_Year_Deals_Test__c"/>
            <field id="Name"/>
            <field id="Service_Term__c"/>
            <field id="CloseDate"/>
            <field id="Contract_End_Date__c"/>
            <field id="Pricebook2Id"/>
            <field id="Pricebook2.Name"/>s
            <field id="Id"/>
            <field id="Description"/>
            <field id="Contact_Type__c"/>
            <field id="New_Logo2__c"/>
            <field id="Type"/>
            <field id="Pricing_Reason_Current__c"/>
            <field id="Pricing_Reason_Previous__c"/>
            <field id="PricingApproved__c"/>
            <field id="PricingApproved__r.Name"/>
         </fields>
         <conditions>
            <condition type="param" value="id" field="Id" operator="=" enclosevalueinquotes="true" novaluebehavior="" state=""/>
         </conditions>
         <actions/>
      </model>
      <model id="RelatedLineItemsClonedOpp1" limit="20" query="true" createrowifnonefound="false" sobject="OpportunityLineItem" doclone="yes" type="">
         <fields>
            <field id="PricebookEntryId"/>
            <field id="PricebookEntry.Name"/>
            <field id="OpportunityId"/>
            <field id="Opportunity.Name"/>
            <field id="Current_Seats__c"/>
            <field id="CV_to_Renew__c"/>
            <field id="Quantity"/>
            <field id="UnitPrice"/>
            <field id="Annual_Total_Price__c"/>
            <field id="Service_Term__c"/>
            <field id="Product_Renewal_Status__c"/>
            <field id="Seat_Holder__c"/>
            <field id="Seat_Holder__r.Name"/>
            <field id="New_Seat_Holder__c"/>
            <field id="New_Seat_Holder__r.Name"/>
         </fields>
         <conditions>
            <condition type="modelmerge" value="" field="OpportunityId" operator="=" model="ClonedOpp1" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
         </conditions>
         <actions/>
      </model>
      <model id="RelatedContactClonedOpp1" limit="20" query="true" createrowifnonefound="false" sobject="OpportunityContactRole" doclone="yes" type="" adapter="">
         <fields>
            <field id="ContactId"/>
            <field id="Contact.Name"/>
            <field id="Role"/>
            <field id="IsPrimary"/>
            <field id="OpportunityId"/>
            <field id="Opportunity.Name"/>
            <field id="Contact.AccountId"/>
            <field id="Contact.Account.Name"/>
         </fields>
         <conditions>
            <condition type="modelmerge" value="" field="OpportunityId" operator="=" mergefield="Id" novaluebehavior="noquery" model="ClonedOpp1" enclosevalueinquotes="true"/>
         </conditions>
         <actions/>
      </model>
      <model id="ClonedOpp2" limit="1" query="true" createrowifnonefound="false" sobject="Opportunity" doclone="yes" type="" adapter="">
         <fields>
            <field id="AccountId"/>
            <field id="Account.Name"/>
            <field id="OwnerId"/>
            <field id="Owner.Name"/>
            <field id="Name"/>
            <field id="StageName"/>
            <field id="New_Renew__c"/>
            <field id="Service_Term__c"/>
            <field id="CloseDate"/>
            <field id="Contract_End_Date__c"/>
            <field id="Id"/>
            <field id="Description"/>
            <field id="Contact_Type__c"/>
            <field id="New_Logo2__c"/>
            <field id="Pricing_Reason_Current__c"/>
            <field id="Pricing_Reason_Previous__c"/>
            <field id="PricingApproved__c"/>
            <field id="PricingApproved__r.Name"/>
         </fields>
         <conditions>
            <condition type="param" value="Id" field="Id" operator="=" enclosevalueinquotes="true" novaluebehavior="" state=""/>
         </conditions>
         <actions/>
      </model>
      <model id="RelatedLineItemsClonedOpp2" limit="20" query="true" createrowifnonefound="false" sobject="OpportunityLineItem" doclone="yes" type="" adapter="">
         <fields>
            <field id="PricebookEntryId"/>
            <field id="PricebookEntry.Name"/>
            <field id="OpportunityId"/>
            <field id="Opportunity.Name"/>
            <field id="Current_Seats__c"/>
            <field id="CV_to_Renew__c"/>
            <field id="Quantity"/>
            <field id="UnitPrice"/>
            <field id="Annual_Total_Price__c"/>
            <field id="Service_Term__c"/>
            <field id="Product_Renewal_Status__c"/>
            <field id="Seat_Holder__c"/>
            <field id="Seat_Holder__r.Name"/>
            <field id="New_Seat_Holder__c"/>
            <field id="New_Seat_Holder__r.Name"/>
         </fields>
         <conditions>
            <condition type="modelmerge" value="" field="OpportunityId" operator="=" model="ClonedOpp2" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
         </conditions>
         <actions/>
      </model>
      <model id="RelatedContactClonedOpp2" limit="20" query="true" createrowifnonefound="false" sobject="OpportunityContactRole" doclone="yes" type="">
         <fields>
            <field id="ContactId"/>
            <field id="Contact.Name"/>
            <field id="Role"/>
            <field id="IsPrimary"/>
            <field id="OpportunityId"/>
            <field id="Opportunity.Name"/>
            <field id="Contact.AccountId"/>
            <field id="Contact.Account.Name"/>
         </fields>
         <conditions>
            <condition type="modelmerge" value="" field="OpportunityId" operator="=" model="ClonedOpp2" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="noquery"/>
         </conditions>
         <actions/>
      </model>
      <model id="OriginalOppContractUsers" limit="20" query="true" createrowifnonefound="false" sobject="Contract_User__c">
         <fields>
            <field id="Contact__c"/>
            <field id="Contact__r.Name"/>
            <field id="Contract__r.Opportunity__c"/>
            <field id="Contract__r.Opportunity__r.Name"/>
            <field id="Name"/>
            <field id="Product_Code__c"/>
         </fields>
         <conditions>
            <condition type="param" value="Id" field="Contract__r.Opportunity__c" operator="=" mergefield="Id" novaluebehavior="deactivate" enclosevalueinquotes="true"/>
         </conditions>
         <actions/>
      </model>
      <model id="ContactstoUpdate" limit="20" query="true" createrowifnonefound="false" sobject="Contact">
         <fields>
            <field id="Name"/>
            <field id="Advisory_Start_Date__c"/>
            <field id="Id"/>
         </fields>
         <conditions logic="1 or 2">
            <condition type="modelmerge" value="" field="Id" operator="in" model="OriginalOppContractUsers" enclosevalueinquotes="true" mergefield="Contact__c" novaluebehavior="deactivate"/>
            <condition type="modelmerge" value="" field="Id" operator="in" model="OriginalOppContractMembers" enclosevalueinquotes="true" mergefield="Contact__c" novaluebehavior="deactivate"/>
         </conditions>
         <actions/>
      </model>
      <model id="OriginalOppContractMembers" limit="" query="true" createrowifnonefound="false" sobject="Contract_Members__c" doclone="" type="">
         <fields>
            <field id="Contract__r.Opportunity__c"/>
            <field id="Contract__r.Opportunity__r.Name"/>
            <field id="Contact__c"/>
            <field id="Contact__r.Name"/>
            <field id="Name"/>
         </fields>
         <conditions>
            <condition type="param" value="Id" field="Contract__r.Opportunity__c" operator="=" enclosevalueinquotes="true" novaluebehavior=""/>
         </conditions>
         <actions/>
      </model>
      <model id="OriginalOpp" limit="1" query="true" createrowifnonefound="false" adapter="" type="" sobject="Opportunity">
         <fields>
            <field id="Account.Name"/>
            <field id="Id"/>
            <field id="Pricing_Reason_Current__c"/>
            <field id="Pricing_Reason_Previous__c"/>
         </fields>
         <conditions>
            <condition type="param" value="Id" field="Id" operator="=" enclosevalueinquotes="true" novaluebehavior=""/>
         </conditions>
         <actions/>
      </model>
   </models>
   <components>
      <pagetitle model="RelatedContactClonedOpp2" uniqueid="sk-3wRrgb-176">
         <maintitle>Create New Renewal</maintitle>
         <subtitle>
            <template>{{Model.label}}</template>
         </subtitle>
         <actions>
            <action type="multi" label="Save Single Renewal" icon="sk-icon-save">
               <actions>
                  <action type="blockUI" message="Saving, please wait..." timeout="8000"/>
                  <action type="updateRow" fieldmodel="RelatedLineItemsClonedOpp1" field="Product_Renewal_Status__c" enclosevalueinquotes="true" value="May Renew"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="New_Renew__c" enclosevalueinquotes="true" value="Renewal"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="Pricing_Reason_Previous__c" enclosevalueinquotes="true" value="{{$Model.OriginalOpp.data.0.Pricing_Reason_Current__c}}"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="Type" enclosevalueinquotes="true" value="Advisory"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="New_Logo2__c" enclosevalueinquotes="true" value="Existing"/>
                  <action type="save" rollbackonanyerror="false">
                     <models>
                        <model>ClonedOpp1</model>
                        <model>RelatedLineItemsClonedOpp1</model>
                        <model>RelatedContactClonedOpp1</model>
                     </models>
                     <onerroractions>
                        <action type="blockUI" message="Validation errors, please update and save again..." timeout="3000"/>
                     </onerroractions>
                  </action>
                  <action type="redirect" window="self" url="/{{$Model.ClonedOpp1.data.0.Id}}"/>
                  <action type="unblockUI"/>
               </actions>
               <renderconditions logictype="or">
                  <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="ClonedOpp1" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="X2_Year_Deals_Test__c" value="false"/>
                  <rendercondition type="blank" operator="=" fieldmodel="ClonedOpp1" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="X2_Year_Deals_Test__c" value="null" enclosevalueinquotes="false"/>
               </renderconditions>
            </action>
            <action type="multi" label="Save Multi-Year Renewal" icon="sk-icon-save">
               <actions>
                  <action type="blockUI" message="Saving, please wait..."/>
                  <action type="updateRow" fieldmodel="RelatedLineItemsClonedOpp2" field="Product_Renewal_Status__c" enclosevalueinquotes="true" value="May Renew"/>
                  <action type="updateRow" fieldmodel="ClonedOpp2" field="New_Renew__c" enclosevalueinquotes="true" value="Renewal"/>
                  <action type="updateRow" fieldmodel="ClonedOpp2" field="Pricing_Reason_Previous__c" enclosevalueinquotes="true" value="{{$Model.OriginalOpp.data.0.Pricing_Reason_Current__c}}"/>
                  <action type="updateRow" fieldmodel="ClonedOpp2" field="Type" enclosevalueinquotes="true" value="Advisory"/>
                  <action type="updateRow" fieldmodel="ClonedOpp2" field="New_Logo2__c" enclosevalueinquotes="true" value="Existing"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="Type" enclosevalueinquotes="true" value="Advisory"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="New_Renew__c" enclosevalueinquotes="true" value="Renewal"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="Pricing_Reason_Previous__c" enclosevalueinquotes="true" value="{{$Model.OriginalOpp.data.0.Pricing_Reason_Current__c}}"/>
                  <action type="updateRow" fieldmodel="ClonedOpp1" field="New_Logo2__c" enclosevalueinquotes="true" value="Existing"/>
                  <action type="updateRow" fieldmodel="RelatedLineItemsClonedOpp1" field="Product_Renewal_Status__c" enclosevalueinquotes="true" value="May Renew"/>
                  <action type="save" rollbackonanyerror="true">
                     <models>
                        <model>ClonedOpp1</model>
                        <model>RelatedLineItemsClonedOpp1</model>
                        <model>RelatedContactClonedOpp1</model>
                        <model>ClonedOpp2</model>
                        <model>RelatedLineItemsClonedOpp2</model>
                        <model>RelatedContactClonedOpp2</model>
                        <model>ContactstoUpdate</model>
                     </models>
                     <onerroractions>
                        <action type="blockUI" message="Validation errors, please update and save again..." timeout="3000"/>
                     </onerroractions>
                  </action>
                  <action type="redirect" window="self" url="/{{$Model.ClonedOpp1.data.0.Id}}"/>
                  <action type="unblockUI"/>
               </actions>
               <renderconditions logictype="and">
                  <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="ClonedOpp1" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="X2_Year_Deals_Test__c" value="true"/>
               </renderconditions>
               <hotkeys/>
            </action>
            <action type="cancel" label="Cancel" window="self" afterCancel="/006"/>
         </actions>
      </pagetitle>
      <basicfieldeditor showheader="true" showsavecancel="false" model="ClonedOpp1" buttonposition="" mode="edit" layout="" uniqueid="sk-3wRrgb-177">
         <columns>
            <column width="50%">
               <sections>
                  <section title="Section A" collapsible="no" showheader="false">
                     <fields>
                        <field id="AccountId" valuehalign="" type="">
                           <label>Account</label>
                        </field>
                        <field id="OwnerId" valuehalign="" type="">
                           <label>Owner</label>
                        </field>
                        <field id="Name" showhelp="true" valuehalign="" type=""/>
                        <field id="StageName"/>
                        <field id="X2_Year_Deals_Test__c"/>
                     </fields>
                  </section>
               </sections>
            </column>
            <column width="50%">
               <sections>
                  <section title="Section B" collapsible="no" showheader="false">
                     <fields>
                        <field id="Contact_Type__c" valuehalign="" type="" required="true" addnoneoption="true"/>
                        <field id="Service_Term__c"/>
                        <field id="CloseDate"/>
                        <field id="Contract_End_Date__c" valuehalign="" type="" required="true"/>
                        <field id="Type" valuehalign="" type="" required="true"/>
                     </fields>
                  </section>
               </sections>
            </column>
         </columns>
         <renderconditions logictype="and"/>
      </basicfieldeditor>
      <basicfieldeditor showheader="true" showsavecancel="false" model="ClonedOpp1" buttonposition="" mode="edit" layout="" uniqueid="sk-3wRrgb-178">
         <columns>
            <column width="100%">
               <sections>
                  <section title="Description" collapsible="no" showheader="false">
                     <fields>
                        <field id="Description"/>
                     </fields>
                  </section>
               </sections>
            </column>
         </columns>
      </basicfieldeditor>
      <panelset type="standard" scroll="" uniqueid="sk-3wRrgb-179">
         <panels>
            <panel>
               <components>
                  <pagetitle model="OriginalOppContractUsers" uniqueid="sk-3wRrgc-180">
                     <maintitle>Related Contract Users</maintitle>
                     <subtitle>
                        <template>{{Model.label}}</template>
                     </subtitle>
                     <actions/>
                  </pagetitle>
                  <skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="false" showexportbuttons="false" pagesize="10" createrecords="false" model="OriginalOppContractUsers" buttonposition="" mode="readonly" emptysearchbehavior="query" uniqueid="sk-3wRrgc-181">
                     <fields>
                        <field type="COMBO" valuehalign="" allowordering="true">
                           <label>Contact Name</label>
                           <template>{{{Contact__r.Name}}}</template>
                        </field>
                        <field id="Product_Code__c" valuehalign="" type="" allowordering="true"/>
                        <field type="COMBO" valuehalign="" allowhtml="true">
                           <label>Ref Nbr</label>
                           <template>{{{Name}}}</template>
                        </field>
                     </fields>
                     <rowactions/>
                     <massactions usefirstitemasdefault="true"/>
                     <views>
                        <view type="standard"/>
                     </views>
                     <searchfields/>
                  </skootable>
                  <skootable showconditions="true" showsavecancel="true" searchmethod="server" searchbox="true" showexportbuttons="false" pagesize="10" createrecords="true" model="ContactstoUpdate" buttonposition="" mode="edit" uniqueid="sk-3wRrgc-182">
                     <fields>
                        <field id="Name" valuehalign="" type="" readonly="true"/>
                        <field id="Advisory_Start_Date__c"/>
                     </fields>
                     <rowactions>
                        <action type="edit"/>
                     </rowactions>
                     <massactions usefirstitemasdefault="true">
                        <action type="massupdate"/>
                     </massactions>
                     <views>
                        <view type="standard"/>
                     </views>
                     <searchfields/>
                     <renderconditions logictype="and"/>
                  </skootable>
               </components>
            </panel>
         </panels>
         <renderconditions logictype="and">
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="OriginalOppContractUsers" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasRows"/>
         </renderconditions>
      </panelset>
      <panelset type="standard" scroll="" uniqueid="sk-3wRrgc-183">
         <panels>
            <panel>
               <components>
                  <pagetitle model="OriginalOppContractUsers" uniqueid="sk-3wRrgc-184">
                     <maintitle>There are no Contract Users associated with the Original Opportunity.</maintitle>
                     <subtitle>
                        <template>{{Model.label}}</template>
                     </subtitle>
                     <actions/>
                     <renderconditions logictype="and"/>
                  </pagetitle>
               </components>
            </panel>
         </panels>
         <renderconditions logictype="and">
            <rendercondition fieldmodel="OriginalOppContractUsers" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasNoRows"/>
         </renderconditions>
      </panelset>
      <template multiple="false" model="ClonedOpp2" uniqueid="sk-3wRrgc-185">
         <contents>&lt;div class="nx-editor-header-title"&gt;Products for Renewal&lt;/div&gt;</contents>
      </template>
      <skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="false" showexportbuttons="false" pagesize="25" createrecords="true" model="RelatedLineItemsClonedOpp1" buttonposition="" mode="edit" emptysearchbehavior="query" uniqueid="sk-3wRrgc-186">
         <fields>
            <field id="PricebookEntryId" valuehalign="" type="" optionsource="" required="true">
               <filters>
                  <filter type="modelmerge" operator="=" field="Pricebook2Id" value="" model="ClonedOpp1" enclosevalueinquotes="true" mergefield="Pricebook2Id" novaluebehavior="deactivate"/>
               </filters>
               <searchfields usesosl="false" soslfields="Name Fields"/>
               <label>Product</label>
            </field>
            <field id="OpportunityId" valuehalign="" type=""/>
            <field id="Current_Seats__c"/>
            <field id="CV_to_Renew__c"/>
            <field id="Quantity"/>
            <field id="UnitPrice"/>
            <field id="Annual_Total_Price__c"/>
            <field id="Service_Term__c"/>
            <field id="Seat_Holder__c"/>
         </fields>
         <rowactions>
            <action type="edit"/>
            <action type="delete"/>
         </rowactions>
         <massactions usefirstitemasdefault="true">
            <action type="massupdate"/>
            <action type="massdelete"/>
         </massactions>
         <views>
            <view type="standard"/>
         </views>
         <searchfields/>
      </skootable>
      <skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="false" showexportbuttons="false" pagesize="25" createrecords="true" model="RelatedContactClonedOpp1" buttonposition="" mode="edit" instantfilters="true" emptysearchbehavior="query" uniqueid="sk-3wRrgc-187">
         <fields>
            <field id="ContactId" valuehalign="" type="" optionsource="" displaytemplate="{{Name}} from {{Account.Name}}" searchtemplate="{{Name}} from {{Account.Name}}">
               <searchfields/>
               <label>Contact</label>
            </field>
            <field id="Contact.Account.Name" valuehalign="" type=""/>
            <field id="Role"/>
            <field id="IsPrimary"/>
            <field id="OpportunityId" valuehalign="" type=""/>
         </fields>
         <rowactions>
            <action type="edit"/>
            <action type="delete"/>
         </rowactions>
         <massactions usefirstitemasdefault="true">
            <action type="massupdate"/>
            <action type="massdelete"/>
         </massactions>
         <views>
            <view type="standard"/>
         </views>
         <searchfields/>
         <renderconditions logictype="and"/>
      </skootable>
      <panelset type="standard" scroll="" uniqueid="sk-3wRrgc-188">
         <panels>
            <panel>
               <components>
                  <pagetitle model="ClonedOpp2" uniqueid="sk-3wRrgc-189">
                     <maintitle>Create Year 2 Renewal</maintitle>
                     <subtitle>
                        <template>{{Model.label}}</template>
                     </subtitle>
                     <actions/>
                  </pagetitle>
                  <basicfieldeditor showheader="true" showsavecancel="false" model="ClonedOpp2" buttonposition="" mode="edit" layout="" uniqueid="sk-3wRrgc-190">
                     <columns>
                        <column width="50%">
                           <sections>
                              <section title="Section A" collapsible="no" showheader="false">
                                 <fields>
                                    <field id="AccountId" valuehalign="" type="">
                                       <label>Account</label>
                                    </field>
                                    <field id="OwnerId" valuehalign="" type="">
                                       <label>Owner</label>
                                    </field>
                                    <field id="Name"/>
                                    <field id="StageName"/>
                                 </fields>
                              </section>
                           </sections>
                        </column>
                        <column width="50%">
                           <sections>
                              <section title="Section B" collapsible="no" showheader="false">
                                 <fields>
                                    <field id="Contact_Type__c"/>
                                    <field id="New_Renew__c" valuehalign="" type=""/>
                                    <field id="Service_Term__c"/>
                                    <field id="CloseDate"/>
                                    <field id="Contract_End_Date__c"/>
                                    <field id="Contact_Type__c"/>
                                 </fields>
                              </section>
                           </sections>
                        </column>
                     </columns>
                  </basicfieldeditor>
                  <basicfieldeditor showheader="true" showsavecancel="false" model="ClonedOpp2" buttonposition="" mode="edit" layout="" uniqueid="sk-3wRrgc-191">
                     <columns>
                        <column width="100%">
                           <sections>
                              <section title="Section A" collapsible="no" showheader="false">
                                 <fields>
                                    <field id="Description" valuehalign="" type=""/>
                                 </fields>
                              </section>
                           </sections>
                        </column>
                     </columns>
                  </basicfieldeditor>
                  <skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="false" showexportbuttons="false" pagesize="10" createrecords="true" model="RelatedLineItemsClonedOpp2" buttonposition="" mode="edit" emptysearchbehavior="query" uniqueid="sk-3wRrgc-192">
                     <fields>
                        <field id="PricebookEntryId" valuehalign="" type="" optionsource="">
                           <filters>
                              <filter type="modelmerge" operator="=" field="Pricebook2Id" value="" model="ClonedOpp1" enclosevalueinquotes="true" mergefield="Pricebook2Id" novaluebehavior="deactivate"/>
                           </filters>
                           <searchfields usesosl="true" soslfields="All Fields"/>
                        </field>
                        <field id="OpportunityId"/>
                        <field id="Current_Seats__c"/>
                        <field id="CV_to_Renew__c"/>
                        <field id="Quantity"/>
                        <field id="UnitPrice"/>
                        <field id="Annual_Total_Price__c"/>
                        <field id="Service_Term__c"/>
                        <field id="Seat_Holder__c"/>
                     </fields>
                     <rowactions>
                        <action type="edit"/>
                        <action type="delete"/>
                     </rowactions>
                     <massactions usefirstitemasdefault="true">
                        <action type="massupdate"/>
                        <action type="massdelete"/>
                     </massactions>
                     <views>
                        <view type="standard"/>
                     </views>
                     <searchfields/>
                  </skootable>
                  <skootable showconditions="true" showsavecancel="false" searchmethod="server" searchbox="false" showexportbuttons="false" pagesize="25" createrecords="true" model="RelatedContactClonedOpp2" buttonposition="" mode="edit" emptysearchbehavior="query" uniqueid="sk-3wRrgc-193">
                     <fields>
                        <field id="ContactId" valuehalign="" type="" optionsource="" displaytemplate="{{Name}} from {{Account.Name}}" searchtemplate="{{Name}} from {{Account.Name}}">
                           <searchfields/>
                        </field>
                        <field id="Role"/>
                        <field id="IsPrimary"/>
                        <field id="OpportunityId"/>
                     </fields>
                     <rowactions>
                        <action type="edit"/>
                        <action type="delete"/>
                     </rowactions>
                     <massactions usefirstitemasdefault="true">
                        <action type="massupdate"/>
                        <action type="massdelete"/>
                     </massactions>
                     <views>
                        <view type="standard"/>
                     </views>
                     <searchfields/>
                  </skootable>
               </components>
            </panel>
         </panels>
         <renderconditions logictype="and">
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="false" fieldmodel="ClonedOpp1" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="X2_Year_Deals_Test__c" value="true"/>
         </renderconditions>
      </panelset>
   </components>
   <resources>
      <labels/>
      <javascript/>
      <css/>
   </resources>
   <styles>
      <styleitem type="background" bgtype="none"/>
   </styles>
</skuidpage>
Photo of Christopher Johnson

Christopher Johnson

  • 694 Points 500 badge 2x thumb
Skuid folk - any news on what needs to change when upgrading a skuid page, esp a wizard?
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
In both cases I think they are going to be local changes to the customizations you have applied. We would like to look at your pages.  Would you be willing to grant us login rights to your orgs and send us the OrgId and the page name? 
Photo of Christopher Johnson

Christopher Johnson

  • 694 Points 500 badge 2x thumb
Rob - that would be great! Access granted.

OrgID: 00DJ0000003Phhu
Page: https://skuid.cs10.visual.force.com/a1UJ0000000lfLoMAI (LOIApplicationNewRecord)

Please let me know if you have any questions.

Cheers,
-c
Photo of Christopher Johnson

Christopher Johnson

  • 694 Points 500 badge 2x thumb
Any word on this page or if supporting wizards creating records and passing the record ID to the next page is no longer supported? If it no longer works, our plan is to sacrifice normalization of the data model and use Salesforce tools to make it work. Need to decide path forward later today so any input is much appreciated.
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
You were next.  Give me a few minutes. 
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
Chris.  We did find a regression in your page. 
If you have two related new record models that are not saved in the same action - what used to happen is that when the first one was saved,  the relationship ID in the second model would be swapped from the temporary ID used on page load to the real salesforce ID from the first model (created as it had been saved).  This is no longer working in Banzai and we will fix it. 

You do have one workaround option.  If you don't save in step 1 of your wizard but just navigate your users to step 2, and in the action at the end of that step - save both models.  Both models will get the salesforce record ids and the relationshiop will be maintained. 

Again thanks for the regression report.  Sorry it took us a few days to get back to you. 
Photo of Christopher Johnson

Christopher Johnson

  • 694 Points 500 badge 2x thumb
Thanks for the workaround, Rob. We are back rolling with this form now. Looking forward to the fixes in the new version soon :). Onward!