Një gabim QZHB Runtime shpjegoi

Unë shkaktuar një gabim QZHB këtë javë se manifestuar veten në ndërfaqen e përdoruesit dhe në 12 hive log at runtime.

I parë, kjo u shfaq në ndërfaqen e përdoruesit:

Nuk mund të gjejnë fusha për të futur të gjitha vlerat identifikues për të ekzekutuar saktë një MethodInstance SpecificFinder me Emri … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.

Ja një e shtënë ekran:

clip_image001

I could also cause this message to appear in the 12 hive log at will (using my patented high-tech-don’t-try-this-at-home "mysterious errors" metodë):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: The Identifier value ”, of Type ”, is invalid. Expected Identifier value of Type ‘System.String’. at Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity entity, Object[] userValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(View desiredView) at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

I searched around and found some leads in the MSDN forum, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison that my company has squirreled away on a server and came to realize my problem.

In my ADF, I’m connecting to a SQL database as shown:

            <Pronë Emër="RdbCommandText" Lloj="System.String">
              <![CDATA[
                SELECT
                      SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      COUNTRY, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CITY, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      COUNTY, STATE, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, PHONE, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                FROM
                      dbo.PS_CARRIER_ID_VW WITH (nolock)
                WHERE
                  (SETID <> 'SHARE') dhe
                  (lower(CARRIER_ID) >= lower(@MinId)) dhe
                  (lower(CARRIER_ID) <= lower(@ MaxId)) dhe
                  (lower(DESCR) LIKE lower(@InputDescr))
                ]]>
            </Pronë>

I was provided that SQL from a DBA person and I’m given to understand that it’s a i veçantë view they created just for me. The unique key there is CARRIER_ID.

Here is the bug I introduced:

      <Identifiers>
        <Identifier Emër="CARRIER_ID" TypeName="System.String" />
        <Identifier Emër="DESCR" TypeName="System.String" /> 
</Identifiers>

Somewhere along the line, Kisha arritur të ngatërruar veten mbi kuptimin e <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Ajo ka punuar të gjithë.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

2 mendime mbi "Një gabim QZHB Runtime shpjegoi

  1. Paul Galvin

    Pieter, ju probalby zgjidhur këtë deri tani, por guess im është se ajo do të jetë e lidhur me përkufizimin në fund mbrapa. Ndoshta fushë SQL në vetvete është i kufizuar në 60 chars? Diçka si kjo?

  2. Pieter Veenstra

    Hi,

    Unë kam marrë një çështje me një QZHB, dhe unë pyes veten në qoftë se ju mund të ndihmojë me këtë?

    Unë jam duke përdorur dy fusha identifiier ( një numër dhe një fushë përshkrimi), sa herë që numri total i karaktereve kalon 60 Unë jam marrë gabimet foollowing:

    Vlera e pavlefshme text

    Një fushë teksti përmban të dhëna të pavlefshme. Ju lutem kontrolloni vlerën dhe të provoni përsëri.

    A e kuptoni ku ky limit prej 60 karaktere vjen nga? dhe si për të rregulluar këtë çështje?

    Aktualisht unë jam duke kufizuar përshkrimin në një mënyrë të tillë që numri total i karaktereve nuk kalon 60.

Lini një Përgjigju me Pieter Veenstra Cancel përgjigje

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar *