שגיאת זמן ריצה BDC הסביר

אני גרמתי שגיאת BDC השבוע זה בא לידי ביטוי בממשק המשתמש ואת 12 כוורת רישום בזמן ריצה.

הראשונה, זה הופיע בממשק המשתמש:

לא היתה אפשרות למצוא שדות כדי להוסיף את כל הערכים מזהה לבצע כהלכה SpecificFinder MethodInstance עם שם … להבטיח שפרמטרים של קלט יש TypeDescriptors הקשורים עם כל המזהה מוגדר עבור ישות זו.

הנה צילום מסך:

clip_image001

אני יכול לגרום גם הודעה זו תופיע 12 כוורת רישום-יהיה (שימוש high-tech-don't-try-this-at-home פטנט שלי "שגיאות מסתורי" שיטה):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0SharePoint Portal Server נתונים עסקיים x0B8C 6q4x חריגה גבוה ב- BusinessDataWebPart.OnPreRender: System.InvalidOperationException: ערך המזהה ”, סוג ”, . זה לא חוקי. הערך הצפוי מזהה מסוג 'System.String'. ב- Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(אובייקט[] subIdentifierValues, LobSystemInstance lobSystemInstance) ב- Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(ישות לישות, אובייקט[] userValues, LobSystemInstance lobSystemInstance) ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(נוף desiredView) ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

חיפוש סביב ומצאתי כמה מוביל פורום MSDN, אבל הם לא היו מספיק בשבילי להבין מה אני עושה לא בסדר. ראיתי שידור אינטרנט על-ידי טד פטיסון . זה שלי החברה יש מוסתרת בשרת, הגיע כדי להבין את הבעיה שלי.

ב- ADF שלי, אני מתחבר מסד נתונים של SQL כמוצג:

            <רכוש שם="RdbCommandText" סוג="System.String">
              <![CDATA[
                בחר SETID, CARRIER_ID, EFFDT, לתאר, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      מדינה, כתובת1, ADDRESS2, ADDRESS3, ADDRESS4, העיר, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      מחוז, המדינה, מיקוד, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, טלפון, סיומת, פקס, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG מ dbo.PS_CARRIER_ID_VW עם (nolock)
                איפה
                  (SETID <> 'שיתוף') ו
                  (נמוך יותר(CARRIER_ID) >= נמוך(@MinId)) ו
                  (נמוך יותר(CARRIER_ID) <= נמוך(@MaxId)) ו
                  (נמוך יותר(לתאר) כמו התחתון(@InputDescr))
                ]]>
            </רכוש>

אני היה סיפק את SQL מאדם DBA, שאני נותן להבין כי זה מיוחד תצוגה שהם יצרו רק בשבילי. המפתח הייחודי שם הוא CARRIER_ID.

כאן הוא באג הצגתי:

      <מזהי>
        <המזהה שם="CARRIER_ID" TypeName="System.String" />
        <המזהה שם="לתאר" TypeName="System.String" /> 
</מזהי>

איפשהו לאורך הקו, אני הצליח לבלבל את עצמי על המשמעות של <מזהי> והוסיף לתאר למרות שזה לא באמת מזהה. שהוצאתי מתארת מזהי קבוצה, ופרסטו! הכל עבד.

אני מקווה שזה יחסוך למישהו קצת צער 🙂

2 מחשבות על "שגיאת זמן ריצה BDC הסביר

  1. פול Galvin

    פייטר, אתה כנראה במפקדה פתרת את זה עד עכשיו, אבל הניחוש שלי הוא כי זה להיות קשור ההגדרה לאורך כל הדרך. אולי השדה SQL עצמו הוא מוגבל 60 תווים? . משהו כזה?

  2. פיטר Veenstra

    היי,

    יש לי בעיה עם BDC, ואני תוהה אם אתה יכול לעזור עם זה?

    אני משתמש שני שדות identifiier ( מספר ואת שדה תיאור), כל פעם עולה על המספר הכולל של תווים 60 אני מקבל את השגיאות foollowing:

    ערך טקסט לא חוקי

    שדה טקסט מכיל נתונים לא חוקיים. נא לבדוק את הערך ונסה שוב.

    ? את מבינה לאן זה להגביל של 60 תווים נובע? וכיצד לתקן את הבעיה?

    כיום אני אני מגביל את תיאור כזה שיאפשר את המספר הכולל של תווים לא יחרוג 60.

השאירו תגובה כדי פיטר Veenstra בטל תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *