Archiv der Kategorie: BDC

Quick-Tipp: BDC ADF Versionsnummern sind dein Freund

Wenn Sie Hand-ADF Codierung sind Dateien und tun eine Menge Code, Import, Testzyklen, Verwenden Sie die Versionsnummer, um Ihr Leben einfacher machen.

Ich hasse es zugeben, aber bis diese Woche, Ich war immer den ADF löschen und Re-Import. Dies würde brechen meine Geschäftsdatenspalten und mich ihnen wieder Draht. Alle unnötigen.

Diese Datei unter "ist es offensichtlich wenn Sie es sehen".

Beispiel:

<LobSystem-Objekt
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" Name="xyzzyDocumentReview" xmlns="http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Ändern Sie die Version und Re-Import und die vorhandenen Geschäftsdatenspalte verwendet die aktualisierte Version automatisch ohne zusätzliche Konfiguration erforderlich.

</Ende>

Onnieren Sie meinen Blog ab.

Technorati Tags:

Lösung: BDC-Picker zeigt nur eine Spalte der Ergebnisse

In meine laufenden Versuche, zu einer Weitere nützliche Nachschlagefeld mit BDC, Ich schlug eine Wand mit dem BDC-picker. Wenn Sie noch nicht zu sehen, der BDC-Picker ist ein Personenauswahl ähnlich, außer dass es mit Spalten vom Typ "Geschäftsdaten funktioniert".

Sie zugreifen im Farbwähler, indem Sie auf das Buch-Symbol für eine Geschäftsdatenspalte wie gezeigt:

Bild

Das Bild oben zeigt eine Geschäftsdatenspalte namens "Master-Dokument-Id". Diese Spalte ist verbunden, über BDC, an einen Webdienst. Der Webdienst gibt zwei Spalten mit Informationen zurück.: Dokument-ID und Titel. Das Geschäft hier soll ein "dieses Dokument basiert auf" Funktion. Benutzer wählen Sie einen "master" Dokument und wenn sie sparen, Ein Ereignisempfänger kopiert Meta-Datenfelder aus der referenzierten master.

Standardmäßig, der BDC-Picker sieht folgendermaßen aus, wenn ich für ein Dokument mit der ID Suche = "38":

clip_image002

Das ist hilfreich, aber nicht gut genug. Menschen denken nicht in Bezug auf IDs, Sie denken in Bezug auf Titel und/oder andere Metadaten. Im Farbwähler können Sie auf andere Spalten suchen (zB. Titel) aber nicht die tatsächliche Liste der Titel angezeigt, die es gefunden, nur ihre DocId's, wie hier gezeigt:

clip_image002[1]

(Der Screenshot ist nicht so groß, weil ich nicht wählen Sie eine Suche, die keine gültige Ergebnisse zurückgibt, aber Sie können sehen, wenn es hatte einige Ergebnisse gefunden, Es hätte nur die DocId gezeigt, keine Titel).

Ich suchte Ebbe und die Antwort darauf und fehlgeschlagen. Mein Kollege, die ehrwürdigen Jonathan Bradshaw, konfrontiert und dieses Problem gelöst hatte. Wenn ich streckte ihm um Hilfe, Er wies mich in die richtige Richtung.

Konfigurieren Sie die Datumsauswahl an mehrere Spalten über die "ShowInPicker" Eigenschaft in der ADF:

<Eigenschaft Name="ShowInPicker" Typ="System.Boolean">wahr</Eigenschaft>

Im detail:

  <!-- Titel -->
  <TypeDescriptor TypeName="System.String" Name="Titel" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titel</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Eigenschaften>
      <Eigenschaft Name="DisplayByDefault" Typ="System.Boolean">wahr</Eigenschaft>
      <Eigenschaft Name="ShowInPicker" Typ="System.Boolean">wahr</Eigenschaft>
    </Eigenschaften>
  </TypeDescriptor>

Durch Festlegen dieser Eigenschaft ein kleineres Problem führt ein. Sobald Sie es einmal festgelegt, Sie müssen für jede Spalte festlegen, die Sie anzeigen möchten.. In meinem Fall, BDC-Farbwähler zeigte DocId standardmäßig. Jedoch, Nachdem ich "ShowInPicker hinzugefügt" Titel, DocId nicht mehr angezeigt. Ich löste, die indem Sie die ShowInPicker-Eigenschaft explizit für Doc-ID.

Hier ist das Ergebnis:

Bild

(Ich erkläre die seltsam "168 – CamlSchema.xsd" Bau in einem zukünftigen Blog-post. Kurz gesagt, Es ist eine verkettete Zeichenfolge, die eine etwas bessere Benutzererfahrung ermöglicht).

Natürlich, dieser Blog-Eintrag geschrieben, Ich habe gerade eine Suche nach "ShowInPicker" und zahlreiche Treffer gefunden, einschließlich dieser: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Es erklärt die Bedeutung der Eigenschaft zusammen mit einigen anderen guten BDC-Sachen.

</Ende>

Onnieren Sie meinen Blog ab!

Technorati Tags:

Lösung für BDC-ADF-Importfehler: “Der folgende Fehler ist aufgetreten:”

Ich war BDC ADF Dateien noch einmal von hand Handwerk. (so dass ich aufbauen kann mein "runter von meinem Rasen!" cred) und drücken Sie diesen schönen Fehler:

Bild

"Application Definition importieren fehlgeschlagen. Der folgende Fehler ist aufgetreten:"

Wie Sie sehen können, Es ist ein Fehler, aber … Es wird nicht um mir zu sagen, was es ist.

In meinem Fall, die Frage stellte sich heraus, dass ich mit einer funktionalen ADF für ein anderes Projekt begonnen hatte, aus, die mit einer Datenbank verbunden und ausgeführt eine SQL-Abfrage für eine Sicht. Bei diesem neuen Projekt, Ich rufe eine Methode auf einem Webdienst. Ich hatte die DB-spezifischen Sachen entfernt und meine Web-Dienst-Sachen hinzugefügt, aber Fehler beim Aktualisieren der <LobSystem-Objekt>Das Type-Attribut. Ich wechselte er zu "WebService" und ich ging gerne zu neuer und spannender Importfehler, die gegebener behandelt wurden.

Hier ist die falsche LobSystem:

<LobSystem-Objekt
xmlns:Xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:SchemaLocation =http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "Datenbank"
Version = "1.0.0.0" Name = "Xyzzy"
Xmlns ="
http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Das ist richtig:

<LobSystem-Objekt
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" Name = "Xyzzy"
Xmlns ="
http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</Ende>

Technorati Tags:

BDC scheint eine tragfähige Ersatz für Lookups

UPDATE: Dieser MSDN-Beitrag hat einige interessanten Beobachtungen von JXJ basierend auf seiner, vor allem negative, Erfahrungen auf diesem Weg gehen: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Wir haben ein Business-Szenario, wo wir zwei Dokumente Bibliotheken über eine gemeinsame "Document ID verknüpfen müssen" Feld.

Wir verwenden oft ein Nachschlagefeld für Hilfsmittel Links wie folgt. Es gibt mehrere Nachteile der Nachschlagefelder, drei davon sind:

  1. Nur eine Spalte aus der Lookup Lookup-Bibliothek verknüpft werden kann.
  2. Leistung: Die Quellbibliothek könnte Hunderte von Einträgen enthalten.. Das ist zu viele Einträge in der Suche.
  3. Suche: Es gibt keine integrierte Suche. Ich meine nicht in dem Sinne MOSS Suche, aber es gibt keine Möglichkeit, suchen / über mehrere Spalten aus der Quelle-Dokumentbibliothek zu filtern Sie und suchen Sie den gewünschten link.

Unterstützt von BDC, Wir können ein "Business-Daten verwenden." Spaltentyp und es bietet eine überlegene Suche und erlaubt sogar mehrere Spalten mit Daten in Listenansichten angezeigt werden.

Ich habe einige vorläufige Erfolg mit diesem Konzept und möchten mehr darüber schreiben.

Wenn Sie diese Winkel vor gearbeitet haben und keine Stellungnahmen haben, Bitte teilen Sie!

</Ende>

Technorati Tags:

Lösung für BDC-Importfehler: “Typ beschrieben durch die TypeDescriptor ' TypeName ' konnte nicht geladen werden. …”

Ich habe mit BDC heute gearbeitet, ADF-Dateien von hand programmieren und mir einige Fehler generieren. Ein solcher Fehler:

Anwendung-Definition-Import fehlgeschlagen. Der folgende Fehler ist aufgetreten: Typ beschrieben durch die TypeDescriptor ' TypeName ' konnte nicht geladen werden.. Parameternamen: TypeName Fehler aufgetreten bei oder kurz vor der Linie: 35’ und Position: '20'.

MOSS dieser Fehler angezeigt, als ich versuchte, die ADF XML-Datei importieren.

Ich recherchierte des Internets und gefunden, dass ich den Namen der LOB-Instanz verweist, wurde (aus der <LobSystemInstance>) in meiner <TypeDescriptor> Knoten, wenn ich den LOB-Namen selbst verwiesen haben, sollten (Von <LobSystem-Objekt>).

Falsch:

<TypeDescriptor-TypeName="Conchango.KeyValue, LOB-Instanznamen" Name = "KeyValue">

Korrigieren:

<TypeDescriptor-TypeName="Conchango.KeyValue, LOB-Name" Name = "KeyValue">

Hoffe, dass dieser jemand ein oder zwei Stunden Zeit spart.

</Ende>

Onnieren Sie meinen Blog ab!

Technorati Tags:

Ein BDC-Laufzeitfehler erklärte

Ich verursachte einen BDC-Fehler diese Woche, die sich in der Benutzeroberfläche und in manifestiert der 12 Bienenkorb-Protokoll Laufzeit.

Erste, Dieses erschien in der Benutzeroberfläche:

Felder zum Einfügen aller Bezeichnerwerte zum ordnungsgemäßen Ausführen einer ' SpecificFinder ' MethodInstance mit Namen konnte nicht gefunden werden. … Sicherzustellen Sie, dass die Eingabeparameter TypeDescriptors jeder für diese Entität definierten Bezeichner zugeordnet haben.

Hier ist ein Screenshot:

clip_image001

Ich könnte auch dazu führen, diese Meldung angezeigt, in der 12 Bienenkorb Protokoll wird (mit Hilfe meiner patentierten high-tech-don't-try-this-at-home "geheimnisvolle Störungen" Methode):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server-Geschäftsdaten 6q4x hohe Ausnahme in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Den ID-Wert ”, Typ ”, ist ungültig. ID-Wert vom Typ 'System.String' erwartet. bei Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) bei Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Einheit Einheit, Objekt[] userValues, LobSystemInstance lobSystemInstance) bei Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Ansicht desiredView) bei Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() bei Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Ich suchte und fand einige führt in die MSDN-forum, aber sie waren nicht genug für mich zu verstehen, was ich tat, falsch. Ich sah einen Webcast von Ted Pattison dass meine Firma hat entfernt auf einem Server und kam zu meinem Problem erkennen gespeichert..

In meinem ADF, Ich bin mit einer SQL-Datenbank verbinden, wie gezeigt:

            <Eigenschaft Name="RdbCommandText" Typ="System.String">
              <![CDATA[
                WÄHLEN SIE SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      LAND, ADRESSE1, ADRESSE2, ADDRESS3, ADDRESS4, STADT, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      GRAFSCHAFT, ZUSTAND, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, ERWEITERUNG, TELEFAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG aus dbo.PS_CARRIER_ID_VW mit (NOLOCK)
                WO
                  (SETID <> "AKTIE") und
                  (niedrigere(CARRIER_ID) >= untere(@MinId)) und
                  (niedrigere(CARRIER_ID) <= untere(@ MaxId)) und
                  (niedrigere(DESCR) WIE niedriger(@InputDescr))
                ]]>
            </Eigenschaft>

Ich wurde zur Verfügung gestellt, dass SQL DBA Person und ich bin da zu verstehen, dass es eine Spezial die sie nur für mich erstellt. Der eindeutige Schlüssel dort ist CARRIER_ID.

Hier ist der Fehler, den ich eingeführt:

      <Bezeichner>
        <Bezeichner Name="CARRIER_ID" TypeName="System.String" />
        <Bezeichner Name="DESCR" TypeName="System.String" /> 
</Bezeichner>

Irgendwo entlang der Linie, Ich hatte es geschafft, mich über die Bedeutung des verwechseln <Bezeichner> und DESCR hinzugefügt, auch wenn es nicht tatsächlich einen Bezeichner. Ich nahm DESCR aus dem Bezeichner Satz und presto! Das alles funktioniert.

Ich hoffe, das spart einige Trauer jemand 🙂

Technorati Tags: , , ,

BDC-ADF und Ihr Freund, CDATA

Ich habe bemerkt etwas umständlich und unnötig Hand-Codierung des RdbCommandText in einigen Beispielen (einschließlich der MSDN-Dokumentation).

Ich wollte Neulinge BDC darauf hinweisen, dass Befehle in einem CDATA-Tag in ihrer "natürlichen gewickelt werden kann" Form. Also, Diese schwierige Konstruktion:

<Eigenschaft Name="RdbCommandText" Typ="System.String">
Wählen Sie Dbo.MCRS_SETTLEMENT.ID, Dbo.MCRS_SETTLEMENT.Settlement von Dbo.MCRS_SETTLEMENT
WO (ID &gt;= @MinId) UND (ID &lt;= @ MaxId)
</Eigenschaft>

kann auf diese Weise besser dargestellt werden:

<Eigenschaft Name="RdbCommandText" Typ="System.String">
<![CDATA[
Wählen Sie Dbo.MCRS_SETTLEMENT.ID, Dbo.MCRS_SETTLEMENT.Settlement von Dbo.MCRS_SETTLEMENT
WO (ID >= @MinId) UND (ID <= @ MaxId)
]]>
</Eigenschaft>

</Ende>

BDC-Primer

Einführung in die BDC

Funktionale Beispiel: BDC-ADF, die Verbindung zu SQL Datenbank mit eingebetteter Benutzer-Id und Kennwort

Ich brauchte, MOSS verbinden mit einer SQL-Datenbank über BDC. Für Zwecke der Prüfung/POC, Ich wollte den SQL-Konto-Benutzer-Id und das Kennwort in der ADF einbetten. Beginnend mit Diese Vorlage (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Ich habe eine ADF, die eine Verbindung mit einer bestimmten SQL Server-Instanz herstellt und meldet sich mit einer bestimmten Benutzer-Id und das Kennwort und in dieser Ausschnitt gezeigt:

  <LobSystemInstances>
    <LobSystemInstance Name="ClaimsInstance">
      <Eigenschaften>
        <Eigenschaft Name="AuthenticationMode" Typ="System.String">PassThrough</Eigenschaft>
        <Eigenschaft Name="DatabaseAccessProvider" Typ="System.String">SqlServer</Eigenschaft>
        <Eigenschaft Name="RdbConnection-Datenquelle" Typ="System.String">tatsächliche Serveractual Instanz</Eigenschaft>
        <Eigenschaft Name="RdbConnection Initial Catalog" Typ="System.String">tatsächliche Anfangskatalog</Eigenschaft>
        <Eigenschaft Name="RdbConnection integrierte Sicherheit" Typ="System.String">SSPI</Eigenschaft>
        <Eigenschaft Name="RdbConnection Bündelung" Typ="System.String">falsch</Eigenschaft>

        <!-- Dies sind die wichtigsten Werte: -->
        <Eigenschaft Name="RdbConnection Benutzer-ID" Typ="System.String">eineCtual Benutzer-ID</Eigenschaft>
        <Eigenschaft Name="RdbConnection Passwort" Typ="System.String">tatsächliche Kennwort</Eigenschaft>
        <Eigenschaft Name="RdbConnection Trusted_Connection" Typ="System.String">falsch</Eigenschaft>

      </Eigenschaften>
    </LobSystemInstance>
  </LobSystemInstances>

Es wird nicht empfohlen, aber es ist nützlich für eine schnelle und einfache Konfiguration für die Prüfung. Das war überraschend schwierig, herauszufinden. Ich habe nie eine funktionale Beispiel mit Suchbegriffe:

  • ADF eingebettet, Userid und password
  • Benutzer-Id und Kennwort in Adf einbetten
  • Benutzer-Id und Kennwort in Adf Bdc einbetten
  • SharePoint Bdc Grundierung
  • SharePoint-Benutzer-Id und Kennwort in Adf einbetten

</Ende>

Onnieren Sie meinen Blog ab.