SF - 复制对象以及下挂的相关列表思路(Deep Clone)

概述:
工作中遇到销售需要复制销售订单以及该订单下的产品的需求。然鹅,Salesforce自带的复制只能复制订单的主体信息。

解决思路:
1. 通过JS Button获取需要复制的订单记录的Id以及带参跳转VF页面进行下一步操作
window.open('/apex/deepCloneOrder?orderId={!Object__c.Id}')
2. 获取当前订单记录的必要信息,并一一赋值给新的订单记录,
3. 插入新的订单记录
4. 新建订单下的产品记录,并关联新建的订单记录
5. 插入新建的产品记录

扩展:
1. 当然在做的过程中,会考虑到操作上的方便,增加了可选择性的赋值订单下产品,
2. 相关列表的全选功能:VF Page里面添加Js代码来实现
```

// VisualForce Code
         <apex:dataTable value="{!opiList}" var="opi" cellspacing="13px" style="width:80%;" >
                <apex:column width="1%" >
                    <apex:facet name="header">
                        <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                    </apex:facet>
                	<apex:inputCheckbox value="{!opi.ifCheck}" id="inputId"/>
                </apex:column>
         </apex:dataTable>
    
// JavaScript Code:

    <script type="text/javascript">
	        function selectAllCheckboxes(obj,receivedInputID){
	            var inputCheckBox = document.getElementsByTagName("input");                  
	            for(var i=0; i<inputCheckBox.length; i++){          
	                if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){                                     
	                    inputCheckBox[i].checked = obj.checked;
	                }
	            }
	        }
     </script>
```
  1. 在后台逻辑里封装了一个class,用来储存可选与否以及产品信息。
    具体的代码可以参见Github上—“带产品复制功能”

Reference:

https://developer.salesforce.com/forums/?id=9060G000000MSmvQAG
http://raviduttsharma.wixsite.com/salesforce/single-post/2016/03/22/Clone-with-Related-list

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值