Categorie Archieven: BDC

Quick Tip: BDC ADF versienummers niet gelijk zijn uw vriend

Als u bent hand-codering ADF bestanden en doen een heleboel code/importeren/testcycli, Gebruik het versienummer uw leven gemakkelijker te maken.

Ik haat om het toe te, maar tot deze week, Ik was altijd de ADF verwijderen en opnieuw importeren. Dit zou breken mijn kolommen met zakelijke gegevens en maakt me opnieuw draad hen. Alle overbodige.

Dien dit onder "het is duidelijk zodra je zien".

Voorbeeld:

<LobSystem
xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance" XSi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="WebService" Versie="1.2.0.0" Naam="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Die versie en Reimport wijzigen en de bestaande kolom voor zakelijke gegevens gebruikt automatisch de bijgewerkte versie met geen aanvullende configuratie vereist.

</einde>

Abonneren op mijn blog.

Technorati Tags:

Oplossing: BDC Picker toont slechts één kolom van resultaten

In mijn pogingen gaande op het verstrekken van een nuttiger opzoekkolom met behulp van BDC, Ik raakte een muur met de BDC picker. Als u nog niet zien, de BDC picker is vergelijkbaar met een datumkiezer mensen behalve dat het werkt met kolommen van het type "zakelijke gegevens".

U toegang tot de picker door te klikken op het pictogram van de open boek van een kolom voor zakelijke gegevens zoals:

afbeelding

De bovenstaande afbeelding toont een kolom voor zakelijke gegevens genaamd "Master Document-Id". Die kolom is aangesloten, via BDC, bij een webservice. De webservice retourneert twee kolommen met gegevens: Document-ID en titel. De zakelijk doel hier is bedoeld als een "dit document is gebaseerd op" functie. Gebruikers selecteren een "master" document en wanneer ze opslaat, de ontvanger van een gebeurtenis opgehaald meta gegevensvelden uit het model waarnaar wordt verwezen.

Standaard, de BDC datumkiezer eruitziet als dit wanneer ik naar een document waarvan de ID zoeken = "38":

clip_image002

Dat is nuttig, maar niet goed genoeg. Mensen denken niet in termen van id 's, zij denken in termen van titels en/of andere metagegevens. De Kleurkiezer kunt u zoeken op andere kolommen (bijvoorbeeld. Titel) maar de feitelijke lijst met titels bleek niet weergegeven, gewoon hun arts is zoals hier wordt weergegeven:

clip_image002[1]

(Het het schermschot is niet zo groot, omdat ik niet kies een zoekopdracht die elke geldige resultaten retourneert, maar je kunt zien dat als het had sommige resultaten gevonden, het zou alleen hebben aangetoond van de arts, niet titels).

Ik zocht hoog en laag naar het antwoord op dit en is mislukt. Mijn collega, de eerbiedwaardige Jonathan Bradshaw, had geconfronteerd en dit probleem opgelost. Wanneer ik stak hem voor hulp, Hij wees me in de goede richting.

Configureren van de datumkiezer om aan te tonen van meerdere kolommen via de ShowInPicker"" onroerend goed in de automatische Documentinvoer:

<Eigenschap Naam="ShowInPicker" Type="System.Boolean">True</Eigenschap>

Meer in detail:

  <!-- Titel -->
  <TypeDescriptor TypeName="System.String" Naam="Titel" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titel</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Eigenschappen>
      <Eigenschap Naam="DisplayByDefault" Type="System.Boolean">True</Eigenschap>
      <Eigenschap Naam="ShowInPicker" Type="System.Boolean">True</Eigenschap>
    </Eigenschappen>
  </TypeDescriptor>

Deze eigenschap voeren een klein probleem. Zodra u het één keer instellen, u moet voor elke kolom die u wilt weergeven. In mijn geval, BDC picker arts toonde standaard. Echter, Zodra ik heb toegevoegd "ShowInPicker" titel, Arts niet langer weergegeven. Ik dat opgelost door expliciet de eigenschap van de ShowInPicker ingesteld voor Doc-ID.

Hier is het resultaat:

afbeelding

(Ik zal uitleggen de vreemd "168 – CamlSchema.xsd" bouw in een toekomstig blogpost. In het kort, het is een aaneengeschakelde tekenreeks die voorziet in een iets betere user experience).

Natuurlijk, deze blog entry hebben geschreven, Ik heb een zoekopdracht voor "ShowInPicker" en vond vele hits, met inbegrip van dit: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Het verklaart de betekenis van die eigenschap samen met enkele andere goede dingen van de BDC.

</einde>

Abonneren op mijn blog!

Technorati Tags:

Oplossing te BDC ADF importeren mislukken: “De volgende fout is opgetreden:”

Ik was eens te meer crafting BDC ADF bestanden met de hand (zodat ik kan opbouwen mijn "stapt uit mijn gazon!" Cred) en deze mooie fout hit:

afbeelding

"Toepassing definitie importeren is mislukt. De volgende fout is opgetreden:"

Zoals u kunt zien, Er is een fout, maar … het gaat niet om me te vertellen wat het is.

In mijn geval, het probleem bleek dat ik had begon met een functionele ADF voor een ander project dat verbonden met een database en uitgevoerd op een SQL-query tegen een weergave. In dit nieuwe project, Ik ben het aanroepen van een methode op een webservice. Ik had uit de DB specifieke dingen ontdaan en voegde mijn web service spullen, maar het bijwerken mislukt de <LobSystem>het kenmerk type. Ik schakelde het op "WebService" en ik gelukkig verhuisd naar nieuwere en meer spannende Importfouten, die werden behandeld zijner.

Hier is de verkeerde LobSystem:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "Database"
Versie = "1.0.0.0" Naam = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Dit klopt:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "WebService"
Versie = "1.0.0.0" Naam = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</einde>

Technorati Tags:

BDC lijkt een levensvatbare vervanging voor Lookups

UPDATE: Dit MSDN-posten heeft sommige interessante observaties van JXJ op basis van zijn, vooral negatieve, going down dit pad ervaringen: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

We hebben een bedrijfsscenario waar we moeten twee documenten bibliotheken via een gemeenschappelijk "document-ID koppelen" veld.

We gebruiken vaak een opzoekkolom implementeert koppelingen als dit. Er zijn enkele nadelen aan opzoekkolommen, drie van die:

  1. Slechts één kolom uit de bibliotheek opzoeken opzoeken kan worden gekoppeld.
  2. Prestaties: De bronbibliotheek kan bevatten honderden items. Dat is te veel vermeldingen in de opzoektabel.
  3. Zoek: Er is geen geïntegreerde zoeken. Ik bedoel niet in de zin van de MOSS van zoeken, maar er is geen manier om te zoeken / filteren op meerdere kolommen uit de brondocumentbibliotheek en zoek de gewenste koppeling.

Gesteund door BDC, We kunnen een "zakelijke gegevens gebruiken" kolomtype en het biedt een superieure zoeken en laat zelfs meerdere kolommen met gegevens worden weergegeven in de lijstweergaven.

Ik heb sommige voorlopige succes met deze aanpak en van plan om meer over het te schrijven.

Als u deze hoek voor gewerkt heb en geen reacties hebben, Gelieve te delen!

</einde>

Technorati Tags:

Oplossing voor fout BDC importeren: “Type beschreven door TypeDescriptor de TypeName kan niet laden …”

Ik heb gewerkt met BDC vandaag, ADF bestanden met de hand codering en het genereren van mezelf enkele fouten. Een dergelijke fout:

Toepassing definitie importeren is mislukt. De volgende fout is opgetreden: Type beschreven door TypeDescriptor de TypeName kan niet laden. Parameternaam: typeName fout opgetreden op of vlak voor lijn: ' 35’ en positie: '20'.

MOSS weergegeven deze fout toen ik probeerde om de ADF XML-bestand importeren.

Ik onderzocht de Internets en vond dat ik was referencement de instantienaam LOB (van de <LobSystemInstance>) in mijn <TypeDescriptor> knooppunt wanneer ik moet hebben verwezen de naam LOB zelf (Van <LobSystem>).

Verkeerde:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB instantienaam" Naam = "KeyValue">

Corrigeren:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB naam" Naam = "KeyValue">

Hoop dat dit een iemand een uur of twee van tijd bespaart.

</einde>

Abonneren op mijn blog!

Technorati Tags:

Een runtime-fout BDC uitgelegd

Ik veroorzaakt een BDC fout deze week die manifesteerde zich al op de user interface en in de 12 component log tijdens runtime.

Eerste, Dit bleek in de gebruikersinterface:

Konden niet vondst velden om in te voegen van alle de id-waarden voor het correct uitvoeren van een SpecificFinder MethodInstance met de naam … Zorgen voor dat invoerparameters hebben TypeDescriptors die is gekoppeld aan elke id gedefinieerd voor deze entiteit.

Hier is een screenshot:

clip_image001

Ik kan ook dit bericht moet worden weergegeven de 12 component logboek tijdens zal (met behulp van mijn gepatenteerde high-tech-don't-try-this-at-home "mysterieuze fouten" methode):

11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0Hoge uitzondering van SharePoint Portal Server zakelijke gegevens van x0B8C 6q4x in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: De id-waarde ”, van Type ”, is ongeldig. Verwachte id-waarde van het Type 'System.String'. op Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) op Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entiteit entiteit, Object[] userValues, LobSystemInstance lobSystemInstance) op Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Weergave desiredView) op Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() op Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Ik zocht rond en vond enkele leidt in de MSDN forum, maar zij waren niet genoeg voor mij om te begrijpen wat ik aan het doen was verkeerd. Ik zag een webcast door Ted Pattison dat mijn bedrijf zit probeert te sluizen weg op een server en kwam om te beseffen mijn probleem.

In mijn ADF, Ik ben verbinden met een SQL-database zoals:

            <Eigenschap Naam="RdbCommandText" Type="System.String">
              <![CDATA[
                SELECTEER SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      LAND, ADRES1, ADRES2, ADDRESS3, ADDRESS4, STAD, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, STAAT, POST, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFOON, UITBREIDING, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG van dbo.PS_CARRIER_ID_VW met (NOLOCK)
                WAAR
                  (SETID <> 'DELEN') en
                  (lagere(CARRIER_ID) >= lager(@MinId)) en
                  (lagere(CARRIER_ID) <= lager(@MaxId)) en
                  (lagere(DESCR) ALS lagere(@InputDescr))
                ]]>
            </Eigenschap>

Ik werd verstrekt dat SQL van een DBA persoon en ik ben gegeven om te begrijpen dat er een speciale weergave die ze alleen voor mij gemaakt. De unieke sleutel er is CARRIER_ID.

Hier is de bug die ik heb ingevoerd:

      <Id 's>
        <Id Naam="CARRIER_ID" TypeName="System.String" />
        <Id Naam="DESCR" TypeName="System.String" /> 
</Id 's>

Ergens langs de lijn, Ik had in geslaagd om mezelf te verwarren over de betekenis van <Id 's> en DESCR toegevoegd, zelfs al is het niet daadwerkelijk een id. Ik nam DESCR uit de id's set en presto! Het allemaal werkte.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

BDC ADF en uw vriend, CDATA

Ik heb gemerkt dat sommige onhandig en onnodige hand-codering van RdbCommandText in enkele voorbeelden (met inbegrip van MSDN-documentatie).

Ik wilde erop wijzen aan nieuwkomers aan BDC dat commando's kunnen worden verpakt in een CDATA-tag in hun "natuurlijke" formulier. Dus, deze lastige constructie:

<Eigenschap Naam="RdbCommandText" Type="System.String">
Selecteer dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement van dbo.MCRS_SETTLEMENT
WAAR (id &gt;= @MinId) EN (id &lt;= @MaxId)
</Eigenschap>

kan beter worden vertegenwoordigd op deze manier:

<Eigenschap Naam="RdbCommandText" Type="System.String">
<![CDATA[
Selecteer dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement van dbo.MCRS_SETTLEMENT
WAAR (id >= @MinId) EN (id <= @MaxId)
]]>
</Eigenschap>

</einde>

BDC Primer

Inleiding tot de BDC

Functioneel voorbeeld: BDC ADF die verbinding met SQL database met ingesloten gebruikers-id en wachtwoord maakt

Ik moest kabellengte tot MOSS naar een SQL-database via BDC. Oog op testen/POC, Ik wilde de SQL account gebruiker-id en het wachtwoord in de automatische Documentinvoer insluiten. Beginnen met Deze sjabloon (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Ik heb gemaakt een ADF dat is verbonden aan een bepaald exemplaar van SQL server en logt in met een specifieke gebruikers-id en wachtwoord en getoond in dit fragment:

  <LobSystemInstances>
    <LobSystemInstance Naam="ClaimsInstance">
      <Eigenschappen>
        <Eigenschap Naam="AuthenticationMode" Type="System.String">PassThrough</Eigenschap>
        <Eigenschap Naam="DatabaseAccessProvider" Type="System.String">SqlServer</Eigenschap>
        <Eigenschap Naam="RdbConnection gegevensbron" Type="System.String">werkelijke serveractual instantie</Eigenschap>
        <Eigenschap Naam="RdbConnection Initial Catalog" Type="System.String">werkelijke eerste catalogus</Eigenschap>
        <Eigenschap Naam="Geïntegreerde beveiliging van RdbConnection" Type="System.String">SSPI</Eigenschap>
        <Eigenschap Naam="RdbConnection bundelen" Type="System.String">vals</Eigenschap>

        <!-- Dit zijn de waarden voor de sleutel: -->
        <Eigenschap Naam="RdbConnection gebruikersnaam" Type="System.String">eenctual gebruikersnaam</Eigenschap>
        <Eigenschap Naam="RdbConnection wachtwoord" Type="System.String">huidige wachtwoord</Eigenschap>
        <Eigenschap Naam="RdbConnection Trusted_Connection" Type="System.String">vals</Eigenschap>

      </Eigenschappen>
    </LobSystemInstance>
  </LobSystemInstances>

Het is niet een best practice, maar het is nuttig voor een snelle en eenvoudige configuratie voor het testen. Dit was verrassend moeilijk om erachter te komen. Ik heb nooit gevonden een functionele voorbeeld met zoektocht keywords:

  • ADF ingesloten userid en wachtwoord
  • gebruikersnaam en wachtwoord in adf insluiten
  • gebruikersnaam en wachtwoord in adf bdc insluiten
  • SharePoint bdc primer
  • SharePoint gebruikers-id en wachtwoord in adf insluiten

</einde>

Abonneren op mijn blog.