2012-07-27 19 views
9

में एक प्रकाशित कार्रवाई शुरू करने वाले उपयोगकर्ता को कैसे प्राप्त करें एसडीएल ट्रिडियन 2011 में मॉड्यूलर पेज टेम्पलेट द्वारा उपयोग किए गए सी # टीबीबी से, क्या प्रकाशन ऑब्जेक्ट शुरू करने वाले उपयोगकर्ता ऑब्जेक्ट तक पहुंचना संभव है?एसडीएल ट्रिडियन सी # टीबीबी

TOM.NET 6 प्रोग्रामर्स संदर्भ को देखते हुए गाइड, ऐसा लगता है कि संपत्ति की आवश्यकता PublicationTransaction वस्तु की Creator संपत्ति है, लेकिन मैं एक सी # TBB से उपयोग करने के लिए है कि एक तरह से नहीं मिल रहा है, मैं engine या package ऑब्जेक्ट्स से वर्तमान PublicationTransaction प्राप्त करने का एक स्पष्ट तरीका न देखें, और मुझे PublishEngine ऑब्जेक्ट का उपयोग करके PublicationTransaction ऑब्जेक्ट्स की सूची प्राप्त करने का एक तरीका मिल सकता है।

किसी भी सलाह की सराहना की जाएगी।

उत्तर

10

मिहाई Cadariu से इन दो ब्लॉग पोस्ट पर एक नज़र डालें:

उन दो के साथ आप में सक्षम होना चाहिए आपको जो चाहिए वह ढूंढें।

मूल कार्य आप अपने TBB में आवश्यकता यह है:

public PublishTransaction GetPublishTransaction(Engine engine) 
{ 
    String binaryPath = engine.PublishingContext.PublishInstruction. 
             RenderInstruction.BinaryStoragePath; 
    Regex tcmRegex = new Regex(@"tcm_\d+-\d+-66560"); 
    Match match = tcmRegex.Match(binaryPath); 

    if (match.Success) 
    { 
     String transactionId = match.Value.Replace('_', ':'); 
     TcmUri transactionUri = new TcmUri(transactionId); 
     return new PublishTransaction(transactionUri, engine.GetSession()); 
    } 

    return null; 
} 

यह भी ध्यान देने योग्य बात है कि संपत्ति engine.PublishingContext.PublishInstruction.RenderInstruction.BinaryStoragePath कुछ अलग वापस आ जाएगी जब PreviewMode में या टेम्प्लेट निर्माता से सांकेतिक शब्दों में बदलनेवाला प्रतिपादन जब की तुलना के लायक हो सकता है कोड प्रकाशक में चल रहा है। BinaryStoragePath में PublishTransaction URI को देखने के लिए, आपको वास्तव में एक PublishTransaction ऑब्जेक्ट मौजूद होने के लिए TcmPublisher.exe प्रक्रिया में अपने विजुअल स्टूडियो टीबीबी डीबग प्रोजेक्ट को संलग्न करना होगा, अन्यथा बाइनरी स्टोरेजपैथ में ../preview जैसे सामान्य पथ होंगे।

+1

यह बढ़िया है कि मैंने मिहाई और क्रिस से कोड जोड़ा, और अब मेरे पास PublishTransaction है - बहुत बहुत धन्यवाद – GourmetCMS

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