बनाते हैं कभी-कभी सेल्सफोर्स परीक्षणों में आपको उपयोगकर्ता के ऑब्जेक्ट्स को एक विशिष्ट प्रकार के उपयोगकर्ता के रूप में परीक्षण के भाग को चलाने के लिए बनाने की आवश्यकता होती है। उस त्रुटि नहीं हैसेल्सफोर्स परीक्षणों में MIXED_DML_OPERATION त्रुटि से कैसे बचें जो उपयोगकर्ता
MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): User, original object: Account
नोट:
हालांकि Salesforce ग्रीष्मकालीन 08 अद्यतन के बाद से, निम्न त्रुटि के दोनों उपयोगकर्ता वस्तुओं और (जैसे खातों के रूप में) सामान्य वस्तुओं एक ही परीक्षण नेतृत्व में बनाने का प्रयास करता तब होता है जब आप ग्रहण/Force.com आईडीई से परीक्षण चलाते हैं, लेकिन ऐसा तब होता है जब आप सेल्सफोर्स पर तैनाती करते हैं और फिर सेल्सफोर्स के भीतर से परीक्षण चलाते हैं।
इस त्रुटि से बचने के लिए मैं अपने परीक्षण दोबारा कैसे लिखूं?
यहाँ एक परीक्षण है कि त्रुटि का कारण बनता है का एक सरल उदाहरण है:
static testMethod void test_mixed_dmlbug() {
Profile p = [select id from profile where name='(some profile)'];
UserRole r = [Select id from userrole where name='(some role)'];
User u = new User(alias = 'standt', email='[email protected]',
emailencodingkey='UTF-8', lastname='Testing',
languagelocalekey='en_US',
localesidkey='en_US', profileid = p.Id, userroleid = r.Id,
timezonesidkey='America/Los_Angeles',
username='[email protected]');
Account a = new Account(Firstname='Terry', Lastname='Testperson');
insert a;
System.runAs(u) {
a.PersonEmail = '[email protected]';
update a;
}
}
प्रतीक्षा, हम सब पर एक उपयोगकर्ता रिकॉर्ड सम्मिलित करने की आवश्यकता है? मुझे लगता है कि आप बस नए उपयोगकर्ता इंस्टेंस में प्रवेश कर सकते हैं और सीधे system.runAs() –
में उपयोग कर सकते हैं, लेकिन अगर मुझे एक से अधिक/नए/उपयोगकर्ता की आवश्यकता है तो मैं क्या करूँ? मैं कई सिस्टम के साथ खेलने के लिए जा रहा हूं .runAs() यह देखने के लिए कि क्या मैं अपने नए उपयोगकर्ताओं के लिए उपयोगकर्ता आईडी को तैयार कर सकता हूं। – tggagne
यह अभी भी काम करेगा - आपको उपयोगकर्ताओं को सम्मिलित करने की आवश्यकता नहीं है। साथ ही, system.runAs() का उपयोग क्या है यदि आप वर्तमान उपयोगकर्ता को चुनने जा रहे हैं? –