వర్గం ఆర్కైవ్స్: BDC

త్వరిత చిట్కా: BDC ADF వెర్షన్ సంఖ్యలను మీ ఫ్రెండ్

మీరు పోతే ADF ఫైళ్లు చేతితో కోడింగ్ మరియు కోడ్ చాలా / దిగుమతి / పరీక్ష చక్రాల చేయడం, use the version number to make your life easier.

నేను దానిని అంగీకరించాలి ద్వేషం, కానీ వరకు ఈ వారం, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

ఉదాహరణ:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">

Change that version and re-import and the existing business data column uses the updated version automatically with no additional configuration required.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

Technorati టాగ్లు:

పరిష్కారము: BDC Picker ఫలితాలు ఓన్లీ వన్ కాలమ్ చూపిస్తుంది

ఒక అందజేస్తున్న నా మీద జరుగుతున్న ప్రయత్నాలలో BDC ఉపయోగించి మరింత ఉపయోగకరంగా శోధన కాలమ్, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

మీరు చూపించిన వ్యాపార డేటా కాలమ్ యొక్క బహిరంగ పుస్తకం చిహ్నంపై క్లిక్ చేసి ఎంపికను ఆక్సెస్:

ప్రతిమ

The above image shows a business data column called "Master Document Id". That column is connected, BDC ద్వారా, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" ఫంక్షన్. Users select a "master" పత్రం మరియు వారు సేవ్, సూచించబడిన మాస్టర్ నుండి కార్యక్రమం రిసీవర్ కాపీలు మెటా డేటా ఖాళీలను.

అప్రమేయంగా, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

ఆ ఉపయోగపడిందా వార్తలు, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (ఉదాహరణకు. శీర్షిక) కానీ అది కనిపించిన పేర్లు వాస్తవ జాబితా చూపించదు, కేవలం వారి పత్రం ID ఇక్కడ చూపిన లో:

clip_image002[1]

(నేను ఏ చెల్లుబాటు అయ్యే ఫలితాలు తిరిగి ఒక శోధన ఎంపిక ఎందుకంటే స్క్రీన్ షాట్ చాలా గొప్పది కాదు, కానీ మీరు చూడగలరు అది కొన్ని ఫలితాలు దొరకలేదు ఉంటే, ఇది మాత్రమే పత్రం ID యొక్క చూపిన ఉండేది, కాదు శీర్షికలు).

I searched high and low for the answer to this and failed. నా సహోద్యోగి, గౌరవనీయులైన జోనాథన్ బ్రాడ్షా, had faced and solved this issue. When I reached out to him for help, అతను సరైన దిశలో నాకు చూపారు.

Configure the picker to show multiple columns via the "ShowInPicker" ADF లో ఆస్తి:

<ఆస్తి పేరు="ShowInPicker" రకము="System.Boolean">నిజమైన</ఆస్తి>

మరింత వివరాలు:

  <!-- శీర్షిక -->
  <TypeDescriptor TypeName="System.String" పేరు="శీర్షిక" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">శీర్షిక</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <లక్షణాలు>
      <ఆస్తి పేరు="DisplayByDefault" రకము="System.Boolean">నిజమైన</ఆస్తి>
      <ఆస్తి పేరు="ShowInPicker" రకము="System.Boolean">నిజమైన</ఆస్తి>
    </లక్షణాలు>
  </TypeDescriptor>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. నా విషయంలో, BDC picker showed DocId by default. అయితే, once I added "ShowInPicker" టైటిల్, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

ఇక్కడ ఫలితం:

ప్రతిమ

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. In short, అది కొద్దిగా మెరుగైన యూజర్ అనుభవాన్ని కోసం అనుమతించే ఒక ఒకదాని వెంబడి స్ట్రింగ్ వార్తలు).

కోర్సు యొక్క, ఈ బ్లాగ్ ఎంట్రీ వ్రాశారు కలిగి, I just did a search for "ShowInPicker" మరియు అనేక విజయవంతమైన దొరకలేదు, దీనితో పాటు: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్!

Technorati టాగ్లు:

BDC ADF దిగుమతి వైఫల్యం పరిష్కారం: “కింది లోపం ఏర్పడింది:”

నేను మళ్లీ చేతితో BDC ADF ఫైళ్లు క్రాఫ్టింగ్ జరిగినది (నేను నిర్మించడానికి విధంగా నా "నా పచ్చిక ఆఫ్ పొందుటకు!" నేను) మరియు ఈ మనోహరమైన లోపం జరిగి:

ప్రతిమ

"Application definition import failed. కింది లోపం ఏర్పడింది:"

మీరు చూడగలరు గా, ఒక లోపం ఉంది, కాని … అది చెప్పు నాకు మాత్రం కాదు.

నా విషయంలో, the issue turned out that I had started off with a functional ADF for a different project that connected to a database and executed a SQL query against a view. In this new project, I am calling a method on a web service. I had stripped out the DB specific stuff and added my web service stuff, కానీ అప్డేట్ విఫలమైంది <LobSystem>’s Type attribute. I switched it to "WebService" మరియు నేను సంతోషంగా కొత్త మరియు మరింత ఉత్తేజకరమైన దిగుమతి లోపాలు వెళ్లారు, ఇది కారణంగా కోర్సు లో నిర్వహించింది.

ఇక్కడ తప్పు LobSystem ఉంది:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type="Database"
Version="1.0.0.0" Name="xyzzy"
xmlns="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

ఇది సరైనది:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type="WebService"
Version="1.0.0.0" Name="xyzzy"
xmlns="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</చివర>

Technorati టాగ్లు:

BDC శోధనలు ఒక ఆచరణీయ ప్రత్యామ్నాయం ఉంది

UPDATE: పోస్ట్ ఈ MSDN తన ఆధారంగా JXJ నుండి కొన్ని ఆసక్తికరమైన పరిశీలనలు ఉంది, ప్రధానంగా చెడు, అనుభవాలు ఈ మార్గం గోయింగ్ డౌన్: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

We have a business scenario where we need to link two documents libraries via a common "document ID" రంగంలో.

We often use a lookup column to implements links like this. There are several drawbacks to lookup columns, వీటిలో మూడు:

  1. Only one column from the lookup lookup library can be linked.
  2. నిర్వహణ: The source library could contain hundreds of entries. That’s too many entries in the lookup.
  3. శోధించండి: There is no integrated search. I don’t mean in the MOSS sense of search, కానీ శోధించడానికి మార్గమే లేదు / మూలం పత్రం లైబ్రరీ నుండి బహుళ స్తంభాలను ఫిల్టర్ మరియు మీకు కావలసిన లింకు గుర్తించడం.

BDC మద్దతు, we can use a "business data" column type and it provides a superior search and even allows multiple columns of data to appear in list views.

నేను ఈ విధానం కొన్ని ప్రాథమిక విజయం సాధించింది మరియు దాని గురించి మరింత వ్రాయడానికి ప్లాన్ చేసిన.

మీరు ముందు ఈ కోణం పని మరియు ఏ వ్యాఖ్యలు కలిగి ఉంటే, భాగస్వామ్యం చేయండి!

</చివర>

Technorati టాగ్లు:

BDC దిగుమతి లోపం పరిష్కారం: “TypeDescriptor యొక్క TypeName వర్ణించారు పద్ధతి లోడ్ చేయబడలేదు …”

నేను BDC రోజు పని చేసిన, coding ADF files by hand and generating myself some errors. One such error:

అప్లికేషన్ నిర్వచనం దిగుమతి విఫలమైంది. కింది లోపం ఏర్పడింది: TypeDescriptor యొక్క TypeName వర్ణించారు పద్ధతి లోడ్ చేయబడలేదు. పారామితి పేరు: typeName లోపం లైన్ లేదా ముందు ఎదుర్కొంది: '35’ మరియు స్థానం: ’20’.

నేను ADF XML ఫైల్ దిగుమతి ప్రయత్నించినప్పుడు MOSS ఈ లోపం ప్రదర్శించబడుతుంది.

నేను ఇంటర్నెట్ల పరిశోధన మరియు నేను లాబ్ ఉదాహరణకు పేరు సూచిస్తూ కనుగొన్నారు (నుండి <LobSystemInstance>) నా లో <TypeDescriptor> నేను లాబ్ పేరు కూడా సూచించారు వుండాలి ఉన్నప్పుడు నోడ్ (నుండి <LobSystem>).

సరికాని:

<TypeDescriptor TypeName="Conchango.KeyValue, లాబ్ ఇన్స్టాన్స్ పేరు" Name="KeyValue">

సరి:

<TypeDescriptor TypeName="Conchango.KeyValue, లాబ్ పేరు" Name="KeyValue">

ఈ ఒక ఎవరైనా ఒక గంట లేదా సమయం రెండు ఆదా ఆశిస్తున్నాము.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్!

Technorati టాగ్లు:

వివరించింది BDC runtime లోపం

నేను యూజర్ ఇంటర్ఫేస్ మరియు తనను తాను వ్యక్తం ఈ వారం ఒక BDC లోపం కారణంగా 12 అందులో నివశించే తేనెటీగలు లాగ్ రన్టైమ్ వద్ద.

మొదటి, ఈ యూజర్ ఇంటర్ఫేస్ లో కనిపించింది:

అన్ని గుర్తించేది విలువలు ఇన్సర్ట్ చెయ్యడానికి ఖాళీలను సరిగ్గా పేరు ఒక SpecificFinder MethodInstance అమలు కనుగొనడం సాధ్యం కాలేదు … ఇన్పుట్ పారామితులు ఈ సంస్థ నిర్వచించవచ్చు ప్రతి ఐడెంటిఫైయర్ సంబంధం TypeDescriptors అందిస్తామని.

ఇక్కడ ఒక స్క్రీన్ షాట్:

clip_image001

నేను కూడా ఈ సందేశంలో కనిపిస్తుంది కారణం కావచ్చు 12 అందులో నివశించే తేనెటీగలు లాగ్ సంకల్పం (using my patented high-tech-don’t-try-this-at-home "mysterious errors" పద్ధతి):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: గుర్తించేది విలువ ”, రకం ”, చెల్లదు. Expected Identifier value of Type ‘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 ఫోరమ్, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by టెడ్ పటిసన్ నా సంస్థ ఒక సర్వర్ పై దూరంగా squirreled మరియు నా సమస్య గ్రహించడం వచ్చింది ఉంది.

నా ADF లో, చూపిన విధంగా నేను ఒక SQL డేటాబేస్ అనుసంధానం వెబ్:

            <ఆస్తి పేరు="RdbCommandText" రకము="System.String">
              <![CDATA[
                బాలినేని
                      , CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, నెట్వర్క్ను, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      COUNTRY, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, నగరం, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, రాష్ట్రం, పోస్టల్, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, ఫోన్, EXTENSION, ఈ విధానం ద్వారా పంపబడిన సమాచారము, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                 (nolock)
                WHERE
                  (Leas <> 'భాగస్వామ్యం') మరియు
                  (తక్కువ(CARRIER_ID) >= తక్కువ(@ MinID)) మరియు
                  (తక్కువ(CARRIER_ID) <= తక్కువ(@ MaxId)) మరియు
                  (తక్కువ(DESCR) తక్కువ వంటి(@ InputDescr))
                ]]>
            </ఆస్తి>

నేను ఒక DBA వ్యక్తి నుండి SQL అందించబడింది మరియు నేను ఆ అర్థం ఇచ్చిన వెబ్ ఒక ప్రత్యేకమైన view they created just for me. The unique key there is CARRIER_ID.

ఇక్కడ నేను పరిచయం దోషం:

      <గుర్తింపులు>
        <గుర్తించు పేరు="CARRIER_ID" TypeName="System.String" />
        <గుర్తించు పేరు="DESCR" TypeName="System.String" /> 
</గుర్తింపులు>

సంవేర్ లైన్ వెంట, నేను యొక్క అర్థం మీద నాకు కంగారు చేయగలిగాడు <గుర్తింపులు> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! ఇది అన్ని పని.

I hope this saves someone some grief 🙂

Technorati టాగ్లు: , , ,

BDC ADF మరియు మీ స్నేహితుడు, CDATA

నేను కొన్ని ఉదాహరణలలో RdbCommandText కొన్ని ఇబ్బందికరమైన మరియు అనవసరమైన చేతితో ఎన్కోడింగ్ పరిశీలించిన (MSDN డాక్యుమెంటేషన్ సహా).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. ఈ విధంగా, ఈ ఇబ్బందికరమైన నిర్మాణం:

<ఆస్తి పేరు="RdbCommandText" రకము="System.String">
Dbo.MCRS_SETTLEMENT.id బాలినేని, dbo.MCRS_SETTLEMENT నుండి dbo.MCRS_SETTLEMENT.settlement
WHERE (ID &GT;= @MinId) మరియు (ID &LT;= @ MaxId)
</ఆస్తి>

మంచి ఈ విధంగా ప్రాతినిధ్యం చేయవచ్చు:

<ఆస్తి పేరు="RdbCommandText" రకము="System.String">
<![CDATA[
Dbo.MCRS_SETTLEMENT.id బాలినేని, dbo.MCRS_SETTLEMENT నుండి dbo.MCRS_SETTLEMENT.settlement
WHERE (ID >= @MinId) మరియు (ID <= @ MaxId)
]]>
</ఆస్తి>

</చివర>

BDC ఉదాహరణ

BDC పరిచయాన్ని

ఫంక్షనల్ ఉదాహరణ: BDC ADF ఆ ఎంబెడెడ్ వినియోగదారు ఐడి మరియు పాస్ వర్డ్ తో SQL డేటాబేస్ అనుసంధానం చేయబడివుంటుంది

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with ఈ టెంప్లేట్ (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), నేను ఒక నిర్దిష్ట వినియోగదారు ఐడి మరియు పాస్ వర్డ్ తో ఒక ప్రత్యేక SQL సర్వర్ ఉదాహరణకు మరియు లాగ్లను అనుసంధానించే ఒక ADF రూపొందించినవారు మరియు ఈ స్నిప్పెట్ చూపిన:

  <LobSystemInstances>
    <LobSystemInstance పేరు="ClaimsInstance">
      <లక్షణాలు>
        <ఆస్తి పేరు="AuthenticationMode" రకము="System.String">త్రూ</ఆస్తి>
        <ఆస్తి పేరు="DatabaseAccessProvider" రకము="System.String">SqlServer</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection డేటా మూలం" రకము="System.String">అసలు సర్వర్  వాస్తవ ఉదాహరణకు</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection ప్రారంభ కాటలాగ్" రకము="System.String">అసలు మొదటి జాబితా</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection ఇంటిగ్రేటెడ్ సెక్యూరిటీ" రకము="System.String">SSPI</ఆస్తి>
        <ఆస్తి పేరు="పూలింగ్ RdbConnection" రకము="System.String">అబద్ధమైన</ఆస్తి>

        <!-- ఈ కీ విలువలు: -->
        <ఆస్తి పేరు="RdbConnection వాడుకరి ID" రకము="System.String">ఒకసాధారణ వాడుకరి ID</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection పాస్వర్డ్" రకము="System.String">వాస్తవ పాస్వర్డ్</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection Trusted_Connection" రకము="System.String">అబద్ధమైన</ఆస్తి>

      </లక్షణాలు>
    </LobSystemInstance>
  </LobSystemInstances>

ఇది ఒక ఉత్తమ చేయరు, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • adf పొందుపరిచిన USERID మరియు పాస్వర్డ్
  • adf వినియోగదారు ID మరియు పాస్వర్డ్ను పొందుపరచడానికి
  • adf bdc వినియోగదారు ID మరియు పాస్వర్డ్ను పొందుపరచడానికి
  • SharePoint bdc రంగు
  • SharePoint పొందుపరిచిన వినియోగదారు ఐడి మరియు adf లో పాస్వర్డ్ను

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.