2012-07-10 12 views
5

के लिए घटक लौटाता है, मैं एक बैकएंड में एक घटक शून्य (उदा। ट्रिपियन में नहीं मिला) की जांच करने का तरीका जानने का प्रयास कर रहा हूं। मैं यह नहीं देखता कि त्रुटि को पकड़ने के अलावा, इसे कैसे जांचें।सत्र। ट्रिडियन 2011 में गेटऑब्जेक्ट गैर-मौजूदा आइटम

Component comp = (Component)session.GetObject(base.ComponentUri); 

if (component != null) 
{ 
    bool isCheckedOut = component.IsCheckedOut; 
} 
else 
{ 
    // how do I get in here! 
} 

मैं 100% यकीन है कि uri सही है कर रहा हूँ ('टीसीएम: 113-438,134') कि यूआरआई के साथ Tridion में कोई आइटम है और 100% यकीन है कि वहाँ। कोड ऊपर component.IsCheckedOut में एक त्रुटि फेंक देगा:

The item tcm:113-438134-16 does not exist. 

मैं एक Tridion आइटम के अस्तित्व जांच कैसे करूं? मैं अंत में डाली है, जो ज्यादा मदद नहीं की रखने की कोशिश की है:

Component comp = session.GetObject(base.ComponentUri) as Component; 

और मैं सभी को एक कास्टिंग लेकिन एक IdentifiableObject है, जो भी कोई फर्क नहीं था का उपयोग नहीं की कोशिश की है। कोई भी जानता है कि यह कैसे करें?

उत्तर

10

यह ट्रिडियन की आलसी लोडिंग की वजह से है - अगर यूआरआई मान्य लगता है तो यह कभी भी एक शून्य वस्तु वापस नहीं करेगा। ऑब्जेक्ट मौजूद है या नहीं, यह जांचने के लिए आप session.IsExistingObject(TcmUriOrWebdavUrl) का उपयोग कर सकते हैं।

और ...

मुझे यकीन है कि आप इस उम्मीद कर रहे हैं हूँ ...

एक कस्टम बैकएंड में

आप प्रक्रियाओं के लिए TOM.NET एपीआई का उपयोग नहीं कर सकते टेम्पलेट्स और इवेंट सिस्टम के अलावा। कृपया इसके बजाय कोर सेवा API का उपयोग करें।

+0

असल में, मुझे उम्मीद नहीं थी कि ** **) **। क्या ऐसा इसलिए है क्योंकि TOM.NET अभी भी 'केवल पढ़ने के लिए' है? –

+0

आपका सुझाव काम करता है, वैसे, tnx! –

+4

नहीं, ऐसा इसलिए है क्योंकि TOM.NET लोड करना वास्तव में ट्रिपियन में एक इंटरफ़ेस से बहुत अधिक लोड करता है - यह आपकी प्रक्रिया में ट्रिडियन लोड करता है। यह सब इसके इवेंट लोडर, और कतार प्रबंधन, और डेटाबेस कनेक्शन पूलिंग, और बहु-थ्रेडिंग, और COM इंस्टेंस, और टेम्पलेटिंग इंजन इत्यादि के साथ। यहां आधिकारिक अस्पष्टता: http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_19AF6C2427DF4781A866981FA8D62192 –

संबंधित मुद्दे