वर्ग पुरालेख: BDC

त्वरित टिप: BDC ADF संस्करण संख्या आपके दोस्त हैं

यदि आप हाथ-ADF कोडिंग तो रहे हैं फ़ाइलें और कोड/आयात/परीक्षण चक्रों की एक बहुत कुछ कर रही, अपने जीवन को आसान बनाने के लिए संस्करण संख्या का उपयोग करें.

मैं यह मानता हूँ नफरत, लेकिन इस सप्ताह तक, मैं हमेशा ADF हटा रहा था और इसे पुन: आयात करना. यह मेरा व्यवसाय डेटा स्तंभ को तोड़ने होता है और मुझे उन्हें पुनः वायर. सभी अनावश्यक.

यह फ़ाइल "एक बार तुम इसे देख यह स्पष्ट है के तहत".

उदाहरण:

<LobSystem
xmlns:xsi="http://www.w3.org/ 2001/xml स्कीमा-उदाहरण" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" प्रकार="WebService" संस्करण="1.2.0.0" नाम="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

संस्करण और फिर आयात और मौजूदा व्यावसायिक डेटा स्तंभ का उपयोग करता है कि अद्यतन संस्करण स्वचालित रूप से कोई अतिरिक्त विन्यास की आवश्यकता के साथ बदलें.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

Technorati टैग:

समाधान: परिणामों के केवल एक स्तंभ BDC पिकर दिखाता है

प्रदान करने पर मेरे चल रहे प्रयास में एक BDC का उपयोग कर अधिक उपयोगी लुकअप स्तंभ, मैं BDC पिकर के साथ एक दीवार मारा. अगर आप नहीं देख, BDC पिकर एक लोग पिकर करने के समान है, सिवाय इसके कि यह कॉलम "व्यवसाय डेटा" प्रकार के साथ काम करता है.

तुम एक व्यावसायिक डेटा स्तंभ के रूप में दिखाया गया की खुली किताब आइकन पर क्लिक करके पिकर का उपयोग:

छवि

उपरोक्त छवि एक व्यवसाय डेटा स्तंभ "मास्टर दस्तावेज़ Id" कहा जाता है दिखाता है. उस स्तंभ से जुड़ा है, BDC के जरिए, एक वेब सेवा के लिए. सूचना के दो स्तंभों को वेब सेवा देता है: दस्तावेज़ ID और शीर्षक. प्रदान करने के लिए व्यापार के प्रयोजन यहाँ है एक "इस दस्तावेज़ पर आधारित है" समारोह. एक "मास्टर उपयोगकर्ताओं का चयन करें" दस्तावेज़ और जब वे सहेजें, एक घटना रिसीवर से संदर्भित मास्टर मेटा डेटा फ़ील्ड् स प्रतिलिपियाँ बनाता है.

डिफ़ॉल्ट रूप से, BDC पिकर इस तरह लग रहा है, जब मैं जिसका आईडी के लिए एक दस्तावेज़ खोज "38" =:

clip_image002

कि उपयोगी है, लेकिन काफी नहीं अच्छा. लोगों को नहीं लगता कि IDs के संदर्भ में, उन्हें लगता है कि शीर्षक और/या अन्य मेटा डेटा के संदर्भ में. कुदाल अन्य स्तंभों पर खोज करने के लिए आपको अनुमति देता है (जैसे. शीर्षक) लेकिन पाया यह खिताब की वास्तविक सूची दिखाएँ नहीं होगा, बस अपनी DocId के रूप में यहाँ दिखाया गया है:

clip_image002[1]

(स्क्रीन शॉट इतना महान नहीं है क्योंकि मैं किसी भी मान्य परिणाम देता है एक खोज लेने नहीं था, लेकिन आप देख सकते हैं कि अगर यह कुछ परिणाम पाया था, यह केवल DocId का दिखाया गया है होता, नहीं खिताब).

मैं इस सवाल का जवाब के लिए उच्च और निम्न खोज की और विफल रहे. मेरे सहयोगी, आदरणीय जोनाथन ब्रेडशॉ, का सामना करना पड़ा और इस मुद्दे को हल. जब मैं उसे करने के लिए मदद के लिए बाहर तक पहुँच, उन्होंने मुझे सही दिशा में ओर इशारा किया.

कुदाल "ShowInPicker के माध्यम से एकाधिक स्तंभ को दिखाने के लिए कॉन्फ़िगर करें" ADF में संपत्ति:

<संपत्ति नाम="ShowInPicker" प्रकार="System.Boolean">सच है</संपत्ति>

और अधिक विस्तार में:

  <!-- शीर्षक -->
  <TypeDescriptor TypeName="System.String" नाम="शीर्षक" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">शीर्षक</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <गुण>
      <संपत्ति नाम="DisplayByDefault" प्रकार="System.Boolean">सच है</संपत्ति>
      <संपत्ति नाम="ShowInPicker" प्रकार="System.Boolean">सच है</संपत्ति>
    </गुण>
  </TypeDescriptor>

इस संपत्ति की स्थापना एक छोटी समस्या परिचय. के रूप में जल्दी के रूप में आप इसे एक बार सेट, आप यह दिखाने के लिए इच्छित प्रत्येक स्तंभ के लिए सेट की जरूरत है. मेरे मामले में, डिफ़ॉल्ट रूप से DocId दिखाया BDC पिकर. हालांकि, एक बार मैं "ShowInPicker जोड़ा गया" करने के लिए शीर्षक, अब प्रदर्शित होता DocId. मैं कि स्पष्ट रूप से डॉक्टर ID के लिए ShowInPicker गुण सेटिंग के द्वारा हल.

यहाँ नतीजा है:

छवि

(मैं अजीब दिखने वाले "168 समझाता हूँ – CamlSchema.xsd" निर्माण एक भविष्य ब्लॉग पोस्ट में. संक्षेप में, यह एक concatenated तार कि एक थोड़ा बेहतर प्रयोक्ता अनुभव के लिए अनुमति देता है).

बेशक, इस ब्लॉग प्रविष्टि लिखा होने के, मैं सिर्फ "ShowInPicker के लिए एक खोज किया था" और कई हिट पाया, यह एक सहित: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. यह कुछ अन्य अच्छी BDC सामग्री के साथ साथ उस संपत्ति का अर्थ बताते हैं.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें!

Technorati टैग:

BDC ADF आयात विफलता का समाधान: “निम्नलिखित त्रुटि उत्पन्न हुई:”

मैं एक बार फिर हाथ से BDC ADF फ़ाइलें क्राफ्टिंग था (इतना है कि मैं का निर्माण कर सकते हैं मेरी "मेरे लॉन बंद हो जाओ!" cred) और इस सुंदर त्रुटि को मारा:

छवि

"अनुप्रयोग परिभाषा आयात विफल रहा. निम्नलिखित त्रुटि उत्पन्न हुई:"

जैसा कि आप देख सकते हैं, वहाँ एक त्रुटि है, लेकिन … यह मुझे बताओ कि यह क्या है नहीं जा रहा है.

मेरे मामले में, इस मुद्दे से बाहर कर दिया कि मैं एक अलग परियोजना है कि एक डेटाबेस से कनेक्ट है और एक दृश्य के खिलाफ एक एसक्यूएल क्वेरी निष्पादित के लिए एक कार्यात्मक ADF के साथ शुरू था. इस नई परियोजना में, मैं एक विधि को किसी वेब सेवा पर बुला रहा हूँ. मैं बाहर DB विशिष्ट सामान छीन लिया था और मेरे वेब सेवा सामान जोड़ा, लेकिन अद्यतन करने में विफल रहा <LobSystem>के प्रकार विशेषता. मैं यह करने के लिए "WebService बंद" और मैं खुशी से करने के लिए नए और अधिक रोमांचक आयात त्रुटियों चले गए, जो कारण पाठ्यक्रम में संभाला रहे थे.

यहाँ गलत LobSystem है:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/xml स्कीमा-उदाहरण
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
प्रकार = "डाटाबेस"
संस्करण = "1.0.0.0" नाम = "xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

यह सही है:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/xml स्कीमा-उदाहरण
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
प्रकार = "WebService"
संस्करण = "1.0.0.0" नाम = "xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</अंत>

Technorati टैग:

BDC Lookups के लिए एक व्यवहार्य प्रतिस्थापन लगता है

अद्यतन: उसका पर आधारित JXJ से कुछ रोचक टिप्पणियों इस MSDN पोस्टिंग है, मुख्य रूप से नकारात्मक, अनुभव के इस रास्ते नीचे जा रहा: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

हम एक व्यापार परिदृश्य है जहाँ हम दो दस्तावेज पुस्तकालयों एक आम "दस्तावेज़ ID के माध्यम से लिंक करने के लिए की जरूरत है" फ़ील्ड.

हम अक्सर इस तरह के औजार लिंक करने के लिए एक लुकअप स्तंभ का उपयोग करें. लुकअप स्तंभ के लिए कई कमियां हैं, जिसमें से तीन:

  1. केवल एक स्तंभ लुकअप लुकअप लायब्रेरी से लिंक किया जा सकता.
  2. प्रदर्शन: स्रोत लाइब्रेरी प्रविष्टियों के सैकड़ों हो सकता है. है कि लुकअप में बहुत अधिक प्रविष्टियाँ.
  3. खोज: वहाँ है कोई एकीकृत खोज. मैं खोज की काई अर्थ में मतलब नहीं, लेकिन खोज करने के लिए कोई रास्ता नहीं है / एकाधिक स्तंभों को स्रोत दस्तावेज़ लायब्रेरी से पर फ़िल्टर और लिंक आप चाहते हैं की स्थिति जानें.

BDC द्वारा समर्थित, हम एक "व्यवसाय डेटा का उपयोग कर सकते हैं" स्तंभ प्रकार है और यह एक बेहतर खोज प्रदान करता है और यहां तक कि सूची दृश्यों में दिखाई देते हैं करने के लिए डेटा की एकाधिक स्तंभ की अनुमति देता है.

मैं इस दृष्टिकोण के साथ कुछ प्रारंभिक सफलता मिली है और इसके बारे में और अधिक लिखने की योजना.

यदि आप इस कोण से पहले काम किया है और किसी भी टिप्पणी है, कृपया साझा करें!

</अंत>

Technorati टैग:

BDC आयात त्रुटि के लिए समाधान: “TypeDescriptor का TypeName द्वारा वर्णित प्रकार को लोड नहीं कर सका …”

मैं आज BDC के साथ काम कर रहा है, ADF फ़ाइलें कोडिंग के हाथ से और अपने आप को कुछ त्रुटियाँ जनरेट कर रहा है. इस तरह एक त्रुटि:

अनुप्रयोग परिभाषा आयात विफल रहा. निम्नलिखित त्रुटि उत्पन्न हुई: TypeDescriptor का TypeName द्वारा वर्णित प्रकार को लोड नहीं कर सका. पैरामीटर नाम: typeName त्रुटि पर या बस लाइन से पहले का सामना करना पड़ा था: ' 35’ और स्थिति: '20'.

काई इस त्रुटि प्रदर्शित जब मैं ADF XML फ़ाइल आयात करने की कोशिश की.

मैं Internets शोध किया और पाया कि मैं LOB इंस्टेंस नाम संदर्भित किया गया (से <LobSystemInstance>) में मेरे <TypeDescriptor> जब मैं LOB नाम संदर्भित है चाहिए नोड (से <LobSystem>).

गलत:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB इंस्टेंस नाम" नाम "KeyValue" =>

को सही:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB नाम" नाम "KeyValue" =>

आशा है कि यह एक किसी को एक घंटा या दो समय की बचत होती है.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें!

Technorati टैग:

कोई BDC रनटाइम त्रुटि समझाया

मैं एक BDC त्रुटि इस हफ्ते कि ही उपयोगकर्ता इंटरफ़ेस पर और में प्रकट हुई 12 हाइव लॉग रनटाइम पर.

प्रथम, यह उपयोगकर्ता इंटरफ़ेस में दिखाई दिया:

सभी पहचानकर्ता सही ढंग से एक SpecificFinder MethodInstance नाम के साथ निष्पादित करने के लिए मान सम्मिलित करने के लिए फ़ील्ड्स नहीं मिल सकता है … इस एंटिटी के लिए परिभाषित किया गया हर पहचानकर्ता के साथ जुड़े TypeDescriptors इनपुट पैरामीटर है सुनिश्चित करें.

यहाँ एक स्क्रीन शॉट है:

clip_image001

मैं भी इस संदेश में प्रकट करने के लिए कारण सकता है 12 हाइव लॉग में होगा (मेरी पेटेंट high-tech-don't-try-this-at-home का उपयोग कर "रहस्यमय त्रुटियाँ" विधि):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint पोर्टल सर्वर व्यवसाय डेटा 6q4x उच्च BusinessDataWebPart.OnPreRender में अपवाद: System.InvalidOperationException: पहचानकर्ता मान ”, का प्रकार ”, अमान्य है. प्रत्याशित पहचानकर्ता मान प्रकार 'System.String' का. पर Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(ऑब्जेक्ट[] subIdentifierValues, LobSystemInstance lobSystemInstance) पर Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(एंटिटी एंटिटी, ऑब्जेक्ट[] userValues, LobSystemInstance lobSystemInstance) पर Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(देखें desiredView) पर Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() पर Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

मैं आसपास खोज की है और में कुछ सुराग मिला MSDN फोरम, लेकिन वे मुझे समझ में मैं क्या कर रहा था करने के लिए पर्याप्त नहीं थे गलत. मैं ने एक webcast देख चुके टेड Pattison कि मेरी कंपनी दूर एक सर्वर और मेरी समस्या का एहसास करने के लिए आया था पर squirreled है.

मेरी ADF में, मैं के रूप में दिखाया गया एक SQL डेटाबेस से कनेक्ट कर रहा हूँ:

            <संपत्ति नाम="RdbCommandText" प्रकार="System.String">
              <![CDATA[
                SETID का चयन करें, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      देश, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, शहर, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      काउंटी, राज्य, डाक, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, फोन, एक्सटेंशन, फैक्स, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG से dbo.PS_CARRIER_ID_VW के साथ (nolock)
                जहाँ
                  (SETID <> 'साझा') और
                  (निचले(CARRIER_ID) >कम =(@MinId)) और
                  (निचले(CARRIER_ID) <कम =(@MaxId)) और
                  (निचले(DESCR) निचले पसंद(@InputDescr))
                ]]>
            </संपत्ति>

मैं प्रदान की थी एक DBA व्यक्ति से उस SQL और मैं समझता हूँ कि यह है करने के लिए दिया जाता रहा हूँ एक विशेष वे सिर्फ मेरे लिए बनाया गया दृश्य. अद्वितीय कुंजी वहाँ CARRIER_ID है.

यहाँ बग मैं शुरू की है:

      <पहचानकर्ता>
        <पहचानकर्ता नाम="CARRIER_ID" TypeName="System.String" />
        <पहचानकर्ता नाम="DESCR" TypeName="System.String" /> 
</पहचानकर्ता>

कहीं रेखा के साथ, मैं अपने आप को के अर्थ से अधिक भ्रमित करने में कामयाब था <पहचानकर्ता> और DESCR कहा कि भले ही यह एक पहचानकर्ता है वास्तव में नहीं है. मैं DESCR पहचानकर्ता सेट और हाथ की सफ़ाई से बाहर ले लिया! यह सब काम किया.

I hope this saves someone some grief 🙂

Technorati टैग: , , ,

BDC ADF और अपने दोस्त, CDATA

मैंने देखा है कुछ अजीब और अनावश्यक हाथ-एन्कोडिंग कुछ उदाहरणों में RdbCommandText का (MSDN दस्तावेज़ों सहित).

मैं BDC कि आदेशों में उनके "प्राकृतिक एक CDATA टैग के अंदर लिपटे हो कर सकते हैं के लिए नए चेहरे के लिए कहना चाहता था" प्रपत्र. तो, इस अजीब निर्माण:

<संपत्ति नाम="RdbCommandText" प्रकार="System.String">
चयन करें dbo.MCRS_SETTLEMENT.id, dbo.Dbo से MCRS_SETTLEMENT.settlement.MCRS_SETTLEMENT
जहाँ (आईडी &जी. टी.;= @MinId) और (आईडी एवं लेफ्टिनेंट; = @MaxId) < / संपत्ति >) और (आईडी &लेफ्टिनेंट;= @MaxId)
</संपत्ति>

बेहतर इस तरह से प्रतिनिधित्व किया जा सकता:

<संपत्ति नाम="RdbCommandText" प्रकार="System.String">
<![CDATA[
चयन करें dbo.MCRS_SETTLEMENT.id, dbo.Dbo से MCRS_SETTLEMENT.settlement.MCRS_SETTLEMENT
जहाँ (आईडी >= @MinId) और (आईडी एवं लेफ्टिनेंट; = @MaxId) < / संपत्ति >) और (आईडी <@MaxId =)
]]>
</संपत्ति>

</अंत>

BDC प्राइमर

BDC के लिए परिचय

कार्यात्मक उदाहरण: BDC ADF कि एम्बेडेड उपयोगकर्ता id और पासवर्ड के साथ SQL डेटाबेस से कनेक्ट करता है

मैं अप काई BDC के जरिए किसी SQL डेटाबेस के लिए वायर की जरूरत. परीक्षण/POC प्रयोजनों के लिए, मैं एसक्यूएल खाता उपयोगकर्ता id और पासवर्ड ADF में एम्बेड करने के लिए चाहता था. के साथ शुरू इस टेम्पलेट (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), मैं एक ADF कि एक विशेष रूप से SQL सर्वर आवृत्ति के लिए जोड़ता है और एक विशिष्ट उपयोगकर्ता id और पासवर्ड के साथ लॉग ऑन करता बनाया और इस टुकड़ा में दिखाया गया:

  <LobSystemInstances>
    <LobSystemInstance नाम="ClaimsInstance">
      <गुण>
        <संपत्ति नाम="AuthenticationMode" प्रकार="System.String">PassThrough</संपत्ति>
        <संपत्ति नाम="DatabaseAccessProvider" प्रकार="System.String">SqlServer</संपत्ति>
        <संपत्ति नाम="RdbConnection डेटा स्रोत" प्रकार="System.String">वास्तविक serveractual उदाहरण</संपत्ति>
        <संपत्ति नाम="RdbConnection प्रारंभिक कैटलॉग" प्रकार="System.String">वास्तविक प्रारंभिक कैटलॉग</संपत्ति>
        <संपत्ति नाम="RdbConnection एकीकृत सुरक्षा" प्रकार="System.String">कि गई SSPI</संपत्ति>
        <संपत्ति नाम="RdbConnection पूलिंग" प्रकार="System.String">झूठी</संपत्ति>

        <!-- इन महत्वपूर्ण मान रहे हैं: -->
        <संपत्ति नाम="RdbConnection उपयोगकर्ता ID" प्रकार="System.String">एकctual उपयोगकर्ता ID</संपत्ति>
        <संपत्ति नाम="RdbConnection पासवर्ड" प्रकार="System.String">वास्तविक पासवर्ड</संपत्ति>
        <संपत्ति नाम="RdbConnection Trusted_Connection" प्रकार="System.String">झूठी</संपत्ति>

      </गुण>
    </LobSystemInstance>
  </LobSystemInstances>

यह एक सबसे अच्छा अभ्यास नहीं है, लेकिन यह परीक्षण के लिए एक त्वरित और आसान विन्यास के लिए उपयोगी है. यह हैरानी की बात है यह पता लगाने के लिए मुश्किल था. मैंने कभी नहीं पाया खोज खोजशब्दों के साथ एक कार्यात्मक उदाहरण:

  • adf userid और पासवर्ड एम्बेडेड
  • उपयोगकर्ता id और पासवर्ड adf में एम्बेड करें
  • उपयोगकर्ता id और पासवर्ड adf bdc में एम्बेड करें
  • sharepoint bdc प्राइमर
  • उपयोगकर्ता id और पासवर्ड sharepoint adf में एम्बेड करें

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.