En BDC-kjøretidsfeil forklart

Jeg fikk en BDC-feil denne uken som viste seg på brukergrensesnitt og i den 12 strukturen Logg under kjøring.

Første, Dette dukket opp i brukergrensesnittet:

Finner ikke felt for innsetting av alle identifikatorverdiene for riktig kjøring av SpecificFinder MethodInstance med navnet … Kontroller at inndataparametere har TypeDescriptors knyttet til alle identifikatorer som er definert for denne enheten.

Her er et skjermbilde:

clip_image001

Jeg kan også føre denne meldingen skal vises i den 12 strukturen loggen vil (bruke min patentert high-tech-don't-try-this-at-home "mystisk feil" metoden):

11/14/2007 09:24:41.27 W3WP.exe (0x080C) 0x0B8C SharePoint Portal Server forretningsdata 6q4x høy unntak i BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Identifier-verdien ”, typen ”, er ugyldig. Forventet identifikatorverdi av typen System.String. ved Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) ved Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Enhet enhet, Objekt[] userValues, LobSystemInstance lobSystemInstance) ved Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vis desiredView) ved Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() ved Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Jeg søkte rundt og fant noen avledningene i det MSDN-forumet, men de var ikke nok for meg å forstå hva jeg gjorde galt. Jeg så en webcast av Ted Pattison som min selskapet har vet på en server og kom til å forstå mitt problem.

I min ADF, Jeg kobler til en SQL-database som vist:

            <Egenskapen navn="RdbCommandText" Type="System.String">
              <![CDATA[
                VELG SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      LAND, ADDRESS1, ADRESSE2, ADDRESS3, ADDRESS4, BYEN, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      FYLKE, TILSTAND, POST, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, UTVIDELSE, FAKS, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG fra dbo.PS_CARRIER_ID_VW med (NOLOCK)
                HVOR
                  (SETID <> "DEL") og
                  (lavere(CARRIER_ID) >= lavere(@MinId)) og
                  (lavere(CARRIER_ID) <= lavere(@MaxId)) og
                  (lavere(DESCR) SOM lavere(@InputDescr))
                ]]>
            </Egenskapen>

Jeg var gitt at SQL fra en DBA person og jeg får til å forstå at det er en spesielle Vis de opprettet bare for meg. Unik nøkkel det er CARRIER_ID.

Her er feilen jeg introdusert:

      <Identifikatorer>
        <Identifikator navn="CARRIER_ID" TypeName="System.String" />
        <Identifikator navn="DESCR" TypeName="System.String" /> 
</Identifikatorer>

Et sted langs linjen, Jeg hadde klart å forvirre meg selv over betydningen av <Identifikatorer> og lagt DESCR selv om det ikke er egentlig en identifikator. Jeg tok DESCR identifikatorer sett og vips! Det hele virket.

Jeg håper dette sparer noen sorg 🙂

Technorati Merkelapper: , , ,

2 tanker om “En BDC-kjøretidsfeil forklart

  1. Paul Galvin

    Pieter, du probalby løst dette nå, men min gjetning er at det vil være knyttet til definisjonen på baksiden slutten. Kanskje er selve SQL-feltet begrenset til 60 tegn? Noe sånt?

    Svar
  2. Pieter Veenstra

    hei,

    Jeg har et problem med en BDC, og jeg lurer på om du kan hjelpe med dette?

    Jeg bruker to identifiier felt ( et nummer og et beskrivelsesfelt), Når antall tegn overskrider 60 Jeg får foollowing feil:

    Ugyldig tekstverdi

    Et tekstfelt inneholder ugyldige data. Kontroller verdien og prøv igjen.

    Forstår du hvor dette begrense av 60 tegn kommer fra? og hvordan å fikse dette problemet?

    For tiden jeg begrenser beskrivelsen i slike slik at det totale antallet tegn ikke overstiger 60.

    Svar

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *