வகை பதிவுகள்: 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">

அந்த பதிப்பு மற்றும் மறு இறக்குமதி மாற்ற இருக்கும் வணிக தரவு நிரல் கூடுதல் கட்டமைப்பு தேவை தானாகவே மேம்படுத்தப்பட்ட பதிப்பை பயன்படுத்துகிறது.

</இறுதியில்>

என்னுடைய குழுசேர்.

Technorati குறிச்சொற்கள்:

கரைசல்: BDC தேர்வாளர் முடிவுகள் ஒரே வரிசை காட்டுகிறது

In my on-going attempts at providing a more useful lookup column using 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".

You access the picker by clicking on the open book icon of a business data column as shown:

படம்

The above image shows a business data column called "Master Document Id". That column is connected, via 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" document and when they save, an event receiver copies meta data fields from the referenced master.

முன்னிருப்பாக, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

That’s helpful, 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 (E.G. தலைப்பு) but won’t show the actual list of titles it found, just their DocId’s as shown here:

clip_image002[1]

(The screen shot isn’t so great because I didn’t pick a search that returns any valid results, but you can see that if it had found some results, it would only have shown DocId’s, not titles).

I searched high and low for the answer to this and failed. என் சக, the venerable Jonathan Bradshaw, had faced and solved this issue. When I reached out to him for help, he pointed me in the right direction.

Configure the picker to show multiple columns via the "ShowInPicker" property in the ADF:

<சொத்து பெயர்="ShowInPicker" மாதிரி="System.Boolean">உண்மையான</சொத்து>

In more detail:

  <!-- தலைப்பு -->
  <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" to Title, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Here is the result:

படம்

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. In short, it’s a concatenated string that allows for a slightly better user experience).

நிச்சயமாக, having written this blog entry, I just did a search for "ShowInPicker" and found numerous hits, including this one: 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 கோப்புகளை கைவினை (so that I can build up my "get off my lawn!" நான்) இந்த அழகான பிழை வெற்றி:

படம்

"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, but failed to update the <LobSystem>’s Type attribute. I switched it to "WebService" and I happily moved on to newer and more exciting import errors, which were handled in due course.

Here is the wrong 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">

This is correct:

<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 பார்வைகள் ஒரு வையபிள் மாற்று தெரிகிறது

புதுப்பிப்பு: தகவல்களுக்கு இந்த எம்எஸ்டிஎன் தனது அடிப்படையாக 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 கோப்பை இறக்குமதி செய்ய முயற்சித்த போது பாசி இந்த பிழை காட்டப்படும்.

நான் Internets ஆராய்ச்சி மற்றும் நான் உயரமாக எழும்பும்படி உதாரணமாக பெயரை குறிக்கும் இருந்தது கண்டறியப்பட்டது (இருந்து <LobSystemInstance>) என் <TypeDescriptor> நான் உயரமாக எழும்பும்படி பெயர் தன்னை குறிப்பிடப்பட்ட வேண்டும் போது கணு (இருந்து <LobSystem>).

தவறு:

<TypeDescriptor TypeName="Conchango.KeyValue, உயரமாக எழும்பும்படி நிகழ்வு பெயர்" Name="KeyValue">

சரி:

<TypeDescriptor TypeName="Conchango.KeyValue, உயரமாக எழும்பும்படி பெயர்" Name="KeyValue">

இந்த ஒரு யாரோ ஒரு மணி நேரம் அல்லது நேரம் இரண்டு சேமிக்கப்படுகிறது நம்புகிறேன்.

</இறுதியில்>

என்னுடைய குழுசேர்!

Technorati குறிச்சொற்கள்:

விளக்கினார் ஒரு BDC இயக்க பிழை

நான் பயனர் இடைமுகம் மற்றும் தன்னை வெளிப்படுத்தி என்று இந்த வாரம் ஒரு BDC பிழை 12 hive log at runtime.

முதல், இந்த பயனர் இடைமுகம் தோன்றினார்:

அனைத்து அடையாளங்காட்டி கலாச்சாரம் நுழைக்க துறைகள் சரியாக பெயர் ஒரு SpecificFinder MethodInstance இயக்க கண்டுபிடிக்க முடியவில்லை … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.

இங்கே ஒரு திரை ஷாட் தான்:

clip_image001

I could also cause this message to appear in the 12 hive log at will (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: The Identifier value ”, of Type ”, is invalid. Expected Identifier value of Type ‘System.String’. at Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity entity, Object[] userValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(காட்சி desiredView) Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance மணிக்கு() Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties மணிக்கு()

நான் சுற்றி தேடிய மற்றும் சில தடங்கள் காணப்படவில்லை எம்எஸ்டிஎன் மன்றம், 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[
                SELECT
                      , CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      COUNTRY, முகவரி 1, முகவரி 2, ADDRESS3, ADDRESS4, நகரம், NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, மாநிலம, தபால் அலுவலகம் சார்ந்த, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, தொலைபேசி, விரிவாக்கம், தொலைநகல், LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                FROM
                      dbo.PS_CARRIER_ID_VW WITH (nolock)
                WHERE
                  (SETID <> 'SHARE') மற்றும்
                  (lower(CARRIER_ID) >= lower(@MinId)) மற்றும்
                  (lower(CARRIER_ID) <= lower(@ MaxId)) மற்றும்
                  (lower(DESCR) LIKE lower(@InputDescr))
                ]]>
            </சொத்து>

I was provided that SQL from a DBA person and I’m given to understand that it’s a விசேஷமான view they created just for me. The unique key there is CARRIER_ID.

Here is the bug I introduced:

      <Identifiers>
        <Identifier பெயர்="CARRIER_ID" TypeName="System.String" />
        <Identifier பெயர்="DESCR" TypeName="System.String" /> 
</Identifiers>

எங்காவது வரி சேர்த்து, I had managed to confuse myself over the meaning of <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! It all worked.

I hope this saves someone some grief 🙂

Technorati குறிச்சொற்கள்: , , ,

BDC ADF உங்கள் நண்பர், CDATA

நான் சில உதாரணங்கள் உள்ள RdbCommandText சில மோசமான மற்றும் தேவையற்ற கை குறியீட்டு கவனித்திருக்கிறேன் (எம்எஸ்டிஎன் ஆவணங்கள் உட்பட).

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 SELECT, dbo.MCRS_SETTLEMENT இருந்து dbo.MCRS_SETTLEMENT.settlement
WHERE (ஐடி &ஜிடி;= @MinId) மற்றும் (ஐடி &Lt;= @ MaxId)
</சொத்து>

சிறந்த இந்த வழியில் குறிப்பிடப்படுகின்றன:

<சொத்து பெயர்="RdbCommandText" மாதிரி="System.String">
<![CDATA[
Dbo.MCRS_SETTLEMENT.id SELECT, dbo.MCRS_SETTLEMENT இருந்து dbo.MCRS_SETTLEMENT.settlement
WHERE (ஐடி >= @MinId) மற்றும் (ஐடி <= @ 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 பயனர் ஐடி" மாதிரி="System.String">ஒருctual பயனர் ஐடி</சொத்து>
        <சொத்து பெயர்="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 பயனர் ஐடி மற்றும் கடவுச்சொல்லை பதித்துள்ளது
  • adf BDC பயனர் ஐடி மற்றும் கடவுச்சொல்லை பதித்துள்ளது
  • ஷேர்பாயிண்ட் BDC அறிமுகம்
  • ஷேர்பாயிண்ட் உட்பொதி பயனர் ஐடி மற்றும் adf உள்ள கடவுச்சொல்லை

</இறுதியில்>

என்னுடைய குழுசேர்.