binxie
2024-01-22 102afa21c115e8c8b9333a326c3d1af08fe76faf
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
<?xml version="1.0" encoding="UTF-8"?>
<ValidationRule xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Account_Inactive</fullName>
    <active>true</active>
    <description>2018/8/8 CHAN-B394YH 修改后:
不仅在报价,decide和win 进行验证,在新创建业务机会时也进行验证
2018/4/24 错误消息修改前:
请选择有效的客户(科室或合同)
 
2016/6/03 Winの前に常にチェックするように条件式を変更。
2016/4/17 常にチェックするように条件式を変更。
変更前
(Isnew() || Ischanged(AccountId)) &amp;&amp; Not(Isblank(AccountId)) &amp;&amp; OR</description>
    <errorConditionFormula>/* 
用户不是 batch 用户 
并且用户不需要做失单/取消 
并且 SAP_Send_OK__c 为 true 或者false(怀疑是SAP_Send_OK__c 不为null时) 
并且StageName没有更改为取消和失单 
并且客户不为空 
并且在报价、SAP上传(WIN)和创建询价时, 
有以下情况会触发该验证规则: 
1. 客户非经销商协议且无效 
2.客户为经销商协议且无效 
3.客户为经销商协议且有效,但不满足(可以做报价为真&amp;&amp;((ET/SP耗材经销商为真&amp;&amp;备品订单为假)||备品订单为真) 
4.不满足(客户的上级单位的上级单位为病院或客户的上级单位为经销商) 
*/ 
 
 
($User.Batch_User__c = false &amp;&amp; $User.InquiryLostCancel__c = false) &amp;&amp; OR(SAP_Send_OK__c == false, PRIORVALUE(SAP_Send_OK__c) == false) 
&amp;&amp; NOT(ISCHANGED(StageName) &amp;&amp; TEXT(StageName) = &apos;削除&apos;) 
&amp;&amp; NOT(ISCHANGED(StageName) &amp;&amp; TEXT(StageName) = &apos;敗戦&apos;) 
&amp;&amp; 
Not(Isblank(AccountId)) &amp;&amp; AND(OR ( 
/* 无效(非可以报价的协议) ==&gt; 报错 */ 
Account.Is_Active_Formula__c == &quot;无效&quot; &amp;&amp; 
Account.RecordTypeId &lt;&gt; &quot;01210000000QjCN&quot;, 
Account.Is_Active_Formula__c == &quot;无效&quot; &amp;&amp; 
Account.RecordTypeId = &quot;01210000000QjCN&quot; ,Account.RecordTypeId = &quot;01210000000QjCN&quot; &amp;&amp; AND(NOT(AND(Equipment_Order_Flg__c=true, Account.Contract_Quote_Decide_Flag_checkbox__c = true)), NOT(AND(Equipment_Order_Flg__c=false, Account.Contract_Quote_Decide_Flag_checkbox__c = true, Account.ET_SP_Dealer__c = true)),NOT(AND(Equipment_Order_Flg__c=false, Account.Contract_Quote_Decide_Flag_checkbox__c = true, Account.ENG_Dealer__c = true)),NOT(AND(Equipment_Order_Flg__c=false, Account.Contract_Quote_Decide_Flag_checkbox__c = true, Account.SP_DealerContact__c = true))), 
/* 看父记录,不是医院,不是经销商 ==&gt; 报错 */ 
Not( 
OR(Account.Parent.Parent.RecordTypeId = &quot;01210000000QemG&quot;, 
Account.Parent.RecordTypeId = &quot;01210000000Qem1&quot;) 
), OR(ISCHANGED(Quote_Update_Sum__c) , SAP_Send_OK__c ,ISNEW()) 
)</errorConditionFormula>
    <errorDisplayField>AccountId</errorDisplayField>
    <errorMessage>这个经销商协议不可以作为最终用户</errorMessage>
</ValidationRule>