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: , , ,

2 gedachten over "Een runtime-fout BDC uitgelegd

  1. Paul Galvin

    Pieter, u probalby dit opgelost door nu, maar ik denk dat het zou worden gerelateerd aan de definitie van de back-end. Misschien is het veld SQL zelf beperkt tot 60 tekens? Iets in die aard?

    Antwoord
  2. Pieter Veenstra

    Hallo,

    Ik heb een probleem met een BDC, en ik vraag me af als je met dit helpen kunt?

    Ik ben met behulp van twee identifiier velden ( een aantal en een van het beschrijvingsveld), Wanneer het totale aantal tekens overschrijdt 60 Ik krijg de foollowing fouten:

    Ongeldige tekstwaarde

    Een tekstveld bevat ongeldige gegevens. Controleer de waarde en probeer het opnieuw.

    Begrijp je waar dit beperken van 60 tekens komt uit? en hoe voor positiebepaling zulks uitvaardiging?

    Op dit moment ben ik de beschrijving zodanig beperken dat het totale aantal tekens niet overschrijdt 60.

    Antwoord

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *