Kategori Arkiv: BDC

Snabbtips: BDC-ADF versionsnummer är din vän

Om du hand-kodande ADM-filer och gör en massa kod/import/provcyklerna, använda versionsnumret för att göra ditt liv enklare.

Jag hatar att erkänna det, men fram till denna vecka, Jag var alltid ta bort den automatiska Dokumentmataren och att importera det. Detta skulle bryta min business datakolumner och göra mig re-wire dem. Alla onödiga.

Fil detta under "det är uppenbart när man ser den".

Exempel:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Typ="WebService" Version="1.2.0.0" Namn="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/Office/2006/03/BusinessDataCatalog">

Ändra att version och importera på nytt och den befintliga affärsdatakolumnen använder den uppdaterade versionen automatiskt med ingen ytterligare konfiguration krävs.

</slutet>

Prenumerera på min blogg.

Technorati Tags:

Lösning: BDC-Picker visar endast en kolumn av resultat

I min pågående försök att ge en mer användbar uppslagskolumnen med hjälp av BDC, Jag träffade en vägg med BDC-plockaren. Om du inte ser det, BDC-plockaren liknar en Personväljaren förutom att det fungerar med kolumner av typen "business data".

Du åt plockaren genom att klicka på symbolen med öppna boken av en affärsdatakolumn som visas:

bild

Ovanstående bild visar en affärsdatakolumn som kallas "Master dokument-Id". Kolumnen är ansluten, via BDC, till en webbtjänst.. Webbtjänsten returnerar två kolumner med information: Dokument-ID och titel. Business Syftet här är att ge en "detta dokument är baserad på" funktionen. Användare väljer en "master" dokumentet och när de sparar, en händelsemottagare kopieras meta datafälten från refererade master.

Som standard, BDC-plockaren ser ut så här när jag söker efter ett dokument vars ID = "38":

clip_image002

Det är bra, men inte tillräckligt bra. Människor tror inte i form av ID: N, de tycker om titlar och/eller andra metadata. Plockaren kan du söka på andra kolumner (t.ex. Avdelning) men kommer inte att Visa faktiska listan över titlar det Funna, bara deras DocId: s som visas här:

clip_image002[1]

(Skärmbilden är inte så bra eftersom jag inte plocka en sökning som returnerar alla giltiga resultat, men du kan se att om det hade funnit vissa resultat, Det skulle bara ha visat docids, inte titlar).

Jag sökte högt och lågt för svaret på detta och kunde inte. Min kollega, den ärevördiga Jonathan Bradshaw, hade haft och löst problemet. När jag nådde ut till honom om hjälp, Han pekade mig i rätt riktning.

Konfigurera färgväljaren för att visa flera kolumner via "ShowInPicker" egendom i den automatiska Dokumentmataren:

<Egenskapen Namn="ShowInPicker" Typ="System.Boolean">sant</Egenskapen>

Mer i detalj:

  <!-- Avdelning -->
  <TypeDescriptor TypeName="System.String" Namn="Avdelning" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Avdelning</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Egenskaper>
      <Egenskapen Namn="DisplayByDefault" Typ="System.Boolean">sant</Egenskapen>
      <Egenskapen Namn="ShowInPicker" Typ="System.Boolean">sant</Egenskapen>
    </Egenskaper>
  </TypeDescriptor>

Anger den här egenskapen medför ett mindre problem. Så snart du ställa in den en gång, Du måste ange det för varje kolumn som du vill visa. I mitt fall, BDC-picker visade DocId som standard. Men, När jag lagt till "ShowInPicker" till titel, DocId inte längre visas. Jag löste det genom att uttryckligen ange egenskapen ShowInPicker för Doc-ID.

Här är resultatet:

bild

(Jag ska förklara de besynnerliga "168 – CamlSchema.xsd" konstruktion i ett framtida blogginlägg. I korthet, Det är en sammanfogade strängen som möjliggör en något bättre användarupplevelse).

Självklart, att ha skrivit denna bloggpost, Jag gjorde en sökning efter "ShowInPicker" och hittade många träffar, inklusive denna: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Det förklarar innebörden av fastigheten tillsammans med några andra bra BDC-saker.

</slutet>

Prenumerera på min blogg!

Technorati Tags:

Lösning till BDC-ADF Import misslyckande: “Följande fel uppstod:”

Jag återigen crafting BDC ADF filer för hand (så att jag kan bygga upp min "få bort min gräsmatta!" cred) och träffa detta härliga fel:

bild

"Importen av programdefinitionen misslyckades. Följande fel uppstod:"

Som ni kan se, Det finns ett fel, Men … Det kommer inte att berätta för mig vad det är.

I mitt fall, problemet visade sig att jag hade började med en funktionell ADF för ett annat projekt som är ansluten till en databas och körs en SQL-fråga mot en vy. I detta nya projekt, Jag ringer en metod på en webbtjänst. Jag hade strippad ut DB specifika saker och La min web service grejer, men det gick inte att uppdatera den <LobSystem>'s type-attribut. Jag bytte det till "WebService" och jag glatt vidare till nyare och mer spännande importfel, som har hanterats i sinom.

Här är fel LobSystem:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "databas"
Version = "1.0.0.0" Namn = "xyzzy"
xmlns ="
http://schemas.microsoft.com/Office/2006/03/BusinessDataCatalog">

Detta är korrekt:

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

</slutet>

Technorati Tags:

BDC verkar en livskraftig ersättning för sökningar

UPPDATERING: MSDN bokföringen har några intressanta iakttagelser från JXJ baserat på hans, främst negativa, erfarenheter som går denna väg: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Vi har en affärsscenario där vi måste koppla två dokument bibliotek via en gemensam "dokument-ID" fältet.

Vi använder ofta en uppslagskolumn till redskap länkar som denna. Det finns flera nackdelar till uppslagskolumner, tre är:

  1. Endast en kolumn från lookup sökning biblioteket kan kopplas.
  2. Prestanda: Källbiblioteket kan innehålla hundratals poster. Det är för många poster i uppslaget.
  3. Sök: Det finns ingen integrerad sökning. Jag menar inte i MOSS avkänningen av Sök, men det finns inget sätt att söka / filter på flera kolumner från källdokumentbiblioteket och leta reda på länken som du vill.

Backas upp av BDC, Vi kan använda en "business data" Kolumntyp och det ger en överlägsen sökning och tillåter även flera kolumner med data ska visas i listvyer.

Jag har haft några inledande framgångar med denna strategi och planerar att skriva mer om det.

Om du har arbetat denna vinkel innan och har några synpunkter, Vänligen dela!

</slutet>

Technorati Tags:

Lösning till BDC importfel: “Kunde inte läsa in typen som beskrivs av TypeName för TypeDescriptor …”

Jag har jobbat med BDC idag, Coding ADM-filer för hand och generera mig några fel. Ett sådant fel:

Importen av programdefinitionen misslyckades. Följande fel uppstod: Kunde inte läsa in typen som beskrivs av TypeName för TypeDescriptor. Parameternamnet: typeName fel påträffades vid eller strax före raden: ' 35’ och Position: "20".

MOSS visas detta felmeddelande när jag försökte importera filen ADF XML.

Jag undersökt Internets och fann att jag var referenser förekomstnamnet LOB (från den <LobSystemInstance>) i min <TypeDescriptor> nod när jag ska ha refererade LOB namnet i sig (från <LobSystem>).

Fel:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB förekomstnamn" Namn = "KeyValue">

Korrigera:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB namn" Namn = "KeyValue">

Hoppas detta sparar någon timme eller två av tid.

</slutet>

Prenumerera på min blogg!

Technorati Tags:

Ett BDC körningsfel förklaras

Jag orsakat en BDC fel denna vecka som visat sig på användargränssnittet och i den 12 bikupa Stock vid körning.

Första, Detta visades i användargränssnittet:

Kunde inte hitta fält för att infoga alla identifierare värdena för att korrekt utföra en SpecificFinder MethodInstance med namn … Kontrollera att indataparametrarna har typbeskrivare (TypeDescriptor) associerade med varje identifierare som definierats för denna entitet.

Här är en skärmdump:

clip_image001

Jag kan också orsaka detta meddelande att visas i den 12 bikupa stock på kommer (använder min patenterade high-tech-don't-try-this-at-home "mystiska fel" metoden):

11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x hög undantag i BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Identifierarvärde ”, av typ ”, är ogiltig. Förväntade identifierarvärde av typen System.String. på Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) på Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Enhet enhet, Objekt[] userValues, LobSystemInstance lobSystemInstance) på Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Visa desiredView) på Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() på Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Jag sökte runt och hittade några leads i den MSDN-forumet för, men de var inte nog för mig att förstå vad jag gjorde fel. Jag såg en webbsändning av Ted Pattison som min företaget har squirreled bort på en server och kom att inse mitt problem.

I min ADF, Jag ansluter till en SQL databas som visas:

            <Egenskapen Namn="RdbCommandText" Typ="System.String">
              <![CDATA[
                VÄLJ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      LAND, ADRESS1, ADRESS2, ADDRESS3, ADDRESS4, STADEN, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, STATLIGA, POST-, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG från dbo.PS_CARRIER_ID_VW med (nolock)
                DÄR
                  (SETID <> "DELA") och
                  (lägre(CARRIER_ID) >= lägre(@MinId)) och
                  (lägre(CARRIER_ID) <= lägre(@ MaxId)) och
                  (lägre(DESCR) SOM lägre(@InputDescr))
                ]]>
            </Egenskapen>

Jag lämnades det SQL från en DBA person och jag får att förstå att det är en särskilda Visa de skapade bara för mig. Den unika nyckeln det är CARRIER_ID.

Här är felet jag infört:

      <Kännetecken>
        <Identifierare Namn="CARRIER_ID" TypeName="System.String" />
        <Identifierare Namn="DESCR" TypeName="System.String" /> 
</Kännetecken>

Någonstans längs linjen, Jag hade lyckats förväxla mig själv över menande av <Kännetecken> och lagt till DESCR även om det inte är faktiskt en identifierare. Jag tog DESCR ur den identifierare set och presto! Det hela fungerade.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

BDC ADF och din vän, CDATA

Jag har lagt märke till några besvärliga och onödiga handen-kodning av RdbCommandText i några exempel (inklusive MSDN-dokumentationen).

Jag ville påpeka för nykomlingar till BDC att kommandon kan förpackas i en CDATA-tagg i naturligt"" form. Så, denna besvärliga konstruktion:

<Egenskapen Namn="RdbCommandText" Typ="System.String">
Välj dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement från dbo.MCRS_SETTLEMENT
DÄR (ID &gt;= @ MinId) OCH (ID &LT;= @ MaxId)
</Egenskapen>

kan bättre representeras detta sätt:

<Egenskapen Namn="RdbCommandText" Typ="System.String">
<![CDATA[
Välj dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement från dbo.MCRS_SETTLEMENT
DÄR (ID >= @ MinId) OCH (ID <= @ MaxId)
]]>
</Egenskapen>

</slutet>

BDC Primer

Intro till BDC

Funktionella exempel: BDC ADF som ansluter till SQL-databas med inbäddade användar-id och lösenord

Jag behövde till tråd upp mossa till en SQL-databas via BDC. För testning/POC, Jag ville bädda in SQL-konto förbrukaren id och lösenord i den automatiska Dokumentmataren. Från och med den här mallen (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Jag skapade en ADM som ansluter till en viss SQL server-instansen och loggar in med en viss användar-id och lösenord och visas i detta utdrag:

  <LobSystemInstances>
    <LobSystemInstance Namn="ClaimsInstance">
      <Egenskaper>
        <Egenskapen Namn="AuthenticationMode" Typ="System.String">Genomströmning</Egenskapen>
        <Egenskapen Namn="DatabaseAccessProvider" Typ="System.String">SqlServer</Egenskapen>
        <Egenskapen Namn="RdbConnection datakälla" Typ="System.String">faktiska serveractual instans</Egenskapen>
        <Egenskapen Namn="RdbConnection Initial Catalog" Typ="System.String">faktiska initial catalog</Egenskapen>
        <Egenskapen Namn="RdbConnection integrerad säkerhet" Typ="System.String">SSPI</Egenskapen>
        <Egenskapen Namn="RdbConnection sammanslagning" Typ="System.String">falskt</Egenskapen>

        <!-- Dessa är de viktigaste värdena: -->
        <Egenskapen Namn="RdbConnection användar-ID" Typ="System.String">enctual användar-ID</Egenskapen>
        <Egenskapen Namn="RdbConnection lösenord" Typ="System.String">faktiska lösenord</Egenskapen>
        <Egenskapen Namn="RdbConnection Trusted_Connection" Typ="System.String">falskt</Egenskapen>

      </Egenskaper>
    </LobSystemInstance>
  </LobSystemInstances>

Det är inte en bästa praxis, men det är användbart för en snabb och enkel konfiguration för testning. Detta var förvånansvärt svårt att räkna ut. Jag hittade aldrig en funktionell exempel med sökord:

  • ADF inbäddade användar-ID och lösenord
  • bädda in användar-id och lösenord i adf
  • bädda in användar-id och lösenord i adf bdc
  • SharePoint bdc primer
  • SharePoint bädda in användar-id och lösenord i adf

</slutet>

Prenumerera på min blogg.