O eroare de BDC runtime a explicat

Am cauzat de o eroare de BDC această săptămână care a manifestat pe interfaţa cu utilizatorul şi în 12 jurnal de stup în timpul rulării.

Prima, Aceasta a apărut în interfaţa cu utilizatorul:

Imposibil de găsit câmpuri pentru a insera toate valorile identificatorilor pentru a executa corect o SpecificFinder MethodInstance cu numele … Asigure parametrii de intrare au TypeDescriptor asociați cu fiecare identificator definit pentru această entitate.

Aici este un ecran shot:

clip_image001

S-ar putea provoca, de asemenea, acest mesaj pentru a apărea în 12 stup log la va (ajutorul meu brevetat high-tech-don't-try-this-at-home "misterioase erori" metoda):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C date de afaceri SharePoint Portal Server 6q4x mare excepţie în BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Valoarea de identificator ”, de tip ”, nu este valid. Aşteptat valoare identificator de tip 'System.String'. la Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Obiect[] subIdentifierValues, LobSystemInstance lobSystemInstance) la Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entitate entitate, Obiect[] userValues, LobSystemInstance lobSystemInstance) la Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vezi desiredView) la Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() la Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Am căutat în jurul şi a găsit unele conduce în MSDN forum, dar nu au fost suficient pentru mine să înţeleagă ceea ce am făcut greşit. Am urmarit o prezentare Web de Ted Pattison care meu Compania a squirreled deplasare pe un server şi a venit să realizeze problema mea.

În mea ADF, Eu sunt conectarea la o bază de date SQL, aşa cum se Arată:

            <Proprietate nume="RdbCommandText" Tip="System.string">
              <![CDATA[
                SELECTAŢI SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      TARA, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CITY, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COMITATUL, STAT, POŞTALE, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, PRELUNGIRE, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG de dbo.PS_CARRIER_ID_VW cu (nolock)
                ÎN CAZUL ÎN CARE
                  (SETID <> "COTA") şi
                  (Inferioară(CARRIER_ID) >= mai mici(@MinId)) şi
                  (Inferioară(CARRIER_ID) <= mai mici(@MaxId)) şi
                  (Inferioară(DESCR) CA mai mici(@InputDescr))
                ]]>
            </Proprietate>

I-a fost astfel că SQL de la un DBA persoana si am dat de înţeles că este o speciale Vezi au creat doar pentru mine. Cheie unic este CARRIER_ID.

Aici este bug-ul, am introdus:

      <Identificatori>
        <Identificator nume="CARRIER_ID" TypeName="System.string" />
        <Identificator nume="DESCR" TypeName="System.string" /> 
</Identificatori>

Undeva de-a lungul liniei, Am reuşit să mă confunde în sensul <Identificatori> şi a adăugat DESCR, chiar dacă nu este de fapt un identificator. Am luat DESCR din identificatori set şi presto! Totul a lucrat.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

2 gânduri pe "O eroare de BDC runtime a explicat

  1. Paul Galvin

    Pieter, probalby ai rezolvat acest lucru de acum, dar cred mea este că acesta ar fi legate de definirea pe capătul din spate. Poate câmp SQL în sine este limitat la 60 caractere? Ceva de genul asta?

    Răspuns
  2. Pieter Veenstra

    salut,

    Eu am o problemă cu un BDC, şi mă întreb dacă vă poate ajuta cu acest lucru?

    Eu sunt, folosind două câmpuri de identifiier ( un număr şi un câmp Descriere), ori de câte ori depăşeşte numărul total de caractere 60 Primesc erori de foollowing:

    Valoare nevalidă text

    Un câmp text conține date nevalide. Vă rugăm să verificaţi valoarea şi încercaţi din nou.

    Înţelegeţi unde aceasta limita de 60 caractere vine de la? şi cum să rezolvaţi această problemă?

    În prezent sunt limitându-Descrierea astfel încât numărul total de caractere nu depaseste 60.

    Răspuns

lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *