我正在尝试编写一个用户事件脚本,如果设置了自定义字段,该脚本将更改销售订单上的实体。我正在尝试从原始客户那里提取默认的送货地址。
我尝试使用context.oldRecord,它在编辑时有效,但是在创建销售订单时,由于oldRecord不存在,这会导致错误。如果我尝试将其作为afterSubmit进行操作,则该实体不会更改。在这里查看其他答案时,我无法确切确定如何在SS 2.0中执行此操作,我们将不胜感激。
function beforeSubmit(context) {
var salesOrder = context.newRecord;
var readerChild = salesOrder.getValue('custbody_cdp_readlink_retailer_child');
if (readerChild){
var custy = record.load({
type: record.Type.CUSTOMER,
id: salesOrder.getValue('entity')
});
var country = custy.getValue('shipcountry');
var addressee = custy.getValue('shipaddressee');
var addr1 = custy.getValue('shipaddr1');
var addr2 = custy.getValue('shipaddr2');
var attention = custy.getValue('shipattention');
var city = custy.getValue('shipcity');
var state = custy.getValue('shipstate');
var zip = custy.getValue('shipzip');
salesOrder.setValue('entity', readerChild);
salesOrder.setValue('shipaddresslist', null);
salesOrder.setValue({
fieldId: 'shipcountry',
value: country
});
salesOrder.setValue({
fieldId: 'shipcity',
value: city
});
salesOrder.setValue({
fieldId: 'shipstate',
value: state
});
salesOrder.setValue({
fieldId: 'shipzip',
value: zip
});
salesOrder.setValue({
fieldId: 'addr1',
value: addr1
});
salesOrder.setValue({
fieldId: 'addr2',
value: addr2
});
salesOrder.setValue({
fieldId: 'addressee',
value: addressee
});
salesOrder.setValue({
fieldId: 'attention',
value: attention
});
答案 0 :(得分:0)
仅当从现有记录而不是新创建的记录触发脚本时,才从context.oldRecord获取记录对象。