7

एमएससीआरएम 2011 में एक रिपोर्ट निष्पादित करते समय, आपके पास डेटा स्रोतों के लिए दो विकल्प हैं: या तो SQL या Fetch।रिपोर्ट चलाने वाले उपयोगकर्ता की पहचान कैसे प्राप्त करें?

एसएसआरएस निष्पादन लॉग में, जो उपयोगकर्ता रिपोर्ट चलाता है वह हमेशा सेवा खाता होता है।

रिपोर्ट निष्पादन लॉग में, fetch का उपयोग करते समय, एक पैरामीटर CRM_FullName होता है जिसमें रिपोर्ट चलाने वाले उपयोगकर्ता का पूरा नाम होता है।

SQL स्रोत का उपयोग करते समय, कोई CRM_FullName पैरामीटर नहीं है। मैं कैसे जान सकता हूं कि रिपोर्ट किसने चलाई? जानने का एक तरीका होना चाहिए, क्योंकि फ़िल्टर किए गए विचारों को पता है कि मैं कौन हूं।

उत्तर

6

वास्तव में इस जानकारी को खोजने का कोई तरीका नहीं है। जब आप एमएससीआरएम के लिए रिपोर्ट बनाते हैं, तो आप "एमएससीआरएम डेटा कनेक्टर" नामक कनेक्टर का उपयोग करते हैं। यह एसएसआरएस उदाहरण पर ExecutionLogs3 व्यू के AdditionnalInfo कॉलम में देखा जा सकता है। इस कनेक्टर का उपयोग करते समय और एक रिपोर्ट दिखाने की कोशिश करते समय, आपको उपयोगकर्ता नाम और पासवर्ड के लिए संकेत मिलेगा। यही वह जगह है जहां चीजें दिलचस्प होती हैं।

रिपोर्ट वास्तव में उपयोगकर्ता नाम/पासवर्ड की उम्मीद नहीं कर रही है! वास्तव में, यह सिस्टमसुरिड (guid) को उपयोगकर्ता नाम और संगठन के रूप में (guid) पासवर्ड के रूप में प्राप्त करने की अपेक्षा करता है। इसके बाद संगठन डेटाबेस सेटिंग्स के लिए MSCRM_CONFIG डेटाबेस में खोजें। फिर, यह संगठन डेटाबेस में जाता है और बस set context_info SYSTEMUSERID करता है। अंत में, फ़िल्टर किए गए दृश्य '[dbo] नामक फ़ंक्शन को कॉल कर रहे हैं। [Fn_FindUserGuid]' जो context_info को पुनर्प्राप्त करता है। सेवा खाते के रूप में कनेक्ट होने पर फ़िल्टर किए गए विचार ठीक तरह से काम कर रहे हैं।

जैसा कि आपने उम्मीद की हो सकती है, हम उस उपयोगकर्ता को नहीं जानते जो रिपोर्ट चलाता है क्योंकि एसएसआरएस में उपयोगकर्ता नाम और पासवर्ड संकेत कभी भी लॉग इन नहीं होते हैं (सुरक्षा मामलों के लिए, शायद)।

सबसे अच्छा विकल्प जो मैंने लॉग किया है लॉग इन करने के लिए जो वास्तव में एक रिपोर्ट चलाया गया है वास्तव में एक संग्रहीत प्रक्रिया बनाना है जो फ़िल्टर किए गए दृश्यों (या किसी भी तालिका, जैसा है) पर एक चयन कथन करेगा और फिर एक अलग तालिका में लॉग इन करेगा कथन, प्रक्रिया पैरामीटर और context_info()। फिर, एसएसआरएस में मैं उस फ़ंक्शन को सीधे फ़िल्टर किए गए दृश्यों पर जाने के बजाए कॉल करता हूं।

0

क्या उपयोगकर्ता लॉगिन नाम पर्याप्त होगा? यानी आप ="Generated by " & User!UserID जैसे कुछ उपयोग कर सकते हैं?

5

एसक्यूएल स्रोत का उपयोग होने पर उपयोगकर्ता पूर्ण नाम प्राप्त करने के लिए संपादित किया गया उत्तर।

  1. के रूप में एक पैरामीटर, UserID रजिस्टर, डिफ़ॉल्ट मान के साथ

    = उपयोगकर्ता! UserID

  2. अपने डेटासेट में निम्न क्वेरी का उपयोग

    का चयन करें DomainName, FullName

    से SystemUserBase

    WHE आरई (DOMAINNAME = @UserID)

  3. फिर अपनी रिपोर्ट में

    = फील्ड्स! FullName.Value

का उपयोग करें।

सीआरएम में उपयोगकर्ता डेटा SystemUserBase तालिका में संग्रहीत है, और डोमेन नाम कॉलम वास्तविक डोमेन \ उपयोगकर्ता नाम उपयोगकर्ता में संग्रहीत है! रिपोर्ट के उपयोगकर्ता आईडी। यदि आप विचारों का उपयोग करना पसंद करते हैं, तो फ़िल्टर किए गए सिस्टम सिस्टमसिस्टमयूसरबेस तालिका के बजाय देखें।

fetchxml के लिए निम्न प्रयास करें: ऑपरेटर ऑपरेटर = 'eq-userid' वर्तमान उपयोगकर्ता के बराबर होता है।

<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'> 
<entity name='team'> 
<attribute name='name' /> 
<attribute name='businessunitid' /> 
<attribute name='teamid' /> 
<order attribute='name' descending='false' /> 
<link-entity name='teammembership' from='teamid' to='teamid' visible='false' intersect='true'> 
<link-entity name='systemuser' from='systemuserid' to='systemuserid' alias='user'> 
    <attribute name='fullname' /> 
    <attribute name='systemuserid'/> 
     <filter type='and'> 
     <condition attribute='systemuserid' operator='eq-userid' /> 
     </filter> 
</link-entity> 
</link-entity> 
</entity> 
</fetch> 

फिर अपनी रिपोर्ट में आप निम्नलिखित कोड एक अभिव्यक्ति में उन FULLNAME

= प्रथम पाने के लिए उपयोग कर सकते हैं (फील्ड्स! User_fullname.Value, "GetUserData")

जहां डेटासेट को GetUserData

+0

प्रश्न SQL स्रोत का उपयोग करने के बारे में था। जैसा कि सवाल में बताया गया है, मुझे पता है कि FetchXML का उपयोग करते समय यह लॉग है। –

+0

हां आप सही हैं, मैंने एसक्यूएल स्रोत का उपयोग किए जाने पर उपयोगकर्ता नाम लाने के लिए उत्तर संपादित किया है। –

+0

आपका उत्तर (उपयोगकर्ता का उपयोग कर! UserID) रिपोर्ट में उपयोगकर्ता नाम प्रदर्शित करेगा, लेकिन इसे निष्पादन लॉग में संग्रहीत नहीं किया जाएगा। मेरे सवाल ने मूल रूप से निष्पादन लॉग में उस जानकारी को पुनर्प्राप्त करने के लिए कहा था। हालांकि निवेश के समय के लिए धन्यवाद। –

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

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