1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SAP_Send_test</fullName>
    <availability>online</availability>
    <description>sap发货测试</description>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>发货(测试)</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)} 
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)} 
//2021-10-22 gwy 版本更改为51.0
var getErrorMessages = function (results) {
    var messages = [], 
    i = 0, 
    len = results.length, 
    r; 
    for (; i &lt; len; i++) { 
        r = results[i]; 
        if (!r.getBoolean(&quot;success&quot;)) { 
            messages = messages.concat(getMessagesOfAResult(r)); 
        }
    }
    return messages; 
}; 
var getMessagesOfAResult = function (res) {
    var messages = [], 
    errors = res.getArray(&quot;errors&quot;), 
    i = 0, 
    len = errors.length, 
    e;
    for (; i &lt; len; i++) { 
        e = errors[i]; 
        messages.push(e.message + &quot; &quot; + getErrorFields(e)); 
    } 
    return messages; 
}; 
var getErrorFields = function (error) { 
    var fields = error.getArray(&apos;fields&apos;); 
    if (fields.length &gt; 0) { 
        return &quot;[&quot; + fields.join(&quot;,&quot;) + &quot;]&quot; 
    } else { 
        return &quot;&quot;; 
    }
};
var tringcodestr = function (){
    var result = &quot;&quot;;
    for(var i=0;i&lt;5;i++){
       var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字
       //大写字母&apos;A&apos;的ASCII是65,A~Z的ASCII码就是65 + 0~25;然后调用
       //String.fromCharCode()传入ASCII值返回相应的字符并push进数组里
       result = result + String.fromCharCode(65+ranNum);
       //result.push(String.fromCharCode(65+ranNum)); 
    }
    //result = &quot;250&quot; + result;
    return result;
}
 
var tringcode = function (){
    var result = &quot;&quot;;
    for(var i=0;i&lt;5;i++){
       var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字
       //大写字母&apos;A&apos;的ASCII是65,A~Z的ASCII码就是65 + 0~25;然后调用
       //String.fromCharCode()传入ASCII值返回相应的字符并push进数组里
       result = result + String.fromCharCode(65+ranNum);
       //result.push(String.fromCharCode(65+ranNum)); 
    }
    result = &quot;250&quot; + result;
    return result;
}
 
var foo = function() { 
 
    if (&apos;{!Consumable_order__c.Order_status__c}&apos; == &apos;已提交&apos;) { 
        alert(&quot;请先审批订单&quot;); 
        return; 
    }else if (&apos;{!Consumable_order__c.Order_status__c}&apos; == &apos;草案中&apos;) {
        alert(&quot;请先批准订单&quot;);
        return; 
    };
    var Owner = &quot;{!Consumable_order__c.OwnerId}&quot;;
    var det = new sforce.SObject(&quot;Consumable_order__c&quot;); 
    det.Id = &quot;{!Consumable_order__c.Id}&quot;; 
    det.recordTypeid = &quot;{!$Label.RT_ConOrder_Delivery}&quot;;
    var resultdet = sforce.connection.update([det]); 
 
    var OrdermainId = &quot;{!Consumable_order__c.Id}&quot;; 
    var sql = &quot;select Id,Name,CreatedByid,Consumable_order__r.id,Consumable_order__c,Consumable_order__r.recordtypeid,Consumable_product__c,Consumable_count__c,Asset_Model_No__c,Intra_Trade_List_RMB__c from Consumable_Orderdetails__c where Consumable_order__r.id =&apos;&quot; + OrdermainId + &quot;&apos;&quot;; 
    var sqlResult = sforce.connection.query(sql); 
    var records = sqlResult.getArray(&quot;records&quot;); 
 
    if(records.length&gt;0) { 
        for (var i = 0; i &lt; records.length; i++) {
            var esd = records[i];
            var countNum = esd[&quot;Consumable_count__c&quot;]; 
            var OrderNnme = esd[&quot;Name&quot;]; 
            var OrderId = esd[&quot;Consumable_order__c&quot;];
            var ForeignTrade = esd[&quot;Intra_Trade_List_RMB__c&quot;]; 
            var AssetModel = esd[&quot;Asset_Model_No__c&quot;];
            var orderPro = esd[&quot;Consumable_product__c&quot;]; 
            for (var j = 1; j &lt;=countNum; j++) {
                var rac = new sforce.SObject(&quot;Consumable_order_details2__c&quot;);
                if(j.toString().length == 1){
                   rac.Name = OrderNnme + &apos;00&apos;+ j; 
                }else if (j.toString().length == 2){
                   rac.Name = OrderNnme + &apos;0&apos;+ j;
                }else{rac.Name = OrderNnme + j;}
                rac.Consumable_order_minor__c = OrderId; 
                rac.RecordTypeId = &quot;{!$Label.RT_ConOrderDetail2_Delivery}&quot;;
                rac.Asset_Model_No__c = AssetModel; 
                rac.Intra_Trade_List_RMB__c = ForeignTrade; 
                var NewDate=new Date(); 
                NewDate.setFullYear(NewDate.getFullYear()+5); 
                NewDate.setDate(NewDate.getDate()-1);
                rac.Deliver_date__c = new Date(); 
                rac.Sterilization_limit__c = NewDate; 
                rac.Guarantee_period_for_products__c = new Date();
                rac.Consumable_product__c=orderPro; 
                var rtingC = tringcodestr();
                rac.TracingCode__c = rtingC.toString();
                rac.SerialLotNo__c = rtingC.toString();
                rac.Bar_Code__c = (new Date()).valueOf() + &quot;250&quot; + rtingC.toString(); 
                rac.OwnerId = Owner; 
                var result = sforce.connection.create([rac]); 
                messages = getErrorMessages(result); 
                if (messages.length &gt; 0) { 
                    alert(messages.join(&quot;\n&quot;));
                }
            }
        }
        window.location.reload(); 
    }
}; 
 
foo();</url>
</WebLink>